Skip to content
Snippets Groups Projects
Commit eebed6f6 authored by John Kessenich's avatar John Kessenich
Browse files

Disallow variable indexing into sampler array for ES and desktop before version 400.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22148 e7fa87d3-cd2b-0410-9028-fcbf551c1848
parent 01fc0645
No related branches found
No related tags found
No related merge requests found
......@@ -48,6 +48,8 @@ in S2 s2;
out vec3 sc;
out float sf;
uniform sampler2D arrayedSampler[5];
void main()
{
float f;
......@@ -57,13 +59,14 @@ void main()
v = textureLod(s2DArray, c3D, 1.2);
f = textureOffset(s2DShadow, c3D, ic2D, c1D);
v = texelFetch(s3D, ic3D, ic1D);
v = texelFetchOffset(s2D, ic2D, 4, ic2D);
v = texelFetchOffset(arrayedSampler[2], ic2D, 4, ic2D);
f = textureLodOffset(s2DShadow, c3D, c1D, ic2D);
v = textureProjLodOffset(s2D, c3D, c1D, ic2D);
v = textureGrad(sCube, c3D, c3D, c3D);
f = textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ic2D);
v = textureProjGrad(s3D, c4D, c3D, c3D);
v = textureProjGradOffset(s2D, c3D, c2D, c2D, ic2D);
v = texture(arrayedSampler[ic1D], c2D); // ERROR
ivec4 iv;
iv = texture(is2D, c2D);
......
#version 330 core
in vec2 c2D;
flat in int i;
uniform sampler2D arrayedSampler[5];
void main()
{
vec4 v;
v = texture(arrayedSampler[i], c2D);
}
......@@ -39,5 +39,6 @@ uint.frag
switch.frag
tokenLength.vert
300scope.vert
400.frag
420.vert
430scope.vert
......@@ -309,6 +309,10 @@ postfix_expression
parseContext.error($2.line, "", "[", "array must be redeclared with a size before being indexed with a variable");
if ($1->getBasicType() == EbtBlock)
parseContext.requireProfile($1->getLine(), static_cast<EProfileMask>(~EEsProfileMask), "variable indexing block array");
if ($1->getBasicType() == EbtSampler) {
parseContext.requireProfile($1->getLine(), static_cast<EProfileMask>(ECoreProfileMask | ECompatibilityProfileMask), "variable indexing sampler array");
parseContext.profileRequires($1->getLine(), ECoreProfile, 400, 0, "variable indexing sampler array");
}
$$ = parseContext.intermediate.addIndex(EOpIndexIndirect, $1, $3, $2.line);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment