summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/xenia/gpu/shader_translator.cc27
1 files changed, 27 insertions, 0 deletions
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()) {