summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/spirv
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-04-13 16:56:22 -0300
committerGravatar ameerj2021-07-22 21:51:27 -0400
commita83579b50a167ab9483e5058fd1c748018ef6d7c (patch)
treead924ec0219e4cbd6d2efae934061082751d9b27 /src/shader_recompiler/backend/spirv
parentshader: Document and relax cache control on surface instructions (diff)
downloadyuzu-a83579b50a167ab9483e5058fd1c748018ef6d7c.tar.gz
yuzu-a83579b50a167ab9483e5058fd1c748018ef6d7c.tar.xz
yuzu-a83579b50a167ab9483e5058fd1c748018ef6d7c.zip
shader: Implement early Z tests
Diffstat (limited to 'src/shader_recompiler/backend/spirv')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv.cpp b/src/shader_recompiler/backend/spirv/emit_spirv.cpp
index 61a2018d7..7ad00c434 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv.cpp
@@ -178,6 +178,9 @@ void DefineEntryPoint(const IR::Program& program, EmitContext& ctx, Id main) {
178 if (program.info.stores_frag_depth) { 178 if (program.info.stores_frag_depth) {
179 ctx.AddExecutionMode(main, spv::ExecutionMode::DepthReplacing); 179 ctx.AddExecutionMode(main, spv::ExecutionMode::DepthReplacing);
180 } 180 }
181 if (ctx.profile.force_early_z) {
182 ctx.AddExecutionMode(main, spv::ExecutionMode::EarlyFragmentTests);
183 }
181 break; 184 break;
182 default: 185 default:
183 throw NotImplementedException("Stage {}", program.stage); 186 throw NotImplementedException("Stage {}", program.stage);