mirror of
https://github.com/RPCS3/glslang.git
synced 2024-11-23 19:29:44 +00:00
Customize glslang.y to GLSLANG_ANGLE
glslang.y is specialized to remove what is not supported or won't be supported by ANGLE. This change shaves about 125KB off of ANGLE's binary size with minor improvement to the cost of SetupBuiltinSymbolTable. Signed-off-by: Shahbaz Youssefi <ShabbyX@gmail.com>
This commit is contained in:
parent
8c49d15fbf
commit
59fb2d6361
14
BUILD.gn
14
BUILD.gn
@ -130,7 +130,7 @@ template("glslang_sources_common") {
|
||||
"glslang/MachineIndependent/attribute.cpp",
|
||||
"glslang/MachineIndependent/attribute.h",
|
||||
"glslang/MachineIndependent/gl_types.h",
|
||||
"glslang/MachineIndependent/glslang_tab.cpp",
|
||||
"glslang/MachineIndependent/glslang_angle_tab.cpp.h",
|
||||
"glslang/MachineIndependent/glslang_tab.cpp.h",
|
||||
"glslang/MachineIndependent/intermOut.cpp",
|
||||
"glslang/MachineIndependent/iomapper.cpp",
|
||||
@ -181,6 +181,18 @@ template("glslang_sources_common") {
|
||||
}
|
||||
|
||||
defines = []
|
||||
if (invoker.is_angle) {
|
||||
sources += [
|
||||
"glslang/MachineIndependent/glslang_angle_tab.cpp",
|
||||
]
|
||||
defines += [ "GLSLANG_ANGLE" ]
|
||||
}
|
||||
else {
|
||||
sources += [
|
||||
"glslang/MachineIndependent/glslang_tab.cpp",
|
||||
]
|
||||
}
|
||||
|
||||
if (invoker.enable_opt) {
|
||||
sources += [ "SPIRV/SpvTools.cpp" ]
|
||||
defines += [ "ENABLE_OPT=1" ]
|
||||
|
@ -49,10 +49,15 @@
|
||||
#include "SymbolTable.h"
|
||||
#include "ParseHelper.h"
|
||||
#include "attribute.h"
|
||||
#include "glslang_tab.cpp.h"
|
||||
#include "ScanContext.h"
|
||||
#include "Scan.h"
|
||||
|
||||
#ifdef GLSLANG_ANGLE
|
||||
#include "glslang_angle_tab.cpp.h"
|
||||
#else
|
||||
#include "glslang_tab.cpp.h"
|
||||
#endif
|
||||
|
||||
// preprocessor includes
|
||||
#include "preprocessor/PpContext.h"
|
||||
#include "preprocessor/PpTokens.h"
|
||||
@ -406,25 +411,28 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["uvec4"] = UVEC4;
|
||||
|
||||
#ifndef GLSLANG_WEB
|
||||
(*KeywordMap)["nonuniformEXT"] = NONUNIFORM;
|
||||
(*KeywordMap)["demote"] = DEMOTE;
|
||||
(*KeywordMap)["attribute"] = ATTRIBUTE;
|
||||
(*KeywordMap)["varying"] = VARYING;
|
||||
(*KeywordMap)["noperspective"] = NOPERSPECTIVE;
|
||||
(*KeywordMap)["precise"] = PRECISE;
|
||||
(*KeywordMap)["coherent"] = COHERENT;
|
||||
(*KeywordMap)["restrict"] = RESTRICT;
|
||||
(*KeywordMap)["readonly"] = READONLY;
|
||||
(*KeywordMap)["writeonly"] = WRITEONLY;
|
||||
(*KeywordMap)["volatile"] = VOLATILE;
|
||||
(*KeywordMap)["patch"] = PATCH;
|
||||
(*KeywordMap)["sample"] = SAMPLE;
|
||||
|
||||
#ifndef GLSLANG_ANGLE
|
||||
(*KeywordMap)["nonuniformEXT"] = NONUNIFORM;
|
||||
(*KeywordMap)["demote"] = DEMOTE;
|
||||
(*KeywordMap)["devicecoherent"] = DEVICECOHERENT;
|
||||
(*KeywordMap)["queuefamilycoherent"] = QUEUEFAMILYCOHERENT;
|
||||
(*KeywordMap)["workgroupcoherent"] = WORKGROUPCOHERENT;
|
||||
(*KeywordMap)["subgroupcoherent"] = SUBGROUPCOHERENT;
|
||||
(*KeywordMap)["shadercallcoherent"] = SHADERCALLCOHERENT;
|
||||
(*KeywordMap)["nonprivate"] = NONPRIVATE;
|
||||
(*KeywordMap)["restrict"] = RESTRICT;
|
||||
(*KeywordMap)["readonly"] = READONLY;
|
||||
(*KeywordMap)["writeonly"] = WRITEONLY;
|
||||
(*KeywordMap)["atomic_uint"] = ATOMIC_UINT;
|
||||
(*KeywordMap)["volatile"] = VOLATILE;
|
||||
(*KeywordMap)["patch"] = PATCH;
|
||||
(*KeywordMap)["sample"] = SAMPLE;
|
||||
(*KeywordMap)["subroutine"] = SUBROUTINE;
|
||||
(*KeywordMap)["dmat2"] = DMAT2;
|
||||
(*KeywordMap)["dmat3"] = DMAT3;
|
||||
@ -441,6 +449,10 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["image1D"] = IMAGE1D;
|
||||
(*KeywordMap)["iimage1D"] = IIMAGE1D;
|
||||
(*KeywordMap)["uimage1D"] = UIMAGE1D;
|
||||
(*KeywordMap)["image1DArray"] = IMAGE1DARRAY;
|
||||
(*KeywordMap)["iimage1DArray"] = IIMAGE1DARRAY;
|
||||
(*KeywordMap)["uimage1DArray"] = UIMAGE1DARRAY;
|
||||
#endif
|
||||
(*KeywordMap)["image2D"] = IMAGE2D;
|
||||
(*KeywordMap)["iimage2D"] = IIMAGE2D;
|
||||
(*KeywordMap)["uimage2D"] = UIMAGE2D;
|
||||
@ -456,9 +468,6 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["imageBuffer"] = IMAGEBUFFER;
|
||||
(*KeywordMap)["iimageBuffer"] = IIMAGEBUFFER;
|
||||
(*KeywordMap)["uimageBuffer"] = UIMAGEBUFFER;
|
||||
(*KeywordMap)["image1DArray"] = IMAGE1DARRAY;
|
||||
(*KeywordMap)["iimage1DArray"] = IIMAGE1DARRAY;
|
||||
(*KeywordMap)["uimage1DArray"] = UIMAGE1DARRAY;
|
||||
(*KeywordMap)["image2DArray"] = IMAGE2DARRAY;
|
||||
(*KeywordMap)["iimage2DArray"] = IIMAGE2DARRAY;
|
||||
(*KeywordMap)["uimage2DArray"] = UIMAGE2DARRAY;
|
||||
@ -471,6 +480,7 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["image2DMSArray"] = IMAGE2DMSARRAY;
|
||||
(*KeywordMap)["iimage2DMSArray"] = IIMAGE2DMSARRAY;
|
||||
(*KeywordMap)["uimage2DMSArray"] = UIMAGE2DMSARRAY;
|
||||
#ifndef GLSLANG_ANGLE
|
||||
(*KeywordMap)["double"] = DOUBLE;
|
||||
(*KeywordMap)["dvec2"] = DVEC2;
|
||||
(*KeywordMap)["dvec3"] = DVEC3;
|
||||
@ -561,6 +571,7 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["f64mat4x2"] = F64MAT4X2;
|
||||
(*KeywordMap)["f64mat4x3"] = F64MAT4X3;
|
||||
(*KeywordMap)["f64mat4x4"] = F64MAT4X4;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
(*KeywordMap)["sampler2D"] = SAMPLER2D;
|
||||
@ -603,11 +614,16 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW;
|
||||
(*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY;
|
||||
(*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY;
|
||||
(*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW;
|
||||
(*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
|
||||
(*KeywordMap)["usampler1D"] = USAMPLER1D;
|
||||
#ifndef GLSLANG_ANGLE
|
||||
(*KeywordMap)["sampler1D"] = SAMPLER1D;
|
||||
(*KeywordMap)["isampler1D"] = ISAMPLER1D;
|
||||
(*KeywordMap)["usampler1D"] = USAMPLER1D;
|
||||
(*KeywordMap)["sampler1DArray"] = SAMPLER1DARRAY;
|
||||
(*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
|
||||
(*KeywordMap)["usampler1DArray"] = USAMPLER1DARRAY;
|
||||
(*KeywordMap)["sampler1DShadow"] = SAMPLER1DSHADOW;
|
||||
(*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW;
|
||||
#endif
|
||||
(*KeywordMap)["samplerBuffer"] = SAMPLERBUFFER;
|
||||
(*KeywordMap)["isampler2DRect"] = ISAMPLER2DRECT;
|
||||
(*KeywordMap)["usampler2DRect"] = USAMPLER2DRECT;
|
||||
@ -619,20 +635,21 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["sampler2DMSArray"] = SAMPLER2DMSARRAY;
|
||||
(*KeywordMap)["isampler2DMSArray"] = ISAMPLER2DMSARRAY;
|
||||
(*KeywordMap)["usampler2DMSArray"] = USAMPLER2DMSARRAY;
|
||||
(*KeywordMap)["sampler1D"] = SAMPLER1D;
|
||||
(*KeywordMap)["sampler1DShadow"] = SAMPLER1DSHADOW;
|
||||
(*KeywordMap)["sampler2DRect"] = SAMPLER2DRECT;
|
||||
(*KeywordMap)["sampler2DRectShadow"] = SAMPLER2DRECTSHADOW;
|
||||
(*KeywordMap)["sampler1DArray"] = SAMPLER1DARRAY;
|
||||
|
||||
(*KeywordMap)["samplerExternalOES"] = SAMPLEREXTERNALOES; // GL_OES_EGL_image_external
|
||||
|
||||
(*KeywordMap)["__samplerExternal2DY2YEXT"] = SAMPLEREXTERNAL2DY2YEXT; // GL_EXT_YUV_target
|
||||
|
||||
(*KeywordMap)["itexture1DArray"] = ITEXTURE1DARRAY;
|
||||
(*KeywordMap)["utexture1D"] = UTEXTURE1D;
|
||||
#ifndef GLSLANG_ANGLE
|
||||
(*KeywordMap)["texture1D"] = TEXTURE1D;
|
||||
(*KeywordMap)["itexture1D"] = ITEXTURE1D;
|
||||
(*KeywordMap)["utexture1D"] = UTEXTURE1D;
|
||||
(*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY;
|
||||
(*KeywordMap)["itexture1DArray"] = ITEXTURE1DARRAY;
|
||||
(*KeywordMap)["utexture1DArray"] = UTEXTURE1DARRAY;
|
||||
#endif
|
||||
(*KeywordMap)["textureBuffer"] = TEXTUREBUFFER;
|
||||
(*KeywordMap)["itexture2DRect"] = ITEXTURE2DRECT;
|
||||
(*KeywordMap)["utexture2DRect"] = UTEXTURE2DRECT;
|
||||
@ -644,10 +661,9 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["texture2DMSArray"] = TEXTURE2DMSARRAY;
|
||||
(*KeywordMap)["itexture2DMSArray"] = ITEXTURE2DMSARRAY;
|
||||
(*KeywordMap)["utexture2DMSArray"] = UTEXTURE2DMSARRAY;
|
||||
(*KeywordMap)["texture1D"] = TEXTURE1D;
|
||||
(*KeywordMap)["texture2DRect"] = TEXTURE2DRECT;
|
||||
(*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY;
|
||||
|
||||
#ifndef GLSLANG_ANGLE
|
||||
(*KeywordMap)["subpassInput"] = SUBPASSINPUT;
|
||||
(*KeywordMap)["subpassInputMS"] = SUBPASSINPUTMS;
|
||||
(*KeywordMap)["isubpassInput"] = ISUBPASSINPUT;
|
||||
@ -702,7 +718,6 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["f16subpassInputMS"] = F16SUBPASSINPUTMS;
|
||||
(*KeywordMap)["__explicitInterpAMD"] = EXPLICITINTERPAMD;
|
||||
(*KeywordMap)["pervertexNV"] = PERVERTEXNV;
|
||||
(*KeywordMap)["precise"] = PRECISE;
|
||||
|
||||
(*KeywordMap)["rayPayloadNV"] = PAYLOADNV;
|
||||
(*KeywordMap)["rayPayloadEXT"] = PAYLOADEXT;
|
||||
@ -724,6 +739,7 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["fcoopmatNV"] = FCOOPMATNV;
|
||||
(*KeywordMap)["icoopmatNV"] = ICOOPMATNV;
|
||||
(*KeywordMap)["ucoopmatNV"] = UCOOPMATNV;
|
||||
#endif
|
||||
|
||||
ReservedSet = new std::unordered_set<const char*, str_hash, str_eq>;
|
||||
|
||||
@ -855,7 +871,7 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token)
|
||||
case PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT;
|
||||
case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT;
|
||||
case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT;
|
||||
#ifndef GLSLANG_WEB
|
||||
#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
|
||||
case PpAtomConstInt16: parserToken->sType.lex.i = ppToken.ival; return INT16CONSTANT;
|
||||
case PpAtomConstUint16: parserToken->sType.lex.i = ppToken.ival; return UINT16CONSTANT;
|
||||
case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT;
|
||||
@ -1004,16 +1020,17 @@ int TScanContext::tokenizeIdentifier()
|
||||
return keyword;
|
||||
return es30ReservedFromGLSL(130);
|
||||
|
||||
case NONUNIFORM:
|
||||
if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier))
|
||||
return keyword;
|
||||
else
|
||||
return identifierOrType();
|
||||
case ATTRIBUTE:
|
||||
case VARYING:
|
||||
if (parseContext.isEsProfile() && parseContext.version >= 300)
|
||||
reservedWord();
|
||||
return keyword;
|
||||
#ifndef GLSLANG_ANGLE
|
||||
case NONUNIFORM:
|
||||
if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier))
|
||||
return keyword;
|
||||
else
|
||||
return identifierOrType();
|
||||
case PAYLOADNV:
|
||||
case PAYLOADINNV:
|
||||
case HITATTRNV:
|
||||
@ -1047,13 +1064,17 @@ int TScanContext::tokenizeIdentifier()
|
||||
return keyword;
|
||||
return es30ReservedFromGLSL(420);
|
||||
|
||||
case COHERENT:
|
||||
case SUBROUTINE:
|
||||
return es30ReservedFromGLSL(400);
|
||||
|
||||
case DEVICECOHERENT:
|
||||
case QUEUEFAMILYCOHERENT:
|
||||
case WORKGROUPCOHERENT:
|
||||
case SUBGROUPCOHERENT:
|
||||
case SHADERCALLCOHERENT:
|
||||
case NONPRIVATE:
|
||||
#endif
|
||||
case COHERENT:
|
||||
case RESTRICT:
|
||||
case READONLY:
|
||||
case WRITEONLY:
|
||||
@ -1082,9 +1103,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation))
|
||||
return keyword;
|
||||
return es30ReservedFromGLSL(400);
|
||||
|
||||
case SUBROUTINE:
|
||||
return es30ReservedFromGLSL(400);
|
||||
#endif
|
||||
case SHARED:
|
||||
if ((parseContext.isEsProfile() && parseContext.version < 300) ||
|
||||
@ -1121,6 +1139,7 @@ int TScanContext::tokenizeIdentifier()
|
||||
return matNxM();
|
||||
|
||||
#ifndef GLSLANG_WEB
|
||||
#ifndef GLSLANG_ANGLE
|
||||
case DMAT2:
|
||||
case DMAT3:
|
||||
case DMAT4:
|
||||
@ -1141,6 +1160,7 @@ int TScanContext::tokenizeIdentifier()
|
||||
case IMAGE1DARRAY:
|
||||
case IIMAGE1DARRAY:
|
||||
case UIMAGE1DARRAY:
|
||||
#endif
|
||||
case IMAGE2DRECT:
|
||||
case IIMAGE2DRECT:
|
||||
case UIMAGE2DRECT:
|
||||
@ -1189,6 +1209,7 @@ int TScanContext::tokenizeIdentifier()
|
||||
afterType = true;
|
||||
return secondGenerationImage();
|
||||
|
||||
#ifndef GLSLANG_ANGLE
|
||||
case DOUBLE:
|
||||
case DVEC2:
|
||||
case DVEC3:
|
||||
@ -1343,6 +1364,7 @@ int TScanContext::tokenizeIdentifier()
|
||||
return keyword;
|
||||
|
||||
return identifierOrType();
|
||||
#endif
|
||||
|
||||
case SAMPLERCUBEARRAY:
|
||||
case SAMPLERCUBEARRAYSHADOW:
|
||||
@ -1419,6 +1441,7 @@ int TScanContext::tokenizeIdentifier()
|
||||
return identifierOrType();
|
||||
|
||||
#ifndef GLSLANG_WEB
|
||||
#ifndef GLSLANG_ANGLE
|
||||
case ISAMPLER1D:
|
||||
case ISAMPLER1DARRAY:
|
||||
case SAMPLER1DARRAYSHADOW:
|
||||
@ -1426,6 +1449,23 @@ int TScanContext::tokenizeIdentifier()
|
||||
case USAMPLER1DARRAY:
|
||||
afterType = true;
|
||||
return es30ReservedFromGLSL(130);
|
||||
|
||||
case SAMPLER1D:
|
||||
case SAMPLER1DSHADOW:
|
||||
afterType = true;
|
||||
if (parseContext.isEsProfile())
|
||||
reservedWord();
|
||||
return keyword;
|
||||
|
||||
case SAMPLER1DARRAY:
|
||||
afterType = true;
|
||||
if (parseContext.isEsProfile() && parseContext.version == 300)
|
||||
reservedWord();
|
||||
else if ((parseContext.isEsProfile() && parseContext.version < 300) ||
|
||||
(!parseContext.isEsProfile() && parseContext.version < 130))
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
#endif
|
||||
case ISAMPLER2DRECT:
|
||||
case USAMPLER2DRECT:
|
||||
afterType = true;
|
||||
@ -1469,13 +1509,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
return keyword;
|
||||
return es30ReservedFromGLSL(150);
|
||||
|
||||
case SAMPLER1D:
|
||||
case SAMPLER1DSHADOW:
|
||||
afterType = true;
|
||||
if (parseContext.isEsProfile())
|
||||
reservedWord();
|
||||
return keyword;
|
||||
|
||||
case SAMPLER2DRECT:
|
||||
case SAMPLER2DRECTSHADOW:
|
||||
afterType = true;
|
||||
@ -1489,15 +1522,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
}
|
||||
return keyword;
|
||||
|
||||
case SAMPLER1DARRAY:
|
||||
afterType = true;
|
||||
if (parseContext.isEsProfile() && parseContext.version == 300)
|
||||
reservedWord();
|
||||
else if ((parseContext.isEsProfile() && parseContext.version < 300) ||
|
||||
(!parseContext.isEsProfile() && parseContext.version < 130))
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
|
||||
case SAMPLEREXTERNALOES:
|
||||
afterType = true;
|
||||
if (parseContext.symbolTable.atBuiltInLevel() ||
|
||||
@ -1513,10 +1537,14 @@ int TScanContext::tokenizeIdentifier()
|
||||
return keyword;
|
||||
return identifierOrType();
|
||||
|
||||
case ITEXTURE1DARRAY:
|
||||
case UTEXTURE1D:
|
||||
#ifndef GLSLANG_ANGLE
|
||||
case TEXTURE1D:
|
||||
case ITEXTURE1D:
|
||||
case UTEXTURE1D:
|
||||
case TEXTURE1DARRAY:
|
||||
case ITEXTURE1DARRAY:
|
||||
case UTEXTURE1DARRAY:
|
||||
#endif
|
||||
case TEXTUREBUFFER:
|
||||
case ITEXTURE2DRECT:
|
||||
case UTEXTURE2DRECT:
|
||||
@ -1528,14 +1556,24 @@ int TScanContext::tokenizeIdentifier()
|
||||
case TEXTURE2DMSARRAY:
|
||||
case ITEXTURE2DMSARRAY:
|
||||
case UTEXTURE2DMSARRAY:
|
||||
case TEXTURE1D:
|
||||
case TEXTURE2DRECT:
|
||||
case TEXTURE1DARRAY:
|
||||
if (parseContext.spvVersion.vulkan > 0)
|
||||
return keyword;
|
||||
else
|
||||
return identifierOrType();
|
||||
|
||||
case PRECISE:
|
||||
if ((parseContext.isEsProfile() &&
|
||||
(parseContext.version >= 320 || parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5))) ||
|
||||
(!parseContext.isEsProfile() && parseContext.version >= 400))
|
||||
return keyword;
|
||||
if (parseContext.isEsProfile() && parseContext.version == 310) {
|
||||
reservedWord();
|
||||
return keyword;
|
||||
}
|
||||
return identifierOrType();
|
||||
|
||||
#ifndef GLSLANG_ANGLE
|
||||
case SUBPASSINPUT:
|
||||
case SUBPASSINPUTMS:
|
||||
case ISUBPASSINPUT:
|
||||
@ -1609,17 +1647,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
return keyword;
|
||||
return identifierOrType();
|
||||
|
||||
case PRECISE:
|
||||
if ((parseContext.isEsProfile() &&
|
||||
(parseContext.version >= 320 || parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5))) ||
|
||||
(!parseContext.isEsProfile() && parseContext.version >= 400))
|
||||
return keyword;
|
||||
if (parseContext.isEsProfile() && parseContext.version == 310) {
|
||||
reservedWord();
|
||||
return keyword;
|
||||
}
|
||||
return identifierOrType();
|
||||
|
||||
case PERPRIMITIVENV:
|
||||
case PERVIEWNV:
|
||||
case PERTASKNV:
|
||||
@ -1649,6 +1676,7 @@ int TScanContext::tokenizeIdentifier()
|
||||
return keyword;
|
||||
else
|
||||
return identifierOrType();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
default:
|
||||
|
@ -58,10 +58,16 @@
|
||||
//
|
||||
// m4 -P
|
||||
//
|
||||
// A similar mechanism is used to exclude grammar for ANGLE with
|
||||
// GLSLANG_ANGLE_EXCLUDE_ON, GLSLANG_ANGLE_EXCLUDE_OFF and -DGLSLANG_ANGLE
|
||||
//
|
||||
|
||||
m4_define(`GLSLANG_WEB_EXCLUDE_ON', `m4_ifdef(`GLSLANG_WEB', `m4_divert(`-1')')')
|
||||
m4_define(`GLSLANG_WEB_EXCLUDE_OFF', `m4_ifdef(`GLSLANG_WEB', `m4_divert')')
|
||||
|
||||
m4_define(`GLSLANG_ANGLE_EXCLUDE_ON', `m4_ifdef(`GLSLANG_ANGLE', `m4_divert(`-1')')')
|
||||
m4_define(`GLSLANG_ANGLE_EXCLUDE_OFF', `m4_ifdef(`GLSLANG_ANGLE', `m4_divert')')
|
||||
|
||||
/**
|
||||
* This is bison grammar and productions for parsing all versions of the
|
||||
* GLSL shading languages.
|
||||
@ -177,6 +183,9 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
||||
GLSLANG_WEB_EXCLUDE_ON
|
||||
|
||||
%token <lex> ATTRIBUTE VARYING
|
||||
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
|
||||
%token <lex> FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T
|
||||
%token <lex> INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T
|
||||
%token <lex> I64VEC2 I64VEC3 I64VEC4
|
||||
@ -209,23 +218,31 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
%token <lex> RAYQUERYEXT
|
||||
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
|
||||
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
|
||||
// combined image/sampler
|
||||
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
|
||||
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
|
||||
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
||||
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
|
||||
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
|
||||
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
|
||||
%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
|
||||
%token <lex> SAMPLEREXTERNALOES
|
||||
%token <lex> SAMPLEREXTERNAL2DY2YEXT
|
||||
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
|
||||
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
||||
%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY
|
||||
|
||||
%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
|
||||
%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
|
||||
%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
|
||||
%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
|
||||
%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
|
||||
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
|
||||
// images
|
||||
%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
|
||||
%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
|
||||
@ -238,10 +255,14 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
|
||||
%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
|
||||
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
|
||||
%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
|
||||
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
|
||||
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
|
||||
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
|
||||
// texture without sampler
|
||||
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
|
||||
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
|
||||
@ -251,6 +272,8 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
|
||||
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
|
||||
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
|
||||
%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
|
||||
%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
|
||||
%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
|
||||
@ -259,6 +282,8 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
%token <lex> SUBPASSINPUT SUBPASSINPUTMS ISUBPASSINPUT ISUBPASSINPUTMS USUBPASSINPUT USUBPASSINPUTMS
|
||||
%token <lex> F16SUBPASSINPUT F16SUBPASSINPUTMS
|
||||
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
|
||||
%token <lex> LEFT_OP RIGHT_OP
|
||||
@ -285,16 +310,26 @@ GLSLANG_WEB_EXCLUDE_OFF
|
||||
%token <lex> FLAT SMOOTH LAYOUT
|
||||
|
||||
GLSLANG_WEB_EXCLUDE_ON
|
||||
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
|
||||
%token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
|
||||
%token <lex> INT64CONSTANT UINT64CONSTANT
|
||||
%token <lex> SUBROUTINE DEMOTE
|
||||
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
|
||||
%token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
|
||||
%token <lex> PATCH SAMPLE NONUNIFORM
|
||||
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
|
||||
%token <lex> NONUNIFORM
|
||||
%token <lex> DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
|
||||
%token <lex> SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT
|
||||
%token <lex> NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
|
||||
%token <lex> EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
|
||||
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
|
||||
%token <lex> PATCH SAMPLE
|
||||
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY
|
||||
%token <lex> NOPERSPECTIVE
|
||||
%token <lex> PRECISE
|
||||
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
|
||||
%type <interm> assignment_operator unary_operator
|
||||
@ -343,11 +378,19 @@ GLSLANG_WEB_EXCLUDE_OFF
|
||||
%type <interm.identifierList> identifier_list
|
||||
|
||||
GLSLANG_WEB_EXCLUDE_ON
|
||||
%type <interm.type> precise_qualifier non_uniform_qualifier
|
||||
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
|
||||
%type <interm.type> non_uniform_qualifier
|
||||
%type <interm.intermNode> demote_statement
|
||||
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
|
||||
%type <interm.type> precise_qualifier
|
||||
%type <interm.typeList> type_name_list
|
||||
%type <interm.attributes> attribute attribute_list single_attribute
|
||||
%type <interm.intermNode> demote_statement
|
||||
%type <interm.intermTypedNode> initializer_list
|
||||
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
|
||||
%start translation_unit
|
||||
@ -382,6 +425,7 @@ primary_expression
|
||||
$$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
|
||||
}
|
||||
GLSLANG_WEB_EXCLUDE_ON
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| STRING_LITERAL {
|
||||
$$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
|
||||
}
|
||||
@ -419,6 +463,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
parseContext.float16Check($1.loc, "half float literal");
|
||||
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
;
|
||||
|
||||
@ -546,11 +591,13 @@ function_identifier
|
||||
}
|
||||
}
|
||||
GLSLANG_WEB_EXCLUDE_ON
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| non_uniform_qualifier {
|
||||
// Constructor
|
||||
$$.intermNode = 0;
|
||||
$$.function = parseContext.handleConstructorCall($1.loc, $1);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
;
|
||||
|
||||
@ -1207,6 +1254,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.nopersp = true;
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| EXPLICITINTERPAMD {
|
||||
parseContext.globalCheck($1.loc, "__explicitInterpAMD");
|
||||
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
|
||||
@ -1246,6 +1294,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.perTaskNV = true;
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
;
|
||||
|
||||
@ -1330,9 +1379,11 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
// allow inheritance of storage qualifier from block declaration
|
||||
$$ = $1;
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| non_uniform_qualifier {
|
||||
$$ = $1;
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
;
|
||||
|
||||
@ -1421,6 +1472,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.sample = true;
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| HITATTRNV {
|
||||
parseContext.globalCheck($1.loc, "hitAttributeNV");
|
||||
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
|
||||
@ -1499,10 +1551,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.storage = EvqCallableDataIn;
|
||||
}
|
||||
| COHERENT {
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.coherent = true;
|
||||
}
|
||||
| DEVICECOHERENT {
|
||||
$$.init($1.loc);
|
||||
parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
|
||||
@ -1533,6 +1581,23 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
|
||||
$$.qualifier.shadercallcoherent = true;
|
||||
}
|
||||
| SUBROUTINE {
|
||||
parseContext.spvRemoved($1.loc, "subroutine");
|
||||
parseContext.globalCheck($1.loc, "subroutine");
|
||||
parseContext.unimplemented($1.loc, "subroutine");
|
||||
$$.init($1.loc);
|
||||
}
|
||||
| SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
|
||||
parseContext.spvRemoved($1.loc, "subroutine");
|
||||
parseContext.globalCheck($1.loc, "subroutine");
|
||||
parseContext.unimplemented($1.loc, "subroutine");
|
||||
$$.init($1.loc);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
| COHERENT {
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.coherent = true;
|
||||
}
|
||||
| VOLATILE {
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.volatil = true;
|
||||
@ -1549,28 +1614,18 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.writeonly = true;
|
||||
}
|
||||
| SUBROUTINE {
|
||||
parseContext.spvRemoved($1.loc, "subroutine");
|
||||
parseContext.globalCheck($1.loc, "subroutine");
|
||||
parseContext.unimplemented($1.loc, "subroutine");
|
||||
$$.init($1.loc);
|
||||
}
|
||||
| SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
|
||||
parseContext.spvRemoved($1.loc, "subroutine");
|
||||
parseContext.globalCheck($1.loc, "subroutine");
|
||||
parseContext.unimplemented($1.loc, "subroutine");
|
||||
$$.init($1.loc);
|
||||
}
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
;
|
||||
|
||||
GLSLANG_WEB_EXCLUDE_ON
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
non_uniform_qualifier
|
||||
: NONUNIFORM {
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.nonUniform = true;
|
||||
}
|
||||
;
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
|
||||
type_name_list
|
||||
: IDENTIFIER {
|
||||
@ -1804,6 +1859,7 @@ type_specifier_nonarray
|
||||
$$.setMatrix(4, 4);
|
||||
}
|
||||
GLSLANG_WEB_EXCLUDE_ON
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| DOUBLE {
|
||||
parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
|
||||
if (! parseContext.symbolTable.atBuiltInLevel())
|
||||
@ -2422,6 +2478,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, Esd1D);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
| SAMPLER2D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
@ -2459,6 +2516,17 @@ GLSLANG_WEB_EXCLUDE_OFF
|
||||
$$.sampler.set(EbtFloat, Esd2D, true, true);
|
||||
}
|
||||
GLSLANG_WEB_EXCLUDE_ON
|
||||
| SAMPLERCUBEARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, EsdCube, true);
|
||||
}
|
||||
| SAMPLERCUBEARRAYSHADOW {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, EsdCube, true, true);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| SAMPLER1DSHADOW {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2474,16 +2542,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, Esd1D, true, true);
|
||||
}
|
||||
| SAMPLERCUBEARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, EsdCube, true);
|
||||
}
|
||||
| SAMPLERCUBEARRAYSHADOW {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, EsdCube, true, true);
|
||||
}
|
||||
| F16SAMPLER1D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
@ -2567,6 +2625,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtInt, Esd1D);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
| ISAMPLER2D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
@ -2604,26 +2663,11 @@ GLSLANG_WEB_EXCLUDE_OFF
|
||||
$$.sampler.set(EbtUint, EsdCube);
|
||||
}
|
||||
GLSLANG_WEB_EXCLUDE_ON
|
||||
| ISAMPLER1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtInt, Esd1D, true);
|
||||
}
|
||||
| ISAMPLERCUBEARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtInt, EsdCube, true);
|
||||
}
|
||||
| USAMPLER1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtUint, Esd1D);
|
||||
}
|
||||
| USAMPLER1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtUint, Esd1D, true);
|
||||
}
|
||||
| USAMPLERCUBEARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2644,6 +2688,23 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, EsdCube, true);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| ISAMPLER1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtInt, Esd1D, true);
|
||||
}
|
||||
| USAMPLER1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtUint, Esd1D);
|
||||
}
|
||||
| USAMPLER1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtUint, Esd1D, true);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
| USAMPLER2DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
@ -2731,18 +2792,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, EsdRect, false, true);
|
||||
}
|
||||
| F16SAMPLER2DRECT {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, EsdRect);
|
||||
}
|
||||
| F16SAMPLER2DRECTSHADOW {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, EsdRect, false, true);
|
||||
}
|
||||
| ISAMPLER2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2758,12 +2807,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, EsdBuffer);
|
||||
}
|
||||
| F16SAMPLERBUFFER {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, EsdBuffer);
|
||||
}
|
||||
| ISAMPLERBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2779,12 +2822,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, Esd2D, false, false, true);
|
||||
}
|
||||
| F16SAMPLER2DMS {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, Esd2D, false, false, true);
|
||||
}
|
||||
| ISAMPLER2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2800,12 +2837,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, Esd2D, true, false, true);
|
||||
}
|
||||
| F16SAMPLER2DMSARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, Esd2D, true, false, true);
|
||||
}
|
||||
| ISAMPLER2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2816,11 +2847,129 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtUint, Esd2D, true, false, true);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| F16SAMPLER2DRECT {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, EsdRect);
|
||||
}
|
||||
| F16SAMPLER2DRECTSHADOW {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, EsdRect, false, true);
|
||||
}
|
||||
| F16SAMPLERBUFFER {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, EsdBuffer);
|
||||
}
|
||||
| F16SAMPLER2DMS {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, Esd2D, false, false, true);
|
||||
}
|
||||
| F16SAMPLER2DMSARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, Esd2D, true, false, true);
|
||||
}
|
||||
| TEXTURE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd1D);
|
||||
}
|
||||
| TEXTURE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd1D, true);
|
||||
}
|
||||
| ITEXTURE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd1D);
|
||||
}
|
||||
| ITEXTURE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd1D, true);
|
||||
}
|
||||
| UTEXTURE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd1D);
|
||||
}
|
||||
| UTEXTURE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd1D, true);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
| TEXTURE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, EsdRect);
|
||||
}
|
||||
| ITEXTURE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, EsdRect);
|
||||
}
|
||||
| UTEXTURE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, EsdRect);
|
||||
}
|
||||
| TEXTUREBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, EsdBuffer);
|
||||
}
|
||||
| ITEXTUREBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, EsdBuffer);
|
||||
}
|
||||
| UTEXTUREBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, EsdBuffer);
|
||||
}
|
||||
| TEXTURE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
|
||||
}
|
||||
| ITEXTURE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
|
||||
}
|
||||
| UTEXTURE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
|
||||
}
|
||||
| TEXTURE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
|
||||
}
|
||||
| ITEXTURE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
|
||||
}
|
||||
| UTEXTURE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| F16TEXTURE1D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
@ -2845,11 +2994,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat16, EsdCube);
|
||||
}
|
||||
| TEXTURE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd1D, true);
|
||||
}
|
||||
| F16TEXTURE1DARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
@ -2868,121 +3012,35 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat16, EsdCube, true);
|
||||
}
|
||||
| ITEXTURE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd1D);
|
||||
}
|
||||
| ITEXTURE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd1D, true);
|
||||
}
|
||||
| UTEXTURE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd1D);
|
||||
}
|
||||
| UTEXTURE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd1D, true);
|
||||
}
|
||||
| TEXTURE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, EsdRect);
|
||||
}
|
||||
| F16TEXTURE2DRECT {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat16, EsdRect);
|
||||
}
|
||||
| ITEXTURE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, EsdRect);
|
||||
}
|
||||
| UTEXTURE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, EsdRect);
|
||||
}
|
||||
| TEXTUREBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, EsdBuffer);
|
||||
}
|
||||
| F16TEXTUREBUFFER {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat16, EsdBuffer);
|
||||
}
|
||||
| ITEXTUREBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, EsdBuffer);
|
||||
}
|
||||
| UTEXTUREBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, EsdBuffer);
|
||||
}
|
||||
| TEXTURE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
|
||||
}
|
||||
| F16TEXTURE2DMS {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
|
||||
}
|
||||
| ITEXTURE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
|
||||
}
|
||||
| UTEXTURE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
|
||||
}
|
||||
| TEXTURE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
|
||||
}
|
||||
| F16TEXTURE2DMSARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
|
||||
}
|
||||
| ITEXTURE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
|
||||
}
|
||||
| UTEXTURE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
|
||||
}
|
||||
| IMAGE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd1D);
|
||||
}
|
||||
| F16IMAGE1D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd1D);
|
||||
}
|
||||
| IIMAGE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2993,17 +3051,12 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtUint, Esd1D);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
| IMAGE2D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd2D);
|
||||
}
|
||||
| F16IMAGE2D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D);
|
||||
}
|
||||
| IIMAGE2D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3019,12 +3072,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd3D);
|
||||
}
|
||||
| F16IMAGE3D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd3D);
|
||||
}
|
||||
| IIMAGE3D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3040,12 +3087,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, EsdRect);
|
||||
}
|
||||
| F16IMAGE2DRECT {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdRect);
|
||||
}
|
||||
| IIMAGE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3061,12 +3102,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, EsdCube);
|
||||
}
|
||||
| F16IMAGECUBE {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdCube);
|
||||
}
|
||||
| IIMAGECUBE {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3082,12 +3117,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, EsdBuffer);
|
||||
}
|
||||
| F16IMAGEBUFFER {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdBuffer);
|
||||
}
|
||||
| IIMAGEBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3103,12 +3132,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd1D, true);
|
||||
}
|
||||
| F16IMAGE1DARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd1D, true);
|
||||
}
|
||||
| IIMAGE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3124,12 +3147,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd2D, true);
|
||||
}
|
||||
| F16IMAGE2DARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D, true);
|
||||
}
|
||||
| IIMAGE2DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3145,12 +3162,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, EsdCube, true);
|
||||
}
|
||||
| F16IMAGECUBEARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdCube, true);
|
||||
}
|
||||
| IIMAGECUBEARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3166,12 +3177,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
|
||||
}
|
||||
| F16IMAGE2DMS {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
|
||||
}
|
||||
| IIMAGE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3187,12 +3192,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
|
||||
}
|
||||
| F16IMAGE2DMSARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
|
||||
}
|
||||
| IIMAGE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3203,6 +3202,74 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtUint, Esd2D, true, false, true);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| F16IMAGE1D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd1D);
|
||||
}
|
||||
| F16IMAGE2D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D);
|
||||
}
|
||||
| F16IMAGE3D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd3D);
|
||||
}
|
||||
| F16IMAGE2DRECT {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdRect);
|
||||
}
|
||||
| F16IMAGECUBE {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdCube);
|
||||
}
|
||||
| F16IMAGEBUFFER {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdBuffer);
|
||||
}
|
||||
| F16IMAGE1DARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd1D, true);
|
||||
}
|
||||
| F16IMAGE2DARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D, true);
|
||||
}
|
||||
| F16IMAGECUBEARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdCube, true);
|
||||
}
|
||||
| F16IMAGE2DMS {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
|
||||
}
|
||||
| F16IMAGE2DMSARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
| SAMPLEREXTERNALOES { // GL_OES_EGL_image_external
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3215,6 +3282,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.sampler.set(EbtFloat, Esd2D);
|
||||
$$.sampler.yuv = true;
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| SUBPASSINPUT {
|
||||
parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
@ -3283,6 +3351,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
||||
$$.basicType = EbtUint;
|
||||
$$.coopmat = true;
|
||||
}
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
| struct_specifier {
|
||||
$$ = $1;
|
||||
@ -3485,11 +3554,14 @@ simple_statement
|
||||
| iteration_statement { $$ = $1; }
|
||||
| jump_statement { $$ = $1; }
|
||||
GLSLANG_WEB_EXCLUDE_ON
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
| demote_statement { $$ = $1; }
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
;
|
||||
|
||||
GLSLANG_WEB_EXCLUDE_ON
|
||||
GLSLANG_ANGLE_EXCLUDE_ON
|
||||
demote_statement
|
||||
: DEMOTE SEMICOLON {
|
||||
parseContext.requireStage($1.loc, EShLangFragment, "demote");
|
||||
@ -3497,6 +3569,7 @@ demote_statement
|
||||
$$ = parseContext.intermediate.addBranch(EOpDemote, $1.loc);
|
||||
}
|
||||
;
|
||||
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||
GLSLANG_WEB_EXCLUDE_OFF
|
||||
|
||||
compound_statement
|
||||
|
@ -58,6 +58,12 @@
|
||||
//
|
||||
// m4 -P
|
||||
//
|
||||
// A similar mechanism is used to exclude grammar for ANGLE with
|
||||
// GLSLANG_ANGLE_EXCLUDE_ON, GLSLANG_ANGLE_EXCLUDE_OFF and -DGLSLANG_ANGLE
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -177,6 +183,9 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
||||
|
||||
|
||||
%token <lex> ATTRIBUTE VARYING
|
||||
|
||||
|
||||
|
||||
%token <lex> FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T
|
||||
%token <lex> INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T
|
||||
%token <lex> I64VEC2 I64VEC3 I64VEC4
|
||||
@ -209,23 +218,31 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
||||
%token <lex> RAYQUERYEXT
|
||||
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
|
||||
|
||||
|
||||
|
||||
// combined image/sampler
|
||||
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
|
||||
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
|
||||
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
||||
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
|
||||
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
|
||||
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
|
||||
%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
|
||||
%token <lex> SAMPLEREXTERNALOES
|
||||
%token <lex> SAMPLEREXTERNAL2DY2YEXT
|
||||
|
||||
|
||||
|
||||
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
||||
%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY
|
||||
|
||||
%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
|
||||
%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
|
||||
%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
|
||||
%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
|
||||
%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
|
||||
|
||||
|
||||
|
||||
// images
|
||||
%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
|
||||
%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
|
||||
@ -238,10 +255,14 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
||||
%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
|
||||
%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
|
||||
|
||||
|
||||
|
||||
%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
|
||||
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
|
||||
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
|
||||
|
||||
|
||||
|
||||
// texture without sampler
|
||||
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
|
||||
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
|
||||
@ -251,6 +272,8 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
||||
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
|
||||
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
|
||||
|
||||
|
||||
|
||||
%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
|
||||
%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
|
||||
%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
|
||||
@ -261,6 +284,8 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
%token <lex> LEFT_OP RIGHT_OP
|
||||
%token <lex> INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_OP
|
||||
%token <lex> AND_OP OR_OP XOR_OP MUL_ASSIGN DIV_ASSIGN ADD_ASSIGN
|
||||
@ -285,18 +310,28 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
||||
%token <lex> FLAT SMOOTH LAYOUT
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
%token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
|
||||
%token <lex> INT64CONSTANT UINT64CONSTANT
|
||||
%token <lex> SUBROUTINE DEMOTE
|
||||
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
|
||||
%token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
|
||||
%token <lex> PATCH SAMPLE NONUNIFORM
|
||||
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
|
||||
%token <lex> NONUNIFORM
|
||||
%token <lex> DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
|
||||
%token <lex> SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT
|
||||
%token <lex> NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
|
||||
%token <lex> EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
|
||||
|
||||
|
||||
|
||||
%token <lex> PATCH SAMPLE
|
||||
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY
|
||||
%token <lex> NOPERSPECTIVE
|
||||
%token <lex> PRECISE
|
||||
|
||||
|
||||
|
||||
%type <interm> assignment_operator unary_operator
|
||||
%type <interm.intermTypedNode> variable_identifier primary_expression postfix_expression
|
||||
%type <interm.intermTypedNode> expression integer_expression assignment_expression
|
||||
@ -343,13 +378,21 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
||||
%type <interm.identifierList> identifier_list
|
||||
|
||||
|
||||
%type <interm.type> precise_qualifier non_uniform_qualifier
|
||||
|
||||
|
||||
|
||||
%type <interm.type> non_uniform_qualifier
|
||||
%type <interm.intermNode> demote_statement
|
||||
|
||||
|
||||
|
||||
%type <interm.type> precise_qualifier
|
||||
%type <interm.typeList> type_name_list
|
||||
%type <interm.attributes> attribute attribute_list single_attribute
|
||||
%type <interm.intermNode> demote_statement
|
||||
%type <interm.intermTypedNode> initializer_list
|
||||
|
||||
|
||||
|
||||
%start translation_unit
|
||||
%%
|
||||
|
||||
@ -382,6 +425,7 @@ primary_expression
|
||||
$$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
|
||||
}
|
||||
|
||||
|
||||
| STRING_LITERAL {
|
||||
$$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
|
||||
}
|
||||
@ -420,6 +464,7 @@ primary_expression
|
||||
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
|
||||
}
|
||||
|
||||
|
||||
;
|
||||
|
||||
postfix_expression
|
||||
@ -546,12 +591,14 @@ function_identifier
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
| non_uniform_qualifier {
|
||||
// Constructor
|
||||
$$.intermNode = 0;
|
||||
$$.function = parseContext.handleConstructorCall($1.loc, $1);
|
||||
}
|
||||
|
||||
|
||||
;
|
||||
|
||||
unary_expression
|
||||
@ -1207,6 +1254,7 @@ interpolation_qualifier
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.nopersp = true;
|
||||
}
|
||||
|
||||
| EXPLICITINTERPAMD {
|
||||
parseContext.globalCheck($1.loc, "__explicitInterpAMD");
|
||||
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
|
||||
@ -1247,6 +1295,7 @@ interpolation_qualifier
|
||||
$$.qualifier.perTaskNV = true;
|
||||
}
|
||||
|
||||
|
||||
;
|
||||
|
||||
layout_qualifier
|
||||
@ -1330,10 +1379,12 @@ single_type_qualifier
|
||||
// allow inheritance of storage qualifier from block declaration
|
||||
$$ = $1;
|
||||
}
|
||||
|
||||
| non_uniform_qualifier {
|
||||
$$ = $1;
|
||||
}
|
||||
|
||||
|
||||
;
|
||||
|
||||
storage_qualifier
|
||||
@ -1421,6 +1472,7 @@ storage_qualifier
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.sample = true;
|
||||
}
|
||||
|
||||
| HITATTRNV {
|
||||
parseContext.globalCheck($1.loc, "hitAttributeNV");
|
||||
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
|
||||
@ -1499,10 +1551,6 @@ storage_qualifier
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.storage = EvqCallableDataIn;
|
||||
}
|
||||
| COHERENT {
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.coherent = true;
|
||||
}
|
||||
| DEVICECOHERENT {
|
||||
$$.init($1.loc);
|
||||
parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
|
||||
@ -1533,6 +1581,23 @@ storage_qualifier
|
||||
parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
|
||||
$$.qualifier.shadercallcoherent = true;
|
||||
}
|
||||
| SUBROUTINE {
|
||||
parseContext.spvRemoved($1.loc, "subroutine");
|
||||
parseContext.globalCheck($1.loc, "subroutine");
|
||||
parseContext.unimplemented($1.loc, "subroutine");
|
||||
$$.init($1.loc);
|
||||
}
|
||||
| SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
|
||||
parseContext.spvRemoved($1.loc, "subroutine");
|
||||
parseContext.globalCheck($1.loc, "subroutine");
|
||||
parseContext.unimplemented($1.loc, "subroutine");
|
||||
$$.init($1.loc);
|
||||
}
|
||||
|
||||
| COHERENT {
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.coherent = true;
|
||||
}
|
||||
| VOLATILE {
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.volatil = true;
|
||||
@ -1549,22 +1614,11 @@ storage_qualifier
|
||||
$$.init($1.loc);
|
||||
$$.qualifier.writeonly = true;
|
||||
}
|
||||
| SUBROUTINE {
|
||||
parseContext.spvRemoved($1.loc, "subroutine");
|
||||
parseContext.globalCheck($1.loc, "subroutine");
|
||||
parseContext.unimplemented($1.loc, "subroutine");
|
||||
$$.init($1.loc);
|
||||
}
|
||||
| SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
|
||||
parseContext.spvRemoved($1.loc, "subroutine");
|
||||
parseContext.globalCheck($1.loc, "subroutine");
|
||||
parseContext.unimplemented($1.loc, "subroutine");
|
||||
$$.init($1.loc);
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
||||
non_uniform_qualifier
|
||||
: NONUNIFORM {
|
||||
$$.init($1.loc);
|
||||
@ -1572,6 +1626,7 @@ non_uniform_qualifier
|
||||
}
|
||||
;
|
||||
|
||||
|
||||
type_name_list
|
||||
: IDENTIFIER {
|
||||
// TODO
|
||||
@ -1804,6 +1859,7 @@ type_specifier_nonarray
|
||||
$$.setMatrix(4, 4);
|
||||
}
|
||||
|
||||
|
||||
| DOUBLE {
|
||||
parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
|
||||
if (! parseContext.symbolTable.atBuiltInLevel())
|
||||
@ -2423,6 +2479,7 @@ type_specifier_nonarray
|
||||
$$.sampler.set(EbtFloat, Esd1D);
|
||||
}
|
||||
|
||||
|
||||
| SAMPLER2D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2459,6 +2516,17 @@ type_specifier_nonarray
|
||||
$$.sampler.set(EbtFloat, Esd2D, true, true);
|
||||
}
|
||||
|
||||
| SAMPLERCUBEARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, EsdCube, true);
|
||||
}
|
||||
| SAMPLERCUBEARRAYSHADOW {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, EsdCube, true, true);
|
||||
}
|
||||
|
||||
| SAMPLER1DSHADOW {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2474,16 +2542,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, Esd1D, true, true);
|
||||
}
|
||||
| SAMPLERCUBEARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, EsdCube, true);
|
||||
}
|
||||
| SAMPLERCUBEARRAYSHADOW {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, EsdCube, true, true);
|
||||
}
|
||||
| F16SAMPLER1D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
@ -2568,6 +2626,7 @@ type_specifier_nonarray
|
||||
$$.sampler.set(EbtInt, Esd1D);
|
||||
}
|
||||
|
||||
|
||||
| ISAMPLER2D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2604,26 +2663,11 @@ type_specifier_nonarray
|
||||
$$.sampler.set(EbtUint, EsdCube);
|
||||
}
|
||||
|
||||
| ISAMPLER1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtInt, Esd1D, true);
|
||||
}
|
||||
| ISAMPLERCUBEARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtInt, EsdCube, true);
|
||||
}
|
||||
| USAMPLER1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtUint, Esd1D);
|
||||
}
|
||||
| USAMPLER1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtUint, Esd1D, true);
|
||||
}
|
||||
| USAMPLERCUBEARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2645,6 +2689,23 @@ type_specifier_nonarray
|
||||
$$.sampler.setTexture(EbtUint, EsdCube, true);
|
||||
}
|
||||
|
||||
| ISAMPLER1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtInt, Esd1D, true);
|
||||
}
|
||||
| USAMPLER1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtUint, Esd1D);
|
||||
}
|
||||
| USAMPLER1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtUint, Esd1D, true);
|
||||
}
|
||||
|
||||
|
||||
| USAMPLER2DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2731,18 +2792,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, EsdRect, false, true);
|
||||
}
|
||||
| F16SAMPLER2DRECT {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, EsdRect);
|
||||
}
|
||||
| F16SAMPLER2DRECTSHADOW {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, EsdRect, false, true);
|
||||
}
|
||||
| ISAMPLER2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2758,12 +2807,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, EsdBuffer);
|
||||
}
|
||||
| F16SAMPLERBUFFER {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, EsdBuffer);
|
||||
}
|
||||
| ISAMPLERBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2779,12 +2822,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, Esd2D, false, false, true);
|
||||
}
|
||||
| F16SAMPLER2DMS {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, Esd2D, false, false, true);
|
||||
}
|
||||
| ISAMPLER2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2800,12 +2837,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat, Esd2D, true, false, true);
|
||||
}
|
||||
| F16SAMPLER2DMSARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, Esd2D, true, false, true);
|
||||
}
|
||||
| ISAMPLER2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2816,11 +2847,129 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtUint, Esd2D, true, false, true);
|
||||
}
|
||||
|
||||
| F16SAMPLER2DRECT {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, EsdRect);
|
||||
}
|
||||
| F16SAMPLER2DRECTSHADOW {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, EsdRect, false, true);
|
||||
}
|
||||
| F16SAMPLERBUFFER {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, EsdBuffer);
|
||||
}
|
||||
| F16SAMPLER2DMS {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, Esd2D, false, false, true);
|
||||
}
|
||||
| F16SAMPLER2DMSARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.set(EbtFloat16, Esd2D, true, false, true);
|
||||
}
|
||||
| TEXTURE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd1D);
|
||||
}
|
||||
| TEXTURE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd1D, true);
|
||||
}
|
||||
| ITEXTURE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd1D);
|
||||
}
|
||||
| ITEXTURE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd1D, true);
|
||||
}
|
||||
| UTEXTURE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd1D);
|
||||
}
|
||||
| UTEXTURE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd1D, true);
|
||||
}
|
||||
|
||||
| TEXTURE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, EsdRect);
|
||||
}
|
||||
| ITEXTURE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, EsdRect);
|
||||
}
|
||||
| UTEXTURE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, EsdRect);
|
||||
}
|
||||
| TEXTUREBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, EsdBuffer);
|
||||
}
|
||||
| ITEXTUREBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, EsdBuffer);
|
||||
}
|
||||
| UTEXTUREBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, EsdBuffer);
|
||||
}
|
||||
| TEXTURE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
|
||||
}
|
||||
| ITEXTURE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
|
||||
}
|
||||
| UTEXTURE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
|
||||
}
|
||||
| TEXTURE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
|
||||
}
|
||||
| ITEXTURE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
|
||||
}
|
||||
| UTEXTURE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
|
||||
}
|
||||
|
||||
| F16TEXTURE1D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
@ -2845,11 +2994,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat16, EsdCube);
|
||||
}
|
||||
| TEXTURE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd1D, true);
|
||||
}
|
||||
| F16TEXTURE1DARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
@ -2868,121 +3012,35 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat16, EsdCube, true);
|
||||
}
|
||||
| ITEXTURE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd1D);
|
||||
}
|
||||
| ITEXTURE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd1D, true);
|
||||
}
|
||||
| UTEXTURE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd1D);
|
||||
}
|
||||
| UTEXTURE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd1D, true);
|
||||
}
|
||||
| TEXTURE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, EsdRect);
|
||||
}
|
||||
| F16TEXTURE2DRECT {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat16, EsdRect);
|
||||
}
|
||||
| ITEXTURE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, EsdRect);
|
||||
}
|
||||
| UTEXTURE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, EsdRect);
|
||||
}
|
||||
| TEXTUREBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, EsdBuffer);
|
||||
}
|
||||
| F16TEXTUREBUFFER {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat16, EsdBuffer);
|
||||
}
|
||||
| ITEXTUREBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, EsdBuffer);
|
||||
}
|
||||
| UTEXTUREBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, EsdBuffer);
|
||||
}
|
||||
| TEXTURE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
|
||||
}
|
||||
| F16TEXTURE2DMS {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
|
||||
}
|
||||
| ITEXTURE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
|
||||
}
|
||||
| UTEXTURE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
|
||||
}
|
||||
| TEXTURE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
|
||||
}
|
||||
| F16TEXTURE2DMSARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
|
||||
}
|
||||
| ITEXTURE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
|
||||
}
|
||||
| UTEXTURE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
|
||||
}
|
||||
| IMAGE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd1D);
|
||||
}
|
||||
| F16IMAGE1D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd1D);
|
||||
}
|
||||
| IIMAGE1D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -2993,17 +3051,12 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtUint, Esd1D);
|
||||
}
|
||||
|
||||
| IMAGE2D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd2D);
|
||||
}
|
||||
| F16IMAGE2D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D);
|
||||
}
|
||||
| IIMAGE2D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3019,12 +3072,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd3D);
|
||||
}
|
||||
| F16IMAGE3D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd3D);
|
||||
}
|
||||
| IIMAGE3D {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3040,12 +3087,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, EsdRect);
|
||||
}
|
||||
| F16IMAGE2DRECT {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdRect);
|
||||
}
|
||||
| IIMAGE2DRECT {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3061,12 +3102,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, EsdCube);
|
||||
}
|
||||
| F16IMAGECUBE {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdCube);
|
||||
}
|
||||
| IIMAGECUBE {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3082,12 +3117,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, EsdBuffer);
|
||||
}
|
||||
| F16IMAGEBUFFER {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdBuffer);
|
||||
}
|
||||
| IIMAGEBUFFER {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3103,12 +3132,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd1D, true);
|
||||
}
|
||||
| F16IMAGE1DARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd1D, true);
|
||||
}
|
||||
| IIMAGE1DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3124,12 +3147,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd2D, true);
|
||||
}
|
||||
| F16IMAGE2DARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D, true);
|
||||
}
|
||||
| IIMAGE2DARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3145,12 +3162,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, EsdCube, true);
|
||||
}
|
||||
| F16IMAGECUBEARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdCube, true);
|
||||
}
|
||||
| IIMAGECUBEARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3166,12 +3177,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
|
||||
}
|
||||
| F16IMAGE2DMS {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
|
||||
}
|
||||
| IIMAGE2DMS {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3187,12 +3192,6 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
|
||||
}
|
||||
| F16IMAGE2DMSARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
|
||||
}
|
||||
| IIMAGE2DMSARRAY {
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3203,6 +3202,74 @@ type_specifier_nonarray
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtUint, Esd2D, true, false, true);
|
||||
}
|
||||
|
||||
| F16IMAGE1D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd1D);
|
||||
}
|
||||
| F16IMAGE2D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D);
|
||||
}
|
||||
| F16IMAGE3D {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd3D);
|
||||
}
|
||||
| F16IMAGE2DRECT {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdRect);
|
||||
}
|
||||
| F16IMAGECUBE {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdCube);
|
||||
}
|
||||
| F16IMAGEBUFFER {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdBuffer);
|
||||
}
|
||||
| F16IMAGE1DARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd1D, true);
|
||||
}
|
||||
| F16IMAGE2DARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D, true);
|
||||
}
|
||||
| F16IMAGECUBEARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, EsdCube, true);
|
||||
}
|
||||
| F16IMAGE2DMS {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
|
||||
}
|
||||
| F16IMAGE2DMSARRAY {
|
||||
parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
$$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
|
||||
}
|
||||
|
||||
| SAMPLEREXTERNALOES { // GL_OES_EGL_image_external
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
$$.basicType = EbtSampler;
|
||||
@ -3215,6 +3282,7 @@ type_specifier_nonarray
|
||||
$$.sampler.set(EbtFloat, Esd2D);
|
||||
$$.sampler.yuv = true;
|
||||
}
|
||||
|
||||
| SUBPASSINPUT {
|
||||
parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
|
||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||
@ -3284,6 +3352,7 @@ type_specifier_nonarray
|
||||
$$.coopmat = true;
|
||||
}
|
||||
|
||||
|
||||
| struct_specifier {
|
||||
$$ = $1;
|
||||
$$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
|
||||
@ -3485,11 +3554,14 @@ simple_statement
|
||||
| iteration_statement { $$ = $1; }
|
||||
| jump_statement { $$ = $1; }
|
||||
|
||||
|
||||
| demote_statement { $$ = $1; }
|
||||
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
||||
demote_statement
|
||||
: DEMOTE SEMICOLON {
|
||||
parseContext.requireStage($1.loc, EShLangFragment, "demote");
|
||||
@ -3499,6 +3571,7 @@ demote_statement
|
||||
;
|
||||
|
||||
|
||||
|
||||
compound_statement
|
||||
: LEFT_BRACE RIGHT_BRACE { $$ = 0; }
|
||||
| LEFT_BRACE {
|
||||
@ -3885,4 +3958,3 @@ single_attribute
|
||||
|
||||
|
||||
%%
|
||||
|
||||
|
2643
glslang/MachineIndependent/glslang_angle.y
Normal file
2643
glslang/MachineIndependent/glslang_angle.y
Normal file
File diff suppressed because it is too large
Load Diff
7178
glslang/MachineIndependent/glslang_angle_tab.cpp
Normal file
7178
glslang/MachineIndependent/glslang_angle_tab.cpp
Normal file
File diff suppressed because it is too large
Load Diff
333
glslang/MachineIndependent/glslang_angle_tab.cpp.h
Normal file
333
glslang/MachineIndependent/glslang_angle_tab.cpp.h
Normal file
@ -0,0 +1,333 @@
|
||||
/* A Bison parser, made by GNU Bison 3.5.1. */
|
||||
|
||||
/* Bison interface for Yacc-like parsers in C
|
||||
|
||||
Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
|
||||
Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* As a special exception, you may create a larger work that contains
|
||||
part or all of the Bison parser skeleton and distribute that work
|
||||
under terms of your choice, so long as that work isn't itself a
|
||||
parser generator using the skeleton or a modified version thereof
|
||||
as a parser skeleton. Alternatively, if you modify or redistribute
|
||||
the parser skeleton itself, you may (at your option) remove this
|
||||
special exception, which will cause the skeleton and the resulting
|
||||
Bison output files to be licensed under the GNU General Public
|
||||
License without this special exception.
|
||||
|
||||
This special exception was added by the Free Software Foundation in
|
||||
version 2.2 of Bison. */
|
||||
|
||||
/* Undocumented macros, especially those whose name start with YY_,
|
||||
are private implementation details. Do not rely on them. */
|
||||
|
||||
#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_ANGLE_TAB_CPP_H_INCLUDED
|
||||
# define YY_YY_MACHINEINDEPENDENT_GLSLANG_ANGLE_TAB_CPP_H_INCLUDED
|
||||
/* Debug traces. */
|
||||
#ifndef YYDEBUG
|
||||
# define YYDEBUG 1
|
||||
#endif
|
||||
#if YYDEBUG
|
||||
extern int yydebug;
|
||||
#endif
|
||||
|
||||
/* Token type. */
|
||||
#ifndef YYTOKENTYPE
|
||||
# define YYTOKENTYPE
|
||||
enum yytokentype
|
||||
{
|
||||
CONST = 258,
|
||||
BOOL = 259,
|
||||
INT = 260,
|
||||
UINT = 261,
|
||||
FLOAT = 262,
|
||||
BVEC2 = 263,
|
||||
BVEC3 = 264,
|
||||
BVEC4 = 265,
|
||||
IVEC2 = 266,
|
||||
IVEC3 = 267,
|
||||
IVEC4 = 268,
|
||||
UVEC2 = 269,
|
||||
UVEC3 = 270,
|
||||
UVEC4 = 271,
|
||||
VEC2 = 272,
|
||||
VEC3 = 273,
|
||||
VEC4 = 274,
|
||||
MAT2 = 275,
|
||||
MAT3 = 276,
|
||||
MAT4 = 277,
|
||||
MAT2X2 = 278,
|
||||
MAT2X3 = 279,
|
||||
MAT2X4 = 280,
|
||||
MAT3X2 = 281,
|
||||
MAT3X3 = 282,
|
||||
MAT3X4 = 283,
|
||||
MAT4X2 = 284,
|
||||
MAT4X3 = 285,
|
||||
MAT4X4 = 286,
|
||||
SAMPLER2D = 287,
|
||||
SAMPLER3D = 288,
|
||||
SAMPLERCUBE = 289,
|
||||
SAMPLER2DSHADOW = 290,
|
||||
SAMPLERCUBESHADOW = 291,
|
||||
SAMPLER2DARRAY = 292,
|
||||
SAMPLER2DARRAYSHADOW = 293,
|
||||
ISAMPLER2D = 294,
|
||||
ISAMPLER3D = 295,
|
||||
ISAMPLERCUBE = 296,
|
||||
ISAMPLER2DARRAY = 297,
|
||||
USAMPLER2D = 298,
|
||||
USAMPLER3D = 299,
|
||||
USAMPLERCUBE = 300,
|
||||
USAMPLER2DARRAY = 301,
|
||||
SAMPLER = 302,
|
||||
SAMPLERSHADOW = 303,
|
||||
TEXTURE2D = 304,
|
||||
TEXTURE3D = 305,
|
||||
TEXTURECUBE = 306,
|
||||
TEXTURE2DARRAY = 307,
|
||||
ITEXTURE2D = 308,
|
||||
ITEXTURE3D = 309,
|
||||
ITEXTURECUBE = 310,
|
||||
ITEXTURE2DARRAY = 311,
|
||||
UTEXTURE2D = 312,
|
||||
UTEXTURE3D = 313,
|
||||
UTEXTURECUBE = 314,
|
||||
UTEXTURE2DARRAY = 315,
|
||||
ATTRIBUTE = 316,
|
||||
VARYING = 317,
|
||||
SAMPLERCUBEARRAY = 318,
|
||||
SAMPLERCUBEARRAYSHADOW = 319,
|
||||
ISAMPLERCUBEARRAY = 320,
|
||||
USAMPLERCUBEARRAY = 321,
|
||||
SAMPLER2DRECT = 322,
|
||||
SAMPLER2DRECTSHADOW = 323,
|
||||
ISAMPLER2DRECT = 324,
|
||||
USAMPLER2DRECT = 325,
|
||||
SAMPLERBUFFER = 326,
|
||||
ISAMPLERBUFFER = 327,
|
||||
USAMPLERBUFFER = 328,
|
||||
SAMPLER2DMS = 329,
|
||||
ISAMPLER2DMS = 330,
|
||||
USAMPLER2DMS = 331,
|
||||
SAMPLER2DMSARRAY = 332,
|
||||
ISAMPLER2DMSARRAY = 333,
|
||||
USAMPLER2DMSARRAY = 334,
|
||||
SAMPLEREXTERNALOES = 335,
|
||||
SAMPLEREXTERNAL2DY2YEXT = 336,
|
||||
IMAGE1D = 337,
|
||||
IIMAGE1D = 338,
|
||||
UIMAGE1D = 339,
|
||||
IMAGE2D = 340,
|
||||
IIMAGE2D = 341,
|
||||
UIMAGE2D = 342,
|
||||
IMAGE3D = 343,
|
||||
IIMAGE3D = 344,
|
||||
UIMAGE3D = 345,
|
||||
IMAGE2DRECT = 346,
|
||||
IIMAGE2DRECT = 347,
|
||||
UIMAGE2DRECT = 348,
|
||||
IMAGECUBE = 349,
|
||||
IIMAGECUBE = 350,
|
||||
UIMAGECUBE = 351,
|
||||
IMAGEBUFFER = 352,
|
||||
IIMAGEBUFFER = 353,
|
||||
UIMAGEBUFFER = 354,
|
||||
IMAGE1DARRAY = 355,
|
||||
IIMAGE1DARRAY = 356,
|
||||
UIMAGE1DARRAY = 357,
|
||||
IMAGE2DARRAY = 358,
|
||||
IIMAGE2DARRAY = 359,
|
||||
UIMAGE2DARRAY = 360,
|
||||
IMAGECUBEARRAY = 361,
|
||||
IIMAGECUBEARRAY = 362,
|
||||
UIMAGECUBEARRAY = 363,
|
||||
IMAGE2DMS = 364,
|
||||
IIMAGE2DMS = 365,
|
||||
UIMAGE2DMS = 366,
|
||||
IMAGE2DMSARRAY = 367,
|
||||
IIMAGE2DMSARRAY = 368,
|
||||
UIMAGE2DMSARRAY = 369,
|
||||
TEXTURECUBEARRAY = 370,
|
||||
ITEXTURECUBEARRAY = 371,
|
||||
UTEXTURECUBEARRAY = 372,
|
||||
TEXTURE1D = 373,
|
||||
ITEXTURE1D = 374,
|
||||
UTEXTURE1D = 375,
|
||||
TEXTURE1DARRAY = 376,
|
||||
ITEXTURE1DARRAY = 377,
|
||||
UTEXTURE1DARRAY = 378,
|
||||
TEXTURE2DRECT = 379,
|
||||
ITEXTURE2DRECT = 380,
|
||||
UTEXTURE2DRECT = 381,
|
||||
TEXTUREBUFFER = 382,
|
||||
ITEXTUREBUFFER = 383,
|
||||
UTEXTUREBUFFER = 384,
|
||||
TEXTURE2DMS = 385,
|
||||
ITEXTURE2DMS = 386,
|
||||
UTEXTURE2DMS = 387,
|
||||
TEXTURE2DMSARRAY = 388,
|
||||
ITEXTURE2DMSARRAY = 389,
|
||||
UTEXTURE2DMSARRAY = 390,
|
||||
LEFT_OP = 391,
|
||||
RIGHT_OP = 392,
|
||||
INC_OP = 393,
|
||||
DEC_OP = 394,
|
||||
LE_OP = 395,
|
||||
GE_OP = 396,
|
||||
EQ_OP = 397,
|
||||
NE_OP = 398,
|
||||
AND_OP = 399,
|
||||
OR_OP = 400,
|
||||
XOR_OP = 401,
|
||||
MUL_ASSIGN = 402,
|
||||
DIV_ASSIGN = 403,
|
||||
ADD_ASSIGN = 404,
|
||||
MOD_ASSIGN = 405,
|
||||
LEFT_ASSIGN = 406,
|
||||
RIGHT_ASSIGN = 407,
|
||||
AND_ASSIGN = 408,
|
||||
XOR_ASSIGN = 409,
|
||||
OR_ASSIGN = 410,
|
||||
SUB_ASSIGN = 411,
|
||||
STRING_LITERAL = 412,
|
||||
LEFT_PAREN = 413,
|
||||
RIGHT_PAREN = 414,
|
||||
LEFT_BRACKET = 415,
|
||||
RIGHT_BRACKET = 416,
|
||||
LEFT_BRACE = 417,
|
||||
RIGHT_BRACE = 418,
|
||||
DOT = 419,
|
||||
COMMA = 420,
|
||||
COLON = 421,
|
||||
EQUAL = 422,
|
||||
SEMICOLON = 423,
|
||||
BANG = 424,
|
||||
DASH = 425,
|
||||
TILDE = 426,
|
||||
PLUS = 427,
|
||||
STAR = 428,
|
||||
SLASH = 429,
|
||||
PERCENT = 430,
|
||||
LEFT_ANGLE = 431,
|
||||
RIGHT_ANGLE = 432,
|
||||
VERTICAL_BAR = 433,
|
||||
CARET = 434,
|
||||
AMPERSAND = 435,
|
||||
QUESTION = 436,
|
||||
INVARIANT = 437,
|
||||
HIGH_PRECISION = 438,
|
||||
MEDIUM_PRECISION = 439,
|
||||
LOW_PRECISION = 440,
|
||||
PRECISION = 441,
|
||||
PACKED = 442,
|
||||
RESOURCE = 443,
|
||||
SUPERP = 444,
|
||||
FLOATCONSTANT = 445,
|
||||
INTCONSTANT = 446,
|
||||
UINTCONSTANT = 447,
|
||||
BOOLCONSTANT = 448,
|
||||
IDENTIFIER = 449,
|
||||
TYPE_NAME = 450,
|
||||
CENTROID = 451,
|
||||
IN = 452,
|
||||
OUT = 453,
|
||||
INOUT = 454,
|
||||
STRUCT = 455,
|
||||
VOID = 456,
|
||||
WHILE = 457,
|
||||
BREAK = 458,
|
||||
CONTINUE = 459,
|
||||
DO = 460,
|
||||
ELSE = 461,
|
||||
FOR = 462,
|
||||
IF = 463,
|
||||
DISCARD = 464,
|
||||
RETURN = 465,
|
||||
SWITCH = 466,
|
||||
CASE = 467,
|
||||
DEFAULT = 468,
|
||||
UNIFORM = 469,
|
||||
SHARED = 470,
|
||||
BUFFER = 471,
|
||||
FLAT = 472,
|
||||
SMOOTH = 473,
|
||||
LAYOUT = 474,
|
||||
PATCH = 475,
|
||||
SAMPLE = 476,
|
||||
COHERENT = 477,
|
||||
VOLATILE = 478,
|
||||
RESTRICT = 479,
|
||||
READONLY = 480,
|
||||
WRITEONLY = 481,
|
||||
NOPERSPECTIVE = 482,
|
||||
PRECISE = 483
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Value type. */
|
||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||
union YYSTYPE
|
||||
{
|
||||
#line 103 "MachineIndependent/glslang_angle.y"
|
||||
|
||||
struct {
|
||||
glslang::TSourceLoc loc;
|
||||
union {
|
||||
glslang::TString *string;
|
||||
int i;
|
||||
unsigned int u;
|
||||
long long i64;
|
||||
unsigned long long u64;
|
||||
bool b;
|
||||
double d;
|
||||
};
|
||||
glslang::TSymbol* symbol;
|
||||
} lex;
|
||||
struct {
|
||||
glslang::TSourceLoc loc;
|
||||
glslang::TOperator op;
|
||||
union {
|
||||
TIntermNode* intermNode;
|
||||
glslang::TIntermNodePair nodePair;
|
||||
glslang::TIntermTyped* intermTypedNode;
|
||||
glslang::TAttributes* attributes;
|
||||
};
|
||||
union {
|
||||
glslang::TPublicType type;
|
||||
glslang::TFunction* function;
|
||||
glslang::TParameter param;
|
||||
glslang::TTypeLoc typeLine;
|
||||
glslang::TTypeList* typeList;
|
||||
glslang::TArraySizes* arraySizes;
|
||||
glslang::TIdentifierList* identifierList;
|
||||
};
|
||||
glslang::TArraySizes* typeParameters;
|
||||
} interm;
|
||||
|
||||
#line 322 "MachineIndependent/glslang_angle_tab.cpp.h"
|
||||
|
||||
};
|
||||
typedef union YYSTYPE YYSTYPE;
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
int yyparse (glslang::TParseContext* pParseContext);
|
||||
|
||||
#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_ANGLE_TAB_CPP_H_INCLUDED */
|
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,9 @@
|
||||
/* A Bison parser, made by GNU Bison 3.0.4. */
|
||||
/* A Bison parser, made by GNU Bison 3.5.1. */
|
||||
|
||||
/* Bison interface for Yacc-like parsers in C
|
||||
|
||||
Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
|
||||
Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
|
||||
Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -30,8 +31,11 @@
|
||||
This special exception was added by the Free Software Foundation in
|
||||
version 2.2 of Bison. */
|
||||
|
||||
#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
|
||||
# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
|
||||
/* Undocumented macros, especially those whose name start with YY_,
|
||||
are private implementation details. Do not rely on them. */
|
||||
|
||||
#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
|
||||
# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
|
||||
/* Debug traces. */
|
||||
#ifndef YYDEBUG
|
||||
# define YYDEBUG 1
|
||||
@ -212,26 +216,26 @@ extern int yydebug;
|
||||
SAMPLERCUBEARRAYSHADOW = 422,
|
||||
ISAMPLERCUBEARRAY = 423,
|
||||
USAMPLERCUBEARRAY = 424,
|
||||
SAMPLER1D = 425,
|
||||
SAMPLER1DARRAY = 426,
|
||||
SAMPLER1DARRAYSHADOW = 427,
|
||||
ISAMPLER1D = 428,
|
||||
SAMPLER1DSHADOW = 429,
|
||||
SAMPLER2DRECT = 430,
|
||||
SAMPLER2DRECTSHADOW = 431,
|
||||
ISAMPLER2DRECT = 432,
|
||||
USAMPLER2DRECT = 433,
|
||||
SAMPLERBUFFER = 434,
|
||||
ISAMPLERBUFFER = 435,
|
||||
USAMPLERBUFFER = 436,
|
||||
SAMPLER2DMS = 437,
|
||||
ISAMPLER2DMS = 438,
|
||||
USAMPLER2DMS = 439,
|
||||
SAMPLER2DMSARRAY = 440,
|
||||
ISAMPLER2DMSARRAY = 441,
|
||||
USAMPLER2DMSARRAY = 442,
|
||||
SAMPLEREXTERNALOES = 443,
|
||||
SAMPLEREXTERNAL2DY2YEXT = 444,
|
||||
SAMPLER2DRECT = 425,
|
||||
SAMPLER2DRECTSHADOW = 426,
|
||||
ISAMPLER2DRECT = 427,
|
||||
USAMPLER2DRECT = 428,
|
||||
SAMPLERBUFFER = 429,
|
||||
ISAMPLERBUFFER = 430,
|
||||
USAMPLERBUFFER = 431,
|
||||
SAMPLER2DMS = 432,
|
||||
ISAMPLER2DMS = 433,
|
||||
USAMPLER2DMS = 434,
|
||||
SAMPLER2DMSARRAY = 435,
|
||||
ISAMPLER2DMSARRAY = 436,
|
||||
USAMPLER2DMSARRAY = 437,
|
||||
SAMPLEREXTERNALOES = 438,
|
||||
SAMPLEREXTERNAL2DY2YEXT = 439,
|
||||
SAMPLER1D = 440,
|
||||
SAMPLER1DARRAY = 441,
|
||||
SAMPLER1DARRAYSHADOW = 442,
|
||||
ISAMPLER1D = 443,
|
||||
SAMPLER1DSHADOW = 444,
|
||||
ISAMPLER1DARRAY = 445,
|
||||
USAMPLER1D = 446,
|
||||
USAMPLER1DARRAY = 447,
|
||||
@ -441,36 +445,35 @@ extern int yydebug;
|
||||
HITATTREXT = 651,
|
||||
CALLDATAEXT = 652,
|
||||
CALLDATAINEXT = 653,
|
||||
PATCH = 654,
|
||||
SAMPLE = 655,
|
||||
NONUNIFORM = 656,
|
||||
COHERENT = 657,
|
||||
VOLATILE = 658,
|
||||
RESTRICT = 659,
|
||||
READONLY = 660,
|
||||
WRITEONLY = 661,
|
||||
DEVICECOHERENT = 662,
|
||||
QUEUEFAMILYCOHERENT = 663,
|
||||
WORKGROUPCOHERENT = 664,
|
||||
SUBGROUPCOHERENT = 665,
|
||||
NONPRIVATE = 666,
|
||||
SHADERCALLCOHERENT = 667,
|
||||
NOPERSPECTIVE = 668,
|
||||
EXPLICITINTERPAMD = 669,
|
||||
PERVERTEXNV = 670,
|
||||
PERPRIMITIVENV = 671,
|
||||
PERVIEWNV = 672,
|
||||
PERTASKNV = 673,
|
||||
NONUNIFORM = 654,
|
||||
DEVICECOHERENT = 655,
|
||||
QUEUEFAMILYCOHERENT = 656,
|
||||
WORKGROUPCOHERENT = 657,
|
||||
SUBGROUPCOHERENT = 658,
|
||||
NONPRIVATE = 659,
|
||||
SHADERCALLCOHERENT = 660,
|
||||
EXPLICITINTERPAMD = 661,
|
||||
PERVERTEXNV = 662,
|
||||
PERPRIMITIVENV = 663,
|
||||
PERVIEWNV = 664,
|
||||
PERTASKNV = 665,
|
||||
PATCH = 666,
|
||||
SAMPLE = 667,
|
||||
COHERENT = 668,
|
||||
VOLATILE = 669,
|
||||
RESTRICT = 670,
|
||||
READONLY = 671,
|
||||
WRITEONLY = 672,
|
||||
NOPERSPECTIVE = 673,
|
||||
PRECISE = 674
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Value type. */
|
||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||
|
||||
union YYSTYPE
|
||||
{
|
||||
#line 97 "glslang.y" /* yacc.c:1909 */
|
||||
#line 103 "MachineIndependent/glslang.y"
|
||||
|
||||
struct {
|
||||
glslang::TSourceLoc loc;
|
||||
@ -506,9 +509,9 @@ union YYSTYPE
|
||||
glslang::TArraySizes* typeParameters;
|
||||
} interm;
|
||||
|
||||
#line 510 "glslang_tab.cpp.h" /* yacc.c:1909 */
|
||||
};
|
||||
#line 513 "MachineIndependent/glslang_tab.cpp.h"
|
||||
|
||||
};
|
||||
typedef union YYSTYPE YYSTYPE;
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
@ -518,4 +521,4 @@ typedef union YYSTYPE YYSTYPE;
|
||||
|
||||
int yyparse (glslang::TParseContext* pParseContext);
|
||||
|
||||
#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */
|
||||
#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */
|
||||
|
@ -39,6 +39,7 @@ then
|
||||
elif [ "$#" -eq 0 ]
|
||||
then
|
||||
m4 -P MachineIndependent/glslang.m4 > MachineIndependent/glslang.y
|
||||
m4 -P -DGLSLANG_ANGLE MachineIndependent/glslang.m4 > MachineIndependent/glslang_angle.y
|
||||
else
|
||||
echo usage:
|
||||
echo $0 web
|
||||
@ -47,3 +48,7 @@ else
|
||||
fi
|
||||
|
||||
bison --defines=MachineIndependent/glslang_tab.cpp.h -t MachineIndependent/glslang.y -o MachineIndependent/glslang_tab.cpp
|
||||
if [ "$1" != 'web' ]
|
||||
then
|
||||
bison --defines=MachineIndependent/glslang_angle_tab.cpp.h -t MachineIndependent/glslang_angle.y -o MachineIndependent/glslang_angle_tab.cpp
|
||||
fi
|
||||
|
@ -22,6 +22,9 @@
|
||||
|
||||
"glslang/MachineIndependent/glslang_tab.cpp",
|
||||
"glslang/MachineIndependent/glslang_tab.cpp.h"
|
||||
|
||||
"glslang/MachineIndependent/glslang_angle_tab.cpp",
|
||||
"glslang/MachineIndependent/glslang_angle_tab.cpp.h"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
Loading…
Reference in New Issue
Block a user