Commit eceb50d3 by Nicolas Capens Committed by Shannon Woods

Add array texture intrinsics to the symbol table.

TRAC #23377 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Nicolas Capens
parent f4cb0e12
...@@ -44,14 +44,17 @@ enum TBasicType ...@@ -44,14 +44,17 @@ enum TBasicType
EbtSampler2D, EbtSampler2D,
EbtSampler3D, EbtSampler3D,
EbtSamplerCube, EbtSamplerCube,
EbtSampler2DArray,
EbtSamplerExternalOES, // Only valid if OES_EGL_image_external exists. EbtSamplerExternalOES, // Only valid if OES_EGL_image_external exists.
EbtSampler2DRect, // Only valid if GL_ARB_texture_rectangle exists. EbtSampler2DRect, // Only valid if GL_ARB_texture_rectangle exists.
EbtISampler2D, EbtISampler2D,
EbtISampler3D, EbtISampler3D,
EbtISamplerCube, EbtISamplerCube,
EbtISampler2DArray,
EbtUSampler2D, EbtUSampler2D,
EbtUSampler3D, EbtUSampler3D,
EbtUSamplerCube, EbtUSamplerCube,
EbtUSampler2DArray,
EbtGuardSamplerEnd, // non type: see implementation of IsSampler() EbtGuardSamplerEnd, // non type: see implementation of IsSampler()
EbtStruct, EbtStruct,
EbtInterfaceBlock, EbtInterfaceBlock,
......
...@@ -386,6 +386,7 @@ void InsertBuiltInFunctions(ShShaderType type, ShShaderSpec spec, const ShBuiltI ...@@ -386,6 +386,7 @@ void InsertBuiltInFunctions(ShShaderType type, ShShaderSpec spec, const ShBuiltI
} }
TType *sampler3D = new TType(EbtSampler3D, EbpUndefined, EvqGlobal, 1); TType *sampler3D = new TType(EbtSampler3D, EbpUndefined, EvqGlobal, 1);
TType *sampler2DArray = new TType(EbtSampler2DArray, EbpUndefined, EvqGlobal, 1);
// //
// Texture Functions for GLSL ES 3.0 // Texture Functions for GLSL ES 3.0
...@@ -393,6 +394,7 @@ void InsertBuiltInFunctions(ShShaderType type, ShShaderSpec spec, const ShBuiltI ...@@ -393,6 +394,7 @@ void InsertBuiltInFunctions(ShShaderType type, ShShaderSpec spec, const ShBuiltI
symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "texture", sampler2D, "sampler", float2, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "texture", sampler2D, "sampler", float2, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "texture", sampler3D, "sampler", float3, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "texture", sampler3D, "sampler", float3, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "texture", samplerCube, "sampler", float3, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "texture", samplerCube, "sampler", float3, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "texture", sampler2DArray, "sampler", float3, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "textureProj", sampler2D, "sampler", float3, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "textureProj", sampler2D, "sampler", float3, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "textureProj", sampler2D, "sampler", float4, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "textureProj", sampler2D, "sampler", float4, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "textureProj", sampler3D, "sampler", float4, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, float4, "textureProj", sampler3D, "sampler", float4, "coord");
...@@ -400,10 +402,12 @@ void InsertBuiltInFunctions(ShShaderType type, ShShaderSpec spec, const ShBuiltI ...@@ -400,10 +402,12 @@ void InsertBuiltInFunctions(ShShaderType type, ShShaderSpec spec, const ShBuiltI
TType *isampler2D = new TType(EbtISampler2D, EbpUndefined, EvqGlobal, 1); TType *isampler2D = new TType(EbtISampler2D, EbpUndefined, EvqGlobal, 1);
TType *isampler3D = new TType(EbtISampler3D, EbpUndefined, EvqGlobal, 1); TType *isampler3D = new TType(EbtISampler3D, EbpUndefined, EvqGlobal, 1);
TType *isamplerCube = new TType(EbtISamplerCube, EbpUndefined, EvqGlobal, 1); TType *isamplerCube = new TType(EbtISamplerCube, EbpUndefined, EvqGlobal, 1);
TType *isampler2DArray = new TType(EbtISampler2DArray, EbpUndefined, EvqGlobal, 1);
symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "texture", isampler2D, "sampler", float2, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "texture", isampler2D, "sampler", float2, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "texture", isampler3D, "sampler", float3, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "texture", isampler3D, "sampler", float3, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "texture", isamplerCube, "sampler", float3, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "texture", isamplerCube, "sampler", float3, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "texture", isampler2DArray, "sampler", float3, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "textureProj", isampler2D, "sampler", float3, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "textureProj", isampler2D, "sampler", float3, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "textureProj", isampler2D, "sampler", float4, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "textureProj", isampler2D, "sampler", float4, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "textureProj", isampler3D, "sampler", float4, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, int4, "textureProj", isampler3D, "sampler", float4, "coord");
...@@ -411,11 +415,13 @@ void InsertBuiltInFunctions(ShShaderType type, ShShaderSpec spec, const ShBuiltI ...@@ -411,11 +415,13 @@ void InsertBuiltInFunctions(ShShaderType type, ShShaderSpec spec, const ShBuiltI
TType *usampler2D = new TType(EbtUSampler2D, EbpUndefined, EvqGlobal, 1); TType *usampler2D = new TType(EbtUSampler2D, EbpUndefined, EvqGlobal, 1);
TType *usampler3D = new TType(EbtUSampler3D, EbpUndefined, EvqGlobal, 1); TType *usampler3D = new TType(EbtUSampler3D, EbpUndefined, EvqGlobal, 1);
TType *usamplerCube = new TType(EbtUSamplerCube, EbpUndefined, EvqGlobal, 1); TType *usamplerCube = new TType(EbtUSamplerCube, EbpUndefined, EvqGlobal, 1);
TType *usampler2DArray = new TType(EbtUSampler2DArray, EbpUndefined, EvqGlobal, 1);
TType *uint4 = new TType(EbtUInt, EbpUndefined, EvqGlobal, 4); TType *uint4 = new TType(EbtUInt, EbpUndefined, EvqGlobal, 4);
symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "texture", usampler2D, "sampler", float2, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "texture", usampler2D, "sampler", float2, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "texture", usampler3D, "sampler", float3, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "texture", usampler3D, "sampler", float3, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "texture", usamplerCube, "sampler", float3, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "texture", usamplerCube, "sampler", float3, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "texture", usampler2DArray, "sampler", float3, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "textureProj", usampler2D, "sampler", float3, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "textureProj", usampler2D, "sampler", float3, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "textureProj", usampler2D, "sampler", float4, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "textureProj", usampler2D, "sampler", float4, "coord");
symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "textureProj", usampler3D, "sampler", float4, "coord"); symbolTable.insertBuiltIn(ESSL3_BUILTINS, uint4, "textureProj", usampler3D, "sampler", float4, "coord");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment