mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-09 12:00:05 +00:00
Full stack: implement textureQueryLod(*) and textureQueryLevels(*).
This commit is contained in:
parent
ef0118b26e
commit
2398b3a458
@ -126,3 +126,17 @@ layout(location=27, index=0) in vec4 indexIn; // ERROR, not on in
|
||||
layout(location=0, index=0) in; // ERROR, not just on in
|
||||
layout(location=0, index=0) out; // ERROR, need a variable
|
||||
layout(location=26, index=0) out indexBlock { int a; } indexBlockI; // ERROR, not on a block
|
||||
|
||||
uniform sampler1D samp1D;
|
||||
uniform sampler2DShadow samp2Ds;
|
||||
|
||||
void qlod()
|
||||
{
|
||||
vec2 lod;
|
||||
float pf;
|
||||
vec2 pf2;
|
||||
vec3 pf3;
|
||||
|
||||
lod = textureQueryLod(samp1D, pf); // ERROR, not until 400
|
||||
lod = textureQueryLod(samp2Ds, pf2); // ERROR, not until 400
|
||||
}
|
||||
|
@ -139,3 +139,47 @@ void interp()
|
||||
interpolateAtCentroid(f); // ERROR, not interpolant
|
||||
interpolateAtSample(outp, 0); // ERROR, not interpolant
|
||||
}
|
||||
|
||||
uniform sampler1D samp1D;
|
||||
uniform isampler2D isamp2D;
|
||||
uniform usampler3D usamp3D;
|
||||
uniform samplerCube sampCube;
|
||||
uniform isampler1DArray isamp1DA;
|
||||
uniform usampler2DArray usamp2DA;
|
||||
uniform isamplerCubeArray isampCubeA;
|
||||
|
||||
uniform sampler1DShadow samp1Ds;
|
||||
uniform sampler2DShadow samp2Ds;
|
||||
uniform samplerCubeShadow sampCubes;
|
||||
uniform sampler1DArrayShadow samp1DAs;
|
||||
uniform sampler2DArrayShadow samp2DAs;
|
||||
uniform samplerCubeArrayShadow sampCubeAs;
|
||||
|
||||
uniform samplerBuffer sampBuf;
|
||||
uniform sampler2DRect sampRect;
|
||||
|
||||
void qlod()
|
||||
{
|
||||
vec2 lod;
|
||||
float pf;
|
||||
vec2 pf2;
|
||||
vec3 pf3;
|
||||
|
||||
lod = textureQueryLod(samp1D, pf);
|
||||
lod = textureQueryLod(isamp2D, pf2);
|
||||
lod = textureQueryLod(usamp3D, pf3);
|
||||
lod = textureQueryLod(sampCube, pf3);
|
||||
lod = textureQueryLod(isamp1DA, pf);
|
||||
lod = textureQueryLod(usamp2DA, pf2);
|
||||
lod = textureQueryLod(isampCubeA, pf3);
|
||||
|
||||
lod = textureQueryLod(samp1Ds, pf);
|
||||
lod = textureQueryLod(samp2Ds, pf2);
|
||||
lod = textureQueryLod(sampCubes, pf3);
|
||||
lod = textureQueryLod(samp1DAs, pf);
|
||||
lod = textureQueryLod(samp2DAs, pf2);
|
||||
lod = textureQueryLod(sampCubeAs, pf3);
|
||||
|
||||
lod = textureQueryLod(sampBuf, pf); // ERROR
|
||||
lod = textureQueryLod(sampRect, pf2); // ERROR
|
||||
}
|
||||
|
@ -101,3 +101,17 @@ void bits()
|
||||
}
|
||||
|
||||
layout(location = 7, index = 1) out vec4 indexedOut;
|
||||
|
||||
uniform sampler1D samp1D;
|
||||
uniform sampler2DShadow samp2Ds;
|
||||
|
||||
void qlod()
|
||||
{
|
||||
vec2 lod;
|
||||
float pf;
|
||||
vec2 pf2;
|
||||
vec3 pf3;
|
||||
|
||||
lod = textureQueryLod(samp1D, pf); // ERROR, only in fragment
|
||||
lod = textureQueryLod(samp2Ds, pf2); // ERROR, only in fragment
|
||||
}
|
||||
|
@ -146,3 +146,14 @@ layout(r8ui) uniform iimage2D i6bad; // ERROR, type mismatch
|
||||
uniform offcheck {
|
||||
layout(offset = 16) int foo; // ERROR
|
||||
} offcheckI;
|
||||
|
||||
uniform sampler1D samp1D;
|
||||
uniform sampler1DShadow samp1Ds;
|
||||
|
||||
void qlod()
|
||||
{
|
||||
int levels;
|
||||
|
||||
levels = textureQueryLevels(samp1D); // ERROR, not until 430
|
||||
levels = textureQueryLevels(samp1Ds); // ERROR, not until 430
|
||||
}
|
@ -180,3 +180,44 @@ void fooq2()
|
||||
s += imageSamples(ii2dms);
|
||||
s += imageSamples(i2dmsa);
|
||||
}
|
||||
|
||||
uniform sampler1D samp1D;
|
||||
uniform usampler2D usamp2D;
|
||||
uniform isampler3D isamp3D;
|
||||
uniform isamplerCube isampCube;
|
||||
uniform isampler1DArray isamp1DA;
|
||||
uniform sampler2DArray samp2DA;
|
||||
uniform usamplerCubeArray usampCubeA;
|
||||
|
||||
uniform sampler1DShadow samp1Ds;
|
||||
uniform sampler2DShadow samp2Ds;
|
||||
uniform samplerCubeShadow sampCubes;
|
||||
uniform sampler1DArrayShadow samp1DAs;
|
||||
uniform sampler2DArrayShadow samp2DAs;
|
||||
uniform samplerCubeArrayShadow sampCubeAs;
|
||||
|
||||
uniform samplerBuffer sampBuf;
|
||||
uniform sampler2DRect sampRect;
|
||||
|
||||
void qlod()
|
||||
{
|
||||
int levels;
|
||||
|
||||
levels = textureQueryLevels(samp1D);
|
||||
levels = textureQueryLevels(usamp2D);
|
||||
levels = textureQueryLevels(isamp3D);
|
||||
levels = textureQueryLevels(isampCube);
|
||||
levels = textureQueryLevels(isamp1DA);
|
||||
levels = textureQueryLevels(samp2DA);
|
||||
levels = textureQueryLevels(usampCubeA);
|
||||
|
||||
levels = textureQueryLevels(samp1Ds);
|
||||
levels = textureQueryLevels(samp2Ds);
|
||||
levels = textureQueryLevels(sampCubes);
|
||||
levels = textureQueryLevels(samp1DAs);
|
||||
levels = textureQueryLevels(samp2DAs);
|
||||
levels = textureQueryLevels(sampCubeAs);
|
||||
|
||||
levels = textureQueryLevels(sampBuf); // ERROR
|
||||
levels = textureQueryLevels(sampRect); // ERROR
|
||||
}
|
||||
|
@ -33,7 +33,11 @@ ERROR: 0:126: 'index' : can only be used on an output
|
||||
ERROR: 0:126: 'location/component/index' : cannot declare a default, use a full declaration
|
||||
ERROR: 0:127: 'location/component/index' : cannot declare a default, use a full declaration
|
||||
ERROR: 0:128: 'output block' : not supported in this stage: fragment
|
||||
ERROR: 34 compilation errors. No code generated.
|
||||
ERROR: 0:140: 'textureQueryLod' : no matching overloaded function found
|
||||
ERROR: 0:140: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
|
||||
ERROR: 0:141: 'textureQueryLod' : no matching overloaded function found
|
||||
ERROR: 0:141: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
|
||||
ERROR: 38 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 330
|
||||
@ -70,6 +74,11 @@ ERROR: node is still EOpNull!
|
||||
0:24 move second child to first child (temp 4-component vector of float)
|
||||
0:24 'outVar' (layout(location=0 index=0 ) out 4-component vector of float)
|
||||
0:24 'inVar' (smooth in 4-component vector of float)
|
||||
0:133 Function Definition: qlod( (global void)
|
||||
0:133 Function Parameters:
|
||||
0:? Sequence
|
||||
0:140 'lod' (temp 2-component vector of float)
|
||||
0:141 'lod' (temp 2-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'inVar' (smooth in 4-component vector of float)
|
||||
0:? 'outVar' (layout(location=0 index=0 ) out 4-component vector of float)
|
||||
@ -102,6 +111,8 @@ ERROR: node is still EOpNull!
|
||||
0:? 'outVar4' (layout(location=0 index=1 ) out 4-component vector of float)
|
||||
0:? 'indexIn' (layout(location=27 index=0 ) smooth in 4-component vector of float)
|
||||
0:? 'indexBlockI' (layout(location=26 index=0 ) out block{out int a})
|
||||
0:? 'samp1D' (uniform sampler1D)
|
||||
0:? 'samp2Ds' (uniform sampler2DShadow)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -143,6 +154,11 @@ ERROR: node is still EOpNull!
|
||||
0:24 move second child to first child (temp 4-component vector of float)
|
||||
0:24 'outVar' (layout(location=0 index=0 ) out 4-component vector of float)
|
||||
0:24 'inVar' (smooth in 4-component vector of float)
|
||||
0:133 Function Definition: qlod( (global void)
|
||||
0:133 Function Parameters:
|
||||
0:? Sequence
|
||||
0:140 'lod' (temp 2-component vector of float)
|
||||
0:141 'lod' (temp 2-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'inVar' (smooth in 4-component vector of float)
|
||||
0:? 'outVar' (layout(location=0 index=0 ) out 4-component vector of float)
|
||||
@ -175,4 +191,6 @@ ERROR: node is still EOpNull!
|
||||
0:? 'outVar4' (layout(location=0 index=1 ) out 4-component vector of float)
|
||||
0:? 'indexIn' (layout(location=27 index=0 ) smooth in 4-component vector of float)
|
||||
0:? 'indexBlockI' (layout(location=26 index=0 ) out block{out int a})
|
||||
0:? 'samp1D' (uniform sampler1D)
|
||||
0:? 'samp2Ds' (uniform sampler2DShadow)
|
||||
|
||||
|
@ -30,7 +30,11 @@ ERROR: 0:135: 'interpolateAtOffset' : first argument must be an interpolant, or
|
||||
ERROR: 0:136: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element
|
||||
ERROR: 0:139: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element
|
||||
ERROR: 0:140: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element
|
||||
ERROR: 30 compilation errors. No code generated.
|
||||
ERROR: 0:183: 'textureQueryLod' : no matching overloaded function found
|
||||
ERROR: 0:183: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
|
||||
ERROR: 0:184: 'textureQueryLod' : no matching overloaded function found
|
||||
ERROR: 0:184: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
|
||||
ERROR: 34 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 400
|
||||
@ -402,6 +406,76 @@ ERROR: node is still EOpNull!
|
||||
0:140 'outp' (out 4-component vector of float)
|
||||
0:140 Constant:
|
||||
0:140 0 (const int)
|
||||
0:161 Function Definition: qlod( (global void)
|
||||
0:161 Function Parameters:
|
||||
0:? Sequence
|
||||
0:168 move second child to first child (temp 2-component vector of float)
|
||||
0:168 'lod' (temp 2-component vector of float)
|
||||
0:168 textureQueryLod (global 2-component vector of float)
|
||||
0:168 'samp1D' (uniform sampler1D)
|
||||
0:168 'pf' (temp float)
|
||||
0:169 move second child to first child (temp 2-component vector of float)
|
||||
0:169 'lod' (temp 2-component vector of float)
|
||||
0:169 textureQueryLod (global 2-component vector of float)
|
||||
0:169 'isamp2D' (uniform isampler2D)
|
||||
0:169 'pf2' (temp 2-component vector of float)
|
||||
0:170 move second child to first child (temp 2-component vector of float)
|
||||
0:170 'lod' (temp 2-component vector of float)
|
||||
0:170 textureQueryLod (global 2-component vector of float)
|
||||
0:170 'usamp3D' (uniform usampler3D)
|
||||
0:170 'pf3' (temp 3-component vector of float)
|
||||
0:171 move second child to first child (temp 2-component vector of float)
|
||||
0:171 'lod' (temp 2-component vector of float)
|
||||
0:171 textureQueryLod (global 2-component vector of float)
|
||||
0:171 'sampCube' (uniform samplerCube)
|
||||
0:171 'pf3' (temp 3-component vector of float)
|
||||
0:172 move second child to first child (temp 2-component vector of float)
|
||||
0:172 'lod' (temp 2-component vector of float)
|
||||
0:172 textureQueryLod (global 2-component vector of float)
|
||||
0:172 'isamp1DA' (uniform isampler1DArray)
|
||||
0:172 'pf' (temp float)
|
||||
0:173 move second child to first child (temp 2-component vector of float)
|
||||
0:173 'lod' (temp 2-component vector of float)
|
||||
0:173 textureQueryLod (global 2-component vector of float)
|
||||
0:173 'usamp2DA' (uniform usampler2DArray)
|
||||
0:173 'pf2' (temp 2-component vector of float)
|
||||
0:174 move second child to first child (temp 2-component vector of float)
|
||||
0:174 'lod' (temp 2-component vector of float)
|
||||
0:174 textureQueryLod (global 2-component vector of float)
|
||||
0:174 'isampCubeA' (uniform isamplerCubeArray)
|
||||
0:174 'pf3' (temp 3-component vector of float)
|
||||
0:176 move second child to first child (temp 2-component vector of float)
|
||||
0:176 'lod' (temp 2-component vector of float)
|
||||
0:176 textureQueryLod (global 2-component vector of float)
|
||||
0:176 'samp1Ds' (uniform sampler1DShadow)
|
||||
0:176 'pf' (temp float)
|
||||
0:177 move second child to first child (temp 2-component vector of float)
|
||||
0:177 'lod' (temp 2-component vector of float)
|
||||
0:177 textureQueryLod (global 2-component vector of float)
|
||||
0:177 'samp2Ds' (uniform sampler2DShadow)
|
||||
0:177 'pf2' (temp 2-component vector of float)
|
||||
0:178 move second child to first child (temp 2-component vector of float)
|
||||
0:178 'lod' (temp 2-component vector of float)
|
||||
0:178 textureQueryLod (global 2-component vector of float)
|
||||
0:178 'sampCubes' (uniform samplerCubeShadow)
|
||||
0:178 'pf3' (temp 3-component vector of float)
|
||||
0:179 move second child to first child (temp 2-component vector of float)
|
||||
0:179 'lod' (temp 2-component vector of float)
|
||||
0:179 textureQueryLod (global 2-component vector of float)
|
||||
0:179 'samp1DAs' (uniform sampler1DArrayShadow)
|
||||
0:179 'pf' (temp float)
|
||||
0:180 move second child to first child (temp 2-component vector of float)
|
||||
0:180 'lod' (temp 2-component vector of float)
|
||||
0:180 textureQueryLod (global 2-component vector of float)
|
||||
0:180 'samp2DAs' (uniform sampler2DArrayShadow)
|
||||
0:180 'pf2' (temp 2-component vector of float)
|
||||
0:181 move second child to first child (temp 2-component vector of float)
|
||||
0:181 'lod' (temp 2-component vector of float)
|
||||
0:181 textureQueryLod (global 2-component vector of float)
|
||||
0:181 'sampCubeAs' (uniform samplerCubeArrayShadow)
|
||||
0:181 'pf3' (temp 3-component vector of float)
|
||||
0:183 'lod' (temp 2-component vector of float)
|
||||
0:184 'lod' (temp 2-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'c2D' (smooth in 2-component vector of float)
|
||||
0:? 'i' (flat in int)
|
||||
@ -432,6 +506,21 @@ ERROR: node is still EOpNull!
|
||||
0:? 'colorfc' (centroid flat in 2-component vector of float)
|
||||
0:? 's1' (smooth in structure{global float x})
|
||||
0:? 's2' (sample temp structure{global float x})
|
||||
0:? 'samp1D' (uniform sampler1D)
|
||||
0:? 'isamp2D' (uniform isampler2D)
|
||||
0:? 'usamp3D' (uniform usampler3D)
|
||||
0:? 'sampCube' (uniform samplerCube)
|
||||
0:? 'isamp1DA' (uniform isampler1DArray)
|
||||
0:? 'usamp2DA' (uniform usampler2DArray)
|
||||
0:? 'isampCubeA' (uniform isamplerCubeArray)
|
||||
0:? 'samp1Ds' (uniform sampler1DShadow)
|
||||
0:? 'samp2Ds' (uniform sampler2DShadow)
|
||||
0:? 'sampCubes' (uniform samplerCubeShadow)
|
||||
0:? 'samp1DAs' (uniform sampler1DArrayShadow)
|
||||
0:? 'samp2DAs' (uniform sampler2DArrayShadow)
|
||||
0:? 'sampCubeAs' (uniform samplerCubeArrayShadow)
|
||||
0:? 'sampBuf' (uniform samplerBuffer)
|
||||
0:? 'sampRect' (uniform sampler2DRect)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@ -806,6 +895,76 @@ ERROR: node is still EOpNull!
|
||||
0:140 'outp' (out 4-component vector of float)
|
||||
0:140 Constant:
|
||||
0:140 0 (const int)
|
||||
0:161 Function Definition: qlod( (global void)
|
||||
0:161 Function Parameters:
|
||||
0:? Sequence
|
||||
0:168 move second child to first child (temp 2-component vector of float)
|
||||
0:168 'lod' (temp 2-component vector of float)
|
||||
0:168 textureQueryLod (global 2-component vector of float)
|
||||
0:168 'samp1D' (uniform sampler1D)
|
||||
0:168 'pf' (temp float)
|
||||
0:169 move second child to first child (temp 2-component vector of float)
|
||||
0:169 'lod' (temp 2-component vector of float)
|
||||
0:169 textureQueryLod (global 2-component vector of float)
|
||||
0:169 'isamp2D' (uniform isampler2D)
|
||||
0:169 'pf2' (temp 2-component vector of float)
|
||||
0:170 move second child to first child (temp 2-component vector of float)
|
||||
0:170 'lod' (temp 2-component vector of float)
|
||||
0:170 textureQueryLod (global 2-component vector of float)
|
||||
0:170 'usamp3D' (uniform usampler3D)
|
||||
0:170 'pf3' (temp 3-component vector of float)
|
||||
0:171 move second child to first child (temp 2-component vector of float)
|
||||
0:171 'lod' (temp 2-component vector of float)
|
||||
0:171 textureQueryLod (global 2-component vector of float)
|
||||
0:171 'sampCube' (uniform samplerCube)
|
||||
0:171 'pf3' (temp 3-component vector of float)
|
||||
0:172 move second child to first child (temp 2-component vector of float)
|
||||
0:172 'lod' (temp 2-component vector of float)
|
||||
0:172 textureQueryLod (global 2-component vector of float)
|
||||
0:172 'isamp1DA' (uniform isampler1DArray)
|
||||
0:172 'pf' (temp float)
|
||||
0:173 move second child to first child (temp 2-component vector of float)
|
||||
0:173 'lod' (temp 2-component vector of float)
|
||||
0:173 textureQueryLod (global 2-component vector of float)
|
||||
0:173 'usamp2DA' (uniform usampler2DArray)
|
||||
0:173 'pf2' (temp 2-component vector of float)
|
||||
0:174 move second child to first child (temp 2-component vector of float)
|
||||
0:174 'lod' (temp 2-component vector of float)
|
||||
0:174 textureQueryLod (global 2-component vector of float)
|
||||
0:174 'isampCubeA' (uniform isamplerCubeArray)
|
||||
0:174 'pf3' (temp 3-component vector of float)
|
||||
0:176 move second child to first child (temp 2-component vector of float)
|
||||
0:176 'lod' (temp 2-component vector of float)
|
||||
0:176 textureQueryLod (global 2-component vector of float)
|
||||
0:176 'samp1Ds' (uniform sampler1DShadow)
|
||||
0:176 'pf' (temp float)
|
||||
0:177 move second child to first child (temp 2-component vector of float)
|
||||
0:177 'lod' (temp 2-component vector of float)
|
||||
0:177 textureQueryLod (global 2-component vector of float)
|
||||
0:177 'samp2Ds' (uniform sampler2DShadow)
|
||||
0:177 'pf2' (temp 2-component vector of float)
|
||||
0:178 move second child to first child (temp 2-component vector of float)
|
||||
0:178 'lod' (temp 2-component vector of float)
|
||||
0:178 textureQueryLod (global 2-component vector of float)
|
||||
0:178 'sampCubes' (uniform samplerCubeShadow)
|
||||
0:178 'pf3' (temp 3-component vector of float)
|
||||
0:179 move second child to first child (temp 2-component vector of float)
|
||||
0:179 'lod' (temp 2-component vector of float)
|
||||
0:179 textureQueryLod (global 2-component vector of float)
|
||||
0:179 'samp1DAs' (uniform sampler1DArrayShadow)
|
||||
0:179 'pf' (temp float)
|
||||
0:180 move second child to first child (temp 2-component vector of float)
|
||||
0:180 'lod' (temp 2-component vector of float)
|
||||
0:180 textureQueryLod (global 2-component vector of float)
|
||||
0:180 'samp2DAs' (uniform sampler2DArrayShadow)
|
||||
0:180 'pf2' (temp 2-component vector of float)
|
||||
0:181 move second child to first child (temp 2-component vector of float)
|
||||
0:181 'lod' (temp 2-component vector of float)
|
||||
0:181 textureQueryLod (global 2-component vector of float)
|
||||
0:181 'sampCubeAs' (uniform samplerCubeArrayShadow)
|
||||
0:181 'pf3' (temp 3-component vector of float)
|
||||
0:183 'lod' (temp 2-component vector of float)
|
||||
0:184 'lod' (temp 2-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'c2D' (smooth in 2-component vector of float)
|
||||
0:? 'i' (flat in int)
|
||||
@ -836,4 +995,19 @@ ERROR: node is still EOpNull!
|
||||
0:? 'colorfc' (centroid flat in 2-component vector of float)
|
||||
0:? 's1' (smooth in structure{global float x})
|
||||
0:? 's2' (sample temp structure{global float x})
|
||||
0:? 'samp1D' (uniform sampler1D)
|
||||
0:? 'isamp2D' (uniform isampler2D)
|
||||
0:? 'usamp3D' (uniform usampler3D)
|
||||
0:? 'sampCube' (uniform samplerCube)
|
||||
0:? 'isamp1DA' (uniform isampler1DArray)
|
||||
0:? 'usamp2DA' (uniform usampler2DArray)
|
||||
0:? 'isampCubeA' (uniform isamplerCubeArray)
|
||||
0:? 'samp1Ds' (uniform sampler1DShadow)
|
||||
0:? 'samp2Ds' (uniform sampler2DShadow)
|
||||
0:? 'sampCubes' (uniform samplerCubeShadow)
|
||||
0:? 'samp1DAs' (uniform sampler1DArrayShadow)
|
||||
0:? 'samp2DAs' (uniform sampler2DArrayShadow)
|
||||
0:? 'sampCubeAs' (uniform samplerCubeArrayShadow)
|
||||
0:? 'sampBuf' (uniform samplerBuffer)
|
||||
0:? 'sampRect' (uniform sampler2DRect)
|
||||
|
||||
|
@ -19,7 +19,11 @@ ERROR: 0:65: 'invocations' : can only apply to 'in'
|
||||
ERROR: 0:67: 'in' : type must be an array: inbls
|
||||
ERROR: 0:71: 'triangles' : inconsistent input primitive for array size of inbla
|
||||
ERROR: 0:103: 'index' : there is no such layout identifier for this stage taking an assigned value
|
||||
ERROR: 19 compilation errors. No code generated.
|
||||
ERROR: 0:115: 'textureQueryLod' : no matching overloaded function found
|
||||
ERROR: 0:115: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
|
||||
ERROR: 0:116: 'textureQueryLod' : no matching overloaded function found
|
||||
ERROR: 0:116: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float'
|
||||
ERROR: 23 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 400
|
||||
@ -165,6 +169,11 @@ ERROR: node is still EOpNull!
|
||||
0:100 'i2' (temp 2-component vector of int)
|
||||
0:100 findMSB (global 2-component vector of int)
|
||||
0:100 'u2' (temp 2-component vector of uint)
|
||||
0:108 Function Definition: qlod( (global void)
|
||||
0:108 Function Parameters:
|
||||
0:? Sequence
|
||||
0:115 'lod' (temp 2-component vector of float)
|
||||
0:116 'lod' (temp 2-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'bn' (in 3-element array of block{in int a})
|
||||
0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
|
||||
@ -182,6 +191,8 @@ ERROR: node is still EOpNull!
|
||||
0:? 'inbls' (in block{in int a})
|
||||
0:? 'inbla' (in 17-element array of block{in int a})
|
||||
0:? 'indexedOut' (layout(location=7 stream=0 ) out 4-component vector of float)
|
||||
0:? 'samp1D' (uniform sampler1D)
|
||||
0:? 'samp2Ds' (uniform sampler2DShadow)
|
||||
|
||||
|
||||
Linked geometry stage:
|
||||
@ -331,6 +342,11 @@ ERROR: node is still EOpNull!
|
||||
0:100 'i2' (temp 2-component vector of int)
|
||||
0:100 findMSB (global 2-component vector of int)
|
||||
0:100 'u2' (temp 2-component vector of uint)
|
||||
0:108 Function Definition: qlod( (global void)
|
||||
0:108 Function Parameters:
|
||||
0:? Sequence
|
||||
0:115 'lod' (temp 2-component vector of float)
|
||||
0:116 'lod' (temp 2-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'bn' (in 3-element array of block{in int a})
|
||||
0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
|
||||
@ -348,4 +364,6 @@ ERROR: node is still EOpNull!
|
||||
0:? 'inbls' (in block{in int a})
|
||||
0:? 'inbla' (in 17-element array of block{in int a})
|
||||
0:? 'indexedOut' (layout(location=7 stream=0 ) out 4-component vector of float)
|
||||
0:? 'samp1D' (uniform sampler1D)
|
||||
0:? 'samp2Ds' (uniform sampler2DShadow)
|
||||
|
||||
|
@ -49,7 +49,11 @@ ERROR: 0:142: 'r8_snorm' : does not apply to signed integer images
|
||||
ERROR: 0:143: 'rgba32ui' : does not apply to signed integer images
|
||||
ERROR: 0:144: 'r8ui' : does not apply to signed integer images
|
||||
ERROR: 0:147: 'offset on block member' : not supported for this version or the enabled extensions
|
||||
ERROR: 48 compilation errors. No code generated.
|
||||
ERROR: 0:157: 'textureQueryLevels' : no matching overloaded function found
|
||||
ERROR: 0:157: 'assign' : cannot convert from 'const float' to 'temp int'
|
||||
ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found
|
||||
ERROR: 0:158: 'assign' : cannot convert from 'const float' to 'temp int'
|
||||
ERROR: 52 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 420
|
||||
@ -239,6 +243,11 @@ ERROR: node is still EOpNull!
|
||||
0:135 'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)
|
||||
0:136 Function Call: passr(iI21; (global void)
|
||||
0:136 'iimg2D' (layout(r32i ) uniform iimage2D)
|
||||
0:153 Function Definition: qlod( (global void)
|
||||
0:153 Function Parameters:
|
||||
0:? Sequence
|
||||
0:157 'levels' (temp int)
|
||||
0:158 'levels' (temp int)
|
||||
0:? Linker Objects
|
||||
0:? 'v2' (smooth out 2-component vector of float)
|
||||
0:? 'bad' (in 10-element array of 4-component vector of float)
|
||||
@ -290,6 +299,8 @@ ERROR: node is still EOpNull!
|
||||
0:? 'i5bad' (layout(rgba32ui ) uniform iimage2D)
|
||||
0:? 'i6bad' (layout(r8ui ) uniform iimage2D)
|
||||
0:? 'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo})
|
||||
0:? 'samp1D' (uniform sampler1D)
|
||||
0:? 'samp1Ds' (uniform sampler1DShadow)
|
||||
0:? 'gl_VertexID' (gl_VertexId int VertexId)
|
||||
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
|
||||
|
||||
@ -484,6 +495,11 @@ ERROR: node is still EOpNull!
|
||||
0:135 'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)
|
||||
0:136 Function Call: passr(iI21; (global void)
|
||||
0:136 'iimg2D' (layout(r32i ) uniform iimage2D)
|
||||
0:153 Function Definition: qlod( (global void)
|
||||
0:153 Function Parameters:
|
||||
0:? Sequence
|
||||
0:157 'levels' (temp int)
|
||||
0:158 'levels' (temp int)
|
||||
0:? Linker Objects
|
||||
0:? 'v2' (smooth out 2-component vector of float)
|
||||
0:? 'bad' (in 10-element array of 4-component vector of float)
|
||||
@ -535,6 +551,8 @@ ERROR: node is still EOpNull!
|
||||
0:? 'i5bad' (layout(rgba32ui ) uniform iimage2D)
|
||||
0:? 'i6bad' (layout(r8ui ) uniform iimage2D)
|
||||
0:? 'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo})
|
||||
0:? 'samp1D' (uniform sampler1D)
|
||||
0:? 'samp1Ds' (uniform sampler1DShadow)
|
||||
0:? 'gl_VertexID' (gl_VertexId int VertexId)
|
||||
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
|
||||
|
||||
|
@ -59,7 +59,11 @@ ERROR: 0:168: 'textureSamples and imageSamples' : not supported for this version
|
||||
ERROR: 0:169: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:170: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:171: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions
|
||||
ERROR: 59 compilation errors. No code generated.
|
||||
ERROR: 0:221: 'textureQueryLevels' : no matching overloaded function found
|
||||
ERROR: 0:221: 'assign' : cannot convert from 'const float' to 'temp int'
|
||||
ERROR: 0:222: 'textureQueryLevels' : no matching overloaded function found
|
||||
ERROR: 0:222: 'assign' : cannot convert from 'const float' to 'temp int'
|
||||
ERROR: 63 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 430
|
||||
@ -139,6 +143,63 @@ ERROR: node is still EOpNull!
|
||||
0:181 's' (temp int)
|
||||
0:181 imageQuerySamples (global int)
|
||||
0:181 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
|
||||
0:202 Function Definition: qlod( (global void)
|
||||
0:202 Function Parameters:
|
||||
0:? Sequence
|
||||
0:206 move second child to first child (temp int)
|
||||
0:206 'levels' (temp int)
|
||||
0:206 textureQueryLevels (global int)
|
||||
0:206 'samp1D' (uniform sampler1D)
|
||||
0:207 move second child to first child (temp int)
|
||||
0:207 'levels' (temp int)
|
||||
0:207 textureQueryLevels (global int)
|
||||
0:207 'usamp2D' (uniform usampler2D)
|
||||
0:208 move second child to first child (temp int)
|
||||
0:208 'levels' (temp int)
|
||||
0:208 textureQueryLevels (global int)
|
||||
0:208 'isamp3D' (uniform isampler3D)
|
||||
0:209 move second child to first child (temp int)
|
||||
0:209 'levels' (temp int)
|
||||
0:209 textureQueryLevels (global int)
|
||||
0:209 'isampCube' (uniform isamplerCube)
|
||||
0:210 move second child to first child (temp int)
|
||||
0:210 'levels' (temp int)
|
||||
0:210 textureQueryLevels (global int)
|
||||
0:210 'isamp1DA' (uniform isampler1DArray)
|
||||
0:211 move second child to first child (temp int)
|
||||
0:211 'levels' (temp int)
|
||||
0:211 textureQueryLevels (global int)
|
||||
0:211 'samp2DA' (uniform sampler2DArray)
|
||||
0:212 move second child to first child (temp int)
|
||||
0:212 'levels' (temp int)
|
||||
0:212 textureQueryLevels (global int)
|
||||
0:212 'usampCubeA' (uniform usamplerCubeArray)
|
||||
0:214 move second child to first child (temp int)
|
||||
0:214 'levels' (temp int)
|
||||
0:214 textureQueryLevels (global int)
|
||||
0:214 'samp1Ds' (uniform sampler1DShadow)
|
||||
0:215 move second child to first child (temp int)
|
||||
0:215 'levels' (temp int)
|
||||
0:215 textureQueryLevels (global int)
|
||||
0:215 'samp2Ds' (uniform sampler2DShadow)
|
||||
0:216 move second child to first child (temp int)
|
||||
0:216 'levels' (temp int)
|
||||
0:216 textureQueryLevels (global int)
|
||||
0:216 'sampCubes' (uniform samplerCubeShadow)
|
||||
0:217 move second child to first child (temp int)
|
||||
0:217 'levels' (temp int)
|
||||
0:217 textureQueryLevels (global int)
|
||||
0:217 'samp1DAs' (uniform sampler1DArrayShadow)
|
||||
0:218 move second child to first child (temp int)
|
||||
0:218 'levels' (temp int)
|
||||
0:218 textureQueryLevels (global int)
|
||||
0:218 'samp2DAs' (uniform sampler2DArrayShadow)
|
||||
0:219 move second child to first child (temp int)
|
||||
0:219 'levels' (temp int)
|
||||
0:219 textureQueryLevels (global int)
|
||||
0:219 'sampCubeAs' (uniform samplerCubeArrayShadow)
|
||||
0:221 'levels' (temp int)
|
||||
0:222 'levels' (temp int)
|
||||
0:? Linker Objects
|
||||
0:? 'v4' (layout(location=3 ) temp 4-component vector of float)
|
||||
0:? 'uv4' (layout(location=4 ) uniform 4-component vector of float)
|
||||
@ -184,6 +245,21 @@ ERROR: node is still EOpNull!
|
||||
0:? 'us2dmsa' (uniform usampler2DMSArray)
|
||||
0:? 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
|
||||
0:? 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
|
||||
0:? 'samp1D' (uniform sampler1D)
|
||||
0:? 'usamp2D' (uniform usampler2D)
|
||||
0:? 'isamp3D' (uniform isampler3D)
|
||||
0:? 'isampCube' (uniform isamplerCube)
|
||||
0:? 'isamp1DA' (uniform isampler1DArray)
|
||||
0:? 'samp2DA' (uniform sampler2DArray)
|
||||
0:? 'usampCubeA' (uniform usamplerCubeArray)
|
||||
0:? 'samp1Ds' (uniform sampler1DShadow)
|
||||
0:? 'samp2Ds' (uniform sampler2DShadow)
|
||||
0:? 'sampCubes' (uniform samplerCubeShadow)
|
||||
0:? 'samp1DAs' (uniform sampler1DArrayShadow)
|
||||
0:? 'samp2DAs' (uniform sampler2DArrayShadow)
|
||||
0:? 'sampCubeAs' (uniform samplerCubeArrayShadow)
|
||||
0:? 'sampBuf' (uniform samplerBuffer)
|
||||
0:? 'sampRect' (uniform sampler2DRect)
|
||||
0:? 'gl_VertexID' (gl_VertexId int VertexId)
|
||||
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
|
||||
|
||||
@ -271,6 +347,63 @@ ERROR: node is still EOpNull!
|
||||
0:181 's' (temp int)
|
||||
0:181 imageQuerySamples (global int)
|
||||
0:181 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
|
||||
0:202 Function Definition: qlod( (global void)
|
||||
0:202 Function Parameters:
|
||||
0:? Sequence
|
||||
0:206 move second child to first child (temp int)
|
||||
0:206 'levels' (temp int)
|
||||
0:206 textureQueryLevels (global int)
|
||||
0:206 'samp1D' (uniform sampler1D)
|
||||
0:207 move second child to first child (temp int)
|
||||
0:207 'levels' (temp int)
|
||||
0:207 textureQueryLevels (global int)
|
||||
0:207 'usamp2D' (uniform usampler2D)
|
||||
0:208 move second child to first child (temp int)
|
||||
0:208 'levels' (temp int)
|
||||
0:208 textureQueryLevels (global int)
|
||||
0:208 'isamp3D' (uniform isampler3D)
|
||||
0:209 move second child to first child (temp int)
|
||||
0:209 'levels' (temp int)
|
||||
0:209 textureQueryLevels (global int)
|
||||
0:209 'isampCube' (uniform isamplerCube)
|
||||
0:210 move second child to first child (temp int)
|
||||
0:210 'levels' (temp int)
|
||||
0:210 textureQueryLevels (global int)
|
||||
0:210 'isamp1DA' (uniform isampler1DArray)
|
||||
0:211 move second child to first child (temp int)
|
||||
0:211 'levels' (temp int)
|
||||
0:211 textureQueryLevels (global int)
|
||||
0:211 'samp2DA' (uniform sampler2DArray)
|
||||
0:212 move second child to first child (temp int)
|
||||
0:212 'levels' (temp int)
|
||||
0:212 textureQueryLevels (global int)
|
||||
0:212 'usampCubeA' (uniform usamplerCubeArray)
|
||||
0:214 move second child to first child (temp int)
|
||||
0:214 'levels' (temp int)
|
||||
0:214 textureQueryLevels (global int)
|
||||
0:214 'samp1Ds' (uniform sampler1DShadow)
|
||||
0:215 move second child to first child (temp int)
|
||||
0:215 'levels' (temp int)
|
||||
0:215 textureQueryLevels (global int)
|
||||
0:215 'samp2Ds' (uniform sampler2DShadow)
|
||||
0:216 move second child to first child (temp int)
|
||||
0:216 'levels' (temp int)
|
||||
0:216 textureQueryLevels (global int)
|
||||
0:216 'sampCubes' (uniform samplerCubeShadow)
|
||||
0:217 move second child to first child (temp int)
|
||||
0:217 'levels' (temp int)
|
||||
0:217 textureQueryLevels (global int)
|
||||
0:217 'samp1DAs' (uniform sampler1DArrayShadow)
|
||||
0:218 move second child to first child (temp int)
|
||||
0:218 'levels' (temp int)
|
||||
0:218 textureQueryLevels (global int)
|
||||
0:218 'samp2DAs' (uniform sampler2DArrayShadow)
|
||||
0:219 move second child to first child (temp int)
|
||||
0:219 'levels' (temp int)
|
||||
0:219 textureQueryLevels (global int)
|
||||
0:219 'sampCubeAs' (uniform samplerCubeArrayShadow)
|
||||
0:221 'levels' (temp int)
|
||||
0:222 'levels' (temp int)
|
||||
0:? Linker Objects
|
||||
0:? 'v4' (layout(location=3 ) temp 4-component vector of float)
|
||||
0:? 'uv4' (layout(location=4 ) uniform 4-component vector of float)
|
||||
@ -316,6 +449,21 @@ ERROR: node is still EOpNull!
|
||||
0:? 'us2dmsa' (uniform usampler2DMSArray)
|
||||
0:? 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
|
||||
0:? 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
|
||||
0:? 'samp1D' (uniform sampler1D)
|
||||
0:? 'usamp2D' (uniform usampler2D)
|
||||
0:? 'isamp3D' (uniform isampler3D)
|
||||
0:? 'isampCube' (uniform isamplerCube)
|
||||
0:? 'isamp1DA' (uniform isampler1DArray)
|
||||
0:? 'samp2DA' (uniform sampler2DArray)
|
||||
0:? 'usampCubeA' (uniform usamplerCubeArray)
|
||||
0:? 'samp1Ds' (uniform sampler1DShadow)
|
||||
0:? 'samp2Ds' (uniform sampler2DShadow)
|
||||
0:? 'sampCubes' (uniform samplerCubeShadow)
|
||||
0:? 'samp1DAs' (uniform sampler1DArrayShadow)
|
||||
0:? 'samp2DAs' (uniform sampler2DArrayShadow)
|
||||
0:? 'sampCubeAs' (uniform samplerCubeArrayShadow)
|
||||
0:? 'sampBuf' (uniform samplerBuffer)
|
||||
0:? 'sampRect' (uniform sampler2DRect)
|
||||
0:? 'gl_VertexID' (gl_VertexId int VertexId)
|
||||
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
|
||||
|
||||
|
282
Test/baseResults/spv.queryL.frag.out
Normal file
282
Test/baseResults/spv.queryL.frag.out
Normal file
@ -0,0 +1,282 @@
|
||||
spv.queryL.frag
|
||||
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 211
|
||||
|
||||
Source GLSL 430
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "lod"
|
||||
Name 13 "samp1D"
|
||||
Name 16 "pf"
|
||||
Name 23 "isamp2D"
|
||||
Name 25 "pf2"
|
||||
Name 34 "usamp3D"
|
||||
Name 38 "pf3"
|
||||
Name 46 "sampCube"
|
||||
Name 55 "isamp1DA"
|
||||
Name 64 "usamp2DA"
|
||||
Name 73 "isampCubeA"
|
||||
Name 82 "samp1Ds"
|
||||
Name 91 "samp2Ds"
|
||||
Name 100 "sampCubes"
|
||||
Name 109 "samp1DAs"
|
||||
Name 118 "samp2DAs"
|
||||
Name 127 "sampCubeAs"
|
||||
Name 134 "levels"
|
||||
Name 140 "usamp2D"
|
||||
Name 148 "isamp3D"
|
||||
Name 156 "isampCube"
|
||||
Name 168 "samp2DA"
|
||||
Name 176 "usampCubeA"
|
||||
Name 206 "sampBuf"
|
||||
Name 210 "sampRect"
|
||||
Decorate 206(sampBuf) NoStaticUse
|
||||
Decorate 210(sampRect) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 2
|
||||
8: TypePointer Function 7(fvec2)
|
||||
10: TypeImage 6(float) 1D sampled format:Unknown
|
||||
11: TypeSampledImage 10
|
||||
12: TypePointer UniformConstant 11
|
||||
13(samp1D): 12(ptr) Variable UniformConstant
|
||||
15: TypePointer Function 6(float)
|
||||
19: TypeInt 32 1
|
||||
20: TypeImage 19(int) 2D sampled format:Unknown
|
||||
21: TypeSampledImage 20
|
||||
22: TypePointer UniformConstant 21
|
||||
23(isamp2D): 22(ptr) Variable UniformConstant
|
||||
30: TypeInt 32 0
|
||||
31: TypeImage 30(int) 3D sampled format:Unknown
|
||||
32: TypeSampledImage 31
|
||||
33: TypePointer UniformConstant 32
|
||||
34(usamp3D): 33(ptr) Variable UniformConstant
|
||||
36: TypeVector 6(float) 3
|
||||
37: TypePointer Function 36(fvec3)
|
||||
43: TypeImage 6(float) Cube sampled format:Unknown
|
||||
44: TypeSampledImage 43
|
||||
45: TypePointer UniformConstant 44
|
||||
46(sampCube): 45(ptr) Variable UniformConstant
|
||||
52: TypeImage 19(int) 1D array sampled format:Unknown
|
||||
53: TypeSampledImage 52
|
||||
54: TypePointer UniformConstant 53
|
||||
55(isamp1DA): 54(ptr) Variable UniformConstant
|
||||
61: TypeImage 30(int) 2D array sampled format:Unknown
|
||||
62: TypeSampledImage 61
|
||||
63: TypePointer UniformConstant 62
|
||||
64(usamp2DA): 63(ptr) Variable UniformConstant
|
||||
70: TypeImage 19(int) Cube array sampled format:Unknown
|
||||
71: TypeSampledImage 70
|
||||
72: TypePointer UniformConstant 71
|
||||
73(isampCubeA): 72(ptr) Variable UniformConstant
|
||||
79: TypeImage 6(float) 1D depth sampled format:Unknown
|
||||
80: TypeSampledImage 79
|
||||
81: TypePointer UniformConstant 80
|
||||
82(samp1Ds): 81(ptr) Variable UniformConstant
|
||||
88: TypeImage 6(float) 2D depth sampled format:Unknown
|
||||
89: TypeSampledImage 88
|
||||
90: TypePointer UniformConstant 89
|
||||
91(samp2Ds): 90(ptr) Variable UniformConstant
|
||||
97: TypeImage 6(float) Cube depth sampled format:Unknown
|
||||
98: TypeSampledImage 97
|
||||
99: TypePointer UniformConstant 98
|
||||
100(sampCubes): 99(ptr) Variable UniformConstant
|
||||
106: TypeImage 6(float) 1D depth array sampled format:Unknown
|
||||
107: TypeSampledImage 106
|
||||
108: TypePointer UniformConstant 107
|
||||
109(samp1DAs): 108(ptr) Variable UniformConstant
|
||||
115: TypeImage 6(float) 2D depth array sampled format:Unknown
|
||||
116: TypeSampledImage 115
|
||||
117: TypePointer UniformConstant 116
|
||||
118(samp2DAs): 117(ptr) Variable UniformConstant
|
||||
124: TypeImage 6(float) Cube depth array sampled format:Unknown
|
||||
125: TypeSampledImage 124
|
||||
126: TypePointer UniformConstant 125
|
||||
127(sampCubeAs): 126(ptr) Variable UniformConstant
|
||||
133: TypePointer Function 19(int)
|
||||
137: TypeImage 30(int) 2D sampled format:Unknown
|
||||
138: TypeSampledImage 137
|
||||
139: TypePointer UniformConstant 138
|
||||
140(usamp2D): 139(ptr) Variable UniformConstant
|
||||
145: TypeImage 19(int) 3D sampled format:Unknown
|
||||
146: TypeSampledImage 145
|
||||
147: TypePointer UniformConstant 146
|
||||
148(isamp3D): 147(ptr) Variable UniformConstant
|
||||
153: TypeImage 19(int) Cube sampled format:Unknown
|
||||
154: TypeSampledImage 153
|
||||
155: TypePointer UniformConstant 154
|
||||
156(isampCube): 155(ptr) Variable UniformConstant
|
||||
165: TypeImage 6(float) 2D array sampled format:Unknown
|
||||
166: TypeSampledImage 165
|
||||
167: TypePointer UniformConstant 166
|
||||
168(samp2DA): 167(ptr) Variable UniformConstant
|
||||
173: TypeImage 30(int) Cube array sampled format:Unknown
|
||||
174: TypeSampledImage 173
|
||||
175: TypePointer UniformConstant 174
|
||||
176(usampCubeA): 175(ptr) Variable UniformConstant
|
||||
203: TypeImage 6(float) Buffer sampled format:Unknown
|
||||
204: TypeSampledImage 203
|
||||
205: TypePointer UniformConstant 204
|
||||
206(sampBuf): 205(ptr) Variable UniformConstant
|
||||
207: TypeImage 6(float) Rect sampled format:Unknown
|
||||
208: TypeSampledImage 207
|
||||
209: TypePointer UniformConstant 208
|
||||
210(sampRect): 209(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(lod): 8(ptr) Variable Function
|
||||
16(pf): 15(ptr) Variable Function
|
||||
25(pf2): 8(ptr) Variable Function
|
||||
38(pf3): 37(ptr) Variable Function
|
||||
134(levels): 133(ptr) Variable Function
|
||||
14: 11 Load 13(samp1D)
|
||||
17: 6(float) Load 16(pf)
|
||||
18: 7(fvec2) ImageQueryLod 14 17
|
||||
Store 9(lod) 18
|
||||
24: 21 Load 23(isamp2D)
|
||||
26: 7(fvec2) Load 25(pf2)
|
||||
27: 7(fvec2) ImageQueryLod 24 26
|
||||
28: 7(fvec2) Load 9(lod)
|
||||
29: 7(fvec2) FAdd 28 27
|
||||
Store 9(lod) 29
|
||||
35: 32 Load 34(usamp3D)
|
||||
39: 36(fvec3) Load 38(pf3)
|
||||
40: 7(fvec2) ImageQueryLod 35 39
|
||||
41: 7(fvec2) Load 9(lod)
|
||||
42: 7(fvec2) FAdd 41 40
|
||||
Store 9(lod) 42
|
||||
47: 44 Load 46(sampCube)
|
||||
48: 36(fvec3) Load 38(pf3)
|
||||
49: 7(fvec2) ImageQueryLod 47 48
|
||||
50: 7(fvec2) Load 9(lod)
|
||||
51: 7(fvec2) FAdd 50 49
|
||||
Store 9(lod) 51
|
||||
56: 53 Load 55(isamp1DA)
|
||||
57: 6(float) Load 16(pf)
|
||||
58: 7(fvec2) ImageQueryLod 56 57
|
||||
59: 7(fvec2) Load 9(lod)
|
||||
60: 7(fvec2) FAdd 59 58
|
||||
Store 9(lod) 60
|
||||
65: 62 Load 64(usamp2DA)
|
||||
66: 7(fvec2) Load 25(pf2)
|
||||
67: 7(fvec2) ImageQueryLod 65 66
|
||||
68: 7(fvec2) Load 9(lod)
|
||||
69: 7(fvec2) FAdd 68 67
|
||||
Store 9(lod) 69
|
||||
74: 71 Load 73(isampCubeA)
|
||||
75: 36(fvec3) Load 38(pf3)
|
||||
76: 7(fvec2) ImageQueryLod 74 75
|
||||
77: 7(fvec2) Load 9(lod)
|
||||
78: 7(fvec2) FAdd 77 76
|
||||
Store 9(lod) 78
|
||||
83: 80 Load 82(samp1Ds)
|
||||
84: 6(float) Load 16(pf)
|
||||
85: 7(fvec2) ImageQueryLod 83 84
|
||||
86: 7(fvec2) Load 9(lod)
|
||||
87: 7(fvec2) FAdd 86 85
|
||||
Store 9(lod) 87
|
||||
92: 89 Load 91(samp2Ds)
|
||||
93: 7(fvec2) Load 25(pf2)
|
||||
94: 7(fvec2) ImageQueryLod 92 93
|
||||
95: 7(fvec2) Load 9(lod)
|
||||
96: 7(fvec2) FAdd 95 94
|
||||
Store 9(lod) 96
|
||||
101: 98 Load 100(sampCubes)
|
||||
102: 36(fvec3) Load 38(pf3)
|
||||
103: 7(fvec2) ImageQueryLod 101 102
|
||||
104: 7(fvec2) Load 9(lod)
|
||||
105: 7(fvec2) FAdd 104 103
|
||||
Store 9(lod) 105
|
||||
110: 107 Load 109(samp1DAs)
|
||||
111: 6(float) Load 16(pf)
|
||||
112: 7(fvec2) ImageQueryLod 110 111
|
||||
113: 7(fvec2) Load 9(lod)
|
||||
114: 7(fvec2) FAdd 113 112
|
||||
Store 9(lod) 114
|
||||
119: 116 Load 118(samp2DAs)
|
||||
120: 7(fvec2) Load 25(pf2)
|
||||
121: 7(fvec2) ImageQueryLod 119 120
|
||||
122: 7(fvec2) Load 9(lod)
|
||||
123: 7(fvec2) FAdd 122 121
|
||||
Store 9(lod) 123
|
||||
128: 125 Load 127(sampCubeAs)
|
||||
129: 36(fvec3) Load 38(pf3)
|
||||
130: 7(fvec2) ImageQueryLod 128 129
|
||||
131: 7(fvec2) Load 9(lod)
|
||||
132: 7(fvec2) FAdd 131 130
|
||||
Store 9(lod) 132
|
||||
135: 11 Load 13(samp1D)
|
||||
136: 19(int) ImageQueryLevels 135
|
||||
Store 134(levels) 136
|
||||
141: 138 Load 140(usamp2D)
|
||||
142: 19(int) ImageQueryLevels 141
|
||||
143: 19(int) Load 134(levels)
|
||||
144: 19(int) IAdd 143 142
|
||||
Store 134(levels) 144
|
||||
149: 146 Load 148(isamp3D)
|
||||
150: 19(int) ImageQueryLevels 149
|
||||
151: 19(int) Load 134(levels)
|
||||
152: 19(int) IAdd 151 150
|
||||
Store 134(levels) 152
|
||||
157: 154 Load 156(isampCube)
|
||||
158: 19(int) ImageQueryLevels 157
|
||||
159: 19(int) Load 134(levels)
|
||||
160: 19(int) IAdd 159 158
|
||||
Store 134(levels) 160
|
||||
161: 53 Load 55(isamp1DA)
|
||||
162: 19(int) ImageQueryLevels 161
|
||||
163: 19(int) Load 134(levels)
|
||||
164: 19(int) IAdd 163 162
|
||||
Store 134(levels) 164
|
||||
169: 166 Load 168(samp2DA)
|
||||
170: 19(int) ImageQueryLevels 169
|
||||
171: 19(int) Load 134(levels)
|
||||
172: 19(int) IAdd 171 170
|
||||
Store 134(levels) 172
|
||||
177: 174 Load 176(usampCubeA)
|
||||
178: 19(int) ImageQueryLevels 177
|
||||
179: 19(int) Load 134(levels)
|
||||
180: 19(int) IAdd 179 178
|
||||
Store 134(levels) 180
|
||||
181: 80 Load 82(samp1Ds)
|
||||
182: 19(int) ImageQueryLevels 181
|
||||
Store 134(levels) 182
|
||||
183: 89 Load 91(samp2Ds)
|
||||
184: 19(int) ImageQueryLevels 183
|
||||
185: 19(int) Load 134(levels)
|
||||
186: 19(int) IAdd 185 184
|
||||
Store 134(levels) 186
|
||||
187: 98 Load 100(sampCubes)
|
||||
188: 19(int) ImageQueryLevels 187
|
||||
189: 19(int) Load 134(levels)
|
||||
190: 19(int) IAdd 189 188
|
||||
Store 134(levels) 190
|
||||
191: 107 Load 109(samp1DAs)
|
||||
192: 19(int) ImageQueryLevels 191
|
||||
193: 19(int) Load 134(levels)
|
||||
194: 19(int) IAdd 193 192
|
||||
Store 134(levels) 194
|
||||
195: 116 Load 118(samp2DAs)
|
||||
196: 19(int) ImageQueryLevels 195
|
||||
197: 19(int) Load 134(levels)
|
||||
198: 19(int) IAdd 197 196
|
||||
Store 134(levels) 198
|
||||
199: 125 Load 127(sampCubeAs)
|
||||
200: 19(int) ImageQueryLevels 199
|
||||
201: 19(int) Load 134(levels)
|
||||
202: 19(int) IAdd 201 200
|
||||
Store 134(levels) 202
|
||||
Return
|
||||
FunctionEnd
|
64
Test/spv.queryL.frag
Normal file
64
Test/spv.queryL.frag
Normal file
@ -0,0 +1,64 @@
|
||||
#version 430 core
|
||||
|
||||
uniform sampler1D samp1D;
|
||||
uniform isampler2D isamp2D;
|
||||
uniform usampler2D usamp2D;
|
||||
uniform isampler3D isamp3D;
|
||||
uniform usampler3D usamp3D;
|
||||
uniform samplerCube sampCube;
|
||||
uniform isamplerCube isampCube;
|
||||
uniform isampler1DArray isamp1DA;
|
||||
uniform sampler2DArray samp2DA;
|
||||
uniform usampler2DArray usamp2DA;
|
||||
uniform isamplerCubeArray isampCubeA;
|
||||
uniform usamplerCubeArray usampCubeA;
|
||||
|
||||
uniform sampler1DShadow samp1Ds;
|
||||
uniform sampler2DShadow samp2Ds;
|
||||
uniform samplerCubeShadow sampCubes;
|
||||
uniform sampler1DArrayShadow samp1DAs;
|
||||
uniform sampler2DArrayShadow samp2DAs;
|
||||
uniform samplerCubeArrayShadow sampCubeAs;
|
||||
|
||||
uniform samplerBuffer sampBuf;
|
||||
uniform sampler2DRect sampRect;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 lod;
|
||||
float pf;
|
||||
vec2 pf2;
|
||||
vec3 pf3;
|
||||
|
||||
lod = textureQueryLod(samp1D, pf);
|
||||
lod += textureQueryLod(isamp2D, pf2);
|
||||
lod += textureQueryLod(usamp3D, pf3);
|
||||
lod += textureQueryLod(sampCube, pf3);
|
||||
lod += textureQueryLod(isamp1DA, pf);
|
||||
lod += textureQueryLod(usamp2DA, pf2);
|
||||
lod += textureQueryLod(isampCubeA, pf3);
|
||||
|
||||
lod += textureQueryLod(samp1Ds, pf);
|
||||
lod += textureQueryLod(samp2Ds, pf2);
|
||||
lod += textureQueryLod(sampCubes, pf3);
|
||||
lod += textureQueryLod(samp1DAs, pf);
|
||||
lod += textureQueryLod(samp2DAs, pf2);
|
||||
lod += textureQueryLod(sampCubeAs, pf3);
|
||||
|
||||
int levels;
|
||||
|
||||
levels = textureQueryLevels(samp1D);
|
||||
levels += textureQueryLevels(usamp2D);
|
||||
levels += textureQueryLevels(isamp3D);
|
||||
levels += textureQueryLevels(isampCube);
|
||||
levels += textureQueryLevels(isamp1DA);
|
||||
levels += textureQueryLevels(samp2DA);
|
||||
levels += textureQueryLevels(usampCubeA);
|
||||
|
||||
levels = textureQueryLevels(samp1Ds);
|
||||
levels += textureQueryLevels(samp2Ds);
|
||||
levels += textureQueryLevels(sampCubes);
|
||||
levels += textureQueryLevels(samp1DAs);
|
||||
levels += textureQueryLevels(samp2DAs);
|
||||
levels += textureQueryLevels(sampCubeAs);
|
||||
}
|
@ -80,3 +80,4 @@ spv.voidFunction.frag
|
||||
spv.whileLoop.frag
|
||||
spv.atomic.comp
|
||||
spv.AofA.frag
|
||||
spv.queryL.frag
|
||||
|
@ -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 "3.0.755"
|
||||
#define GLSLANG_REVISION "3.0.756"
|
||||
#define GLSLANG_DATE "15-Sep-2015"
|
||||
|
@ -1848,7 +1848,8 @@ void TBuiltIns::initialize(int version, EProfile profile)
|
||||
if (version >= 130)
|
||||
add2ndGenerationSamplingImaging(version, profile);
|
||||
|
||||
// printf("%s\n", commonBuiltins.c_str());
|
||||
//printf("%s\n", commonBuiltins.c_str());
|
||||
//printf("%s\n", stageBuiltins[EShLangFragment].c_str());
|
||||
}
|
||||
|
||||
//
|
||||
@ -1946,21 +1947,21 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile)
|
||||
//
|
||||
void TBuiltIns::addQueryFunctions(TSampler sampler, TString& typeName, int version, EProfile profile)
|
||||
{
|
||||
//
|
||||
// textureSize
|
||||
//
|
||||
|
||||
if (sampler.image && ((profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 430)))
|
||||
return;
|
||||
|
||||
//
|
||||
// textureSize() and imageSize()
|
||||
//
|
||||
|
||||
int sizeDims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0) - (sampler.dim == EsdCube ? 1 : 0);
|
||||
if (profile == EEsProfile)
|
||||
commonBuiltins.append("highp ");
|
||||
int dims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0) - (sampler.dim == EsdCube ? 1 : 0);
|
||||
if (dims == 1)
|
||||
if (sizeDims == 1)
|
||||
commonBuiltins.append("int");
|
||||
else {
|
||||
commonBuiltins.append("ivec");
|
||||
commonBuiltins.append(postfixes[dims]);
|
||||
commonBuiltins.append(postfixes[sizeDims]);
|
||||
}
|
||||
if (sampler.image)
|
||||
commonBuiltins.append(" imageSize(readonly writeonly volatile coherent ");
|
||||
@ -1972,6 +1973,10 @@ void TBuiltIns::addQueryFunctions(TSampler sampler, TString& typeName, int versi
|
||||
else
|
||||
commonBuiltins.append(");\n");
|
||||
|
||||
//
|
||||
// textureSamples() and imageSamples()
|
||||
//
|
||||
|
||||
// GL_ARB_shader_texture_image_samples
|
||||
// TODO: spec issue? there are no memory qualifiers; how to query a writeonly/readonly image, etc?
|
||||
if (profile != EEsProfile && version >= 430 && sampler.ms) {
|
||||
@ -1983,6 +1988,32 @@ void TBuiltIns::addQueryFunctions(TSampler sampler, TString& typeName, int versi
|
||||
commonBuiltins.append(typeName);
|
||||
commonBuiltins.append(");\n");
|
||||
}
|
||||
|
||||
//
|
||||
// textureQueryLod(), fragment stage only
|
||||
//
|
||||
|
||||
if (profile != EEsProfile && version >= 400 && ! sampler.image && sampler.dim != EsdRect && ! sampler.ms && sampler.dim != EsdBuffer) {
|
||||
stageBuiltins[EShLangFragment].append("vec2 textureQueryLod(");
|
||||
stageBuiltins[EShLangFragment].append(typeName);
|
||||
if (dimMap[sampler.dim] == 1)
|
||||
stageBuiltins[EShLangFragment].append(", float");
|
||||
else {
|
||||
stageBuiltins[EShLangFragment].append(", vec");
|
||||
stageBuiltins[EShLangFragment].append(postfixes[dimMap[sampler.dim]]);
|
||||
}
|
||||
stageBuiltins[EShLangFragment].append(");\n");
|
||||
}
|
||||
|
||||
//
|
||||
// textureQueryLevels()
|
||||
//
|
||||
|
||||
if (profile != EEsProfile && version >= 430 && ! sampler.image && sampler.dim != EsdRect && ! sampler.ms && sampler.dim != EsdBuffer) {
|
||||
commonBuiltins.append("int textureQueryLevels(");
|
||||
commonBuiltins.append(typeName);
|
||||
commonBuiltins.append(");\n");
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user