summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend
diff options
context:
space:
mode:
authorZephyron <zephyron@citron-emu.org>2025-01-15 20:19:57 +1000
committerZephyron <zephyron@citron-emu.org>2025-01-15 20:19:57 +1000
commit496b010927d7db3bcd6c52ddeadf34b9d9ca4f3a (patch)
tree766252da342c8b42363b81b1113dcbba5e313d52 /src/shader_recompiler/frontend
parent498d016873bc51147d098c501a8364d58c33eaca (diff)
shader-recompiler: implement FCSM_TR flow test case
Remove the stubbed implementation of FCSM_TR (Forward Condition Set Mode - Thread Reduction) flow test and replace it with an initial implementation using SFlag and ZFlag conditions. This provides basic functionality while allowing for future refinement based on specific shader architecture requirements.
Diffstat (limited to 'src/shader_recompiler/frontend')
-rw-r--r--src/shader_recompiler/frontend/ir/ir_emitter.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.cpp b/src/shader_recompiler/frontend/ir/ir_emitter.cpp
index 49171c470..b8bc5ea95 100644
--- a/src/shader_recompiler/frontend/ir/ir_emitter.cpp
+++ b/src/shader_recompiler/frontend/ir/ir_emitter.cpp
@@ -261,8 +261,7 @@ static U1 GetFlowTest(IREmitter& ir, FlowTest flow_test) {
case FlowTest::RGT:
return ir.LogicalAnd(ir.LogicalNot(ir.GetSFlag()), ir.LogicalNot(ir.GetZFlag()));
case FlowTest::FCSM_TR:
- LOG_WARNING(Shader, "(STUBBED) FCSM_TR");
- return ir.Imm1(false);
+ return ir.LogicalAnd(ir.GetSFlag(), ir.LogicalNot(ir.GetZFlag()));
case FlowTest::CSM_TA:
case FlowTest::CSM_TR:
case FlowTest::CSM_MX: