Enable ANGLE_texture_multisample in glsl in es 3.0

Enable gsampler2dMS, texelFetch, textureSize in glslang in
es 3.0 if ANGLE_texture_multisample is supported.

Bug: angleproject:2275
TEST=SamplerMultisampleEXTTest.TextureMultisampleEXTEnabled

Change-Id: Ibfa367970db3ae790f3822e57eb50090843dc6db
Reviewed-on: https://chromium-review.googlesource.com/c/867521
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
This commit is contained in:
Yizhou Jiang 2018-09-19 15:23:29 +08:00 коммит произвёл Commit Bot
Родитель f2ed299569
Коммит c4533eae08
15 изменённых файлов: 679 добавлений и 427 удалений

Просмотреть файл

@ -314,6 +314,7 @@ struct ShBuiltInResources
int EXT_YUV_target;
int EXT_geometry_shader;
int OES_texture_storage_multisample_2d_array;
int ANGLE_texture_multisample;
// Set to 1 to enable replacing GL_EXT_draw_buffers #extension directives
// with GL_NV_draw_buffers in ESSL output. This flag can be used to emulate

Просмотреть файл

@ -64,6 +64,7 @@ void GenerateResources(ShBuiltInResources *resources)
resources->OES_standard_derivatives = 0;
resources->OES_EGL_image_external = 0;
resources->EXT_geometry_shader = 1;
resources->ANGLE_texture_multisample = 0;
}
int main(int argc, char *argv[])

Просмотреть файл

@ -34,7 +34,7 @@
"DXGI format:src/libANGLE/renderer/gen_angle_format_table.py":
"9de29b6ca59a05747623c0dc32344b14",
"ESSL static builtins:src/compiler/translator/builtin_function_declarations.txt":
"336c2a275fe35bce1adc7e9b5918bdb0",
"b98d4add454ee68dc17d9bd550abf61d",
"ESSL static builtins:src/compiler/translator/builtin_variables.json":
"2c0e86ff9f92f79ada03f04206e63fba",
"ESSL static builtins:src/compiler/translator/gen_builtin_symbols.py":

Просмотреть файл

@ -14,6 +14,7 @@
#define LIST_EXTENSIONS(OP) \
OP(ARB_texture_rectangle) \
OP(ANGLE_texture_multisample) \
OP(ARM_shader_framebuffer_fetch) \
OP(EXT_blend_func_extended) \
OP(EXT_draw_buffers) \

Просмотреть файл

@ -19,6 +19,7 @@ enum class TExtension
UNDEFINED, // Special value used to indicate no extension.
ARB_texture_rectangle,
ANGLE_texture_multisample,
ARM_shader_framebuffer_fetch,
EXT_blend_func_extended,
EXT_draw_buffers,

Просмотреть файл

@ -77,6 +77,10 @@ void InitExtensionBehavior(const ShBuiltInResources &resources, TExtensionBehavi
{
extBehavior[TExtension::OES_texture_storage_multisample_2d_array] = EBhUndefined;
}
if (resources.ANGLE_texture_multisample)
{
extBehavior[TExtension::ANGLE_texture_multisample] = EBhUndefined;
}
}
void ResetExtensionBehavior(TExtensionBehavior &extBehavior)

Просмотреть файл

@ -21,42 +21,42 @@ namespace BuiltInGroup
bool isTextureOffsetNoBias(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 668 && id <= 737;
return id >= 671 && id <= 740;
}
bool isTextureOffsetBias(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 738 && id <= 757;
return id >= 741 && id <= 760;
}
bool isTextureGatherOffset(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 832 && id <= 845;
return id >= 838 && id <= 851;
}
bool isTextureGather(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 808 && id <= 845;
return id >= 814 && id <= 851;
}
bool isAtomicMemory(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 862 && id <= 879;
return id >= 868 && id <= 885;
}
bool isImageLoad(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 904 && id <= 915;
return id >= 910 && id <= 921;
}
bool isImageStore(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 916 && id <= 927;
return id >= 922 && id <= 933;
}
bool isImage(const TFunction *func)
{
int id = func->uniqueId().get();
return id >= 880 && id <= 927;
return id >= 886 && id <= 933;
}
} // namespace BuiltInGroup

Просмотреть файл

@ -203,6 +203,7 @@ void InitBuiltInResources(ShBuiltInResources *resources)
resources->EXT_YUV_target = 0;
resources->EXT_geometry_shader = 0;
resources->OES_texture_storage_multisample_2d_array = 0;
resources->ANGLE_texture_multisample = 0;
resources->NV_draw_buffers = 0;

Просмотреть файл

