Merge pull request #1 from KhronosGroup/master
Sync local master branch from the upstream
This commit is contained in:
commit
42323e4107
@ -1,6 +1,6 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix" FORCE)
|
||||
set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix")
|
||||
|
||||
project(glslang)
|
||||
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
This directory contains a Linux binary for the glslang validator.
|
||||
|
||||
Installation: The executable in this directory is self sufficient, and can be
|
||||
placed where desired; in a test directory, or in a system path, etc.
|
||||
|
||||
Usage: Execute glslangValidator with no arguments to get a usage statement.
|
||||
Binary file not shown.
@ -1 +0,0 @@
|
||||
sudo cp glslangValidator /usr/local/bin
|
||||
@ -1,6 +0,0 @@
|
||||
This directory contains a Windows binary for the glslang validator.
|
||||
|
||||
Installation: The executable in this directory is self sufficient, and can be
|
||||
placed where desired; in a test directory, or in a system path, etc.
|
||||
|
||||
Usage: Execute glslangValidator with no arguments to get a usage statement.
|
||||
Binary file not shown.
18
README.md
18
README.md
@ -25,8 +25,6 @@ Things left to do: See `Todo.txt`
|
||||
Execution of Standalone Wrapper
|
||||
-------------------------------
|
||||
|
||||
There are binaries in the `Install/Windows` and `Install/Linux` directories.
|
||||
|
||||
To use the standalone binary form, execute `glslangValidator`, and it will print
|
||||
a usage statement. Basic operation is to give it a file containing a shader,
|
||||
and it will print out warnings/errors and optionally an AST.
|
||||
@ -109,16 +107,24 @@ warning/error and other options for controling compilation.
|
||||
Testing
|
||||
-------
|
||||
|
||||
Test results should always be included with a pull request that modifies
|
||||
functionality. There is a simple process for doing this, described here:
|
||||
|
||||
`Test` is an active test directory that contains test input and a
|
||||
subdirectory `baseResults` that contains the expected results of the
|
||||
tests. Both the tests and `baseResults` are under source-code control.
|
||||
Executing the script `./runtests` will generate current results in
|
||||
the `localResults` directory and `diff` them against the `baseResults`.
|
||||
When you want to update the tracked test results, they need to be
|
||||
copied from `localResults` to `baseResults`.
|
||||
|
||||
There are some tests borrowed from LunarGLASS. If LunarGLASS is
|
||||
missing, those tests just won't run.
|
||||
When you want to update the tracked test results, they need to be
|
||||
copied from `localResults` to `baseResults`. This can be done by
|
||||
the `bump` shell script.
|
||||
|
||||
The list of files tested comes from `testlist`, and lists input shaders
|
||||
in this directory, which must all be public for this to work. However,
|
||||
you can add your own private list of tests, not tracked here, by using
|
||||
`localtestlist` to list non-tracked tests. This is automatically read
|
||||
by `runtests` and included in the `diff` and `bump` process.
|
||||
|
||||
Basic Internal Operation
|
||||
------------------------
|
||||
|
||||
@ -88,6 +88,10 @@ protected:
|
||||
spv::Id createSpvVariable(const glslang::TIntermSymbol*);
|
||||
spv::Id getSampledType(const glslang::TSampler&);
|
||||
spv::Id convertGlslangToSpvType(const glslang::TType& type);
|
||||
spv::Id convertGlslangToSpvType(const glslang::TType& type, bool explicitLayout);
|
||||
bool requiresExplicitLayout(const glslang::TType& type) const;
|
||||
int getArrayStride(const glslang::TType& arrayType);
|
||||
int getMatrixStride(const glslang::TType& matrixType);
|
||||
void updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset);
|
||||
|
||||
bool isShaderEntrypoint(const glslang::TIntermAggregate* node);
|
||||
@ -1316,8 +1320,16 @@ spv::Id TGlslangToSpvTraverser::getSampledType(const glslang::TSampler& sampler)
|
||||
}
|
||||
}
|
||||
|
||||
// Do full recursive conversion of an arbitrary glslang type to a SPIR-V Id.
|
||||
// Convert from a glslang type to an SPV type, by calling into
|
||||
// recursive version of this function.
|
||||
spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type)
|
||||
{
|
||||
return convertGlslangToSpvType(type, requiresExplicitLayout(type));
|
||||
}
|
||||
|
||||
// Do full recursive conversion of an arbitrary glslang type to a SPIR-V Id.
|
||||
// explicitLayout can be kept the same throughout the heirarchical recursive walk.
|
||||
spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, bool explicitLayout)
|
||||
{
|
||||
spv::Id spvType = 0;
|
||||
|
||||
@ -1381,7 +1393,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
} else {
|
||||
if (type.getBasicType() == glslang::EbtBlock)
|
||||
memberRemapper[glslangStruct][i] = i - memberDelta;
|
||||
structFields.push_back(convertGlslangToSpvType(glslangType));
|
||||
structFields.push_back(convertGlslangToSpvType(glslangType, explicitLayout));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1409,7 +1421,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
builder.addMemberDecoration(spvType, member, spv::DecorationComponent, glslangType.getQualifier().layoutComponent);
|
||||
if (glslangType.getQualifier().hasXfbOffset())
|
||||
builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangType.getQualifier().layoutXfbOffset);
|
||||
else {
|
||||
else if (explicitLayout) {
|
||||
// figure out what to do with offset, which is accumulating
|
||||
int nextOffset;
|
||||
updateMemberOffset(type, glslangType, offset, nextOffset);
|
||||
@ -1418,6 +1430,10 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
offset = nextOffset;
|
||||
}
|
||||
|
||||
if (glslangType.isMatrix() && explicitLayout) {
|
||||
builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride, getMatrixStride(glslangType));
|
||||
}
|
||||
|
||||
// built-in variable decorations
|
||||
spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangType.getQualifier().builtIn);
|
||||
if (builtIn != spv::BadValue)
|
||||
@ -1459,11 +1475,40 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
} else
|
||||
arraySize = type.getOuterArraySize();
|
||||
spvType = builder.makeArrayType(spvType, arraySize);
|
||||
|
||||
if (explicitLayout)
|
||||
builder.addDecoration(spvType, spv::DecorationArrayStride, getArrayStride(type));
|
||||
}
|
||||
|
||||
return spvType;
|
||||
}
|
||||
|
||||
bool TGlslangToSpvTraverser::requiresExplicitLayout(const glslang::TType& type) const
|
||||
{
|
||||
return type.getBasicType() == glslang::EbtBlock &&
|
||||
type.getQualifier().layoutPacking != glslang::ElpShared &&
|
||||
type.getQualifier().layoutPacking != glslang::ElpPacked &&
|
||||
(type.getQualifier().storage == glslang::EvqUniform ||
|
||||
type.getQualifier().storage == glslang::EvqBuffer);
|
||||
}
|
||||
|
||||
// Given an array type, returns the integer stride required for that array
|
||||
int TGlslangToSpvTraverser::getArrayStride(const glslang::TType& arrayType)
|
||||
{
|
||||
glslang::TType derefType(arrayType, 0);
|
||||
int size;
|
||||
glslangIntermediate->getBaseAlignment(derefType, size, true);
|
||||
return size;
|
||||
}
|
||||
|
||||
// Given a matrix type, returns the integer stride required for that matrix
|
||||
// when used as a member of an interface block
|
||||
int TGlslangToSpvTraverser::getMatrixStride(const glslang::TType& matrixType)
|
||||
{
|
||||
int size;
|
||||
return glslangIntermediate->getBaseAlignment(matrixType, size, true);
|
||||
}
|
||||
|
||||
// Given a member type of a struct, realign the current offset for it, and compute
|
||||
// the next (not yet aligned) offset for the next member, which will get aligned
|
||||
// on the next call.
|
||||
@ -1666,8 +1711,6 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
|
||||
// This is no longer a query....
|
||||
|
||||
if (cracked.fetch)
|
||||
spv::MissingFunctionality("texel fetch");
|
||||
if (cracked.gather)
|
||||
spv::MissingFunctionality("texture gather");
|
||||
|
||||
@ -1723,7 +1766,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
++extraArgs;
|
||||
}
|
||||
|
||||
return builder.createTextureCall(precision, convertGlslangToSpvType(node->getType()), cracked.proj, params);
|
||||
return builder.createTextureCall(precision, convertGlslangToSpvType(node->getType()), cracked.fetch, cracked.proj, params);
|
||||
}
|
||||
|
||||
spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAggregate* node)
|
||||
|
||||
@ -1137,7 +1137,7 @@ Id Builder::createBuiltinCall(Decoration /*precision*/, Id resultType, Id builti
|
||||
|
||||
// Accept all parameters needed to create a texture instruction.
|
||||
// Create the correct instruction based on the inputs, and make the call.
|
||||
Id Builder::createTextureCall(Decoration precision, Id resultType, bool proj, const TextureParameters& parameters)
|
||||
Id Builder::createTextureCall(Decoration precision, Id resultType, bool fetch, bool proj, const TextureParameters& parameters)
|
||||
{
|
||||
static const int maxTextureArgs = 10;
|
||||
Id texArgs[maxTextureArgs] = {};
|
||||
@ -1196,7 +1196,9 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool proj, co
|
||||
//
|
||||
Op opCode;
|
||||
opCode = OpImageSampleImplicitLod;
|
||||
if (xplicit) {
|
||||
if (fetch) {
|
||||
opCode = OpImageFetch;
|
||||
} else if (xplicit) {
|
||||
if (parameters.Dref) {
|
||||
if (proj)
|
||||
opCode = OpImageSampleProjDrefExplicitLod;
|
||||
|
||||
@ -298,7 +298,7 @@ public:
|
||||
};
|
||||
|
||||
// Select the correct texture operation based on all inputs, and emit the correct instruction
|
||||
Id createTextureCall(Decoration precision, Id resultType, bool proj, const TextureParameters&);
|
||||
Id createTextureCall(Decoration precision, Id resultType, bool fetch, bool proj, const TextureParameters&);
|
||||
|
||||
// Emit the OpTextureQuery* instruction that was passed in.
|
||||
// Figure out the right return value and type, and return it.
|
||||
|
||||
4
Test/baseResults/preprocessor.defined.vert.err
Normal file
4
Test/baseResults/preprocessor.defined.vert.err
Normal file
@ -0,0 +1,4 @@
|
||||
ERROR: 0:2: '#define' : "defined" can't be (un)defined: defined
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
||||
0
Test/baseResults/preprocessor.defined.vert.out
Normal file
0
Test/baseResults/preprocessor.defined.vert.out
Normal file
@ -36,16 +36,23 @@ Linked fragment stage:
|
||||
Decorate 34(gl_ClipDistance) BuiltIn ClipDistance
|
||||
Decorate 43(k) Smooth
|
||||
Decorate 86(samp2Da) NoStaticUse
|
||||
Decorate 89 ArrayStride 64
|
||||
Decorate 89 ArrayStride 64
|
||||
MemberDecorate 90(bn) 0 RowMajor
|
||||
MemberDecorate 90(bn) 0 Offset 0
|
||||
MemberDecorate 90(bn) 0 MatrixStride 16
|
||||
MemberDecorate 90(bn) 1 ColMajor
|
||||
MemberDecorate 90(bn) 1 Offset 256
|
||||
MemberDecorate 90(bn) 1 MatrixStride 16
|
||||
MemberDecorate 90(bn) 2 RowMajor
|
||||
MemberDecorate 90(bn) 2 Offset 512
|
||||
MemberDecorate 90(bn) 2 MatrixStride 16
|
||||
MemberDecorate 90(bn) 3 ColMajor
|
||||
MemberDecorate 90(bn) 3 Offset 576
|
||||
MemberDecorate 90(bn) 3 MatrixStride 16
|
||||
MemberDecorate 90(bn) 4 RowMajor
|
||||
MemberDecorate 90(bn) 4 Offset 640
|
||||
MemberDecorate 90(bn) 4 MatrixStride 16
|
||||
Decorate 90(bn) Block
|
||||
Decorate 92 NoStaticUse
|
||||
2: TypeVoid
|
||||
|
||||
@ -46,10 +46,13 @@ Linked vertex stage:
|
||||
Decorate 12(p) Location 3
|
||||
MemberDecorate 18(Transform) 0 RowMajor
|
||||
MemberDecorate 18(Transform) 0 Offset 0
|
||||
MemberDecorate 18(Transform) 0 MatrixStride 16
|
||||
MemberDecorate 18(Transform) 1 ColMajor
|
||||
MemberDecorate 18(Transform) 1 Offset 64
|
||||
MemberDecorate 18(Transform) 1 MatrixStride 16
|
||||
MemberDecorate 18(Transform) 2 RowMajor
|
||||
MemberDecorate 18(Transform) 2 Offset 128
|
||||
MemberDecorate 18(Transform) 2 MatrixStride 16
|
||||
MemberDecorate 18(Transform) 3 Offset 176
|
||||
Decorate 18(Transform) Block
|
||||
MemberDecorate 34(T3) 0 ColMajor
|
||||
|
||||
@ -5,4 +5,341 @@ Warning, version 430 is not yet complete; most version-specific features are pre
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Missing functionality: texel fetch
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 256
|
||||
|
||||
Source GLSL 430
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "v"
|
||||
Name 14 "s2D"
|
||||
Name 18 "c2D"
|
||||
Name 24 "s3D"
|
||||
Name 27 "c4D"
|
||||
Name 35 "s2DArray"
|
||||
Name 39 "c3D"
|
||||
Name 48 "s2DShadow"
|
||||
Name 56 "c1D"
|
||||
Name 68 "ic3D"
|
||||
Name 71 "ic1D"
|
||||
Name 78 "ic2D"
|
||||
Name 103 "sCube"
|
||||
Name 114 "s2DArrayShadow"
|
||||
Name 142 "iv"
|
||||
Name 146 "is2D"
|
||||
Name 181 "is3D"
|
||||
Name 193 "isCube"
|
||||
Name 205 "is2DArray"
|
||||
Name 215 "iv2"
|
||||
Name 219 "sCubeShadow"
|
||||
Name 224 "FragData"
|
||||
Name 236 "is2Dms"
|
||||
Name 241 "us2D"
|
||||
Name 245 "us3D"
|
||||
Name 249 "usCube"
|
||||
Name 253 "us2DArray"
|
||||
Name 255 "ic4D"
|
||||
Decorate 18(c2D) Smooth
|
||||
Decorate 27(c4D) Smooth
|
||||
Decorate 39(c3D) Smooth
|
||||
Decorate 56(c1D) Smooth
|
||||
Decorate 68(ic3D) Flat
|
||||
Decorate 71(ic1D) Flat
|
||||
Decorate 78(ic2D) Flat
|
||||
Decorate 236(is2Dms) NoStaticUse
|
||||
Decorate 241(us2D) NoStaticUse
|
||||
Decorate 245(us3D) NoStaticUse
|
||||
Decorate 249(usCube) NoStaticUse
|
||||
Decorate 253(us2DArray) NoStaticUse
|
||||
Decorate 255(ic4D) Flat
|
||||
Decorate 255(ic4D) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: TypeImage 7(float) 2D sampled format:Unknown
|
||||
12: TypeSampledImage 11
|
||||
13: TypePointer UniformConstant 12
|
||||
14(s2D): 13(ptr) Variable UniformConstant
|
||||
16: TypeVector 7(float) 2
|
||||
17: TypePointer Input 16(fvec2)
|
||||
18(c2D): 17(ptr) Variable Input
|
||||
21: TypeImage 7(float) 3D sampled format:Unknown
|
||||
22: TypeSampledImage 21
|
||||
23: TypePointer UniformConstant 22
|
||||
24(s3D): 23(ptr) Variable UniformConstant
|
||||
26: TypePointer Input 8(fvec4)
|
||||
27(c4D): 26(ptr) Variable Input
|
||||
32: TypeImage 7(float) 2D array sampled format:Unknown
|
||||
33: TypeSampledImage 32
|
||||
34: TypePointer UniformConstant 33
|
||||
35(s2DArray): 34(ptr) Variable UniformConstant
|
||||
37: TypeVector 7(float) 3
|
||||
38: TypePointer Input 37(fvec3)
|
||||
39(c3D): 38(ptr) Variable Input
|
||||
41: 7(float) Constant 1067030938
|
||||
45: TypeImage 7(float) 2D depth sampled format:Unknown
|
||||
46: TypeSampledImage 45
|
||||
47: TypePointer UniformConstant 46
|
||||
48(s2DShadow): 47(ptr) Variable UniformConstant
|
||||
51: TypeInt 32 1
|
||||
52: TypeVector 51(int) 2
|
||||
53: 51(int) Constant 3
|
||||
54: 52(ivec2) ConstantComposite 53 53
|
||||
55: TypePointer Input 7(float)
|
||||
56(c1D): 55(ptr) Variable Input
|
||||
66: TypeVector 51(int) 3
|
||||
67: TypePointer Input 66(ivec3)
|
||||
68(ic3D): 67(ptr) Variable Input
|
||||
70: TypePointer Input 51(int)
|
||||
71(ic1D): 70(ptr) Variable Input
|
||||
77: TypePointer Input 52(ivec2)
|
||||
78(ic2D): 77(ptr) Variable Input
|
||||
80: 51(int) Constant 4
|
||||
100: TypeImage 7(float) Cube sampled format:Unknown
|
||||
101: TypeSampledImage 100
|
||||
102: TypePointer UniformConstant 101
|
||||
103(sCube): 102(ptr) Variable UniformConstant
|
||||
111: TypeImage 7(float) 2D depth array sampled format:Unknown
|
||||
112: TypeSampledImage 111
|
||||
113: TypePointer UniformConstant 112
|
||||
114(s2DArrayShadow): 113(ptr) Variable UniformConstant
|
||||
140: TypeVector 51(int) 4
|
||||
141: TypePointer Function 140(ivec4)
|
||||
143: TypeImage 51(int) 2D sampled format:Unknown
|
||||
144: TypeSampledImage 143
|
||||
145: TypePointer UniformConstant 144
|
||||
146(is2D): 145(ptr) Variable UniformConstant
|
||||
178: TypeImage 51(int) 3D sampled format:Unknown
|
||||
179: TypeSampledImage 178
|
||||
180: TypePointer UniformConstant 179
|
||||
181(is3D): 180(ptr) Variable UniformConstant
|
||||
184: 7(float) Constant 1082549862
|
||||
190: TypeImage 51(int) Cube sampled format:Unknown
|
||||
191: TypeSampledImage 190
|
||||
192: TypePointer UniformConstant 191
|
||||
193(isCube): 192(ptr) Variable UniformConstant
|
||||
202: TypeImage 51(int) 2D array sampled format:Unknown
|
||||
203: TypeSampledImage 202
|
||||
204: TypePointer UniformConstant 203
|
||||
205(is2DArray): 204(ptr) Variable UniformConstant
|
||||
214: TypePointer Function 52(ivec2)
|
||||
216: TypeImage 7(float) Cube depth sampled format:Unknown
|
||||
217: TypeSampledImage 216
|
||||
218: TypePointer UniformConstant 217
|
||||
219(sCubeShadow): 218(ptr) Variable UniformConstant
|
||||
221: 51(int) Constant 2
|
||||
223: TypePointer Output 8(fvec4)
|
||||
224(FragData): 223(ptr) Variable Output
|
||||
228: 7(float) Constant 0
|
||||
233: TypeImage 51(int) 2D multi-sampled sampled format:Unknown
|
||||
234: TypeSampledImage 233
|
||||
235: TypePointer UniformConstant 234
|
||||
236(is2Dms): 235(ptr) Variable UniformConstant
|
||||
237: TypeInt 32 0
|
||||
238: TypeImage 237(int) 2D sampled format:Unknown
|
||||
239: TypeSampledImage 238
|
||||
240: TypePointer UniformConstant 239
|
||||
241(us2D): 240(ptr) Variable UniformConstant
|
||||
242: TypeImage 237(int) 3D sampled format:Unknown
|
||||
243: TypeSampledImage 242
|
||||
244: TypePointer UniformConstant 243
|
||||
245(us3D): 244(ptr) Variable UniformConstant
|
||||
246: TypeImage 237(int) Cube sampled format:Unknown
|
||||
247: TypeSampledImage 246
|
||||
248: TypePointer UniformConstant 247
|
||||
249(usCube): 248(ptr) Variable UniformConstant
|
||||
250: TypeImage 237(int) 2D array sampled format:Unknown
|
||||
251: TypeSampledImage 250
|
||||
252: TypePointer UniformConstant 251
|
||||
253(us2DArray): 252(ptr) Variable UniformConstant
|
||||
254: TypePointer Input 140(ivec4)
|
||||
255(ic4D): 254(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(v): 9(ptr) Variable Function
|
||||
142(iv): 141(ptr) Variable Function
|
||||
215(iv2): 214(ptr) Variable Function
|
||||
15: 12 Load 14(s2D)
|
||||
19: 16(fvec2) Load 18(c2D)
|
||||
20: 8(fvec4) ImageSampleImplicitLod 15 19
|
||||
Store 10(v) 20
|
||||
25: 22 Load 24(s3D)
|
||||
28: 8(fvec4) Load 27(c4D)
|
||||
29: 8(fvec4) ImageSampleProjImplicitLod 25 28
|
||||
30: 8(fvec4) Load 10(v)
|
||||
31: 8(fvec4) FAdd 30 29
|
||||
Store 10(v) 31
|
||||
36: 33 Load 35(s2DArray)
|
||||
40: 37(fvec3) Load 39(c3D)
|
||||
42: 8(fvec4) ImageSampleExplicitLod 36 40 41
|
||||
43: 8(fvec4) Load 10(v)
|
||||
44: 8(fvec4) FAdd 43 42
|
||||
Store 10(v) 44
|
||||
49: 46 Load 48(s2DShadow)
|
||||
50: 37(fvec3) Load 39(c3D)
|
||||
57: 7(float) Load 56(c1D)
|
||||
58: 7(float) CompositeExtract 50 2
|
||||
59: 7(float) ImageSampleDrefImplicitLod 49 50 58 57 54
|
||||
60: 8(fvec4) Load 10(v)
|
||||
61: 7(float) CompositeExtract 60 1
|
||||
62: 7(float) FAdd 61 59
|
||||
63: 8(fvec4) Load 10(v)
|
||||
64: 8(fvec4) CompositeInsert 62 63 1
|
||||
Store 10(v) 64
|
||||
65: 22 Load 24(s3D)
|
||||
69: 66(ivec3) Load 68(ic3D)
|
||||
72: 51(int) Load 71(ic1D)
|
||||
73: 8(fvec4) ImageFetch 65 69
|
||||
74: 8(fvec4) Load 10(v)
|
||||
75: 8(fvec4) FAdd 74 73
|
||||
Store 10(v) 75
|
||||
76: 12 Load 14(s2D)
|
||||
79: 52(ivec2) Load 78(ic2D)
|
||||
81: 8(fvec4) ImageFetch 76 79 80
|
||||
82: 8(fvec4) Load 10(v)
|
||||
83: 8(fvec4) FAdd 82 81
|
||||
Store 10(v) 83
|
||||
84: 46 Load 48(s2DShadow)
|
||||
85: 37(fvec3) Load 39(c3D)
|
||||
86: 7(float) Load 56(c1D)
|
||||
87: 7(float) CompositeExtract 85 2
|
||||
88: 7(float) ImageSampleDrefExplicitLod 84 85 87 86 54
|
||||
89: 8(fvec4) Load 10(v)
|
||||
90: 7(float) CompositeExtract 89 1
|
||||
91: 7(float) FAdd 90 88
|
||||
92: 8(fvec4) Load 10(v)
|
||||
93: 8(fvec4) CompositeInsert 91 92 1
|
||||
Store 10(v) 93
|
||||
94: 12 Load 14(s2D)
|
||||
95: 37(fvec3) Load 39(c3D)
|
||||
96: 7(float) Load 56(c1D)
|
||||
97: 8(fvec4) ImageSampleProjExplicitLod 94 95 96 54
|
||||
98: 8(fvec4) Load 10(v)
|
||||
99: 8(fvec4) FAdd 98 97
|
||||
Store 10(v) 99
|
||||
104: 101 Load 103(sCube)
|
||||
105: 37(fvec3) Load 39(c3D)
|
||||
106: 37(fvec3) Load 39(c3D)
|
||||
107: 37(fvec3) Load 39(c3D)
|
||||
108: 8(fvec4) ImageSampleExplicitLod 104 105 106 107
|
||||
109: 8(fvec4) Load 10(v)
|
||||
110: 8(fvec4) FAdd 109 108
|
||||
Store 10(v) 110
|
||||
115: 112 Load 114(s2DArrayShadow)
|
||||
116: 8(fvec4) Load 27(c4D)
|
||||
117: 16(fvec2) Load 18(c2D)
|
||||
118: 16(fvec2) Load 18(c2D)
|
||||
119: 7(float) CompositeExtract 116 3
|
||||
120: 7(float) ImageSampleDrefExplicitLod 115 116 119 117 118 54
|
||||
121: 8(fvec4) Load 10(v)
|
||||
122: 7(float) CompositeExtract 121 0
|
||||
123: 7(float) FAdd 122 120
|
||||
124: 8(fvec4) Load 10(v)
|
||||
125: 8(fvec4) CompositeInsert 123 124 0
|
||||
Store 10(v) 125
|
||||
126: 22 Load 24(s3D)
|
||||
127: 8(fvec4) Load 27(c4D)
|
||||
128: 37(fvec3) Load 39(c3D)
|
||||
129: 37(fvec3) Load 39(c3D)
|
||||
130: 8(fvec4) ImageSampleProjExplicitLod 126 127 128 129
|
||||
131: 8(fvec4) Load 10(v)
|
||||
132: 8(fvec4) FAdd 131 130
|
||||
Store 10(v) 132
|
||||
133: 12 Load 14(s2D)
|
||||
134: 37(fvec3) Load 39(c3D)
|
||||
135: 16(fvec2) Load 18(c2D)
|
||||
136: 16(fvec2) Load 18(c2D)
|
||||
137: 8(fvec4) ImageSampleProjExplicitLod 133 134 135 136 54
|
||||
138: 8(fvec4) Load 10(v)
|
||||
139: 8(fvec4) FAdd 138 137
|
||||
Store 10(v) 139
|
||||
147: 144 Load 146(is2D)
|
||||
148: 16(fvec2) Load 18(c2D)
|
||||
149: 140(ivec4) ImageSampleImplicitLod 147 148
|
||||
Store 142(iv) 149
|
||||
150: 140(ivec4) Load 142(iv)
|
||||
151: 8(fvec4) ConvertSToF 150
|
||||
152: 8(fvec4) Load 10(v)
|
||||
153: 8(fvec4) FAdd 152 151
|
||||
Store 10(v) 153
|
||||
154: 144 Load 146(is2D)
|
||||
155: 8(fvec4) Load 27(c4D)
|
||||
156: 140(ivec4) ImageSampleProjImplicitLod 154 155 54
|
||||
Store 142(iv) 156
|
||||
157: 140(ivec4) Load 142(iv)
|
||||
158: 8(fvec4) ConvertSToF 157
|
||||
159: 8(fvec4) Load 10(v)
|
||||
160: 8(fvec4) FAdd 159 158
|
||||
Store 10(v) 160
|
||||
161: 144 Load 146(is2D)
|
||||
162: 37(fvec3) Load 39(c3D)
|
||||
163: 7(float) Load 56(c1D)
|
||||
164: 140(ivec4) ImageSampleProjExplicitLod 161 162 163
|
||||
Store 142(iv) 164
|
||||
165: 140(ivec4) Load 142(iv)
|
||||
166: 8(fvec4) ConvertSToF 165
|
||||
167: 8(fvec4) Load 10(v)
|
||||
168: 8(fvec4) FAdd 167 166
|
||||
Store 10(v) 168
|
||||
169: 144 Load 146(is2D)
|
||||
170: 37(fvec3) Load 39(c3D)
|
||||
171: 16(fvec2) Load 18(c2D)
|
||||
172: 16(fvec2) Load 18(c2D)
|
||||
173: 140(ivec4) ImageSampleProjExplicitLod 169 170 171 172
|
||||
Store 142(iv) 173
|
||||
174: 140(ivec4) Load 142(iv)
|
||||
175: 8(fvec4) ConvertSToF 174
|
||||
176: 8(fvec4) Load 10(v)
|
||||
177: 8(fvec4) FAdd 176 175
|
||||
Store 10(v) 177
|
||||
182: 179 Load 181(is3D)
|
||||
183: 37(fvec3) Load 39(c3D)
|
||||
185: 140(ivec4) ImageSampleImplicitLod 182 183 184
|
||||
Store 142(iv) 185
|
||||
186: 140(ivec4) Load 142(iv)
|
||||
187: 8(fvec4) ConvertSToF 186
|
||||
188: 8(fvec4) Load 10(v)
|
||||
189: 8(fvec4) FAdd 188 187
|
||||
Store 10(v) 189
|
||||
194: 191 Load 193(isCube)
|
||||
195: 37(fvec3) Load 39(c3D)
|
||||
196: 7(float) Load 56(c1D)
|
||||
197: 140(ivec4) ImageSampleExplicitLod 194 195 196
|
||||
Store 142(iv) 197
|
||||
198: 140(ivec4) Load 142(iv)
|
||||
199: 8(fvec4) ConvertSToF 198
|
||||
200: 8(fvec4) Load 10(v)
|
||||
201: 8(fvec4) FAdd 200 199
|
||||
Store 10(v) 201
|
||||
206: 203 Load 205(is2DArray)
|
||||
207: 66(ivec3) Load 68(ic3D)
|
||||
208: 51(int) Load 71(ic1D)
|
||||
209: 140(ivec4) ImageFetch 206 207
|
||||
Store 142(iv) 209
|
||||
210: 140(ivec4) Load 142(iv)
|
||||
211: 8(fvec4) ConvertSToF 210
|
||||
212: 8(fvec4) Load 10(v)
|
||||
213: 8(fvec4) FAdd 212 211
|
||||
Store 10(v) 213
|
||||
220: 217 Load 219(sCubeShadow)
|
||||
222: 52(ivec2) ImageQuerySizeLod 220 221
|
||||
Store 215(iv2) 222
|
||||
225: 8(fvec4) Load 10(v)
|
||||
226: 52(ivec2) Load 215(iv2)
|
||||
227: 16(fvec2) ConvertSToF 226
|
||||
229: 7(float) CompositeExtract 227 0
|
||||
230: 7(float) CompositeExtract 227 1
|
||||
231: 8(fvec4) CompositeConstruct 229 230 228 228
|
||||
232: 8(fvec4) FAdd 225 231
|
||||
Store 224(FragData) 232
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@ -6,4 +6,370 @@ WARNING: 0:15: varying deprecated in version 130; may be removed in future relea
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Missing functionality: texel fetch
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 283
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "blendscale"
|
||||
Name 11 "bias"
|
||||
Name 13 "lod"
|
||||
Name 15 "proj"
|
||||
Name 16 "coords1D"
|
||||
Name 19 "coords3D"
|
||||
Name 25 "coords4D"
|
||||
Name 27 "color"
|
||||
Name 33 "texSampler1D"
|
||||
Name 48 "coords2D"
|
||||
Name 73 "texSampler2D"
|
||||
Name 99 "texSampler3D"
|
||||
Name 125 "texSamplerCube"
|
||||
Name 140 "shadowSampler1D"
|
||||
Name 157 "shadowSampler2D"
|
||||
Name 200 "iCoords2D"
|
||||
Name 205 "iLod"
|
||||
Name 214 "gradX"
|
||||
Name 217 "gradY"
|
||||
Name 269 "gl_FragColor"
|
||||
Name 272 "u"
|
||||
Name 275 "blend"
|
||||
Name 281 "scale"
|
||||
Name 282 "t"
|
||||
Decorate 48(coords2D) Smooth
|
||||
Decorate 269(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 281(scale) NoStaticUse
|
||||
Decorate 282(t) Smooth
|
||||
Decorate 282(t) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypePointer Function 7(float)
|
||||
10: 7(float) Constant 1071971828
|
||||
12: 7(float) Constant 1073741824
|
||||
14: 7(float) Constant 1077936128
|
||||
17: TypeVector 7(float) 3
|
||||
18: TypePointer Function 17(fvec3)
|
||||
20: 7(float) Constant 1076753334
|
||||
21: 7(float) Constant 1079836148
|
||||
22: 17(fvec3) ConstantComposite 10 20 21
|
||||
23: TypeVector 7(float) 4
|
||||
24: TypePointer Function 23(fvec4)
|
||||
26: 23(fvec4) ConstantComposite 10 20 21 12
|
||||
28: 7(float) Constant 0
|
||||
29: 23(fvec4) ConstantComposite 28 28 28 28
|
||||
30: TypeImage 7(float) 1D sampled format:Unknown
|
||||
31: TypeSampledImage 30
|
||||
32: TypePointer UniformConstant 31
|
||||
33(texSampler1D): 32(ptr) Variable UniformConstant
|
||||
46: TypeVector 7(float) 2
|
||||
47: TypePointer Input 46(fvec2)
|
||||
48(coords2D): 47(ptr) Variable Input
|
||||
70: TypeImage 7(float) 2D sampled format:Unknown
|
||||
71: TypeSampledImage 70
|
||||
72: TypePointer UniformConstant 71
|
||||
73(texSampler2D): 72(ptr) Variable UniformConstant
|
||||
96: TypeImage 7(float) 3D sampled format:Unknown
|
||||
97: TypeSampledImage 96
|
||||
98: TypePointer UniformConstant 97
|
||||
99(texSampler3D): 98(ptr) Variable UniformConstant
|
||||
122: TypeImage 7(float) Cube sampled format:Unknown
|
||||
123: TypeSampledImage 122
|
||||
124: TypePointer UniformConstant 123
|
||||
125(texSamplerCube): 124(ptr) Variable UniformConstant
|
||||
137: TypeImage 7(float) 1D depth sampled format:Unknown
|
||||
138: TypeSampledImage 137
|
||||
139: TypePointer UniformConstant 138
|
||||
140(shadowSampler1D): 139(ptr) Variable UniformConstant
|
||||
154: TypeImage 7(float) 2D depth sampled format:Unknown
|
||||
155: TypeSampledImage 154
|
||||
156: TypePointer UniformConstant 155
|
||||
157(shadowSampler2D): 156(ptr) Variable UniformConstant
|
||||
197: TypeInt 32 1
|
||||
198: TypeVector 197(int) 2
|
||||
199: TypePointer Function 198(ivec2)
|
||||
201: 197(int) Constant 0
|
||||
202: 197(int) Constant 5
|
||||
203: 198(ivec2) ConstantComposite 201 202
|
||||
204: TypePointer Function 197(int)
|
||||
206: 197(int) Constant 1
|
||||
213: TypePointer Function 46(fvec2)
|
||||
242: 197(int) Constant 3
|
||||
243: 197(int) Constant 4294967289
|
||||
244: 198(ivec2) ConstantComposite 242 243
|
||||
268: TypePointer Output 23(fvec4)
|
||||
269(gl_FragColor): 268(ptr) Variable Output
|
||||
271: TypePointer UniformConstant 23(fvec4)
|
||||
272(u): 271(ptr) Variable UniformConstant
|
||||
274: TypePointer UniformConstant 7(float)
|
||||
275(blend): 274(ptr) Variable UniformConstant
|
||||
280: TypePointer UniformConstant 46(fvec2)
|
||||
281(scale): 280(ptr) Variable UniformConstant
|
||||
282(t): 47(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(blendscale): 8(ptr) Variable Function
|
||||
11(bias): 8(ptr) Variable Function
|
||||
13(lod): 8(ptr) Variable Function
|
||||
15(proj): 8(ptr) Variable Function
|
||||
16(coords1D): 8(ptr) Variable Function
|
||||
19(coords3D): 18(ptr) Variable Function
|
||||
25(coords4D): 24(ptr) Variable Function
|
||||
27(color): 24(ptr) Variable Function
|
||||
200(iCoords2D): 199(ptr) Variable Function
|
||||
205(iLod): 204(ptr) Variable Function
|
||||
214(gradX): 213(ptr) Variable Function
|
||||
217(gradY): 213(ptr) Variable Function
|
||||
Store 9(blendscale) 10
|
||||
Store 11(bias) 12
|
||||
Store 13(lod) 14
|
||||
Store 15(proj) 12
|
||||
Store 16(coords1D) 10
|
||||
Store 19(coords3D) 22
|
||||
Store 25(coords4D) 26
|
||||
Store 27(color) 29
|
||||
34: 31 Load 33(texSampler1D)
|
||||
35: 7(float) Load 16(coords1D)
|
||||
36: 23(fvec4) ImageSampleImplicitLod 34 35
|
||||
37: 23(fvec4) Load 27(color)
|
||||
38: 23(fvec4) FAdd 37 36
|
||||
Store 27(color) 38
|
||||
39: 31 Load 33(texSampler1D)
|
||||
40: 7(float) Load 16(coords1D)
|
||||
41: 7(float) Load 11(bias)
|
||||
42: 23(fvec4) ImageSampleImplicitLod 39 40 41
|
||||
43: 23(fvec4) Load 27(color)
|
||||
44: 23(fvec4) FAdd 43 42
|
||||
Store 27(color) 44
|
||||
45: 31 Load 33(texSampler1D)
|
||||
49: 46(fvec2) Load 48(coords2D)
|
||||
50: 23(fvec4) ImageSampleProjImplicitLod 45 49
|
||||
51: 23(fvec4) Load 27(color)
|
||||
52: 23(fvec4) FAdd 51 50
|
||||
Store 27(color) 52
|
||||
53: 31 Load 33(texSampler1D)
|
||||
54: 23(fvec4) Load 25(coords4D)
|
||||
55: 23(fvec4) ImageSampleProjImplicitLod 53 54
|
||||
56: 23(fvec4) Load 27(color)
|
||||
57: 23(fvec4) FAdd 56 55
|
||||
Store 27(color) 57
|
||||
58: 31 Load 33(texSampler1D)
|
||||
59: 46(fvec2) Load 48(coords2D)
|
||||
60: 7(float) Load 11(bias)
|
||||
61: 23(fvec4) ImageSampleProjImplicitLod 58 59 60
|
||||
62: 23(fvec4) Load 27(color)
|
||||
63: 23(fvec4) FAdd 62 61
|
||||
Store 27(color) 63
|
||||
64: 31 Load 33(texSampler1D)
|
||||
65: 23(fvec4) Load 25(coords4D)
|
||||
66: 7(float) Load 11(bias)
|
||||
67: 23(fvec4) ImageSampleProjImplicitLod 64 65 66
|
||||
68: 23(fvec4) Load 27(color)
|
||||
69: 23(fvec4) FAdd 68 67
|
||||
Store 27(color) 69
|
||||
74: 71 Load 73(texSampler2D)
|
||||
75: 46(fvec2) Load 48(coords2D)
|
||||
76: 23(fvec4) ImageSampleImplicitLod 74 75
|
||||
77: 23(fvec4) Load 27(color)
|
||||
78: 23(fvec4) FAdd 77 76
|
||||
Store 27(color) 78
|
||||
79: 71 Load 73(texSampler2D)
|
||||
80: 46(fvec2) Load 48(coords2D)
|
||||
81: 7(float) Load 11(bias)
|
||||
82: 23(fvec4) ImageSampleImplicitLod 79 80 81
|
||||
83: 23(fvec4) Load 27(color)
|
||||
84: 23(fvec4) FAdd 83 82
|
||||
Store 27(color) 84
|
||||
85: 71 Load 73(texSampler2D)
|
||||
86: 17(fvec3) Load 19(coords3D)
|
||||
87: 23(fvec4) ImageSampleProjImplicitLod 85 86
|
||||
88: 23(fvec4) Load 27(color)
|
||||
89: 23(fvec4) FAdd 88 87
|
||||
Store 27(color) 89
|
||||
90: 71 Load 73(texSampler2D)
|
||||
91: 23(fvec4) Load 25(coords4D)
|
||||
92: 7(float) Load 11(bias)
|
||||
93: 23(fvec4) ImageSampleProjImplicitLod 90 91 92
|
||||
94: 23(fvec4) Load 27(color)
|
||||
95: 23(fvec4) FAdd 94 93
|
||||
Store 27(color) 95
|
||||
100: 97 Load 99(texSampler3D)
|
||||
101: 17(fvec3) Load 19(coords3D)
|
||||
102: 23(fvec4) ImageSampleImplicitLod 100 101
|
||||
103: 23(fvec4) Load 27(color)
|
||||
104: 23(fvec4) FAdd 103 102
|
||||
Store 27(color) 104
|
||||
105: 97 Load 99(texSampler3D)
|
||||
106: 17(fvec3) Load 19(coords3D)
|
||||
107: 7(float) Load 11(bias)
|
||||
108: 23(fvec4) ImageSampleImplicitLod 105 106 107
|
||||
109: 23(fvec4) Load 27(color)
|
||||
110: 23(fvec4) FAdd 109 108
|
||||
Store 27(color) 110
|
||||
111: 97 Load 99(texSampler3D)
|
||||
112: 23(fvec4) Load 25(coords4D)
|
||||
113: 23(fvec4) ImageSampleProjImplicitLod 111 112
|
||||
114: 23(fvec4) Load 27(color)
|
||||
115: 23(fvec4) FAdd 114 113
|
||||
Store 27(color) 115
|
||||
116: 97 Load 99(texSampler3D)
|
||||
117: 23(fvec4) Load 25(coords4D)
|
||||
118: 7(float) Load 11(bias)
|
||||
119: 23(fvec4) ImageSampleProjImplicitLod 116 117 118
|
||||
120: 23(fvec4) Load 27(color)
|
||||
121: 23(fvec4) FAdd 120 119
|
||||
Store 27(color) 121
|
||||
126: 123 Load 125(texSamplerCube)
|
||||
127: 17(fvec3) Load 19(coords3D)
|
||||
128: 23(fvec4) ImageSampleImplicitLod 126 127
|
||||
129: 23(fvec4) Load 27(color)
|
||||
130: 23(fvec4) FAdd 129 128
|
||||
Store 27(color) 130
|
||||
131: 123 Load 125(texSamplerCube)
|
||||
132: 17(fvec3) Load 19(coords3D)
|
||||
133: 7(float) Load 11(bias)
|
||||
134: 23(fvec4) ImageSampleImplicitLod 131 132 133
|
||||
135: 23(fvec4) Load 27(color)
|
||||
136: 23(fvec4) FAdd 135 134
|
||||
Store 27(color) 136
|
||||
141: 138 Load 140(shadowSampler1D)
|
||||
142: 17(fvec3) Load 19(coords3D)
|
||||
143: 7(float) CompositeExtract 142 2
|
||||
144: 23(fvec4) ImageSampleDrefImplicitLod 141 142 143
|
||||
145: 23(fvec4) Load 27(color)
|
||||
146: 23(fvec4) FAdd 145 144
|
||||
Store 27(color) 146
|
||||
147: 138 Load 140(shadowSampler1D)
|
||||
148: 17(fvec3) Load 19(coords3D)
|
||||
149: 7(float) Load 11(bias)
|
||||
150: 7(float) CompositeExtract 148 2
|
||||
151: 23(fvec4) ImageSampleDrefImplicitLod 147 148 150 149
|
||||
152: 23(fvec4) Load 27(color)
|
||||
153: 23(fvec4) FAdd 152 151
|
||||
Store 27(color) 153
|
||||
158: 155 Load 157(shadowSampler2D)
|
||||
159: 17(fvec3) Load 19(coords3D)
|
||||
160: 7(float) CompositeExtract 159 2
|
||||
161: 23(fvec4) ImageSampleDrefImplicitLod 158 159 160
|
||||
162: 23(fvec4) Load 27(color)
|
||||
163: 23(fvec4) FAdd 162 161
|
||||
Store 27(color) 163
|
||||
164: 155 Load 157(shadowSampler2D)
|
||||
165: 17(fvec3) Load 19(coords3D)
|
||||
166: 7(float) Load 11(bias)
|
||||
167: 7(float) CompositeExtract 165 2
|
||||
168: 23(fvec4) ImageSampleDrefImplicitLod 164 165 167 166
|
||||
169: 23(fvec4) Load 27(color)
|
||||
170: 23(fvec4) FAdd 169 168
|
||||
Store 27(color) 170
|
||||
171: 138 Load 140(shadowSampler1D)
|
||||
172: 23(fvec4) Load 25(coords4D)
|
||||
173: 7(float) CompositeExtract 172 3
|
||||
174: 23(fvec4) ImageSampleProjDrefImplicitLod 171 172 173
|
||||
175: 23(fvec4) Load 27(color)
|
||||
176: 23(fvec4) FAdd 175 174
|
||||
Store 27(color) 176
|
||||
177: 138 Load 140(shadowSampler1D)
|
||||
178: 23(fvec4) Load 25(coords4D)
|
||||
179: 7(float) Load 11(bias)
|
||||
180: 7(float) CompositeExtract 178 3
|
||||
181: 23(fvec4) ImageSampleProjDrefImplicitLod 177 178 180 179
|
||||
182: 23(fvec4) Load 27(color)
|
||||
183: 23(fvec4) FAdd 182 181
|
||||
Store 27(color) 183
|
||||
184: 155 Load 157(shadowSampler2D)
|
||||
185: 23(fvec4) Load 25(coords4D)
|
||||
186: 7(float) CompositeExtract 185 3
|
||||
187: 23(fvec4) ImageSampleProjDrefImplicitLod 184 185 186
|
||||
188: 23(fvec4) Load 27(color)
|
||||
189: 23(fvec4) FAdd 188 187
|
||||
Store 27(color) 189
|
||||
190: 155 Load 157(shadowSampler2D)
|
||||
191: 23(fvec4) Load 25(coords4D)
|
||||
192: 7(float) Load 11(bias)
|
||||
193: 7(float) CompositeExtract 191 3
|
||||
194: 23(fvec4) ImageSampleProjDrefImplicitLod 190 191 193 192
|
||||
195: 23(fvec4) Load 27(color)
|
||||
196: 23(fvec4) FAdd 195 194
|
||||
Store 27(color) 196
|
||||
Store 200(iCoords2D) 203
|
||||
Store 205(iLod) 206
|
||||
207: 71 Load 73(texSampler2D)
|
||||
208: 198(ivec2) Load 200(iCoords2D)
|
||||
209: 197(int) Load 205(iLod)
|
||||
210: 23(fvec4) ImageFetch 207 208
|
||||
211: 23(fvec4) Load 27(color)
|
||||
212: 23(fvec4) FAdd 211 210
|
||||
Store 27(color) 212
|
||||
215: 46(fvec2) Load 48(coords2D)
|
||||
216: 46(fvec2) DPdx 215
|
||||
Store 214(gradX) 216
|
||||
218: 46(fvec2) Load 48(coords2D)
|
||||
219: 46(fvec2) DPdy 218
|
||||
Store 217(gradY) 219
|
||||
220: 71 Load 73(texSampler2D)
|
||||
221: 46(fvec2) Load 48(coords2D)
|
||||
222: 46(fvec2) Load 214(gradX)
|
||||
223: 46(fvec2) Load 217(gradY)
|
||||
224: 23(fvec4) ImageSampleExplicitLod 220 221 222 223
|
||||
225: 23(fvec4) Load 27(color)
|
||||
226: 23(fvec4) FAdd 225 224
|
||||
Store 27(color) 226
|
||||
227: 71 Load 73(texSampler2D)
|
||||
228: 46(fvec2) Load 48(coords2D)
|
||||
229: 7(float) Load 15(proj)
|
||||
230: 7(float) CompositeExtract 228 0
|
||||
231: 7(float) CompositeExtract 228 1
|
||||
232: 17(fvec3) CompositeConstruct 230 231 229
|
||||
233: 46(fvec2) Load 214(gradX)
|
||||
234: 46(fvec2) Load 217(gradY)
|
||||
235: 23(fvec4) ImageSampleProjExplicitLod 227 232 233 234
|
||||
236: 23(fvec4) Load 27(color)
|
||||
237: 23(fvec4) FAdd 236 235
|
||||
Store 27(color) 237
|
||||
238: 71 Load 73(texSampler2D)
|
||||
239: 46(fvec2) Load 48(coords2D)
|
||||
240: 46(fvec2) Load 214(gradX)
|
||||
241: 46(fvec2) Load 217(gradY)
|
||||
245: 23(fvec4) ImageSampleExplicitLod 238 239 240 241 244
|
||||
246: 23(fvec4) Load 27(color)
|
||||
247: 23(fvec4) FAdd 246 245
|
||||
Store 27(color) 247
|
||||
248: 71 Load 73(texSampler2D)
|
||||
249: 17(fvec3) Load 19(coords3D)
|
||||
250: 46(fvec2) Load 214(gradX)
|
||||
251: 46(fvec2) Load 217(gradY)
|
||||
252: 23(fvec4) ImageSampleProjExplicitLod 248 249 250 251 244
|
||||
253: 23(fvec4) Load 27(color)
|
||||
254: 23(fvec4) FAdd 253 252
|
||||
Store 27(color) 254
|
||||
255: 155 Load 157(shadowSampler2D)
|
||||
256: 46(fvec2) Load 48(coords2D)
|
||||
257: 7(float) Load 13(lod)
|
||||
258: 7(float) CompositeExtract 256 0
|
||||
259: 7(float) CompositeExtract 256 1
|
||||
260: 17(fvec3) CompositeConstruct 258 259 257
|
||||
261: 46(fvec2) Load 214(gradX)
|
||||
262: 46(fvec2) Load 217(gradY)
|
||||
263: 7(float) CompositeExtract 260 2
|
||||
264: 7(float) ImageSampleDrefExplicitLod 255 260 263 261 262
|
||||
265: 23(fvec4) Load 27(color)
|
||||
266: 23(fvec4) CompositeConstruct 264 264 264 264
|
||||
267: 23(fvec4) FAdd 265 266
|
||||
Store 27(color) 267
|
||||
270: 23(fvec4) Load 27(color)
|
||||
273: 23(fvec4) Load 272(u)
|
||||
276: 7(float) Load 275(blend)
|
||||
277: 7(float) Load 9(blendscale)
|
||||
278: 7(float) FMul 276 277
|
||||
279: 23(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 270 273 278
|
||||
Store 269(gl_FragColor) 279
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
2
Test/preprocessor.defined.vert
Normal file
2
Test/preprocessor.defined.vert
Normal file
@ -0,0 +1,2 @@
|
||||
#define defined_not_really
|
||||
#define defined // ERROR: "defined" can't be (un)defined:
|
||||
@ -11,3 +11,4 @@ preprocessor.line.frag
|
||||
preprocessor.pragma.vert
|
||||
preprocessor.simple.vert
|
||||
preprocessor.success_if_parse_would_fail.vert
|
||||
preprocessor.defined.vert
|
||||
|
||||
@ -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.732"
|
||||
#define GLSLANG_DATE "22-Aug-2015"
|
||||
#define GLSLANG_REVISION "3.0.746"
|
||||
#define GLSLANG_DATE "09-Sep-2015"
|
||||
|
||||
@ -2063,6 +2063,8 @@ void TParseContext::reservedPpErrorCheck(const TSourceLoc& loc, const char* iden
|
||||
// however, before that, ES tests required an error.
|
||||
if (strncmp(identifier, "GL_", 3) == 0)
|
||||
ppError(loc, "names beginning with \"GL_\" can't be (un)defined:", op, identifier);
|
||||
else if (strncmp(identifier, "defined", 8) == 0)
|
||||
ppError(loc, "\"defined\" can't be (un)defined:", op, identifier);
|
||||
else if (strstr(identifier, "__") != 0) {
|
||||
if (profile == EEsProfile && version >= 300 &&
|
||||
(strcmp(identifier, "__LINE__") == 0 ||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user