passes.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include "shader_recompiler/environment.h"
  5. #include "shader_recompiler/frontend/ir/program.h"
  6. namespace Shader {
  7. struct HostTranslateInfo;
  8. }
  9. namespace Shader::Optimization {
  10. void CollectShaderInfoPass(Environment& env, IR::Program& program);
  11. void ConstantPropagationPass(Environment& env, IR::Program& program);
  12. void DeadCodeEliminationPass(IR::Program& program);
  13. void GlobalMemoryToStorageBufferPass(IR::Program& program, const HostTranslateInfo& host_info);
  14. void IdentityRemovalPass(IR::Program& program);
  15. void LowerFp16ToFp32(IR::Program& program);
  16. void LowerInt64ToInt32(IR::Program& program);
  17. void RescalingPass(IR::Program& program);
  18. void SsaRewritePass(IR::Program& program);
  19. void PositionPass(Environment& env, IR::Program& program);
  20. void TexturePass(Environment& env, IR::Program& program, const HostTranslateInfo& host_info);
  21. void LayerPass(IR::Program& program, const HostTranslateInfo& host_info);
  22. void VerificationPass(const IR::Program& program);
  23. // Dual Vertex
  24. void VertexATransformPass(IR::Program& program);
  25. void VertexBTransformPass(IR::Program& program);
  26. void JoinTextureInfo(Info& base, Info& source);
  27. void JoinStorageInfo(Info& base, Info& source);
  28. } // namespace Shader::Optimization