Implement GL_EXT_demote_to_helper_invocation
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 16d90b8..7b1393c 100644
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -3111,6 +3111,12 @@
builder.clearAccessChain();
break;
+ case glslang::EOpDemote:
+ builder.createNoResultOp(spv::OpDemoteToHelperInvocationEXT);
+ builder.addExtension(spv::E_SPV_EXT_demote_to_helper_invocation);
+ builder.addCapability(spv::CapabilityDemoteToHelperInvocationEXT);
+ break;
+
default:
assert(0);
break;
@@ -7610,6 +7616,13 @@
builder.createNoResultOp(spv::OpEndInvocationInterlockEXT);
return 0;
+ case glslang::EOpIsHelperInvocation:
+ {
+ std::vector<spv::Id> args; // Dummy arguments
+ spv::Id id = builder.createOp(spv::OpIsHelperInvocationEXT, typeId, args);
+ return id;
+ }
+
default:
logger->missingFunctionality("unknown operation with no arguments");
return 0;