summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader_ir.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-01-25 06:48:03 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2021-01-25 06:48:03 +0100
commit34c3ec2f8c69159fd61b42091ee3157c6e77fa30 (patch)
treeb21727e82403573764151ced5faa89caf894594e /src/video_core/shader/shader_ir.cpp
parentMerge pull request #5819 from ReinUsesLisp/cull-mode-cast (diff)
downloadyuzu-34c3ec2f8c69159fd61b42091ee3157c6e77fa30.tar
yuzu-34c3ec2f8c69159fd61b42091ee3157c6e77fa30.tar.gz
yuzu-34c3ec2f8c69159fd61b42091ee3157c6e77fa30.tar.bz2
yuzu-34c3ec2f8c69159fd61b42091ee3157c6e77fa30.tar.lz
yuzu-34c3ec2f8c69159fd61b42091ee3157c6e77fa30.tar.xz
yuzu-34c3ec2f8c69159fd61b42091ee3157c6e77fa30.tar.zst
yuzu-34c3ec2f8c69159fd61b42091ee3157c6e77fa30.zip
Diffstat (limited to 'src/video_core/shader/shader_ir.cpp')
-rw-r--r--src/video_core/shader/shader_ir.cpp51
1 files changed, 3 insertions, 48 deletions
diff --git a/src/video_core/shader/shader_ir.cpp b/src/video_core/shader/shader_ir.cpp
index 625a5eb46..a4987ffc6 100644
--- a/src/video_core/shader/shader_ir.cpp
+++ b/src/video_core/shader/shader_ir.cpp
@@ -388,54 +388,9 @@ void ShaderIR::SetInternalFlagsFromInteger(NodeBlock& bb, Node value, bool sets_
if (!sets_cc) {
return;
}
- switch (value->index()) {
- case 0: // Operation Node
- SearchOperands(bb, value);
- break;
- case 2: // General Purpose Node
- if (const auto* gpr = std::get_if<GprNode>(value.get())) {
- LOG_DEBUG(HW_GPU, "GprNode: index={}", gpr->GetIndex());
- Node zerop = Operation(OperationCode::LogicalIEqual, std::move(value),
- Immediate(gpr->GetIndex()));
- SetInternalFlag(bb, InternalFlag::Zero, std::move(zerop));
- }
- break;
-
- default:
- Node zerop = Operation(OperationCode::LogicalIEqual, std::move(value), Immediate(0));
- SetInternalFlag(bb, InternalFlag::Zero, std::move(zerop));
- LOG_WARNING(HW_GPU, "Node Type: {}", value->index());
- break;
- }
-}
-
-void ShaderIR::SearchOperands(NodeBlock& nb, Node var) {
- const auto* op = std::get_if<OperationNode>(var.get());
- if (op == nullptr) {
- return;
- }
-
- if (op->GetOperandsCount() == 0) {
- return;
- }
-
- for (auto& operand : op->GetOperands()) {
- switch (operand->index()) {
- case 0: // Operation Node
- return SearchOperands(nb, operand);
- case 2: // General Purpose Node
- if (const auto* gpr = std::get_if<GprNode>(operand.get())) {
- LOG_DEBUG(HW_GPU, "Child GprNode: index={}", gpr->GetIndex());
- Node zerop = Operation(OperationCode::LogicalIEqual, std::move(operand),
- Immediate(gpr->GetIndex()));
- SetInternalFlag(nb, InternalFlag::Zero, std::move(zerop));
- }
- break;
- default:
- LOG_WARNING(HW_GPU, "Child Node Type: {}", operand->index());
- break;
- }
- }
+ Node zerop = Operation(OperationCode::LogicalIEqual, std::move(value), Immediate(0));
+ SetInternalFlag(bb, InternalFlag::Zero, std::move(zerop));
+ LOG_WARNING(HW_GPU, "Condition codes implementation is incomplete");
}
Node ShaderIR::BitfieldExtract(Node value, u32 offset, u32 bits) {