passes.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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 ConditionalBarrierPass(IR::Program& program);
  12. void ConstantPropagationPass(Environment& env, IR::Program& program);
  13. void DeadCodeEliminationPass(IR::Program& program);
  14. void GlobalMemoryToStorageBufferPass(IR::Program& program);
  15. void IdentityRemovalPass(IR::Program& program);
  16. void LowerFp64ToFp32(IR::Program& program);
  17. void LowerFp16ToFp32(IR::Program& program);
  18. void LowerInt64ToInt32(IR::Program& program);
  19. void RescalingPass(IR::Program& program);
  20. void SsaRewritePass(IR::Program& program);
  21. void PositionPass(Environment& env, IR::Program& program);
  22. void TexturePass(Environment& env, IR::Program& program, const HostTranslateInfo& host_info);
  23. void LayerPass(IR::Program& program, const HostTranslateInfo& host_info);
  24. void VendorWorkaroundPass(IR::Program& program);
  25. void VerificationPass(const IR::Program& program);
  26. // Dual Vertex
  27. void VertexATransformPass(IR::Program& program);
  28. void VertexBTransformPass(IR::Program& program);
  29. void JoinTextureInfo(Info& base, Info& source);
  30. void JoinStorageInfo(Info& base, Info& source);
  31. } // namespace Shader::Optimization