Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | shader/other: Implement thread comparisons (NV_shader_thread_group) | ReinUsesLisp | 2020-05-22 | 1 | -0/+21 |
| | | | | | | | | | | | Hardware S2R special registers match gl_Thread*MaskNV. We can trivially implement these using Nvidia's extension on OpenGL or naively stubbing them with the ARB instructions to match. This might cause issues if the host device warp size doesn't match Nvidia's. That said, this is unlikely on proper shaders. Refer to the attached url for more documentation about these flags. https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_thread_group.txt | ||||
* | Merge pull request #3601 from ReinUsesLisp/some-shader-encodings | bunnei | 2020-04-09 | 1 | -3/+9 |
|\ | | | | | video_core/shader: Add some instruction and S2R encodings | ||||
| * | shader/other: Add error message for some S2R registers | ReinUsesLisp | 2020-04-04 | 1 | -0/+6 |
| | | |||||
| * | shader_bytecode: Rename MOV_SYS to S2R | ReinUsesLisp | 2020-04-04 | 1 | -3/+3 |
| | | |||||
* | | shader_decompiler: Remove FragCoord.w hack and change IPA implementation | ReinUsesLisp | 2020-04-02 | 1 | -15/+21 |
|/ | | | | | | | | | | | | | | | | Credits go to gdkchan and Ryujinx. The pull request used for this can be found here: https://github.com/Ryujinx/Ryujinx/pull/1082 yuzu was already using the header for interpolation, but it was missing the FragCoord.w multiplication described in the linked pull request. This commit finally removes the FragCoord.w == 1.0f hack from the shader decompiler. While we are at it, this commit renames some enumerations to match Nvidia's documentation (linked below) and fixes component declaration order in the shader program header (z and w were swapped). https://github.com/NVIDIA/open-gpu-doc/blob/master/Shader-Program-Header/Shader-Program-Header.html | ||||
* | shader/other: Fix skips for SYNC and BRK | ReinUsesLisp | 2020-01-29 | 1 | -2/+2 |
| | |||||
* | shader/other: Stub S2R LaneId | ReinUsesLisp | 2020-01-29 | 1 | -1/+4 |
| | |||||
* | shader: Implement MEMBAR.GL | ReinUsesLisp | 2019-12-10 | 1 | -0/+6 |
| | | | | Implement using memoryBarrier in GLSL and OpMemoryBarrier on SPIR-V. | ||||
* | shader_ir/other: Implement S2R InvocationId | ReinUsesLisp | 2019-12-10 | 1 | -0/+2 |
| | |||||
* | shader/other: Reduce DEPBAR log severity | ReinUsesLisp | 2019-11-20 | 1 | -1/+1 |
| | | | | | | While DEPBAR is stubbed it doesn't change anything from our end. Shading languages handle what this instruction does implicitly. We are not getting anything out fo this log except noise. | ||||
* | video_core/shader: Resolve instances of variable shadowing | Lioncash | 2019-10-24 | 1 | -1/+1 |
| | | | | Silences a few -Wshadow warnings. | ||||
* | Merge pull request #2758 from ReinUsesLisp/packed-tid | bunnei | 2019-08-29 | 1 | -0/+7 |
|\ | | | | | shader/decode: Implement S2R Tic | ||||
| * | shader/decode: Implement S2R Tic | ReinUsesLisp | 2019-07-22 | 1 | -0/+7 |
| | | |||||
* | | shader_ir: Implement NOP | ReinUsesLisp | 2019-08-04 | 1 | -0/+6 |
|/ | |||||
* | shader/decode/other: Correct branch indirect argument within BRA handling | Lioncash | 2019-07-16 | 1 | -1/+1 |
| | | | | | This appears to have been a copy/paste error introduced within 8a6fc529a968e007f01464abadd32f9b5eb0a26c | ||||
* | shader_ir: Unify blocks in decompiled shaders. | Fernando Sahmkow | 2019-07-09 | 1 | -7/+23 |
| | |||||
* | shader_ir: Implement BRX & BRA.CC | Fernando Sahmkow | 2019-07-09 | 1 | -4/+38 |
| | |||||
* | shader: Split SSY and PBK stack | ReinUsesLisp | 2019-06-07 | 1 | -10/+8 |
| | | | | | | | | | | | Hardware testing revealed that SSY and PBK push to a different stack, allowing code like this: SSY label1; PBK label2; SYNC; label1: PBK; label2: EXIT; | ||||
* | 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. | ||||
* | Merge pull request #2446 from ReinUsesLisp/tid | bunnei | 2019-05-29 | 1 | -14/+28 |
|\ | | | | | shader: Implement S2R Tid{XYZ} and CtaId{XYZ} | ||||
| * | shader: Implement S2R Tid{XYZ} and CtaId{XYZ} | ReinUsesLisp | 2019-05-20 | 1 | -14/+28 |
| | | |||||
* | | shader/decode/*: Eliminate indirect inclusions | Lioncash | 2019-05-23 | 1 | -0/+1 |
|/ | | | | | | | Amends cases where we were using things that were indirectly being satisfied through other headers. This way, if those headers change and eliminate dependencies on other headers in the future, we don't have cascading compilation errors. | ||||
* | shader_ir/other: Implement IPA.IDX | ReinUsesLisp | 2019-05-03 | 1 | -5/+8 |
| | |||||
* | shader: Remove unused AbufNode Ipa mode | ReinUsesLisp | 2019-05-03 | 1 | -1/+1 |
| | |||||
* | shader_decompiler: Improve Accuracy of Attribute Interpolation. | Fernando Sahmkow | 2019-02-14 | 1 | -2/+13 |
| | |||||
* | shader_ir: Rename BasicBlock to NodeBlock | ReinUsesLisp | 2019-02-03 | 1 | -1/+1 |
| | | | | 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 | -1/+1 |
| | | | | | | | | | 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_ir: Pass to decoder functions basic block's code | ReinUsesLisp | 2019-01-15 | 1 | -1/+1 |
| | |||||
* | shader_decode: Use proper primitive names | ReinUsesLisp | 2019-01-15 | 1 | -6/+6 |
| | |||||
* | shader_ir: Remove Ipa primitive | ReinUsesLisp | 2019-01-15 | 1 | -3/+2 |
| | |||||
* | video_core: Implement IR based geometry shaders | ReinUsesLisp | 2019-01-15 | 1 | -0/+25 |
| | |||||
* | shader_ir: Fixup file inclusions and clang-format | ReinUsesLisp | 2019-01-15 | 1 | -1/+1 |
| | |||||
* | shader_decode: Implement MOV_SYS | ReinUsesLisp | 2019-01-15 | 1 | -0/+27 |
| | |||||
* | shader_decode: Implement BRA internal flag | ReinUsesLisp | 2019-01-15 | 1 | -4/+8 |
| | |||||
* | shader_decode: Implement PBK and BRK | ReinUsesLisp | 2019-01-15 | 1 | -1/+22 |
| | |||||
* | shader_decode: Stub DEPBAR | ReinUsesLisp | 2019-01-15 | 1 | -0/+4 |
| | |||||
* | shader_decode: Implement SSY and SYNC | ReinUsesLisp | 2019-01-15 | 1 | -0/+19 |
| | |||||
* | shader_decode: Partially implement BRA | ReinUsesLisp | 2019-01-15 | 1 | -0/+12 |
| | |||||
* | shader_decode: Implement IPA | ReinUsesLisp | 2019-01-15 | 1 | -0/+12 |
| | |||||
* | shader_decode: Implement EXIT | ReinUsesLisp | 2019-01-15 | 1 | -1/+32 |
| | |||||
* | shader_ir: Initial implementation | ReinUsesLisp | 2019-01-15 | 1 | -0/+24 |