Преглед на файлове

spirv: Add OpKill fallback to demote

ReinUsesLisp преди 5 години
родител
ревизия
fd913bceaf
променени са 1 файла, в които са добавени 6 реда и са изтрити 2 реда
  1. 6 2
      src/shader_recompiler/backend/spirv/emit_spirv_control_flow.cpp

+ 6 - 2
src/shader_recompiler/backend/spirv/emit_spirv_control_flow.cpp

@@ -35,8 +35,12 @@ void EmitUnreachable(EmitContext& ctx) {
 }
 
 void EmitDemoteToHelperInvocation(EmitContext& ctx, Id continue_label) {
-    ctx.OpDemoteToHelperInvocationEXT();
-    ctx.OpBranch(continue_label);
+    if (ctx.profile.support_demote_to_helper_invocation) {
+        ctx.OpDemoteToHelperInvocationEXT();
+        ctx.OpBranch(continue_label);
+    } else {
+        ctx.OpKill();
+    }
 }
 
 } // namespace Shader::Backend::SPIRV