summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/backend')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_control_flow.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_control_flow.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_control_flow.cpp
index d3a1db340..b4a6fbb93 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_control_flow.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_control_flow.cpp
@@ -35,8 +35,12 @@ void EmitUnreachable(EmitContext& ctx) {
35} 35}
36 36
37void EmitDemoteToHelperInvocation(EmitContext& ctx, Id continue_label) { 37void EmitDemoteToHelperInvocation(EmitContext& ctx, Id continue_label) {
38 ctx.OpDemoteToHelperInvocationEXT(); 38 if (ctx.profile.support_demote_to_helper_invocation) {
39 ctx.OpBranch(continue_label); 39 ctx.OpDemoteToHelperInvocationEXT();
40 ctx.OpBranch(continue_label);
41 } else {
42 ctx.OpKill();
43 }
40} 44}
41 45
42} // namespace Shader::Backend::SPIRV 46} // namespace Shader::Backend::SPIRV