Add memory qualifiers (coherent volatile restrict) to imageSize(), imageLoad(), imageStore(), atomic*(), and imageAtomic*(), to remove errors about dropping qualifiers.

Several bugs are related to this, and this is a slightly speculative fix, bit it is certainly wrong to either do it the way it was or to reflect the current specifications.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@28968 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich
2014-11-17 16:45:10 +00:00
parent 6ab7bf20f0
commit c47175c7bb
3 changed files with 157 additions and 101 deletions

View File

@@ -62,7 +62,11 @@ void foo23()
layout(binding=3) uniform sampler2D s1;
layout(binding=3) uniform sampler2D s2; // ERROR: overlapping bindings? Don't see that in the 310 spec.
layout(binding=2) uniform writeonly image2D i2D;
layout(binding=2) uniform writeonly image2D i2D;
layout(binding=4) uniform readonly image3D i3D;
layout(binding=5) uniform imageCube iCube;
layout(binding=6) uniform image2DArray i2DA;
layout(binding=6) uniform coherent volatile restrict image2D i2Dqualified;
layout(binding = 1) uniform bb {
int foo;
@@ -97,6 +101,10 @@ void foots()
highp ivec3 v3 = textureSize(isamp2DA, 3);
v2 = textureSize(s2dms);
v2 = imageSize(i2D);
v3 = imageSize(i3D);
v2 = imageSize(iCube);
v3 = imageSize(i2DA);
v2 = imageSize(i2Dqualified);
}
out bool bout; // ERROR