diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2018-06-27 23:55:08 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-06-27 23:55:08 -0300 |
| commit | e6eeb6f09ff592f5b27e115d1817654de7568757 (patch) | |
| tree | 0c6b7528dc907779fa8e0199822d9f20896752d2 /Ryujinx.Graphics/Gal/Shader/ShaderDecodeFlow.cs | |
| parent | 900a84ae0a90ae13c8c3f5158eff85c68a953362 (diff) | |
Add support for Vertex Program A and other small shader improvements (#192)
* Add WIP support for Vertex Program A, add the FADD_I32 shader instruction, small fix on FFMA_I encoding, nits
* Add separate subroutines for program A/B, and copy attributes to a temp
* Move finalization code to main
* Add new line after flip uniform on the shader
* Handle possible case where VPB uses an output attribute written by VPA but not available on the vbo
* Address PR feedback
Diffstat (limited to 'Ryujinx.Graphics/Gal/Shader/ShaderDecodeFlow.cs')
| -rw-r--r-- | Ryujinx.Graphics/Gal/Shader/ShaderDecodeFlow.cs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Ryujinx.Graphics/Gal/Shader/ShaderDecodeFlow.cs b/Ryujinx.Graphics/Gal/Shader/ShaderDecodeFlow.cs index 89949d62..8d0925a3 100644 --- a/Ryujinx.Graphics/Gal/Shader/ShaderDecodeFlow.cs +++ b/Ryujinx.Graphics/Gal/Shader/ShaderDecodeFlow.cs @@ -24,7 +24,14 @@ namespace Ryujinx.Graphics.Gal.Shader public static void Exit(ShaderIrBlock Block, long OpCode) { - Block.AddNode(GetPredNode(new ShaderIrOp(ShaderIrInst.Exit), OpCode)); + int CCode = (int)OpCode & 0x1f; + + //TODO: Figure out what the other condition codes mean... + if (CCode == 0xf) + { + Block.AddNode(GetPredNode(new ShaderIrOp(ShaderIrInst.Exit), OpCode)); + } + } public static void Kil(ShaderIrBlock Block, long OpCode) |
