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;
} 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()) {