mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-20 19:07:01 +02:00
shader: implement RDNA2 subvector loop mask and branch semantics
This commit is contained in:
@@ -192,7 +192,9 @@ bool IsConditionalBranch(Opcode opcode) {
|
||||
case Opcode::S_CBRANCH_VCCZ:
|
||||
case Opcode::S_CBRANCH_VCCNZ:
|
||||
case Opcode::S_CBRANCH_EXECZ:
|
||||
case Opcode::S_CBRANCH_EXECNZ: return true;
|
||||
case Opcode::S_CBRANCH_EXECNZ:
|
||||
case Opcode::S_SUBVECTOR_LOOP_BEGIN:
|
||||
case Opcode::S_SUBVECTOR_LOOP_END: return true;
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
@@ -535,6 +537,11 @@ std::string InstructionToString(const Instruction& inst) {
|
||||
return WithUnsupportedReason(inst, fmt::format("0x{:08x}: {} 0x{:08x}", inst.pc,
|
||||
magic_enum::enum_name(inst.opcode),
|
||||
inst.branch_target));
|
||||
case Opcode::S_SUBVECTOR_LOOP_BEGIN:
|
||||
case Opcode::S_SUBVECTOR_LOOP_END:
|
||||
return WithUnsupportedReason(inst, fmt::format(
|
||||
"0x{:08x}: {} {}, 0x{:08x}", inst.pc, magic_enum::enum_name(inst.opcode),
|
||||
OperandToString(inst.dst), inst.branch_target));
|
||||
case Opcode::EXP: return WithUnsupportedReason(inst, FormatExp(inst));
|
||||
case Opcode::IMAGE_SAMPLE:
|
||||
case Opcode::IMAGE_STORE:
|
||||
|
||||
Reference in New Issue
Block a user