Web: Add separate texture/sampler, exclude *CubeArray*.
Looks like will add about 1K compressed size to executable footprint.
This commit is contained in:
parent
5e634c8999
commit
61c22e255d
178
Test/baseResults/web.separate.frag.out
Normal file
178
Test/baseResults/web.separate.frag.out
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
; SPIR-V
|
||||||
|
; Version: 1.0
|
||||||
|
; Generator: Khronos Glslang Reference Front End; 7
|
||||||
|
; Bound: 99
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
%1 = OpExtInstImport "GLSL.std.450"
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint Fragment %main "main" %color %i
|
||||||
|
OpExecutionMode %main OriginUpperLeft
|
||||||
|
OpSource ESSL 310
|
||||||
|
OpName %main "main"
|
||||||
|
OpName %color "color"
|
||||||
|
OpName %t2d "t2d"
|
||||||
|
OpName %s "s"
|
||||||
|
OpName %t3d "t3d"
|
||||||
|
OpName %sA "sA"
|
||||||
|
OpName %sShadow "sShadow"
|
||||||
|
OpName %i "i"
|
||||||
|
OpName %tex2D "tex2D"
|
||||||
|
OpName %texCube "texCube"
|
||||||
|
OpName %tex2DArray "tex2DArray"
|
||||||
|
OpName %itex2D "itex2D"
|
||||||
|
OpName %itex3D "itex3D"
|
||||||
|
OpName %itexCube "itexCube"
|
||||||
|
OpName %itex2DArray "itex2DArray"
|
||||||
|
OpName %utex2D "utex2D"
|
||||||
|
OpName %utex3D "utex3D"
|
||||||
|
OpName %utexCube "utexCube"
|
||||||
|
OpName %utex2DArray "utex2DArray"
|
||||||
|
OpName %tex3D "tex3D"
|
||||||
|
OpDecorate %color Location 0
|
||||||
|
OpDecorate %t2d RelaxedPrecision
|
||||||
|
OpDecorate %t2d DescriptorSet 0
|
||||||
|
OpDecorate %t2d Binding 3
|
||||||
|
OpDecorate %14 RelaxedPrecision
|
||||||
|
OpDecorate %s DescriptorSet 0
|
||||||
|
OpDecorate %s Binding 0
|
||||||
|
OpDecorate %23 RelaxedPrecision
|
||||||
|
OpDecorate %t3d DescriptorSet 0
|
||||||
|
OpDecorate %t3d Binding 4
|
||||||
|
OpDecorate %sA DescriptorSet 0
|
||||||
|
OpDecorate %sA Binding 2
|
||||||
|
OpDecorate %48 RelaxedPrecision
|
||||||
|
OpDecorate %51 RelaxedPrecision
|
||||||
|
OpDecorate %sShadow DescriptorSet 0
|
||||||
|
OpDecorate %sShadow Binding 1
|
||||||
|
OpDecorate %i RelaxedPrecision
|
||||||
|
OpDecorate %i Flat
|
||||||
|
OpDecorate %i Location 0
|
||||||
|
OpDecorate %tex2D RelaxedPrecision
|
||||||
|
OpDecorate %tex2D DescriptorSet 0
|
||||||
|
OpDecorate %tex2D Binding 5
|
||||||
|
OpDecorate %texCube RelaxedPrecision
|
||||||
|
OpDecorate %texCube DescriptorSet 0
|
||||||
|
OpDecorate %texCube Binding 6
|
||||||
|
OpDecorate %tex2DArray DescriptorSet 0
|
||||||
|
OpDecorate %tex2DArray Binding 15
|
||||||
|
OpDecorate %itex2D DescriptorSet 0
|
||||||
|
OpDecorate %itex2D Binding 16
|
||||||
|
OpDecorate %itex3D DescriptorSet 0
|
||||||
|
OpDecorate %itex3D Binding 17
|
||||||
|
OpDecorate %itexCube DescriptorSet 0
|
||||||
|
OpDecorate %itexCube Binding 18
|
||||||
|
OpDecorate %itex2DArray DescriptorSet 0
|
||||||
|
OpDecorate %itex2DArray Binding 19
|
||||||
|
OpDecorate %utex2D DescriptorSet 0
|
||||||
|
OpDecorate %utex2D Binding 20
|
||||||
|
OpDecorate %utex3D DescriptorSet 0
|
||||||
|
OpDecorate %utex3D Binding 21
|
||||||
|
OpDecorate %utexCube DescriptorSet 0
|
||||||
|
OpDecorate %utexCube Binding 22
|
||||||
|
OpDecorate %utex2DArray DescriptorSet 0
|
||||||
|
OpDecorate %utex2DArray Binding 23
|
||||||
|
OpDecorate %tex3D DescriptorSet 0
|
||||||
|
OpDecorate %tex3D Binding 36
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%3 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
|
%v4float = OpTypeVector %float 4
|
||||||
|
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||||
|
%color = OpVariable %_ptr_Output_v4float Output
|
||||||
|
%10 = OpTypeImage %float 2D 0 0 0 1 Unknown
|
||||||
|
%11 = OpTypeSampledImage %10
|
||||||
|
%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
|
||||||
|
%t2d = OpVariable %_ptr_UniformConstant_11 UniformConstant
|
||||||
|
%15 = OpTypeSampler
|
||||||
|
%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
|
||||||
|
%s = OpVariable %_ptr_UniformConstant_15 UniformConstant
|
||||||
|
%v2float = OpTypeVector %float 2
|
||||||
|
%float_0_5 = OpConstant %float 0.5
|
||||||
|
%22 = OpConstantComposite %v2float %float_0_5 %float_0_5
|
||||||
|
%24 = OpTypeImage %float 3D 0 0 0 1 Unknown
|
||||||
|
%25 = OpTypeSampledImage %24
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%uint_4 = OpConstant %uint 4
|
||||||
|
%_arr_25_uint_4 = OpTypeArray %25 %uint_4
|
||||||
|
%_ptr_UniformConstant__arr_25_uint_4 = OpTypePointer UniformConstant %_arr_25_uint_4
|
||||||
|
%t3d = OpVariable %_ptr_UniformConstant__arr_25_uint_4 UniformConstant
|
||||||
|
%int = OpTypeInt 32 1
|
||||||
|
%int_1 = OpConstant %int 1
|
||||||
|
%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %25
|
||||||
|
%_arr_15_uint_4 = OpTypeArray %15 %uint_4
|
||||||
|
%_ptr_UniformConstant__arr_15_uint_4 = OpTypePointer UniformConstant %_arr_15_uint_4
|
||||||
|
%sA = OpVariable %_ptr_UniformConstant__arr_15_uint_4 UniformConstant
|
||||||
|
%int_2 = OpConstant %int 2
|
||||||
|
%v3float = OpTypeVector %float 3
|
||||||
|
%44 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5
|
||||||
|
%sShadow = OpVariable %_ptr_UniformConstant_15 UniformConstant
|
||||||
|
%_ptr_Input_int = OpTypePointer Input %int
|
||||||
|
%i = OpVariable %_ptr_Input_int Input
|
||||||
|
%tex2D = OpVariable %_ptr_UniformConstant_11 UniformConstant
|
||||||
|
%58 = OpTypeImage %float Cube 0 0 0 1 Unknown
|
||||||
|
%59 = OpTypeSampledImage %58
|
||||||
|
%_ptr_UniformConstant_59 = OpTypePointer UniformConstant %59
|
||||||
|
%texCube = OpVariable %_ptr_UniformConstant_59 UniformConstant
|
||||||
|
%62 = OpTypeImage %float 2D 0 1 0 1 Unknown
|
||||||
|
%63 = OpTypeSampledImage %62
|
||||||
|
%_ptr_UniformConstant_63 = OpTypePointer UniformConstant %63
|
||||||
|
%tex2DArray = OpVariable %_ptr_UniformConstant_63 UniformConstant
|
||||||
|
%66 = OpTypeImage %int 2D 0 0 0 1 Unknown
|
||||||
|
%67 = OpTypeSampledImage %66
|
||||||
|
%_ptr_UniformConstant_67 = OpTypePointer UniformConstant %67
|
||||||
|
%itex2D = OpVariable %_ptr_UniformConstant_67 UniformConstant
|
||||||
|
%70 = OpTypeImage %int 3D 0 0 0 1 Unknown
|
||||||
|
%71 = OpTypeSampledImage %70
|
||||||
|
%_ptr_UniformConstant_71 = OpTypePointer UniformConstant %71
|
||||||
|
%itex3D = OpVariable %_ptr_UniformConstant_71 UniformConstant
|
||||||
|
%74 = OpTypeImage %int Cube 0 0 0 1 Unknown
|
||||||
|
%75 = OpTypeSampledImage %74
|
||||||
|
%_ptr_UniformConstant_75 = OpTypePointer UniformConstant %75
|
||||||
|
%itexCube = OpVariable %_ptr_UniformConstant_75 UniformConstant
|
||||||
|
%78 = OpTypeImage %int 2D 0 1 0 1 Unknown
|
||||||
|
%79 = OpTypeSampledImage %78
|
||||||
|
%_ptr_UniformConstant_79 = OpTypePointer UniformConstant %79
|
||||||
|
%itex2DArray = OpVariable %_ptr_UniformConstant_79 UniformConstant
|
||||||
|
%82 = OpTypeImage %uint 2D 0 0 0 1 Unknown
|
||||||
|
%83 = OpTypeSampledImage %82
|
||||||
|
%_ptr_UniformConstant_83 = OpTypePointer UniformConstant %83
|
||||||
|
%utex2D = OpVariable %_ptr_UniformConstant_83 UniformConstant
|
||||||
|
%86 = OpTypeImage %uint 3D 0 0 0 1 Unknown
|
||||||
|
%87 = OpTypeSampledImage %86
|
||||||
|
%_ptr_UniformConstant_87 = OpTypePointer UniformConstant %87
|
||||||
|
%utex3D = OpVariable %_ptr_UniformConstant_87 UniformConstant
|
||||||
|
%90 = OpTypeImage %uint Cube 0 0 0 1 Unknown
|
||||||
|
%91 = OpTypeSampledImage %90
|
||||||
|
%_ptr_UniformConstant_91 = OpTypePointer UniformConstant %91
|
||||||
|
%utexCube = OpVariable %_ptr_UniformConstant_91 UniformConstant
|
||||||
|
%94 = OpTypeImage %uint 2D 0 1 0 1 Unknown
|
||||||
|
%95 = OpTypeSampledImage %94
|
||||||
|
%_ptr_UniformConstant_95 = OpTypePointer UniformConstant %95
|
||||||
|
%utex2DArray = OpVariable %_ptr_UniformConstant_95 UniformConstant
|
||||||
|
%tex3D = OpVariable %_ptr_UniformConstant_25 UniformConstant
|
||||||
|
%main = OpFunction %void None %3
|
||||||
|
%5 = OpLabel
|
||||||
|
%14 = OpLoad %11 %t2d
|
||||||
|
%18 = OpLoad %15 %s
|
||||||
|
%19 = OpSampledImage %11 %14 %18
|
||||||
|
%23 = OpImageSampleImplicitLod %v4float %19 %22
|
||||||
|
OpStore %color %23
|
||||||
|
%34 = OpAccessChain %_ptr_UniformConstant_25 %t3d %int_1
|
||||||
|
%35 = OpLoad %25 %34
|
||||||
|
%40 = OpAccessChain %_ptr_UniformConstant_15 %sA %int_2
|
||||||
|
%41 = OpLoad %15 %40
|
||||||
|
%42 = OpSampledImage %25 %35 %41
|
||||||
|
%45 = OpImageSampleImplicitLod %v4float %42 %44
|
||||||
|
%46 = OpLoad %v4float %color
|
||||||
|
%47 = OpFAdd %v4float %46 %45
|
||||||
|
OpStore %color %47
|
||||||
|
%48 = OpLoad %11 %t2d
|
||||||
|
%49 = OpLoad %15 %s
|
||||||
|
%50 = OpSampledImage %11 %48 %49
|
||||||
|
%51 = OpImageSampleImplicitLod %v4float %50 %22
|
||||||
|
%52 = OpLoad %v4float %color
|
||||||
|
%53 = OpFAdd %v4float %52 %51
|
||||||
|
OpStore %color %53
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
63
Test/web.separate.frag
Normal file
63
Test/web.separate.frag
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#version 310 es
|
||||||
|
|
||||||
|
precision highp sampler;
|
||||||
|
precision highp samplerShadow;
|
||||||
|
precision highp texture2DArray;
|
||||||
|
precision highp itexture2D;
|
||||||
|
precision highp itexture3D;
|
||||||
|
precision highp itextureCube;
|
||||||
|
precision highp itexture2DArray;
|
||||||
|
precision highp utexture2D;
|
||||||
|
precision highp utexture3D;
|
||||||
|
precision highp utextureCube;
|
||||||
|
precision highp utexture2DArray;
|
||||||
|
precision highp texture3D;
|
||||||
|
precision highp float;
|
||||||
|
|
||||||
|
layout(binding = 0) uniform sampler s;
|
||||||
|
layout(binding = 1) uniform samplerShadow sShadow;
|
||||||
|
layout(binding = 2) uniform sampler sA[4];
|
||||||
|
layout(binding = 3) uniform texture2D t2d;
|
||||||
|
layout(binding = 4) uniform texture3D t3d[4];
|
||||||
|
layout(location = 0) flat in int i;
|
||||||
|
|
||||||
|
layout(location = 0) out vec4 color;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
color = texture(sampler2D(t2d, s), vec2(0.5));
|
||||||
|
color += texture(sampler3D(t3d[1], sA[2]), vec3(0.5));
|
||||||
|
color += texture(sampler2D(t2d, s), vec2(0.5));
|
||||||
|
}
|
||||||
|
|
||||||
|
layout(binding = 5) uniform texture2D tex2D;
|
||||||
|
layout(binding = 6) uniform textureCube texCube;
|
||||||
|
layout(binding = 15) uniform texture2DArray tex2DArray;
|
||||||
|
layout(binding = 16) uniform itexture2D itex2D;
|
||||||
|
layout(binding = 17) uniform itexture3D itex3D;
|
||||||
|
layout(binding = 18) uniform itextureCube itexCube;
|
||||||
|
layout(binding = 19) uniform itexture2DArray itex2DArray;
|
||||||
|
layout(binding = 20) uniform utexture2D utex2D;
|
||||||
|
layout(binding = 21) uniform utexture3D utex3D;
|
||||||
|
layout(binding = 22) uniform utextureCube utexCube;
|
||||||
|
layout(binding = 23) uniform utexture2DArray utex2DArray;
|
||||||
|
layout(binding = 36) uniform texture3D tex3D;
|
||||||
|
|
||||||
|
void foo()
|
||||||
|
{
|
||||||
|
sampler2D (tex2D, s);
|
||||||
|
samplerCube (texCube, s);
|
||||||
|
samplerCubeShadow (texCube, sShadow);
|
||||||
|
sampler2DArray (tex2DArray, s);
|
||||||
|
sampler2DArrayShadow (tex2DArray, sShadow);
|
||||||
|
isampler2D (itex2D, s);
|
||||||
|
isampler3D (itex3D, s);
|
||||||
|
isamplerCube (itexCube, s);
|
||||||
|
isampler2DArray (itex2DArray, s);
|
||||||
|
usampler2D (utex2D, s);
|
||||||
|
usampler3D (utex3D, s);
|
||||||
|
usamplerCube (utexCube, s);
|
||||||
|
usampler2DArray (utex2DArray, s);
|
||||||
|
sampler3D (tex3D, s);
|
||||||
|
sampler2DShadow (tex2D, sShadow);
|
||||||
|
}
|
@ -5,3 +5,4 @@ web.controlFlow.frag
|
|||||||
web.operations.frag
|
web.operations.frag
|
||||||
web.texture.frag
|
web.texture.frag
|
||||||
web.array.frag
|
web.array.frag
|
||||||
|
web.separate.frag
|
||||||
|
@ -79,6 +79,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
|||||||
bool ms : 1;
|
bool ms : 1;
|
||||||
bool image : 1; // image, combined should be false
|
bool image : 1; // image, combined should be false
|
||||||
bool combined : 1; // true means texture is combined with a sampler, false means texture with no sampler
|
bool combined : 1; // true means texture is combined with a sampler, false means texture with no sampler
|
||||||
|
bool sampler : 1; // true means a pure sampler, other fields should be clear()
|
||||||
#ifdef ENABLE_HLSL
|
#ifdef ENABLE_HLSL
|
||||||
unsigned int vectorSize : 3; // vector return type size.
|
unsigned int vectorSize : 3; // vector return type size.
|
||||||
unsigned int getVectorSize() const { return vectorSize; }
|
unsigned int getVectorSize() const { return vectorSize; }
|
||||||
@ -105,8 +106,6 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
|||||||
bool isRect() const { return false; }
|
bool isRect() const { return false; }
|
||||||
bool isSubpass() const { return false; }
|
bool isSubpass() const { return false; }
|
||||||
bool isCombined() const { return true; }
|
bool isCombined() const { return true; }
|
||||||
bool isPureSampler() const { return false; }
|
|
||||||
bool isTexture() const { return false; }
|
|
||||||
bool isImage() const { return false; }
|
bool isImage() const { return false; }
|
||||||
bool isImageClass() const { return false; }
|
bool isImageClass() const { return false; }
|
||||||
bool isMultiSample() const { return false; }
|
bool isMultiSample() const { return false; }
|
||||||
@ -114,7 +113,6 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
|||||||
void setExternal(bool e) { }
|
void setExternal(bool e) { }
|
||||||
bool isYuv() const { return false; }
|
bool isYuv() const { return false; }
|
||||||
#else
|
#else
|
||||||
bool sampler : 1; // true means a pure sampler, other fields should be clear()
|
|
||||||
bool external : 1; // GL_OES_EGL_image_external
|
bool external : 1; // GL_OES_EGL_image_external
|
||||||
bool yuv : 1; // GL_EXT_YUV_target
|
bool yuv : 1; // GL_EXT_YUV_target
|
||||||
// Some languages support structures as sample results. Storing the whole structure in the
|
// Some languages support structures as sample results. Storing the whole structure in the
|
||||||
@ -125,8 +123,6 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
|||||||
bool isRect() const { return dim == EsdRect; }
|
bool isRect() const { return dim == EsdRect; }
|
||||||
bool isSubpass() const { return dim == EsdSubpass; }
|
bool isSubpass() const { return dim == EsdSubpass; }
|
||||||
bool isCombined() const { return combined; }
|
bool isCombined() const { return combined; }
|
||||||
bool isPureSampler() const { return sampler; }
|
|
||||||
bool isTexture() const { return !sampler && !image; }
|
|
||||||
bool isImage() const { return image && !isSubpass(); }
|
bool isImage() const { return image && !isSubpass(); }
|
||||||
bool isImageClass() const { return image; }
|
bool isImageClass() const { return image; }
|
||||||
bool isMultiSample() const { return ms; }
|
bool isMultiSample() const { return ms; }
|
||||||
@ -134,6 +130,9 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
|||||||
void setExternal(bool e) { external = e; }
|
void setExternal(bool e) { external = e; }
|
||||||
bool isYuv() const { return yuv; }
|
bool isYuv() const { return yuv; }
|
||||||
#endif
|
#endif
|
||||||
|
bool isTexture() const { return !sampler && !image; }
|
||||||
|
bool isPureSampler() const { return sampler; }
|
||||||
|
|
||||||
void setCombined(bool c) { combined = c; }
|
void setCombined(bool c) { combined = c; }
|
||||||
void setBasicType(TBasicType t) { type = t; }
|
void setBasicType(TBasicType t) { type = t; }
|
||||||
TBasicType getBasicType() const { return type; }
|
TBasicType getBasicType() const { return type; }
|
||||||
@ -149,8 +148,8 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
|||||||
ms = false;
|
ms = false;
|
||||||
image = false;
|
image = false;
|
||||||
combined = false;
|
combined = false;
|
||||||
#ifndef GLSLANG_WEB
|
|
||||||
sampler = false;
|
sampler = false;
|
||||||
|
#ifndef GLSLANG_WEB
|
||||||
external = false;
|
external = false;
|
||||||
yuv = false;
|
yuv = false;
|
||||||
#endif
|
#endif
|
||||||
@ -197,6 +196,14 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
|||||||
ms = m;
|
ms = m;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// make a pure sampler, no texture, no image, nothing combined, the 'sampler' keyword
|
||||||
|
void setPureSampler(bool s)
|
||||||
|
{
|
||||||
|
clear();
|
||||||
|
sampler = true;
|
||||||
|
shadow = s;
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
// make a subpass input attachment
|
// make a subpass input attachment
|
||||||
void setSubpass(TBasicType t, bool m = false)
|
void setSubpass(TBasicType t, bool m = false)
|
||||||
@ -207,14 +214,6 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
|||||||
dim = EsdSubpass;
|
dim = EsdSubpass;
|
||||||
ms = m;
|
ms = m;
|
||||||
}
|
}
|
||||||
|
|
||||||
// make a pure sampler, no texture, no image, nothing combined, the 'sampler' keyword
|
|
||||||
void setPureSampler(bool s)
|
|
||||||
{
|
|
||||||
clear();
|
|
||||||
sampler = true;
|
|
||||||
shadow = s;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool operator==(const TSampler& right) const
|
bool operator==(const TSampler& right) const
|
||||||
@ -1922,6 +1921,7 @@ public:
|
|||||||
case EbtFloat: return "float";
|
case EbtFloat: return "float";
|
||||||
case EbtInt: return "int";
|
case EbtInt: return "int";
|
||||||
case EbtUint: return "uint";
|
case EbtUint: return "uint";
|
||||||
|
case EbtSampler: return "sampler/image";
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
case EbtVoid: return "void";
|
case EbtVoid: return "void";
|
||||||
case EbtDouble: return "double";
|
case EbtDouble: return "double";
|
||||||
@ -1934,7 +1934,6 @@ public:
|
|||||||
case EbtUint64: return "uint64_t";
|
case EbtUint64: return "uint64_t";
|
||||||
case EbtBool: return "bool";
|
case EbtBool: return "bool";
|
||||||
case EbtAtomicUint: return "atomic_uint";
|
case EbtAtomicUint: return "atomic_uint";
|
||||||
case EbtSampler: return "sampler/image";
|
|
||||||
case EbtStruct: return "structure";
|
case EbtStruct: return "structure";
|
||||||
case EbtBlock: return "block";
|
case EbtBlock: return "block";
|
||||||
case EbtAccStructNV: return "accelerationStructureNV";
|
case EbtAccStructNV: return "accelerationStructureNV";
|
||||||
|
@ -5314,7 +5314,7 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c
|
|||||||
#ifdef GLSLANG_WEB
|
#ifdef GLSLANG_WEB
|
||||||
const int ms = 0;
|
const int ms = 0;
|
||||||
#else
|
#else
|
||||||
for (int ms = 0; ms <= 1; ++ms)
|
for (int ms = 0; ms <= 1; ++ms) // loop over "bool" multisample or not
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
|
@ -2794,10 +2794,8 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T
|
|||||||
// See if it's a matrix
|
// See if it's a matrix
|
||||||
bool constructingMatrix = false;
|
bool constructingMatrix = false;
|
||||||
switch (op) {
|
switch (op) {
|
||||||
#ifndef GLSLANG_WEB
|
|
||||||
case EOpConstructTextureSampler:
|
case EOpConstructTextureSampler:
|
||||||
return constructorTextureSamplerError(loc, function);
|
return constructorTextureSamplerError(loc, function);
|
||||||
#endif
|
|
||||||
case EOpConstructMat2x2:
|
case EOpConstructMat2x2:
|
||||||
case EOpConstructMat2x3:
|
case EOpConstructMat2x3:
|
||||||
case EOpConstructMat2x4:
|
case EOpConstructMat2x4:
|
||||||
|
@ -564,10 +564,6 @@ void TScanContext::fillInKeywordMap()
|
|||||||
|
|
||||||
(*KeywordMap)["sampler2D"] = SAMPLER2D;
|
(*KeywordMap)["sampler2D"] = SAMPLER2D;
|
||||||
(*KeywordMap)["samplerCube"] = SAMPLERCUBE;
|
(*KeywordMap)["samplerCube"] = SAMPLERCUBE;
|
||||||
(*KeywordMap)["samplerCubeArray"] = SAMPLERCUBEARRAY;
|
|
||||||
(*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW;
|
|
||||||
(*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY;
|
|
||||||
(*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY;
|
|
||||||
(*KeywordMap)["samplerCubeShadow"] = SAMPLERCUBESHADOW;
|
(*KeywordMap)["samplerCubeShadow"] = SAMPLERCUBESHADOW;
|
||||||
(*KeywordMap)["sampler2DArray"] = SAMPLER2DARRAY;
|
(*KeywordMap)["sampler2DArray"] = SAMPLER2DARRAY;
|
||||||
(*KeywordMap)["sampler2DArrayShadow"] = SAMPLER2DARRAYSHADOW;
|
(*KeywordMap)["sampler2DArrayShadow"] = SAMPLER2DARRAYSHADOW;
|
||||||
@ -582,7 +578,30 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["sampler3D"] = SAMPLER3D;
|
(*KeywordMap)["sampler3D"] = SAMPLER3D;
|
||||||
(*KeywordMap)["sampler2DShadow"] = SAMPLER2DSHADOW;
|
(*KeywordMap)["sampler2DShadow"] = SAMPLER2DSHADOW;
|
||||||
|
|
||||||
|
(*KeywordMap)["texture2D"] = TEXTURE2D;
|
||||||
|
(*KeywordMap)["textureCube"] = TEXTURECUBE;
|
||||||
|
(*KeywordMap)["texture2DArray"] = TEXTURE2DARRAY;
|
||||||
|
(*KeywordMap)["itexture2D"] = ITEXTURE2D;
|
||||||
|
(*KeywordMap)["itexture3D"] = ITEXTURE3D;
|
||||||
|
(*KeywordMap)["itextureCube"] = ITEXTURECUBE;
|
||||||
|
(*KeywordMap)["itexture2DArray"] = ITEXTURE2DARRAY;
|
||||||
|
(*KeywordMap)["utexture2D"] = UTEXTURE2D;
|
||||||
|
(*KeywordMap)["utexture3D"] = UTEXTURE3D;
|
||||||
|
(*KeywordMap)["utextureCube"] = UTEXTURECUBE;
|
||||||
|
(*KeywordMap)["utexture2DArray"] = UTEXTURE2DARRAY;
|
||||||
|
(*KeywordMap)["texture3D"] = TEXTURE3D;
|
||||||
|
|
||||||
|
(*KeywordMap)["sampler"] = SAMPLER;
|
||||||
|
(*KeywordMap)["samplerShadow"] = SAMPLERSHADOW;
|
||||||
|
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
|
(*KeywordMap)["textureCubeArray"] = TEXTURECUBEARRAY;
|
||||||
|
(*KeywordMap)["itextureCubeArray"] = ITEXTURECUBEARRAY;
|
||||||
|
(*KeywordMap)["utextureCubeArray"] = UTEXTURECUBEARRAY;
|
||||||
|
(*KeywordMap)["samplerCubeArray"] = SAMPLERCUBEARRAY;
|
||||||
|
(*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW;
|
||||||
|
(*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY;
|
||||||
|
(*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY;
|
||||||
(*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW;
|
(*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW;
|
||||||
(*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
|
(*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
|
||||||
(*KeywordMap)["usampler1D"] = USAMPLER1D;
|
(*KeywordMap)["usampler1D"] = USAMPLER1D;
|
||||||
@ -609,28 +628,11 @@ void TScanContext::fillInKeywordMap()
|
|||||||
|
|
||||||
(*KeywordMap)["__samplerExternal2DY2YEXT"] = SAMPLEREXTERNAL2DY2YEXT; // GL_EXT_YUV_target
|
(*KeywordMap)["__samplerExternal2DY2YEXT"] = SAMPLEREXTERNAL2DY2YEXT; // GL_EXT_YUV_target
|
||||||
|
|
||||||
(*KeywordMap)["sampler"] = SAMPLER;
|
|
||||||
(*KeywordMap)["samplerShadow"] = SAMPLERSHADOW;
|
|
||||||
|
|
||||||
(*KeywordMap)["texture2D"] = TEXTURE2D;
|
|
||||||
(*KeywordMap)["textureCube"] = TEXTURECUBE;
|
|
||||||
(*KeywordMap)["textureCubeArray"] = TEXTURECUBEARRAY;
|
|
||||||
(*KeywordMap)["itextureCubeArray"] = ITEXTURECUBEARRAY;
|
|
||||||
(*KeywordMap)["utextureCubeArray"] = UTEXTURECUBEARRAY;
|
|
||||||
(*KeywordMap)["itexture1DArray"] = ITEXTURE1DARRAY;
|
(*KeywordMap)["itexture1DArray"] = ITEXTURE1DARRAY;
|
||||||
(*KeywordMap)["utexture1D"] = UTEXTURE1D;
|
(*KeywordMap)["utexture1D"] = UTEXTURE1D;
|
||||||
(*KeywordMap)["itexture1D"] = ITEXTURE1D;
|
(*KeywordMap)["itexture1D"] = ITEXTURE1D;
|
||||||
(*KeywordMap)["utexture1DArray"] = UTEXTURE1DARRAY;
|
(*KeywordMap)["utexture1DArray"] = UTEXTURE1DARRAY;
|
||||||
(*KeywordMap)["textureBuffer"] = TEXTUREBUFFER;
|
(*KeywordMap)["textureBuffer"] = TEXTUREBUFFER;
|
||||||
(*KeywordMap)["texture2DArray"] = TEXTURE2DARRAY;
|
|
||||||
(*KeywordMap)["itexture2D"] = ITEXTURE2D;
|
|
||||||
(*KeywordMap)["itexture3D"] = ITEXTURE3D;
|
|
||||||
(*KeywordMap)["itextureCube"] = ITEXTURECUBE;
|
|
||||||
(*KeywordMap)["itexture2DArray"] = ITEXTURE2DARRAY;
|
|
||||||
(*KeywordMap)["utexture2D"] = UTEXTURE2D;
|
|
||||||
(*KeywordMap)["utexture3D"] = UTEXTURE3D;
|
|
||||||
(*KeywordMap)["utextureCube"] = UTEXTURECUBE;
|
|
||||||
(*KeywordMap)["utexture2DArray"] = UTEXTURE2DARRAY;
|
|
||||||
(*KeywordMap)["itexture2DRect"] = ITEXTURE2DRECT;
|
(*KeywordMap)["itexture2DRect"] = ITEXTURE2DRECT;
|
||||||
(*KeywordMap)["utexture2DRect"] = UTEXTURE2DRECT;
|
(*KeywordMap)["utexture2DRect"] = UTEXTURE2DRECT;
|
||||||
(*KeywordMap)["itextureBuffer"] = ITEXTUREBUFFER;
|
(*KeywordMap)["itextureBuffer"] = ITEXTUREBUFFER;
|
||||||
@ -642,7 +644,6 @@ void TScanContext::fillInKeywordMap()
|
|||||||
(*KeywordMap)["itexture2DMSArray"] = ITEXTURE2DMSARRAY;
|
(*KeywordMap)["itexture2DMSArray"] = ITEXTURE2DMSARRAY;
|
||||||
(*KeywordMap)["utexture2DMSArray"] = UTEXTURE2DMSARRAY;
|
(*KeywordMap)["utexture2DMSArray"] = UTEXTURE2DMSARRAY;
|
||||||
(*KeywordMap)["texture1D"] = TEXTURE1D;
|
(*KeywordMap)["texture1D"] = TEXTURE1D;
|
||||||
(*KeywordMap)["texture3D"] = TEXTURE3D;
|
|
||||||
(*KeywordMap)["texture2DRect"] = TEXTURE2DRECT;
|
(*KeywordMap)["texture2DRect"] = TEXTURE2DRECT;
|
||||||
(*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY;
|
(*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY;
|
||||||
|
|
||||||
@ -1321,7 +1322,6 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
|
|
||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
#endif
|
|
||||||
|
|
||||||
case SAMPLERCUBEARRAY:
|
case SAMPLERCUBEARRAY:
|
||||||
case SAMPLERCUBEARRAYSHADOW:
|
case SAMPLERCUBEARRAYSHADOW:
|
||||||
@ -1335,6 +1335,15 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
reservedWord();
|
reservedWord();
|
||||||
return keyword;
|
return keyword;
|
||||||
|
|
||||||
|
case TEXTURECUBEARRAY:
|
||||||
|
case ITEXTURECUBEARRAY:
|
||||||
|
case UTEXTURECUBEARRAY:
|
||||||
|
if (parseContext.spvVersion.vulkan > 0)
|
||||||
|
return keyword;
|
||||||
|
else
|
||||||
|
return identifierOrType();
|
||||||
|
#endif
|
||||||
|
|
||||||
case UINT:
|
case UINT:
|
||||||
case UVEC2:
|
case UVEC2:
|
||||||
case UVEC3:
|
case UVEC3:
|
||||||
@ -1369,6 +1378,25 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
}
|
}
|
||||||
return keyword;
|
return keyword;
|
||||||
|
|
||||||
|
case TEXTURE2D:
|
||||||
|
case TEXTURECUBE:
|
||||||
|
case TEXTURE2DARRAY:
|
||||||
|
case ITEXTURE2D:
|
||||||
|
case ITEXTURE3D:
|
||||||
|
case ITEXTURECUBE:
|
||||||
|
case ITEXTURE2DARRAY:
|
||||||
|
case UTEXTURE2D:
|
||||||
|
case UTEXTURE3D:
|
||||||
|
case UTEXTURECUBE:
|
||||||
|
case UTEXTURE2DARRAY:
|
||||||
|
case TEXTURE3D:
|
||||||
|
case SAMPLER:
|
||||||
|
case SAMPLERSHADOW:
|
||||||
|
if (parseContext.spvVersion.vulkan > 0)
|
||||||
|
return keyword;
|
||||||
|
else
|
||||||
|
return identifierOrType();
|
||||||
|
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
case ISAMPLER1D:
|
case ISAMPLER1D:
|
||||||
case ISAMPLER1DARRAY:
|
case ISAMPLER1DARRAY:
|
||||||
@ -1458,25 +1486,11 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
return keyword;
|
return keyword;
|
||||||
return identifierOrType();
|
return identifierOrType();
|
||||||
|
|
||||||
case TEXTURE2D:
|
|
||||||
case TEXTURECUBE:
|
|
||||||
case TEXTURECUBEARRAY:
|
|
||||||
case ITEXTURECUBEARRAY:
|
|
||||||
case UTEXTURECUBEARRAY:
|
|
||||||
case ITEXTURE1DARRAY:
|
case ITEXTURE1DARRAY:
|
||||||
case UTEXTURE1D:
|
case UTEXTURE1D:
|
||||||
case ITEXTURE1D:
|
case ITEXTURE1D:
|
||||||
case UTEXTURE1DARRAY:
|
case UTEXTURE1DARRAY:
|
||||||
case TEXTUREBUFFER:
|
case TEXTUREBUFFER:
|
||||||
case TEXTURE2DARRAY:
|
|
||||||
case ITEXTURE2D:
|
|
||||||
case ITEXTURE3D:
|
|
||||||
case ITEXTURECUBE:
|
|
||||||
case ITEXTURE2DARRAY:
|
|
||||||
case UTEXTURE2D:
|
|
||||||
case UTEXTURE3D:
|
|
||||||
case UTEXTURECUBE:
|
|
||||||
case UTEXTURE2DARRAY:
|
|
||||||
case ITEXTURE2DRECT:
|
case ITEXTURE2DRECT:
|
||||||
case UTEXTURE2DRECT:
|
case UTEXTURE2DRECT:
|
||||||
case ITEXTUREBUFFER:
|
case ITEXTUREBUFFER:
|
||||||
@ -1488,11 +1502,8 @@ int TScanContext::tokenizeIdentifier()
|
|||||||
case ITEXTURE2DMSARRAY:
|
case ITEXTURE2DMSARRAY:
|
||||||
case UTEXTURE2DMSARRAY:
|
case UTEXTURE2DMSARRAY:
|
||||||
case TEXTURE1D:
|
case TEXTURE1D:
|
||||||
case TEXTURE3D:
|
|
||||||
case TEXTURE2DRECT:
|
case TEXTURE2DRECT:
|
||||||
case TEXTURE1DARRAY:
|
case TEXTURE1DARRAY:
|
||||||
case SAMPLER:
|
|
||||||
case SAMPLERSHADOW:
|
|
||||||
if (parseContext.spvVersion.vulkan > 0)
|
if (parseContext.spvVersion.vulkan > 0)
|
||||||
return keyword;
|
return keyword;
|
||||||
else
|
else
|
||||||
|
@ -166,8 +166,12 @@ extern int yylex(YYSTYPE*, TParseContext&);
|
|||||||
%token <lex> SAMPLER2DARRAYSHADOW ISAMPLER2D ISAMPLER3D ISAMPLERCUBE
|
%token <lex> SAMPLER2DARRAYSHADOW ISAMPLER2D ISAMPLER3D ISAMPLERCUBE
|
||||||
%token <lex> ISAMPLER2DARRAY USAMPLER2D USAMPLER3D
|
%token <lex> ISAMPLER2DARRAY USAMPLER2D USAMPLER3D
|
||||||
%token <lex> USAMPLERCUBE USAMPLER2DARRAY
|
%token <lex> USAMPLERCUBE USAMPLER2DARRAY
|
||||||
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
|
|
||||||
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
|
// separate image/sampler
|
||||||
|
%token <lex> SAMPLER SAMPLERSHADOW
|
||||||
|
%token <lex> TEXTURE2D TEXTURE3D TEXTURECUBE TEXTURE2DARRAY
|
||||||
|
%token <lex> ITEXTURE2D ITEXTURE3D ITEXTURECUBE ITEXTURE2DARRAY
|
||||||
|
%token <lex> UTEXTURE2D UTEXTURE3D UTEXTURECUBE UTEXTURE2DARRAY
|
||||||
|
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
|
||||||
@ -203,6 +207,8 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
|
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
|
||||||
|
|
||||||
// combined image/sampler
|
// combined image/sampler
|
||||||
|
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
|
||||||
|
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
|
||||||
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
|
||||||
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
|
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
|
||||||
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
|
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
|
||||||
@ -233,18 +239,12 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
|
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
|
||||||
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
|
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
|
||||||
|
|
||||||
// pure sampler
|
|
||||||
%token <lex> SAMPLER SAMPLERSHADOW
|
|
||||||
|
|
||||||
// texture without sampler
|
// texture without sampler
|
||||||
%token <lex> TEXTURE1D TEXTURE2D TEXTURE3D TEXTURECUBE
|
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
|
||||||
%token <lex> TEXTURE1DARRAY TEXTURE2DARRAY
|
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
|
||||||
%token <lex> ITEXTURE1D ITEXTURE2D ITEXTURE3D ITEXTURECUBE
|
%token <lex> TEXTURE1DARRAY ITEXTURE1DARRAY UTEXTURE1DARRAY
|
||||||
%token <lex> ITEXTURE1DARRAY ITEXTURE2DARRAY UTEXTURE1D UTEXTURE2D UTEXTURE3D
|
|
||||||
%token <lex> UTEXTURECUBE UTEXTURE1DARRAY UTEXTURE2DARRAY
|
|
||||||
%token <lex> TEXTURE2DRECT ITEXTURE2DRECT UTEXTURE2DRECT
|
%token <lex> TEXTURE2DRECT ITEXTURE2DRECT UTEXTURE2DRECT
|
||||||
%token <lex> TEXTUREBUFFER ITEXTUREBUFFER UTEXTUREBUFFER
|
%token <lex> TEXTUREBUFFER ITEXTUREBUFFER UTEXTUREBUFFER
|
||||||
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
|
|
||||||
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
|
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
|
||||||
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
|
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
|
||||||
|
|
||||||
@ -2354,6 +2354,16 @@ GLSLANG_WEB_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, EsdCube, false, true);
|
$$.sampler.set(EbtFloat, EsdCube, false, true);
|
||||||
}
|
}
|
||||||
|
| SAMPLER2DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat, Esd2D, true);
|
||||||
|
}
|
||||||
|
| SAMPLER2DARRAYSHADOW {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtFloat, Esd2D, true, true);
|
||||||
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
| SAMPLER1DSHADOW {
|
| SAMPLER1DSHADOW {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2370,17 +2380,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, Esd1D, true, true);
|
$$.sampler.set(EbtFloat, Esd1D, true, true);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
|
||||||
| SAMPLER2DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat, Esd2D, true);
|
|
||||||
}
|
|
||||||
| SAMPLER2DARRAYSHADOW {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtFloat, Esd2D, true, true);
|
|
||||||
}
|
|
||||||
| SAMPLERCUBEARRAY {
|
| SAMPLERCUBEARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2391,7 +2390,6 @@ GLSLANG_WEB_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtFloat, EsdCube, true, true);
|
$$.sampler.set(EbtFloat, EsdCube, true, true);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
|
||||||
| F16SAMPLER1D {
|
| F16SAMPLER1D {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2491,30 +2489,11 @@ GLSLANG_WEB_EXCLUDE_OFF
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtInt, EsdCube);
|
$$.sampler.set(EbtInt, EsdCube);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
|
||||||
| ISAMPLER1DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtInt, Esd1D, true);
|
|
||||||
}
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
|
||||||
| ISAMPLER2DARRAY {
|
| ISAMPLER2DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtInt, Esd2D, true);
|
$$.sampler.set(EbtInt, Esd2D, true);
|
||||||
}
|
}
|
||||||
| ISAMPLERCUBEARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtInt, EsdCube, true);
|
|
||||||
}
|
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
|
||||||
| USAMPLER1D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.set(EbtUint, Esd1D);
|
|
||||||
}
|
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
|
||||||
| USAMPLER2D {
|
| USAMPLER2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2531,21 +2510,121 @@ GLSLANG_WEB_EXCLUDE_OFF
|
|||||||
$$.sampler.set(EbtUint, EsdCube);
|
$$.sampler.set(EbtUint, EsdCube);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
|
| ISAMPLER1DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtInt, Esd1D, true);
|
||||||
|
}
|
||||||
|
| ISAMPLERCUBEARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtInt, EsdCube, true);
|
||||||
|
}
|
||||||
|
| USAMPLER1D {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtUint, Esd1D);
|
||||||
|
}
|
||||||
| USAMPLER1DARRAY {
|
| USAMPLER1DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtUint, Esd1D, true);
|
$$.sampler.set(EbtUint, Esd1D, true);
|
||||||
}
|
}
|
||||||
|
| USAMPLERCUBEARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.set(EbtUint, EsdCube, true);
|
||||||
|
}
|
||||||
|
| TEXTURECUBEARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, EsdCube, true);
|
||||||
|
}
|
||||||
|
| ITEXTURECUBEARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, EsdCube, true);
|
||||||
|
}
|
||||||
|
| UTEXTURECUBEARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, EsdCube, true);
|
||||||
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_OFF
|
GLSLANG_WEB_EXCLUDE_OFF
|
||||||
| USAMPLER2DARRAY {
|
| USAMPLER2DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtUint, Esd2D, true);
|
$$.sampler.set(EbtUint, Esd2D, true);
|
||||||
}
|
}
|
||||||
| USAMPLERCUBEARRAY {
|
| TEXTURE2D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtUint, EsdCube, true);
|
$$.sampler.setTexture(EbtFloat, Esd2D);
|
||||||
|
}
|
||||||
|
| TEXTURE3D {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, Esd3D);
|
||||||
|
}
|
||||||
|
| TEXTURE2DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, Esd2D, true);
|
||||||
|
}
|
||||||
|
| TEXTURECUBE {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtFloat, EsdCube);
|
||||||
|
}
|
||||||
|
| ITEXTURE2D {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, Esd2D);
|
||||||
|
}
|
||||||
|
| ITEXTURE3D {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, Esd3D);
|
||||||
|
}
|
||||||
|
| ITEXTURECUBE {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, EsdCube);
|
||||||
|
}
|
||||||
|
| ITEXTURE2DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtInt, Esd2D, true);
|
||||||
|
}
|
||||||
|
| UTEXTURE2D {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, Esd2D);
|
||||||
|
}
|
||||||
|
| UTEXTURE3D {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, Esd3D);
|
||||||
|
}
|
||||||
|
| UTEXTURECUBE {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, EsdCube);
|
||||||
|
}
|
||||||
|
| UTEXTURE2DARRAY {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setTexture(EbtUint, Esd2D, true);
|
||||||
|
}
|
||||||
|
| SAMPLER {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setPureSampler(false);
|
||||||
|
}
|
||||||
|
| SAMPLERSHADOW {
|
||||||
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
|
$$.basicType = EbtSampler;
|
||||||
|
$$.sampler.setPureSampler(true);
|
||||||
}
|
}
|
||||||
GLSLANG_WEB_EXCLUDE_ON
|
GLSLANG_WEB_EXCLUDE_ON
|
||||||
| SAMPLER2DRECT {
|
| SAMPLER2DRECT {
|
||||||
@ -2643,16 +2722,6 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.set(EbtUint, Esd2D, true, false, true);
|
$$.sampler.set(EbtUint, Esd2D, true, false, true);
|
||||||
}
|
}
|
||||||
| SAMPLER {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setPureSampler(false);
|
|
||||||
}
|
|
||||||
| SAMPLERSHADOW {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setPureSampler(true);
|
|
||||||
}
|
|
||||||
| TEXTURE1D {
|
| TEXTURE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
@ -2664,33 +2733,18 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd1D);
|
$$.sampler.setTexture(EbtFloat16, Esd1D);
|
||||||
}
|
}
|
||||||
| TEXTURE2D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, Esd2D);
|
|
||||||
}
|
|
||||||
| F16TEXTURE2D {
|
| F16TEXTURE2D {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd2D);
|
$$.sampler.setTexture(EbtFloat16, Esd2D);
|
||||||
}
|
}
|
||||||
| TEXTURE3D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, Esd3D);
|
|
||||||
}
|
|
||||||
| F16TEXTURE3D {
|
| F16TEXTURE3D {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd3D);
|
$$.sampler.setTexture(EbtFloat16, Esd3D);
|
||||||
}
|
}
|
||||||
| TEXTURECUBE {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, EsdCube);
|
|
||||||
}
|
|
||||||
| F16TEXTURECUBE {
|
| F16TEXTURECUBE {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2708,22 +2762,12 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd1D, true);
|
$$.sampler.setTexture(EbtFloat16, Esd1D, true);
|
||||||
}
|
}
|
||||||
| TEXTURE2DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, Esd2D, true);
|
|
||||||
}
|
|
||||||
| F16TEXTURE2DARRAY {
|
| F16TEXTURE2DARRAY {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtFloat16, Esd2D, true);
|
$$.sampler.setTexture(EbtFloat16, Esd2D, true);
|
||||||
}
|
}
|
||||||
| TEXTURECUBEARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtFloat, EsdCube, true);
|
|
||||||
}
|
|
||||||
| F16TEXTURECUBEARRAY {
|
| F16TEXTURECUBEARRAY {
|
||||||
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
@ -2735,71 +2779,21 @@ GLSLANG_WEB_EXCLUDE_ON
|
|||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtInt, Esd1D);
|
$$.sampler.setTexture(EbtInt, Esd1D);
|
||||||
}
|
}
|
||||||
| ITEXTURE2D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, Esd2D);
|
|
||||||
}
|
|
||||||
| ITEXTURE3D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, Esd3D);
|
|
||||||
}
|
|
||||||
| ITEXTURECUBE {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, EsdCube);
|
|
||||||
}
|
|
||||||
| ITEXTURE1DARRAY {
|
| ITEXTURE1DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtInt, Esd1D, true);
|
$$.sampler.setTexture(EbtInt, Esd1D, true);
|
||||||
}
|
}
|
||||||
| ITEXTURE2DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, Esd2D, true);
|
|
||||||
}
|
|
||||||
| ITEXTURECUBEARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtInt, EsdCube, true);
|
|
||||||
}
|
|
||||||
| UTEXTURE1D {
|
| UTEXTURE1D {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtUint, Esd1D);
|
$$.sampler.setTexture(EbtUint, Esd1D);
|
||||||
}
|
}
|
||||||
| UTEXTURE2D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, Esd2D);
|
|
||||||
}
|
|
||||||
| UTEXTURE3D {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, Esd3D);
|
|
||||||
}
|
|
||||||
| UTEXTURECUBE {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, EsdCube);
|
|
||||||
}
|
|
||||||
| UTEXTURE1DARRAY {
|
| UTEXTURE1DARRAY {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
$$.sampler.setTexture(EbtUint, Esd1D, true);
|
$$.sampler.setTexture(EbtUint, Esd1D, true);
|
||||||
}
|
}
|
||||||
| UTEXTURE2DARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, Esd2D, true);
|
|
||||||
}
|
|
||||||
| UTEXTURECUBEARRAY {
|
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
|
||||||
$$.basicType = EbtSampler;
|
|
||||||
$$.sampler.setTexture(EbtUint, EsdCube, true);
|
|
||||||
}
|
|
||||||
| TEXTURE2DRECT {
|
| TEXTURE2DRECT {
|
||||||
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
|
||||||
$$.basicType = EbtSampler;
|
$$.basicType = EbtSampler;
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -89,370 +89,102 @@ extern int yydebug;
|
|||||||
USAMPLER3D = 299,
|
USAMPLER3D = 299,
|
||||||
USAMPLERCUBE = 300,
|
USAMPLERCUBE = 300,
|
||||||
USAMPLER2DARRAY = 301,
|
USAMPLER2DARRAY = 301,
|
||||||
SAMPLERCUBEARRAY = 302,
|
SAMPLER = 302,
|
||||||
SAMPLERCUBEARRAYSHADOW = 303,
|
SAMPLERSHADOW = 303,
|
||||||
ISAMPLERCUBEARRAY = 304,
|
TEXTURE2D = 304,
|
||||||
USAMPLERCUBEARRAY = 305,
|
TEXTURE3D = 305,
|
||||||
ATTRIBUTE = 306,
|
TEXTURECUBE = 306,
|
||||||
VARYING = 307,
|
TEXTURE2DARRAY = 307,
|
||||||
FLOAT16_T = 308,
|
ITEXTURE2D = 308,
|
||||||
FLOAT32_T = 309,
|
ITEXTURE3D = 309,
|
||||||
DOUBLE = 310,
|
ITEXTURECUBE = 310,
|
||||||
FLOAT64_T = 311,
|
ITEXTURE2DARRAY = 311,
|
||||||
INT64_T = 312,
|
UTEXTURE2D = 312,
|
||||||
UINT64_T = 313,
|
UTEXTURE3D = 313,
|
||||||
INT32_T = 314,
|
UTEXTURECUBE = 314,
|
||||||
UINT32_T = 315,
|
UTEXTURE2DARRAY = 315,
|
||||||
INT16_T = 316,
|
LEFT_OP = 316,
|
||||||
UINT16_T = 317,
|
RIGHT_OP = 317,
|
||||||
INT8_T = 318,
|
INC_OP = 318,
|
||||||
UINT8_T = 319,
|
DEC_OP = 319,
|
||||||
I64VEC2 = 320,
|
LE_OP = 320,
|
||||||
I64VEC3 = 321,
|
GE_OP = 321,
|
||||||
I64VEC4 = 322,
|
EQ_OP = 322,
|
||||||
U64VEC2 = 323,
|
NE_OP = 323,
|
||||||
U64VEC3 = 324,
|
AND_OP = 324,
|
||||||
U64VEC4 = 325,
|
OR_OP = 325,
|
||||||
I32VEC2 = 326,
|
XOR_OP = 326,
|
||||||
I32VEC3 = 327,
|
MUL_ASSIGN = 327,
|
||||||
I32VEC4 = 328,
|
DIV_ASSIGN = 328,
|
||||||
U32VEC2 = 329,
|
ADD_ASSIGN = 329,
|
||||||
U32VEC3 = 330,
|
MOD_ASSIGN = 330,
|
||||||
U32VEC4 = 331,
|
LEFT_ASSIGN = 331,
|
||||||
I16VEC2 = 332,
|
RIGHT_ASSIGN = 332,
|
||||||
I16VEC3 = 333,
|
AND_ASSIGN = 333,
|
||||||
I16VEC4 = 334,
|
XOR_ASSIGN = 334,
|
||||||
U16VEC2 = 335,
|
OR_ASSIGN = 335,
|
||||||
U16VEC3 = 336,
|
SUB_ASSIGN = 336,
|
||||||
U16VEC4 = 337,
|
LEFT_PAREN = 337,
|
||||||
I8VEC2 = 338,
|
RIGHT_PAREN = 338,
|
||||||
I8VEC3 = 339,
|
LEFT_BRACKET = 339,
|
||||||
I8VEC4 = 340,
|
RIGHT_BRACKET = 340,
|
||||||
U8VEC2 = 341,
|
LEFT_BRACE = 341,
|
||||||
U8VEC3 = 342,
|
RIGHT_BRACE = 342,
|
||||||
U8VEC4 = 343,
|
DOT = 343,
|
||||||
DVEC2 = 344,
|
COMMA = 344,
|
||||||
DVEC3 = 345,
|
COLON = 345,
|
||||||
DVEC4 = 346,
|
EQUAL = 346,
|
||||||
DMAT2 = 347,
|
SEMICOLON = 347,
|
||||||
DMAT3 = 348,
|
BANG = 348,
|
||||||
DMAT4 = 349,
|
DASH = 349,
|
||||||
F16VEC2 = 350,
|
TILDE = 350,
|
||||||
F16VEC3 = 351,
|
PLUS = 351,
|
||||||
F16VEC4 = 352,
|
STAR = 352,
|
||||||
F16MAT2 = 353,
|
SLASH = 353,
|
||||||
F16MAT3 = 354,
|
PERCENT = 354,
|
||||||
F16MAT4 = 355,
|
LEFT_ANGLE = 355,
|
||||||
F32VEC2 = 356,
|
RIGHT_ANGLE = 356,
|
||||||
F32VEC3 = 357,
|
VERTICAL_BAR = 357,
|
||||||
F32VEC4 = 358,
|
CARET = 358,
|
||||||
F32MAT2 = 359,
|
AMPERSAND = 359,
|
||||||
F32MAT3 = 360,
|
QUESTION = 360,
|
||||||
F32MAT4 = 361,
|
INVARIANT = 361,
|
||||||
F64VEC2 = 362,
|
HIGH_PRECISION = 362,
|
||||||
F64VEC3 = 363,
|
MEDIUM_PRECISION = 363,
|
||||||
F64VEC4 = 364,
|
LOW_PRECISION = 364,
|
||||||
F64MAT2 = 365,
|
PRECISION = 365,
|
||||||
F64MAT3 = 366,
|
PACKED = 366,
|
||||||
F64MAT4 = 367,
|
RESOURCE = 367,
|
||||||
DMAT2X2 = 368,
|
SUPERP = 368,
|
||||||
DMAT2X3 = 369,
|
FLOATCONSTANT = 369,
|
||||||
DMAT2X4 = 370,
|
INTCONSTANT = 370,
|
||||||
DMAT3X2 = 371,
|
UINTCONSTANT = 371,
|
||||||
DMAT3X3 = 372,
|
BOOLCONSTANT = 372,
|
||||||
DMAT3X4 = 373,
|
IDENTIFIER = 373,
|
||||||
DMAT4X2 = 374,
|
TYPE_NAME = 374,
|
||||||
DMAT4X3 = 375,
|
CENTROID = 375,
|
||||||
DMAT4X4 = 376,
|
IN = 376,
|
||||||
F16MAT2X2 = 377,
|
OUT = 377,
|
||||||
F16MAT2X3 = 378,
|
INOUT = 378,
|
||||||
F16MAT2X4 = 379,
|
STRUCT = 379,
|
||||||
F16MAT3X2 = 380,
|
VOID = 380,
|
||||||
F16MAT3X3 = 381,
|
WHILE = 381,
|
||||||
F16MAT3X4 = 382,
|
BREAK = 382,
|
||||||
F16MAT4X2 = 383,
|
CONTINUE = 383,
|
||||||
F16MAT4X3 = 384,
|
DO = 384,
|
||||||
F16MAT4X4 = 385,
|
ELSE = 385,
|
||||||
F32MAT2X2 = 386,
|
FOR = 386,
|
||||||
F32MAT2X3 = 387,
|
IF = 387,
|
||||||
F32MAT2X4 = 388,
|
DISCARD = 388,
|
||||||
F32MAT3X2 = 389,
|
RETURN = 389,
|
||||||
F32MAT3X3 = 390,
|
SWITCH = 390,
|
||||||
F32MAT3X4 = 391,
|
CASE = 391,
|
||||||
F32MAT4X2 = 392,
|
DEFAULT = 392,
|
||||||
F32MAT4X3 = 393,
|
UNIFORM = 393,
|
||||||
F32MAT4X4 = 394,
|
SHARED = 394,
|
||||||
F64MAT2X2 = 395,
|
FLAT = 395,
|
||||||
F64MAT2X3 = 396,
|
SMOOTH = 396,
|
||||||
F64MAT2X4 = 397,
|
LAYOUT = 397
|
||||||
F64MAT3X2 = 398,
|
|
||||||
F64MAT3X3 = 399,
|
|
||||||
F64MAT3X4 = 400,
|
|
||||||
F64MAT4X2 = 401,
|
|
||||||
F64MAT4X3 = 402,
|
|
||||||
F64MAT4X4 = 403,
|
|
||||||
ATOMIC_UINT = 404,
|
|
||||||
ACCSTRUCTNV = 405,
|
|
||||||
FCOOPMATNV = 406,
|
|
||||||
ICOOPMATNV = 407,
|
|
||||||
UCOOPMATNV = 408,
|
|
||||||
SAMPLER1D = 409,
|
|
||||||
SAMPLER1DARRAY = 410,
|
|
||||||
SAMPLER1DARRAYSHADOW = 411,
|
|
||||||
ISAMPLER1D = 412,
|
|
||||||
SAMPLER1DSHADOW = 413,
|
|
||||||
SAMPLER2DRECT = 414,
|
|
||||||
SAMPLER2DRECTSHADOW = 415,
|
|
||||||
ISAMPLER2DRECT = 416,
|
|
||||||
USAMPLER2DRECT = 417,
|
|
||||||
SAMPLERBUFFER = 418,
|
|
||||||
ISAMPLERBUFFER = 419,
|
|
||||||
USAMPLERBUFFER = 420,
|
|
||||||
SAMPLER2DMS = 421,
|
|
||||||
ISAMPLER2DMS = 422,
|
|
||||||
USAMPLER2DMS = 423,
|
|
||||||
SAMPLER2DMSARRAY = 424,
|
|
||||||
ISAMPLER2DMSARRAY = 425,
|
|
||||||
USAMPLER2DMSARRAY = 426,
|
|
||||||
SAMPLEREXTERNALOES = 427,
|
|
||||||
SAMPLEREXTERNAL2DY2YEXT = 428,
|
|
||||||
ISAMPLER1DARRAY = 429,
|
|
||||||
USAMPLER1D = 430,
|
|
||||||
USAMPLER1DARRAY = 431,
|
|
||||||
F16SAMPLER1D = 432,
|
|
||||||
F16SAMPLER2D = 433,
|
|
||||||
F16SAMPLER3D = 434,
|
|
||||||
F16SAMPLER2DRECT = 435,
|
|
||||||
F16SAMPLERCUBE = 436,
|
|
||||||
F16SAMPLER1DARRAY = 437,
|
|
||||||
F16SAMPLER2DARRAY = 438,
|
|
||||||
F16SAMPLERCUBEARRAY = 439,
|
|
||||||
F16SAMPLERBUFFER = 440,
|
|
||||||
F16SAMPLER2DMS = 441,
|
|
||||||
F16SAMPLER2DMSARRAY = 442,
|
|
||||||
F16SAMPLER1DSHADOW = 443,
|
|
||||||
F16SAMPLER2DSHADOW = 444,
|
|
||||||
F16SAMPLER1DARRAYSHADOW = 445,
|
|
||||||
F16SAMPLER2DARRAYSHADOW = 446,
|
|
||||||
F16SAMPLER2DRECTSHADOW = 447,
|
|
||||||
F16SAMPLERCUBESHADOW = 448,
|
|
||||||
F16SAMPLERCUBEARRAYSHADOW = 449,
|
|
||||||
IMAGE1D = 450,
|
|
||||||
IIMAGE1D = 451,
|
|
||||||
UIMAGE1D = 452,
|
|
||||||
IMAGE2D = 453,
|
|
||||||
IIMAGE2D = 454,
|
|
||||||
UIMAGE2D = 455,
|
|
||||||
IMAGE3D = 456,
|
|
||||||
IIMAGE3D = 457,
|
|
||||||
UIMAGE3D = 458,
|
|
||||||
IMAGE2DRECT = 459,
|
|
||||||
IIMAGE2DRECT = 460,
|
|
||||||
UIMAGE2DRECT = 461,
|
|
||||||
IMAGECUBE = 462,
|
|
||||||
IIMAGECUBE = 463,
|
|
||||||
UIMAGECUBE = 464,
|
|
||||||
IMAGEBUFFER = 465,
|
|
||||||
IIMAGEBUFFER = 466,
|
|
||||||
UIMAGEBUFFER = 467,
|
|
||||||
IMAGE1DARRAY = 468,
|
|
||||||
IIMAGE1DARRAY = 469,
|
|
||||||
UIMAGE1DARRAY = 470,
|
|
||||||
IMAGE2DARRAY = 471,
|
|
||||||
IIMAGE2DARRAY = 472,
|
|
||||||
UIMAGE2DARRAY = 473,
|
|
||||||
IMAGECUBEARRAY = 474,
|
|
||||||
IIMAGECUBEARRAY = 475,
|
|
||||||
UIMAGECUBEARRAY = 476,
|
|
||||||
IMAGE2DMS = 477,
|
|
||||||
IIMAGE2DMS = 478,
|
|
||||||
UIMAGE2DMS = 479,
|
|
||||||
IMAGE2DMSARRAY = 480,
|
|
||||||
IIMAGE2DMSARRAY = 481,
|
|
||||||
UIMAGE2DMSARRAY = 482,
|
|
||||||
F16IMAGE1D = 483,
|
|
||||||
F16IMAGE2D = 484,
|
|
||||||
F16IMAGE3D = 485,
|
|
||||||
F16IMAGE2DRECT = 486,
|
|
||||||
F16IMAGECUBE = 487,
|
|
||||||
F16IMAGE1DARRAY = 488,
|
|
||||||
F16IMAGE2DARRAY = 489,
|
|
||||||
F16IMAGECUBEARRAY = 490,
|
|
||||||
F16IMAGEBUFFER = 491,
|
|
||||||
F16IMAGE2DMS = 492,
|
|
||||||
F16IMAGE2DMSARRAY = 493,
|
|
||||||
SAMPLER = 494,
|
|
||||||
SAMPLERSHADOW = 495,
|
|
||||||
TEXTURE1D = 496,
|
|
||||||
TEXTURE2D = 497,
|
|
||||||
TEXTURE3D = 498,
|
|
||||||
TEXTURECUBE = 499,
|
|
||||||
TEXTURE1DARRAY = 500,
|
|
||||||
TEXTURE2DARRAY = 501,
|
|
||||||
ITEXTURE1D = 502,
|
|
||||||
ITEXTURE2D = 503,
|
|
||||||
ITEXTURE3D = 504,
|
|
||||||
ITEXTURECUBE = 505,
|
|
||||||
ITEXTURE1DARRAY = 506,
|
|
||||||
ITEXTURE2DARRAY = 507,
|
|
||||||
UTEXTURE1D = 508,
|
|
||||||
UTEXTURE2D = 509,
|
|
||||||
UTEXTURE3D = 510,
|
|
||||||
UTEXTURECUBE = 511,
|
|
||||||
UTEXTURE1DARRAY = 512,
|
|
||||||
UTEXTURE2DARRAY = 513,
|
|
||||||
TEXTURE2DRECT = 514,
|
|
||||||
ITEXTURE2DRECT = 515,
|
|
||||||
UTEXTURE2DRECT = 516,
|
|
||||||
TEXTUREBUFFER = 517,
|
|
||||||
ITEXTUREBUFFER = 518,
|
|
||||||
UTEXTUREBUFFER = 519,
|
|
||||||
TEXTURECUBEARRAY = 520,
|
|
||||||
ITEXTURECUBEARRAY = 521,
|
|
||||||
UTEXTURECUBEARRAY = 522,
|
|
||||||
TEXTURE2DMS = 523,
|
|
||||||
ITEXTURE2DMS = 524,
|
|
||||||
UTEXTURE2DMS = 525,
|
|
||||||
TEXTURE2DMSARRAY = 526,
|
|
||||||
ITEXTURE2DMSARRAY = 527,
|
|
||||||
UTEXTURE2DMSARRAY = 528,
|
|
||||||
F16TEXTURE1D = 529,
|
|
||||||
F16TEXTURE2D = 530,
|
|
||||||
F16TEXTURE3D = 531,
|
|
||||||
F16TEXTURE2DRECT = 532,
|
|
||||||
F16TEXTURECUBE = 533,
|
|
||||||
F16TEXTURE1DARRAY = 534,
|
|
||||||
F16TEXTURE2DARRAY = 535,
|
|
||||||
F16TEXTURECUBEARRAY = 536,
|
|
||||||
F16TEXTUREBUFFER = 537,
|
|
||||||
F16TEXTURE2DMS = 538,
|
|
||||||
F16TEXTURE2DMSARRAY = 539,
|
|
||||||
SUBPASSINPUT = 540,
|
|
||||||
SUBPASSINPUTMS = 541,
|
|
||||||
ISUBPASSINPUT = 542,
|
|
||||||
ISUBPASSINPUTMS = 543,
|
|
||||||
USUBPASSINPUT = 544,
|
|
||||||
USUBPASSINPUTMS = 545,
|
|
||||||
F16SUBPASSINPUT = 546,
|
|
||||||
F16SUBPASSINPUTMS = 547,
|
|
||||||
LEFT_OP = 548,
|
|
||||||
RIGHT_OP = 549,
|
|
||||||
INC_OP = 550,
|
|
||||||
DEC_OP = 551,
|
|
||||||
LE_OP = 552,
|
|
||||||
GE_OP = 553,
|
|
||||||
EQ_OP = 554,
|
|
||||||
NE_OP = 555,
|
|
||||||
AND_OP = 556,
|
|
||||||
OR_OP = 557,
|
|
||||||
XOR_OP = 558,
|
|
||||||
MUL_ASSIGN = 559,
|
|
||||||
DIV_ASSIGN = 560,
|
|
||||||
ADD_ASSIGN = 561,
|
|
||||||
MOD_ASSIGN = 562,
|
|
||||||
LEFT_ASSIGN = 563,
|
|
||||||
RIGHT_ASSIGN = 564,
|
|
||||||
AND_ASSIGN = 565,
|
|
||||||
XOR_ASSIGN = 566,
|
|
||||||
OR_ASSIGN = 567,
|
|
||||||
SUB_ASSIGN = 568,
|
|
||||||
LEFT_PAREN = 569,
|
|
||||||
RIGHT_PAREN = 570,
|
|
||||||
LEFT_BRACKET = 571,
|
|
||||||
RIGHT_BRACKET = 572,
|
|
||||||
LEFT_BRACE = 573,
|
|
||||||
RIGHT_BRACE = 574,
|
|
||||||
DOT = 575,
|
|
||||||
COMMA = 576,
|
|
||||||
COLON = 577,
|
|
||||||
EQUAL = 578,
|
|
||||||
SEMICOLON = 579,
|
|
||||||
BANG = 580,
|
|
||||||
DASH = 581,
|
|
||||||
TILDE = 582,
|
|
||||||
PLUS = 583,
|
|
||||||
STAR = 584,
|
|
||||||
SLASH = 585,
|
|
||||||
PERCENT = 586,
|
|
||||||
LEFT_ANGLE = 587,
|
|
||||||
RIGHT_ANGLE = 588,
|
|
||||||
VERTICAL_BAR = 589,
|
|
||||||
CARET = 590,
|
|
||||||
AMPERSAND = 591,
|
|
||||||
QUESTION = 592,
|
|
||||||
INVARIANT = 593,
|
|
||||||
HIGH_PRECISION = 594,
|
|
||||||
MEDIUM_PRECISION = 595,
|
|
||||||
LOW_PRECISION = 596,
|
|
||||||
PRECISION = 597,
|
|
||||||
PACKED = 598,
|
|
||||||
RESOURCE = 599,
|
|
||||||
SUPERP = 600,
|
|
||||||
FLOATCONSTANT = 601,
|
|
||||||
INTCONSTANT = 602,
|
|
||||||
UINTCONSTANT = 603,
|
|
||||||
BOOLCONSTANT = 604,
|
|
||||||
IDENTIFIER = 605,
|
|
||||||
TYPE_NAME = 606,
|
|
||||||
CENTROID = 607,
|
|
||||||
IN = 608,
|
|
||||||
OUT = 609,
|
|
||||||
INOUT = 610,
|
|
||||||
STRUCT = 611,
|
|
||||||
VOID = 612,
|
|
||||||
WHILE = 613,
|
|
||||||
BREAK = 614,
|
|
||||||
CONTINUE = 615,
|
|
||||||
DO = 616,
|
|
||||||
ELSE = 617,
|
|
||||||
FOR = 618,
|
|
||||||
IF = 619,
|
|
||||||
DISCARD = 620,
|
|
||||||
RETURN = 621,
|
|
||||||
SWITCH = 622,
|
|
||||||
CASE = 623,
|
|
||||||
DEFAULT = 624,
|
|
||||||
UNIFORM = 625,
|
|
||||||
SHARED = 626,
|
|
||||||
FLAT = 627,
|
|
||||||
SMOOTH = 628,
|
|
||||||
LAYOUT = 629,
|
|
||||||
DOUBLECONSTANT = 630,
|
|
||||||
INT16CONSTANT = 631,
|
|
||||||
UINT16CONSTANT = 632,
|
|
||||||
FLOAT16CONSTANT = 633,
|
|
||||||
INT32CONSTANT = 634,
|
|
||||||
UINT32CONSTANT = 635,
|
|
||||||
INT64CONSTANT = 636,
|
|
||||||
UINT64CONSTANT = 637,
|
|
||||||
SUBROUTINE = 638,
|
|
||||||
DEMOTE = 639,
|
|
||||||
PAYLOADNV = 640,
|
|
||||||
PAYLOADINNV = 641,
|
|
||||||
HITATTRNV = 642,
|
|
||||||
CALLDATANV = 643,
|
|
||||||
CALLDATAINNV = 644,
|
|
||||||
PATCH = 645,
|
|
||||||
SAMPLE = 646,
|
|
||||||
BUFFER = 647,
|
|
||||||
NONUNIFORM = 648,
|
|
||||||
COHERENT = 649,
|
|
||||||
VOLATILE = 650,
|
|
||||||
RESTRICT = 651,
|
|
||||||
READONLY = 652,
|
|
||||||
WRITEONLY = 653,
|
|
||||||
DEVICECOHERENT = 654,
|
|
||||||
QUEUEFAMILYCOHERENT = 655,
|
|
||||||
WORKGROUPCOHERENT = 656,
|
|
||||||
SUBGROUPCOHERENT = 657,
|
|
||||||
NONPRIVATE = 658,
|
|
||||||
NOPERSPECTIVE = 659,
|
|
||||||
EXPLICITINTERPAMD = 660,
|
|
||||||
PERVERTEXNV = 661,
|
|
||||||
PERPRIMITIVENV = 662,
|
|
||||||
PERVIEWNV = 663,
|
|
||||||
PERTASKNV = 664,
|
|
||||||
PRECISE = 665
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -497,7 +229,7 @@ union YYSTYPE
|
|||||||
glslang::TArraySizes* typeParameters;
|
glslang::TArraySizes* typeParameters;
|
||||||
} interm;
|
} interm;
|
||||||
|
|
||||||
#line 501 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */
|
#line 233 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef union YYSTYPE YYSTYPE;
|
typedef union YYSTYPE YYSTYPE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user