diff options
| author | 2022-11-30 17:16:00 -0500 | |
|---|---|---|
| committer | 2022-12-01 09:51:27 -0500 | |
| commit | 3ef006b5abbe78bb2ae423a7cab74d7da2f8bc08 (patch) | |
| tree | bf0c9ed637dc39faea655fb836b7a48a9f5d28ee /src/shader_recompiler/frontend/maxwell/translate_program.h | |
| parent | Merge pull request #9308 from lat9nq/from-scratch (diff) | |
| download | yuzu-3ef006b5abbe78bb2ae423a7cab74d7da2f8bc08.tar.gz yuzu-3ef006b5abbe78bb2ae423a7cab74d7da2f8bc08.tar.xz yuzu-3ef006b5abbe78bb2ae423a7cab74d7da2f8bc08.zip | |
shader_recompiler: add gl_Layer translation GS for older hardware
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell/translate_program.h')
| -rw-r--r-- | src/shader_recompiler/frontend/maxwell/translate_program.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/translate_program.h b/src/shader_recompiler/frontend/maxwell/translate_program.h index 02ede8c9c..497afe7cb 100644 --- a/src/shader_recompiler/frontend/maxwell/translate_program.h +++ b/src/shader_recompiler/frontend/maxwell/translate_program.h | |||
| @@ -25,4 +25,13 @@ namespace Shader::Maxwell { | |||
| 25 | 25 | ||
| 26 | void ConvertLegacyToGeneric(IR::Program& program, const RuntimeInfo& runtime_info); | 26 | void ConvertLegacyToGeneric(IR::Program& program, const RuntimeInfo& runtime_info); |
| 27 | 27 | ||
| 28 | // Maxwell v1 and older Nvidia cards don't support setting gl_Layer from non-geometry stages. | ||
| 29 | // This creates a workaround by setting the layer as a generic output and creating a | ||
| 30 | // passthrough geometry shader that reads the generic and sets the layer. | ||
| 31 | [[nodiscard]] IR::Program GenerateGeometryPassthrough(ObjectPool<IR::Inst>& inst_pool, | ||
| 32 | ObjectPool<IR::Block>& block_pool, | ||
| 33 | const HostTranslateInfo& host_info, | ||
| 34 | IR::Program& source_program, | ||
| 35 | Shader::OutputTopology output_topology); | ||
| 36 | |||
| 28 | } // namespace Shader::Maxwell | 37 | } // namespace Shader::Maxwell |