@ -628,6 +628,9 @@ constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2DShadow1_Floa
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DMSArray1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DMSArray1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DMSArray1;
@ -781,6 +784,9 @@ constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_
constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DMSArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DMSArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DMSArray1_Int3_Int1;
@ -981,7 +987,7 @@ constexpr const TSymbolUniqueId BuiltInId::gl_PositionGS;
constexpr const TSymbolUniqueId BuiltInId::gl_ViewID_OVR;
constexpr const TSymbolUniqueId BuiltInId::gl_ViewID_OVRESSL1;
const int TSymbolTable::kLastBuiltInId = 1017;
const int TSymbolTable::kLastBuiltInId = 1023;
namespace BuiltInName
{
@ -1222,6 +1228,8 @@ constexpr const ImmutableString step("step");
constexpr const ImmutableString tan("tan");
constexpr const ImmutableString tanh("tanh");
constexpr const ImmutableString texelFetch("texelFetch");
constexpr const ImmutableString texelFetchExt("texelFetch");
constexpr const ImmutableString texelFetchExt_0O1C0C("texelFetch(0O1C0C");
constexpr const ImmutableString texelFetchOffset("texelFetchOffset");
constexpr const ImmutableString texelFetchOffset_0H1C0C1C("texelFetchOffset(0H1C0C1C");
constexpr const ImmutableString texelFetchOffset_0I2C0C2C("texelFetchOffset(0I2C0C2C");
@ -1411,6 +1419,7 @@ constexpr const ImmutableString textureProj_0Q2B0B("textureProj(0Q2B0B");
constexpr const ImmutableString textureProj_0R3B0B("textureProj(0R3B0B");
constexpr const ImmutableString textureProj_0X3B0B("textureProj(0X3B0B");
constexpr const ImmutableString textureSize("textureSize");
constexpr const ImmutableString textureSizeExt("textureSize");
constexpr const ImmutableString texture_0Q1B0B("texture(0Q1B0B");
constexpr const ImmutableString texture_0c2B0B("texture(0c2B0B");
constexpr const ImmutableString texture_0d3B0B("texture(0d3B0B");
@ -2310,9 +2319,9 @@ constexpr const TVariable *p0N2B[2] = {&BuiltInVariable::kVar_pt0N, &BuiltInVa
constexpr const TVariable *p0N3B[2] = {&BuiltInVariable::kVar_pt0N, &BuiltInVariable::kVar_pt3B};
constexpr const TVariable *p0O1C0C[3] = {&BuiltInVariable::kVar_pt0O, &BuiltInVariable::kVar_pt1C,
&BuiltInVariable::kVar_pt0C};
constexpr const TVariable *p0P2C0C[3] = {&BuiltInVariable::kVar_pt0P, &BuiltInVariable::kVar_pt2C,
constexpr const TVariable *p0P2C0C[3] = {&BuiltInVariable::kVar_pt0P, &BuiltInVariable::kVar_pt2C,
&BuiltInVariable::kVar_pt0C};
constexpr const TVariable *p0Q0C[2] = {&BuiltInVariable::kVar_pt0Q, &BuiltInVariable::kVar_pt0C};
constexpr const TVariable *p0Q0C[2] = {&BuiltInVariable::kVar_pt0Q, &BuiltInVariable::kVar_pt0C};
constexpr const TVariable *p0Q1B0B1C[4] = {&BuiltInVariable::kVar_pt0Q, &BuiltInVariable::kVar_pt1B,
&BuiltInVariable::kVar_pt0B,
&BuiltInVariable::kVar_pt1C};
@ -2525,11 +2534,11 @@ constexpr const TVariable *p0e2B0B1C[4] = {&BuiltInVariable::kVar_pt0e, &BuiltIn
constexpr const TVariable *p0e3B1B1B1C[5] = {
&BuiltInVariable::kVar_pt0e, &BuiltInVariable::kVar_pt3B, &BuiltInVariable::kVar_pt1B,
&BuiltInVariable::kVar_pt1B, &BuiltInVariable::kVar_pt1C};
constexpr const TVariable *p0f1C3B[3] = {&BuiltInVariable::kVar_pt0f, &BuiltInVariable::kVar_pt1C,
constexpr const TVariable *p0f1C3B[3] = {&BuiltInVariable::kVar_pt0f, &BuiltInVariable::kVar_pt1C,
&BuiltInVariable::kVar_pt3B};
constexpr const TVariable *p0g1C3C[3] = {&BuiltInVariable::kVar_pt0g, &BuiltInVariable::kVar_pt1C,
constexpr const TVariable *p0g1C3C[3] = {&BuiltInVariable::kVar_pt0g, &BuiltInVariable::kVar_pt1C,
&BuiltInVariable::kVar_pt3C};
constexpr const TVariable *p0h1C3D[3] = {&BuiltInVariable::kVar_pt0h, &BuiltInVariable::kVar_pt1C,
constexpr const TVariable *p0h1C3D[3] = {&BuiltInVariable::kVar_pt0h, &BuiltInVariable::kVar_pt1C,
&BuiltInVariable::kVar_pt3D};
constexpr const TVariable *p0i2C3B[3] = {&BuiltInVariable::kVar_pt0i, &BuiltInVariable::kVar_pt2C,
&BuiltInVariable::kVar_pt3B};
@ -2543,11 +2552,11 @@ constexpr const TVariable *p0m2C3C[3] = {&BuiltInVariable::kVar_pt0m, &BuiltInV
&BuiltInVariable::kVar_pt3C};
constexpr const TVariable *p0n2C3D[3] = {&BuiltInVariable::kVar_pt0n, &BuiltInVariable::kVar_pt2C,
&BuiltInVariable::kVar_pt3D};
constexpr const TVariable *p0o2C3B[3] = {&BuiltInVariable::kVar_pt0o, &BuiltInVariable::kVar_pt2C,
constexpr const TVariable *p0o2C3B[3] = {&BuiltInVariable::kVar_pt0o, &BuiltInVariable::kVar_pt2C,
&BuiltInVariable::kVar_pt3B};
constexpr const TVariable *p0p2C3C[3] = {&BuiltInVariable::kVar_pt0p, &BuiltInVariable::kVar_pt2C,
constexpr const TVariable *p0p2C3C[3] = {&BuiltInVariable::kVar_pt0p, &BuiltInVariable::kVar_pt2C,
&BuiltInVariable::kVar_pt3C};
constexpr const TVariable *p0q2C3D[3] = {&BuiltInVariable::kVar_pt0q, &BuiltInVariable::kVar_pt2C,
constexpr const TVariable *p0q2C3D[3] = {&BuiltInVariable::kVar_pt0q, &BuiltInVariable::kVar_pt2C,
&BuiltInVariable::kVar_pt3D};
constexpr const TVariable *p1B0B0B[3] = {&BuiltInVariable::kVar_pt1B, &BuiltInVariable::kVar_pt0B,
&BuiltInVariable::kVar_pt0B};
@ -8139,6 +8148,33 @@ constexpr const TFunction kFunction_textureSize_0a(
StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
EOpCallBuiltInFunction,
false);
constexpr const TFunction kFunction_textureSizeExt_0O(
BuiltInId::textureSizeExt_Sampler2DMS1,
BuiltInName::textureSizeExt,
TExtension::ANGLE_texture_multisample,
BuiltInParameters::p0O1C0C,
1,
StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
EOpCallBuiltInFunction,
false);
constexpr const TFunction kFunction_textureSizeExt_0U(
BuiltInId::textureSizeExt_ISampler2DMS1,
BuiltInName::textureSizeExt,
TExtension::ANGLE_texture_multisample,
BuiltInParameters::p0U1C0C,
1,
StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
EOpCallBuiltInFunction,
false);
constexpr const TFunction kFunction_textureSizeExt_0a(
BuiltInId::textureSizeExt_USampler2DMS1,
BuiltInName::textureSizeExt,
TExtension::ANGLE_texture_multisample,
BuiltInParameters::p0a1C0C,
1,
StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
EOpCallBuiltInFunction,
false);
constexpr const TFunction kFunction_textureSize_0P(
BuiltInId::textureSize_Sampler2DMSArray1,
BuiltInName::textureSize,
@ -9381,6 +9417,33 @@ constexpr const TFunction kFunction_texelFetch_0a1C0C(
StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
EOpCallBuiltInFunction,
false);
constexpr const TFunction kFunction_texelFetchExt_0O1C0C(
BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1,
BuiltInName::texelFetchExt,
TExtension::ANGLE_texture_multisample,
BuiltInParameters::p0O1C0C,
3,
StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
EOpCallBuiltInFunction,
false);
constexpr const TFunction kFunction_texelFetchExt_0U1C0C(
BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1,
BuiltInName::texelFetchExt,
TExtension::ANGLE_texture_multisample,
BuiltInParameters::p0U1C0C,
3,
StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
EOpCallBuiltInFunction,
false);
constexpr const TFunction kFunction_texelFetchExt_0a1C0C(
BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1,
BuiltInName::texelFetchExt,
TExtension::ANGLE_texture_multisample,
BuiltInParameters::p0a1C0C,
3,
StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
EOpCallBuiltInFunction,
false);
constexpr const TFunction kFunction_texelFetch_0P2C0C(
BuiltInId::texelFetch_Sampler2DMSArray1_Int3_Int1,
BuiltInName::texelFetch,
@ -14287,6 +14350,14 @@ const TSymbol *TSymbolTable::findBuiltIn(const ImmutableString &name, int shader
}
break;
}
case 0x14896e41u:
{
if (name == BuiltInName::texelFetchExt_0O1C0C)
{
return &BuiltInFunction::kFunction_texelFetchExt_0O1C0C;
}
break;
}
case 0x1489e510u:
{
if (name.beginsWith(BuiltInName::textureLod))
@ -14373,6 +14444,15 @@ const TSymbol *TSymbolTable::findBuiltIn(const ImmutableString &name, int shader
}
break;
}
case 0x148ddb10u:
{
if (name.beginsWith(BuiltInName::texelFetchExt))
{
ASSERT(name.length() == 17);
return &BuiltInFunction::kFunction_texelFetchExt_0a1C0C;
}
break;
}
case 0x148e100eu:
{
if (name == BuiltInName::texelFetch_0X2C0C)
@ -14406,6 +14486,15 @@ const TSymbol *TSymbolTable::findBuiltIn(const ImmutableString &name, int shader
}
break;
}
case 0x148ed16fu:
{
if (name.beginsWith(BuiltInName::texelFetchExt))
{
ASSERT(name.length() == 17);
return &BuiltInFunction::kFunction_texelFetchExt_0U1C0C;
}
break;
}
case 0x148ed87fu:
{
if (name.beginsWith(BuiltInName::textureLod))
@ -14455,6 +14544,24 @@ const TSymbol *TSymbolTable::findBuiltIn(const ImmutableString &name, int shader
}
break;
}
case 0x167394d8u:
{
if (name.beginsWith(BuiltInName::textureSizeExt))
{
ASSERT(name.length() == 14);
return &BuiltInFunction::kFunction_textureSizeExt_0U;
}
break;
}
case 0x1673f496u:
{
if (name.beginsWith(BuiltInName::textureSizeExt))
{
ASSERT(name.length() == 14);
return &BuiltInFunction::kFunction_textureSizeExt_0O;
}
break;
}
case 0x1674ed12u:
{
if (name.beginsWith(BuiltInName::determinant))
@ -14464,6 +14571,15 @@ const TSymbol *TSymbolTable::findBuiltIn(const ImmutableString &name, int shader
}
break;
}
case 0x16752ab6u:
{
if (name.beginsWith(BuiltInName::textureSizeExt))
{
ASSERT(name.length() == 14);
return &BuiltInFunction::kFunction_textureSizeExt_0a;
}
break;
}
case 0x1676ad75u:
{
if (name.beginsWith(BuiltInName::determinant))

Просмотреть файл

@ -381,6 +381,11 @@ GROUP BEGIN TextureSizeMS
ivec2 textureSize(gsampler2DMS);
GROUP END TextureSizeMS
GROUP BEGIN TextureSizeMSExt
DEFAULT METADATA {"level": "ESSL3_BUILTINS", "op": "CallBuiltInFunction", "extension": "ANGLE_texture_multisample", "suffix": "Ext"}
ivec2 textureSize(gsampler2DMS);
GROUP END TextureSizeMSExt
GROUP BEGIN TextureSizeMSArray
DEFAULT METADATA {"level": "ESSL3_1_BUILTINS", "op": "CallBuiltInFunction", "extension": "OES_texture_storage_multisample_2d_array"}
ivec3 textureSize(gsampler2DMSArray);
@ -477,6 +482,11 @@ GROUP BEGIN TexelFetchMS
gvec4 texelFetch(gsampler2DMS, ivec2, int);
GROUP END TexelFetchMS
GROUP BEGIN TexelFetchMSExt
DEFAULT METADATA {"level": "ESSL3_BUILTINS", "op": "CallBuiltInFunction", "extension": "ANGLE_texture_multisample", "suffix": "Ext"}
gvec4 texelFetch(gsampler2DMS, ivec2, int);
GROUP END TexelFetchMSExt
GROUP BEGIN TexelFetchMSArray
DEFAULT METADATA {"level": "ESSL3_1_BUILTINS", "op": "CallBuiltInFunction", "extension": "OES_texture_storage_multisample_2d_array"}
gvec4 texelFetch(gsampler2DMSArray, ivec3, int);

Просмотреть файл

@ -1 +1 @@
73cc05cec23b85e97dfc3c1b334a927c
be8880d407c36c696b4ef362988abd50

Просмотреть файл

@ -86,6 +86,7 @@ static int ES2_and_ES3_reserved_ES3_1_keyword(TParseContext *context, int token)
static int ES2_and_ES3_ident_ES3_1_keyword(TParseContext *context, int token);
static int ES3_extension_keyword_else_ident(TParseContext *context, TExtension extension, int token);
static int ES2_ident_ES3_reserved_ES3_1_extension_keyword(TParseContext *context, TExtension extension, int token);
static int ES3_extension_and_ES3_1_keyword_ES3_reserved_else_ident(TParseContext *context, TExtension extension, int token);
static int uint_constant(TParseContext *context);
static int int_constant(TParseContext *context);
static int float_constant(yyscan_t yyscanner);
@ -189,17 +190,17 @@ O [0-7]
"sampler3DRect" { return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); }
"sampler2DRect" { return SAMPLER2DRECT; }
"sampler2DArray" { return ES2_ident_ES3_keyword(context, SAMPLER2DARRAY); }
"sampler2DMS" { return ES2_ident_ES3_reserved_ES3_1_keyword(context, SAMPLER2DMS); }
"sampler2DMS" { return ES3_extension_and_ES3_1_keyword_ES3_reserved_else_ident(context, TExtension::ANGLE_texture_multisample, SAMPLER2DMS); }
"isampler2D" { return ES2_ident_ES3_keyword(context, ISAMPLER2D); }
"isampler3D" { return ES2_ident_ES3_keyword(context, ISAMPLER3D); }
"isamplerCube" { return ES2_ident_ES3_keyword(context, ISAMPLERCUBE); }
"isampler2DArray" { return ES2_ident_ES3_keyword(context, ISAMPLER2DARRAY); }
"isampler2DMS" { return ES2_ident_ES3_reserved_ES3_1_keyword(context, ISAMPLER2DMS); }
"isampler2DMS" { return ES3_extension_and_ES3_1_keyword_ES3_reserved_else_ident(context, TExtension::ANGLE_texture_multisample, ISAMPLER2DMS); }
"usampler2D" { return ES2_ident_ES3_keyword(context, USAMPLER2D); }
"usampler3D" { return ES2_ident_ES3_keyword(context, USAMPLER3D); }
"usamplerCube" { return ES2_ident_ES3_keyword(context, USAMPLERCUBE); }
"usampler2DArray" { return ES2_ident_ES3_keyword(context, USAMPLER2DARRAY); }
"usampler2DMS" { return ES2_ident_ES3_reserved_ES3_1_keyword(context, USAMPLER2DMS); }
"usampler2DMS" { return ES3_extension_and_ES3_1_keyword_ES3_reserved_else_ident(context, TExtension::ANGLE_texture_multisample, USAMPLER2DMS); }
"sampler2DShadow" { return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
"samplerCubeShadow" { return ES2_ident_ES3_keyword(context, SAMPLERCUBESHADOW); }
"sampler2DArrayShadow" { return ES2_ident_ES3_keyword(context, SAMPLER2DARRAYSHADOW); }
@ -599,6 +600,26 @@ int ES2_ident_ES3_reserved_ES3_1_extension_keyword(TParseContext *context, TExte
return check_type(yyscanner);
}
int ES3_extension_and_ES3_1_keyword_ES3_reserved_else_ident(TParseContext *context, TExtension extension, int token)
{
struct yyguts_t* yyg = (struct yyguts_t*) context->getScanner();
yyscan_t yyscanner = (yyscan_t) context->getScanner();
// A keyword in GLSL ES 3.00 with enabled extension or in GLSL ES 3.10
if (context->getShaderVersion() >= 310 || (context->getShaderVersion() == 300 && context->isExtensionEnabled(extension)))
{
return token;
}
if(context->getShaderVersion() == 300)
{
return reserved_word(yyscanner);
}
yylval->lex.string = AllocatePoolCharArray(yytext, yyleng);
return check_type(yyscanner);
}
int uint_constant(TParseContext *context)
{
struct yyguts_t* yyg = (struct yyguts_t*) context->getScanner();

Просмотреть файл

@ -1225,6 +1225,7 @@ static int ES2_and_ES3_reserved_ES3_1_keyword(TParseContext *context, int token)
static int ES2_and_ES3_ident_ES3_1_keyword(TParseContext *context, int token);
static int ES3_extension_keyword_else_ident(TParseContext *context, TExtension extension, int token);
static int ES2_ident_ES3_reserved_ES3_1_extension_keyword(TParseContext *context, TExtension extension, int token);
static int ES3_extension_and_ES3_1_keyword_ES3_reserved_else_ident(TParseContext *context, TExtension extension, int token);
static int uint_constant(TParseContext *context);
static int int_constant(TParseContext *context);
static int float_constant(yyscan_t yyscanner);
@ -1968,7 +1969,7 @@ YY_RULE_SETUP
YY_BREAK
case 68:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, SAMPLER2DMS); }
{ return ES3_extension_and_ES3_1_keyword_ES3_reserved_else_ident(context, TExtension::ANGLE_texture_multisample, SAMPLER2DMS); }
YY_BREAK
case 69:
YY_RULE_SETUP
@ -1988,7 +1989,7 @@ YY_RULE_SETUP
YY_BREAK
case 73:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, ISAMPLER2DMS); }
{ return ES3_extension_and_ES3_1_keyword_ES3_reserved_else_ident(context, TExtension::ANGLE_texture_multisample, ISAMPLER2DMS); }
YY_BREAK
case 74:
YY_RULE_SETUP
@ -2008,7 +2009,7 @@ YY_RULE_SETUP
YY_BREAK
case 78:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, USAMPLER2DMS); }
{ return ES3_extension_and_ES3_1_keyword_ES3_reserved_else_ident(context, TExtension::ANGLE_texture_multisample, USAMPLER2DMS); }
YY_BREAK
case 79:
YY_RULE_SETUP
@ -3964,6 +3965,26 @@ int ES2_ident_ES3_reserved_ES3_1_extension_keyword(TParseContext *context, TExte
return check_type(yyscanner);
}
int ES3_extension_and_ES3_1_keyword_ES3_reserved_else_ident(TParseContext *context, TExtension extension, int token)
{
struct yyguts_t* yyg = (struct yyguts_t*) context->getScanner();
yyscan_t yyscanner = (yyscan_t) context->getScanner();
// A keyword in GLSL ES 3.00 with enabled extension or in GLSL ES 3.10
if (context->getShaderVersion() >= 310 || (context->getShaderVersion() == 300 && context->isExtensionEnabled(extension)))
{
return token;
}
if(context->getShaderVersion() == 300)
{
return reserved_word(yyscanner);
}
yylval->lex.string = AllocatePoolCharArray(yytext, yyleng);
return check_type(yyscanner);
}
int uint_constant(TParseContext *context)
{
struct yyguts_t* yyg = (struct yyguts_t*) context->getScanner();

Просмотреть файл

@ -773,537 +773,546 @@ class BuiltInId
static constexpr const TSymbolUniqueId pt0U = TSymbolUniqueId(659);
static constexpr const TSymbolUniqueId textureSize_USampler2DMS1 = TSymbolUniqueId(660);
static constexpr const TSymbolUniqueId pt0a = TSymbolUniqueId(661);
static constexpr const TSymbolUniqueId textureSize_Sampler2DMSArray1 = TSymbolUniqueId(662);
static constexpr const TSymbolUniqueId pt0P = TSymbolUniqueId(663);
static constexpr const TSymbolUniqueId textureSize_ISampler2DMSArray1 = TSymbolUniqueId(664);
static constexpr const TSymbolUniqueId pt0V = TSymbolUniqueId(665);
static constexpr const TSymbolUniqueId textureSize_USampler2DMSArray1 = TSymbolUniqueId(666);
static constexpr const TSymbolUniqueId pt0b = TSymbolUniqueId(667);
static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMS1 = TSymbolUniqueId(662);
static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMS1 = TSymbolUniqueId(663);
static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMS1 = TSymbolUniqueId(664);
static constexpr const TSymbolUniqueId textureSize_Sampler2DMSArray1 = TSymbolUniqueId(665);
static constexpr const TSymbolUniqueId pt0P = TSymbolUniqueId(666);
static constexpr const TSymbolUniqueId textureSize_ISampler2DMSArray1 = TSymbolUniqueId(667);
static constexpr const TSymbolUniqueId pt0V = TSymbolUniqueId(668);
static constexpr const TSymbolUniqueId textureSize_USampler2DMSArray1 = TSymbolUniqueId(669);
static constexpr const TSymbolUniqueId pt0b = TSymbolUniqueId(670);
static constexpr const TSymbolUniqueId textureOffset_Sampler2D1_Float2_Int2 =
TSymbolUniqueId(668);
static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2 =
TSymbolUniqueId(669);
static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2 =
TSymbolUniqueId(670);
static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3 =
TSymbolUniqueId(671);
static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3 =
static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2 =
TSymbolUniqueId(672);
static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3 =
static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2 =
TSymbolUniqueId(673);
static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2 =
static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3 =
TSymbolUniqueId(674);
static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2 =
static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3 =
TSymbolUniqueId(675);
static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2 =
static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3 =
TSymbolUniqueId(676);
static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2 =
static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2 =
TSymbolUniqueId(677);
static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2 =
static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2 =
TSymbolUniqueId(678);
static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2 =
static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2 =
TSymbolUniqueId(679);
static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2 =
static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2 =
TSymbolUniqueId(680);
static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2 =
static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2 =
TSymbolUniqueId(681);
static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2 =
static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2 =
TSymbolUniqueId(682);
static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2 =
static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2 =
TSymbolUniqueId(683);
static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3 =
static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2 =
TSymbolUniqueId(684);
static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3 =
static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2 =
TSymbolUniqueId(685);
static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3 =
static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2 =
TSymbolUniqueId(686);
static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2 =
static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3 =
TSymbolUniqueId(687);
static constexpr const TSymbolUniqueId textureLodOffset_Sampler2D1_Float2_Float1_Int2 =
static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3 =
TSymbolUniqueId(688);
static constexpr const TSymbolUniqueId textureLodOffset_ISampler2D1_Float2_Float1_Int2 =
static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3 =
TSymbolUniqueId(689);
static constexpr const TSymbolUniqueId textureLodOffset_USampler2D1_Float2_Float1_Int2 =
static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2 =
TSymbolUniqueId(690);
static constexpr const TSymbolUniqueId textureLodOffset_Sampler3D1_Float3_Float1_Int3 =
static constexpr const TSymbolUniqueId textureLodOffset_Sampler2D1_Float2_Float1_Int2 =
TSymbolUniqueId(691);
static constexpr const TSymbolUniqueId textureLodOffset_ISampler3D1_Float3_Float1_Int3 =
static constexpr const TSymbolUniqueId textureLodOffset_ISampler2D1_Float2_Float1_Int2 =
TSymbolUniqueId(692);
static constexpr const TSymbolUniqueId textureLodOffset_USampler3D1_Float3_Float1_Int3 =
static constexpr const TSymbolUniqueId textureLodOffset_USampler2D1_Float2_Float1_Int2 =
TSymbolUniqueId(693);
static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2 =
static constexpr const TSymbolUniqueId textureLodOffset_Sampler3D1_Float3_Float1_Int3 =
TSymbolUniqueId(694);
static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DArray1_Float3_Float1_Int2 =
static constexpr const TSymbolUniqueId textureLodOffset_ISampler3D1_Float3_Float1_Int3 =
TSymbolUniqueId(695);
static constexpr const TSymbolUniqueId textureLodOffset_ISampler2DArray1_Float3_Float1_Int2 =
static constexpr const TSymbolUniqueId textureLodOffset_USampler3D1_Float3_Float1_Int3 =
TSymbolUniqueId(696);
static constexpr const TSymbolUniqueId textureLodOffset_USampler2DArray1_Float3_Float1_Int2 =
static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2 =
TSymbolUniqueId(697);
static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float3_Float1_Int2 =
static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DArray1_Float3_Float1_Int2 =
TSymbolUniqueId(698);
static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float3_Float1_Int2 =
static constexpr const TSymbolUniqueId textureLodOffset_ISampler2DArray1_Float3_Float1_Int2 =
TSymbolUniqueId(699);
static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float3_Float1_Int2 =
static constexpr const TSymbolUniqueId textureLodOffset_USampler2DArray1_Float3_Float1_Int2 =
TSymbolUniqueId(700);
static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float4_Float1_Int2 =
static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float3_Float1_Int2 =
TSymbolUniqueId(701);
static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float4_Float1_Int2 =
static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float3_Float1_Int2 =
TSymbolUniqueId(702);
static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float4_Float1_Int2 =
static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float3_Float1_Int2 =
TSymbolUniqueId(703);
static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler3D1_Float4_Float1_Int3 =
static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float4_Float1_Int2 =
TSymbolUniqueId(704);
static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler3D1_Float4_Float1_Int3 =
static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float4_Float1_Int2 =
TSymbolUniqueId(705);
static constexpr const TSymbolUniqueId textureProjLodOffset_USampler3D1_Float4_Float1_Int3 =
static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float4_Float1_Int2 =
TSymbolUniqueId(706);
static constexpr const TSymbolUniqueId
textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2 = TSymbolUniqueId(707);
static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2D1_Int2_Int1_Int2 =
static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler3D1_Float4_Float1_Int3 =
TSymbolUniqueId(707);
static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler3D1_Float4_Float1_Int3 =
TSymbolUniqueId(708);
static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2D1_Int2_Int1_Int2 =
static constexpr const TSymbolUniqueId textureProjLodOffset_USampler3D1_Float4_Float1_Int3 =
TSymbolUniqueId(709);
static constexpr const TSymbolUniqueId texelFetchOffset_USampler2D1_Int2_Int1_Int2 =
TSymbolUniqueId(710);
static constexpr const TSymbolUniqueId texelFetchOffset_Sampler3D1_Int3_Int1_Int3 =
static constexpr const TSymbolUniqueId
textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2 = TSymbolUniqueId(710);
static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2D1_Int2_Int1_Int2 =
TSymbolUniqueId(711);
static constexpr const TSymbolUniqueId texelFetchOffset_ISampler3D1_Int3_Int1_Int3 =
static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2D1_Int2_Int1_Int2 =
TSymbolUniqueId(712);
static constexpr const TSymbolUniqueId texelFetchOffset_USampler3D1_Int3_Int1_Int3 =
static constexpr const TSymbolUniqueId texelFetchOffset_USampler2D1_Int2_Int1_Int2 =
TSymbolUniqueId(713);
static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2 =
static constexpr const TSymbolUniqueId texelFetchOffset_Sampler3D1_Int3_Int1_Int3 =
TSymbolUniqueId(714);
static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2 =
static constexpr const TSymbolUniqueId texelFetchOffset_ISampler3D1_Int3_Int1_Int3 =
TSymbolUniqueId(715);
static constexpr const TSymbolUniqueId texelFetchOffset_USampler2DArray1_Int3_Int1_Int2 =
static constexpr const TSymbolUniqueId texelFetchOffset_USampler3D1_Int3_Int1_Int3 =
TSymbolUniqueId(716);
static constexpr const TSymbolUniqueId textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2 =
static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2 =
TSymbolUniqueId(717);
static constexpr const TSymbolUniqueId textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2 =
static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2 =
TSymbolUniqueId(718);
static constexpr const TSymbolUniqueId textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2 =
static constexpr const TSymbolUniqueId texelFetchOffset_USampler2DArray1_Int3_Int1_Int2 =
TSymbolUniqueId(719);
static constexpr const TSymbolUniqueId textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3 =
static constexpr const TSymbolUniqueId textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2 =
TSymbolUniqueId(720);
static constexpr const TSymbolUniqueId textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3 =
static constexpr const TSymbolUniqueId textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2 =
TSymbolUniqueId(721);
static constexpr const TSymbolUniqueId textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3 =
static constexpr const TSymbolUniqueId textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2 =
TSymbolUniqueId(722);
static constexpr const TSymbolUniqueId textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3 =
TSymbolUniqueId(723);
static constexpr const TSymbolUniqueId textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3 =
TSymbolUniqueId(724);
static constexpr const TSymbolUniqueId textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3 =
TSymbolUniqueId(725);
static constexpr const TSymbolUniqueId
textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(723);
textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(726);
static constexpr const TSymbolUniqueId
textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(724);
textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(727);
static constexpr const TSymbolUniqueId
textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(725);
textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(728);
static constexpr const TSymbolUniqueId
textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(726);
textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(729);
static constexpr const TSymbolUniqueId
textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(727);
textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(730);
static constexpr const TSymbolUniqueId
textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(728);
textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(731);
static constexpr const TSymbolUniqueId
textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(729);
textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(732);
static constexpr const TSymbolUniqueId
textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(730);
textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(733);
static constexpr const TSymbolUniqueId
textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(731);
textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(734);
static constexpr const TSymbolUniqueId
textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(732);
textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(735);
static constexpr const TSymbolUniqueId
textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(733);
textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(736);
static constexpr const TSymbolUniqueId
textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(734);
textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(737);
static constexpr const TSymbolUniqueId
textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(735);
textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(738);
static constexpr const TSymbolUniqueId
textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(736);
textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(739);
static constexpr const TSymbolUniqueId
textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(737);
textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(740);
static constexpr const TSymbolUniqueId textureOffset_Sampler2D1_Float2_Int2_Float1 =
TSymbolUniqueId(738);
static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2_Float1 =
TSymbolUniqueId(739);
static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2_Float1 =
TSymbolUniqueId(740);
static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3_Float1 =
TSymbolUniqueId(741);
static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3_Float1 =
static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2_Float1 =
TSymbolUniqueId(742);
static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3_Float1 =
static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2_Float1 =
TSymbolUniqueId(743);
static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2_Float1 =
static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3_Float1 =
TSymbolUniqueId(744);
static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2_Float1 =
static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3_Float1 =
TSymbolUniqueId(745);
static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2_Float1 =
static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3_Float1 =
TSymbolUniqueId(746);
static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2_Float1 =
static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2_Float1 =
TSymbolUniqueId(747);
static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2_Float1 =
static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2_Float1 =
TSymbolUniqueId(748);
static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2_Float1 =
static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2_Float1 =
TSymbolUniqueId(749);
static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2_Float1 =
static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2_Float1 =
TSymbolUniqueId(750);
static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2_Float1 =
static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2_Float1 =
TSymbolUniqueId(751);
static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2_Float1 =
static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2_Float1 =
TSymbolUniqueId(752);
static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2_Float1 =
static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2_Float1 =
TSymbolUniqueId(753);
static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3_Float1 =
static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2_Float1 =
TSymbolUniqueId(754);
static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3_Float1 =
static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2_Float1 =
TSymbolUniqueId(755);
static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3_Float1 =
static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2_Float1 =
TSymbolUniqueId(756);
static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1 =
static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3_Float1 =
TSymbolUniqueId(757);
static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2 =
static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3_Float1 =
TSymbolUniqueId(758);
static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3 =
static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3_Float1 =
TSymbolUniqueId(759);
static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4 =
static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1 =
TSymbolUniqueId(760);
static constexpr const TSymbolUniqueId textureSize_SamplerExternalOES1_Int1 =
static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2 =
TSymbolUniqueId(761);
static constexpr const TSymbolUniqueId texelFetch_SamplerExternalOES1_Int2_Int1 =
static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3 =
TSymbolUniqueId(762);
static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2 =
static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4 =
TSymbolUniqueId(763);
static constexpr const TSymbolUniqueId pt0M = TSymbolUniqueId(764);
static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3 =
static constexpr const TSymbolUniqueId textureSize_SamplerExternalOES1_Int1 =
TSymbolUniqueId(764);
static constexpr const TSymbolUniqueId texelFetch_SamplerExternalOES1_Int2_Int1 =
TSymbolUniqueId(765);
static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4 =
static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2 =
TSymbolUniqueId(766);
static constexpr const TSymbolUniqueId rgb_2_yuv_Float3_YuvCscStandardEXT1 =
TSymbolUniqueId(767);
static constexpr const TSymbolUniqueId pt0G = TSymbolUniqueId(768);
static constexpr const TSymbolUniqueId yuv_2_rgb_Float3_YuvCscStandardEXT1 =
static constexpr const TSymbolUniqueId pt0M = TSymbolUniqueId(767);
static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3 =
TSymbolUniqueId(768);
static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4 =
TSymbolUniqueId(769);
static constexpr const TSymbolUniqueId textureSize_SamplerExternal2DY2YEXT1_Int1 =
static constexpr const TSymbolUniqueId rgb_2_yuv_Float3_YuvCscStandardEXT1 =
TSymbolUniqueId(770);
static constexpr const TSymbolUniqueId pt0G = TSymbolUniqueId(771);
static constexpr const TSymbolUniqueId yuv_2_rgb_Float3_YuvCscStandardEXT1 =
TSymbolUniqueId(772);
static constexpr const TSymbolUniqueId textureSize_SamplerExternal2DY2YEXT1_Int1 =
TSymbolUniqueId(773);
static constexpr const TSymbolUniqueId texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1 =
TSymbolUniqueId(771);
static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2_Float1 = TSymbolUniqueId(772);
static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2_Float1 = TSymbolUniqueId(773);
static constexpr const TSymbolUniqueId texture_USampler2D1_Float2_Float1 = TSymbolUniqueId(774);
static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3_Float1 = TSymbolUniqueId(775);
static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3_Float1 = TSymbolUniqueId(776);
static constexpr const TSymbolUniqueId texture_USampler3D1_Float3_Float1 = TSymbolUniqueId(777);
TSymbolUniqueId(774);
static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2_Float1 = TSymbolUniqueId(775);
static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2_Float1 = TSymbolUniqueId(776);
static constexpr const TSymbolUniqueId texture_USampler2D1_Float2_Float1 = TSymbolUniqueId(777);
static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3_Float1 = TSymbolUniqueId(778);
static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3_Float1 = TSymbolUniqueId(779);
static constexpr const TSymbolUniqueId texture_USampler3D1_Float3_Float1 = TSymbolUniqueId(780);
static constexpr const TSymbolUniqueId texture_SamplerCube1_Float3_Float1 =
TSymbolUniqueId(778);
static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3_Float1 =
TSymbolUniqueId(779);
static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3_Float1 =
TSymbolUniqueId(780);
static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3_Float1 =
TSymbolUniqueId(781);
static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3_Float1 =
static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3_Float1 =
TSymbolUniqueId(782);
static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3_Float1 =
static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3_Float1 =
TSymbolUniqueId(783);
static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3_Float1 =
static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3_Float1 =
TSymbolUniqueId(784);
static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3_Float1 =
static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3_Float1 =
TSymbolUniqueId(785);
static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3_Float1 =
static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3_Float1 =
TSymbolUniqueId(786);
static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4_Float1 =
static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3_Float1 =
TSymbolUniqueId(787);
static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4_Float1 =
static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3_Float1 =
TSymbolUniqueId(788);
static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4_Float1 =
static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3_Float1 =
TSymbolUniqueId(789);
static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4_Float1 =
static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4_Float1 =
TSymbolUniqueId(790);
static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4_Float1 =
static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4_Float1 =
TSymbolUniqueId(791);
static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4_Float1 =
static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4_Float1 =
TSymbolUniqueId(792);
static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3_Float1 =
static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4_Float1 =
TSymbolUniqueId(793);
static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4_Float1 =
static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4_Float1 =
TSymbolUniqueId(794);
static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4_Float1 =
static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4_Float1 =
TSymbolUniqueId(795);
static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2_Float1 =
static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3_Float1 =
TSymbolUniqueId(796);
static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3_Float1 =
static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4_Float1 =
TSymbolUniqueId(797);
static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4_Float1 =
static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4_Float1 =
TSymbolUniqueId(798);
static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2_Float1 =
static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2_Float1 =
TSymbolUniqueId(799);
static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3_Float1 =
static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3_Float1 =
TSymbolUniqueId(800);
static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4_Float1 =
static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4_Float1 =
TSymbolUniqueId(801);
static constexpr const TSymbolUniqueId texelFetch_Sampler2DMS1_Int2_Int1 = TSymbolUniqueId(802);
static constexpr const TSymbolUniqueId texelFetch_ISampler2DMS1_Int2_Int1 =
static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2_Float1 =
TSymbolUniqueId(802);
static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3_Float1 =
TSymbolUniqueId(803);
static constexpr const TSymbolUniqueId texelFetch_USampler2DMS1_Int2_Int1 =
static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4_Float1 =
TSymbolUniqueId(804);
static constexpr const TSymbolUniqueId texelFetch_Sampler2DMSArray1_Int3_Int1 =
TSymbolUniqueId(805);
static constexpr const TSymbolUniqueId texelFetch_ISampler2DMSArray1_Int3_Int1 =
static constexpr const TSymbolUniqueId texelFetch_Sampler2DMS1_Int2_Int1 = TSymbolUniqueId(805);
static constexpr const TSymbolUniqueId texelFetch_ISampler2DMS1_Int2_Int1 =
TSymbolUniqueId(806);
static constexpr const TSymbolUniqueId texelFetch_USampler2DMSArray1_Int3_Int1 =
static constexpr const TSymbolUniqueId texelFetch_USampler2DMS1_Int2_Int1 =
TSymbolUniqueId(807);
static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2 = TSymbolUniqueId(808);
static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2 = TSymbolUniqueId(809);
static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2 = TSymbolUniqueId(810);
static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2_Int1 =
static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMS1_Int2_Int1 =
TSymbolUniqueId(808);
static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMS1_Int2_Int1 =
TSymbolUniqueId(809);
static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMS1_Int2_Int1 =
TSymbolUniqueId(810);
static constexpr const TSymbolUniqueId texelFetch_Sampler2DMSArray1_Int3_Int1 =
TSymbolUniqueId(811);
static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2_Int1 =
static constexpr const TSymbolUniqueId texelFetch_ISampler2DMSArray1_Int3_Int1 =
TSymbolUniqueId(812);
static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2_Int1 =
static constexpr const TSymbolUniqueId texelFetch_USampler2DMSArray1_Int3_Int1 =
TSymbolUniqueId(813);
static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3 =
TSymbolUniqueId(814);
static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3 =
TSymbolUniqueId(815);
static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3 =
TSymbolUniqueId(816);
static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3_Int1 =
static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2 = TSymbolUniqueId(814);
static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2 = TSymbolUniqueId(815);
static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2 = TSymbolUniqueId(816);
static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2_Int1 =
TSymbolUniqueId(817);
static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3_Int1 =
static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2_Int1 =
TSymbolUniqueId(818);
static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3_Int1 =
static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2_Int1 =
TSymbolUniqueId(819);
static constexpr const TSymbolUniqueId textureGather_SamplerCube1_Float3 = TSymbolUniqueId(820);
static constexpr const TSymbolUniqueId textureGather_ISamplerCube1_Float3 =
static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3 =
TSymbolUniqueId(820);
static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3 =
TSymbolUniqueId(821);
static constexpr const TSymbolUniqueId textureGather_USamplerCube1_Float3 =
static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3 =
TSymbolUniqueId(822);
static constexpr const TSymbolUniqueId textureGather_SamplerCube1_Float3_Int1 =
static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3_Int1 =
TSymbolUniqueId(823);
static constexpr const TSymbolUniqueId textureGather_ISamplerCube1_Float3_Int1 =
static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3_Int1 =
TSymbolUniqueId(824);
static constexpr const TSymbolUniqueId textureGather_USamplerCube1_Float3_Int1 =
static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3_Int1 =
TSymbolUniqueId(825);
static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2 =
TSymbolUniqueId(826);
static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2_Float1 =
static constexpr const TSymbolUniqueId textureGather_SamplerCube1_Float3 = TSymbolUniqueId(826);
static constexpr const TSymbolUniqueId textureGather_ISamplerCube1_Float3 =
TSymbolUniqueId(827);
static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3 =
static constexpr const TSymbolUniqueId textureGather_USamplerCube1_Float3 =
TSymbolUniqueId(828);
static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3_Float1 =
static constexpr const TSymbolUniqueId textureGather_SamplerCube1_Float3_Int1 =
TSymbolUniqueId(829);
static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3 =
static constexpr const TSymbolUniqueId textureGather_ISamplerCube1_Float3_Int1 =
TSymbolUniqueId(830);
static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3_Float1 =
static constexpr const TSymbolUniqueId textureGather_USamplerCube1_Float3_Int1 =
TSymbolUniqueId(831);
static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2 =
static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2 =
TSymbolUniqueId(832);
static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2 =
static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2_Float1 =
TSymbolUniqueId(833);
static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2 =
static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3 =
TSymbolUniqueId(834);
static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2_Int1 =
static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3_Float1 =
TSymbolUniqueId(835);
static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2_Int1 =
static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3 =
TSymbolUniqueId(836);
static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2_Int1 =
static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3_Float1 =
TSymbolUniqueId(837);
static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2 =
static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2 =
TSymbolUniqueId(838);
static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2 =
static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2 =
TSymbolUniqueId(839);
static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2 =
static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2 =
TSymbolUniqueId(840);
static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2_Int1 =
TSymbolUniqueId(841);
static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2_Int1 =
TSymbolUniqueId(842);
static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2_Int1 =
TSymbolUniqueId(843);
static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2 =
static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2 =
TSymbolUniqueId(844);
static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2 =
TSymbolUniqueId(845);
static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2 =
TSymbolUniqueId(846);
static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1 =
TSymbolUniqueId(847);
static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1 =
TSymbolUniqueId(848);
static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2_Int1 =
TSymbolUniqueId(849);
static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2 =
TSymbolUniqueId(850);
static constexpr const TSymbolUniqueId
textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2 = TSymbolUniqueId(845);
static constexpr const TSymbolUniqueId dFdx_Float1 = TSymbolUniqueId(846);
static constexpr const TSymbolUniqueId dFdx_Float2 = TSymbolUniqueId(847);
static constexpr const TSymbolUniqueId dFdx_Float3 = TSymbolUniqueId(848);
static constexpr const TSymbolUniqueId dFdx_Float4 = TSymbolUniqueId(849);
static constexpr const TSymbolUniqueId dFdy_Float1 = TSymbolUniqueId(850);
static constexpr const TSymbolUniqueId dFdy_Float2 = TSymbolUniqueId(851);
static constexpr const TSymbolUniqueId dFdy_Float3 = TSymbolUniqueId(852);
static constexpr const TSymbolUniqueId dFdy_Float4 = TSymbolUniqueId(853);
static constexpr const TSymbolUniqueId fwidth_Float1 = TSymbolUniqueId(854);
static constexpr const TSymbolUniqueId fwidth_Float2 = TSymbolUniqueId(855);
static constexpr const TSymbolUniqueId fwidth_Float3 = TSymbolUniqueId(856);
static constexpr const TSymbolUniqueId fwidth_Float4 = TSymbolUniqueId(857);
static constexpr const TSymbolUniqueId atomicCounter_AtomicCounter1 = TSymbolUniqueId(858);
static constexpr const TSymbolUniqueId pt0F = TSymbolUniqueId(859);
textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2 = TSymbolUniqueId(851);
static constexpr const TSymbolUniqueId dFdx_Float1 = TSymbolUniqueId(852);
static constexpr const TSymbolUniqueId dFdx_Float2 = TSymbolUniqueId(853);
static constexpr const TSymbolUniqueId dFdx_Float3 = TSymbolUniqueId(854);
static constexpr const TSymbolUniqueId dFdx_Float4 = TSymbolUniqueId(855);
static constexpr const TSymbolUniqueId dFdy_Float1 = TSymbolUniqueId(856);
static constexpr const TSymbolUniqueId dFdy_Float2 = TSymbolUniqueId(857);
static constexpr const TSymbolUniqueId dFdy_Float3 = TSymbolUniqueId(858);
static constexpr const TSymbolUniqueId dFdy_Float4 = TSymbolUniqueId(859);
static constexpr const TSymbolUniqueId fwidth_Float1 = TSymbolUniqueId(860);
static constexpr const TSymbolUniqueId fwidth_Float2 = TSymbolUniqueId(861);
static constexpr const TSymbolUniqueId fwidth_Float3 = TSymbolUniqueId(862);
static constexpr const TSymbolUniqueId fwidth_Float4 = TSymbolUniqueId(863);
static constexpr const TSymbolUniqueId atomicCounter_AtomicCounter1 = TSymbolUniqueId(864);
static constexpr const TSymbolUniqueId pt0F = TSymbolUniqueId(865);
static constexpr const TSymbolUniqueId atomicCounterIncrement_AtomicCounter1 =
TSymbolUniqueId(860);
TSymbolUniqueId(866);
static constexpr const TSymbolUniqueId atomicCounterDecrement_AtomicCounter1 =
TSymbolUniqueId(861);
static constexpr const TSymbolUniqueId atomicAdd_UInt1_UInt1 = TSymbolUniqueId(862);
static constexpr const TSymbolUniqueId pt_io_0D = TSymbolUniqueId(863);
static constexpr const TSymbolUniqueId atomicAdd_Int1_Int1 = TSymbolUniqueId(864);
static constexpr const TSymbolUniqueId pt_io_0C = TSymbolUniqueId(865);
static constexpr const TSymbolUniqueId atomicMin_UInt1_UInt1 = TSymbolUniqueId(866);
static constexpr const TSymbolUniqueId atomicMin_Int1_Int1 = TSymbolUniqueId(867);
static constexpr const TSymbolUniqueId atomicMax_UInt1_UInt1 = TSymbolUniqueId(868);
static constexpr const TSymbolUniqueId atomicMax_Int1_Int1 = TSymbolUniqueId(869);
static constexpr const TSymbolUniqueId atomicAnd_UInt1_UInt1 = TSymbolUniqueId(870);
static constexpr const TSymbolUniqueId atomicAnd_Int1_Int1 = TSymbolUniqueId(871);
static constexpr const TSymbolUniqueId atomicOr_UInt1_UInt1 = TSymbolUniqueId(872);
static constexpr const TSymbolUniqueId atomicOr_Int1_Int1 = TSymbolUniqueId(873);
static constexpr const TSymbolUniqueId atomicXor_UInt1_UInt1 = TSymbolUniqueId(874);
static constexpr const TSymbolUniqueId atomicXor_Int1_Int1 = TSymbolUniqueId(875);
static constexpr const TSymbolUniqueId atomicExchange_UInt1_UInt1 = TSymbolUniqueId(876);
static constexpr const TSymbolUniqueId atomicExchange_Int1_Int1 = TSymbolUniqueId(877);
static constexpr const TSymbolUniqueId atomicCompSwap_UInt1_UInt1_UInt1 = TSymbolUniqueId(878);
static constexpr const TSymbolUniqueId atomicCompSwap_Int1_Int1_Int1 = TSymbolUniqueId(879);
static constexpr const TSymbolUniqueId imageSize_Image2D1 = TSymbolUniqueId(880);
static constexpr const TSymbolUniqueId pt0f = TSymbolUniqueId(881);
static constexpr const TSymbolUniqueId imageSize_IImage2D1 = TSymbolUniqueId(882);
static constexpr const TSymbolUniqueId pt0g = TSymbolUniqueId(883);
static constexpr const TSymbolUniqueId imageSize_UImage2D1 = TSymbolUniqueId(884);
static constexpr const TSymbolUniqueId pt0h = TSymbolUniqueId(885);
static constexpr const TSymbolUniqueId imageSize_Image3D1 = TSymbolUniqueId(886);
static constexpr const TSymbolUniqueId pt0i = TSymbolUniqueId(887);
static constexpr const TSymbolUniqueId imageSize_IImage3D1 = TSymbolUniqueId(888);
static constexpr const TSymbolUniqueId pt0j = TSymbolUniqueId(889);
static constexpr const TSymbolUniqueId imageSize_UImage3D1 = TSymbolUniqueId(890);
static constexpr const TSymbolUniqueId pt0k = TSymbolUniqueId(891);
static constexpr const TSymbolUniqueId imageSize_Image2DArray1 = TSymbolUniqueId(892);
static constexpr const TSymbolUniqueId pt0l = TSymbolUniqueId(893);
static constexpr const TSymbolUniqueId imageSize_IImage2DArray1 = TSymbolUniqueId(894);
static constexpr const TSymbolUniqueId pt0m = TSymbolUniqueId(895);
static constexpr const TSymbolUniqueId imageSize_UImage2DArray1 = TSymbolUniqueId(896);
static constexpr const TSymbolUniqueId pt0n = TSymbolUniqueId(897);
static constexpr const TSymbolUniqueId imageSize_ImageCube1 = TSymbolUniqueId(898);
static constexpr const TSymbolUniqueId pt0o = TSymbolUniqueId(899);
static constexpr const TSymbolUniqueId imageSize_IImageCube1 = TSymbolUniqueId(900);
static constexpr const TSymbolUniqueId pt0p = TSymbolUniqueId(901);
static constexpr const TSymbolUniqueId imageSize_UImageCube1 = TSymbolUniqueId(902);
static constexpr const TSymbolUniqueId pt0q = TSymbolUniqueId(903);
static constexpr const TSymbolUniqueId imageLoad_Image2D1_Int2 = TSymbolUniqueId(904);
static constexpr const TSymbolUniqueId imageLoad_IImage2D1_Int2 = TSymbolUniqueId(905);
static constexpr const TSymbolUniqueId imageLoad_UImage2D1_Int2 = TSymbolUniqueId(906);
static constexpr const TSymbolUniqueId imageLoad_Image3D1_Int3 = TSymbolUniqueId(907);
static constexpr const TSymbolUniqueId imageLoad_IImage3D1_Int3 = TSymbolUniqueId(908);
static constexpr const TSymbolUniqueId imageLoad_UImage3D1_Int3 = TSymbolUniqueId(909);
static constexpr const TSymbolUniqueId imageLoad_Image2DArray1_Int3 = TSymbolUniqueId(910);
static constexpr const TSymbolUniqueId imageLoad_IImage2DArray1_Int3 = TSymbolUniqueId(911);
static constexpr const TSymbolUniqueId imageLoad_UImage2DArray1_Int3 = TSymbolUniqueId(912);
static constexpr const TSymbolUniqueId imageLoad_ImageCube1_Int3 = TSymbolUniqueId(913);
static constexpr const TSymbolUniqueId imageLoad_IImageCube1_Int3 = TSymbolUniqueId(914);
static constexpr const TSymbolUniqueId imageLoad_UImageCube1_Int3 = TSymbolUniqueId(915);
static constexpr const TSymbolUniqueId imageStore_Image2D1_Int2_Float4 = TSymbolUniqueId(916);
static constexpr const TSymbolUniqueId imageStore_IImage2D1_Int2_Int4 = TSymbolUniqueId(917);
static constexpr const TSymbolUniqueId imageStore_UImage2D1_Int2_UInt4 = TSymbolUniqueId(918);
static constexpr const TSymbolUniqueId imageStore_Image3D1_Int3_Float4 = TSymbolUniqueId(919);
static constexpr const TSymbolUniqueId imageStore_IImage3D1_Int3_Int4 = TSymbolUniqueId(920);
static constexpr const TSymbolUniqueId imageStore_UImage3D1_Int3_UInt4 = TSymbolUniqueId(921);
TSymbolUniqueId(867);
static constexpr const TSymbolUniqueId atomicAdd_UInt1_UInt1 = TSymbolUniqueId(868);
static constexpr const TSymbolUniqueId pt_io_0D = TSymbolUniqueId(869);
static constexpr const TSymbolUniqueId atomicAdd_Int1_Int1 = TSymbolUniqueId(870);
static constexpr const TSymbolUniqueId pt_io_0C = TSymbolUniqueId(871);
static constexpr const TSymbolUniqueId atomicMin_UInt1_UInt1 = TSymbolUniqueId(872);
static constexpr const TSymbolUniqueId atomicMin_Int1_Int1 = TSymbolUniqueId(873);
static constexpr const TSymbolUniqueId atomicMax_UInt1_UInt1 = TSymbolUniqueId(874);
static constexpr const TSymbolUniqueId atomicMax_Int1_Int1 = TSymbolUniqueId(875);
static constexpr const TSymbolUniqueId atomicAnd_UInt1_UInt1 = TSymbolUniqueId(876);
static constexpr const TSymbolUniqueId atomicAnd_Int1_Int1 = TSymbolUniqueId(877);
static constexpr const TSymbolUniqueId atomicOr_UInt1_UInt1 = TSymbolUniqueId(878);
static constexpr const TSymbolUniqueId atomicOr_Int1_Int1 = TSymbolUniqueId(879);
static constexpr const TSymbolUniqueId atomicXor_UInt1_UInt1 = TSymbolUniqueId(880);
static constexpr const TSymbolUniqueId atomicXor_Int1_Int1 = TSymbolUniqueId(881);
static constexpr const TSymbolUniqueId atomicExchange_UInt1_UInt1 = TSymbolUniqueId(882);
static constexpr const TSymbolUniqueId atomicExchange_Int1_Int1 = TSymbolUniqueId(883);
static constexpr const TSymbolUniqueId atomicCompSwap_UInt1_UInt1_UInt1 = TSymbolUniqueId(884);
static constexpr const TSymbolUniqueId atomicCompSwap_Int1_Int1_Int1 = TSymbolUniqueId(885);
static constexpr const TSymbolUniqueId imageSize_Image2D1 = TSymbolUniqueId(886);
static constexpr const TSymbolUniqueId pt0f = TSymbolUniqueId(887);
static constexpr const TSymbolUniqueId imageSize_IImage2D1 = TSymbolUniqueId(888);
static constexpr const TSymbolUniqueId pt0g = TSymbolUniqueId(889);
static constexpr const TSymbolUniqueId imageSize_UImage2D1 = TSymbolUniqueId(890);
static constexpr const TSymbolUniqueId pt0h = TSymbolUniqueId(891);
static constexpr const TSymbolUniqueId imageSize_Image3D1 = TSymbolUniqueId(892);
static constexpr const TSymbolUniqueId pt0i = TSymbolUniqueId(893);
static constexpr const TSymbolUniqueId imageSize_IImage3D1 = TSymbolUniqueId(894);
static constexpr const TSymbolUniqueId pt0j = TSymbolUniqueId(895);
static constexpr const TSymbolUniqueId imageSize_UImage3D1 = TSymbolUniqueId(896);
static constexpr const TSymbolUniqueId pt0k = TSymbolUniqueId(897);
static constexpr const TSymbolUniqueId imageSize_Image2DArray1 = TSymbolUniqueId(898);
static constexpr const TSymbolUniqueId pt0l = TSymbolUniqueId(899);
static constexpr const TSymbolUniqueId imageSize_IImage2DArray1 = TSymbolUniqueId(900);
static constexpr const TSymbolUniqueId pt0m = TSymbolUniqueId(901);
static constexpr const TSymbolUniqueId imageSize_UImage2DArray1 = TSymbolUniqueId(902);
static constexpr const TSymbolUniqueId pt0n = TSymbolUniqueId(903);
static constexpr const TSymbolUniqueId imageSize_ImageCube1 = TSymbolUniqueId(904);
static constexpr const TSymbolUniqueId pt0o = TSymbolUniqueId(905);
static constexpr const TSymbolUniqueId imageSize_IImageCube1 = TSymbolUniqueId(906);
static constexpr const TSymbolUniqueId pt0p = TSymbolUniqueId(907);
static constexpr const TSymbolUniqueId imageSize_UImageCube1 = TSymbolUniqueId(908);
static constexpr const TSymbolUniqueId pt0q = TSymbolUniqueId(909);
static constexpr const TSymbolUniqueId imageLoad_Image2D1_Int2 = TSymbolUniqueId(910);
static constexpr const TSymbolUniqueId imageLoad_IImage2D1_Int2 = TSymbolUniqueId(911);
static constexpr const TSymbolUniqueId imageLoad_UImage2D1_Int2 = TSymbolUniqueId(912);
static constexpr const TSymbolUniqueId imageLoad_Image3D1_Int3 = TSymbolUniqueId(913);
static constexpr const TSymbolUniqueId imageLoad_IImage3D1_Int3 = TSymbolUniqueId(914);
static constexpr const TSymbolUniqueId imageLoad_UImage3D1_Int3 = TSymbolUniqueId(915);
static constexpr const TSymbolUniqueId imageLoad_Image2DArray1_Int3 = TSymbolUniqueId(916);
static constexpr const TSymbolUniqueId imageLoad_IImage2DArray1_Int3 = TSymbolUniqueId(917);
static constexpr const TSymbolUniqueId imageLoad_UImage2DArray1_Int3 = TSymbolUniqueId(918);
static constexpr const TSymbolUniqueId imageLoad_ImageCube1_Int3 = TSymbolUniqueId(919);
static constexpr const TSymbolUniqueId imageLoad_IImageCube1_Int3 = TSymbolUniqueId(920);
static constexpr const TSymbolUniqueId imageLoad_UImageCube1_Int3 = TSymbolUniqueId(921);
static constexpr const TSymbolUniqueId imageStore_Image2D1_Int2_Float4 = TSymbolUniqueId(922);
static constexpr const TSymbolUniqueId imageStore_IImage2D1_Int2_Int4 = TSymbolUniqueId(923);
static constexpr const TSymbolUniqueId imageStore_UImage2D1_Int2_UInt4 = TSymbolUniqueId(924);
static constexpr const TSymbolUniqueId imageStore_Image3D1_Int3_Float4 = TSymbolUniqueId(925);
static constexpr const TSymbolUniqueId imageStore_IImage3D1_Int3_Int4 = TSymbolUniqueId(926);
static constexpr const TSymbolUniqueId imageStore_UImage3D1_Int3_UInt4 = TSymbolUniqueId(927);
static constexpr const TSymbolUniqueId imageStore_Image2DArray1_Int3_Float4 =
TSymbolUniqueId(922);
TSymbolUniqueId(928);
static constexpr const TSymbolUniqueId imageStore_IImage2DArray1_Int3_Int4 =
TSymbolUniqueId(923);
TSymbolUniqueId(929);
static constexpr const TSymbolUniqueId imageStore_UImage2DArray1_Int3_UInt4 =
TSymbolUniqueId(924);
static constexpr const TSymbolUniqueId imageStore_ImageCube1_Int3_Float4 = TSymbolUniqueId(925);
static constexpr const TSymbolUniqueId imageStore_IImageCube1_Int3_Int4 = TSymbolUniqueId(926);
static constexpr const TSymbolUniqueId imageStore_UImageCube1_Int3_UInt4 = TSymbolUniqueId(927);
static constexpr const TSymbolUniqueId memoryBarrier = TSymbolUniqueId(928);
static constexpr const TSymbolUniqueId memoryBarrierAtomicCounter = TSymbolUniqueId(929);
static constexpr const TSymbolUniqueId memoryBarrierBuffer = TSymbolUniqueId(930);
static constexpr const TSymbolUniqueId memoryBarrierImage = TSymbolUniqueId(931);
static constexpr const TSymbolUniqueId barrier = TSymbolUniqueId(932);
static constexpr const TSymbolUniqueId memoryBarrierShared = TSymbolUniqueId(933);
static constexpr const TSymbolUniqueId groupMemoryBarrier = TSymbolUniqueId(934);
static constexpr const TSymbolUniqueId EmitVertex = TSymbolUniqueId(935);
static constexpr const TSymbolUniqueId EndPrimitive = TSymbolUniqueId(936);
static constexpr const TSymbolUniqueId gl_DepthRangeParameters = TSymbolUniqueId(937);
static constexpr const TSymbolUniqueId gl_DepthRange = TSymbolUniqueId(938);
static constexpr const TSymbolUniqueId gl_MaxVertexAttribs = TSymbolUniqueId(939);
static constexpr const TSymbolUniqueId gl_MaxVertexUniformVectors = TSymbolUniqueId(940);
static constexpr const TSymbolUniqueId gl_MaxVertexTextureImageUnits = TSymbolUniqueId(941);
static constexpr const TSymbolUniqueId gl_MaxCombinedTextureImageUnits = TSymbolUniqueId(942);
static constexpr const TSymbolUniqueId gl_MaxTextureImageUnits = TSymbolUniqueId(943);
static constexpr const TSymbolUniqueId gl_MaxFragmentUniformVectors = TSymbolUniqueId(944);
static constexpr const TSymbolUniqueId gl_MaxVaryingVectors = TSymbolUniqueId(945);
static constexpr const TSymbolUniqueId gl_MaxDrawBuffers = TSymbolUniqueId(946);
static constexpr const TSymbolUniqueId gl_MaxDualSourceDrawBuffersEXT = TSymbolUniqueId(947);
static constexpr const TSymbolUniqueId gl_MaxVertexOutputVectors = TSymbolUniqueId(948);
static constexpr const TSymbolUniqueId gl_MaxFragmentInputVectors = TSymbolUniqueId(949);
static constexpr const TSymbolUniqueId gl_MinProgramTexelOffset = TSymbolUniqueId(950);
static constexpr const TSymbolUniqueId gl_MaxProgramTexelOffset = TSymbolUniqueId(951);
static constexpr const TSymbolUniqueId gl_MaxImageUnits = TSymbolUniqueId(952);
static constexpr const TSymbolUniqueId gl_MaxVertexImageUniforms = TSymbolUniqueId(953);
static constexpr const TSymbolUniqueId gl_MaxFragmentImageUniforms = TSymbolUniqueId(954);
static constexpr const TSymbolUniqueId gl_MaxComputeImageUniforms = TSymbolUniqueId(955);
static constexpr const TSymbolUniqueId gl_MaxCombinedImageUniforms = TSymbolUniqueId(956);
TSymbolUniqueId(930);
static constexpr const TSymbolUniqueId imageStore_ImageCube1_Int3_Float4 = TSymbolUniqueId(931);
static constexpr const TSymbolUniqueId imageStore_IImageCube1_Int3_Int4 = TSymbolUniqueId(932);
static constexpr const TSymbolUniqueId imageStore_UImageCube1_Int3_UInt4 = TSymbolUniqueId(933);
static constexpr const TSymbolUniqueId memoryBarrier = TSymbolUniqueId(934);
static constexpr const TSymbolUniqueId memoryBarrierAtomicCounter = TSymbolUniqueId(935);
static constexpr const TSymbolUniqueId memoryBarrierBuffer = TSymbolUniqueId(936);
static constexpr const TSymbolUniqueId memoryBarrierImage = TSymbolUniqueId(937);
static constexpr const TSymbolUniqueId barrier = TSymbolUniqueId(938);
static constexpr const TSymbolUniqueId memoryBarrierShared = TSymbolUniqueId(939);
static constexpr const TSymbolUniqueId groupMemoryBarrier = TSymbolUniqueId(940);
static constexpr const TSymbolUniqueId EmitVertex = TSymbolUniqueId(941);
static constexpr const TSymbolUniqueId EndPrimitive = TSymbolUniqueId(942);
static constexpr const TSymbolUniqueId gl_DepthRangeParameters = TSymbolUniqueId(943);
static constexpr const TSymbolUniqueId gl_DepthRange = TSymbolUniqueId(944);
static constexpr const TSymbolUniqueId gl_MaxVertexAttribs = TSymbolUniqueId(945);
static constexpr const TSymbolUniqueId gl_MaxVertexUniformVectors = TSymbolUniqueId(946);
static constexpr const TSymbolUniqueId gl_MaxVertexTextureImageUnits = TSymbolUniqueId(947);
static constexpr const TSymbolUniqueId gl_MaxCombinedTextureImageUnits = TSymbolUniqueId(948);
static constexpr const TSymbolUniqueId gl_MaxTextureImageUnits = TSymbolUniqueId(949);
static constexpr const TSymbolUniqueId gl_MaxFragmentUniformVectors = TSymbolUniqueId(950);
static constexpr const TSymbolUniqueId gl_MaxVaryingVectors = TSymbolUniqueId(951);
static constexpr const TSymbolUniqueId gl_MaxDrawBuffers = TSymbolUniqueId(952);
static constexpr const TSymbolUniqueId gl_MaxDualSourceDrawBuffersEXT = TSymbolUniqueId(953);
static constexpr const TSymbolUniqueId gl_MaxVertexOutputVectors = TSymbolUniqueId(954);
static constexpr const TSymbolUniqueId gl_MaxFragmentInputVectors = TSymbolUniqueId(955);
static constexpr const TSymbolUniqueId gl_MinProgramTexelOffset = TSymbolUniqueId(956);
static constexpr const TSymbolUniqueId gl_MaxProgramTexelOffset = TSymbolUniqueId(957);
static constexpr const TSymbolUniqueId gl_MaxImageUnits = TSymbolUniqueId(958);
static constexpr const TSymbolUniqueId gl_MaxVertexImageUniforms = TSymbolUniqueId(959);
static constexpr const TSymbolUniqueId gl_MaxFragmentImageUniforms = TSymbolUniqueId(960);
static constexpr const TSymbolUniqueId gl_MaxComputeImageUniforms = TSymbolUniqueId(961);
static constexpr const TSymbolUniqueId gl_MaxCombinedImageUniforms = TSymbolUniqueId(962);
static constexpr const TSymbolUniqueId gl_MaxCombinedShaderOutputResources =
TSymbolUniqueId(957);
static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupCount = TSymbolUniqueId(958);
static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupSize = TSymbolUniqueId(959);
static constexpr const TSymbolUniqueId gl_MaxComputeUniformComponents = TSymbolUniqueId(960);
static constexpr const TSymbolUniqueId gl_MaxComputeTextureImageUnits = TSymbolUniqueId(961);
static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounters = TSymbolUniqueId(962);
static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounterBuffers = TSymbolUniqueId(963);
static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounters = TSymbolUniqueId(964);
static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounters = TSymbolUniqueId(965);
static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounters = TSymbolUniqueId(966);
static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBindings = TSymbolUniqueId(967);
static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounterBuffers = TSymbolUniqueId(968);
TSymbolUniqueId(963);
static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupCount = TSymbolUniqueId(964);
static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupSize = TSymbolUniqueId(965);
static constexpr const TSymbolUniqueId gl_MaxComputeUniformComponents = TSymbolUniqueId(966);
static constexpr const TSymbolUniqueId gl_MaxComputeTextureImageUnits = TSymbolUniqueId(967);
static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounters = TSymbolUniqueId(968);
static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounterBuffers = TSymbolUniqueId(969);
static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounters = TSymbolUniqueId(970);
static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounters = TSymbolUniqueId(971);
static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounters = TSymbolUniqueId(972);
static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBindings = TSymbolUniqueId(973);
static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounterBuffers = TSymbolUniqueId(974);
static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounterBuffers =
TSymbolUniqueId(969);
TSymbolUniqueId(975);
static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounterBuffers =
TSymbolUniqueId(970);
static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBufferSize = TSymbolUniqueId(971);
static constexpr const TSymbolUniqueId gl_MaxGeometryInputComponents = TSymbolUniqueId(972);
static constexpr const TSymbolUniqueId gl_MaxGeometryOutputComponents = TSymbolUniqueId(973);
static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniforms = TSymbolUniqueId(974);
static constexpr const TSymbolUniqueId gl_MaxGeometryTextureImageUnits = TSymbolUniqueId(975);
static constexpr const TSymbolUniqueId gl_MaxGeometryOutputVertices = TSymbolUniqueId(976);
TSymbolUniqueId(976);
static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBufferSize = TSymbolUniqueId(977);
static constexpr const TSymbolUniqueId gl_MaxGeometryInputComponents = TSymbolUniqueId(978);
static constexpr const TSymbolUniqueId gl_MaxGeometryOutputComponents = TSymbolUniqueId(979);
static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniforms = TSymbolUniqueId(980);
static constexpr const TSymbolUniqueId gl_MaxGeometryTextureImageUnits = TSymbolUniqueId(981);
static constexpr const TSymbolUniqueId gl_MaxGeometryOutputVertices = TSymbolUniqueId(982);
static constexpr const TSymbolUniqueId gl_MaxGeometryTotalOutputComponents =
TSymbolUniqueId(977);
static constexpr const TSymbolUniqueId gl_MaxGeometryUniformComponents = TSymbolUniqueId(978);
static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounters = TSymbolUniqueId(979);
TSymbolUniqueId(983);
static constexpr const TSymbolUniqueId gl_MaxGeometryUniformComponents = TSymbolUniqueId(984);
static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounters = TSymbolUniqueId(985);
static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounterBuffers =
TSymbolUniqueId(980);
static constexpr const TSymbolUniqueId gl_FragCoord = TSymbolUniqueId(981);
static constexpr const TSymbolUniqueId gl_FrontFacing = TSymbolUniqueId(982);
static constexpr const TSymbolUniqueId gl_PointCoord = TSymbolUniqueId(983);
static constexpr const TSymbolUniqueId gl_FragColor = TSymbolUniqueId(984);
static constexpr const TSymbolUniqueId gl_FragData = TSymbolUniqueId(985);
static constexpr const TSymbolUniqueId gl_FragDepth = TSymbolUniqueId(986);
static constexpr const TSymbolUniqueId gl_SecondaryFragColorEXT = TSymbolUniqueId(987);
static constexpr const TSymbolUniqueId gl_SecondaryFragDataEXT = TSymbolUniqueId(988);
static constexpr const TSymbolUniqueId gl_FragDepthEXT = TSymbolUniqueId(989);
static constexpr const TSymbolUniqueId gl_LastFragData = TSymbolUniqueId(990);
static constexpr const TSymbolUniqueId gl_LastFragColor = TSymbolUniqueId(991);
static constexpr const TSymbolUniqueId gl_LastFragDataNV = TSymbolUniqueId(992);
static constexpr const TSymbolUniqueId gl_LastFragColorARM = TSymbolUniqueId(993);
static constexpr const TSymbolUniqueId gl_PrimitiveID = TSymbolUniqueId(994);
static constexpr const TSymbolUniqueId gl_Layer = TSymbolUniqueId(995);
static constexpr const TSymbolUniqueId gl_Position = TSymbolUniqueId(996);
static constexpr const TSymbolUniqueId gl_PointSize = TSymbolUniqueId(997);
static constexpr const TSymbolUniqueId gl_InstanceID = TSymbolUniqueId(998);
static constexpr const TSymbolUniqueId gl_VertexID = TSymbolUniqueId(999);
static constexpr const TSymbolUniqueId gl_ViewportIndex = TSymbolUniqueId(1000);
static constexpr const TSymbolUniqueId gl_LayerVS = TSymbolUniqueId(1001);
static constexpr const TSymbolUniqueId gl_NumWorkGroups = TSymbolUniqueId(1002);
static constexpr const TSymbolUniqueId gl_WorkGroupSize = TSymbolUniqueId(1003);
static constexpr const TSymbolUniqueId gl_WorkGroupID = TSymbolUniqueId(1004);
static constexpr const TSymbolUniqueId gl_LocalInvocationID = TSymbolUniqueId(1005);
static constexpr const TSymbolUniqueId gl_GlobalInvocationID = TSymbolUniqueId(1006);
static constexpr const TSymbolUniqueId gl_LocalInvocationIndex = TSymbolUniqueId(1007);
static constexpr const TSymbolUniqueId gl_PrimitiveIDIn = TSymbolUniqueId(1008);
static constexpr const TSymbolUniqueId gl_InvocationID = TSymbolUniqueId(1009);
static constexpr const TSymbolUniqueId gl_PrimitiveIDGS = TSymbolUniqueId(1010);
static constexpr const TSymbolUniqueId gl_LayerGS = TSymbolUniqueId(1011);
static constexpr const TSymbolUniqueId gl_PerVertex = TSymbolUniqueId(1012);
static constexpr const TSymbolUniqueId gl_in = TSymbolUniqueId(1013);
static constexpr const TSymbolUniqueId gl_PerVertexOutBlock = TSymbolUniqueId(1014);
static constexpr const TSymbolUniqueId gl_PositionGS = TSymbolUniqueId(1015);
static constexpr const TSymbolUniqueId gl_ViewID_OVR = TSymbolUniqueId(1016);
static constexpr const TSymbolUniqueId gl_ViewID_OVRESSL1 = TSymbolUniqueId(1017);
TSymbolUniqueId(986);
static constexpr const TSymbolUniqueId gl_FragCoord = TSymbolUniqueId(987);
static constexpr const TSymbolUniqueId gl_FrontFacing = TSymbolUniqueId(988);
static constexpr const TSymbolUniqueId gl_PointCoord = TSymbolUniqueId(989);
static constexpr const TSymbolUniqueId gl_FragColor = TSymbolUniqueId(990);
static constexpr const TSymbolUniqueId gl_FragData = TSymbolUniqueId(991);
static constexpr const TSymbolUniqueId gl_FragDepth = TSymbolUniqueId(992);
static constexpr const TSymbolUniqueId gl_SecondaryFragColorEXT = TSymbolUniqueId(993);
static constexpr const TSymbolUniqueId gl_SecondaryFragDataEXT = TSymbolUniqueId(994);
static constexpr const TSymbolUniqueId gl_FragDepthEXT = TSymbolUniqueId(995);
static constexpr const TSymbolUniqueId gl_LastFragData = TSymbolUniqueId(996);
static constexpr const TSymbolUniqueId gl_LastFragColor = TSymbolUniqueId(997);
static constexpr const TSymbolUniqueId gl_LastFragDataNV = TSymbolUniqueId(998);
static constexpr const TSymbolUniqueId gl_LastFragColorARM = TSymbolUniqueId(999);
static constexpr const TSymbolUniqueId gl_PrimitiveID = TSymbolUniqueId(1000);
static constexpr const TSymbolUniqueId gl_Layer = TSymbolUniqueId(1001);
static constexpr const TSymbolUniqueId gl_Position = TSymbolUniqueId(1002);
static constexpr const TSymbolUniqueId gl_PointSize = TSymbolUniqueId(1003);
static constexpr const TSymbolUniqueId gl_InstanceID = TSymbolUniqueId(1004);
static constexpr const TSymbolUniqueId gl_VertexID = TSymbolUniqueId(1005);
static constexpr const TSymbolUniqueId gl_ViewportIndex = TSymbolUniqueId(1006);
static constexpr const TSymbolUniqueId gl_LayerVS = TSymbolUniqueId(1007);
static constexpr const TSymbolUniqueId gl_NumWorkGroups = TSymbolUniqueId(1008);
static constexpr const TSymbolUniqueId gl_WorkGroupSize = TSymbolUniqueId(1009);
static constexpr const TSymbolUniqueId gl_WorkGroupID = TSymbolUniqueId(1010);
static constexpr const TSymbolUniqueId gl_LocalInvocationID = TSymbolUniqueId(1011);
static constexpr const TSymbolUniqueId gl_GlobalInvocationID = TSymbolUniqueId(1012);
static constexpr const TSymbolUniqueId gl_LocalInvocationIndex = TSymbolUniqueId(1013);
static constexpr const TSymbolUniqueId gl_PrimitiveIDIn = TSymbolUniqueId(1014);
static constexpr const TSymbolUniqueId gl_InvocationID = TSymbolUniqueId(1015);
static constexpr const TSymbolUniqueId gl_PrimitiveIDGS = TSymbolUniqueId(1016);
static constexpr const TSymbolUniqueId gl_LayerGS = TSymbolUniqueId(1017);
static constexpr const TSymbolUniqueId gl_PerVertex = TSymbolUniqueId(1018);
static constexpr const TSymbolUniqueId gl_in = TSymbolUniqueId(1019);
static constexpr const TSymbolUniqueId gl_PerVertexOutBlock = TSymbolUniqueId(1020);
static constexpr const TSymbolUniqueId gl_PositionGS = TSymbolUniqueId(1021);
static constexpr const TSymbolUniqueId gl_ViewID_OVR = TSymbolUniqueId(1022);
static constexpr const TSymbolUniqueId gl_ViewID_OVRESSL1 = TSymbolUniqueId(1023);
}; // class BuiltInId

Просмотреть файл

@ -42,7 +42,7 @@ class SamplerMultisampleArrayTest : public ShaderCompileTreeTest
// Checks whether compiler has parsed the gsampler2DMS, texelfetch correctly.
TEST_F(SamplerMultisampleTest, TexelFetchSampler2DMS)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
precision highp float;
uniform highp sampler2DMS s;
@ -55,7 +55,7 @@ TEST_F(SamplerMultisampleTest, TexelFetchSampler2DMS)
uvec4 tex3 = texelFetch(us, ivec2(0, 0), 0);
})";
if (!compile(shaderString))
if (!compile(kShaderString))
{
FAIL() << "Shader compilation failed, expecting success:\n" << mInfoLog;
}
@ -64,7 +64,7 @@ TEST_F(SamplerMultisampleTest, TexelFetchSampler2DMS)
// Checks whether compiler has parsed the gsampler2DMS, textureSize correctly.
TEST_F(SamplerMultisampleTest, TextureSizeSampler2DMS)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
precision highp float;
uniform highp sampler2DMS s;
@ -77,7 +77,7 @@ TEST_F(SamplerMultisampleTest, TextureSizeSampler2DMS)
size = textureSize(us);
})";
if (!compile(shaderString))
if (!compile(kShaderString))
{
FAIL() << "Shader compilation failed, expecting success:\n" << mInfoLog;
}
@ -86,14 +86,14 @@ TEST_F(SamplerMultisampleTest, TextureSizeSampler2DMS)
// Check that sampler2DMS has no default precision.
TEST_F(SamplerMultisampleTest, NoPrecisionSampler2DMS)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
precision highp float;
uniform sampler2DMS s;
void main() {})";
if (compile(shaderString))
if (compile(kShaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
@ -102,14 +102,14 @@ TEST_F(SamplerMultisampleTest, NoPrecisionSampler2DMS)
// Check that isampler2DMS has no default precision.
TEST_F(SamplerMultisampleTest, NoPrecisionISampler2DMS)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
precision highp float;
uniform isampler2DMS s;
void main() {})";
if (compile(shaderString))
if (compile(kShaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
@ -118,14 +118,14 @@ TEST_F(SamplerMultisampleTest, NoPrecisionISampler2DMS)
// Check that usampler2DMS has no default precision.
TEST_F(SamplerMultisampleTest, NoPrecisionUSampler2DMS)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
precision highp float;
uniform usampler2DMS s;
void main() {})";
if (compile(shaderString))
if (compile(kShaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
@ -134,7 +134,7 @@ TEST_F(SamplerMultisampleTest, NoPrecisionUSampler2DMS)
// Negative test: checks that sampler2DMS is not usable in ESSL 3.00.
TEST_F(SamplerMultisampleTest, Sampler2DMSESSL300)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 300 es
precision highp float;
uniform highp sampler2DMS s;
@ -142,7 +142,7 @@ TEST_F(SamplerMultisampleTest, Sampler2DMSESSL300)
void main() {
})";
if (compile(shaderString))
if (compile(kShaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
@ -151,7 +151,7 @@ TEST_F(SamplerMultisampleTest, Sampler2DMSESSL300)
// Negative test: checks that isampler2DMS is not usable in ESSL 3.00.
TEST_F(SamplerMultisampleTest, ISampler2DMSESSL300)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 300 es
precision highp float;
uniform highp isampler2DMS s;
@ -159,7 +159,7 @@ TEST_F(SamplerMultisampleTest, ISampler2DMSESSL300)
void main() {
})";
if (compile(shaderString))
if (compile(kShaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
@ -168,7 +168,7 @@ TEST_F(SamplerMultisampleTest, ISampler2DMSESSL300)
// Negative test: checks that usampler2DMS is not usable in ESSL 3.00.
TEST_F(SamplerMultisampleTest, USampler2DMSESSL300)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 300 es
precision highp float;
uniform highp usampler2DMS s;
@ -176,7 +176,7 @@ TEST_F(SamplerMultisampleTest, USampler2DMSESSL300)
void main() {
})";
if (compile(shaderString))
if (compile(kShaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
@ -185,7 +185,7 @@ TEST_F(SamplerMultisampleTest, USampler2DMSESSL300)
// Negative test: checks that sampler2DMSArray is not usable in ESSL 3.10 without extensions.
TEST_F(SamplerMultisampleTest, Sampler2DMSArrayNotSupported)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
precision highp float;
uniform highp sampler2DMSArray s;
@ -193,7 +193,7 @@ TEST_F(SamplerMultisampleTest, Sampler2DMSArrayNotSupported)
void main() {
})";
if (compile(shaderString))
if (compile(kShaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
@ -202,7 +202,7 @@ TEST_F(SamplerMultisampleTest, Sampler2DMSArrayNotSupported)
// Negative test: checks that isampler2DMSArray is not usable in ESSL 3.10 without extensions.
TEST_F(SamplerMultisampleTest, ISampler2DMSArrayNotSupported)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
precision highp float;
uniform highp isampler2DMSArray s;
@ -210,7 +210,7 @@ TEST_F(SamplerMultisampleTest, ISampler2DMSArrayNotSupported)
void main() {
})";
if (compile(shaderString))
if (compile(kShaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
@ -219,7 +219,7 @@ TEST_F(SamplerMultisampleTest, ISampler2DMSArrayNotSupported)
// Negative test: checks that usampler2DMSArray is not usable in ESSL 3.10 without extensions.
TEST_F(SamplerMultisampleTest, USampler2DMSArrayNotSupported)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
precision highp float;
uniform highp usampler2DMSArray s;
@ -227,7 +227,7 @@ TEST_F(SamplerMultisampleTest, USampler2DMSArrayNotSupported)
void main() {
})";
if (compile(shaderString))
if (compile(kShaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
@ -236,7 +236,7 @@ TEST_F(SamplerMultisampleTest, USampler2DMSArrayNotSupported)
// Checks whether compiler has parsed the gsampler2DMSArray, texelfetch correctly.
TEST_F(SamplerMultisampleArrayTest, TexelFetchSampler2DMSArray)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
#extension GL_OES_texture_storage_multisample_2d_array : require
precision highp float;
@ -250,7 +250,7 @@ TEST_F(SamplerMultisampleArrayTest, TexelFetchSampler2DMSArray)
uvec4 tex3 = texelFetch(us, ivec3(0, 0, 0), 0);
})";
if (!compile(shaderString))
if (!compile(kShaderString))
{
FAIL() << "Shader compilation failed, expecting success:\n" << mInfoLog;
}
@ -259,7 +259,7 @@ TEST_F(SamplerMultisampleArrayTest, TexelFetchSampler2DMSArray)
// Checks whether compiler has parsed the gsampler2DMSArray, textureSize correctly.
TEST_F(SamplerMultisampleArrayTest, TextureSizeSampler2DMSArray)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
#extension GL_OES_texture_storage_multisample_2d_array : require
precision highp float;
@ -273,7 +273,7 @@ TEST_F(SamplerMultisampleArrayTest, TextureSizeSampler2DMSArray)
size = textureSize(us);
})";
if (!compile(shaderString))
if (!compile(kShaderString))
{
FAIL() << "Shader compilation failed, expecting success:\n" << mInfoLog;
}
@ -282,7 +282,7 @@ TEST_F(SamplerMultisampleArrayTest, TextureSizeSampler2DMSArray)
// Check that sampler2DMSArray has no default precision.
TEST_F(SamplerMultisampleArrayTest, NoPrecisionSampler2DMSArray)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
#extension GL_OES_texture_storage_multisample_2d_array : require
precision highp float;
@ -290,7 +290,7 @@ TEST_F(SamplerMultisampleArrayTest, NoPrecisionSampler2DMSArray)
void main() {})";
if (compile(shaderString))
if (compile(kShaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
@ -299,7 +299,7 @@ TEST_F(SamplerMultisampleArrayTest, NoPrecisionSampler2DMSArray)
// Check that isampler2DMSArray has no default precision.
TEST_F(SamplerMultisampleArrayTest, NoPrecisionISampler2DMSArray)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
#extension GL_OES_texture_storage_multisample_2d_array : require
precision highp float;
@ -307,7 +307,7 @@ TEST_F(SamplerMultisampleArrayTest, NoPrecisionISampler2DMSArray)
void main() {})";
if (compile(shaderString))
if (compile(kShaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
@ -316,7 +316,7 @@ TEST_F(SamplerMultisampleArrayTest, NoPrecisionISampler2DMSArray)
// Check that usampler2DMSArray has no default precision.
TEST_F(SamplerMultisampleArrayTest, NoPrecisionUSampler2DMSArray)
{
const std::string &shaderString =
constexpr char kShaderString[] =
R"(#version 310 es
#extension GL_OES_texture_storage_multisample_2d_array : require
precision highp float;
@ -324,8 +324,74 @@ TEST_F(SamplerMultisampleArrayTest, NoPrecisionUSampler2DMSArray)
void main() {})";
if (compile(shaderString))
if (compile(kShaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
}
class SamplerMultisampleEXTTest : public SamplerMultisampleTest
{
public:
SamplerMultisampleEXTTest() {}
protected:
void initResources(ShBuiltInResources *resources) override
{
resources->ANGLE_texture_multisample = 1;
}
::GLenum getShaderType() const override { return GL_FRAGMENT_SHADER; }
ShShaderSpec getShaderSpec() const override { return SH_GLES3_SPEC; }
};
// checks ANGLE_texture_multisample is supported in es 3.0
TEST_F(SamplerMultisampleEXTTest, TextureMultisampleEXTEnabled)
{
constexpr char kShaderString[] =
R"(#version 300 es
#extension GL_ANGLE_texture_multisample : require
precision highp float;
uniform highp sampler2DMS s;
uniform highp isampler2DMS is;
uniform highp usampler2DMS us;
void main() {
ivec2 size = textureSize(s);
size = textureSize(is);
size = textureSize(us);
vec4 tex1 = texelFetch(s, ivec2(0, 0), 0);
ivec4 tex2 = texelFetch(is, ivec2(0, 0), 0);
uvec4 tex3 = texelFetch(us, ivec2(0, 0), 0);
})";
if (!compile(kShaderString))
{
FAIL() << "Shader compilation failure, expecting success:\n" << mInfoLog;
}
}
// checks that multisample texture is not supported without ANGLE_texture_multisample in es 3.0
TEST_F(SamplerMultisampleEXTTest, TextureMultisampleEXTDisabled)
{
constexpr char kShaderString[] =
R"(#version 300 es
precision highp float;
uniform highp sampler2DMS s;
uniform highp isampler2DMS is;
uniform highp usampler2DMS us;
void main() {
ivec2 size = textureSize(s);
size = textureSize(is);
size = textureSize(us);
vec4 tex1 = texelFetch(s, ivec2(0, 0), 0);
ivec4 tex2 = texelFetch(is, ivec2(0, 0), 0);
uvec4 tex3 = texelFetch(us, ivec2(0, 0), 0);
})";
if (compile(kShaderString))
{
FAIL() << "Shader compilation success, expecting failure:\n" << mInfoLog;
}
}