diff options
| author | DrChat <arkolbed@gmail.com> | 2017-08-07 21:40:24 -0500 |
|---|---|---|
| committer | DrChat <arkolbed@gmail.com> | 2017-08-07 21:40:24 -0500 |
| commit | 8bfe22bbd76f0a3af5a3de3ed5a5b4d29b24f651 (patch) | |
| tree | af475c8cb9522349b34c510e2a42c78237221f98 /src | |
| parent | cfc65a01978814e349938e90e227332b2dde9265 (diff) | |
GPU Shader Translator: Add cases for memexport registers
Diffstat (limited to 'src')
| -rw-r--r-- | src/xenia/gpu/shader_translator.cc | 27 |
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()) { |
