diff options
author | FernandoS27 <fsahmkow27@gmail.com> | 2021-06-04 00:11:16 +0200 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-23 03:51:34 +0200 |
commit | 562af301819227d65a251a2c29c997bf798da7ba (patch) | |
tree | 00199eb2c9c34d78430d88e40bd5b27f585daeec /src/shader_recompiler/ir_opt | |
parent | shader: Add 2D and 3D variants to SUATOM and SURED (diff) | |
download | yuzu-562af301819227d65a251a2c29c997bf798da7ba.tar yuzu-562af301819227d65a251a2c29c997bf798da7ba.tar.gz yuzu-562af301819227d65a251a2c29c997bf798da7ba.tar.bz2 yuzu-562af301819227d65a251a2c29c997bf798da7ba.tar.lz yuzu-562af301819227d65a251a2c29c997bf798da7ba.tar.xz yuzu-562af301819227d65a251a2c29c997bf798da7ba.tar.zst yuzu-562af301819227d65a251a2c29c997bf798da7ba.zip |
Diffstat (limited to 'src/shader_recompiler/ir_opt')
-rw-r--r-- | src/shader_recompiler/ir_opt/dual_vertex_pass.cpp | 24 | ||||
-rw-r--r-- | src/shader_recompiler/ir_opt/passes.h | 1 |
2 files changed, 16 insertions, 9 deletions
diff --git a/src/shader_recompiler/ir_opt/dual_vertex_pass.cpp b/src/shader_recompiler/ir_opt/dual_vertex_pass.cpp index b0a9f5258..a926123f2 100644 --- a/src/shader_recompiler/ir_opt/dual_vertex_pass.cpp +++ b/src/shader_recompiler/ir_opt/dual_vertex_pass.cpp @@ -13,16 +13,24 @@ namespace Shader::Optimization { -void VertexATransformPass(IR::Program&) { - throw NotImplementedException("VertexA pass"); +void VertexATransformPass(IR::Program& program) { + for (IR::Block* const block : program.blocks) { + for (IR::Inst& inst : block->Instructions()) { + if (inst.GetOpcode() == IR::Opcode::Epilogue) { + return inst.Invalidate(); + } + } + } } -void VertexBTransformPass(IR::Program&) { - throw NotImplementedException("VertexA pass"); -} - -void DualVertexJoinPass(IR::Program&) { - throw NotImplementedException("VertexA pass"); +void VertexBTransformPass(IR::Program& program) { + for (IR::Block* const block : program.blocks) { + for (IR::Inst& inst : block->Instructions()) { + if (inst.GetOpcode() == IR::Opcode::Prologue) { + return inst.Invalidate(); + } + } + } } } // namespace Shader::Optimization diff --git a/src/shader_recompiler/ir_opt/passes.h b/src/shader_recompiler/ir_opt/passes.h index e9cb8546a..5ebde49ea 100644 --- a/src/shader_recompiler/ir_opt/passes.h +++ b/src/shader_recompiler/ir_opt/passes.h @@ -25,7 +25,6 @@ void VerificationPass(const IR::Program& program); // Dual Vertex void VertexATransformPass(IR::Program& program); void VertexBTransformPass(IR::Program& program); -void DualVertexJoinPass(IR::Program& program); void JoinTextureInfo(Info& base, Info& source); void JoinStorageInfo(Info& base, Info& source); |