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.cpp",
|
||||||
"glslang/MachineIndependent/attribute.h",
|
"glslang/MachineIndependent/attribute.h",
|
||||||
"glslang/MachineIndependent/gl_types.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/glslang_tab.cpp.h",
|
||||||
"glslang/MachineIndependent/intermOut.cpp",
|
"glslang/MachineIndependent/intermOut.cpp",
|
||||||
"glslang/MachineIndependent/iomapper.cpp",
|
"glslang/MachineIndependent/iomapper.cpp",
|
||||||
@ -181,6 +181,18 @@ template("glslang_sources_common") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
defines = []
|
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) {
|
if (invoker.enable_opt) {
|
||||||
sources += [ "SPIRV/SpvTools.cpp" ]
|
sources += [ "SPIRV/SpvTools.cpp" ]
|
||||||
defines += [ "ENABLE_OPT=1" ]
|
defines += [ "ENABLE_OPT=1" ]
|
||||||
|
@ -49,10 +49,15 @@
|
|||||||
#include "SymbolTable.h"
|
#include "SymbolTable.h"
|
||||||
#include "ParseHelper.h"
|
#include "ParseHelper.h"
|
||||||
#include "attribute.h"
|
#include "attribute.h"
|
||||||
#include "glslang_tab.cpp.h"
|
|
||||||
#include "ScanContext.h"
|
#include "ScanContext.h"
|
||||||
#include "Scan.h"
|
#include "Scan.h"
|
||||||
|
|
||||||
|
#ifdef GLSLANG_ANGLE
|
||||||
|
#include "glslang_angle_tab.cpp.h"
|
||||||
|
#else
|
||||||
|
#include "glslang_tab.cpp.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
// preprocessor includes
|
// preprocessor includes
|
||||||
#include "preprocessor/PpContext.h"
|
#include "preprocessor/PpContext.h"
|
||||||
#include "preprocessor/PpTokens.h"
|
#include "preprocessor/PpTokens.h"
|
||||||
@ -406,25 +411,28 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["uvec4"] = UVEC4;
|
(*KeywordMap)["uvec4"] = UVEC4;
|
||||||
|
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
(*KeywordMap)["nonuniformEXT"] = NONUNIFORM;
|
|
||||||
(*KeywordMap)["demote"] = DEMOTE;
|
|
||||||
(*KeywordMap)["attribute"] = ATTRIBUTE;
|
(*KeywordMap)["attribute"] = ATTRIBUTE;
|
||||||
(*KeywordMap)["varying"] = VARYING;
|
(*KeywordMap)["varying"] = VARYING;
|
||||||
(*KeywordMap)["noperspective"] = NOPERSPECTIVE;
|
(*KeywordMap)["noperspective"] = NOPERSPECTIVE;
|
||||||
|
(*KeywordMap)["precise"] = PRECISE;
|
||||||
(*KeywordMap)["coherent"] = COHERENT;
|
(*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)["devicecoherent"] = DEVICECOHERENT;
|
||||||
(*KeywordMap)["queuefamilycoherent"] = QUEUEFAMILYCOHERENT;
|
(*KeywordMap)["queuefamilycoherent"] = QUEUEFAMILYCOHERENT;
|
||||||
(*KeywordMap)["workgroupcoherent"] = WORKGROUPCOHERENT;
|
(*KeywordMap)["workgroupcoherent"] = WORKGROUPCOHERENT;
|
||||||
(*KeywordMap)["subgroupcoherent"] = SUBGROUPCOHERENT;
|
(*KeywordMap)["subgroupcoherent"] = SUBGROUPCOHERENT;
|
||||||
(*KeywordMap)["shadercallcoherent"] = SHADERCALLCOHERENT;
|
(*KeywordMap)["shadercallcoherent"] = SHADERCALLCOHERENT;
|
||||||
(*KeywordMap)["nonprivate"] = NONPRIVATE;
|
(*KeywordMap)["nonprivate"] = NONPRIVATE;
|
||||||
(*KeywordMap)["restrict"] = RESTRICT;
|
|
||||||
(*KeywordMap)["readonly"] = READONLY;
|
|
||||||
(*KeywordMap)["writeonly"] = WRITEONLY;
|
|
||||||
(*KeywordMap)["atomic_uint"] = ATOMIC_UINT;
|
(*KeywordMap)["atomic_uint"] = ATOMIC_UINT;
|
||||||
(*KeywordMap)["volatile"] = VOLATILE;
|
|
||||||
(*KeywordMap)["patch"] = PATCH;
|
|
||||||
(*KeywordMap)["sample"] = SAMPLE;
|
|
||||||
(*KeywordMap)["subroutine"] = SUBROUTINE;
|
(*KeywordMap)["subroutine"] = SUBROUTINE;
|
||||||
(*KeywordMap)["dmat2"] = DMAT2;
|
(*KeywordMap)["dmat2"] = DMAT2;
|
||||||
(*KeywordMap)["dmat3"] = DMAT3;
|
(*KeywordMap)["dmat3"] = DMAT3;
|
||||||
@ -441,6 +449,10 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["image1D"] = IMAGE1D;
|
(*KeywordMap)["image1D"] = IMAGE1D;
|
||||||
(*KeywordMap)["iimage1D"] = IIMAGE1D;
|
(*KeywordMap)["iimage1D"] = IIMAGE1D;
|
||||||
(*KeywordMap)["uimage1D"] = UIMAGE1D;
|
(*KeywordMap)["uimage1D"] = UIMAGE1D;
|
||||||
|
(*KeywordMap)["image1DArray"] = IMAGE1DARRAY;
|
||||||
|
(*KeywordMap)["iimage1DArray"] = IIMAGE1DARRAY;
|
||||||
|
(*KeywordMap)["uimage1DArray"] = UIMAGE1DARRAY;
|
||||||
|
#endif
|
||||||
(*KeywordMap)["image2D"] = IMAGE2D;
|
(*KeywordMap)["image2D"] = IMAGE2D;
|
||||||
(*KeywordMap)["iimage2D"] = IIMAGE2D;
|
(*KeywordMap)["iimage2D"] = IIMAGE2D;
|
||||||
(*KeywordMap)["uimage2D"] = UIMAGE2D;
|
(*KeywordMap)["uimage2D"] = UIMAGE2D;
|
||||||
@ -456,9 +468,6 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["imageBuffer"] = IMAGEBUFFER;
|
(*KeywordMap)["imageBuffer"] = IMAGEBUFFER;
|
||||||
(*KeywordMap)["iimageBuffer"] = IIMAGEBUFFER;
|
(*KeywordMap)["iimageBuffer"] = IIMAGEBUFFER;
|
||||||
(*KeywordMap)["uimageBuffer"] = UIMAGEBUFFER;
|
(*KeywordMap)["uimageBuffer"] = UIMAGEBUFFER;
|
||||||
(*KeywordMap)["image1DArray"] = IMAGE1DARRAY;
|
|
||||||
(*KeywordMap)["iimage1DArray"] = IIMAGE1DARRAY;
|
|
||||||
(*KeywordMap)["uimage1DArray"] = UIMAGE1DARRAY;
|
|
||||||
(*KeywordMap)["image2DArray"] = IMAGE2DARRAY;
|
(*KeywordMap)["image2DArray"] = IMAGE2DARRAY;
|
||||||
(*KeywordMap)["iimage2DArray"] = IIMAGE2DARRAY;
|
(*KeywordMap)["iimage2DArray"] = IIMAGE2DARRAY;
|
||||||
(*KeywordMap)["uimage2DArray"] = UIMAGE2DARRAY;
|
(*KeywordMap)["uimage2DArray"] = UIMAGE2DARRAY;
|
||||||
@ -471,6 +480,7 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["image2DMSArray"] = IMAGE2DMSARRAY;
|
(*KeywordMap)["image2DMSArray"] = IMAGE2DMSARRAY;
|
||||||
(*KeywordMap)["iimage2DMSArray"] = IIMAGE2DMSARRAY;
|
(*KeywordMap)["iimage2DMSArray"] = IIMAGE2DMSARRAY;
|
||||||
(*KeywordMap)["uimage2DMSArray"] = UIMAGE2DMSARRAY;
|
(*KeywordMap)["uimage2DMSArray"] = UIMAGE2DMSARRAY;
|
||||||
|
#ifndef GLSLANG_ANGLE
|
||||||
(*KeywordMap)["double"] = DOUBLE;
|
(*KeywordMap)["double"] = DOUBLE;
|
||||||
(*KeywordMap)["dvec2"] = DVEC2;
|
(*KeywordMap)["dvec2"] = DVEC2;
|
||||||
(*KeywordMap)["dvec3"] = DVEC3;
|
(*KeywordMap)["dvec3"] = DVEC3;
|
||||||
@ -561,6 +571,7 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["f64mat4x2"] = F64MAT4X2;
|
(*KeywordMap)["f64mat4x2"] = F64MAT4X2;
|
||||||
(*KeywordMap)["f64mat4x3"] = F64MAT4X3;
|
(*KeywordMap)["f64mat4x3"] = F64MAT4X3;
|
||||||
(*KeywordMap)["f64mat4x4"] = F64MAT4X4;
|
(*KeywordMap)["f64mat4x4"] = F64MAT4X4;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
(*KeywordMap)["sampler2D"] = SAMPLER2D;
|
(*KeywordMap)["sampler2D"] = SAMPLER2D;
|
||||||
@ -603,11 +614,16 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW;
|
(*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW;
|
||||||
(*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY;
|
(*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY;
|
||||||
(*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY;
|
(*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY;
|
||||||
(*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW;
|
#ifndef GLSLANG_ANGLE
|
||||||
(*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
|
(*KeywordMap)["sampler1D"] = SAMPLER1D;
|
||||||
(*KeywordMap)["usampler1D"] = USAMPLER1D;
|
|
||||||
(*KeywordMap)["isampler1D"] = ISAMPLER1D;
|
(*KeywordMap)["isampler1D"] = ISAMPLER1D;
|
||||||
|
(*KeywordMap)["usampler1D"] = USAMPLER1D;
|
||||||
|
(*KeywordMap)["sampler1DArray"] = SAMPLER1DARRAY;
|
||||||
|
(*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
|
||||||
(*KeywordMap)["usampler1DArray"] = USAMPLER1DARRAY;
|
(*KeywordMap)["usampler1DArray"] = USAMPLER1DARRAY;
|
||||||
|
(*KeywordMap)["sampler1DShadow"] = SAMPLER1DSHADOW;
|
||||||
|
(*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW;
|
||||||
|
#endif
|
||||||
(*KeywordMap)["samplerBuffer"] = SAMPLERBUFFER;
|
(*KeywordMap)["samplerBuffer"] = SAMPLERBUFFER;
|
||||||
(*KeywordMap)["isampler2DRect"] = ISAMPLER2DRECT;
|
(*KeywordMap)["isampler2DRect"] = ISAMPLER2DRECT;
|
||||||
(*KeywordMap)["usampler2DRect"] = USAMPLER2DRECT;
|
(*KeywordMap)["usampler2DRect"] = USAMPLER2DRECT;
|
||||||
@ -619,20 +635,21 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["sampler2DMSArray"] = SAMPLER2DMSARRAY;
|
(*KeywordMap)["sampler2DMSArray"] = SAMPLER2DMSARRAY;
|
||||||
(*KeywordMap)["isampler2DMSArray"] = ISAMPLER2DMSARRAY;
|
(*KeywordMap)["isampler2DMSArray"] = ISAMPLER2DMSARRAY;
|
||||||
(*KeywordMap)["usampler2DMSArray"] = USAMPLER2DMSARRAY;
|
(*KeywordMap)["usampler2DMSArray"] = USAMPLER2DMSARRAY;
|
||||||
(*KeywordMap)["sampler1D"] = SAMPLER1D;
|
|
||||||
(*KeywordMap)["sampler1DShadow"] = SAMPLER1DSHADOW;
|
|
||||||
(*KeywordMap)["sampler2DRect"] = SAMPLER2DRECT;
|
(*KeywordMap)["sampler2DRect"] = SAMPLER2DRECT;
|
||||||
(*KeywordMap)["sampler2DRectShadow"] = SAMPLER2DRECTSHADOW;
|
(*KeywordMap)["sampler2DRectShadow"] = SAMPLER2DRECTSHADOW;
|
||||||
(*KeywordMap)["sampler1DArray"] = SAMPLER1DARRAY;
|
|
||||||
|
|
||||||
(*KeywordMap)["samplerExternalOES"] = SAMPLEREXTERNALOES; // GL_OES_EGL_image_external
|
(*KeywordMap)["samplerExternalOES"] = SAMPLEREXTERNALOES; // GL_OES_EGL_image_external
|
||||||
|
|
||||||
(*KeywordMap)["__samplerExternal2DY2YEXT"] = SAMPLEREXTERNAL2DY2YEXT; // GL_EXT_YUV_target
|
(*KeywordMap)["__samplerExternal2DY2YEXT"] = SAMPLEREXTERNAL2DY2YEXT; // GL_EXT_YUV_target
|
||||||
|
|
||||||
(*KeywordMap)["itexture1DArray"] = ITEXTURE1DARRAY;
|
#ifndef GLSLANG_ANGLE
|
||||||
(*KeywordMap)["utexture1D"] = UTEXTURE1D;
|
(*KeywordMap)["texture1D"] = TEXTURE1D;
|
||||||
(*KeywordMap)["itexture1D"] = ITEXTURE1D;
|
(*KeywordMap)["itexture1D"] = ITEXTURE1D;
|
||||||
|
(*KeywordMap)["utexture1D"] = UTEXTURE1D;
|
||||||
|
(*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY;
|
||||||
|
(*KeywordMap)["itexture1DArray"] = ITEXTURE1DARRAY;
|
||||||
(*KeywordMap)["utexture1DArray"] = UTEXTURE1DARRAY;
|
(*KeywordMap)["utexture1DArray"] = UTEXTURE1DARRAY;
|
||||||
|
#endif
|
||||||
(*KeywordMap)["textureBuffer"] = TEXTUREBUFFER;
|
(*KeywordMap)["textureBuffer"] = TEXTUREBUFFER;
|
||||||
(*KeywordMap)["itexture2DRect"] = ITEXTURE2DRECT;
|
(*KeywordMap)["itexture2DRect"] = ITEXTURE2DRECT;
|
||||||
(*KeywordMap)["utexture2DRect"] = UTEXTURE2DRECT;
|
(*KeywordMap)["utexture2DRect"] = UTEXTURE2DRECT;
|
||||||
@ -644,10 +661,9 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["texture2DMSArray"] = TEXTURE2DMSARRAY;
|
(*KeywordMap)["texture2DMSArray"] = TEXTURE2DMSARRAY;
|
||||||
(*KeywordMap)["itexture2DMSArray"] = ITEXTURE2DMSARRAY;
|
(*KeywordMap)["itexture2DMSArray"] = ITEXTURE2DMSARRAY;
|
||||||
(*KeywordMap)["utexture2DMSArray"] = UTEXTURE2DMSARRAY;
|
(*KeywordMap)["utexture2DMSArray"] = UTEXTURE2DMSARRAY;
|
||||||
(*KeywordMap)["texture1D"] = TEXTURE1D;
|
|
||||||
(*KeywordMap)["texture2DRect"] = TEXTURE2DRECT;
|
(*KeywordMap)["texture2DRect"] = TEXTURE2DRECT;
|
||||||
(*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY;
|
|
||||||
|
|
||||||
|
#ifndef GLSLANG_ANGLE
|
||||||
(*KeywordMap)["subpassInput"] = SUBPASSINPUT;
|
(*KeywordMap)["subpassInput"] = SUBPASSINPUT;
|
||||||
(*KeywordMap)["subpassInputMS"] = SUBPASSINPUTMS;
|
(*KeywordMap)["subpassInputMS"] = SUBPASSINPUTMS;
|
||||||
(*KeywordMap)["isubpassInput"] = ISUBPASSINPUT;
|
(*KeywordMap)["isubpassInput"] = ISUBPASSINPUT;
|
||||||
@ -702,7 +718,6 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["f16subpassInputMS"] = F16SUBPASSINPUTMS;
|
(*KeywordMap)["f16subpassInputMS"] = F16SUBPASSINPUTMS;
|
||||||
(*KeywordMap)["__explicitInterpAMD"] = EXPLICITINTERPAMD;
|
(*KeywordMap)["__explicitInterpAMD"] = EXPLICITINTERPAMD;
|
||||||
(*KeywordMap)["pervertexNV"] = PERVERTEXNV;
|
(*KeywordMap)["pervertexNV"] = PERVERTEXNV;
|
||||||
(*KeywordMap)["precise"] = PRECISE;
|
|
||||||
|
|
||||||
(*KeywordMap)["rayPayloadNV"] = PAYLOADNV;
|
(*KeywordMap)["rayPayloadNV"] = PAYLOADNV;
|
||||||
(*KeywordMap)["rayPayloadEXT"] = PAYLOADEXT;
|
(*KeywordMap)["rayPayloadEXT"] = PAYLOADEXT;
|
||||||
@ -724,6 +739,7 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["fcoopmatNV"] = FCOOPMATNV;
|
(*KeywordMap)["fcoopmatNV"] = FCOOPMATNV;
|
||||||
(*KeywordMap)["icoopmatNV"] = ICOOPMATNV;
|
(*KeywordMap)["icoopmatNV"] = ICOOPMATNV;
|
||||||
(*KeywordMap)["ucoopmatNV"] = UCOOPMATNV;
|
(*KeywordMap)["ucoopmatNV"] = UCOOPMATNV;
|
||||||
|
#endif
|
||||||
|
|
||||||
ReservedSet = new std::unordered_set<const char*, str_hash, str_eq>;
|
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 PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT;
|
||||||
case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT;
|
case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT;
|
||||||
case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT;
|
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 PpAtomConstInt16: parserToken->sType.lex.i = ppToken.ival; return INT16CONSTANT;
|
||||||
case PpAtomConstUint16: parserToken->sType.lex.i = ppToken.ival; return UINT16CONSTANT;
|
case PpAtomConstUint16: parserToken->sType.lex.i = ppToken.ival; return UINT16CONSTANT;
|
||||||
case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT;
|
case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT;
|
||||||
@ -1004,16 +1020,17 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
return es30ReservedFromGLSL(130);
|
return es30ReservedFromGLSL(130);
|
||||||
|
|
||||||
case NONUNIFORM:
|
|
||||||
if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier))
|
|
||||||
return keyword;
|
|
||||||
else
|
|
||||||
return identifierOrType();
|
|
||||||
case ATTRIBUTE:
|
case ATTRIBUTE:
|
||||||
case VARYING:
|
case VARYING:
|
||||||
if (parseContext.isEsProfile() && parseContext.version >= 300)
|
if (parseContext.isEsProfile() && parseContext.version >= 300)
|
||||||
reservedWord();
|
reservedWord();
|
||||||
return keyword;
|
return keyword;
|
||||||
|
#ifndef GLSLANG_ANGLE
|
||||||
|
case NONUNIFORM:
|
||||||
|
if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier))
|
||||||
|
return keyword;
|
||||||
|
else
|
||||||
|
return identifierOrType();
|
||||||
case PAYLOADNV:
|
case PAYLOADNV:
|
||||||
case PAYLOADINNV:
|
case PAYLOADINNV:
|
||||||
case HITATTRNV:
|
case HITATTRNV:
|
||||||
@ -1047,13 +1064,17 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
return es30ReservedFromGLSL(420);
|
return es30ReservedFromGLSL(420);
|
||||||
|
|
||||||
case COHERENT:
|
case SUBROUTINE:
|
||||||
|
return es30ReservedFromGLSL(400);
|
||||||
|
|
||||||
case DEVICECOHERENT:
|
case DEVICECOHERENT:
|
||||||
case QUEUEFAMILYCOHERENT:
|
case QUEUEFAMILYCOHERENT:
|
||||||
case WORKGROUPCOHERENT:
|
case WORKGROUPCOHERENT:
|
||||||
case SUBGROUPCOHERENT:
|
case SUBGROUPCOHERENT:
|
||||||
case SHADERCALLCOHERENT:
|
case SHADERCALLCOHERENT:
|
||||||
case NONPRIVATE:
|
case NONPRIVATE:
|
||||||
|
#endif
|
||||||
|
case COHERENT:
|
||||||
case RESTRICT:
|
case RESTRICT:
|
||||||
case READONLY:
|
case READONLY:
|
||||||
case WRITEONLY:
|
case WRITEONLY:
|
||||||
@ -1082,9 +1103,6 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation))
|
parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation))
|
||||||
return keyword;
|
return keyword;
|
||||||
return es30ReservedFromGLSL(400);
|
return es30ReservedFromGLSL(400);
|
||||||
|
|
||||||
case SUBROUTINE:
|
|
||||||
return es30ReservedFromGLSL(400);
|
|
||||||
#endif
|
#endif
|
||||||
case SHARED:
|
case SHARED:
|
||||||
if ((parseContext.isEsProfile() && parseContext.version < 300) ||
|
if ((parseContext.isEsProfile() && parseContext.version < 300) ||
|
||||||
@ -1121,6 +1139,7 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return matNxM();
|
return matNxM();
|
||||||
|
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
|
#ifndef GLSLANG_ANGLE
|
||||||
case DMAT2:
|
case DMAT2:
|
||||||
case DMAT3:
|
case DMAT3:
|
||||||
case DMAT4:
|
case DMAT4:
|
||||||
@ -1141,6 +1160,7 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
case IMAGE1DARRAY:
|
case IMAGE1DARRAY:
|
||||||
case IIMAGE1DARRAY:
|
case IIMAGE1DARRAY:
|
||||||
case UIMAGE1DARRAY:
|
case UIMAGE1DARRAY:
|
||||||
|
#endif
|
||||||
case IMAGE2DRECT:
|
case IMAGE2DRECT:
|
||||||
case IIMAGE2DRECT:
|
case IIMAGE2DRECT:
|
||||||
case UIMAGE2DRECT:
|
case UIMAGE2DRECT:
|
||||||
@ -1189,6 +1209,7 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
afterType = true;
|
afterType = true;
|
||||||
return secondGenerationImage();
|
return secondGenerationImage();
|
||||||
|
|
||||||
|
#ifndef GLSLANG_ANGLE
|
||||||
case DOUBLE:
|
case DOUBLE:
|
||||||
case DVEC2:
|
case DVEC2:
|
||||||
case DVEC3:
|
case DVEC3:
|
||||||
@ -1343,6 +1364,7 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
|
|
||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
|
#endif
|
||||||
|
|
||||||
case SAMPLERCUBEARRAY:
|
case SAMPLERCUBEARRAY:
|
||||||
case SAMPLERCUBEARRAYSHADOW:
|
case SAMPLERCUBEARRAYSHADOW:
|
||||||
@ -1419,6 +1441,7 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
|
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
|
#ifndef GLSLANG_ANGLE
|
||||||
case ISAMPLER1D:
|
case ISAMPLER1D:
|
||||||
case ISAMPLER1DARRAY:
|
case ISAMPLER1DARRAY:
|
||||||
case SAMPLER1DARRAYSHADOW:
|
case SAMPLER1DARRAYSHADOW:
|
||||||
@ -1426,6 +1449,23 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
case USAMPLER1DARRAY:
|
case USAMPLER1DARRAY:
|
||||||
afterType = true;
|
afterType = true;
|
||||||
return es30ReservedFromGLSL(130);
|
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 ISAMPLER2DRECT:
|
||||||
case USAMPLER2DRECT:
|
case USAMPLER2DRECT:
|
||||||
afterType = true;
|
afterType = true;
|
||||||
@ -1469,13 +1509,6 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
return es30ReservedFromGLSL(150);
|
return es30ReservedFromGLSL(150);
|
||||||
|
|
||||||
case SAMPLER1D:
|
|
||||||
case SAMPLER1DSHADOW:
|
|
||||||
afterType = true;
|
|
||||||
if (parseContext.isEsProfile())
|
|
||||||
reservedWord();
|
|
||||||
return keyword;
|
|
||||||
|
|
||||||
case SAMPLER2DRECT:
|
case SAMPLER2DRECT:
|
||||||
case SAMPLER2DRECTSHADOW:
|
case SAMPLER2DRECTSHADOW:
|
||||||
afterType = true;
|
afterType = true;
|
||||||
@ -1489,15 +1522,6 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
}
|
}
|
||||||
return keyword;
|
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:
|
case SAMPLEREXTERNALOES:
|
||||||
afterType = true;
|
afterType = true;
|
||||||
if (parseContext.symbolTable.atBuiltInLevel() ||
|
if (parseContext.symbolTable.atBuiltInLevel() ||
|
||||||
@ -1513,10 +1537,14 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
|
|
||||||
case ITEXTURE1DARRAY:
|
#ifndef GLSLANG_ANGLE
|
||||||
case UTEXTURE1D:
|
case TEXTURE1D:
|
||||||
case ITEXTURE1D:
|
case ITEXTURE1D:
|
||||||
|
case UTEXTURE1D:
|
||||||
|
case TEXTURE1DARRAY:
|
||||||
|
case ITEXTURE1DARRAY:
|
||||||
case UTEXTURE1DARRAY:
|
case UTEXTURE1DARRAY:
|
||||||
|
#endif
|
||||||
case TEXTUREBUFFER:
|
case TEXTUREBUFFER:
|
||||||
case ITEXTURE2DRECT:
|
case ITEXTURE2DRECT:
|
||||||
case UTEXTURE2DRECT:
|
case UTEXTURE2DRECT:
|
||||||
@ -1528,14 +1556,24 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
case TEXTURE2DMSARRAY:
|
case TEXTURE2DMSARRAY:
|
||||||
case ITEXTURE2DMSARRAY:
|
case ITEXTURE2DMSARRAY:
|
||||||
case UTEXTURE2DMSARRAY:
|
case UTEXTURE2DMSARRAY:
|
||||||
case TEXTURE1D:
|
|
||||||
case TEXTURE2DRECT:
|
case TEXTURE2DRECT:
|
||||||
case TEXTURE1DARRAY:
|
|
||||||
if (parseContext.spvVersion.vulkan > 0)
|
if (parseContext.spvVersion.vulkan > 0)
|
||||||
return keyword;
|
return keyword;
|
||||||
else
|
else
|
||||||
return identifierOrType();
|
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 SUBPASSINPUT:
|
||||||
case SUBPASSINPUTMS:
|
case SUBPASSINPUTMS:
|
||||||
case ISUBPASSINPUT:
|
case ISUBPASSINPUT:
|
||||||
@ -1609,17 +1647,6 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
return identifierOrType();
|
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 PERPRIMITIVENV:
|
||||||
case PERVIEWNV:
|
case PERVIEWNV:
|
||||||
case PERTASKNV:
|
case PERTASKNV:
|
||||||
@ -1649,6 +1676,7 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
else
|
else
|
||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -58,10 +58,16 @@
|
|||||||
//
|
//
|
||||||
// m4 -P
|
// 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_ON', `m4_ifdef(`GLSLANG_WEB', `m4_divert(`-1')')')
|
||||||
m4_define(`GLSLANG_WEB_EXCLUDE_OFF', `m4_ifdef(`GLSLANG_WEB', `m4_divert')')
|
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
|
* This is bison grammar and productions for parsing all versions of the
|
||||||
* GLSL shading languages.
|
* GLSL shading languages.
|
||||||
@ -177,6 +183,9 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
|
||||||
%token <lex> ATTRIBUTE VARYING
|
%token <lex> ATTRIBUTE VARYING
|
||||||
|
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
|
|
||||||
%token <lex> FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T
|
%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> INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T
|
||||||
%token <lex> I64VEC2 I64VEC3 I64VEC4
|
%token <lex> I64VEC2 I64VEC3 I64VEC4
|
||||||
@ -209,23 +218,31 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
%token <lex> RAYQUERYEXT
|
%token <lex> RAYQUERYEXT
|
||||||
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
|
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
|
||||||
|
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
|
|
||||||
// combined image/sampler
|
// combined image/sampler
|
||||||
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
|
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
|
||||||
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
|
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
|
||||||
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
|
||||||
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
|
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
|
||||||
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
|
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
|
||||||
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
|
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
|
||||||
%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
|
%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
|
||||||
%token <lex> SAMPLEREXTERNALOES
|
%token <lex> SAMPLEREXTERNALOES
|
||||||
%token <lex> SAMPLEREXTERNAL2DY2YEXT
|
%token <lex> SAMPLEREXTERNAL2DY2YEXT
|
||||||
|
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
|
|
||||||
|
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
||||||
%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY
|
%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY
|
||||||
|
|
||||||
%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
|
%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
|
||||||
%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
|
%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
|
||||||
%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
|
%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
|
||||||
%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
|
%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
|
||||||
%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
|
%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
|
||||||
|
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
|
|
||||||
// images
|
// images
|
||||||
%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
|
%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
|
||||||
%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
|
%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
|
||||||
@ -238,10 +255,14 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
|
%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
|
||||||
%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
|
%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
|
||||||
|
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
|
|
||||||
%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
|
%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
|
||||||
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
|
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
|
||||||
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
|
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
|
||||||
|
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
|
|
||||||
// texture without sampler
|
// texture without sampler
|
||||||
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
|
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
|
||||||
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
|
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
|
||||||
@ -251,6 +272,8 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
|
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
|
||||||
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
|
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
|
||||||
|
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
|
|
||||||
%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
|
%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
|
||||||
%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
|
%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
|
||||||
%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
|
%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
|
||||||
@ -259,6 +282,8 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
%token <lex> SUBPASSINPUT SUBPASSINPUTMS ISUBPASSINPUT ISUBPASSINPUTMS USUBPASSINPUT USUBPASSINPUTMS
|
%token <lex> SUBPASSINPUT SUBPASSINPUTMS ISUBPASSINPUT ISUBPASSINPUTMS USUBPASSINPUT USUBPASSINPUTMS
|
||||||
%token <lex> F16SUBPASSINPUT F16SUBPASSINPUTMS
|
%token <lex> F16SUBPASSINPUT F16SUBPASSINPUTMS
|
||||||
|
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
|
|
||||||
%token <lex> LEFT_OP RIGHT_OP
|
%token <lex> LEFT_OP RIGHT_OP
|
||||||
@ -285,16 +310,26 @@ GLSLANG_WEB_EXCLUDE_OFF
|
|||||||
%token <lex> FLAT SMOOTH LAYOUT
|
%token <lex> FLAT SMOOTH LAYOUT
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
|
|
||||||
%token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
|
%token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
|
||||||
%token <lex> INT64CONSTANT UINT64CONSTANT
|
%token <lex> INT64CONSTANT UINT64CONSTANT
|
||||||
%token <lex> SUBROUTINE DEMOTE
|
%token <lex> SUBROUTINE DEMOTE
|
||||||
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
|
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
|
||||||
%token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
|
%token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
|
||||||
%token <lex> PATCH SAMPLE NONUNIFORM
|
%token <lex> NONUNIFORM
|
||||||
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
|
%token <lex> DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
|
||||||
%token <lex> SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT
|
%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
|
%token <lex> PRECISE
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
|
|
||||||
%type <interm> assignment_operator unary_operator
|
%type <interm> assignment_operator unary_operator
|
||||||
@ -343,11 +378,19 @@ GLSLANG_WEB_EXCLUDE_OFF
|
|||||||
%type <interm.identifierList> identifier_list
|
%type <interm.identifierList> identifier_list
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
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.typeList> type_name_list
|
||||||
%type <interm.attributes> attribute attribute_list single_attribute
|
%type <interm.attributes> attribute attribute_list single_attribute
|
||||||
%type <interm.intermNode> demote_statement
|
|
||||||
%type <interm.intermTypedNode> initializer_list
|
%type <interm.intermTypedNode> initializer_list
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
|
|
||||||
%start translation_unit
|
%start translation_unit
|
||||||
@ -382,6 +425,7 @@ primary_expression
|
|||||||
$$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
|
$$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
| STRING_LITERAL {
|
| STRING_LITERAL {
|
||||||
$$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
|
$$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
|
||||||
}
|
}
|
||||||
@ -419,6 +463,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
parseContext.float16Check($1.loc, "half float literal");
|
parseContext.float16Check($1.loc, "half float literal");
|
||||||
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
|
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
|
||||||
}
|
}
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -546,11 +591,13 @@ function_identifier
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
| non_uniform_qualifier {
|
| non_uniform_qualifier {
|
||||||
// Constructor
|
// Constructor
|
||||||
$$.intermNode = 0;
|
$$.intermNode = 0;
|
||||||
$$.function = parseContext.handleConstructorCall($1.loc, $1);
|
$$.function = parseContext.handleConstructorCall($1.loc, $1);
|
||||||
}
|
}
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -1207,6 +1254,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.nopersp = true;
|
$$.qualifier.nopersp = true;
|
||||||
}
|
}
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
| EXPLICITINTERPAMD {
|
| EXPLICITINTERPAMD {
|
||||||
parseContext.globalCheck($1.loc, "__explicitInterpAMD");
|
parseContext.globalCheck($1.loc, "__explicitInterpAMD");
|
||||||
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
|
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);
|
$$.init($1.loc);
|
||||||
$$.qualifier.perTaskNV = true;
|
$$.qualifier.perTaskNV = true;
|
||||||
}
|
}
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -1330,9 +1379,11 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
// allow inheritance of storage qualifier from block declaration
|
// allow inheritance of storage qualifier from block declaration
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
| non_uniform_qualifier {
|
| non_uniform_qualifier {
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -1421,6 +1472,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.sample = true;
|
$$.qualifier.sample = true;
|
||||||
}
|
}
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
| HITATTRNV {
|
| HITATTRNV {
|
||||||
parseContext.globalCheck($1.loc, "hitAttributeNV");
|
parseContext.globalCheck($1.loc, "hitAttributeNV");
|
||||||
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
|
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
|
||||||
@ -1499,10 +1551,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.storage = EvqCallableDataIn;
|
$$.qualifier.storage = EvqCallableDataIn;
|
||||||
}
|
}
|
||||||
| COHERENT {
|
|
||||||
$$.init($1.loc);
|
|
||||||
$$.qualifier.coherent = true;
|
|
||||||
}
|
|
||||||
| DEVICECOHERENT {
|
| DEVICECOHERENT {
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
|
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");
|
parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
|
||||||
$$.qualifier.shadercallcoherent = true;
|
$$.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 {
|
| VOLATILE {
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.volatil = true;
|
$$.qualifier.volatil = true;
|
||||||
@ -1549,28 +1614,18 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.writeonly = true;
|
$$.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_OFF
|
||||||
;
|
;
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
non_uniform_qualifier
|
non_uniform_qualifier
|
||||||
: NONUNIFORM {
|
: NONUNIFORM {
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.nonUniform = true;
|
$$.qualifier.nonUniform = true;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
|
|
||||||
type_name_list
|
type_name_list
|
||||||
: IDENTIFIER {
|
: IDENTIFIER {
|
||||||
@ -1804,6 +1859,7 @@ type_specifier_nonarray
|
|||||||
$$.setMatrix(4, 4);
|
$$.setMatrix(4, 4);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
| DOUBLE {
|
| DOUBLE {
|
||||||
parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
|
parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
|
||||||
if (! parseContext.symbolTable.atBuiltInLevel())
|
if (! parseContext.symbolTable.atBuiltInLevel())
|
||||||
@ -2422,6 +2478,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd1D);
|
$$.sampler.set(EbtFloat, Esd1D);
|
||||||
}
|
}
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
| SAMPLER2D {
|
| SAMPLER2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2459,6 +2516,17 @@ GLSLANG_WEB_EXCLUDE_OFF
|
|||||||
$$.sampler.set(EbtFloat, Esd2D, true, true);
|
$$.sampler.set(EbtFloat, Esd2D, true, true);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
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 {
|
| SAMPLER1DSHADOW {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2474,16 +2542,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd1D, true, true);
|
$$.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 {
|
| F16SAMPLER1D {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2567,6 +2625,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtInt, Esd1D);
|
$$.sampler.set(EbtInt, Esd1D);
|
||||||
}
|
}
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
| ISAMPLER2D {
|
| ISAMPLER2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2604,26 +2663,11 @@ GLSLANG_WEB_EXCLUDE_OFF
|
|||||||
$$.sampler.set(EbtUint, EsdCube);
|
$$.sampler.set(EbtUint, EsdCube);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
| ISAMPLER1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtInt, Esd1D, true);
|
|
||||||
}
|
|
||||||
| ISAMPLERCUBEARRAY {
|
| ISAMPLERCUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtInt, EsdCube, true);
|
$$.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 {
|
| USAMPLERCUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2644,6 +2688,23 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtUint, EsdCube, true);
|
$$.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
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
| USAMPLER2DARRAY {
|
| USAMPLER2DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2731,18 +2792,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, EsdRect, false, true);
|
$$.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 {
|
| ISAMPLER2DRECT {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2758,12 +2807,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, EsdBuffer);
|
$$.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 {
|
| ISAMPLERBUFFER {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2779,12 +2822,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd2D, false, false, true);
|
$$.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 {
|
| ISAMPLER2DMS {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2800,12 +2837,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd2D, true, false, true);
|
$$.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 {
|
| ISAMPLER2DMSARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2816,11 +2847,129 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtUint, Esd2D, true, false, true);
|
$$.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 {
|
| TEXTURE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat, Esd1D);
|
$$.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 {
|
| F16TEXTURE1D {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2845,11 +2994,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdCube);
|
$$.sampler.setTexture(EbtFloat16, EsdCube);
|
||||||
}
|
}
|
||||||
| TEXTURE1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, Esd1D, true);
|
|
||||||
}
|
|
||||||
| F16TEXTURE1DARRAY {
|
| F16TEXTURE1DARRAY {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2868,121 +3012,35 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdCube, true);
|
$$.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 {
|
| F16TEXTURE2DRECT {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdRect);
|
$$.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 {
|
| F16TEXTUREBUFFER {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdBuffer);
|
$$.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 {
|
| F16TEXTURE2DMS {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
|
$$.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 {
|
| F16TEXTURE2DMSARRAY {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
|
$$.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 {
|
| IMAGE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd1D);
|
$$.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 {
|
| IIMAGE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2993,17 +3051,12 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtUint, Esd1D);
|
$$.sampler.setImage(EbtUint, Esd1D);
|
||||||
}
|
}
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
| IMAGE2D {
|
| IMAGE2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D);
|
$$.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 {
|
| IIMAGE2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3019,12 +3072,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd3D);
|
$$.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 {
|
| IIMAGE3D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3040,12 +3087,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdRect);
|
$$.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 {
|
| IIMAGE2DRECT {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3061,12 +3102,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdCube);
|
$$.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 {
|
| IIMAGECUBE {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3082,12 +3117,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdBuffer);
|
$$.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 {
|
| IIMAGEBUFFER {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3103,12 +3132,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd1D, true);
|
$$.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 {
|
| IIMAGE1DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3124,12 +3147,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D, true);
|
$$.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 {
|
| IIMAGE2DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3145,12 +3162,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdCube, true);
|
$$.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 {
|
| IIMAGECUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3166,12 +3177,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
|
$$.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 {
|
| IIMAGE2DMS {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3187,12 +3192,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
|
$$.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 {
|
| IIMAGE2DMSARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3203,6 +3202,74 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtUint, Esd2D, true, false, true);
|
$$.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
|
| SAMPLEREXTERNALOES { // GL_OES_EGL_image_external
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3215,6 +3282,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.sampler.set(EbtFloat, Esd2D);
|
$$.sampler.set(EbtFloat, Esd2D);
|
||||||
$$.sampler.yuv = true;
|
$$.sampler.yuv = true;
|
||||||
}
|
}
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
| SUBPASSINPUT {
|
| SUBPASSINPUT {
|
||||||
parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
|
parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -3283,6 +3351,7 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtUint;
|
$$.basicType = EbtUint;
|
||||||
$$.coopmat = true;
|
$$.coopmat = true;
|
||||||
}
|
}
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
| struct_specifier {
|
| struct_specifier {
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
@ -3485,11 +3554,14 @@ simple_statement
|
|||||||
| iteration_statement { $$ = $1; }
|
| iteration_statement { $$ = $1; }
|
||||||
| jump_statement { $$ = $1; }
|
| jump_statement { $$ = $1; }
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
| demote_statement { $$ = $1; }
|
| demote_statement { $$ = $1; }
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
;
|
;
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_ON
|
||||||
demote_statement
|
demote_statement
|
||||||
: DEMOTE SEMICOLON {
|
: DEMOTE SEMICOLON {
|
||||||
parseContext.requireStage($1.loc, EShLangFragment, "demote");
|
parseContext.requireStage($1.loc, EShLangFragment, "demote");
|
||||||
@ -3497,6 +3569,7 @@ demote_statement
|
|||||||
$$ = parseContext.intermediate.addBranch(EOpDemote, $1.loc);
|
$$ = parseContext.intermediate.addBranch(EOpDemote, $1.loc);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
GLSLANG_ANGLE_EXCLUDE_OFF
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
|
|
||||||
compound_statement
|
compound_statement
|
||||||
|
@ -58,6 +58,12 @@
|
|||||||
//
|
//
|
||||||
// m4 -P
|
// 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> ATTRIBUTE VARYING
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%token <lex> FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T
|
%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> INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T
|
||||||
%token <lex> I64VEC2 I64VEC3 I64VEC4
|
%token <lex> I64VEC2 I64VEC3 I64VEC4
|
||||||
@ -209,23 +218,31 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
%token <lex> RAYQUERYEXT
|
%token <lex> RAYQUERYEXT
|
||||||
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
|
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// combined image/sampler
|
// combined image/sampler
|
||||||
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
|
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
|
||||||
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
|
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
|
||||||
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
|
||||||
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
|
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
|
||||||
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
|
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
|
||||||
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
|
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
|
||||||
%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
|
%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
|
||||||
%token <lex> SAMPLEREXTERNALOES
|
%token <lex> SAMPLEREXTERNALOES
|
||||||
%token <lex> SAMPLEREXTERNAL2DY2YEXT
|
%token <lex> SAMPLEREXTERNAL2DY2YEXT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
||||||
%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY
|
%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY
|
||||||
|
|
||||||
%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
|
%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
|
||||||
%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
|
%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
|
||||||
%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
|
%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
|
||||||
%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
|
%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
|
||||||
%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
|
%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// images
|
// images
|
||||||
%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
|
%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
|
||||||
%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
|
%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
|
||||||
@ -238,10 +255,14 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
|
%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
|
||||||
%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
|
%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
|
%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
|
||||||
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
|
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
|
||||||
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
|
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// texture without sampler
|
// texture without sampler
|
||||||
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
|
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
|
||||||
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
|
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
|
||||||
@ -251,6 +272,8 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
|
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
|
||||||
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
|
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
|
%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
|
||||||
%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
|
%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
|
||||||
%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
|
%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
|
||||||
@ -261,6 +284,8 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%token <lex> LEFT_OP RIGHT_OP
|
%token <lex> LEFT_OP RIGHT_OP
|
||||||
%token <lex> INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_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
|
%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> FLAT SMOOTH LAYOUT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
|
%token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
|
||||||
%token <lex> INT64CONSTANT UINT64CONSTANT
|
%token <lex> INT64CONSTANT UINT64CONSTANT
|
||||||
%token <lex> SUBROUTINE DEMOTE
|
%token <lex> SUBROUTINE DEMOTE
|
||||||
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
|
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
|
||||||
%token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
|
%token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
|
||||||
%token <lex> PATCH SAMPLE NONUNIFORM
|
%token <lex> NONUNIFORM
|
||||||
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
|
%token <lex> DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
|
||||||
%token <lex> SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT
|
%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
|
%token <lex> PRECISE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%type <interm> assignment_operator unary_operator
|
%type <interm> assignment_operator unary_operator
|
||||||
%type <interm.intermTypedNode> variable_identifier primary_expression postfix_expression
|
%type <interm.intermTypedNode> variable_identifier primary_expression postfix_expression
|
||||||
%type <interm.intermTypedNode> expression integer_expression assignment_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.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.typeList> type_name_list
|
||||||
%type <interm.attributes> attribute attribute_list single_attribute
|
%type <interm.attributes> attribute attribute_list single_attribute
|
||||||
%type <interm.intermNode> demote_statement
|
|
||||||
%type <interm.intermTypedNode> initializer_list
|
%type <interm.intermTypedNode> initializer_list
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%start translation_unit
|
%start translation_unit
|
||||||
%%
|
%%
|
||||||
|
|
||||||
@ -382,6 +425,7 @@ primary_expression
|
|||||||
$$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
|
$$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
| STRING_LITERAL {
|
| STRING_LITERAL {
|
||||||
$$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
|
$$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
|
||||||
}
|
}
|
||||||
@ -420,6 +464,7 @@ primary_expression
|
|||||||
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
|
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
postfix_expression
|
postfix_expression
|
||||||
@ -546,12 +591,14 @@ function_identifier
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
| non_uniform_qualifier {
|
| non_uniform_qualifier {
|
||||||
// Constructor
|
// Constructor
|
||||||
$$.intermNode = 0;
|
$$.intermNode = 0;
|
||||||
$$.function = parseContext.handleConstructorCall($1.loc, $1);
|
$$.function = parseContext.handleConstructorCall($1.loc, $1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
unary_expression
|
unary_expression
|
||||||
@ -1207,6 +1254,7 @@ interpolation_qualifier
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.nopersp = true;
|
$$.qualifier.nopersp = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
| EXPLICITINTERPAMD {
|
| EXPLICITINTERPAMD {
|
||||||
parseContext.globalCheck($1.loc, "__explicitInterpAMD");
|
parseContext.globalCheck($1.loc, "__explicitInterpAMD");
|
||||||
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
|
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
|
||||||
@ -1247,6 +1295,7 @@ interpolation_qualifier
|
|||||||
$$.qualifier.perTaskNV = true;
|
$$.qualifier.perTaskNV = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
layout_qualifier
|
layout_qualifier
|
||||||
@ -1330,10 +1379,12 @@ single_type_qualifier
|
|||||||
// allow inheritance of storage qualifier from block declaration
|
// allow inheritance of storage qualifier from block declaration
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
|
|
||||||
| non_uniform_qualifier {
|
| non_uniform_qualifier {
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
storage_qualifier
|
storage_qualifier
|
||||||
@ -1421,6 +1472,7 @@ storage_qualifier
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.sample = true;
|
$$.qualifier.sample = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
| HITATTRNV {
|
| HITATTRNV {
|
||||||
parseContext.globalCheck($1.loc, "hitAttributeNV");
|
parseContext.globalCheck($1.loc, "hitAttributeNV");
|
||||||
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
|
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
|
||||||
@ -1499,10 +1551,6 @@ storage_qualifier
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.storage = EvqCallableDataIn;
|
$$.qualifier.storage = EvqCallableDataIn;
|
||||||
}
|
}
|
||||||
| COHERENT {
|
|
||||||
$$.init($1.loc);
|
|
||||||
$$.qualifier.coherent = true;
|
|
||||||
}
|
|
||||||
| DEVICECOHERENT {
|
| DEVICECOHERENT {
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
|
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");
|
parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
|
||||||
$$.qualifier.shadercallcoherent = true;
|
$$.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 {
|
| VOLATILE {
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.volatil = true;
|
$$.qualifier.volatil = true;
|
||||||
@ -1549,22 +1614,11 @@ storage_qualifier
|
|||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
$$.qualifier.writeonly = true;
|
$$.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
|
non_uniform_qualifier
|
||||||
: NONUNIFORM {
|
: NONUNIFORM {
|
||||||
$$.init($1.loc);
|
$$.init($1.loc);
|
||||||
@ -1572,6 +1626,7 @@ non_uniform_qualifier
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
type_name_list
|
type_name_list
|
||||||
: IDENTIFIER {
|
: IDENTIFIER {
|
||||||
// TODO
|
// TODO
|
||||||
@ -1804,6 +1859,7 @@ type_specifier_nonarray
|
|||||||
$$.setMatrix(4, 4);
|
$$.setMatrix(4, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
| DOUBLE {
|
| DOUBLE {
|
||||||
parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
|
parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
|
||||||
if (! parseContext.symbolTable.atBuiltInLevel())
|
if (! parseContext.symbolTable.atBuiltInLevel())
|
||||||
@ -2423,6 +2479,7 @@ type_specifier_nonarray
|
|||||||
$$.sampler.set(EbtFloat, Esd1D);
|
$$.sampler.set(EbtFloat, Esd1D);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
| SAMPLER2D {
|
| SAMPLER2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2459,6 +2516,17 @@ type_specifier_nonarray
|
|||||||
$$.sampler.set(EbtFloat, Esd2D, true, true);
|
$$.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 {
|
| SAMPLER1DSHADOW {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2474,16 +2542,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd1D, true, true);
|
$$.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 {
|
| F16SAMPLER1D {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2568,6 +2626,7 @@ type_specifier_nonarray
|
|||||||
$$.sampler.set(EbtInt, Esd1D);
|
$$.sampler.set(EbtInt, Esd1D);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
| ISAMPLER2D {
|
| ISAMPLER2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2604,26 +2663,11 @@ type_specifier_nonarray
|
|||||||
$$.sampler.set(EbtUint, EsdCube);
|
$$.sampler.set(EbtUint, EsdCube);
|
||||||
}
|
}
|
||||||
|
|
||||||
| ISAMPLER1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtInt, Esd1D, true);
|
|
||||||
}
|
|
||||||
| ISAMPLERCUBEARRAY {
|
| ISAMPLERCUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtInt, EsdCube, true);
|
$$.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 {
|
| USAMPLERCUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2645,6 +2689,23 @@ type_specifier_nonarray
|
|||||||
$$.sampler.setTexture(EbtUint, EsdCube, true);
|
$$.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 {
|
| USAMPLER2DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2731,18 +2792,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, EsdRect, false, true);
|
$$.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 {
|
| ISAMPLER2DRECT {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2758,12 +2807,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, EsdBuffer);
|
$$.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 {
|
| ISAMPLERBUFFER {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2779,12 +2822,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd2D, false, false, true);
|
$$.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 {
|
| ISAMPLER2DMS {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2800,12 +2837,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd2D, true, false, true);
|
$$.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 {
|
| ISAMPLER2DMSARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2816,11 +2847,129 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtUint, Esd2D, true, false, true);
|
$$.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 {
|
| TEXTURE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat, Esd1D);
|
$$.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 {
|
| F16TEXTURE1D {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2845,11 +2994,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdCube);
|
$$.sampler.setTexture(EbtFloat16, EsdCube);
|
||||||
}
|
}
|
||||||
| TEXTURE1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, Esd1D, true);
|
|
||||||
}
|
|
||||||
| F16TEXTURE1DARRAY {
|
| F16TEXTURE1DARRAY {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2868,121 +3012,35 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdCube, true);
|
$$.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 {
|
| F16TEXTURE2DRECT {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdRect);
|
$$.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 {
|
| F16TEXTUREBUFFER {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, EsdBuffer);
|
$$.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 {
|
| F16TEXTURE2DMS {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
|
$$.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 {
|
| F16TEXTURE2DMSARRAY {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
|
$$.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 {
|
| IMAGE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd1D);
|
$$.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 {
|
| IIMAGE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2993,17 +3051,12 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtUint, Esd1D);
|
$$.sampler.setImage(EbtUint, Esd1D);
|
||||||
}
|
}
|
||||||
|
|
||||||
| IMAGE2D {
|
| IMAGE2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D);
|
$$.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 {
|
| IIMAGE2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3019,12 +3072,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd3D);
|
$$.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 {
|
| IIMAGE3D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3040,12 +3087,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdRect);
|
$$.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 {
|
| IIMAGE2DRECT {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3061,12 +3102,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdCube);
|
$$.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 {
|
| IIMAGECUBE {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3082,12 +3117,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdBuffer);
|
$$.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 {
|
| IIMAGEBUFFER {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3103,12 +3132,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd1D, true);
|
$$.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 {
|
| IIMAGE1DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3124,12 +3147,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D, true);
|
$$.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 {
|
| IIMAGE2DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3145,12 +3162,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, EsdCube, true);
|
$$.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 {
|
| IIMAGECUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3166,12 +3177,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
|
$$.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 {
|
| IIMAGE2DMS {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3187,12 +3192,6 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
|
$$.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 {
|
| IIMAGE2DMSARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3203,6 +3202,74 @@ type_specifier_nonarray
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setImage(EbtUint, Esd2D, true, false, true);
|
$$.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
|
| SAMPLEREXTERNALOES { // GL_OES_EGL_image_external
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -3215,6 +3282,7 @@ type_specifier_nonarray
|
|||||||
$$.sampler.set(EbtFloat, Esd2D);
|
$$.sampler.set(EbtFloat, Esd2D);
|
||||||
$$.sampler.yuv = true;
|
$$.sampler.yuv = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
| SUBPASSINPUT {
|
| SUBPASSINPUT {
|
||||||
parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
|
parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -3284,6 +3352,7 @@ type_specifier_nonarray
|
|||||||
$$.coopmat = true;
|
$$.coopmat = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
| struct_specifier {
|
| struct_specifier {
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
$$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
|
$$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
|
||||||
@ -3485,11 +3554,14 @@ simple_statement
|
|||||||
| iteration_statement { $$ = $1; }
|
| iteration_statement { $$ = $1; }
|
||||||
| jump_statement { $$ = $1; }
|
| jump_statement { $$ = $1; }
|
||||||
|
|
||||||
|
|
||||||
| demote_statement { $$ = $1; }
|
| demote_statement { $$ = $1; }
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
demote_statement
|
demote_statement
|
||||||
: DEMOTE SEMICOLON {
|
: DEMOTE SEMICOLON {
|
||||||
parseContext.requireStage($1.loc, EShLangFragment, "demote");
|
parseContext.requireStage($1.loc, EShLangFragment, "demote");
|
||||||
@ -3499,6 +3571,7 @@ demote_statement
|
|||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
compound_statement
|
compound_statement
|
||||||
: LEFT_BRACE RIGHT_BRACE { $$ = 0; }
|
: LEFT_BRACE RIGHT_BRACE { $$ = 0; }
|
||||||
| LEFT_BRACE {
|
| 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
|
/* 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
|
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
|
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
|
This special exception was added by the Free Software Foundation in
|
||||||
version 2.2 of Bison. */
|
version 2.2 of Bison. */
|
||||||
|
|
||||||
#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
|
/* Undocumented macros, especially those whose name start with YY_,
|
||||||
# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
|
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. */
|
/* Debug traces. */
|
||||||
#ifndef YYDEBUG
|
#ifndef YYDEBUG
|
||||||
# define YYDEBUG 1
|
# define YYDEBUG 1
|
||||||
@ -212,26 +216,26 @@ extern int yydebug;
|
|||||||
SAMPLERCUBEARRAYSHADOW = 422,
|
SAMPLERCUBEARRAYSHADOW = 422,
|
||||||
ISAMPLERCUBEARRAY = 423,
|
ISAMPLERCUBEARRAY = 423,
|
||||||
USAMPLERCUBEARRAY = 424,
|
USAMPLERCUBEARRAY = 424,
|
||||||
SAMPLER1D = 425,
|
SAMPLER2DRECT = 425,
|
||||||
SAMPLER1DARRAY = 426,
|
SAMPLER2DRECTSHADOW = 426,
|
||||||
SAMPLER1DARRAYSHADOW = 427,
|
ISAMPLER2DRECT = 427,
|
||||||
ISAMPLER1D = 428,
|
USAMPLER2DRECT = 428,
|
||||||
SAMPLER1DSHADOW = 429,
|
SAMPLERBUFFER = 429,
|
||||||
SAMPLER2DRECT = 430,
|
ISAMPLERBUFFER = 430,
|
||||||
SAMPLER2DRECTSHADOW = 431,
|
USAMPLERBUFFER = 431,
|
||||||
ISAMPLER2DRECT = 432,
|
SAMPLER2DMS = 432,
|
||||||
USAMPLER2DRECT = 433,
|
ISAMPLER2DMS = 433,
|
||||||
SAMPLERBUFFER = 434,
|
USAMPLER2DMS = 434,
|
||||||
ISAMPLERBUFFER = 435,
|
SAMPLER2DMSARRAY = 435,
|
||||||
USAMPLERBUFFER = 436,
|
ISAMPLER2DMSARRAY = 436,
|
||||||
SAMPLER2DMS = 437,
|
USAMPLER2DMSARRAY = 437,
|
||||||
ISAMPLER2DMS = 438,
|
SAMPLEREXTERNALOES = 438,
|
||||||
USAMPLER2DMS = 439,
|
SAMPLEREXTERNAL2DY2YEXT = 439,
|
||||||
SAMPLER2DMSARRAY = 440,
|
SAMPLER1D = 440,
|
||||||
ISAMPLER2DMSARRAY = 441,
|
SAMPLER1DARRAY = 441,
|
||||||
USAMPLER2DMSARRAY = 442,
|
SAMPLER1DARRAYSHADOW = 442,
|
||||||
SAMPLEREXTERNALOES = 443,
|
ISAMPLER1D = 443,
|
||||||
SAMPLEREXTERNAL2DY2YEXT = 444,
|
SAMPLER1DSHADOW = 444,
|
||||||
ISAMPLER1DARRAY = 445,
|
ISAMPLER1DARRAY = 445,
|
||||||
USAMPLER1D = 446,
|
USAMPLER1D = 446,
|
||||||
USAMPLER1DARRAY = 447,
|
USAMPLER1DARRAY = 447,
|
||||||
@ -441,36 +445,35 @@ extern int yydebug;
|
|||||||
HITATTREXT = 651,
|
HITATTREXT = 651,
|
||||||
CALLDATAEXT = 652,
|
CALLDATAEXT = 652,
|
||||||
CALLDATAINEXT = 653,
|
CALLDATAINEXT = 653,
|
||||||
PATCH = 654,
|
NONUNIFORM = 654,
|
||||||
SAMPLE = 655,
|
DEVICECOHERENT = 655,
|
||||||
NONUNIFORM = 656,
|
QUEUEFAMILYCOHERENT = 656,
|
||||||
COHERENT = 657,
|
WORKGROUPCOHERENT = 657,
|
||||||
VOLATILE = 658,
|
SUBGROUPCOHERENT = 658,
|
||||||
RESTRICT = 659,
|
NONPRIVATE = 659,
|
||||||
READONLY = 660,
|
SHADERCALLCOHERENT = 660,
|
||||||
WRITEONLY = 661,
|
EXPLICITINTERPAMD = 661,
|
||||||
DEVICECOHERENT = 662,
|
PERVERTEXNV = 662,
|
||||||
QUEUEFAMILYCOHERENT = 663,
|
PERPRIMITIVENV = 663,
|
||||||
WORKGROUPCOHERENT = 664,
|
PERVIEWNV = 664,
|
||||||
SUBGROUPCOHERENT = 665,
|
PERTASKNV = 665,
|
||||||
NONPRIVATE = 666,
|
PATCH = 666,
|
||||||
SHADERCALLCOHERENT = 667,
|
SAMPLE = 667,
|
||||||
NOPERSPECTIVE = 668,
|
COHERENT = 668,
|
||||||
EXPLICITINTERPAMD = 669,
|
VOLATILE = 669,
|
||||||
PERVERTEXNV = 670,
|
RESTRICT = 670,
|
||||||
PERPRIMITIVENV = 671,
|
READONLY = 671,
|
||||||
PERVIEWNV = 672,
|
WRITEONLY = 672,
|
||||||
PERTASKNV = 673,
|
NOPERSPECTIVE = 673,
|
||||||
PRECISE = 674
|
PRECISE = 674
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Value type. */
|
/* Value type. */
|
||||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||||
|
|
||||||
union YYSTYPE
|
union YYSTYPE
|
||||||
{
|
{
|
||||||
#line 97 "glslang.y" /* yacc.c:1909 */
|
#line 103 "MachineIndependent/glslang.y"
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
glslang::TSourceLoc loc;
|
glslang::TSourceLoc loc;
|
||||||
@ -506,9 +509,9 @@ union YYSTYPE
|
|||||||
glslang::TArraySizes* typeParameters;
|
glslang::TArraySizes* typeParameters;
|
||||||
} interm;
|
} interm;
|
||||||
|
|
||||||
#line 510 "glslang_tab.cpp.h" /* yacc.c:1909 */
|
#line 513 "MachineIndependent/glslang_tab.cpp.h"
|
||||||
};
|
|
||||||
|
|
||||||
|
};
|
||||||
typedef union YYSTYPE YYSTYPE;
|
typedef union YYSTYPE YYSTYPE;
|
||||||
# define YYSTYPE_IS_TRIVIAL 1
|
# define YYSTYPE_IS_TRIVIAL 1
|
||||||
# define YYSTYPE_IS_DECLARED 1
|
# define YYSTYPE_IS_DECLARED 1
|
||||||
@ -518,4 +521,4 @@ typedef union YYSTYPE YYSTYPE;
|
|||||||
|
|
||||||
int yyparse (glslang::TParseContext* pParseContext);
|
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 ]
|
elif [ "$#" -eq 0 ]
|
||||||
then
|
then
|
||||||
m4 -P MachineIndependent/glslang.m4 > MachineIndependent/glslang.y
|
m4 -P MachineIndependent/glslang.m4 > MachineIndependent/glslang.y
|
||||||
|
m4 -P -DGLSLANG_ANGLE MachineIndependent/glslang.m4 > MachineIndependent/glslang_angle.y
|
||||||
else
|
else
|
||||||
echo usage:
|
echo usage:
|
||||||
echo $0 web
|
echo $0 web
|
||||||
@ -47,3 +48,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
bison --defines=MachineIndependent/glslang_tab.cpp.h -t MachineIndependent/glslang.y -o MachineIndependent/glslang_tab.cpp
|
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",
|
||||||
"glslang/MachineIndependent/glslang_tab.cpp.h"
|
"glslang/MachineIndependent/glslang_tab.cpp.h"
|
||||||
|
|
||||||
|
"glslang/MachineIndependent/glslang_angle_tab.cpp",
|
||||||
|
"glslang/MachineIndependent/glslang_angle_tab.cpp.h"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -32,4 +35,4 @@
|
|||||||
"MIT-0",
|
"MIT-0",
|
||||||
"MIT"
|
"MIT"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user