| | |
| | |
| |
|
| | #pragma once |
| |
|
| | #include "shader_recompiler/environment.h" |
| | #include "shader_recompiler/frontend/ir/basic_block.h" |
| | #include "shader_recompiler/frontend/ir/program.h" |
| | #include "shader_recompiler/frontend/maxwell/control_flow.h" |
| | #include "shader_recompiler/object_pool.h" |
| | #include "shader_recompiler/runtime_info.h" |
| |
|
| | namespace Shader { |
| | struct HostTranslateInfo; |
| | } |
| |
|
| | namespace Shader::Maxwell { |
| |
|
| | [[nodiscard]] IR::Program TranslateProgram(ObjectPool<IR::Inst>& inst_pool, |
| | ObjectPool<IR::Block>& block_pool, Environment& env, |
| | Flow::CFG& cfg, const HostTranslateInfo& host_info); |
| |
|
| | [[nodiscard]] IR::Program MergeDualVertexPrograms(IR::Program& vertex_a, IR::Program& vertex_b, |
| | Environment& env_vertex_b); |
| |
|
| | void ConvertLegacyToGeneric(IR::Program& program, const RuntimeInfo& runtime_info); |
| |
|
| | |
| | |
| | |
| | [[nodiscard]] IR::Program GenerateGeometryPassthrough(ObjectPool<IR::Inst>& inst_pool, |
| | ObjectPool<IR::Block>& block_pool, |
| | const HostTranslateInfo& host_info, |
| | IR::Program& source_program, |
| | Shader::OutputTopology output_topology); |
| |
|
| | } |
| |
|