From 09ce12a868bb73d48b38fb240951dbf4e06633ed Mon Sep 17 00:00:00 2001 From: Stephen Miller <56742918+StevenMiller123@users.noreply.github.com> Date: Fri, 6 Sep 2024 15:51:20 -0500 Subject: [PATCH] shader_recompiler: Add more opcodes (#802) * Implement some missing shader opcodes Implements TBUFFER_STORE_FORMAT_XYZW, IMAGE_SAMPLE_CD, and IMAGE_GATHER4_C_LZ. These are seen in https://github.com/shadps4-emu/shadPS4/issues/496. * Implement IMAGE_STORE_MIP Not sure if this is the right way to do this, let me know if this needs changing. * Revert "Implement IMAGE_STORE_MIP" This reverts commit cff78b5924c20397995f590df3553dc8f7a45a7b. --- src/shader_recompiler/frontend/translate/vector_memory.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/shader_recompiler/frontend/translate/vector_memory.cpp b/src/shader_recompiler/frontend/translate/vector_memory.cpp index 73530dad..04b9b50d 100644 --- a/src/shader_recompiler/frontend/translate/vector_memory.cpp +++ b/src/shader_recompiler/frontend/translate/vector_memory.cpp @@ -18,9 +18,11 @@ void Translator::EmitVectorMemory(const GcnInst& inst) { case Opcode::IMAGE_SAMPLE_B: case Opcode::IMAGE_SAMPLE_C_LZ_O: case Opcode::IMAGE_SAMPLE_D: + case Opcode::IMAGE_SAMPLE_CD: return IMAGE_SAMPLE(inst); - case Opcode::IMAGE_GATHER4_C: case Opcode::IMAGE_GATHER4_LZ: + case Opcode::IMAGE_GATHER4_C: + case Opcode::IMAGE_GATHER4_C_LZ: case Opcode::IMAGE_GATHER4_LZ_O: return IMAGE_GATHER(inst); case Opcode::IMAGE_ATOMIC_ADD: @@ -98,6 +100,8 @@ void Translator::EmitVectorMemory(const GcnInst& inst) { return BUFFER_STORE(2, true, inst); case Opcode::TBUFFER_STORE_FORMAT_XYZ: return BUFFER_STORE(3, true, inst); + case Opcode::TBUFFER_STORE_FORMAT_XYZW: + return BUFFER_STORE(4, true, inst); case Opcode::BUFFER_STORE_DWORD: return BUFFER_STORE(1, false, inst);