mirror of
https://github.com/yuzu-emu/yuzu-android.git
synced 2025-06-10 19:08:24 -05:00
shader: Address Feedback
This commit is contained in:
@ -82,8 +82,17 @@ void IREmitter::SelectionMerge(Block* merge_block) {
|
||||
Inst(Opcode::SelectionMerge, merge_block);
|
||||
}
|
||||
|
||||
void IREmitter::MemoryBarrier(BarrierInstInfo info) {
|
||||
Inst(Opcode::MemoryBarrier, Flags{info});
|
||||
void IREmitter::MemoryBarrier(MemoryScope scope) {
|
||||
switch (scope) {
|
||||
case MemoryScope::Workgroup:
|
||||
Inst(Opcode::MemoryBarrierWorkgroupLevel);
|
||||
case MemoryScope::Device:
|
||||
Inst(Opcode::MemoryBarrierDeviceLevel);
|
||||
case MemoryScope::System:
|
||||
Inst(Opcode::MemoryBarrierSystemLevel);
|
||||
default:
|
||||
throw InvalidArgument("Invalid memory scope {}", scope);
|
||||
}
|
||||
}
|
||||
|
||||
void IREmitter::Return() {
|
||||
@ -202,38 +211,6 @@ void IREmitter::SetOFlag(const U1& value) {
|
||||
Inst(Opcode::SetOFlag, value);
|
||||
}
|
||||
|
||||
U1 IREmitter::GetFCSMFlag() {
|
||||
return Inst<U1>(Opcode::GetFCSMFlag);
|
||||
}
|
||||
|
||||
U1 IREmitter::GetTAFlag() {
|
||||
return Inst<U1>(Opcode::GetTAFlag);
|
||||
}
|
||||
|
||||
U1 IREmitter::GetTRFlag() {
|
||||
return Inst<U1>(Opcode::GetTRFlag);
|
||||
}
|
||||
|
||||
U1 IREmitter::GetMXFlag() {
|
||||
return Inst<U1>(Opcode::GetMXFlag);
|
||||
}
|
||||
|
||||
void IREmitter::SetFCSMFlag(const U1& value) {
|
||||
Inst(Opcode::SetFCSMFlag, value);
|
||||
}
|
||||
|
||||
void IREmitter::SetTAFlag(const U1& value) {
|
||||
Inst(Opcode::SetTAFlag, value);
|
||||
}
|
||||
|
||||
void IREmitter::SetTRFlag(const U1& value) {
|
||||
Inst(Opcode::SetTRFlag, value);
|
||||
}
|
||||
|
||||
void IREmitter::SetMXFlag(const U1& value) {
|
||||
Inst(Opcode::SetMXFlag, value);
|
||||
}
|
||||
|
||||
static U1 GetFlowTest(IREmitter& ir, FlowTest flow_test) {
|
||||
switch (flow_test) {
|
||||
case FlowTest::F:
|
||||
@ -292,9 +269,9 @@ static U1 GetFlowTest(IREmitter& ir, FlowTest flow_test) {
|
||||
return ir.LogicalOr(ir.GetSFlag(), ir.GetZFlag());
|
||||
case FlowTest::RGT:
|
||||
return ir.LogicalAnd(ir.LogicalNot(ir.GetSFlag()), ir.LogicalNot(ir.GetZFlag()));
|
||||
|
||||
case FlowTest::FCSM_TR:
|
||||
return ir.LogicalAnd(ir.GetFCSMFlag(), ir.GetTRFlag());
|
||||
// LOG_WARNING(ShaderDecompiler, "FCSM_TR CC State (Stubbed)");
|
||||
return ir.Imm1(false);
|
||||
case FlowTest::CSM_TA:
|
||||
case FlowTest::CSM_TR:
|
||||
case FlowTest::CSM_MX:
|
||||
|
Reference in New Issue
Block a user