Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Shader_IR: Address Feedback | Fernando Sahmkow | 2020-01-24 | 1 | -16/+24 |
| | |||||
* | GPU: Implement guest driver profile and deduce texture handler sizes. | Fernando Sahmkow | 2020-01-24 | 1 | -0/+21 |
| | |||||
* | video_core: Silence implicit conversion warnings | ReinUsesLisp | 2019-11-08 | 1 | -2/+2 |
| | |||||
* | Shader_IR: Address Feedback. | Fernando Sahmkow | 2019-10-26 | 1 | -1/+1 |
| | |||||
* | gl_shader_decompiler: Move entries to a separate function | ReinUsesLisp | 2019-10-25 | 1 | -4/+5 |
| | |||||
* | Shader_IR: Implement Fast BRX and allow multi-branches in the CFG. | Fernando Sahmkow | 2019-10-25 | 1 | -10/+24 |
| | |||||
* | Shader_Cache: setup connection of ConstBufferLocker | Fernando Sahmkow | 2019-10-25 | 1 | -1/+1 |
| | |||||
* | Shader_ir: Address feedback | Fernando Sahmkow | 2019-10-05 | 1 | -1/+1 |
| | |||||
* | Shader_Ir: Refactor Decompilation process and allow multiple decompilation modes. | Fernando Sahmkow | 2019-10-05 | 1 | -25/+61 |
| | |||||
* | gl_shader_decompiler: Implement AST decompiling | Fernando Sahmkow | 2019-10-05 | 1 | -2/+68 |
| | |||||
* | shader_ir: Declare Manager and pass it to appropiate programs. | Fernando Sahmkow | 2019-10-05 | 1 | -25/+3 |
| | |||||
* | shader_ir: Implement VOTE | ReinUsesLisp | 2019-08-21 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | video_core/shader/decode: Prevent sign-conversion warnings | Lioncash | 2019-07-19 | 1 | -2/+2 |
| | | | | Makes it explicit that the conversions here are intentional. | ||||
* | shader_ir: std::move Node instance where applicable | Lioncash | 2019-07-17 | 1 | -4/+4 |
| | | | | | | | | | 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. | ||||
* | shader_ir: Add comments on missing instruction. | Fernando Sahmkow | 2019-07-09 | 1 | -2/+5 |
| | | | | Also shows Nvidia's address space on comments. | ||||
* | shader_ir: limit explorastion to best known program size. | Fernando Sahmkow | 2019-07-09 | 1 | -1/+1 |
| | |||||
* | shader_ir: Correct parsing of scheduling instructions and correct sizing | Fernando Sahmkow | 2019-07-09 | 1 | -1/+1 |
| | |||||
* | shader_ir: Correct max sizing | Fernando Sahmkow | 2019-07-09 | 1 | -1/+1 |
| | |||||
* | shader_ir: Remove unnecessary constructors and use optional for ScanFlow result | Fernando Sahmkow | 2019-07-09 | 1 | -5/+5 |
| | |||||
* | shader_ir: Corrections, documenting and asserting control_flow | Fernando Sahmkow | 2019-07-09 | 1 | -5/+5 |
| | |||||
* | shader_ir: Unify blocks in decompiled shaders. | Fernando Sahmkow | 2019-07-09 | 1 | -8/+27 |
| | |||||
* | shader_ir: Decompile Flow Stack | Fernando Sahmkow | 2019-07-09 | 1 | -0/+46 |
| | |||||
* | shader_ir: propagate shader size to the IR | Fernando Sahmkow | 2019-07-09 | 1 | -3/+3 |
| | |||||
* | shader_ir: Remove the old scanner. | Fernando Sahmkow | 2019-07-09 | 1 | -66/+0 |
| | |||||
* | shader_ir: Implement a new shader scanner | Fernando Sahmkow | 2019-07-09 | 1 | -16/+23 |
| | |||||
* | shader: Decode SUST and implement backing image functionality | ReinUsesLisp | 2019-06-21 | 1 | -0/+1 |
| | |||||
* | shader: Use shared_ptr to store nodes and move initialization to file | ReinUsesLisp | 2019-06-06 | 1 | -0/+1 |
| | | | | | | | | | 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. | ||||
* | video_core: Silent -Wswitch warnings | ReinUsesLisp | 2019-04-18 | 1 | -1/+3 |
| | |||||
* | shader/decode: Split memory and texture instructions decoding | ReinUsesLisp | 2019-02-26 | 1 | -0/+1 |
| | |||||
* | shader_ir: Rename BasicBlock to NodeBlock | ReinUsesLisp | 2019-02-03 | 1 | -30/+29 |
| | | | | It's not always used as a basic block. Rename it for consistency. | ||||
* | shader_ir: Pass decoded nodes as a whole instead of per basic blocks | ReinUsesLisp | 2019-02-03 | 1 | -6/+9 |
| | | | | | | | | | 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. | ||||
* | shader/decode: Avoid a pessimizing std::move within DecodeRange() | Lioncash | 2019-01-28 | 1 | -1/+1 |
| | | | | | | 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. | ||||
* | shader_ir: Pass to decoder functions basic block's code | ReinUsesLisp | 2019-01-15 | 1 | -32/+33 |
| | |||||
* | shader_decode: Implement VMAD and VSETP | ReinUsesLisp | 2019-01-15 | 1 | -0/+1 |
| | |||||
* | video_core: Address feedback | ReinUsesLisp | 2019-01-15 | 1 | -0/+4 |
| | |||||
* | shader_ir: Fixup file inclusions and clang-format | ReinUsesLisp | 2019-01-15 | 1 | -0/+1 |
| | |||||
* | shader_ir: Initial implementation | ReinUsesLisp | 2019-01-15 | 1 | -0/+199 |