1
0
Fork 0
forked from suyu/suyu

Merge pull request #626 from Subv/shader_sync

GPU: Stub the shader SYNC and DEPBAR instructions.
This commit is contained in:
bunnei 2018-07-05 12:54:19 -04:00 committed by GitHub
commit 762bf6a522
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 0 deletions

View file

@ -451,6 +451,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,
@ -547,6 +549,7 @@ public:
Shift, Shift,
Ffma, Ffma,
Flow, Flow,
Synch,
Memory, Memory,
FloatSet, FloatSet,
FloatSetPredicate, FloatSetPredicate,
@ -651,6 +654,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

@ -1632,6 +1632,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();