forked from ShuriZma/suyu
1
0
Fork 0

GPU: Stub the shader SYNC and DEPBAR instructions.

It is unknown at this moment if we actually need to do something with these instructions or if the GLSL compiler takes care of that for us.
This commit is contained in:
Subv 2018-07-04 15:29:51 -05:00
parent 81a44d38ee
commit 77cfe4f027
2 changed files with 12 additions and 0 deletions

View File

@ -438,6 +438,8 @@ public:
enum class Id { enum class Id {
KIL, KIL,
SSY, SSY,
SYNC,
DEPBAR,
BFE_C, BFE_C,
BFE_R, BFE_R,
BFE_IMM, BFE_IMM,
@ -534,6 +536,7 @@ public:
Shift, Shift,
Ffma, Ffma,
Flow, Flow,
Synch,
Memory, Memory,
FloatSet, FloatSet,
FloatSetPredicate, FloatSetPredicate,
@ -638,6 +641,8 @@ private:
INST("111000110011----", Id::KIL, Type::Flow, "KIL"), INST("111000110011----", Id::KIL, Type::Flow, "KIL"),
INST("111000101001----", Id::SSY, Type::Flow, "SSY"), INST("111000101001----", Id::SSY, Type::Flow, "SSY"),
INST("111000100100----", Id::BRA, Type::Flow, "BRA"), INST("111000100100----", Id::BRA, Type::Flow, "BRA"),
INST("1111000011110---", Id::DEPBAR, Type::Synch, "DEPBAR"),
INST("1111000011111---", Id::SYNC, Type::Synch, "SYNC"),
INST("1110111111011---", Id::LD_A, Type::Memory, "LD_A"), INST("1110111111011---", Id::LD_A, Type::Memory, "LD_A"),
INST("1110111110010---", Id::LD_C, Type::Memory, "LD_C"), INST("1110111110010---", Id::LD_C, Type::Memory, "LD_C"),
INST("1110111111110---", Id::ST_A, Type::Memory, "ST_A"), INST("1110111111110---", Id::ST_A, Type::Memory, "ST_A"),

View File

@ -1599,6 +1599,13 @@ private:
// can ignore this when generating GLSL code. // can ignore this when generating GLSL code.
break; break;
} }
case OpCode::Id::DEPBAR:
case OpCode::Id::SYNC: {
// TODO(Subv): Find out if we actually have to care about these instructions or if
// the GLSL compiler takes care of that for us.
LOG_WARNING(HW_GPU, "DEPBAR/SYNC instruction is stubbed");
break;
}
default: { default: {
LOG_CRITICAL(HW_GPU, "Unhandled instruction: {}", opcode->GetName()); LOG_CRITICAL(HW_GPU, "Unhandled instruction: {}", opcode->GetName());
UNREACHABLE(); UNREACHABLE();