Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-07-22 | shader: Remove old shader management | ReinUsesLisp | |
2020-12-30 | video_core: Rewrite the texture cache | ReinUsesLisp | |
The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage.The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage. This commit aims to address those issues. | |||
2020-12-07 | video_core: Make use of ordered container contains() where applicable | Lioncash | |
With C++20, we can use the more concise contains() member function instead of comparing the result of the find() call with the end iterator. | |||
2020-12-05 | video_core: Resolve more variable shadowing scenarios pt.3 | Lioncash | |
Cleans out the rest of the occurrences of variable shadowing and makes any further occurrences of shadowing compiler errors. | |||
2020-05-09 | shader_ir: Separate float-point comparisons in ordered and unordered | ReinUsesLisp | |
This allows us to use native SPIR-V instructions without having to manually check for NAN. | |||
2020-05-02 | Merge pull request #3693 from ReinUsesLisp/clean-samplers | bunnei | |
shader/texture: Support multiple unknown sampler properties | |||
2020-04-26 | shader/memory_util: Deduplicate code | ReinUsesLisp | |
Deduplicate code shared between vk_pipeline_cache and gl_shader_cache as well as shader decoder code. While we are at it, fix a bug in gl_shader_cache where compute shaders had an start offset of a stage shader. | |||
2020-04-23 | shader_ir: Turn classes into data structures | ReinUsesLisp | |
2020-03-09 | video_core: Rename "const buffer locker" to "registry" | ReinUsesLisp | |
2020-03-09 | gl_shader_cache: Rework shader cache and remove post-specializations | ReinUsesLisp | |
Instead of pre-specializing shaders and then post-specializing them, drop the later and only "specialize" the shader while decoding it. | |||
2020-01-25 | Shader_IR: Address feedback. | Fernando Sahmkow | |
2020-01-24 | Shader_IR: Corrections, styling and extras. | Fernando Sahmkow | |
2020-01-24 | Shader_IR: deduce size of indexed samplers | Fernando Sahmkow | |
2020-01-24 | Shader_IR: Address Feedback | Fernando Sahmkow | |
2020-01-24 | Shader_IR: Address Feedback | Fernando Sahmkow | |
2020-01-24 | GPU: Implement guest driver profile and deduce texture handler sizes. | Fernando Sahmkow | |
2019-11-08 | video_core: Silence implicit conversion warnings | ReinUsesLisp | |
2019-10-26 | Shader_IR: Address Feedback. | Fernando Sahmkow | |
2019-10-25 | gl_shader_decompiler: Move entries to a separate function | ReinUsesLisp | |
2019-10-25 | Shader_IR: Implement Fast BRX and allow multi-branches in the CFG. | Fernando Sahmkow | |
2019-10-25 | Shader_Cache: setup connection of ConstBufferLocker | Fernando Sahmkow | |
2019-10-04 | Shader_ir: Address feedback | Fernando Sahmkow | |
2019-10-04 | Shader_Ir: Refactor Decompilation process and allow multiple decompilation ↵ | Fernando Sahmkow | |
modes. | |||
2019-10-04 | gl_shader_decompiler: Implement AST decompiling | Fernando Sahmkow | |
2019-10-04 | shader_ir: Declare Manager and pass it to appropiate programs. | Fernando Sahmkow | |
2019-08-21 | shader_ir: Implement VOTE | ReinUsesLisp | |
Implement VOTE using Nvidia's intrinsics. Documentation about these can be found here https://developer.nvidia.com/reading-between-threads-shader-intrinsics Instead of using portable ARB instructions I opted to use Nvidia intrinsics because these are the closest we have to how Tegra X1 hardware renders. To stub VOTE on non-Nvidia drivers (including nouveau) this commit simulates a GPU with a warp size of one, returning what is meaningful for the instruction being emulated: * anyThreadNV(value) -> value * allThreadsNV(value) -> value * allThreadsEqualNV(value) -> true ballotARB, also known as "uint64_t(activeThreadsNV())", emits VOTE.ANY Rd, PT, PT; on nouveau's compiler. This doesn't match exactly to Nvidia's code VOTE.ALL Rd, PT, PT; Which is emulated with activeThreadsNV() by this commit. In theory this shouldn't really matter since .ANY, .ALL and .EQ affect the predicates (set to PT on those cases) and not the registers. | |||
2019-07-18 | video_core/shader/decode: Prevent sign-conversion warnings | Lioncash | |
Makes it explicit that the conversions here are intentional. | |||
2019-07-16 | shader_ir: std::move Node instance where applicable | Lioncash | |
These are std::shared_ptr instances underneath the hood, which means copying them isn't as cheap as a regular pointer. Particularly so on weakly-ordered systems. This avoids atomic reference count increments and decrements where they aren't necessary for the core set of operations. | |||
2019-07-09 | shader_ir: Add comments on missing instruction. | Fernando Sahmkow | |
Also shows Nvidia's address space on comments. | |||
2019-07-09 | shader_ir: limit explorastion to best known program size. | Fernando Sahmkow | |
2019-07-09 | shader_ir: Correct parsing of scheduling instructions and correct sizing | Fernando Sahmkow | |
2019-07-09 | shader_ir: Correct max sizing | Fernando Sahmkow | |
2019-07-09 | shader_ir: Remove unnecessary constructors and use optional for ScanFlow result | Fernando Sahmkow | |
2019-07-09 | shader_ir: Corrections, documenting and asserting control_flow | Fernando Sahmkow | |
2019-07-09 | shader_ir: Unify blocks in decompiled shaders. | Fernando Sahmkow | |
2019-07-09 | shader_ir: Decompile Flow Stack | Fernando Sahmkow | |
2019-07-09 | shader_ir: propagate shader size to the IR | Fernando Sahmkow | |
2019-07-09 | shader_ir: Remove the old scanner. | Fernando Sahmkow | |
2019-07-09 | shader_ir: Implement a new shader scanner | Fernando Sahmkow | |
2019-06-20 | shader: Decode SUST and implement backing image functionality | ReinUsesLisp | |
2019-06-05 | shader: Use shared_ptr to store nodes and move initialization to file | ReinUsesLisp | |
Instead of having a vector of unique_ptr stored in a vector and returning star pointers to this, use shared_ptr. While changing initialization code, move it to a separate file when possible. This is a first step to allow code analysis and node generation beyond the ShaderIR class. | |||
2019-04-18 | video_core: Silent -Wswitch warnings | ReinUsesLisp | |
2019-02-26 | shader/decode: Split memory and texture instructions decoding | ReinUsesLisp | |
2019-02-03 | shader_ir: Rename BasicBlock to NodeBlock | ReinUsesLisp | |
It's not always used as a basic block. Rename it for consistency. | |||
2019-02-03 | shader_ir: Pass decoded nodes as a whole instead of per basic blocks | ReinUsesLisp | |
Some games call LDG at the top of a basic block, making the tracking heuristic to fail. This commit lets the heuristic the decoded nodes as a whole instead of per basic blocks. This may lead to some false positives but allows it the heuristic to track cases it previously couldn't. | |||
2019-01-28 | shader/decode: Avoid a pessimizing std::move within DecodeRange() | Lioncash | |
std::moveing a local variable in a return statement has the potential to prevent copy elision from occurring, so this can just be converted into a regular return. | |||
2019-01-15 | shader_ir: Pass to decoder functions basic block's code | ReinUsesLisp | |
2019-01-15 | shader_decode: Implement VMAD and VSETP | ReinUsesLisp | |
2019-01-15 | video_core: Address feedback | ReinUsesLisp | |
2019-01-15 | shader_ir: Fixup file inclusions and clang-format | ReinUsesLisp | |