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

Fix logic error in steering which stages get bias vs. non-bias texturing functions.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24268 e7fa87d3-cd2b-0410-9028-fcbf551c1848
parent 78fe3ace
No related branches found
No related tags found
No related merge requests found
No preview for this file type
...@@ -104,3 +104,26 @@ uniform ub3 { ...@@ -104,3 +104,26 @@ uniform ub3 {
uniform ub3 { // ERROR redeclaration of block name (no instance name in first or declared) uniform ub3 { // ERROR redeclaration of block name (no instance name in first or declared)
bool b234; bool b234;
}; };
precision lowp sampler3D;
precision lowp sampler2DShadow;
precision lowp sampler2DArrayShadow;
uniform sampler2D s2D;
uniform sampler3D s3D;
uniform sampler2DShadow s2DS;
uniform sampler2DArrayShadow s2DAS;
in vec2 c2D;
void foo23()
{
ivec2 x1 = textureSize(s2D, 2);
textureSize(s2D); // ERROR, no lod
ivec3 x3 = textureSize(s2DAS, -1);
textureSize(s2DAS); // ERROR, no lod
vec4 x4 = texture(s2D, c2D);
texture(s2D, c2D, 0.2); // ERROR, bias
vec4 x5 = textureProjOffset(s3D, vec4(0.2), ivec3(1));
textureProjOffset(s3D, vec4(0.2), ivec3(1), .03); // ERROR, bias
float x6 = textureProjGradOffset(s2DS, invIn, vec2(4.2), vec2(5.3), ivec2(1));
}
...@@ -25,7 +25,11 @@ ERROR: 0:88: 'ub2' : Cannot reuse block name within the same interface: uniform ...@@ -25,7 +25,11 @@ ERROR: 0:88: 'ub2' : Cannot reuse block name within the same interface: uniform
ERROR: 0:92: 'ub2' : Cannot reuse block name within the same interface: uniform ERROR: 0:92: 'ub2' : Cannot reuse block name within the same interface: uniform
ERROR: 0:96: 'ub2' : Cannot reuse block name within the same interface: uniform ERROR: 0:96: 'ub2' : Cannot reuse block name within the same interface: uniform
ERROR: 0:104: 'ub3' : Cannot reuse block name within the same interface: uniform ERROR: 0:104: 'ub3' : Cannot reuse block name within the same interface: uniform
ERROR: 26 compilation errors. No code generated. ERROR: 0:121: 'textureSize' : no matching overloaded function found
ERROR: 0:123: 'textureSize' : no matching overloaded function found
ERROR: 0:125: 'texture' : no matching overloaded function found
ERROR: 0:127: 'textureProjOffset' : no matching overloaded function found
ERROR: 30 compilation errors. No code generated.
ERROR: node is still EOpNull! ERROR: node is still EOpNull!
...@@ -150,6 +154,66 @@ ERROR: node is still EOpNull! ...@@ -150,6 +154,66 @@ ERROR: node is still EOpNull!
0:73 move second child to first child (highp 3-component vector of float) 0:73 move second child to first child (highp 3-component vector of float)
0:73 'newV' (smooth out highp 3-component vector of float) 0:73 'newV' (smooth out highp 3-component vector of float)
0:73 'v3' (in highp 3-component vector of float) 0:73 'v3' (in highp 3-component vector of float)
0:118 Function Definition: foo23( (void)
0:118 Function Parameters:
0:120 Sequence
0:120 Sequence
0:120 move second child to first child (highp 2-component vector of int)
0:120 'x1' (highp 2-component vector of int)
0:120 Function Call: textureSize(s21;i1; (highp 2-component vector of int)
0:120 's2D' (uniform lowp sampler2D)
0:120 Constant:
0:120 2 (const int)
0:121 Constant:
0:121 0.000000
0:122 Sequence
0:122 move second child to first child (highp 3-component vector of int)
0:122 'x3' (highp 3-component vector of int)
0:122 Function Call: textureSize(sAS21;i1; (highp 3-component vector of int)
0:122 's2DAS' (uniform lowp sampler2DArrayShadow)
0:122 Constant:
0:122 -1 (const int)
0:123 Constant:
0:123 0.000000
0:124 Sequence
0:124 move second child to first child (highp 4-component vector of float)
0:124 'x4' (highp 4-component vector of float)
0:124 Function Call: texture(s21;vf2; (highp 4-component vector of float)
0:124 's2D' (uniform lowp sampler2D)
0:124 'c2D' (in highp 2-component vector of float)
0:125 Constant:
0:125 0.000000
0:126 Sequence
0:126 move second child to first child (highp 4-component vector of float)
0:126 'x5' (highp 4-component vector of float)
0:126 Function Call: textureProjOffset(s31;vf4;vi3; (highp 4-component vector of float)
0:126 's3D' (uniform lowp sampler3D)
0:126 Constant:
0:126 0.200000
0:126 0.200000
0:126 0.200000
0:126 0.200000
0:126 Constant:
0:126 1 (const int)
0:126 1 (const int)
0:126 1 (const int)
0:127 Constant:
0:127 0.000000
0:128 Sequence
0:128 move second child to first child (highp float)
0:128 'x6' (highp float)
0:128 Function Call: textureProjGradOffset(sS21;vf4;vf2;vf2;vi2; (highp float)
0:128 's2DS' (uniform lowp sampler2DShadow)
0:128 'invIn' (invariant in highp 4-component vector of float)
0:128 Constant:
0:128 4.200000
0:128 4.200000
0:128 Constant:
0:128 5.300000
0:128 5.300000
0:128 Constant:
0:128 1 (const int)
0:128 1 (const int)
0:? Linker Objects 0:? Linker Objects
0:? 'm43' (uniform highp 4X3 matrix of float) 0:? 'm43' (uniform highp 4X3 matrix of float)
0:? 'm33' (uniform highp 3X3 matrix of float) 0:? 'm33' (uniform highp 3X3 matrix of float)
...@@ -175,6 +239,11 @@ ERROR: node is still EOpNull! ...@@ -175,6 +239,11 @@ ERROR: node is still EOpNull!
0:? 's3' (invariant smooth out structure{c,f}) 0:? 's3' (invariant smooth out structure{c,f})
0:? 'a' (layout(column_major shared ) uniform block{f}) 0:? 'a' (layout(column_major shared ) uniform block{f})
0:? '__anon__0' (layout(column_major shared ) uniform block{b23}) 0:? '__anon__0' (layout(column_major shared ) uniform block{b23})
0:? 's2D' (uniform lowp sampler2D)
0:? 's3D' (uniform lowp sampler3D)
0:? 's2DS' (uniform lowp sampler2DShadow)
0:? 's2DAS' (uniform lowp sampler2DArrayShadow)
0:? 'c2D' (in highp 2-component vector of float)
0:? 'gl_VertexID' (gl_VertexId highp int) 0:? 'gl_VertexID' (gl_VertexId highp int)
0:? 'gl_InstanceID' (gl_InstanceId highp int) 0:? 'gl_InstanceID' (gl_InstanceId highp int)
......
...@@ -1603,9 +1603,6 @@ void TBuiltIns::addImageFunctions(TSampler sampler, TString& typeName, int versi ...@@ -1603,9 +1603,6 @@ void TBuiltIns::addImageFunctions(TSampler sampler, TString& typeName, int versi
// //
void TBuiltIns::addSamplingFunctions(TSampler sampler, TString& typeName, int version, EProfile profile) void TBuiltIns::addSamplingFunctions(TSampler sampler, TString& typeName, int version, EProfile profile)
{ {
// make one string per stage to contain all functions of the passed-in type for that stage
TString functions[EShLangCount];
// //
// texturing // texturing
// //
...@@ -1763,14 +1760,10 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, TString& typeName, int ve ...@@ -1763,14 +1760,10 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, TString& typeName, int ve
// Add to the per-language set of built-ins // Add to the per-language set of built-ins
if (! bias) { if (bias)
functions[EShLangVertex].append(s); stageBuiltins[EShLangFragment].append(s);
functions[EShLangGeometry].append(s); else
functions[EShLangTessControl].append(s); commonBuiltins.append(s);
functions[EShLangTessEvaluation].append(s);
functions[EShLangCompute].append(s);
}
commonBuiltins.append(s);
} }
} }
} }
...@@ -1804,9 +1797,6 @@ void TBuiltIns::addGatherFunctions(TSampler sampler, TString& typeName, int vers ...@@ -1804,9 +1797,6 @@ void TBuiltIns::addGatherFunctions(TSampler sampler, TString& typeName, int vers
if (version < 140 && sampler.dim == EsdRect && sampler.type != EbtFloat) if (version < 140 && sampler.dim == EsdRect && sampler.type != EbtFloat)
return; return;
// make one string per stage to contain all functions of the passed-in type for that stage
TString functions[EShLangCount];
for (int offset = 0; offset < 3; ++offset) { // loop over three forms of offset in the call name: none, Offset, and Offsets for (int offset = 0; offset < 3; ++offset) { // loop over three forms of offset in the call name: none, Offset, and Offsets
for (int comp = 0; comp < 2; ++comp) { // loop over presence of comp argument for (int comp = 0; comp < 2; ++comp) { // loop over presence of comp argument
......
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