From 8bfe22bbd76f0a3af5a3de3ed5a5b4d29b24f651 Mon Sep 17 00:00:00 2001 From: DrChat Date: Mon, 7 Aug 2017 21:40:24 -0500 Subject: [PATCH] GPU Shader Translator: Add cases for memexport registers --- src/xenia/gpu/shader_translator.cc | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/xenia/gpu/shader_translator.cc b/src/xenia/gpu/shader_translator.cc index 4fbc62b83..f919d3c32 100644 --- a/src/xenia/gpu/shader_translator.cc +++ b/src/xenia/gpu/shader_translator.cc @@ -1130,6 +1130,16 @@ void ShaderTranslator::ParseAluVectorInstruction( : InstructionStorageAddressingMode::kStatic; } else if (is_vertex_shader()) { switch (dest_num) { + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + // TODO: Memexport registers + i.result.storage_target = InstructionStorageTarget::kNone; + i.result.storage_index = 0; + break; case 62: i.result.storage_target = InstructionStorageTarget::kPosition; break; @@ -1171,9 +1181,26 @@ void ShaderTranslator::ParseAluVectorInstruction( i.result.storage_target = InstructionStorageTarget::kColorTarget; i.result.storage_index = 3; break; + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + // TODO: Memexport registers + i.result.storage_target = InstructionStorageTarget::kNone; + i.result.storage_index = 0; + break; case 61: i.result.storage_target = InstructionStorageTarget::kDepth; break; + default: + XELOGE( + "ShaderTranslator::ParseAluVectorInstruction: Unsupported write " + "to export %d", + dest_num); + i.result.storage_target = InstructionStorageTarget::kNone; + i.result.storage_index = 0; } } if (op.is_export()) {