diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-05-21 23:27:37 +0200 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-23 03:51:33 +0200 |
commit | 84feabac881443d27f84f8fec5eba6dc3b13b620 (patch) | |
tree | 7b3dd78d2753a0d73e358182d989d65836026303 /src/shader_recompiler/backend/glasm | |
parent | glasm: Set transform feedback state (diff) | |
download | yuzu-84feabac881443d27f84f8fec5eba6dc3b13b620.tar yuzu-84feabac881443d27f84f8fec5eba6dc3b13b620.tar.gz yuzu-84feabac881443d27f84f8fec5eba6dc3b13b620.tar.bz2 yuzu-84feabac881443d27f84f8fec5eba6dc3b13b620.tar.lz yuzu-84feabac881443d27f84f8fec5eba6dc3b13b620.tar.xz yuzu-84feabac881443d27f84f8fec5eba6dc3b13b620.tar.zst yuzu-84feabac881443d27f84f8fec5eba6dc3b13b620.zip |
Diffstat (limited to 'src/shader_recompiler/backend/glasm')
-rw-r--r-- | src/shader_recompiler/backend/glasm/emit_glasm.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm.cpp b/src/shader_recompiler/backend/glasm/emit_glasm.cpp index edff04a44..0c2bbf284 100644 --- a/src/shader_recompiler/backend/glasm/emit_glasm.cpp +++ b/src/shader_recompiler/backend/glasm/emit_glasm.cpp @@ -261,7 +261,8 @@ void EmitCode(EmitContext& ctx, const IR::Program& program) { } } -void SetupOptions(const IR::Program& program, const Profile& profile, std::string& header) { +void SetupOptions(const IR::Program& program, const Profile& profile, + const RuntimeInfo& runtime_info, std::string& header) { const Info& info{program.info}; const Stage stage{program.stage}; @@ -296,6 +297,9 @@ void SetupOptions(const IR::Program& program, const Profile& profile, std::strin header += "OPTION NV_viewport_array2;"; } } + if (stage == Stage::Fragment && runtime_info.force_early_z != 0) { + header += "OPTION NV_early_fragment_tests;"; + } const auto non_zero_frag_colors{info.stores_frag_color | std::views::drop(1)}; if (std::ranges::find(non_zero_frag_colors, true) != non_zero_frag_colors.end()) { header += "OPTION ARB_draw_buffers;"; @@ -380,7 +384,7 @@ std::string EmitGLASM(const Profile& profile, const RuntimeInfo& runtime_info, I Precolor(ctx, program); EmitCode(ctx, program); std::string header{StageHeader(program.stage)}; - SetupOptions(program, profile, header); + SetupOptions(program, profile, runtime_info, header); switch (program.stage) { case Stage::TessellationControl: header += fmt::format("VERTICES_OUT {};", program.invocations); |