(*KeywordMap)["f16subpassInputMS"] = F16SUBPASSINPUTMS;
(*KeywordMap)["__explicitInterpAMD"] = EXPLICITINTERPAMD;
(*KeywordMap)["pervertexNV"] = PERVERTEXNV;
+ (*KeywordMap)["pervertexEXT"] = PERVERTEXEXT;
(*KeywordMap)["precise"] = PRECISE;
(*KeywordMap)["rayPayloadNV"] = PAYLOADNV;
(*KeywordMap)["perprimitiveNV"] = PERPRIMITIVENV;
(*KeywordMap)["perviewNV"] = PERVIEWNV;
(*KeywordMap)["taskNV"] = PERTASKNV;
+ (*KeywordMap)["perprimitiveEXT"] = PERPRIMITIVEEXT;
+ (*KeywordMap)["taskPayloadSharedEXT"] = TASKPAYLOADWORKGROUPEXT;
(*KeywordMap)["fcoopmatNV"] = FCOOPMATNV;
(*KeywordMap)["icoopmatNV"] = ICOOPMATNV;
(*KeywordMap)["ucoopmatNV"] = UCOOPMATNV;
+ (*KeywordMap)["hitObjectNV"] = HITOBJECTNV;
+ (*KeywordMap)["hitObjectAttributeNV"] = HITOBJECTATTRNV;
+
ReservedSet = new std::unordered_set<const char*, str_hash, str_eq>;
ReservedSet->insert("common");
return keyword;
return identifierOrType();
+ case PERVERTEXEXT:
+ if ((!parseContext.isEsProfile() && parseContext.version >= 450) ||
+ parseContext.extensionTurnedOn(E_GL_EXT_fragment_shader_barycentric))
+ return keyword;
+ return identifierOrType();
+
case PRECISE:
if ((parseContext.isEsProfile() &&
(parseContext.version >= 320 || parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5))) ||
case PERPRIMITIVENV:
case PERVIEWNV:
case PERTASKNV:
- if ((!parseContext.isEsProfile() && parseContext.version >= 450) ||
- (parseContext.isEsProfile() && parseContext.version >= 320) ||
+ if (parseContext.symbolTable.atBuiltInLevel() ||
parseContext.extensionTurnedOn(E_GL_NV_mesh_shader))
return keyword;
return identifierOrType();
+ case PERPRIMITIVEEXT:
+ case TASKPAYLOADWORKGROUPEXT:
+ if (parseContext.symbolTable.atBuiltInLevel() ||
+ parseContext.extensionTurnedOn(E_GL_EXT_mesh_shader))
+ return keyword;
+ return identifierOrType();
+
case FCOOPMATNV:
afterType = true;
if (parseContext.symbolTable.atBuiltInLevel() ||
parseContext.extensionTurnedOn(E_GL_EXT_spirv_intrinsics))
return keyword;
return identifierOrType();
+
+ case HITOBJECTNV:
+ if (parseContext.symbolTable.atBuiltInLevel() ||
+ (!parseContext.isEsProfile() && parseContext.version >= 460
+ && parseContext.extensionTurnedOn(E_GL_NV_shader_invocation_reorder)))
+ return keyword;
+ return identifierOrType();
+
+ case HITOBJECTATTRNV:
+ if (parseContext.symbolTable.atBuiltInLevel() ||
+ (!parseContext.isEsProfile() && parseContext.version >= 460
+ && parseContext.extensionTurnedOn(E_GL_NV_shader_invocation_reorder)))
+ return keyword;
+ return identifierOrType();
#endif
default: