Commit 2b0a1135 by John Kessenich

Fix two multi-sample bugs: 1) include MS in name mangling, 2) add 'sample'…

Fix two multi-sample bugs: 1) include MS in name mangling, 2) add 'sample' argument texelFetch(*MS*,...).
parent dc9eff72
......@@ -285,7 +285,7 @@ ERROR: node is still EOpNull!
0:101 3 (const int)
0:102 move second child to first child (temp highp 2-component vector of int)
0:102 'v2' (temp highp 2-component vector of int)
0:102 Function Call: textureSize(s21; (global highp 2-component vector of int)
0:102 Function Call: textureSize(s2M1; (global highp 2-component vector of int)
0:102 's2dms' (uniform highp sampler2DMS)
0:103 move second child to first child (temp highp 2-component vector of int)
0:103 'v2' (temp highp 2-component vector of int)
......@@ -774,7 +774,7 @@ ERROR: node is still EOpNull!
0:101 3 (const int)
0:102 move second child to first child (temp highp 2-component vector of int)
0:102 'v2' (temp highp 2-component vector of int)
0:102 Function Call: textureSize(s21; (global highp 2-component vector of int)
0:102 Function Call: textureSize(s2M1; (global highp 2-component vector of int)
0:102 's2dms' (uniform highp sampler2DMS)
0:103 move second child to first child (temp highp 2-component vector of int)
0:103 'v2' (temp highp 2-component vector of int)
......
......@@ -211,16 +211,16 @@ ERROR: node is still EOpNull!
0:? Sequence
0:63 move second child to first child (temp highp 2-component vector of int)
0:63 'v2' (temp highp 2-component vector of int)
0:63 Function Call: textureSize(s21; (global highp 2-component vector of int)
0:63 Function Call: textureSize(s2M1; (global highp 2-component vector of int)
0:63 's2dms' (uniform highp sampler2DMS)
0:64 move second child to first child (temp highp 2-component vector of int)
0:64 'v2' (temp highp 2-component vector of int)
0:64 Function Call: textureSize(us21; (global highp 2-component vector of int)
0:64 Function Call: textureSize(us2M1; (global highp 2-component vector of int)
0:64 'us2dms' (uniform highp usampler2DMS)
0:65 Sequence
0:65 move second child to first child (temp highp 4-component vector of float)
0:65 'v4' (temp highp 4-component vector of float)
0:65 Function Call: texelFetch(s21;vi2;i1; (global highp 4-component vector of float)
0:65 Function Call: texelFetch(s2M1;vi2;i1; (global highp 4-component vector of float)
0:65 's2dms' (uniform highp sampler2DMS)
0:65 'v2' (temp highp 2-component vector of int)
0:65 Constant:
......@@ -228,7 +228,7 @@ ERROR: node is still EOpNull!
0:66 Sequence
0:66 move second child to first child (temp highp 4-component vector of int)
0:66 'iv4' (temp highp 4-component vector of int)
0:66 Function Call: texelFetch(is21;vi2;i1; (global highp 4-component vector of int)
0:66 Function Call: texelFetch(is2M1;vi2;i1; (global highp 4-component vector of int)
0:66 'is2dms' (uniform highp isampler2DMS)
0:66 'v2' (temp highp 2-component vector of int)
0:66 Constant:
......@@ -937,16 +937,16 @@ ERROR: node is still EOpNull!
0:? Sequence
0:63 move second child to first child (temp highp 2-component vector of int)
0:63 'v2' (temp highp 2-component vector of int)
0:63 Function Call: textureSize(s21; (global highp 2-component vector of int)
0:63 Function Call: textureSize(s2M1; (global highp 2-component vector of int)
0:63 's2dms' (uniform highp sampler2DMS)
0:64 move second child to first child (temp highp 2-component vector of int)
0:64 'v2' (temp highp 2-component vector of int)
0:64 Function Call: textureSize(us21; (global highp 2-component vector of int)
0:64 Function Call: textureSize(us2M1; (global highp 2-component vector of int)
0:64 'us2dms' (uniform highp usampler2DMS)
0:65 Sequence
0:65 move second child to first child (temp highp 4-component vector of float)
0:65 'v4' (temp highp 4-component vector of float)
0:65 Function Call: texelFetch(s21;vi2;i1; (global highp 4-component vector of float)
0:65 Function Call: texelFetch(s2M1;vi2;i1; (global highp 4-component vector of float)
0:65 's2dms' (uniform highp sampler2DMS)
0:65 'v2' (temp highp 2-component vector of int)
0:65 Constant:
......@@ -954,7 +954,7 @@ ERROR: node is still EOpNull!
0:66 Sequence
0:66 move second child to first child (temp highp 4-component vector of int)
0:66 'iv4' (temp highp 4-component vector of int)
0:66 Function Call: texelFetch(is21;vi2;i1; (global highp 4-component vector of int)
0:66 Function Call: texelFetch(is2M1;vi2;i1; (global highp 4-component vector of int)
0:66 'is2dms' (uniform highp isampler2DMS)
0:66 'v2' (temp highp 2-component vector of int)
0:66 Constant:
......
......@@ -204,13 +204,13 @@ ERROR: node is still EOpNull!
0:117 Sequence
0:117 move second child to first child (temp 4-component vector of float)
0:117 'col' (temp 4-component vector of float)
0:117 Function Call: imageLoad(I21;vi2;i1; (global 4-component vector of float)
0:117 Function Call: imageLoad(I2M1;vi2;i1; (global 4-component vector of float)
0:117 'img2DMS' (uniform image2DMS)
0:117 Construct ivec2 (temp 2-component vector of int)
0:117 'i' (temp int)
0:117 'i' (temp int)
0:117 'i' (temp int)
0:118 Function Call: imageStore(I21;vi2;i1;vf4; (global void)
0:118 Function Call: imageStore(I2M1;vi2;i1;vf4; (global void)
0:118 'img2DMSWO' (writeonly uniform image2DMS)
0:118 Construct ivec2 (temp 2-component vector of int)
0:118 'i' (temp int)
......@@ -221,7 +221,7 @@ ERROR: node is still EOpNull!
0:118 0.000000
0:118 0.000000
0:118 0.000000
0:119 Function Call: imageLoad(I21;vi2;i1; (global 4-component vector of float)
0:119 Function Call: imageLoad(I2M1;vi2;i1; (global 4-component vector of float)
0:119 'img2DMSWO' (writeonly uniform image2DMS)
0:119 Construct ivec2 (temp 2-component vector of int)
0:119 'i' (temp int)
......@@ -449,13 +449,13 @@ ERROR: node is still EOpNull!
0:117 Sequence
0:117 move second child to first child (temp 4-component vector of float)
0:117 'col' (temp 4-component vector of float)
0:117 Function Call: imageLoad(I21;vi2;i1; (global 4-component vector of float)
0:117 Function Call: imageLoad(I2M1;vi2;i1; (global 4-component vector of float)
0:117 'img2DMS' (uniform image2DMS)
0:117 Construct ivec2 (temp 2-component vector of int)
0:117 'i' (temp int)
0:117 'i' (temp int)
0:117 'i' (temp int)
0:118 Function Call: imageStore(I21;vi2;i1;vf4; (global void)
0:118 Function Call: imageStore(I2M1;vi2;i1;vf4; (global void)
0:118 'img2DMSWO' (writeonly uniform image2DMS)
0:118 Construct ivec2 (temp 2-component vector of int)
0:118 'i' (temp int)
......@@ -466,7 +466,7 @@ ERROR: node is still EOpNull!
0:118 0.000000
0:118 0.000000
0:118 0.000000
0:119 Function Call: imageLoad(I21;vi2;i1; (global 4-component vector of float)
0:119 Function Call: imageLoad(I2M1;vi2;i1; (global 4-component vector of float)
0:119 'img2DMSWO' (writeonly uniform image2DMS)
0:119 Construct ivec2 (temp 2-component vector of int)
0:119 'i' (temp int)
......
......@@ -105,19 +105,19 @@ ERROR: node is still EOpNull!
0:168 Sequence
0:168 move second child to first child (temp int)
0:168 's' (temp int)
0:168 Function Call: textureSamples(s21; (global int)
0:168 Function Call: textureSamples(s2M1; (global int)
0:168 's2dms' (uniform sampler2DMS)
0:169 add second child into first child (temp int)
0:169 's' (temp int)
0:169 Function Call: textureSamples(usA21; (global int)
0:169 Function Call: textureSamples(usA2M1; (global int)
0:169 'us2dmsa' (uniform usampler2DMSArray)
0:170 add second child into first child (temp int)
0:170 's' (temp int)
0:170 Function Call: imageSamples(iI21; (global int)
0:170 Function Call: imageSamples(iI2M1; (global int)
0:170 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
0:171 add second child into first child (temp int)
0:171 's' (temp int)
0:171 Function Call: imageSamples(IA21; (global int)
0:171 Function Call: imageSamples(IA2M1; (global int)
0:171 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
0:176 Function Definition: fooq2( (global void)
0:176 Function Parameters:
......@@ -125,19 +125,19 @@ ERROR: node is still EOpNull!
0:178 Sequence
0:178 move second child to first child (temp int)
0:178 's' (temp int)
0:178 Function Call: textureSamples(s21; (global int)
0:178 Function Call: textureSamples(s2M1; (global int)
0:178 's2dms' (uniform sampler2DMS)
0:179 add second child into first child (temp int)
0:179 's' (temp int)
0:179 Function Call: textureSamples(usA21; (global int)
0:179 Function Call: textureSamples(usA2M1; (global int)
0:179 'us2dmsa' (uniform usampler2DMSArray)
0:180 add second child into first child (temp int)
0:180 's' (temp int)
0:180 Function Call: imageSamples(iI21; (global int)
0:180 Function Call: imageSamples(iI2M1; (global int)
0:180 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
0:181 add second child into first child (temp int)
0:181 's' (temp int)
0:181 Function Call: imageSamples(IA21; (global int)
0:181 Function Call: imageSamples(IA2M1; (global int)
0:181 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
0:? Linker Objects
0:? 'v4' (layout(location=3 ) temp 4-component vector of float)
......@@ -237,19 +237,19 @@ ERROR: node is still EOpNull!
0:168 Sequence
0:168 move second child to first child (temp int)
0:168 's' (temp int)
0:168 Function Call: textureSamples(s21; (global int)
0:168 Function Call: textureSamples(s2M1; (global int)
0:168 's2dms' (uniform sampler2DMS)
0:169 add second child into first child (temp int)
0:169 's' (temp int)
0:169 Function Call: textureSamples(usA21; (global int)
0:169 Function Call: textureSamples(usA2M1; (global int)
0:169 'us2dmsa' (uniform usampler2DMSArray)
0:170 add second child into first child (temp int)
0:170 's' (temp int)
0:170 Function Call: imageSamples(iI21; (global int)
0:170 Function Call: imageSamples(iI2M1; (global int)
0:170 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
0:171 add second child into first child (temp int)
0:171 's' (temp int)
0:171 Function Call: imageSamples(IA21; (global int)
0:171 Function Call: imageSamples(IA2M1; (global int)
0:171 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
0:176 Function Definition: fooq2( (global void)
0:176 Function Parameters:
......@@ -257,19 +257,19 @@ ERROR: node is still EOpNull!
0:178 Sequence
0:178 move second child to first child (temp int)
0:178 's' (temp int)
0:178 Function Call: textureSamples(s21; (global int)
0:178 Function Call: textureSamples(s2M1; (global int)
0:178 's2dms' (uniform sampler2DMS)
0:179 add second child into first child (temp int)
0:179 's' (temp int)
0:179 Function Call: textureSamples(usA21; (global int)
0:179 Function Call: textureSamples(usA2M1; (global int)
0:179 'us2dmsa' (uniform usampler2DMSArray)
0:180 add second child into first child (temp int)
0:180 's' (temp int)
0:180 Function Call: imageSamples(iI21; (global int)
0:180 Function Call: imageSamples(iI2M1; (global int)
0:180 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
0:181 add second child into first child (temp int)
0:181 's' (temp int)
0:181 Function Call: imageSamples(IA21; (global int)
0:181 Function Call: imageSamples(IA2M1; (global int)
0:181 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
0:? Linker Objects
0:? 'v4' (layout(location=3 ) temp 4-component vector of float)
......
......@@ -105,24 +105,24 @@ Shader version: 450
0:44 Sequence
0:44 move second child to first child (temp int)
0:44 's' (temp int)
0:44 Function Call: textureSamples(s21; (global int)
0:44 Function Call: textureSamples(s2M1; (global int)
0:44 's2dms' (uniform sampler2DMS)
0:45 add second child into first child (temp int)
0:45 's' (temp int)
0:45 Function Call: textureSamples(usA21; (global int)
0:45 Function Call: textureSamples(usA2M1; (global int)
0:45 'us2dmsa' (uniform usampler2DMSArray)
0:46 add second child into first child (temp int)
0:46 's' (temp int)
0:46 Function Call: imageSamples(iI21; (global int)
0:46 Function Call: imageSamples(iI2M1; (global int)
0:46 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
0:47 add second child into first child (temp int)
0:47 's' (temp int)
0:47 Function Call: imageSamples(IA21; (global int)
0:47 Function Call: imageSamples(IA2M1; (global int)
0:47 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'f' (temp float)
0:48 Function Call: imageAtomicExchange(IA21;vi3;i1;f1; (global float)
0:48 Function Call: imageAtomicExchange(IA2M1;vi3;i1;f1; (global float)
0:48 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
0:48 Convert float to int (temp 3-component vector of int)
0:48 'in3' (smooth in 3-component vector of float)
......@@ -249,24 +249,24 @@ Shader version: 450
0:44 Sequence
0:44 move second child to first child (temp int)
0:44 's' (temp int)
0:44 Function Call: textureSamples(s21; (global int)
0:44 Function Call: textureSamples(s2M1; (global int)
0:44 's2dms' (uniform sampler2DMS)
0:45 add second child into first child (temp int)
0:45 's' (temp int)
0:45 Function Call: textureSamples(usA21; (global int)
0:45 Function Call: textureSamples(usA2M1; (global int)
0:45 'us2dmsa' (uniform usampler2DMSArray)
0:46 add second child into first child (temp int)
0:46 's' (temp int)
0:46 Function Call: imageSamples(iI21; (global int)
0:46 Function Call: imageSamples(iI2M1; (global int)
0:46 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
0:47 add second child into first child (temp int)
0:47 's' (temp int)
0:47 Function Call: imageSamples(IA21; (global int)
0:47 Function Call: imageSamples(IA2M1; (global int)
0:47 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'f' (temp float)
0:48 Function Call: imageAtomicExchange(IA21;vi3;i1;f1; (global float)
0:48 Function Call: imageAtomicExchange(IA2M1;vi3;i1;f1; (global float)
0:48 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
0:48 Convert float to int (temp 3-component vector of int)
0:48 'in3' (smooth in 3-component vector of float)
......
......@@ -184,7 +184,7 @@ Shader version: 430
0:64 'iv' (temp 4-component vector of int)
0:66 add second child into first child (temp 4-component vector of int)
0:66 'iv' (temp 4-component vector of int)
0:66 Function Call: texelFetch(is21;vi2;i1; (global 4-component vector of int)
0:66 Function Call: texelFetch(is2M1;vi2;i1; (global 4-component vector of int)
0:66 'is2Dms' (uniform isampler2DMS)
0:66 'ic2D' (flat in 2-component vector of int)
0:66 'ic1D' (flat in int)
......@@ -436,7 +436,7 @@ Shader version: 430
0:64 'iv' (temp 4-component vector of int)
0:66 add second child into first child (temp 4-component vector of int)
0:66 'iv' (temp 4-component vector of int)
0:66 Function Call: texelFetch(is21;vi2;i1; (global 4-component vector of int)
0:66 Function Call: texelFetch(is2M1;vi2;i1; (global 4-component vector of int)
0:66 'is2Dms' (uniform isampler2DMS)
0:66 'ic2D' (flat in 2-component vector of int)
0:66 'ic1D' (flat in int)
......
......@@ -2,5 +2,5 @@
// For the version, it uses the latest git tag followed by the number of commits.
// For the date, it uses the current date (when then script is run).
#define GLSLANG_REVISION "2.3.716"
#define GLSLANG_REVISION "2.3.717"
#define GLSLANG_DATE "16-Aug-2015"
......@@ -2152,8 +2152,9 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, TString& typeName, int /*
if (bias && compare)
continue;
// non-optional lod argument (lod that's not driven by lod loop)
if (fetch && sampler.dim != EsdBuffer && sampler.dim != EsdRect && !sampler.ms)
// non-optional lod argument (lod that's not driven by lod loop) or sample
if ((fetch && sampler.dim != EsdBuffer && sampler.dim != EsdRect && !sampler.ms) ||
(sampler.ms && fetch))
s.append(",int");
// non-optional lod
......
......@@ -89,6 +89,8 @@ void TType::buildMangledName(TString& mangledName)
case EsdBuffer: mangledName += "B"; break;
default: break; // some compilers want this
}
if (sampler.ms)
mangledName += "M";
break;
case EbtStruct:
mangledName += "struct-";
......
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