From b066cfc1a3e31bf7197ddbd0f4d774b886cd9d65 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Mon, 12 Oct 2020 21:40:50 -0300 Subject: Add support for shader constant buffer slot indexing (#1608) * Add support for shader constant buffer slot indexing * Fix typo --- Ryujinx.Graphics.Shader/Decoders/CbIndexMode.cs | 10 ++++++++++ Ryujinx.Graphics.Shader/Decoders/OpCodeLdc.cs | 4 +++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 Ryujinx.Graphics.Shader/Decoders/CbIndexMode.cs (limited to 'Ryujinx.Graphics.Shader/Decoders') diff --git a/Ryujinx.Graphics.Shader/Decoders/CbIndexMode.cs b/Ryujinx.Graphics.Shader/Decoders/CbIndexMode.cs new file mode 100644 index 00000000..4c7a72b5 --- /dev/null +++ b/Ryujinx.Graphics.Shader/Decoders/CbIndexMode.cs @@ -0,0 +1,10 @@ +namespace Ryujinx.Graphics.Shader.Decoders +{ + enum CbIndexMode + { + Default = 0, + Il = 1, + Is = 2, + Isl = 3 + } +} \ No newline at end of file diff --git a/Ryujinx.Graphics.Shader/Decoders/OpCodeLdc.cs b/Ryujinx.Graphics.Shader/Decoders/OpCodeLdc.cs index c18a0a9e..05bac28c 100644 --- a/Ryujinx.Graphics.Shader/Decoders/OpCodeLdc.cs +++ b/Ryujinx.Graphics.Shader/Decoders/OpCodeLdc.cs @@ -10,6 +10,7 @@ namespace Ryujinx.Graphics.Shader.Decoders public int Offset { get; } public int Slot { get; } + public CbIndexMode IndexMode { get; } public IntegerSize Size { get; } public OpCodeLdc(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) @@ -20,7 +21,8 @@ namespace Ryujinx.Graphics.Shader.Decoders Offset = (opCode.Extract(20, 16) << 16) >> 16; Slot = opCode.Extract(36, 5); - Size = (IntegerSize)opCode.Extract(48, 3); + IndexMode = (CbIndexMode)opCode.Extract(44, 2); + Size = (IntegerSize)opCode.Extract(48, 3); } } } \ No newline at end of file -- cgit v1.2.3