passes.h 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. // Copyright 2021 yuzu Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <span>
  6. #include "shader_recompiler/environment.h"
  7. #include "shader_recompiler/frontend/ir/basic_block.h"
  8. #include "shader_recompiler/frontend/ir/program.h"
  9. namespace Shader::Optimization {
  10. void CollectShaderInfoPass(Environment& env, IR::Program& program);
  11. void ConstantPropagationPass(IR::Program& program);
  12. void DeadCodeEliminationPass(IR::Program& program);
  13. void GlobalMemoryToStorageBufferPass(IR::Program& program);
  14. void IdentityRemovalPass(IR::Program& program);
  15. void LowerFp16ToFp32(IR::Program& program);
  16. void LowerInt64ToInt32(IR::Program& program);
  17. void SsaRewritePass(IR::Program& program);
  18. void TexturePass(Environment& env, IR::Program& program);
  19. void VerificationPass(const IR::Program& program);
  20. // Dual Vertex
  21. void VertexATransformPass(IR::Program& program);
  22. void VertexBTransformPass(IR::Program& program);
  23. void JoinTextureInfo(Info& base, Info& source);
  24. void JoinStorageInfo(Info& base, Info& source);
  25. } // namespace Shader::Optimization