GPU Shader Translator: Add cases for memexport registers

This commit is contained in:
DrChat 2017-08-07 21:40:24 -05:00
parent cfc65a0197
commit 8bfe22bbd7
1 changed files with 27 additions and 0 deletions

View File

@ -1130,6 +1130,16 @@ void ShaderTranslator::ParseAluVectorInstruction(
: InstructionStorageAddressingMode::kStatic; : InstructionStorageAddressingMode::kStatic;
} else if (is_vertex_shader()) { } else if (is_vertex_shader()) {
switch (dest_num) { 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: case 62:
i.result.storage_target = InstructionStorageTarget::kPosition; i.result.storage_target = InstructionStorageTarget::kPosition;
break; break;
@ -1171,9 +1181,26 @@ void ShaderTranslator::ParseAluVectorInstruction(
i.result.storage_target = InstructionStorageTarget::kColorTarget; i.result.storage_target = InstructionStorageTarget::kColorTarget;
i.result.storage_index = 3; i.result.storage_index = 3;
break; 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: case 61:
i.result.storage_target = InstructionStorageTarget::kDepth; i.result.storage_target = InstructionStorageTarget::kDepth;
break; 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()) { if (op.is_export()) {