Merge remote-tracking branch 'aosp/upstream-master' into update-shaderc
Includes the following:
20f01e7 Fix last commit; EOptionKeepUncalled incorrect enum bug.
906cc21 Linker: Eliminate uncalled functions, because they can be ill-defined.
bf6d7f4 Linker: Track the mangled entry-point name along with the non-mangled one.
4b6ce41 GLSL Linker: Track entry point across compilation units.
6a60c2f Linker: Walk the call graph to report an error on missing bodies.
e795cc9 Merge pull request #621 from steve-lunarg/recursive-flattening
302e619 Merge pull request #619 from steve-lunarg/opcode-specific-promote
56b4547 Merge pull request #620 from fjhenigman/foo
a2b01a0 HLSL: Recursive composite flattening
05f7514 HLSL: opcode specific promotion rules for interlocked ops
8dcf202 GLSL: Always define TShader::~Includer().
b56f4ac Merge pull request #615 from dneto0/consistent-location-for-test-files
9df6aa5 GLSL: Allow desktop shaders to call functions from outside main().
ec2e27a Merge pull request #613 from Corillian/hlslpreprocess
5cc92c5 runtests should refer to test files in current directory
205dc4e Fixed processing #include's when preprocessing HLSL
fb06e95 Don't print the "Linked stage" message unless the AST is being dumped.
09512cb Merge branch 'steve-lunarg-intrinsic-promotion'
21b11f4 Merge branch 'intrinsic-promotion' of https://github.com/steve-lunarg/glslang into steve-lunarg-intrinsic-promotion
41be1cb Merge pull request #604 from steve-lunarg/entry-rename-2
f1e0c87 allow renaming of shader entry point when creating SPIR-V
ef33ec0 HLSL: add intrinsic function implicit promotions
Test: Linux x86-64; ran Windows unit tests
Change-Id: Ia03a8b944010267019fda338436c74050bce0cb9
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 7abd04d..15af947 100755
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -1352,7 +1352,7 @@
// anything else gets there, so visit out of order, doing them all now.
makeGlobalInitializers(node->getAsAggregate()->getSequence());
- // Initializers are done, don't want to visit again, but functions link objects need to be processed,
+ // Initializers are done, don't want to visit again, but functions and link objects need to be processed,
// so do them manually.
visitFunctions(node->getAsAggregate()->getSequence());
@@ -2634,7 +2634,7 @@
{
for (int f = 0; f < (int)glslFunctions.size(); ++f) {
glslang::TIntermAggregate* node = glslFunctions[f]->getAsAggregate();
- if (node && (node->getOp() == glslang::EOpFunction || node->getOp() == glslang ::EOpLinkerObjects))
+ if (node && (node->getOp() == glslang::EOpFunction || node->getOp() == glslang::EOpLinkerObjects))
node->traverse(this);
}
}
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index 377e7cb..d40673c 100644
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -60,29 +60,30 @@
// Command-line options
enum TOptions {
- EOptionNone = 0,
- EOptionIntermediate = (1 << 0),
- EOptionSuppressInfolog = (1 << 1),
- EOptionMemoryLeakMode = (1 << 2),
- EOptionRelaxedErrors = (1 << 3),
- EOptionGiveWarnings = (1 << 4),
- EOptionLinkProgram = (1 << 5),
- EOptionMultiThreaded = (1 << 6),
- EOptionDumpConfig = (1 << 7),
- EOptionDumpReflection = (1 << 8),
- EOptionSuppressWarnings = (1 << 9),
- EOptionDumpVersions = (1 << 10),
- EOptionSpv = (1 << 11),
- EOptionHumanReadableSpv = (1 << 12),
- EOptionVulkanRules = (1 << 13),
- EOptionDefaultDesktop = (1 << 14),
- EOptionOutputPreprocessed = (1 << 15),
- EOptionOutputHexadecimal = (1 << 16),
- EOptionReadHlsl = (1 << 17),
- EOptionCascadingErrors = (1 << 18),
- EOptionAutoMapBindings = (1 << 19),
+ EOptionNone = 0,
+ EOptionIntermediate = (1 << 0),
+ EOptionSuppressInfolog = (1 << 1),
+ EOptionMemoryLeakMode = (1 << 2),
+ EOptionRelaxedErrors = (1 << 3),
+ EOptionGiveWarnings = (1 << 4),
+ EOptionLinkProgram = (1 << 5),
+ EOptionMultiThreaded = (1 << 6),
+ EOptionDumpConfig = (1 << 7),
+ EOptionDumpReflection = (1 << 8),
+ EOptionSuppressWarnings = (1 << 9),
+ EOptionDumpVersions = (1 << 10),
+ EOptionSpv = (1 << 11),
+ EOptionHumanReadableSpv = (1 << 12),
+ EOptionVulkanRules = (1 << 13),
+ EOptionDefaultDesktop = (1 << 14),
+ EOptionOutputPreprocessed = (1 << 15),
+ EOptionOutputHexadecimal = (1 << 16),
+ EOptionReadHlsl = (1 << 17),
+ EOptionCascadingErrors = (1 << 18),
+ EOptionAutoMapBindings = (1 << 19),
EOptionFlattenUniformArrays = (1 << 20),
- EOptionNoStorageFormat = (1 << 21),
+ EOptionNoStorageFormat = (1 << 21),
+ EOptionKeepUncalled = (1 << 22),
};
//
@@ -160,6 +161,7 @@
const char* ExecutableName = nullptr;
const char* binaryFileName = nullptr;
const char* entryPointName = nullptr;
+const char* sourceEntryPointName = nullptr;
const char* shaderStageName = nullptr;
std::array<unsigned int, EShLangCount> baseSamplerBinding;
@@ -300,6 +302,18 @@
} else if (lowerword == "no-storage-format" || // synonyms
lowerword == "nsf") {
Options |= EOptionNoStorageFormat;
+ } else if (lowerword == "source-entrypoint" || // synonyms
+ lowerword == "sep") {
+ sourceEntryPointName = argv[1];
+ if (argc > 0) {
+ argc--;
+ argv++;
+ } else
+ Error("no <entry-point> provided for --source-entrypoint");
+ break;
+ } else if (lowerword == "keep-uncalled" || // synonyms
+ lowerword == "ku") {
+ Options |= EOptionKeepUncalled;
} else {
usage();
}
@@ -449,6 +463,8 @@
messages = (EShMessages)(messages | EShMsgReadHlsl);
if (Options & EOptionCascadingErrors)
messages = (EShMessages)(messages | EShMsgCascadingErrors);
+ if (Options & EOptionKeepUncalled)
+ messages = (EShMessages)(messages | EShMsgKeepUncalled);
}
//
@@ -547,6 +563,8 @@
shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, 1);
if (entryPointName) // HLSL todo: this needs to be tracked per compUnits
shader->setEntryPoint(entryPointName);
+ if (sourceEntryPointName)
+ shader->setSourceEntryPoint(sourceEntryPointName);
shader->setShiftSamplerBinding(baseSamplerBinding[compUnit.stage]);
shader->setShiftTextureBinding(baseTextureBinding[compUnit.stage]);
@@ -963,6 +981,12 @@
"\n"
" --no-storage-format use Unknown image format\n"
" --nsf synonym for --no-storage-format\n"
+ "\n"
+ " --source-entrypoint name the given shader source function is renamed to be the entry point given in -e\n"
+ " --sep synonym for --source-entrypoint\n"
+ "\n"
+ " --keep-uncalled don't eliminate uncalled functions when linking\n"
+ " --ku synonym for --keep-uncalled\n"
);
exit(EFailUsage);
diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out
index 74a597f..42635d3 100644
--- a/Test/baseResults/100.frag.out
+++ b/Test/baseResults/100.frag.out
@@ -507,123 +507,6 @@
0:38 's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
0:38 true case is null
0:40 'b' (temp mediump int)
-0:54 Function Definition: foo10( (global void)
-0:54 Function Parameters:
-0:67 Function Definition: f11(s21; (global void)
-0:67 Function Parameters:
-0:67 'p2d' (in lowp sampler2D)
-0:87 Function Definition: foo234( (global void)
-0:87 Function Parameters:
-0:89 Sequence
-0:89 texture (global highp 4-component vector of float)
-0:89 's3D2' (uniform highp sampler3D)
-0:89 Constant:
-0:89 0.200000
-0:89 0.200000
-0:89 0.200000
-0:89 Constant:
-0:89 0.200000
-0:90 textureProj (global highp 4-component vector of float)
-0:90 's3D2' (uniform highp sampler3D)
-0:90 direct index (smooth temp mediump 4-component vector of float)
-0:90 'v' (smooth in 3-element array of mediump 4-component vector of float)
-0:90 Constant:
-0:90 1 (const int)
-0:90 Constant:
-0:90 0.400000
-0:91 dPdx (global mediump 4-component vector of float)
-0:91 direct index (smooth temp mediump 4-component vector of float)
-0:91 'v' (smooth in 3-element array of mediump 4-component vector of float)
-0:91 Constant:
-0:91 0 (const int)
-0:92 Constant:
-0:92 0.000000
-0:93 fwidth (global mediump float)
-0:93 'f13' (invariant global mediump float)
-0:98 Function Definition: foo236( (global void)
-0:98 Function Parameters:
-0:100 Sequence
-0:100 dPdx (global mediump 4-component vector of float)
-0:100 direct index (smooth temp mediump 4-component vector of float)
-0:100 'v' (smooth in 3-element array of mediump 4-component vector of float)
-0:100 Constant:
-0:100 0 (const int)
-0:101 Constant:
-0:101 0.000000
-0:102 fwidth (global mediump float)
-0:102 'f13' (invariant global mediump float)
-0:103 move second child to first child (temp mediump float)
-0:103 'gl_FragDepth' (temp mediump float)
-0:103 'f13' (invariant global mediump float)
-0:104 move second child to first child (temp highp float)
-0:104 'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)
-0:104 'f13' (invariant global mediump float)
-0:109 Function Definition: foo239( (global void)
-0:109 Function Parameters:
-0:111 Sequence
-0:111 move second child to first child (temp mediump float)
-0:111 'gl_FragDepth' (temp mediump float)
-0:111 'f13' (invariant global mediump float)
-0:112 move second child to first child (temp highp float)
-0:112 'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)
-0:112 'f13' (invariant global mediump float)
-0:119 Function Definition: foo245( (global void)
-0:119 Function Parameters:
-0:121 Sequence
-0:121 texture (global lowp 4-component vector of float)
-0:121 'sExt' (uniform lowp samplerExternalOES)
-0:121 Constant:
-0:121 0.200000
-0:121 0.200000
-0:122 textureProj (global lowp 4-component vector of float)
-0:122 'sExt' (uniform lowp samplerExternalOES)
-0:122 Construct vec3 (temp lowp 3-component vector of float)
-0:122 'f13' (invariant global mediump float)
-0:123 textureProj (global lowp 4-component vector of float, operation at mediump)
-0:123 'sExt' (uniform lowp samplerExternalOES)
-0:123 direct index (smooth temp mediump 4-component vector of float)
-0:123 'v' (smooth in 3-element array of mediump 4-component vector of float)
-0:123 Constant:
-0:123 2 (const int)
-0:130 Function Definition: foo246( (global void)
-0:130 Function Parameters:
-0:132 Sequence
-0:132 texture (global mediump 4-component vector of float)
-0:132 'mediumExt' (uniform mediump samplerExternalOES)
-0:132 Constant:
-0:132 0.200000
-0:132 0.200000
-0:133 textureProj (global highp 4-component vector of float)
-0:133 'highExt' (uniform highp samplerExternalOES)
-0:133 direct index (smooth temp mediump 4-component vector of float)
-0:133 'v' (smooth in 3-element array of mediump 4-component vector of float)
-0:133 Constant:
-0:133 2 (const int)
-0:134 Constant:
-0:134 0.000000
-0:135 Constant:
-0:135 0.000000
-0:137 Bitwise not (temp mediump int)
-0:137 'a' (temp mediump int)
-0:138 inclusive-or (temp mediump int)
-0:138 'a' (temp mediump int)
-0:138 'a' (temp mediump int)
-0:139 bitwise and (temp mediump int)
-0:139 'a' (temp mediump int)
-0:139 'a' (temp mediump int)
-0:145 Function Definition: foo203940(i1;f1;f1; (global mediump int)
-0:145 Function Parameters:
-0:145 'a' (in mediump int)
-0:145 'b' (in mediump float)
-0:147 Sequence
-0:147 textureProjGrad (global lowp 4-component vector of float, operation at mediump)
-0:147 's2Dg' (uniform lowp sampler2D)
-0:147 Construct vec3 (temp mediump 3-component vector of float)
-0:147 'f13' (invariant global mediump float)
-0:147 'uv2' (invariant uniform mediump 2-component vector of float)
-0:147 'uv2' (invariant uniform mediump 2-component vector of float)
-0:148 Branch: Return with expression
-0:148 'a' (in mediump int)
0:151 Sequence
0:151 move second child to first child (temp mediump float)
0:151 'f123' (global mediump float)
@@ -634,75 +517,6 @@
0:152 'f124' (global mediump float)
0:152 Constant:
0:152 50000000000.000000
-0:158 Function Definition: foo323433( (global void)
-0:158 Function Parameters:
-0:160 Sequence
-0:160 textureLod (global lowp 4-component vector of float, operation at mediump)
-0:160 's2Dg' (uniform lowp sampler2D)
-0:160 'uv2' (invariant uniform mediump 2-component vector of float)
-0:160 'f13' (invariant global mediump float)
-0:161 textureProjGrad (global lowp 4-component vector of float, operation at mediump)
-0:161 's2Dg' (uniform lowp sampler2D)
-0:161 Construct vec3 (temp mediump 3-component vector of float)
-0:161 'f13' (invariant global mediump float)
-0:161 'uv2' (invariant uniform mediump 2-component vector of float)
-0:161 'uv2' (invariant uniform mediump 2-component vector of float)
-0:162 textureGrad (global lowp 4-component vector of float, operation at mediump)
-0:162 's2Dg' (uniform lowp sampler2D)
-0:162 'uv2' (invariant uniform mediump 2-component vector of float)
-0:162 'uv2' (invariant uniform mediump 2-component vector of float)
-0:162 'uv2' (invariant uniform mediump 2-component vector of float)
-0:163 textureGrad (global lowp 4-component vector of float)
-0:163 'sCube' (uniform lowp samplerCube)
-0:163 Construct vec3 (temp lowp 3-component vector of float)
-0:163 'f13' (invariant global mediump float)
-0:163 Construct vec3 (temp lowp 3-component vector of float)
-0:163 'f13' (invariant global mediump float)
-0:163 Construct vec3 (temp lowp 3-component vector of float)
-0:163 'f13' (invariant global mediump float)
-0:167 Function Definition: fgfg(f1;i1; (global mediump int)
-0:167 Function Parameters:
-0:167 'f' (in mediump float)
-0:167 'i' (in highp int)
-0:167 Sequence
-0:167 Branch: Return with expression
-0:167 Constant:
-0:167 2 (const int)
-0:173 Function Definition: gggf(f1; (global mediump int)
-0:173 Function Parameters:
-0:173 'f' (in mediump float)
-0:173 Sequence
-0:173 Branch: Return with expression
-0:173 Constant:
-0:173 2 (const int)
-0:175 Function Definition: agggf(f1; (global mediump int)
-0:175 Function Parameters:
-0:175 'f' (in mediump float)
-0:175 Sequence
-0:175 Branch: Return with expression
-0:175 Constant:
-0:175 2 (const int)
-0:187 Function Definition: badswizzle( (global void)
-0:187 Function Parameters:
-0:? Sequence
-0:190 'a' (temp 5-element array of mediump 3-component vector of float)
-0:191 'a' (temp 5-element array of mediump 3-component vector of float)
-0:192 'a' (temp 5-element array of mediump 3-component vector of float)
-0:193 Constant:
-0:193 5 (const int)
-0:194 Constant:
-0:194 0.000000
-0:199 Function Definition: fooinittest( (global mediump float)
-0:199 Function Parameters:
-0:201 Sequence
-0:201 Branch: Return with expression
-0:201 Function Call: fooinit( (global mediump float)
-0:209 Function Definition: fooinit( (global mediump float)
-0:209 Function Parameters:
-0:211 Sequence
-0:211 Branch: Return with expression
-0:211 Constant:
-0:211 12.000000
0:214 Sequence
0:214 move second child to first child (temp mediump int)
0:214 'init1' (global mediump int)
diff --git a/Test/baseResults/100LimitsConf.vert.out b/Test/baseResults/100LimitsConf.vert.out
index e27c2cc..46cb845 100644
--- a/Test/baseResults/100LimitsConf.vert.out
+++ b/Test/baseResults/100LimitsConf.vert.out
@@ -22,7 +22,3 @@
ERROR: 20 compilation errors. No code generated.
-
-Linked vertex stage:
-
-
diff --git a/Test/baseResults/100scope.vert.out b/Test/baseResults/100scope.vert.out
index 2b542b0..17423dc 100644
--- a/Test/baseResults/100scope.vert.out
+++ b/Test/baseResults/100scope.vert.out
@@ -128,6 +128,8 @@
Linked vertex stage:
+ERROR: Linking vertex stage: No function definition (body) found:
+ g(
Shader version: 100
ERROR: node is still EOpNull!
@@ -148,20 +150,6 @@
0:8 1.000000
0:11 Branch: Return with expression
0:11 'a' (in highp int)
-0:25 Function Definition: cos(f1; (global highp float)
-0:25 Function Parameters:
-0:25 'x' (in highp float)
-0:27 Sequence
-0:27 Branch: Return with expression
-0:27 Constant:
-0:27 1.000000
-0:29 Function Definition: radians(b1; (global bool)
-0:29 Function Parameters:
-0:29 'x' (in bool)
-0:31 Sequence
-0:31 Branch: Return with expression
-0:31 Constant:
-0:31 true (const bool)
0:36 Function Definition: main( (global void)
0:36 Function Parameters:
0:? Sequence
diff --git a/Test/baseResults/110scope.vert.out b/Test/baseResults/110scope.vert.out
index 5f41b86..74002ba 100644
--- a/Test/baseResults/110scope.vert.out
+++ b/Test/baseResults/110scope.vert.out
@@ -1,9 +1,8 @@
110scope.vert
ERROR: 0:5: 'a' : redefinition
-ERROR: 0:34: 'f' : can't call user function from global scope
ERROR: 0:57: 'z' : undeclared identifier
ERROR: 0:57: 'z' : redefinition
-ERROR: 4 compilation errors. No code generated.
+ERROR: 3 compilation errors. No code generated.
Shader version: 110
@@ -131,6 +130,10 @@
Linked vertex stage:
+ERROR: Linking vertex stage: No function definition (body) found:
+ sin(f1;
+ERROR: Linking vertex stage: No function definition (body) found:
+ g(
Shader version: 110
ERROR: node is still EOpNull!
@@ -151,20 +154,6 @@
0:8 1.000000
0:11 Branch: Return with expression
0:11 'a' (in int)
-0:25 Function Definition: cos(f1; (global float)
-0:25 Function Parameters:
-0:25 'x' (in float)
-0:27 Sequence
-0:27 Branch: Return with expression
-0:27 Constant:
-0:27 1.000000
-0:29 Function Definition: radians(b1; (global bool)
-0:29 Function Parameters:
-0:29 'x' (in bool)
-0:31 Sequence
-0:31 Branch: Return with expression
-0:31 Constant:
-0:31 true (const bool)
0:34 Sequence
0:34 move second child to first child (temp int)
0:34 'gi' (global int)
diff --git a/Test/baseResults/120.frag.out b/Test/baseResults/120.frag.out
index 4fa7600..79898aa 100644
--- a/Test/baseResults/120.frag.out
+++ b/Test/baseResults/120.frag.out
@@ -630,537 +630,9 @@
Requested GL_ARB_shader_texture_lod
Requested GL_ARB_texture_rectangle
ERROR: node is still EOpNull!
-0:21 Function Definition: main( (global void)
-0:21 Function Parameters:
-0:23 Sequence
-0:23 Sequence
-0:23 move second child to first child (temp 2X3 matrix of float)
-0:23 'm23' (temp 2X3 matrix of float)
-0:23 Construct mat2x3 (temp 2X3 matrix of float)
-0:23 'm' (uniform 4X2 matrix of float)
-0:27 Sequence
-0:27 move second child to first child (temp structure{global float f})
-0:27 'sv' (temp structure{global float f})
-0:27 Construct structure (temp structure{global float f})
-0:27 Convert int to float (temp float)
-0:27 'a' (temp int)
-0:28 Sequence
-0:28 move second child to first child (temp 2-element array of float)
-0:28 'ia' (temp 2-element array of float)
-0:28 Construct float (temp 2-element array of float)
-0:28 Constant:
-0:28 3.000000
-0:28 direct index (temp float)
-0:28 'i' (smooth in 4-component vector of float)
-0:28 Constant:
-0:28 1 (const int)
-0:29 Sequence
-0:29 move second child to first child (temp float)
-0:29 'f1' (temp float)
-0:29 Constant:
-0:29 1.000000
-0:30 Sequence
-0:30 move second child to first child (temp float)
-0:30 'f' (temp float)
-0:30 Convert int to float (temp float)
-0:30 'a' (temp int)
-0:31 move second child to first child (temp float)
-0:31 'f' (temp float)
-0:31 Convert int to float (temp float)
-0:31 'a' (temp int)
-0:33 Sequence
-0:33 move second child to first child (temp 3-component vector of float)
-0:33 'v3' (temp 3-component vector of float)
-0:33 Convert int to float (temp 3-component vector of float)
-0:33 'iv3' (temp 3-component vector of int)
-0:34 move second child to first child (temp float)
-0:34 'f' (temp float)
-0:34 add (temp float)
-0:34 'f' (temp float)
-0:34 Convert int to float (temp float)
-0:34 'a' (temp int)
-0:35 move second child to first child (temp float)
-0:35 'f' (temp float)
-0:35 subtract (temp float)
-0:35 Convert int to float (temp float)
-0:35 'a' (temp int)
-0:35 'f' (temp float)
-0:36 add second child into first child (temp float)
-0:36 'f' (temp float)
-0:36 Convert int to float (temp float)
-0:36 'a' (temp int)
-0:37 move second child to first child (temp float)
-0:37 'f' (temp float)
-0:37 subtract (temp float)
-0:37 Convert int to float (temp float)
-0:37 'a' (temp int)
-0:37 'f' (temp float)
-0:38 multiply second child into first child (temp 3-component vector of float)
-0:38 'v3' (temp 3-component vector of float)
-0:38 Convert int to float (temp 3-component vector of float)
-0:38 'iv3' (temp 3-component vector of int)
-0:39 move second child to first child (temp 3-component vector of float)
-0:39 'v3' (temp 3-component vector of float)
-0:39 divide (temp 3-component vector of float)
-0:39 Convert int to float (temp 3-component vector of float)
-0:39 'iv3' (temp 3-component vector of int)
-0:39 Constant:
-0:39 2.000000
-0:40 move second child to first child (temp 3-component vector of float)
-0:40 'v3' (temp 3-component vector of float)
-0:40 vector-scale (temp 3-component vector of float)
-0:40 Constant:
-0:40 3.000000
-0:40 Convert int to float (temp 3-component vector of float)
-0:40 'iv3' (temp 3-component vector of int)
-0:41 move second child to first child (temp 3-component vector of float)
-0:41 'v3' (temp 3-component vector of float)
-0:41 vector-scale (temp 3-component vector of float)
-0:41 Constant:
-0:41 2.000000
-0:41 'v3' (temp 3-component vector of float)
-0:42 move second child to first child (temp 3-component vector of float)
-0:42 'v3' (temp 3-component vector of float)
-0:42 subtract (temp 3-component vector of float)
-0:42 'v3' (temp 3-component vector of float)
-0:42 Constant:
-0:42 2.000000
-0:43 Test condition and select (temp void)
-0:43 Condition
-0:47 logical-or (temp bool)
-0:46 logical-or (temp bool)
-0:45 logical-or (temp bool)
-0:44 logical-or (temp bool)
-0:43 logical-or (temp bool)
-0:43 Compare Less Than (temp bool)
-0:43 'f' (temp float)
-0:43 Convert int to float (temp float)
-0:43 'a' (temp int)
-0:44 Compare Less Than or Equal (temp bool)
-0:44 Convert int to float (temp float)
-0:44 'a' (temp int)
-0:44 'f' (temp float)
-0:45 Compare Greater Than (temp bool)
-0:45 'f' (temp float)
-0:45 Convert int to float (temp float)
-0:45 'a' (temp int)
-0:46 Compare Greater Than or Equal (temp bool)
-0:46 'f' (temp float)
-0:46 Convert int to float (temp float)
-0:46 'a' (temp int)
-0:47 Compare Equal (temp bool)
-0:47 Convert int to float (temp float)
-0:47 'a' (temp int)
-0:47 'f' (temp float)
-0:48 Compare Not Equal (temp bool)
-0:48 'f' (temp float)
-0:48 Convert int to float (temp float)
-0:48 'a' (temp int)
-0:43 true case is null
-0:49 move second child to first child (temp float)
-0:49 'f' (temp float)
-0:49 Test condition and select (temp float)
-0:49 Condition
-0:49 'b' (temp bool)
-0:49 true case
-0:49 Convert int to float (temp float)
-0:49 'a' (temp int)
-0:49 false case
-0:49 'f' (temp float)
-0:50 move second child to first child (temp float)
-0:50 'f' (temp float)
-0:50 Test condition and select (temp float)
-0:50 Condition
-0:50 'b' (temp bool)
-0:50 true case
-0:50 'f' (temp float)
-0:50 false case
-0:50 Convert int to float (temp float)
-0:50 'a' (temp int)
-0:51 move second child to first child (temp float)
-0:51 'f' (temp float)
-0:51 Convert int to float (temp float)
-0:51 Test condition and select (temp int)
-0:51 Condition
-0:51 'b' (temp bool)
-0:51 true case
-0:51 'a' (temp int)
-0:51 false case
-0:51 'a' (temp int)
-0:52 Sequence
-0:52 move second child to first child (temp structure{global float f})
-0:52 'news' (temp structure{global float f})
-0:52 'sv' (temp structure{global float f})
-0:54 vector swizzle (temp 2-component vector of float)
-0:54 'i' (smooth in 4-component vector of float)
-0:54 Sequence
-0:54 Constant:
-0:54 0 (const int)
-0:54 Constant:
-0:54 1 (const int)
-0:55 'm' (uniform 4X2 matrix of float)
-0:56 'm' (uniform 4X2 matrix of float)
-0:58 'f' (temp float)
-0:59 move second child to first child (temp float)
-0:59 'f' (temp float)
-0:59 Convert int to float (temp float)
-0:59 'a' (temp int)
-0:60 'f' (temp float)
-0:61 'b' (temp bool)
-0:62 move second child to first child (temp bool)
-0:62 'b' (temp bool)
-0:62 'b' (temp bool)
-0:63 'f' (temp float)
-0:65 move second child to first child (temp 4-component vector of float)
-0:65 'gl_FragColor' (fragColor 4-component vector of float FragColor)
-0:65 texture (global 4-component vector of float)
-0:65 's2D' (uniform sampler2D)
-0:65 'centTexCoord' (centroid smooth in 2-component vector of float)
-0:? Sequence
-0:79 'gl_FragColor' (fragColor 4-component vector of float FragColor)
-0:82 direct index (temp float)
-0:82 'gl_FragColor' (fragColor 4-component vector of float FragColor)
-0:82 Constant:
-0:82 0 (const int)
-0:83 direct index (temp float)
-0:83 'gl_FragColor' (fragColor 4-component vector of float FragColor)
-0:83 Constant:
-0:83 0 (const int)
-0:84 direct index (temp float)
-0:84 'centTexCoord' (centroid smooth in 2-component vector of float)
-0:84 Constant:
-0:84 0 (const int)
-0:85 move second child to first child (temp bool)
-0:85 Comma (temp bool)
-0:85 'a' (temp int)
-0:85 'b' (temp bool)
-0:85 Constant:
-0:85 true (const bool)
-0:91 Function Definition: main( (global int)
-0:91 Function Parameters:
0:92 Function Definition: main(i1; (global void)
0:92 Function Parameters:
0:92 'a' (in int)
-0:97 Function Definition: foo(f1; (global int)
-0:97 Function Parameters:
-0:97 'a' (out float)
-0:99 Sequence
-0:99 Branch: Return with expression
-0:99 Constant:
-0:99 3.200000
-0:100 Function Call: foo(f1; (global int)
-0:100 'a' (out float)
-0:103 Function Definition: gen(vf3; (global bool)
-0:103 Function Parameters:
-0:103 'v' (in 3-component vector of float)
-0:105 Sequence
-0:105 Test condition and select (temp void)
-0:105 Condition
-0:105 logical-and (temp bool)
-0:105 Compare Less Than (temp bool)
-0:105 Absolute value (global float)
-0:105 direct index (temp float)
-0:105 'v' (in 3-component vector of float)
-0:105 Constant:
-0:105 0 (const int)
-0:105 Constant:
-0:105 0.000100
-0:105 Compare Less Than (temp bool)
-0:105 Absolute value (global float)
-0:105 direct index (temp float)
-0:105 'v' (in 3-component vector of float)
-0:105 Constant:
-0:105 1 (const int)
-0:105 Constant:
-0:105 0.000100
-0:105 true case
-0:106 Branch: Return with expression
-0:106 Constant:
-0:106 true (const bool)
-0:109 Function Definition: v1( (global void)
-0:109 Function Parameters:
-0:113 Function Definition: v2( (global void)
-0:113 Function Parameters:
-0:115 Sequence
-0:115 Branch: Return
-0:118 Function Definition: atest( (global void)
-0:118 Function Parameters:
-0:120 Sequence
-0:120 Sequence
-0:120 move second child to first child (temp 4-component vector of float)
-0:120 'v' (temp 4-component vector of float)
-0:120 direct index (smooth temp 4-component vector of float TexCoord)
-0:120 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
-0:120 Constant:
-0:120 1 (const int)
-0:121 add second child into first child (temp 4-component vector of float)
-0:121 'v' (temp 4-component vector of float)
-0:121 direct index (smooth temp 4-component vector of float TexCoord)
-0:121 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
-0:121 Constant:
-0:121 3 (const int)
-0:139 Function Definition: foo123( (global void)
-0:139 Function Parameters:
-0:141 Sequence
-0:141 Sequence
-0:141 move second child to first child (temp 2X2 matrix of float)
-0:141 'r2' (temp 2X2 matrix of float)
-0:141 component-wise multiply (global 2X2 matrix of float)
-0:141 'm22' (global 2X2 matrix of float)
-0:141 'm22' (global 2X2 matrix of float)
-0:142 Sequence
-0:142 move second child to first child (temp 3X3 matrix of float)
-0:142 'r3' (temp 3X3 matrix of float)
-0:142 component-wise multiply (global 3X3 matrix of float)
-0:142 'm33' (global 3X3 matrix of float)
-0:142 'm33' (global 3X3 matrix of float)
-0:143 Sequence
-0:143 move second child to first child (temp 4X4 matrix of float)
-0:143 'r4' (temp 4X4 matrix of float)
-0:143 component-wise multiply (global 4X4 matrix of float)
-0:143 'm44' (global 4X4 matrix of float)
-0:143 'm44' (global 4X4 matrix of float)
-0:145 Sequence
-0:145 move second child to first child (temp 2X3 matrix of float)
-0:145 'r23' (temp 2X3 matrix of float)
-0:145 component-wise multiply (global 2X3 matrix of float)
-0:145 'm23' (global 2X3 matrix of float)
-0:145 'm23' (global 2X3 matrix of float)
-0:146 Sequence
-0:146 move second child to first child (temp 2X4 matrix of float)
-0:146 'r24' (temp 2X4 matrix of float)
-0:146 component-wise multiply (global 2X4 matrix of float)
-0:146 'm24' (global 2X4 matrix of float)
-0:146 'm24' (global 2X4 matrix of float)
-0:147 Sequence
-0:147 move second child to first child (temp 3X2 matrix of float)
-0:147 'r32' (temp 3X2 matrix of float)
-0:147 component-wise multiply (global 3X2 matrix of float)
-0:147 'm32' (global 3X2 matrix of float)
-0:147 'm32' (global 3X2 matrix of float)
-0:148 Sequence
-0:148 move second child to first child (temp 3X4 matrix of float)
-0:148 'r34' (temp 3X4 matrix of float)
-0:148 component-wise multiply (global 3X4 matrix of float)
-0:148 'm34' (global 3X4 matrix of float)
-0:148 'm34' (global 3X4 matrix of float)
-0:149 Sequence
-0:149 move second child to first child (temp 4X2 matrix of float)
-0:149 'r42' (temp 4X2 matrix of float)
-0:149 component-wise multiply (global 4X2 matrix of float)
-0:149 'm42' (global 4X2 matrix of float)
-0:149 'm42' (global 4X2 matrix of float)
-0:150 Sequence
-0:150 move second child to first child (temp 4X3 matrix of float)
-0:150 'r43' (temp 4X3 matrix of float)
-0:150 component-wise multiply (global 4X3 matrix of float)
-0:150 'm43' (global 4X3 matrix of float)
-0:150 'm43' (global 4X3 matrix of float)
-0:156 Function Definition: matConst( (global void)
-0:156 Function Parameters:
-0:? Sequence
-0:162 Sequence
-0:162 move second child to first child (temp 4X4 matrix of float)
-0:162 'm4g' (temp 4X4 matrix of float)
-0:162 Construct mat4 (temp 4X4 matrix of float)
-0:162 'v2' (temp 2-component vector of float)
-0:162 'v3' (temp 3-component vector of float)
-0:162 'v3' (temp 3-component vector of float)
-0:162 'v3' (temp 3-component vector of float)
-0:162 'v3' (temp 3-component vector of float)
-0:162 'v3' (temp 3-component vector of float)
-0:163 Sequence
-0:163 move second child to first child (temp 4X4 matrix of float)
-0:163 'm4' (temp 4X4 matrix of float)
-0:163 Construct mat4 (temp 4X4 matrix of float)
-0:163 'v2' (temp 2-component vector of float)
-0:163 'v3' (temp 3-component vector of float)
-0:163 'v3' (temp 3-component vector of float)
-0:163 'v3' (temp 3-component vector of float)
-0:163 'v3' (temp 3-component vector of float)
-0:163 'v2' (temp 2-component vector of float)
-0:164 Sequence
-0:164 move second child to first child (temp 3X3 matrix of float)
-0:164 'm3' (temp 3X3 matrix of float)
-0:164 Construct mat3 (temp 3X3 matrix of float)
-0:164 'm4' (temp 4X4 matrix of float)
-0:165 Sequence
-0:165 move second child to first child (temp 3X3 matrix of float)
-0:165 'm3b1' (temp 3X3 matrix of float)
-0:165 Construct mat3 (temp 3X3 matrix of float)
-0:165 'm4' (temp 4X4 matrix of float)
-0:165 'v2' (temp 2-component vector of float)
-0:166 Sequence
-0:166 move second child to first child (temp 3X3 matrix of float)
-0:166 'm3b2' (temp 3X3 matrix of float)
-0:166 Construct mat3 (temp 3X3 matrix of float)
-0:166 'm4' (temp 4X4 matrix of float)
-0:166 'm4' (temp 4X4 matrix of float)
-0:167 Sequence
-0:167 move second child to first child (temp 3X2 matrix of float)
-0:167 'm32' (temp 3X2 matrix of float)
-0:167 Construct mat3x2 (temp 3X2 matrix of float)
-0:167 'm4' (temp 4X4 matrix of float)
-0:168 Sequence
-0:168 move second child to first child (temp 4X4 matrix of float)
-0:168 'm4c' (temp 4X4 matrix of float)
-0:168 Construct mat4 (temp 4X4 matrix of float)
-0:168 'm32' (temp 3X2 matrix of float)
-0:169 Sequence
-0:169 move second child to first child (temp 3X3 matrix of float)
-0:169 'm3s' (temp 3X3 matrix of float)
-0:169 Construct mat3 (temp 3X3 matrix of float)
-0:169 direct index (temp float)
-0:169 'v2' (temp 2-component vector of float)
-0:169 Constant:
-0:169 0 (const int)
-0:171 Sequence
-0:171 move second child to first child (temp 2-element array of 3X3 matrix of float)
-0:171 'm3a1' (temp 2-element array of 3X3 matrix of float)
-0:171 Construct mat3 (temp 2-element array of 3X3 matrix of float)
-0:171 'm3s' (temp 3X3 matrix of float)
-0:171 'm3s' (temp 3X3 matrix of float)
-0:179 Function Definition: foo2323( (global void)
-0:179 Function Parameters:
-0:? Sequence
-0:184 move second child to first child (temp 4-component vector of float)
-0:184 'v' (temp 4-component vector of float)
-0:184 textureLod (global 4-component vector of float)
-0:184 's2D' (uniform sampler2D)
-0:184 'v2' (temp 2-component vector of float)
-0:184 'f' (temp float)
-0:185 move second child to first child (temp 4-component vector of float)
-0:185 'v' (temp 4-component vector of float)
-0:185 textureProjLod (global 4-component vector of float)
-0:185 's3D' (uniform sampler3D)
-0:185 'v' (temp 4-component vector of float)
-0:185 'f' (temp float)
-0:186 move second child to first child (temp 4-component vector of float)
-0:186 'v' (temp 4-component vector of float)
-0:186 textureProjLod (global 4-component vector of float)
-0:186 's1D' (uniform sampler1D)
-0:186 'v' (temp 4-component vector of float)
-0:186 'f' (temp float)
-0:187 move second child to first child (temp 4-component vector of float)
-0:187 'v' (temp 4-component vector of float)
-0:187 textureProjLod (global 4-component vector of float)
-0:187 's2DS' (uniform sampler2DShadow)
-0:187 'v' (temp 4-component vector of float)
-0:187 'f' (temp float)
-0:189 move second child to first child (temp 4-component vector of float)
-0:189 'v' (temp 4-component vector of float)
-0:189 textureGrad (global 4-component vector of float)
-0:189 's1D' (uniform sampler1D)
-0:189 'f' (temp float)
-0:189 'f' (temp float)
-0:189 'f' (temp float)
-0:190 move second child to first child (temp 4-component vector of float)
-0:190 'v' (temp 4-component vector of float)
-0:190 textureProjGrad (global 4-component vector of float)
-0:190 's2D' (uniform sampler2D)
-0:190 'v' (temp 4-component vector of float)
-0:190 'v2' (temp 2-component vector of float)
-0:190 'v2' (temp 2-component vector of float)
-0:191 move second child to first child (temp 4-component vector of float)
-0:191 'v' (temp 4-component vector of float)
-0:191 textureProjGrad (global 4-component vector of float)
-0:191 's2DS' (uniform sampler2DShadow)
-0:191 'v' (temp 4-component vector of float)
-0:191 'v2' (temp 2-component vector of float)
-0:191 'v2' (temp 2-component vector of float)
-0:196 Function Definition: foo2324( (global void)
-0:196 Function Parameters:
-0:? Sequence
-0:201 move second child to first child (temp 4-component vector of float)
-0:201 'v' (temp 4-component vector of float)
-0:201 textureLod (global 4-component vector of float)
-0:201 's2D' (uniform sampler2D)
-0:201 'v2' (temp 2-component vector of float)
-0:201 'f' (temp float)
-0:202 move second child to first child (temp 4-component vector of float)
-0:202 'v' (temp 4-component vector of float)
-0:202 textureProjLod (global 4-component vector of float)
-0:202 's3D' (uniform sampler3D)
-0:202 'v' (temp 4-component vector of float)
-0:202 'f' (temp float)
-0:203 move second child to first child (temp 4-component vector of float)
-0:203 'v' (temp 4-component vector of float)
-0:203 textureProjLod (global 4-component vector of float)
-0:203 's1D' (uniform sampler1D)
-0:203 'v' (temp 4-component vector of float)
-0:203 'f' (temp float)
-0:204 move second child to first child (temp 4-component vector of float)
-0:204 'v' (temp 4-component vector of float)
-0:204 textureProjLod (global 4-component vector of float)
-0:204 's2DS' (uniform sampler2DShadow)
-0:204 'v' (temp 4-component vector of float)
-0:204 'f' (temp float)
-0:206 move second child to first child (temp 4-component vector of float)
-0:206 'v' (temp 4-component vector of float)
-0:206 textureGrad (global 4-component vector of float)
-0:206 's1D' (uniform sampler1D)
-0:206 'f' (temp float)
-0:206 'f' (temp float)
-0:206 'f' (temp float)
-0:207 move second child to first child (temp 4-component vector of float)
-0:207 'v' (temp 4-component vector of float)
-0:207 textureProjGrad (global 4-component vector of float)
-0:207 's2D' (uniform sampler2D)
-0:207 'v' (temp 4-component vector of float)
-0:207 'v2' (temp 2-component vector of float)
-0:207 'v2' (temp 2-component vector of float)
-0:208 move second child to first child (temp 4-component vector of float)
-0:208 'v' (temp 4-component vector of float)
-0:208 textureProjGrad (global 4-component vector of float)
-0:208 's2DS' (uniform sampler2DShadow)
-0:208 'v' (temp 4-component vector of float)
-0:208 'v2' (temp 2-component vector of float)
-0:208 'v2' (temp 2-component vector of float)
-0:209 'v' (temp 4-component vector of float)
-0:214 Function Definition: foo121111( (global void)
-0:214 Function Parameters:
-0:? Sequence
-0:217 Sequence
-0:217 move second child to first child (temp 4-component vector of float)
-0:217 'v' (temp 4-component vector of float)
-0:217 texture (global 4-component vector of float)
-0:217 's2DRbad' (uniform sampler2DRect)
-0:217 'v2' (temp 2-component vector of float)
-0:225 Function Definition: foo12111( (global void)
-0:225 Function Parameters:
-0:? Sequence
-0:231 move second child to first child (temp 4-component vector of float)
-0:231 'v' (temp 4-component vector of float)
-0:231 texture (global 4-component vector of float)
-0:231 's2DR' (uniform sampler2DRect)
-0:231 'v2' (temp 2-component vector of float)
-0:232 move second child to first child (temp 4-component vector of float)
-0:232 'v' (temp 4-component vector of float)
-0:232 textureProj (global 4-component vector of float)
-0:232 's2DR' (uniform sampler2DRect)
-0:232 'v3' (temp 3-component vector of float)
-0:233 move second child to first child (temp 4-component vector of float)
-0:233 'v' (temp 4-component vector of float)
-0:233 textureProj (global 4-component vector of float)
-0:233 's2DR' (uniform sampler2DRect)
-0:233 'v4' (temp 4-component vector of float)
-0:234 move second child to first child (temp 4-component vector of float)
-0:234 'v' (temp 4-component vector of float)
-0:234 texture (global 4-component vector of float)
-0:234 's2DRS' (uniform sampler2DRectShadow)
-0:234 'v3' (temp 3-component vector of float)
-0:235 move second child to first child (temp 4-component vector of float)
-0:235 'v' (temp 4-component vector of float)
-0:235 textureProj (global 4-component vector of float)
-0:235 's2DRS' (uniform sampler2DRectShadow)
-0:235 'v4' (temp 4-component vector of float)
-0:237 move second child to first child (temp 4-component vector of float)
-0:237 'v' (temp 4-component vector of float)
-0:237 textureProjGrad (global 4-component vector of float)
-0:237 's2DRS' (uniform sampler2DRectShadow)
-0:237 'v' (temp 4-component vector of float)
-0:237 'v2' (temp 2-component vector of float)
-0:237 'v2' (temp 2-component vector of float)
0:? Linker Objects
0:? 'lowp' (global float)
0:? 'mediump' (global float)
diff --git a/Test/baseResults/120.vert.out b/Test/baseResults/120.vert.out
index 18fb221..94a97b5 100644
--- a/Test/baseResults/120.vert.out
+++ b/Test/baseResults/120.vert.out
@@ -480,285 +480,6 @@
0:43 'gl_PointSize' (invariant gl_PointSize float PointSize)
0:43 Constant:
0:43 3.800000
-0:61 Function Definition: overloadB(f1;f1; (global void)
-0:61 Function Parameters:
-0:61 '' (in float)
-0:61 '' (const (read only) float)
-0:78 Function Definition: foo( (global void)
-0:78 Function Parameters:
-0:? Sequence
-0:83 Function Call: overloadB(f1;f1; (global void)
-0:83 'f' (temp float)
-0:83 'f' (temp float)
-0:84 Function Call: overloadB(f1;f1; (global void)
-0:84 'f' (temp float)
-0:84 Constant:
-0:84 2.000000
-0:85 Function Call: overloadB(f1;f1; (global void)
-0:85 Constant:
-0:85 1.000000
-0:85 Convert int to float (temp float)
-0:85 'i' (temp int)
-0:87 Constant:
-0:87 0.000000
-0:88 Function Call: overloadC(i1;i1; (global 2-component vector of float)
-0:88 Constant:
-0:88 1 (const int)
-0:88 'i' (temp int)
-0:89 Function Call: overloadC(vf2;vf2; (global 2-component vector of float)
-0:89 Constant:
-0:89 1.000000
-0:89 1.000000
-0:89 Constant:
-0:89 2.000000
-0:89 2.000000
-0:90 Constant:
-0:90 0.000000
-0:91 Function Call: overloadC(vf2;vf2; (global 2-component vector of float)
-0:91 Constant:
-0:91 1.000000
-0:91 1.000000
-0:91 Constant:
-0:91 2.000000
-0:91 2.000000
-0:93 Function Call: overloadD(i1;f1; (global 3-component vector of float)
-0:93 'i' (temp int)
-0:93 'f' (temp float)
-0:94 Function Call: overloadD(f1;i1; (global 3-component vector of float)
-0:94 'f' (temp float)
-0:94 'i' (temp int)
-0:95 Function Call: overloadD(f1;i1; (global 3-component vector of float)
-0:95 Convert int to float (temp float)
-0:95 'i' (temp int)
-0:95 'i' (temp int)
-0:98 Constant:
-0:98 0.000000
-0:100 Constant:
-0:100 0.841471
-0:101 texture (global 4-component vector of float)
-0:101 's2D' (uniform sampler2D)
-0:101 Constant:
-0:101 0.000000
-0:101 0.000000
-0:102 clamp (global 4-component vector of float)
-0:102 'attv4' (in 4-component vector of float)
-0:102 Constant:
-0:102 0.000000
-0:102 Constant:
-0:102 1.000000
-0:103 clamp (global 4-component vector of float)
-0:103 Convert int to float (temp 4-component vector of float)
-0:103 Convert float to int (temp 4-component vector of int)
-0:103 'attv4' (in 4-component vector of float)
-0:103 Constant:
-0:103 0.000000
-0:103 Constant:
-0:103 1.000000
-0:106 Constant:
-0:106 0.000000
-0:107 Constant:
-0:107 0.000000
-0:108 Constant:
-0:108 0.000000
-0:109 Function Call: overloadE(vf2; (global 3-component vector of float)
-0:109 Constant:
-0:109 3.300000
-0:109 3.300000
-0:110 Function Call: overloadE(mf22; (global 3-component vector of float)
-0:110 Constant:
-0:110 0.500000
-0:110 0.000000
-0:110 0.000000
-0:110 0.500000
-0:111 Constant:
-0:111 0.000000
-0:112 Function Call: overloadE(vf2; (global 3-component vector of float)
-0:112 Constant:
-0:112 1.000000
-0:112 1.000000
-0:115 Function Call: overloadE(f1[2]; (global 3-component vector of float)
-0:115 'b' (temp 2-element array of float)
-0:117 Constant:
-0:117 0.000000
-0:118 Function Call: overloadF(i1; (global 3-component vector of float)
-0:118 Constant:
-0:118 1 (const int)
-0:128 Function Definition: foo2( (global void)
-0:128 Function Parameters:
-0:? Sequence
-0:135 Comma (global void)
-0:135 Function Call: outFun(f1;vi2;i1;f1; (global void)
-0:135 Convert int to float (temp float)
-0:135 'i' (temp int)
-0:135 'tempArg' (temp 2-component vector of int)
-0:135 'i' (temp int)
-0:135 'f' (temp float)
-0:135 move second child to first child (temp 2-component vector of float)
-0:135 'v2' (temp 2-component vector of float)
-0:135 Convert int to float (temp 2-component vector of float)
-0:135 'tempArg' (temp 2-component vector of int)
-0:136 Comma (global int)
-0:136 move second child to first child (temp int)
-0:136 'tempReturn' (global int)
-0:136 Function Call: outFunRet(f1;i1;i1;vi4; (global int)
-0:136 Convert int to float (temp float)
-0:136 'i' (temp int)
-0:136 'tempArg' (temp int)
-0:136 'i' (temp int)
-0:136 'tempArg' (temp 4-component vector of int)
-0:136 move second child to first child (temp float)
-0:136 'f' (temp float)
-0:136 Convert int to float (temp float)
-0:136 'tempArg' (temp int)
-0:136 move second child to first child (temp 4-component vector of float)
-0:136 'v4' (temp 4-component vector of float)
-0:136 Convert int to float (temp 4-component vector of float)
-0:136 'tempArg' (temp 4-component vector of int)
-0:136 'tempReturn' (global int)
-0:137 Sequence
-0:137 move second child to first child (temp float)
-0:137 'ret' (temp float)
-0:137 Convert int to float (temp float)
-0:137 Comma (global int)
-0:137 move second child to first child (temp int)
-0:137 'tempReturn' (global int)
-0:137 Function Call: outFunRet(f1;i1;i1;vi4; (global int)
-0:137 Convert int to float (temp float)
-0:137 'i' (temp int)
-0:137 'tempArg' (temp int)
-0:137 'i' (temp int)
-0:137 'tempArg' (temp 4-component vector of int)
-0:137 move second child to first child (temp float)
-0:137 'f' (temp float)
-0:137 Convert int to float (temp float)
-0:137 'tempArg' (temp int)
-0:137 move second child to first child (temp 4-component vector of float)
-0:137 'v4' (temp 4-component vector of float)
-0:137 Convert int to float (temp 4-component vector of float)
-0:137 'tempArg' (temp 4-component vector of int)
-0:137 'tempReturn' (global int)
-0:138 Sequence
-0:138 move second child to first child (temp 2-component vector of float)
-0:138 'ret2' (temp 2-component vector of float)
-0:138 Convert int to float (temp 2-component vector of float)
-0:138 Comma (global 2-component vector of int)
-0:138 move second child to first child (temp 2-component vector of int)
-0:138 'tempReturn' (global 2-component vector of int)
-0:138 Function Call: outFunRet(f1;vi4;i1;vi4; (global 2-component vector of int)
-0:138 Convert int to float (temp float)
-0:138 'i' (temp int)
-0:138 'tempArg' (temp 4-component vector of int)
-0:138 'i' (temp int)
-0:138 'tempArg' (temp 4-component vector of int)
-0:138 move second child to first child (temp 4-component vector of float)
-0:138 'v4' (temp 4-component vector of float)
-0:138 Convert int to float (temp 4-component vector of float)
-0:138 'tempArg' (temp 4-component vector of int)
-0:138 move second child to first child (temp 4-component vector of float)
-0:138 'v4' (temp 4-component vector of float)
-0:138 Convert int to float (temp 4-component vector of float)
-0:138 'tempArg' (temp 4-component vector of int)
-0:138 'tempReturn' (global 2-component vector of int)
-0:139 Sequence
-0:139 move second child to first child (temp bool)
-0:139 'b' (temp bool)
-0:139 any (global bool)
-0:139 Compare Less Than (global 4-component vector of bool)
-0:139 'v4' (temp 4-component vector of float)
-0:139 'attv4' (in 4-component vector of float)
-0:142 Function Definition: noise( (global void)
-0:142 Function Parameters:
-0:144 Sequence
-0:144 Sequence
-0:144 move second child to first child (temp float)
-0:144 'f1' (temp float)
-0:144 noise (global float)
-0:144 Constant:
-0:144 1.000000
-0:145 Sequence
-0:145 move second child to first child (temp 2-component vector of float)
-0:145 'f2' (temp 2-component vector of float)
-0:145 noise (global 2-component vector of float)
-0:145 Constant:
-0:145 1.000000
-0:145 1.000000
-0:146 Sequence
-0:146 move second child to first child (temp 3-component vector of float)
-0:146 'f3' (temp 3-component vector of float)
-0:146 noise (global 3-component vector of float)
-0:146 Constant:
-0:146 1.000000
-0:146 1.000000
-0:146 1.000000
-0:147 Sequence
-0:147 move second child to first child (temp 4-component vector of float)
-0:147 'f4' (temp 4-component vector of float)
-0:147 noise (global 4-component vector of float)
-0:147 Constant:
-0:147 1.000000
-0:147 1.000000
-0:147 1.000000
-0:147 1.000000
-0:162 Function Definition: foo213( (global void)
-0:162 Function Parameters:
-0:164 Sequence
-0:164 Sequence
-0:164 move second child to first child (temp float)
-0:164 'f' (temp float)
-0:164 Constant:
-0:164 3.000000
-0:165 switch
-0:165 condition
-0:165 'c' (uniform int)
-0:165 body
-0:165 Sequence
-0:166 case: with expression
-0:166 Constant:
-0:166 1 (const int)
-0:? Sequence
-0:167 move second child to first child (temp float)
-0:167 'f' (temp float)
-0:167 sine (global float)
-0:167 'f' (temp float)
-0:168 Branch: Break
-0:169 case: with expression
-0:169 Constant:
-0:169 2 (const int)
-0:? Sequence
-0:170 move second child to first child (temp float)
-0:170 'f' (temp float)
-0:170 component-wise multiply (temp float)
-0:170 'f' (temp float)
-0:170 'f' (temp float)
-0:171 default:
-0:? Sequence
-0:172 move second child to first child (temp float)
-0:172 'f' (temp float)
-0:172 Constant:
-0:172 3.000000
-0:176 inclusive-or (temp int)
-0:176 left-shift (temp int)
-0:176 'i' (temp int)
-0:176 Constant:
-0:176 3 (const int)
-0:176 Constant:
-0:176 69 (const int)
-0:180 Sequence
-0:180 move second child to first child (temp float)
-0:180 't' (temp float)
-0:180 Constant:
-0:180 0.000000
-0:186 Constant:
-0:186 0.000000
-0:188 Constant:
-0:188 0.000000
-0:189 Constant:
-0:189 0.000000
-0:192 move second child to first child (temp float)
-0:192 Constant:
-0:192 0.000000
-0:192 Constant:
-0:192 0.300000
0:? Linker Objects
0:? 'i' (in 4-component vector of float)
0:? 'o' (smooth out 4-component vector of float)
diff --git a/Test/baseResults/130.frag.out b/Test/baseResults/130.frag.out
index a28908e..e71b3e2 100644
--- a/Test/baseResults/130.frag.out
+++ b/Test/baseResults/130.frag.out
@@ -427,326 +427,6 @@
0:18 'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
0:18 Constant:
0:18 3 (const int)
-0:23 Function Definition: foo( (global void)
-0:23 Function Parameters:
-0:25 Sequence
-0:25 Sequence
-0:25 move second child to first child (temp 4-component vector of float)
-0:25 's' (temp 4-component vector of float)
-0:25 textureGather (global 4-component vector of float)
-0:25 'sampC' (uniform samplerCube)
-0:25 Constant:
-0:25 0.200000
-0:25 0.200000
-0:25 0.200000
-0:30 Function Definition: bar( (global void)
-0:30 Function Parameters:
-0:32 Sequence
-0:32 Sequence
-0:32 move second child to first child (temp 4-component vector of float)
-0:32 's' (temp 4-component vector of float)
-0:32 textureGather (global 4-component vector of float)
-0:32 'sampC' (uniform samplerCube)
-0:32 Constant:
-0:32 0.200000
-0:32 0.200000
-0:32 0.200000
-0:43 Function Definition: bar2( (global void)
-0:43 Function Parameters:
-0:45 Sequence
-0:45 Sequence
-0:45 move second child to first child (temp 4-component vector of float)
-0:45 's' (temp 4-component vector of float)
-0:45 textureGather (global 4-component vector of float)
-0:45 'sampC' (uniform samplerCube)
-0:45 Constant:
-0:45 0.200000
-0:45 0.200000
-0:45 0.200000
-0:49 move second child to first child (temp 3-component vector of bool)
-0:49 'b3' (temp 3-component vector of bool)
-0:49 Compare Less Than (global 3-component vector of bool)
-0:49 'uv3' (temp 3-component vector of uint)
-0:49 'uv3' (temp 3-component vector of uint)
-0:50 move second child to first child (temp 3-component vector of bool)
-0:50 'b3' (temp 3-component vector of bool)
-0:50 Equal (global 3-component vector of bool)
-0:50 'uv3' (temp 3-component vector of uint)
-0:50 'uv3' (temp 3-component vector of uint)
-0:56 direct index (temp int)
-0:56 'a1' (temp 1-element array of int)
-0:56 Constant:
-0:56 0 (const int)
-0:57 direct index (temp int)
-0:57 'a2' (temp 1-element array of int)
-0:57 Constant:
-0:57 0 (const int)
-0:60 direct index (temp int)
-0:60 'a3' (temp 4-element array of int)
-0:60 Constant:
-0:60 3 (const int)
-0:61 Compare Not Equal (temp bool)
-0:61 'b3' (temp 3-component vector of bool)
-0:61 'b3' (temp 3-component vector of bool)
-0:62 Constant:
-0:62 false (const bool)
-0:63 Constant:
-0:63 false (const bool)
-0:64 Constant:
-0:64 false (const bool)
-0:65 Constant:
-0:65 true (const bool)
-0:66 Constant:
-0:66 false (const bool)
-0:77 Function Definition: bar23( (global void)
-0:77 Function Parameters:
-0:? Sequence
-0:80 's' (temp 4-component vector of float)
-0:81 move second child to first child (temp 4-component vector of float)
-0:81 's' (temp 4-component vector of float)
-0:81 textureGatherOffset (global 4-component vector of float)
-0:81 'samp2DR' (uniform sampler2DRect)
-0:81 Constant:
-0:81 0.300000
-0:81 0.300000
-0:81 Constant:
-0:81 1 (const int)
-0:81 1 (const int)
-0:82 move second child to first child (temp 4-component vector of float)
-0:82 's' (temp 4-component vector of float)
-0:82 textureGatherOffset (global 4-component vector of float)
-0:82 'samp2D' (uniform sampler2D)
-0:82 Constant:
-0:82 0.300000
-0:82 0.300000
-0:82 Constant:
-0:82 1 (const int)
-0:82 1 (const int)
-0:83 move second child to first child (temp 4-component vector of float)
-0:83 's' (temp 4-component vector of float)
-0:83 textureGatherOffset (global 4-component vector of float)
-0:83 'samp2DA' (uniform sampler2DArray)
-0:83 Constant:
-0:83 0.300000
-0:83 0.300000
-0:83 0.300000
-0:83 Constant:
-0:83 1 (const int)
-0:83 1 (const int)
-0:84 move second child to first child (temp 4-component vector of float)
-0:84 's' (temp 4-component vector of float)
-0:84 textureGatherOffset (global 4-component vector of float)
-0:84 'samp2DS' (uniform sampler2DShadow)
-0:84 Constant:
-0:84 0.300000
-0:84 0.300000
-0:84 Constant:
-0:84 1.300000
-0:84 Constant:
-0:84 1 (const int)
-0:84 1 (const int)
-0:85 move second child to first child (temp 4-component vector of float)
-0:85 's' (temp 4-component vector of float)
-0:85 textureGatherOffset (global 4-component vector of float)
-0:85 'samp2D' (uniform sampler2D)
-0:85 Constant:
-0:85 0.300000
-0:85 0.300000
-0:85 Constant:
-0:85 1 (const int)
-0:85 1 (const int)
-0:85 Constant:
-0:85 2 (const int)
-0:90 Function Definition: bar234( (global void)
-0:90 Function Parameters:
-0:? Sequence
-0:93 move second child to first child (temp 4-component vector of float)
-0:93 's' (temp 4-component vector of float)
-0:93 textureGatherOffset (global 4-component vector of float)
-0:93 'samp2D' (uniform sampler2D)
-0:93 Constant:
-0:93 0.300000
-0:93 0.300000
-0:93 Constant:
-0:93 1 (const int)
-0:93 1 (const int)
-0:94 move second child to first child (temp 4-component vector of float)
-0:94 's' (temp 4-component vector of float)
-0:94 textureGatherOffset (global 4-component vector of float)
-0:94 'samp2DA' (uniform sampler2DArray)
-0:94 Constant:
-0:94 0.300000
-0:94 0.300000
-0:94 0.300000
-0:94 Constant:
-0:94 1 (const int)
-0:94 1 (const int)
-0:95 move second child to first child (temp 4-component vector of float)
-0:95 's' (temp 4-component vector of float)
-0:95 textureGatherOffset (global 4-component vector of float)
-0:95 'samp2DR' (uniform sampler2DRect)
-0:95 Constant:
-0:95 0.300000
-0:95 0.300000
-0:95 Constant:
-0:95 1 (const int)
-0:95 1 (const int)
-0:96 move second child to first child (temp 4-component vector of float)
-0:96 's' (temp 4-component vector of float)
-0:96 textureGatherOffset (global 4-component vector of float)
-0:96 'samp2DS' (uniform sampler2DShadow)
-0:96 Constant:
-0:96 0.300000
-0:96 0.300000
-0:96 Constant:
-0:96 1.300000
-0:96 Constant:
-0:96 1 (const int)
-0:96 1 (const int)
-0:97 move second child to first child (temp 4-component vector of float)
-0:97 's' (temp 4-component vector of float)
-0:97 textureGatherOffset (global 4-component vector of float)
-0:97 'samp2D' (uniform sampler2D)
-0:97 Constant:
-0:97 0.300000
-0:97 0.300000
-0:97 Constant:
-0:97 1 (const int)
-0:97 1 (const int)
-0:97 Constant:
-0:97 2 (const int)
-0:107 Function Definition: bar235( (global void)
-0:107 Function Parameters:
-0:109 Sequence
-0:109 Sequence
-0:109 move second child to first child (temp 3-component vector of int)
-0:109 'a' (temp 3-component vector of int)
-0:109 textureSize (global 3-component vector of int)
-0:109 'Sca' (uniform samplerCubeArray)
-0:109 Constant:
-0:109 3 (const int)
-0:110 Sequence
-0:110 move second child to first child (temp 4-component vector of float)
-0:110 'b' (temp 4-component vector of float)
-0:110 texture (global 4-component vector of float)
-0:110 'Sca' (uniform samplerCubeArray)
-0:110 'i' (smooth in 4-component vector of float)
-0:111 Sequence
-0:111 move second child to first child (temp 4-component vector of int)
-0:111 'c' (temp 4-component vector of int)
-0:111 texture (global 4-component vector of int)
-0:111 'Isca' (uniform isamplerCubeArray)
-0:111 'i' (smooth in 4-component vector of float)
-0:111 Constant:
-0:111 0.700000
-0:112 Sequence
-0:112 move second child to first child (temp 4-component vector of uint)
-0:112 'd' (temp 4-component vector of uint)
-0:112 texture (global 4-component vector of uint)
-0:112 'Usca' (uniform usamplerCubeArray)
-0:112 'i' (smooth in 4-component vector of float)
-0:114 move second child to first child (temp 4-component vector of float)
-0:114 'b' (temp 4-component vector of float)
-0:114 textureLod (global 4-component vector of float)
-0:114 'Sca' (uniform samplerCubeArray)
-0:114 'i' (smooth in 4-component vector of float)
-0:114 Constant:
-0:114 1.700000
-0:115 move second child to first child (temp 3-component vector of int)
-0:115 'a' (temp 3-component vector of int)
-0:115 textureSize (global 3-component vector of int)
-0:115 'Scas' (uniform samplerCubeArrayShadow)
-0:115 direct index (temp int)
-0:115 'a' (temp 3-component vector of int)
-0:115 Constant:
-0:115 0 (const int)
-0:116 Sequence
-0:116 move second child to first child (temp float)
-0:116 'f' (temp float)
-0:116 texture (global float)
-0:116 'Scas' (uniform samplerCubeArrayShadow)
-0:116 'i' (smooth in 4-component vector of float)
-0:116 direct index (temp float)
-0:116 'b' (temp 4-component vector of float)
-0:116 Constant:
-0:116 1 (const int)
-0:117 move second child to first child (temp 4-component vector of int)
-0:117 'c' (temp 4-component vector of int)
-0:117 textureGrad (global 4-component vector of int)
-0:117 'Isca' (uniform isamplerCubeArray)
-0:117 'i' (smooth in 4-component vector of float)
-0:117 Constant:
-0:117 0.100000
-0:117 0.100000
-0:117 0.100000
-0:117 Constant:
-0:117 0.200000
-0:117 0.200000
-0:117 0.200000
-0:129 Function Definition: bar23444( (global void)
-0:129 Function Parameters:
-0:? Sequence
-0:132 Sequence
-0:132 move second child to first child (temp float)
-0:132 'a1' (temp float)
-0:132 direct index (temp float)
-0:132 direct index (temp 3-component vector of float)
-0:132 'm43' (temp 4X3 matrix of float)
-0:132 Constant:
-0:132 3 (const int)
-0:132 Constant:
-0:132 1 (const int)
-0:134 Sequence
-0:134 move second child to first child (temp int)
-0:134 'a2' (temp int)
-0:134 Constant:
-0:134 4 (const int)
-0:135 add second child into first child (temp int)
-0:135 'a2' (temp int)
-0:135 Constant:
-0:135 3 (const int)
-0:136 add second child into first child (temp int)
-0:136 'a2' (temp int)
-0:136 Constant:
-0:136 3 (const int)
-0:137 Sequence
-0:137 move second child to first child (temp float)
-0:137 'b' (const (read only) float)
-0:137 component-wise multiply (temp float)
-0:137 Constant:
-0:137 2.000000
-0:137 'a1' (temp float)
-0:138 move second child to first child (temp float)
-0:138 direct index (temp float)
-0:138 'a' (global 3-component vector of float)
-0:138 Constant:
-0:138 0 (const int)
-0:138 Constant:
-0:138 -1.000000
-0:140 Constant:
-0:140 0.000000
-0:141 Constant:
-0:141 0.000000
-0:143 Constant:
-0:143 1 (const int)
-0:162 Function Definition: qux2( (global void)
-0:162 Function Parameters:
-0:? Sequence
-0:165 imageAtomicCompSwap (global int)
-0:165 'iimg2D' (layout(r32i ) uniform iimage2D)
-0:165 Construct ivec2 (temp 2-component vector of int)
-0:165 'i' (temp int)
-0:165 'i' (temp int)
-0:165 'i' (temp int)
-0:165 'i' (temp int)
-0:166 Sequence
-0:166 move second child to first child (temp 4-component vector of int)
-0:166 'pos' (temp 4-component vector of int)
-0:166 imageLoad (global 4-component vector of int)
-0:166 'iimg2D' (layout(r32i ) uniform iimage2D)
-0:166 Construct ivec2 (temp 2-component vector of int)
-0:166 'i' (temp int)
-0:166 'i' (temp int)
0:? Linker Objects
0:? 'a' (global 3-component vector of float)
0:? 'b' (global float)
diff --git a/Test/baseResults/130.vert.out b/Test/baseResults/130.vert.out
index 7cfeb19..1b3a0e1 100644
--- a/Test/baseResults/130.vert.out
+++ b/Test/baseResults/130.vert.out
@@ -269,23 +269,6 @@
0:46 1 (const int)
0:46 Constant:
0:46 0.300000
-0:57 Function Definition: foo88( (global void)
-0:57 Function Parameters:
-0:? Sequence
-0:61 'id' (temp int)
-0:63 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
-0:64 'gl_Color' (in 4-component vector of float Color)
-0:65 direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
-0:65 'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
-0:65 Constant:
-0:65 0 (const int)
-0:66 far: direct index for structure (global float)
-0:66 'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})
-0:66 Constant:
-0:66 1 (const int)
-0:67 'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)
-0:68 'gl_FogFragCoord' (smooth out float FogFragCoord)
-0:69 'gl_FrontColor' (smooth out 4-component vector of float FrontColor)
0:? Linker Objects
0:? 'c' (uniform int)
0:? 'us2D' (uniform usampler2D)
diff --git a/Test/baseResults/140.frag.out b/Test/baseResults/140.frag.out
index 38c3b9f..224cd30 100644
--- a/Test/baseResults/140.frag.out
+++ b/Test/baseResults/140.frag.out
@@ -136,51 +136,6 @@
0:22 'patch' (global float)
0:22 Constant:
0:22 3.100000
-0:38 Function Definition: foo( (global void)
-0:38 Function Parameters:
-0:40 Sequence
-0:40 Sequence
-0:40 move second child to first child (temp 2-component vector of float)
-0:40 'r1' (temp 2-component vector of float)
-0:40 modf (global 2-component vector of float)
-0:40 vector swizzle (temp 2-component vector of float)
-0:40 'v' (smooth in 4-component vector of float)
-0:40 Sequence
-0:40 Constant:
-0:40 0 (const int)
-0:40 Constant:
-0:40 1 (const int)
-0:40 vector swizzle (temp 2-component vector of float)
-0:40 'v' (smooth in 4-component vector of float)
-0:40 Sequence
-0:40 Constant:
-0:40 2 (const int)
-0:40 Constant:
-0:40 3 (const int)
-0:41 Sequence
-0:41 move second child to first child (temp 2-component vector of float)
-0:41 'r2' (temp 2-component vector of float)
-0:41 modf (global 2-component vector of float)
-0:41 vector swizzle (temp 2-component vector of float)
-0:41 'o' (out 4-component vector of float)
-0:41 Sequence
-0:41 Constant:
-0:41 0 (const int)
-0:41 Constant:
-0:41 1 (const int)
-0:41 vector swizzle (temp 2-component vector of float)
-0:41 'o' (out 4-component vector of float)
-0:41 Sequence
-0:41 Constant:
-0:41 2 (const int)
-0:41 Constant:
-0:41 3 (const int)
-0:42 move second child to first child (temp float)
-0:42 direct index (temp float)
-0:42 'o' (out 4-component vector of float)
-0:42 Constant:
-0:42 2 (const int)
-0:42 Function Call: fooi( (global float)
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'i1' (global float)
@@ -198,13 +153,6 @@
0:48 'i2' (global float)
0:48 Constant:
0:48 102.000000
-0:50 Function Definition: fooi( (global float)
-0:50 Function Parameters:
-0:52 Sequence
-0:52 Branch: Return with expression
-0:52 add (temp float)
-0:52 'i1' (global float)
-0:52 'i2' (global float)
0:? Linker Objects
0:? 'v' (smooth in 4-component vector of float)
0:? 'i' (smooth in 4-component vector of float)
diff --git a/Test/baseResults/140.vert.out b/Test/baseResults/140.vert.out
index 365a0aa..e7f88e3 100644
--- a/Test/baseResults/140.vert.out
+++ b/Test/baseResults/140.vert.out
@@ -178,71 +178,6 @@
0:18 'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)
0:19 'gl_FogFragCoord' (smooth out float FogFragCoord)
0:20 'gl_FrontColor' (smooth out 4-component vector of float FrontColor)
-0:48 Function Definition: foo( (global void)
-0:48 Function Parameters:
-0:50 Sequence
-0:50 Sequence
-0:50 move second child to first child (temp 4-component vector of float)
-0:50 'v' (temp 4-component vector of float)
-0:50 textureFetch (global 4-component vector of float)
-0:50 's2dr' (uniform sampler2DRect)
-0:50 'itloc2' (in 2-component vector of int)
-0:51 add second child into first child (temp 4-component vector of float)
-0:51 'v' (temp 4-component vector of float)
-0:51 Constant:
-0:51 0.000000
-0:52 add second child into first child (temp 4-component vector of float)
-0:52 'v' (temp 4-component vector of float)
-0:52 texture (global 4-component vector of float)
-0:52 's2dr' (uniform sampler2DRect)
-0:52 'tloc2' (in 2-component vector of float)
-0:53 add second child into first child (temp 4-component vector of float)
-0:53 'v' (temp 4-component vector of float)
-0:53 Constant:
-0:53 0.000000
-0:54 add second child into first child (temp 4-component vector of float)
-0:54 'v' (temp 4-component vector of float)
-0:54 texture (global float)
-0:54 's2drs' (uniform sampler2DRectShadow)
-0:54 'tloc3' (in 3-component vector of float)
-0:55 add second child into first child (temp 4-component vector of float)
-0:55 'v' (temp 4-component vector of float)
-0:55 textureProj (global 4-component vector of float)
-0:55 's2dr' (uniform sampler2DRect)
-0:55 'tloc3' (in 3-component vector of float)
-0:56 add second child into first child (temp 4-component vector of float)
-0:56 'v' (temp 4-component vector of float)
-0:56 textureProj (global 4-component vector of float)
-0:56 's2dr' (uniform sampler2DRect)
-0:56 'tloc4' (in 4-component vector of float)
-0:57 add second child into first child (temp 4-component vector of float)
-0:57 'v' (temp 4-component vector of float)
-0:57 textureProjGradOffset (global 4-component vector of float)
-0:57 's2dr' (uniform sampler2DRect)
-0:57 'tloc4' (in 4-component vector of float)
-0:57 Constant:
-0:57 0.000000
-0:57 0.000000
-0:57 Constant:
-0:57 0.000000
-0:57 0.000000
-0:57 Constant:
-0:57 1 (const int)
-0:57 2 (const int)
-0:58 add second child into first child (temp 4-component vector of float)
-0:58 'v' (temp 4-component vector of float)
-0:58 textureProjGradOffset (global float)
-0:58 's2drs' (uniform sampler2DRectShadow)
-0:58 'tloc4' (in 4-component vector of float)
-0:58 Constant:
-0:58 0.000000
-0:58 0.000000
-0:58 Constant:
-0:58 0.000000
-0:58 0.000000
-0:58 Constant:
-0:58 1 (const int)
-0:58 2 (const int)
0:? Linker Objects
0:? 'sbuf' (uniform isamplerBuffer)
0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})
diff --git a/Test/baseResults/150.frag.out b/Test/baseResults/150.frag.out
index 0972fdc..143de3b 100644
--- a/Test/baseResults/150.frag.out
+++ b/Test/baseResults/150.frag.out
@@ -141,90 +141,6 @@
0:18 'patch' (global float)
0:18 Constant:
0:18 3.100000
-0:31 Function Definition: barWxyz( (global void)
-0:31 Function Parameters:
-0:33 Sequence
-0:33 Sequence
-0:33 move second child to first child (temp 2-component vector of int)
-0:33 't11' (temp 2-component vector of int)
-0:33 textureSize (global 2-component vector of int)
-0:33 'sms' (uniform sampler2DMS)
-0:34 Sequence
-0:34 move second child to first child (temp 2-component vector of int)
-0:34 't12' (temp 2-component vector of int)
-0:34 textureSize (global 2-component vector of int)
-0:34 'isms' (uniform isampler2DMS)
-0:35 Sequence
-0:35 move second child to first child (temp 2-component vector of int)
-0:35 't13' (temp 2-component vector of int)
-0:35 textureSize (global 2-component vector of int)
-0:35 'usms' (uniform usampler2DMS)
-0:36 Sequence
-0:36 move second child to first child (temp 3-component vector of int)
-0:36 't21' (temp 3-component vector of int)
-0:36 textureSize (global 3-component vector of int)
-0:36 'smsa' (uniform sampler2DMSArray)
-0:37 Sequence
-0:37 move second child to first child (temp 3-component vector of int)
-0:37 't22' (temp 3-component vector of int)
-0:37 textureSize (global 3-component vector of int)
-0:37 'ismsa' (uniform isampler2DMSArray)
-0:38 Sequence
-0:38 move second child to first child (temp 3-component vector of int)
-0:38 't23' (temp 3-component vector of int)
-0:38 textureSize (global 3-component vector of int)
-0:38 'usmsa' (uniform usampler2DMSArray)
-0:39 Sequence
-0:39 move second child to first child (temp 4-component vector of float)
-0:39 't31' (temp 4-component vector of float)
-0:39 textureFetch (global 4-component vector of float)
-0:39 'sms' (uniform sampler2DMS)
-0:39 'p2' (flat in 2-component vector of int)
-0:39 'samp' (flat in int)
-0:40 Sequence
-0:40 move second child to first child (temp 4-component vector of int)
-0:40 't32' (temp 4-component vector of int)
-0:40 textureFetch (global 4-component vector of int)
-0:40 'isms' (uniform isampler2DMS)
-0:40 'p2' (flat in 2-component vector of int)
-0:40 'samp' (flat in int)
-0:41 Sequence
-0:41 move second child to first child (temp 4-component vector of uint)
-0:41 't33' (temp 4-component vector of uint)
-0:41 textureFetch (global 4-component vector of uint)
-0:41 'usms' (uniform usampler2DMS)
-0:41 'p2' (flat in 2-component vector of int)
-0:41 Constant:
-0:41 3 (const int)
-0:42 Sequence
-0:42 move second child to first child (temp 4-component vector of float)
-0:42 't41' (temp 4-component vector of float)
-0:42 textureFetch (global 4-component vector of float)
-0:42 'smsa' (uniform sampler2DMSArray)
-0:42 'p3' (flat in 3-component vector of int)
-0:42 'samp' (flat in int)
-0:43 Sequence
-0:43 move second child to first child (temp 4-component vector of int)
-0:43 't42' (temp 4-component vector of int)
-0:43 textureFetch (global 4-component vector of int)
-0:43 'ismsa' (uniform isampler2DMSArray)
-0:43 Constant:
-0:43 2 (const int)
-0:43 2 (const int)
-0:43 2 (const int)
-0:43 'samp' (flat in int)
-0:44 Sequence
-0:44 move second child to first child (temp 4-component vector of uint)
-0:44 't43' (temp 4-component vector of uint)
-0:44 textureFetch (global 4-component vector of uint)
-0:44 'usmsa' (uniform usampler2DMSArray)
-0:44 'p3' (flat in 3-component vector of int)
-0:44 'samp' (flat in int)
-0:47 Function Definition: primitiveID( (global int)
-0:47 Function Parameters:
-0:49 Sequence
-0:49 Branch: Return with expression
-0:49 'gl_PrimitiveID' (flat in int PrimitiveID)
0:? Linker Objects
0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
0:? 'foo' (smooth in 4-component vector of float)
diff --git a/Test/baseResults/150.geom.out b/Test/baseResults/150.geom.out
index 48b7925..dc5a41a 100644
--- a/Test/baseResults/150.geom.out
+++ b/Test/baseResults/150.geom.out
@@ -255,39 +255,11 @@
0:37 'gl_Layer' (layout(stream=0 ) out int Layer)
0:37 Constant:
0:37 2 (const int)
-0:67 Function Definition: foo(i1; (global void)
-0:67 Function Parameters:
-0:67 'a' (in int)
-0:69 Sequence
-0:69 move second child to first child (temp 4-component vector of float)
-0:69 a: direct index for structure (layout(stream=6 ) out 4-component vector of float)
-0:69 'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
-0:69 Constant:
-0:69 0 (const int)
-0:69 Constant:
-0:69 1.000000
-0:69 1.000000
-0:69 1.000000
-0:69 1.000000
0:107 Sequence
0:107 move second child to first child (temp float)
0:107 'summ' (global float)
0:107 Constant:
0:107 11332.000000
-0:127 Function Definition: fooe1( (global void)
-0:127 Function Parameters:
-0:129 Sequence
-0:129 move second child to first child (temp int)
-0:129 'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
-0:129 Constant:
-0:129 15 (const int)
-0:134 Function Definition: fooe2( (global void)
-0:134 Function Parameters:
-0:136 Sequence
-0:136 move second child to first child (temp int)
-0:136 'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
-0:136 Constant:
-0:136 15 (const int)
0:? Linker Objects
0:? 'fromV' (in 4-element array of block{in 3-component vector of float color})
0:? 'toF' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
diff --git a/Test/baseResults/150.tesc.out b/Test/baseResults/150.tesc.out
index 1736bf0..21fade7 100644
--- a/Test/baseResults/150.tesc.out
+++ b/Test/baseResults/150.tesc.out
@@ -910,8 +910,10 @@
Linked tessellation control stage:
+ERROR: Linking tessellation control stage: can't handle multiple entry points per stage
ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
main(
+ERROR: Linking tessellation control stage: can't handle multiple entry points per stage
ERROR: Linking tessellation control stage: Contradictory layout vertices values
ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
main(
@@ -921,6 +923,7 @@
gl_out: "out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" versus "out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}"
ERROR: Linking tessellation control stage: Types must match:
outa: "global 4-element array of int" versus "global 1-element array of int"
+ERROR: Linking tessellation control stage: can't handle multiple entry points per stage
ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
main(
ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
@@ -934,8 +937,10 @@
Linked tessellation evaluation stage:
+ERROR: Linking tessellation evaluation stage: can't handle multiple entry points per stage
ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
main(
+ERROR: Linking tessellation evaluation stage: can't handle multiple entry points per stage
ERROR: Linking tessellation evaluation stage: Contradictory input layout primitives
ERROR: Linking tessellation evaluation stage: Contradictory input vertex spacing
ERROR: Linking tessellation evaluation stage: Contradictory triangle ordering
@@ -1184,35 +1189,6 @@
0:56 Barrier (global void)
0:59 Branch: Return
0:61 Barrier (global void)
-0:67 Function Definition: foo( (global void)
-0:67 Function Parameters:
-0:69 Sequence
-0:69 gl_PointSize: direct index for structure (out float PointSize)
-0:69 direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
-0:69 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
-0:69 Constant:
-0:69 4 (const int)
-0:69 Constant:
-0:69 1 (const int)
-0:71 Barrier (global void)
-0:91 Function Definition: foop( (global void)
-0:91 Function Parameters:
-0:? Sequence
-0:95 multiply second child into first child (temp 3-component vector of float)
-0:95 'pv3' (noContraction temp 3-component vector of float)
-0:95 'pv3' (noContraction temp 3-component vector of float)
-0:96 move second child to first child (temp 3-component vector of float)
-0:96 'pv3' (noContraction temp 3-component vector of float)
-0:96 fma (global 3-component vector of float)
-0:96 'pv3' (noContraction temp 3-component vector of float)
-0:96 'pv3' (noContraction temp 3-component vector of float)
-0:96 'pv3' (noContraction temp 3-component vector of float)
-0:97 move second child to first child (temp double)
-0:97 'd' (noContraction temp double)
-0:97 fma (global double)
-0:97 'd' (noContraction temp double)
-0:97 'd' (noContraction temp double)
-0:97 'd' (noContraction temp double)
0:8 Function Definition: main( (global void)
0:8 Function Parameters:
0:15 Function Definition: main( (global void)
@@ -1274,41 +1250,6 @@
0:26 indirect index (temp block{out 4-component vector of float Position gl_Position})
0:26 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
0:26 'gl_InvocationID' (in int InvocationID)
-0:34 Function Definition: foo( (global void)
-0:34 Function Parameters:
-0:36 Sequence
-0:36 Test condition and select (temp void)
-0:36 Condition
-0:36 logical-or (temp bool)
-0:36 Compare Not Equal (temp bool)
-0:36 Constant:
-0:36 -0.625000
-0:36 -0.500000
-0:36 -0.375000
-0:36 -0.250000
-0:36 -0.375000
-0:36 -0.250000
-0:36 -0.125000
-0:36 0.000000
-0:36 direct index (layout(location=0 ) temp 2X4 matrix of double)
-0:36 'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
-0:36 Constant:
-0:36 0 (const int)
-0:37 Compare Not Equal (temp bool)
-0:37 Constant:
-0:37 0.375000
-0:37 0.500000
-0:37 0.625000
-0:37 0.750000
-0:37 0.625000
-0:37 0.750000
-0:37 0.875000
-0:37 -0.625000
-0:37 direct index (layout(location=12 ) temp 2X4 matrix of double)
-0:37 'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
-0:37 Constant:
-0:37 0 (const int)
-0:36 true case is null
0:? Linker Objects
0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:? 'outa' (global 4-element array of int)
diff --git a/Test/baseResults/300.frag.out b/Test/baseResults/300.frag.out
index 6ec58aa..cca6abd 100644
--- a/Test/baseResults/300.frag.out
+++ b/Test/baseResults/300.frag.out
@@ -592,131 +592,6 @@
0:96 'c4D' (smooth temp lowp 4-component vector of float)
0:97 arc hyp. tangent (global lowp 3-component vector of float)
0:97 'c3D' (smooth in lowp 3-component vector of float)
-0:108 Function Definition: foo( (global void)
-0:108 Function Parameters:
-0:110 Sequence
-0:110 move second child to first child (temp lowp 4-component vector of float)
-0:110 direct index (temp lowp 4-component vector of float)
-0:110 'colors' (out 4-element array of lowp 4-component vector of float)
-0:110 Constant:
-0:110 2 (const int)
-0:110 'c4D' (smooth temp lowp 4-component vector of float)
-0:111 move second child to first child (temp lowp 4-component vector of float)
-0:111 indirect index (temp lowp 4-component vector of float)
-0:111 'colors' (out 4-element array of lowp 4-component vector of float)
-0:111 'ic1D' (flat in mediump int)
-0:111 'c4D' (smooth temp lowp 4-component vector of float)
-0:117 Function Definition: foo13(struct-s-i1-s211; (global void)
-0:117 Function Parameters:
-0:117 'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
-0:119 Sequence
-0:119 Test condition and select (temp void)
-0:119 Condition
-0:119 Compare Equal (temp bool)
-0:119 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
-0:119 'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
-0:119 true case is null
-0:120 Test condition and select (temp void)
-0:120 Condition
-0:120 Compare Not Equal (temp bool)
-0:120 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
-0:120 'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
-0:120 true case is null
-0:121 Constant:
-0:121 false (const bool)
-0:122 move second child to first child (temp structure{global mediump int i, global lowp sampler2D s})
-0:122 'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
-0:122 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
-0:123 Compare Equal (temp bool)
-0:123 'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
-0:123 'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
-0:126 Function Definition: foo23( (global void)
-0:126 Function Parameters:
-0:128 Sequence
-0:128 textureOffset (global lowp float)
-0:128 's2DShadow' (uniform lowp sampler2DShadow)
-0:128 'c3D' (smooth in lowp 3-component vector of float)
-0:128 Constant:
-0:128 -8 (const int)
-0:128 7 (const int)
-0:128 'c1D' (smooth in lowp float)
-0:129 textureOffset (global lowp float)
-0:129 's2DShadow' (uniform lowp sampler2DShadow)
-0:129 'c3D' (smooth in lowp 3-component vector of float)
-0:129 Constant:
-0:129 -9 (const int)
-0:129 8 (const int)
-0:129 'c1D' (smooth in lowp float)
-0:132 Function Definition: foo324( (global void)
-0:132 Function Parameters:
-0:134 Sequence
-0:134 Sequence
-0:134 move second child to first child (temp lowp float)
-0:134 'p' (temp lowp float)
-0:134 Constant:
-0:134 210.712306
-0:135 add second child into first child (temp lowp float)
-0:135 'p' (temp lowp float)
-0:135 Constant:
-0:135 0.389418
-0:136 add second child into first child (temp lowp float)
-0:136 'p' (temp lowp float)
-0:136 Constant:
-0:136 5.000000
-0:137 add second child into first child (temp lowp float)
-0:137 'p' (temp lowp float)
-0:137 Constant:
-0:137 13.000000
-0:138 Sequence
-0:138 move second child to first child (temp lowp 3-component vector of float)
-0:138 'c3' (temp lowp 3-component vector of float)
-0:138 Constant:
-0:138 -15.000000
-0:138 -2.000000
-0:138 39.000000
-0:139 add second child into first child (temp lowp 3-component vector of float)
-0:139 'c3' (temp lowp 3-component vector of float)
-0:139 Constant:
-0:139 -1.000000
-0:139 -2.000000
-0:139 -3.000000
-0:140 add second child into first child (temp lowp 3-component vector of float)
-0:140 'c3' (temp lowp 3-component vector of float)
-0:140 Constant:
-0:140 1.000000
-0:140 2.000000
-0:140 3.000000
-0:141 Sequence
-0:141 move second child to first child (temp lowp 2-component vector of float)
-0:141 'c2' (temp lowp 2-component vector of float)
-0:141 Constant:
-0:141 1.000000
-0:141 -3.000000
-0:142 add second child into first child (temp lowp 2-component vector of float)
-0:142 'c2' (temp lowp 2-component vector of float)
-0:142 Constant:
-0:142 1.000000
-0:142 -3.000000
-0:143 add second child into first child (temp lowp 2-component vector of float)
-0:143 'c2' (temp lowp 2-component vector of float)
-0:143 Constant:
-0:143 3.000000
-0:143 -8.544004
-0:144 add second child into first child (temp lowp 2-component vector of float)
-0:144 'c2' (temp lowp 2-component vector of float)
-0:144 Constant:
-0:144 0.000000
-0:144 0.000000
-0:145 Sequence
-0:145 move second child to first child (temp lowp 3X2 matrix of float)
-0:145 'm32' (temp lowp 3X2 matrix of float)
-0:145 Constant:
-0:145 10.000000
-0:145 15.000000
-0:145 14.000000
-0:145 21.000000
-0:145 22.000000
-0:145 33.000000
0:? Linker Objects
0:? 's2D' (uniform lowp sampler2D)
0:? 's3D' (uniform lowp sampler3D)
diff --git a/Test/baseResults/300.vert.out b/Test/baseResults/300.vert.out
index d35929f..5f060cb 100644
--- a/Test/baseResults/300.vert.out
+++ b/Test/baseResults/300.vert.out
@@ -447,132 +447,6 @@
0:68 Constant:
0:68 3.000000
0:68 4.000000
-0:71 Function Definition: newVFun( (global void)
-0:71 Function Parameters:
-0:73 Sequence
-0:73 move second child to first child (temp 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:118 Function Definition: foo23( (global void)
-0:118 Function Parameters:
-0:120 Sequence
-0:120 Sequence
-0:120 move second child to first child (temp highp 2-component vector of int)
-0:120 'x1' (temp highp 2-component vector of int)
-0:120 textureSize (global highp 2-component vector of int, operation at lowp)
-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 (temp highp 3-component vector of int)
-0:122 'x3' (temp highp 3-component vector of int)
-0:122 textureSize (global highp 3-component vector of int, operation at lowp)
-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 (temp highp 4-component vector of float)
-0:124 'x4' (temp highp 4-component vector of float)
-0:124 texture (global lowp 4-component vector of float, operation at highp)
-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 (temp highp 4-component vector of float)
-0:126 'x5' (temp highp 4-component vector of float)
-0:126 textureProjOffset (global lowp 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 (temp highp float)
-0:128 'x6' (temp highp float)
-0:128 textureProjGradOffset (global lowp float, operation at highp)
-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:137 Function Definition: foo2349( (global void)
-0:137 Function Parameters:
-0:139 Sequence
-0:139 Sequence
-0:139 move second child to first child (temp 3-element array of highp float)
-0:139 'x' (temp 3-element array of highp float)
-0:139 Constant:
-0:139 1.000000
-0:139 2.000000
-0:139 3.000000
-0:140 Sequence
-0:140 move second child to first child (temp 3-element array of highp float)
-0:140 'y' (temp 3-element array of highp float)
-0:140 'x' (temp 3-element array of highp float)
-0:141 Sequence
-0:141 move second child to first child (temp 3-element array of highp float)
-0:141 'z' (temp 3-element array of highp float)
-0:141 'x' (temp 3-element array of highp float)
-0:143 move second child to first child (temp 3-element array of highp float)
-0:143 'w' (temp 3-element array of highp float)
-0:143 'y' (temp 3-element array of highp float)
-0:155 Function Definition: gggf(f1; (global highp int)
-0:155 Function Parameters:
-0:155 'f' (in highp float)
-0:155 Sequence
-0:155 Branch: Return with expression
-0:155 Constant:
-0:155 2 (const int)
-0:158 Function Definition: agggf(f1; (global highp int)
-0:158 Function Parameters:
-0:158 'f' (in highp float)
-0:158 Sequence
-0:158 Branch: Return with expression
-0:158 Constant:
-0:158 2 (const int)
-0:178 Function Definition: fooDeeparray( (global void)
-0:178 Function Parameters:
-0:181 Sequence
-0:181 Sequence
-0:180 move second child to first child (temp 3-element array of highp float)
-0:180 'x' (temp 3-element array of highp float)
-0:180 Constant:
-0:180 1.000000
-0:180 2.000000
-0:180 3.000000
-0:181 move second child to first child (temp 4-element array of highp float)
-0:181 'y' (temp 4-element array of highp float)
-0:181 Constant:
-0:181 1.000000
-0:181 2.000000
-0:181 3.000000
-0:181 4.000000
-0:183 move second child to first child (temp 3-element array of highp float)
-0:183 'xp' (temp 3-element array of highp float)
-0:183 'x' (temp 3-element array of highp float)
-0:184 move second child to first child (temp 4-element array of highp float)
-0:184 'yp' (temp 4-element array of highp float)
-0:184 'y' (temp 4-element array of highp float)
-0:185 'xp' (temp 3-element array of highp float)
-0:186 'yp' (temp 4-element array of highp float)
0:? Linker Objects
0:? 'm43' (uniform highp 4X3 matrix of float)
0:? 'm33' (uniform highp 3X3 matrix of float)
diff --git a/Test/baseResults/300scope.vert.out b/Test/baseResults/300scope.vert.out
index 2a9a945..e340cf6 100644
--- a/Test/baseResults/300scope.vert.out
+++ b/Test/baseResults/300scope.vert.out
@@ -131,6 +131,8 @@
Linked vertex stage:
+ERROR: Linking vertex stage: No function definition (body) found:
+ g(
Shader version: 300
ERROR: node is still EOpNull!
@@ -151,16 +153,6 @@
0:8 1.000000
0:11 Branch: Return with expression
0:11 'a' (in highp int)
-0:25 Function Definition: cos(f1; (global highp float)
-0:25 Function Parameters:
-0:25 'x' (in highp float)
-0:27 Sequence
-0:27 Branch: Return
-0:29 Function Definition: radians(b1; (global bool)
-0:29 Function Parameters:
-0:29 'x' (in bool)
-0:31 Sequence
-0:31 Branch: Return
0:36 Function Definition: main( (global void)
0:36 Function Parameters:
0:? Sequence
diff --git a/Test/baseResults/310.comp.out b/Test/baseResults/310.comp.out
index 9a5e4e8..a5be10e 100644
--- a/Test/baseResults/310.comp.out
+++ b/Test/baseResults/310.comp.out
@@ -536,340 +536,6 @@
0:36 Constant:
0:36 1 (const uint)
0:36 'gl_LocalInvocationIndex' (in highp uint LocalInvocationIndex)
-0:59 Function Definition: foo( (global void)
-0:59 Function Parameters:
-0:61 Sequence
-0:61 move second child to first child (temp highp float)
-0:61 direct index (layout(column_major shared ) temp highp float)
-0:61 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:61 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:61 Constant:
-0:61 1 (const int)
-0:61 Constant:
-0:61 2 (const int)
-0:61 Constant:
-0:61 4.700000
-0:62 array length (temp int)
-0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:62 Constant:
-0:62 1 (const int)
-0:63 Pre-Increment (temp highp 4-component vector of float)
-0:63 's' (shared highp 4-component vector of float)
-0:84 Function Definition: qux( (global void)
-0:84 Function Parameters:
-0:86 Sequence
-0:86 Sequence
-0:86 move second child to first child (temp highp int)
-0:86 'i' (temp highp int)
-0:86 Constant:
-0:86 4 (const int)
-0:87 imageAtomicCompSwap (global highp int)
-0:87 'iimg2D' (layout(r32i ) uniform highp iimage2D)
-0:87 Construct ivec2 (temp highp 2-component vector of int)
-0:87 'i' (temp highp int)
-0:87 'i' (temp highp int)
-0:87 'i' (temp highp int)
-0:87 'i' (temp highp int)
-0:88 imageAtomicAdd (global highp uint)
-0:88 'uimg2D' (layout(r32ui ) uniform mediump uimage2D)
-0:88 Construct ivec2 (temp highp 2-component vector of int)
-0:88 'i' (temp highp int)
-0:88 'i' (temp highp int)
-0:88 Convert int to uint (temp highp uint)
-0:88 'i' (temp highp int)
-0:89 imageAtomicMin (global highp int)
-0:89 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
-0:89 Construct ivec2 (temp highp 2-component vector of int)
-0:89 'i' (temp highp int)
-0:89 'i' (temp highp int)
-0:89 'i' (temp highp int)
-0:90 Constant:
-0:90 0.000000
-0:91 Sequence
-0:91 move second child to first child (temp highp 4-component vector of int)
-0:91 'pos' (temp highp 4-component vector of int)
-0:91 imageLoad (global highp 4-component vector of int)
-0:91 'iimg2D' (layout(r32i ) uniform highp iimage2D)
-0:91 Construct ivec2 (temp highp 2-component vector of int)
-0:91 'i' (temp highp int)
-0:91 'i' (temp highp int)
-0:92 imageStore (global highp void)
-0:92 'ii2da' (writeonly uniform highp iimage2DArray)
-0:92 Construct ivec3 (temp 3-component vector of int)
-0:92 'i' (temp highp int)
-0:92 'i' (temp highp int)
-0:92 'i' (temp highp int)
-0:92 Constant:
-0:92 0 (const int)
-0:92 0 (const int)
-0:92 0 (const int)
-0:92 0 (const int)
-0:93 imageLoad (global mediump 4-component vector of float)
-0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D)
-0:93 Construct ivec2 (temp mediump 2-component vector of int)
-0:93 'i' (temp highp int)
-0:93 'i' (temp highp int)
-0:94 imageLoad (global highp 4-component vector of int)
-0:94 'ii2da' (writeonly uniform highp iimage2DArray)
-0:94 Construct ivec3 (temp highp 3-component vector of int)
-0:94 'i' (temp highp int)
-0:94 'i' (temp highp int)
-0:94 'i' (temp highp int)
-0:100 Function Definition: passr(iI21; (global void)
-0:100 Function Parameters:
-0:100 'image' (coherent readonly in highp iimage2D)
-0:107 Function Definition: passrc( (global void)
-0:107 Function Parameters:
-0:109 Sequence
-0:109 Function Call: passr(iI21; (global void)
-0:109 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
-0:110 Function Call: passr(iI21; (global void)
-0:110 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
-0:111 Function Call: passr(iI21; (global void)
-0:111 'iimg2D' (layout(r32i ) uniform highp iimage2D)
-0:123 Function Definition: func(au1; (global highp uint)
-0:123 Function Parameters:
-0:123 'c' (in highp atomic_uint)
-0:125 Sequence
-0:125 Branch: Return with expression
-0:125 AtomicCounterIncrement (global highp uint)
-0:125 'c' (in highp atomic_uint)
-0:128 Function Definition: func2(au1; (global highp uint)
-0:128 Function Parameters:
-0:128 'c' (out highp atomic_uint)
-0:130 Sequence
-0:130 Branch: Return with expression
-0:130 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
-0:131 Branch: Return with expression
-0:131 AtomicCounter (global highp uint)
-0:131 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
-0:134 Function Definition: mainAC( (global void)
-0:134 Function Parameters:
-0:? Sequence
-0:137 Sequence
-0:137 move second child to first child (temp highp uint)
-0:137 'val' (temp highp uint)
-0:137 AtomicCounter (global highp uint)
-0:137 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
-0:138 AtomicCounterDecrement (global highp uint)
-0:138 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
-0:146 Function Definition: opac( (global void)
-0:146 Function Parameters:
-0:? Sequence
-0:149 indirect index (temp highp int)
-0:149 'a' (temp 3-element array of highp int)
-0:149 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
-0:150 direct index (layout(binding=2 offset=4 ) temp highp atomic_uint)
-0:150 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
-0:150 Constant:
-0:150 2 (const int)
-0:151 indirect index (layout(binding=2 offset=4 ) temp highp atomic_uint)
-0:151 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
-0:151 'i' (uniform highp int)
-0:157 Function Definition: atoms( (global void)
-0:157 Function Parameters:
-0:159 Sequence
-0:159 Sequence
-0:159 move second child to first child (temp highp int)
-0:159 'origi' (temp highp int)
-0:159 AtomicAdd (global highp int)
-0:159 'atomi' (shared highp int)
-0:159 Constant:
-0:159 3 (const int)
-0:160 Sequence
-0:160 move second child to first child (temp highp uint)
-0:160 'origu' (temp highp uint)
-0:160 AtomicAnd (global highp uint)
-0:160 'atomu' (shared highp uint)
-0:160 Constant:
-0:160 7 (const uint)
-0:161 move second child to first child (temp highp int)
-0:161 'origi' (temp highp int)
-0:161 AtomicExchange (global highp int)
-0:161 'atomi' (shared highp int)
-0:161 Constant:
-0:161 4 (const int)
-0:162 move second child to first child (temp highp uint)
-0:162 'origu' (temp highp uint)
-0:162 AtomicCompSwap (global highp uint)
-0:162 'atomu' (shared highp uint)
-0:162 Constant:
-0:162 10 (const uint)
-0:162 Constant:
-0:162 8 (const uint)
-0:191 Function Definition: foowo( (global void)
-0:191 Function Parameters:
-0:? Sequence
-0:194 move second child to first child (temp highp float)
-0:194 'g' (temp highp float)
-0:194 direct index (layout(column_major shared ) temp highp float)
-0:194 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:194 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:194 Constant:
-0:194 1 (const int)
-0:194 Constant:
-0:194 2 (const int)
-0:195 Sequence
-0:195 move second child to first child (temp highp float)
-0:195 'f' (temp highp float)
-0:195 direct index (layout(column_major shared ) temp highp float)
-0:195 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:195 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:195 Constant:
-0:195 1 (const int)
-0:195 Constant:
-0:195 2 (const int)
-0:196 Pre-Increment (temp highp float)
-0:196 direct index (layout(column_major shared ) temp highp float)
-0:196 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:196 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:196 Constant:
-0:196 1 (const int)
-0:196 Constant:
-0:196 2 (const int)
-0:197 Post-Decrement (temp highp float)
-0:197 direct index (layout(column_major shared ) temp highp float)
-0:197 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:197 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:197 Constant:
-0:197 1 (const int)
-0:197 Constant:
-0:197 2 (const int)
-0:198 add (temp highp float)
-0:198 'f' (temp highp float)
-0:198 direct index (layout(column_major shared ) temp highp float)
-0:198 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:198 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:198 Constant:
-0:198 1 (const int)
-0:198 Constant:
-0:198 2 (const int)
-0:199 subtract (temp highp float)
-0:199 direct index (layout(column_major shared ) temp highp float)
-0:199 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:199 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:199 Constant:
-0:199 1 (const int)
-0:199 Constant:
-0:199 2 (const int)
-0:199 'f' (temp highp float)
-0:201 Test condition and select (temp highp float)
-0:201 Condition
-0:201 'b' (temp bool)
-0:201 true case
-0:201 'f' (temp highp float)
-0:201 false case
-0:201 direct index (layout(column_major shared ) temp highp float)
-0:201 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:201 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:201 Constant:
-0:201 1 (const int)
-0:201 Constant:
-0:201 2 (const int)
-0:202 Test condition and select (temp highp float)
-0:202 Condition
-0:202 'b' (temp bool)
-0:202 true case
-0:202 direct index (layout(column_major shared ) temp highp float)
-0:202 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:202 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:202 Constant:
-0:202 1 (const int)
-0:202 Constant:
-0:202 2 (const int)
-0:202 false case
-0:202 'f' (temp highp float)
-0:203 Test condition and select (temp void)
-0:203 Condition
-0:203 Compare Equal (temp bool)
-0:203 'f' (temp highp float)
-0:203 direct index (layout(column_major shared ) temp highp float)
-0:203 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:203 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:203 Constant:
-0:203 1 (const int)
-0:203 Constant:
-0:203 2 (const int)
-0:203 true case
-0:204 Pre-Increment (temp highp float)
-0:204 'f' (temp highp float)
-0:205 Test condition and select (temp void)
-0:205 Condition
-0:205 Compare Greater Than or Equal (temp bool)
-0:205 'f' (temp highp float)
-0:205 direct index (layout(column_major shared ) temp highp float)
-0:205 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:205 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:205 Constant:
-0:205 1 (const int)
-0:205 Constant:
-0:205 2 (const int)
-0:205 true case
-0:206 Pre-Increment (temp highp float)
-0:206 'f' (temp highp float)
-0:207 move second child to first child (temp highp float)
-0:207 'f' (temp highp float)
-0:207 direct index (temp highp float)
-0:207 Construct vec3 (temp highp 3-component vector of float)
-0:207 direct index (layout(column_major shared ) temp highp float)
-0:207 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:207 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:207 Constant:
-0:207 1 (const int)
-0:207 Constant:
-0:207 2 (const int)
-0:207 Constant:
-0:207 0 (const int)
-0:208 Bitwise not (temp highp int)
-0:208 value: direct index for structure (layout(column_major shared ) buffer highp int)
-0:208 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:208 Constant:
-0:208 0 (const int)
-0:209 move second child to first child (temp highp float)
-0:209 direct index (layout(column_major shared ) temp highp float)
-0:209 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:209 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:209 Constant:
-0:209 1 (const int)
-0:209 Constant:
-0:209 2 (const int)
-0:209 Constant:
-0:209 3.400000
-0:218 Function Definition: foomultio( (global void)
-0:218 Function Parameters:
-0:? Sequence
-0:221 move second child to first child (temp highp float)
-0:221 'g' (temp highp float)
-0:221 direct index (layout(column_major shared ) temp highp float)
-0:221 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:221 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:221 Constant:
-0:221 1 (const int)
-0:221 Constant:
-0:221 2 (const int)
-0:222 Bitwise not (temp highp int)
-0:222 value: direct index for structure (layout(column_major shared ) buffer highp int)
-0:222 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:222 Constant:
-0:222 0 (const int)
-0:223 move second child to first child (temp highp float)
-0:223 direct index (layout(column_major shared ) temp highp float)
-0:223 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
-0:223 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:223 Constant:
-0:223 1 (const int)
-0:223 Constant:
-0:223 2 (const int)
-0:223 Constant:
-0:223 3.400000
-0:224 move second child to first child (temp highp int)
-0:224 value: direct index for structure (layout(column_major shared ) buffer highp int)
-0:224 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
-0:224 Constant:
-0:224 0 (const int)
-0:224 Constant:
-0:224 2 (const int)
0:? Linker Objects
0:? 'gl_WorkGroupSize' (const highp 3-component vector of uint WorkGroupSize)
0:? 2 (const uint)
diff --git a/Test/baseResults/310.frag.out b/Test/baseResults/310.frag.out
index 66d6ae0..34cae95 100644
--- a/Test/baseResults/310.frag.out
+++ b/Test/baseResults/310.frag.out
@@ -1125,677 +1125,6 @@
0:34 0.100000
0:34 Construct ivec2 (temp highp 2-component vector of int)
0:34 'i' (uniform mediump int)
-0:38 Function Definition: foo23( (global void)
-0:38 Function Parameters:
-0:? Sequence
-0:42 textureProjGradOffset (global highp 4-component vector of uint)
-0:42 'usamp2d' (uniform highp usampler2D)
-0:42 'outp' (out mediump 4-component vector of float)
-0:42 Constant:
-0:42 0.000000
-0:42 0.000000
-0:42 Constant:
-0:42 0.000000
-0:42 0.000000
-0:42 Convert float to int (temp highp 2-component vector of int)
-0:42 'c2D' (smooth in mediump 2-component vector of float)
-0:43 textureProjGradOffset (global highp 4-component vector of uint)
-0:43 'usamp2d' (uniform highp usampler2D)
-0:43 'outp' (out mediump 4-component vector of float)
-0:43 Constant:
-0:43 0.000000
-0:43 0.000000
-0:43 Constant:
-0:43 0.000000
-0:43 0.000000
-0:43 Constant:
-0:43 3 (const int)
-0:43 4 (const int)
-0:44 textureProjGradOffset (global highp 4-component vector of uint)
-0:44 'usamp2d' (uniform highp usampler2D)
-0:44 'outp' (out mediump 4-component vector of float)
-0:44 Constant:
-0:44 0.000000
-0:44 0.000000
-0:44 Constant:
-0:44 0.000000
-0:44 0.000000
-0:44 Constant:
-0:44 15 (const int)
-0:44 16 (const int)
-0:45 textureProjGradOffset (global highp 4-component vector of uint)
-0:45 'usamp2d' (uniform highp usampler2D)
-0:45 'outp' (out mediump 4-component vector of float)
-0:45 Constant:
-0:45 0.000000
-0:45 0.000000
-0:45 Constant:
-0:45 0.000000
-0:45 0.000000
-0:45 Constant:
-0:45 -10 (const int)
-0:45 20 (const int)
-0:47 Test condition and select (temp void)
-0:47 Condition
-0:47 'gl_HelperInvocation' (in bool HelperInvocation)
-0:47 true case
-0:48 Pre-Increment (temp mediump 4-component vector of float)
-0:48 'outp' (out mediump 4-component vector of float)
-0:50 Sequence
-0:50 move second child to first child (temp mediump int)
-0:50 'sum' (temp mediump int)
-0:50 Constant:
-0:50 32 (const int)
-0:58 move second child to first child (temp bool)
-0:58 'b1' (temp bool)
-0:58 mix (global bool)
-0:58 'b2' (temp bool)
-0:58 'b3' (temp bool)
-0:58 'b' (temp bool)
-0:59 Sequence
-0:59 move second child to first child (temp mediump 3-component vector of uint)
-0:59 'um3' (temp mediump 3-component vector of uint)
-0:59 mix (global mediump 3-component vector of uint)
-0:59 Construct uvec3 (temp mediump 3-component vector of uint)
-0:59 Convert int to uint (temp mediump uint)
-0:59 'i' (uniform mediump int)
-0:59 Construct uvec3 (temp mediump 3-component vector of uint)
-0:59 Convert int to uint (temp mediump uint)
-0:59 'i' (uniform mediump int)
-0:59 Construct bvec3 (temp 3-component vector of bool)
-0:59 'b' (temp bool)
-0:60 Sequence
-0:60 move second child to first child (temp mediump 4-component vector of int)
-0:60 'im4' (temp mediump 4-component vector of int)
-0:60 mix (global mediump 4-component vector of int)
-0:60 Construct ivec4 (temp mediump 4-component vector of int)
-0:60 'i' (uniform mediump int)
-0:60 Construct ivec4 (temp mediump 4-component vector of int)
-0:60 'i' (uniform mediump int)
-0:60 Construct bvec4 (temp 4-component vector of bool)
-0:60 'b' (temp bool)
-0:98 Function Definition: foots( (global void)
-0:98 Function Parameters:
-0:100 Sequence
-0:100 Sequence
-0:100 move second child to first child (temp highp 2-component vector of int)
-0:100 'v2' (temp highp 2-component vector of int)
-0:100 textureSize (global highp 2-component vector of int)
-0:100 's1' (layout(binding=3 ) uniform highp sampler2D)
-0:100 Constant:
-0:100 2 (const int)
-0:101 Sequence
-0:101 move second child to first child (temp highp 3-component vector of int)
-0:101 'v3' (temp highp 3-component vector of int)
-0:101 textureSize (global highp 3-component vector of int)
-0:101 'isamp2DA' (uniform highp isampler2DArray)
-0:101 Constant:
-0:101 3 (const int)
-0:102 move second child to first child (temp highp 2-component vector of int)
-0:102 'v2' (temp highp 2-component vector of int)
-0:102 textureSize (global highp 2-component vector of int, operation at mediump)
-0:102 's2dms' (uniform mediump sampler2DMS)
-0:103 move second child to first child (temp highp 2-component vector of int)
-0:103 'v2' (temp highp 2-component vector of int)
-0:103 imageQuerySize (global highp 2-component vector of int)
-0:103 'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
-0:104 move second child to first child (temp highp 3-component vector of int)
-0:104 'v3' (temp highp 3-component vector of int)
-0:104 imageQuerySize (global highp 3-component vector of int, operation at mediump)
-0:104 'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
-0:105 move second child to first child (temp highp 2-component vector of int)
-0:105 'v2' (temp highp 2-component vector of int)
-0:105 imageQuerySize (global highp 2-component vector of int, operation at mediump)
-0:105 'iCube' (layout(binding=5 ) uniform mediump imageCube)
-0:106 move second child to first child (temp highp 3-component vector of int)
-0:106 'v3' (temp highp 3-component vector of int)
-0:106 imageQuerySize (global highp 3-component vector of int, operation at mediump)
-0:106 'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
-0:107 move second child to first child (temp highp 2-component vector of int)
-0:107 'v2' (temp highp 2-component vector of int)
-0:107 imageQuerySize (global highp 2-component vector of int, operation at mediump)
-0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D)
-0:165 Function Definition: fooIO( (global void)
-0:165 Function Parameters:
-0:167 Sequence
-0:167 Sequence
-0:167 move second child to first child (temp mediump 4-component vector of float)
-0:167 'v' (temp mediump 4-component vector of float)
-0:167 add (temp mediump 4-component vector of float)
-0:167 v: direct index for structure (in mediump 4-component vector of float)
-0:167 'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})
-0:167 Constant:
-0:167 1 (const int)
-0:167 vAnon: direct index for structure (layout(location=13 ) centroid in mediump 4-component vector of float)
-0:167 'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})
-0:167 Constant:
-0:167 1 (const uint)
-0:168 vector scale second child into first child (temp mediump 4-component vector of float)
-0:168 'v' (temp mediump 4-component vector of float)
-0:168 f: direct index for structure (in mediump float)
-0:168 direct index (temp block{in mediump float f})
-0:168 'arrayedInst' (in 4-element array of block{in mediump float f})
-0:168 Constant:
-0:168 2 (const int)
-0:168 Constant:
-0:168 0 (const int)
-0:169 vector scale second child into first child (temp mediump 4-component vector of float)
-0:169 'v' (temp mediump 4-component vector of float)
-0:169 f: direct index for structure (in mediump float)
-0:169 indirect index (temp block{in mediump float f})
-0:169 'arrayedInst' (in 4-element array of block{in mediump float f})
-0:169 'i' (uniform mediump int)
-0:169 Constant:
-0:169 0 (const int)
-0:179 Function Definition: foo_IO( (global void)
-0:179 Function Parameters:
-0:181 Sequence
-0:181 move second child to first child (temp highp float)
-0:181 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
-0:181 Constant:
-0:181 0.200000
-0:182 'gl_Layer' (flat in highp int Layer)
-0:183 'gl_PrimitiveID' (flat in highp int PrimitiveID)
-0:184 Sequence
-0:184 move second child to first child (temp bool)
-0:184 'f' (temp bool)
-0:184 'gl_FrontFacing' (gl_FrontFacing bool Face)
-0:191 Function Definition: foo_GS( (global void)
-0:191 Function Parameters:
-0:193 Sequence
-0:193 Sequence
-0:193 move second child to first child (temp highp int)
-0:193 'l' (temp highp int)
-0:193 'gl_Layer' (flat in highp int Layer)
-0:194 Sequence
-0:194 move second child to first child (temp highp int)
-0:194 'p' (temp highp int)
-0:194 'gl_PrimitiveID' (flat in highp int PrimitiveID)
-0:207 Function Definition: pfooBad( (global void)
-0:207 Function Parameters:
-0:? Sequence
-0:210 move second child to first child (temp mediump 2-component vector of float)
-0:210 'h' (noContraction temp mediump 2-component vector of float)
-0:210 fma (global mediump 2-component vector of float)
-0:210 'inf' (smooth in mediump 2-component vector of float)
-0:210 'ing' (smooth in mediump 2-component vector of float)
-0:210 'h' (noContraction temp mediump 2-component vector of float)
-0:211 textureGatherOffset (global highp 4-component vector of float)
-0:211 direct index (temp highp sampler2D)
-0:211 'sArray' (uniform 4-element array of highp sampler2D)
-0:211 Constant:
-0:211 0 (const int)
-0:211 Constant:
-0:211 0.100000
-0:211 0.100000
-0:211 Convert float to int (temp highp 2-component vector of int)
-0:211 'inf' (smooth in mediump 2-component vector of float)
-0:212 textureGatherOffsets (global highp 4-component vector of float)
-0:212 direct index (temp highp sampler2D)
-0:212 'sArray' (uniform 4-element array of highp sampler2D)
-0:212 Constant:
-0:212 0 (const int)
-0:212 Constant:
-0:212 0.100000
-0:212 0.100000
-0:212 Constant:
-0:212 0 (const int)
-0:212 0 (const int)
-0:212 0 (const int)
-0:212 0 (const int)
-0:212 0 (const int)
-0:212 0 (const int)
-0:212 0 (const int)
-0:212 0 (const int)
-0:217 Function Definition: pfoo( (global void)
-0:217 Function Parameters:
-0:? Sequence
-0:220 move second child to first child (temp mediump 2-component vector of float)
-0:220 'h' (noContraction temp mediump 2-component vector of float)
-0:220 fma (global mediump 2-component vector of float)
-0:220 'inf' (smooth in mediump 2-component vector of float)
-0:220 'ing' (smooth in mediump 2-component vector of float)
-0:220 'h' (noContraction temp mediump 2-component vector of float)
-0:221 textureGatherOffset (global highp 4-component vector of float)
-0:221 direct index (temp highp sampler2D)
-0:221 'sArray' (uniform 4-element array of highp sampler2D)
-0:221 Constant:
-0:221 0 (const int)
-0:221 Constant:
-0:221 0.100000
-0:221 0.100000
-0:221 Convert float to int (temp highp 2-component vector of int)
-0:221 'inf' (smooth in mediump 2-component vector of float)
-0:222 textureGatherOffsets (global highp 4-component vector of float)
-0:222 direct index (temp highp sampler2D)
-0:222 'sArray' (uniform 4-element array of highp sampler2D)
-0:222 Constant:
-0:222 0 (const int)
-0:222 Constant:
-0:222 0.100000
-0:222 0.100000
-0:222 Constant:
-0:222 0 (const int)
-0:222 0 (const int)
-0:222 0 (const int)
-0:222 0 (const int)
-0:222 0 (const int)
-0:222 0 (const int)
-0:222 0 (const int)
-0:222 0 (const int)
-0:223 textureGatherOffsets (global highp 4-component vector of float)
-0:223 direct index (temp highp sampler2D)
-0:223 'sArray' (uniform 4-element array of highp sampler2D)
-0:223 Constant:
-0:223 0 (const int)
-0:223 Constant:
-0:223 0.100000
-0:223 0.100000
-0:223 'offsets' (uniform 4-element array of mediump 2-component vector of int)
-0:248 Function Definition: CAT( (global void)
-0:248 Function Parameters:
-0:250 Sequence
-0:250 Sequence
-0:250 move second child to first child (temp highp 4-component vector of float)
-0:250 'b4' (temp highp 4-component vector of float)
-0:250 texture (global highp 4-component vector of float)
-0:250 'CA4' (uniform highp samplerCubeArray)
-0:250 Constant:
-0:250 0.500000
-0:250 0.500000
-0:250 0.500000
-0:250 0.500000
-0:250 Constant:
-0:250 0.240000
-0:251 Sequence
-0:251 move second child to first child (temp highp 4-component vector of int)
-0:251 'b6' (temp highp 4-component vector of int)
-0:251 texture (global highp 4-component vector of int)
-0:251 'CA6' (uniform highp isamplerCubeArray)
-0:251 Constant:
-0:251 0.500000
-0:251 0.500000
-0:251 0.500000
-0:251 0.500000
-0:251 Constant:
-0:251 0.260000
-0:252 Sequence
-0:252 move second child to first child (temp highp 4-component vector of uint)
-0:252 'b7' (temp highp 4-component vector of uint)
-0:252 texture (global highp 4-component vector of uint)
-0:252 'CA7' (uniform highp usamplerCubeArray)
-0:252 Constant:
-0:252 0.500000
-0:252 0.500000
-0:252 0.500000
-0:252 0.500000
-0:252 Constant:
-0:252 0.270000
-0:255 Function Definition: badSample( (global void)
-0:255 Function Parameters:
-0:257 Sequence
-0:257 Sequence
-0:257 move second child to first child (temp lowp int)
-0:257 'a1' (temp lowp int)
-0:257 'gl_SampleID' (flat in lowp int SampleId)
-0:258 Sequence
-0:258 move second child to first child (temp mediump 2-component vector of float)
-0:258 'a2' (temp mediump 2-component vector of float)
-0:258 'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)
-0:259 Sequence
-0:259 move second child to first child (temp highp int)
-0:259 'a3' (temp highp int)
-0:259 direct index (flat temp highp int SampleMaskIn)
-0:259 'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn)
-0:259 Constant:
-0:259 0 (const int)
-0:260 move second child to first child (temp highp int)
-0:260 direct index (temp highp int SampleMaskIn)
-0:260 'gl_SampleMask' (out 1-element array of highp int SampleMaskIn)
-0:260 Constant:
-0:260 0 (const int)
-0:260 'a3' (temp highp int)
-0:261 Sequence
-0:261 move second child to first child (temp mediump int)
-0:261 'n' (temp mediump int)
-0:261 'gl_NumSamples' (uniform lowp int)
-0:268 Function Definition: goodSample( (global void)
-0:268 Function Parameters:
-0:270 Sequence
-0:270 Sequence
-0:270 move second child to first child (temp lowp int)
-0:270 'a1' (temp lowp int)
-0:270 'gl_SampleID' (flat in lowp int SampleId)
-0:271 Sequence
-0:271 move second child to first child (temp mediump 2-component vector of float)
-0:271 'a2' (temp mediump 2-component vector of float)
-0:271 'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)
-0:272 Sequence
-0:272 move second child to first child (temp highp int)
-0:272 'a3' (temp highp int)
-0:272 direct index (flat temp highp int SampleMaskIn)
-0:272 'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn)
-0:272 Constant:
-0:272 0 (const int)
-0:273 move second child to first child (temp highp int)
-0:273 direct index (temp highp int SampleMaskIn)
-0:273 'gl_SampleMask' (out 1-element array of highp int SampleMaskIn)
-0:273 Constant:
-0:273 0 (const int)
-0:273 'a3' (temp highp int)
-0:274 Sequence
-0:274 move second child to first child (temp mediump int)
-0:274 'n1' (temp mediump int)
-0:274 Constant:
-0:274 4 (const int)
-0:275 Sequence
-0:275 move second child to first child (temp mediump int)
-0:275 'n2' (temp mediump int)
-0:275 'gl_NumSamples' (uniform lowp int)
-0:283 Function Definition: badImageAtom( (global void)
-0:283 Function Parameters:
-0:? Sequence
-0:289 imageAtomicAdd (global highp int)
-0:289 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:289 'P' (uniform mediump 2-component vector of int)
-0:289 'dati' (temp mediump int)
-0:290 imageAtomicAdd (global highp uint)
-0:290 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:290 'P' (uniform mediump 2-component vector of int)
-0:290 'datu' (temp mediump uint)
-0:291 imageAtomicMin (global highp int)
-0:291 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:291 'P' (uniform mediump 2-component vector of int)
-0:291 'dati' (temp mediump int)
-0:292 imageAtomicMin (global highp uint)
-0:292 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:292 'P' (uniform mediump 2-component vector of int)
-0:292 'datu' (temp mediump uint)
-0:293 imageAtomicMax (global highp int)
-0:293 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:293 'P' (uniform mediump 2-component vector of int)
-0:293 'dati' (temp mediump int)
-0:294 imageAtomicMax (global highp uint)
-0:294 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:294 'P' (uniform mediump 2-component vector of int)
-0:294 'datu' (temp mediump uint)
-0:295 imageAtomicAnd (global highp int)
-0:295 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:295 'P' (uniform mediump 2-component vector of int)
-0:295 'dati' (temp mediump int)
-0:296 imageAtomicAnd (global highp uint)
-0:296 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:296 'P' (uniform mediump 2-component vector of int)
-0:296 'datu' (temp mediump uint)
-0:297 imageAtomicOr (global highp int)
-0:297 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:297 'P' (uniform mediump 2-component vector of int)
-0:297 'dati' (temp mediump int)
-0:298 imageAtomicOr (global highp uint)
-0:298 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:298 'P' (uniform mediump 2-component vector of int)
-0:298 'datu' (temp mediump uint)
-0:299 imageAtomicXor (global highp int)
-0:299 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:299 'P' (uniform mediump 2-component vector of int)
-0:299 'dati' (temp mediump int)
-0:300 imageAtomicXor (global highp uint)
-0:300 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:300 'P' (uniform mediump 2-component vector of int)
-0:300 'datu' (temp mediump uint)
-0:301 imageAtomicExchange (global highp int)
-0:301 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:301 'P' (uniform mediump 2-component vector of int)
-0:301 'dati' (temp mediump int)
-0:302 imageAtomicExchange (global highp uint)
-0:302 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:302 'P' (uniform mediump 2-component vector of int)
-0:302 'datu' (temp mediump uint)
-0:303 imageAtomicExchange (global highp float)
-0:303 'im2Df' (layout(r32f ) uniform highp image2D)
-0:303 'P' (uniform mediump 2-component vector of int)
-0:303 'datf' (temp mediump float)
-0:304 imageAtomicCompSwap (global highp int)
-0:304 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:304 'P' (uniform mediump 2-component vector of int)
-0:304 Constant:
-0:304 3 (const int)
-0:304 'dati' (temp mediump int)
-0:305 imageAtomicCompSwap (global highp uint)
-0:305 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:305 'P' (uniform mediump 2-component vector of int)
-0:305 Constant:
-0:305 5 (const uint)
-0:305 'datu' (temp mediump uint)
-0:316 Function Definition: goodImageAtom( (global void)
-0:316 Function Parameters:
-0:? Sequence
-0:322 imageAtomicAdd (global highp int)
-0:322 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:322 'P' (uniform mediump 2-component vector of int)
-0:322 'dati' (temp mediump int)
-0:323 imageAtomicAdd (global highp uint)
-0:323 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:323 'P' (uniform mediump 2-component vector of int)
-0:323 'datu' (temp mediump uint)
-0:324 imageAtomicMin (global highp int)
-0:324 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:324 'P' (uniform mediump 2-component vector of int)
-0:324 'dati' (temp mediump int)
-0:325 imageAtomicMin (global highp uint)
-0:325 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:325 'P' (uniform mediump 2-component vector of int)
-0:325 'datu' (temp mediump uint)
-0:326 imageAtomicMax (global highp int)
-0:326 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:326 'P' (uniform mediump 2-component vector of int)
-0:326 'dati' (temp mediump int)
-0:327 imageAtomicMax (global highp uint)
-0:327 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:327 'P' (uniform mediump 2-component vector of int)
-0:327 'datu' (temp mediump uint)
-0:328 imageAtomicAnd (global highp int)
-0:328 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:328 'P' (uniform mediump 2-component vector of int)
-0:328 'dati' (temp mediump int)
-0:329 imageAtomicAnd (global highp uint)
-0:329 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:329 'P' (uniform mediump 2-component vector of int)
-0:329 'datu' (temp mediump uint)
-0:330 imageAtomicOr (global highp int)
-0:330 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:330 'P' (uniform mediump 2-component vector of int)
-0:330 'dati' (temp mediump int)
-0:331 imageAtomicOr (global highp uint)
-0:331 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:331 'P' (uniform mediump 2-component vector of int)
-0:331 'datu' (temp mediump uint)
-0:332 imageAtomicXor (global highp int)
-0:332 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:332 'P' (uniform mediump 2-component vector of int)
-0:332 'dati' (temp mediump int)
-0:333 imageAtomicXor (global highp uint)
-0:333 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:333 'P' (uniform mediump 2-component vector of int)
-0:333 'datu' (temp mediump uint)
-0:334 imageAtomicExchange (global highp int)
-0:334 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:334 'P' (uniform mediump 2-component vector of int)
-0:334 'dati' (temp mediump int)
-0:335 imageAtomicExchange (global highp uint)
-0:335 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:335 'P' (uniform mediump 2-component vector of int)
-0:335 'datu' (temp mediump uint)
-0:336 imageAtomicExchange (global highp float)
-0:336 'im2Df' (layout(r32f ) uniform highp image2D)
-0:336 'P' (uniform mediump 2-component vector of int)
-0:336 'datf' (temp mediump float)
-0:337 imageAtomicCompSwap (global highp int)
-0:337 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:337 'P' (uniform mediump 2-component vector of int)
-0:337 Constant:
-0:337 3 (const int)
-0:337 'dati' (temp mediump int)
-0:338 imageAtomicCompSwap (global highp uint)
-0:338 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:338 'P' (uniform mediump 2-component vector of int)
-0:338 Constant:
-0:338 5 (const uint)
-0:338 'datu' (temp mediump uint)
-0:340 imageAtomicMax (global highp int)
-0:340 'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
-0:340 'P' (uniform mediump 2-component vector of int)
-0:340 'dati' (temp mediump int)
-0:341 imageAtomicMax (global highp uint)
-0:341 'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
-0:341 'P' (uniform mediump 2-component vector of int)
-0:341 'datu' (temp mediump uint)
-0:342 imageAtomicExchange (global highp float)
-0:342 'badIm2Df' (layout(rgba32f ) uniform highp image2D)
-0:342 'P' (uniform mediump 2-component vector of int)
-0:342 'datf' (temp mediump float)
-0:353 Function Definition: badInterp( (global void)
-0:353 Function Parameters:
-0:355 Sequence
-0:355 interpolateAtCentroid (global mediump 2-component vector of float)
-0:355 'colorfc' (centroid flat in mediump 2-component vector of float)
-0:356 interpolateAtSample (global mediump 2-component vector of float)
-0:356 'colorfc' (centroid flat in mediump 2-component vector of float)
-0:356 Constant:
-0:356 1 (const int)
-0:357 interpolateAtOffset (global mediump 2-component vector of float)
-0:357 'colorfc' (centroid flat in mediump 2-component vector of float)
-0:357 Constant:
-0:357 0.200000
-0:357 0.200000
-0:369 Function Definition: interp( (global void)
-0:369 Function Parameters:
-0:? Sequence
-0:376 move second child to first child (temp mediump 2-component vector of float)
-0:376 'res2' (temp mediump 2-component vector of float)
-0:376 interpolateAtCentroid (global mediump 2-component vector of float)
-0:376 'colorfc' (centroid flat in mediump 2-component vector of float)
-0:377 move second child to first child (temp mediump 4-component vector of float)
-0:377 'res4' (temp mediump 4-component vector of float)
-0:377 interpolateAtCentroid (global mediump 4-component vector of float)
-0:377 'colorSampIn' (smooth sample in mediump 4-component vector of float)
-0:378 move second child to first child (temp mediump 4-component vector of float)
-0:378 'res4' (temp mediump 4-component vector of float)
-0:378 interpolateAtCentroid (global mediump 4-component vector of float)
-0:378 'colorfsi' (flat sample in mediump 4-component vector of float)
-0:379 move second child to first child (temp mediump float)
-0:379 'res' (temp mediump float)
-0:379 interpolateAtCentroid (global mediump float)
-0:379 'scalarIn' (smooth in mediump float)
-0:380 'res3' (temp mediump 3-component vector of float)
-0:381 move second child to first child (temp mediump 3-component vector of float)
-0:381 'res3' (temp mediump 3-component vector of float)
-0:381 interpolateAtCentroid (global mediump 3-component vector of float)
-0:381 direct index (smooth sample temp mediump 3-component vector of float)
-0:381 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
-0:381 Constant:
-0:381 2 (const int)
-0:382 move second child to first child (temp mediump 2-component vector of float)
-0:382 'res2' (temp mediump 2-component vector of float)
-0:382 interpolateAtCentroid (global mediump 2-component vector of float)
-0:382 vector swizzle (temp mediump 2-component vector of float)
-0:382 direct index (smooth sample temp mediump 3-component vector of float)
-0:382 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
-0:382 Constant:
-0:382 2 (const int)
-0:382 Sequence
-0:382 Constant:
-0:382 0 (const int)
-0:382 Constant:
-0:382 1 (const int)
-0:384 'res3' (temp mediump 3-component vector of float)
-0:385 move second child to first child (temp mediump 3-component vector of float)
-0:385 'res3' (temp mediump 3-component vector of float)
-0:385 interpolateAtSample (global mediump 3-component vector of float)
-0:385 indirect index (smooth sample temp mediump 3-component vector of float)
-0:385 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
-0:385 'i' (uniform mediump int)
-0:385 Constant:
-0:385 0 (const int)
-0:386 move second child to first child (temp mediump 2-component vector of float)
-0:386 'res2' (temp mediump 2-component vector of float)
-0:386 interpolateAtSample (global mediump 2-component vector of float)
-0:386 vector swizzle (temp mediump 2-component vector of float)
-0:386 direct index (smooth sample temp mediump 3-component vector of float)
-0:386 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
-0:386 Constant:
-0:386 2 (const int)
-0:386 Sequence
-0:386 Constant:
-0:386 0 (const int)
-0:386 Constant:
-0:386 1 (const int)
-0:386 Constant:
-0:386 2 (const int)
-0:387 move second child to first child (temp mediump float)
-0:387 'res' (temp mediump float)
-0:387 interpolateAtSample (global mediump float)
-0:387 'scalarIn' (smooth in mediump float)
-0:387 Constant:
-0:387 1 (const int)
-0:389 'res3' (temp mediump 3-component vector of float)
-0:390 move second child to first child (temp mediump 3-component vector of float)
-0:390 'res3' (temp mediump 3-component vector of float)
-0:390 interpolateAtOffset (global mediump 3-component vector of float)
-0:390 direct index (smooth sample temp mediump 3-component vector of float)
-0:390 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
-0:390 Constant:
-0:390 2 (const int)
-0:390 Constant:
-0:390 0.200000
-0:390 0.200000
-0:391 move second child to first child (temp mediump 2-component vector of float)
-0:391 'res2' (temp mediump 2-component vector of float)
-0:391 interpolateAtOffset (global mediump 2-component vector of float)
-0:391 vector swizzle (temp mediump 2-component vector of float)
-0:391 direct index (smooth sample temp mediump 3-component vector of float)
-0:391 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
-0:391 Constant:
-0:391 2 (const int)
-0:391 Sequence
-0:391 Constant:
-0:391 0 (const int)
-0:391 Constant:
-0:391 1 (const int)
-0:391 Constant:
-0:391 0.200000
-0:391 0.200000
-0:392 move second child to first child (temp mediump float)
-0:392 'res' (temp mediump float)
-0:392 interpolateAtOffset (global mediump float)
-0:392 add (temp mediump float)
-0:392 'scalarIn' (smooth in mediump float)
-0:392 'scalarIn' (smooth in mediump float)
-0:392 Constant:
-0:392 0.200000
-0:392 0.200000
-0:393 move second child to first child (temp mediump float)
-0:393 'res' (temp mediump float)
-0:393 interpolateAtOffset (global mediump float)
-0:393 'scalarIn' (smooth in mediump float)
-0:393 Constant:
-0:393 0.200000
-0:393 0.200000
-0:396 move second child to first child (temp mediump float)
-0:396 'res' (temp mediump float)
-0:396 interpolateAtCentroid (global mediump float)
-0:396 'f' (temp mediump float)
-0:397 move second child to first child (temp mediump 4-component vector of float)
-0:397 'res4' (temp mediump 4-component vector of float)
-0:397 interpolateAtSample (global mediump 4-component vector of float)
-0:397 'outp' (out mediump 4-component vector of float)
-0:397 Constant:
-0:397 0 (const int)
-0:427 Function Definition: blendFoo( (temp void)
-0:427 Function Parameters:
-0:428 Function Definition: blendFoo(vf3; (global void)
-0:428 Function Parameters:
-0:428 'v' (in mediump 3-component vector of float)
0:? Linker Objects
0:? 'gl_FragCoord' (smooth in mediump 4-component vector of float)
0:? 'v3' (layout(location=2 ) smooth in mediump 3-component vector of float)
diff --git a/Test/baseResults/310.geom.out b/Test/baseResults/310.geom.out
index 888c142..def6b7a 100644
--- a/Test/baseResults/310.geom.out
+++ b/Test/baseResults/310.geom.out
@@ -250,74 +250,6 @@
0:52 'gl_Layer' (layout(stream=0 ) out highp int Layer)
0:52 Constant:
0:52 2 (const int)
-0:63 Function Definition: foo(i1; (global void)
-0:63 Function Parameters:
-0:63 'a' (in highp int)
-0:65 Sequence
-0:65 move second child to first child (temp mediump 4-component vector of float)
-0:65 a: direct index for structure (layout(stream=0 ) out mediump 4-component vector of float)
-0:65 'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})
-0:65 Constant:
-0:65 0 (const int)
-0:65 Constant:
-0:65 1.000000
-0:65 1.000000
-0:65 1.000000
-0:65 1.000000
-0:114 Function Definition: fooe1( (global void)
-0:114 Function Parameters:
-0:116 Sequence
-0:116 'gl_ViewportIndex' (temp float)
-0:117 'gl_MaxViewports' (temp float)
-0:118 Constant:
-0:118 4 (const int)
-0:119 Sequence
-0:119 move second child to first child (temp highp int)
-0:119 'inv' (temp highp int)
-0:119 'gl_InvocationID' (in highp int InvocationID)
-0:134 Function Definition: notHere( (global void)
-0:134 Function Parameters:
-0:136 Sequence
-0:136 'gl_MaxGeometryVaryingComponents' (temp float)
-0:137 'gl_VerticesIn' (temp float)
-0:140 Function Definition: pointSize1( (global void)
-0:140 Function Parameters:
-0:142 Sequence
-0:142 Sequence
-0:142 move second child to first child (temp highp float)
-0:142 'ps' (temp highp float)
-0:142 gl_PointSize: direct index for structure (in highp float PointSize)
-0:142 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
-0:142 'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
-0:142 Constant:
-0:142 3 (const int)
-0:142 Constant:
-0:142 1 (const int)
-0:143 move second child to first child (temp highp float)
-0:143 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)
-0:143 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
-0:143 Constant:
-0:143 1 (const uint)
-0:143 'ps' (temp highp float)
-0:148 Function Definition: pointSize2( (global void)
-0:148 Function Parameters:
-0:150 Sequence
-0:150 Sequence
-0:150 move second child to first child (temp highp float)
-0:150 'ps' (temp highp float)
-0:150 gl_PointSize: direct index for structure (in highp float PointSize)
-0:150 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
-0:150 'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
-0:150 Constant:
-0:150 3 (const int)
-0:150 Constant:
-0:150 1 (const int)
-0:151 move second child to first child (temp highp float)
-0:151 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)
-0:151 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
-0:151 Constant:
-0:151 1 (const uint)
-0:151 'ps' (temp highp float)
0:? Linker Objects
0:? 'fromV' (in 4-element array of block{in mediump 3-component vector of float color})
0:? 'nonBlockUnsized' (in 4-element array of mediump 4-component vector of float)
diff --git a/Test/baseResults/310.tesc.out b/Test/baseResults/310.tesc.out
index 24e3d20..ab27198 100644
--- a/Test/baseResults/310.tesc.out
+++ b/Test/baseResults/310.tesc.out
@@ -514,172 +514,6 @@
0:58 Barrier (global void)
0:61 Branch: Return
0:63 Barrier (global void)
-0:69 Function Definition: foo( (global void)
-0:69 Function Parameters:
-0:71 Sequence
-0:71 gl_Position: direct index for structure (out highp 4-component vector of float Position)
-0:71 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
-0:71 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
-0:71 Constant:
-0:71 4 (const int)
-0:71 Constant:
-0:71 0 (const int)
-0:73 Barrier (global void)
-0:92 Function Definition: foop( (global void)
-0:92 Function Parameters:
-0:? Sequence
-0:95 move second child to first child (temp highp float)
-0:95 'd' (noContraction temp highp float)
-0:95 fma (global highp float)
-0:95 'd' (noContraction temp highp float)
-0:95 'd' (noContraction temp highp float)
-0:95 'd' (noContraction temp highp float)
-0:112 Function Definition: pointSize2( (global void)
-0:112 Function Parameters:
-0:114 Sequence
-0:114 Sequence
-0:114 move second child to first child (temp highp float)
-0:114 'ps' (temp highp float)
-0:114 gl_PointSize: direct index for structure (in highp float PointSize)
-0:114 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
-0:114 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
-0:114 Constant:
-0:114 1 (const int)
-0:114 Constant:
-0:114 1 (const int)
-0:115 move second child to first child (temp highp float)
-0:115 gl_PointSize: direct index for structure (out highp float PointSize)
-0:115 indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
-0:115 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
-0:115 'gl_InvocationID' (in highp int InvocationID)
-0:115 Constant:
-0:115 1 (const int)
-0:115 'ps' (temp highp float)
-0:122 Function Definition: goodfoop( (global void)
-0:122 Function Parameters:
-0:? Sequence
-0:126 multiply second child into first child (temp highp 3-component vector of float)
-0:126 'pv3' (noContraction temp highp 3-component vector of float)
-0:126 'pv3' (noContraction temp highp 3-component vector of float)
-0:127 move second child to first child (temp highp 3-component vector of float)
-0:127 'pv3' (noContraction temp highp 3-component vector of float)
-0:127 fma (global highp 3-component vector of float)
-0:127 'pv3' (noContraction temp highp 3-component vector of float)
-0:127 'pv3' (noContraction temp highp 3-component vector of float)
-0:127 'pv3' (noContraction temp highp 3-component vector of float)
-0:128 move second child to first child (temp highp float)
-0:128 'd' (noContraction temp highp float)
-0:128 fma (global highp float)
-0:128 'd' (noContraction temp highp float)
-0:128 'd' (noContraction temp highp float)
-0:128 'd' (noContraction temp highp float)
-0:131 Function Definition: bbBad( (global void)
-0:131 Function Parameters:
-0:133 Sequence
-0:133 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
-0:138 Function Definition: bb( (global void)
-0:138 Function Parameters:
-0:140 Sequence
-0:140 move second child to first child (temp highp 4-component vector of float)
-0:140 direct index (patch temp highp 4-component vector of float BoundingBox)
-0:140 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
-0:140 Constant:
-0:140 0 (const int)
-0:140 Constant:
-0:140 0.000000
-0:140 0.000000
-0:140 0.000000
-0:140 0.000000
-0:141 move second child to first child (temp highp 4-component vector of float)
-0:141 direct index (patch temp highp 4-component vector of float BoundingBox)
-0:141 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
-0:141 Constant:
-0:141 1 (const int)
-0:141 Constant:
-0:141 1.000000
-0:141 1.000000
-0:141 1.000000
-0:141 1.000000
-0:142 move second child to first child (temp highp 4-component vector of float)
-0:142 direct index (patch temp highp 4-component vector of float BoundingBox)
-0:142 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
-0:142 Constant:
-0:142 2 (const int)
-0:142 Constant:
-0:142 2.000000
-0:142 2.000000
-0:142 2.000000
-0:142 2.000000
-0:153 Function Definition: outputtingOutparam(i1; (global void)
-0:153 Function Parameters:
-0:153 'a' (out highp int)
-0:155 Sequence
-0:155 move second child to first child (temp highp int)
-0:155 'a' (out highp int)
-0:155 Constant:
-0:155 2 (const int)
-0:158 Function Definition: outputting( (global void)
-0:158 Function Parameters:
-0:160 Sequence
-0:160 move second child to first child (temp highp int)
-0:160 indirect index (temp highp int)
-0:160 'outa' (out 4-element array of highp int)
-0:160 'gl_InvocationID' (in highp int InvocationID)
-0:160 Constant:
-0:160 2 (const int)
-0:161 move second child to first child (temp highp int)
-0:161 direct index (temp highp int)
-0:161 'outa' (out 4-element array of highp int)
-0:161 Constant:
-0:161 1 (const int)
-0:161 Constant:
-0:161 2 (const int)
-0:162 move second child to first child (temp highp 4-component vector of float)
-0:162 gl_Position: direct index for structure (out highp 4-component vector of float Position)
-0:162 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
-0:162 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
-0:162 Constant:
-0:162 0 (const int)
-0:162 Constant:
-0:162 0 (const int)
-0:162 Constant:
-0:162 1.000000
-0:162 1.000000
-0:162 1.000000
-0:162 1.000000
-0:163 direct index (temp highp int)
-0:163 'outa' (out 4-element array of highp int)
-0:163 Constant:
-0:163 1 (const int)
-0:164 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
-0:164 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
-0:164 Constant:
-0:164 0 (const int)
-0:165 Function Call: outputtingOutparam(i1; (global void)
-0:165 direct index (temp highp int)
-0:165 'outa' (out 4-element array of highp int)
-0:165 Constant:
-0:165 0 (const int)
-0:166 Function Call: outputtingOutparam(i1; (global void)
-0:166 indirect index (temp highp int)
-0:166 'outa' (out 4-element array of highp int)
-0:166 'gl_InvocationID' (in highp int InvocationID)
-0:167 move second child to first child (temp highp float)
-0:167 f: direct index for structure (out highp float)
-0:167 direct index (patch temp block{out highp float f})
-0:167 'patchIName' (patch out 4-element array of block{out highp float f})
-0:167 Constant:
-0:167 1 (const int)
-0:167 Constant:
-0:167 0 (const int)
-0:167 Constant:
-0:167 3.140000
-0:168 move second child to first child (temp highp int)
-0:168 indirect index (temp highp int)
-0:168 'outa' (out 4-element array of highp int)
-0:168 'gl_InvocationID' (in highp int InvocationID)
-0:168 Constant:
-0:168 2 (const int)
0:? Linker Objects
0:? 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:? 'outa' (out 4-element array of highp int)
diff --git a/Test/baseResults/310.tese.out b/Test/baseResults/310.tese.out
index aacfedb..62894ec 100644
--- a/Test/baseResults/310.tese.out
+++ b/Test/baseResults/310.tese.out
@@ -274,19 +274,6 @@
0:48 Constant:
0:48 0.000000
0:48 'cd' (temp highp float)
-0:117 Function Definition: pointSize2( (global void)
-0:117 Function Parameters:
-0:? Sequence
-0:120 move second child to first child (temp highp float)
-0:120 gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)
-0:120 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
-0:120 Constant:
-0:120 1 (const uint)
-0:120 'ps' (temp highp float)
-0:125 Function Definition: bbbad( (global void)
-0:125 Function Parameters:
-0:127 Sequence
-0:127 'gl_BoundingBoxOES' (temp float)
0:? Linker Objects
0:? 'patchIn' (patch in highp 4-component vector of float)
0:? 'patchOut' (patch out highp 4-component vector of float)
diff --git a/Test/baseResults/310.vert.out b/Test/baseResults/310.vert.out
index 84a50e8..d0dfedf 100644
--- a/Test/baseResults/310.vert.out
+++ b/Test/baseResults/310.vert.out
@@ -1158,693 +1158,6 @@
0:48 'v4' (temp mediump 4-component vector of float)
0:48 UnpackSnorm4x8 (global mediump 4-component vector of float, operation at highp)
0:48 'u1' (temp highp uint)
-0:60 Function Definition: foo( (global void)
-0:60 Function Parameters:
-0:? Sequence
-0:63 move second child to first child (temp highp 2-component vector of int)
-0:63 'v2' (temp highp 2-component vector of int)
-0:63 textureSize (global highp 2-component vector of int)
-0:63 's2dms' (uniform highp sampler2DMS)
-0:64 move second child to first child (temp highp 2-component vector of int)
-0:64 'v2' (temp highp 2-component vector of int)
-0:64 textureSize (global highp 2-component vector of int)
-0:64 'us2dms' (uniform highp usampler2DMS)
-0:65 Sequence
-0:65 move second child to first child (temp highp 4-component vector of float)
-0:65 'v4' (temp highp 4-component vector of float)
-0:65 textureFetch (global highp 4-component vector of float)
-0:65 's2dms' (uniform highp sampler2DMS)
-0:65 'v2' (temp highp 2-component vector of int)
-0:65 Constant:
-0:65 2 (const int)
-0:66 Sequence
-0:66 move second child to first child (temp highp 4-component vector of int)
-0:66 'iv4' (temp highp 4-component vector of int)
-0:66 textureFetch (global highp 4-component vector of int)
-0:66 'is2dms' (uniform highp isampler2DMS)
-0:66 'v2' (temp highp 2-component vector of int)
-0:66 Constant:
-0:66 2 (const int)
-0:67 Constant:
-0:67 0.000000
-0:69 frexp (global highp float)
-0:69 'f' (temp highp float)
-0:69 'ini' (in highp int)
-0:114 Function Definition: foo_IO( (global void)
-0:114 Function Parameters:
-0:116 Sequence
-0:116 Sequence
-0:116 move second child to first child (temp highp int)
-0:116 'sum' (temp highp int)
-0:116 add (temp highp int)
-0:116 'gl_VertexID' (gl_VertexId highp int VertexId)
-0:117 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
-0:118 move second child to first child (temp highp 4-component vector of float)
-0:118 gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)
-0:118 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
-0:118 Constant:
-0:118 0 (const uint)
-0:118 Constant:
-0:118 1.000000
-0:118 1.000000
-0:118 1.000000
-0:118 1.000000
-0:119 gl_PointSize: direct index for structure (gl_PointSize highp void PointSize)
-0:119 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
-0:119 Constant:
-0:119 1 (const uint)
-0:153 Function Definition: pfooBad( (global void)
-0:153 Function Parameters:
-0:? Sequence
-0:156 move second child to first child (temp highp 2-component vector of float)
-0:156 'h' (noContraction temp highp 2-component vector of float)
-0:156 fma (global highp 2-component vector of float)
-0:156 'inf' (in highp 2-component vector of float)
-0:156 'ing' (in highp 2-component vector of float)
-0:156 'h' (noContraction temp highp 2-component vector of float)
-0:157 indirect index (temp lowp sampler2D)
-0:157 'sArray' (uniform 4-element array of lowp sampler2D)
-0:157 add (temp highp int)
-0:157 'sIndex' (uniform highp int)
-0:157 Constant:
-0:157 1 (const int)
-0:158 indirect index (layout(binding=0 offset=0 ) temp highp atomic_uint)
-0:158 'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
-0:158 add (temp highp int)
-0:158 'sIndex' (uniform highp int)
-0:158 Constant:
-0:158 1 (const int)
-0:159 direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
-0:159 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
-0:159 Constant:
-0:159 1 (const int)
-0:160 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
-0:160 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
-0:160 Constant:
-0:160 2 (const int)
-0:161 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
-0:161 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
-0:161 add (temp highp int)
-0:161 'sIndex' (uniform highp int)
-0:161 Constant:
-0:161 1 (const int)
-0:162 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
-0:162 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
-0:162 'sIndex' (uniform highp int)
-0:163 direct index (writeonly temp highp image2D)
-0:163 'iArray' (writeonly uniform 5-element array of highp image2D)
-0:163 Constant:
-0:163 2 (const int)
-0:164 indirect index (writeonly temp highp image2D)
-0:164 'iArray' (writeonly uniform 5-element array of highp image2D)
-0:164 component-wise multiply (temp highp int)
-0:164 'sIndex' (uniform highp int)
-0:164 Constant:
-0:164 2 (const int)
-0:165 textureGatherOffset (global lowp 4-component vector of float)
-0:165 direct index (temp lowp sampler2D)
-0:165 'sArray' (uniform 4-element array of lowp sampler2D)
-0:165 Constant:
-0:165 0 (const int)
-0:165 Constant:
-0:165 0.100000
-0:165 0.100000
-0:165 Convert float to int (temp lowp 2-component vector of int)
-0:165 'inf' (in highp 2-component vector of float)
-0:166 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
-0:166 direct index (temp lowp sampler2D)
-0:166 'sArray' (uniform 4-element array of lowp sampler2D)
-0:166 Constant:
-0:166 0 (const int)
-0:166 Constant:
-0:166 0.100000
-0:166 0.100000
-0:166 Constant:
-0:166 0 (const int)
-0:166 0 (const int)
-0:166 0 (const int)
-0:166 0 (const int)
-0:166 0 (const int)
-0:166 0 (const int)
-0:166 0 (const int)
-0:166 0 (const int)
-0:171 Function Definition: pfoo( (global void)
-0:171 Function Parameters:
-0:? Sequence
-0:174 move second child to first child (temp highp 2-component vector of float)
-0:174 'h' (noContraction temp highp 2-component vector of float)
-0:174 fma (global highp 2-component vector of float)
-0:174 'inf' (in highp 2-component vector of float)
-0:174 'ing' (in highp 2-component vector of float)
-0:174 'h' (noContraction temp highp 2-component vector of float)
-0:175 indirect index (temp lowp sampler2D)
-0:175 'sArray' (uniform 4-element array of lowp sampler2D)
-0:175 add (temp highp int)
-0:175 'sIndex' (uniform highp int)
-0:175 Constant:
-0:175 1 (const int)
-0:176 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
-0:176 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
-0:176 add (temp highp int)
-0:176 'sIndex' (uniform highp int)
-0:176 Constant:
-0:176 1 (const int)
-0:177 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
-0:177 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
-0:177 subtract (temp highp int)
-0:177 'sIndex' (uniform highp int)
-0:177 Constant:
-0:177 2 (const int)
-0:178 direct index (writeonly temp highp image2D)
-0:178 'iArray' (writeonly uniform 5-element array of highp image2D)
-0:178 Constant:
-0:178 2 (const int)
-0:179 indirect index (writeonly temp highp image2D)
-0:179 'iArray' (writeonly uniform 5-element array of highp image2D)
-0:179 subtract (temp highp int)
-0:179 'sIndex' (uniform highp int)
-0:179 Constant:
-0:179 2 (const int)
-0:180 textureGatherOffset (global lowp 4-component vector of float)
-0:180 direct index (temp lowp sampler2D)
-0:180 'sArray' (uniform 4-element array of lowp sampler2D)
-0:180 Constant:
-0:180 0 (const int)
-0:180 Constant:
-0:180 0.100000
-0:180 0.100000
-0:180 Convert float to int (temp lowp 2-component vector of int)
-0:180 'inf' (in highp 2-component vector of float)
-0:181 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
-0:181 direct index (temp lowp sampler2D)
-0:181 'sArray' (uniform 4-element array of lowp sampler2D)
-0:181 Constant:
-0:181 0 (const int)
-0:181 Constant:
-0:181 0.100000
-0:181 0.100000
-0:181 Constant:
-0:181 0 (const int)
-0:181 0 (const int)
-0:181 0 (const int)
-0:181 0 (const int)
-0:181 0 (const int)
-0:181 0 (const int)
-0:181 0 (const int)
-0:181 0 (const int)
-0:182 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
-0:182 direct index (temp lowp sampler2D)
-0:182 'sArray' (uniform 4-element array of lowp sampler2D)
-0:182 Constant:
-0:182 0 (const int)
-0:182 Constant:
-0:182 0.100000
-0:182 0.100000
-0:182 'offsets' (uniform 4-element array of highp 2-component vector of int)
-0:220 Function Definition: bufferT( (global void)
-0:220 Function Parameters:
-0:222 Sequence
-0:222 Sequence
-0:222 move second child to first child (temp highp int)
-0:222 's1' (temp highp int)
-0:222 textureSize (global highp int)
-0:222 'bufSamp1' (uniform highp samplerBuffer)
-0:223 Sequence
-0:223 move second child to first child (temp highp int)
-0:223 's2' (temp highp int)
-0:223 textureSize (global highp int)
-0:223 'bufSamp2' (uniform highp isamplerBuffer)
-0:224 Sequence
-0:224 move second child to first child (temp highp int)
-0:224 's3' (temp highp int)
-0:224 textureSize (global highp int)
-0:224 'bufSamp3' (uniform highp usamplerBuffer)
-0:226 Sequence
-0:226 move second child to first child (temp highp int)
-0:226 's4' (temp highp int)
-0:226 imageQuerySize (global highp int)
-0:226 'bufSamp4' (writeonly uniform highp imageBuffer)
-0:227 Sequence
-0:227 move second child to first child (temp highp int)
-0:227 's5' (temp highp int)
-0:227 imageQuerySize (global highp int)
-0:227 'bufSamp5' (writeonly uniform highp iimageBuffer)
-0:228 Sequence
-0:228 move second child to first child (temp highp int)
-0:228 's6' (temp highp int)
-0:228 imageQuerySize (global highp int)
-0:228 'bufSamp6' (writeonly uniform highp uimageBuffer)
-0:230 Sequence
-0:230 move second child to first child (temp highp 4-component vector of float)
-0:230 'f1' (temp highp 4-component vector of float)
-0:230 textureFetch (global highp 4-component vector of float)
-0:230 'bufSamp1' (uniform highp samplerBuffer)
-0:230 's1' (temp highp int)
-0:231 Sequence
-0:231 move second child to first child (temp highp 4-component vector of int)
-0:231 'f2' (temp highp 4-component vector of int)
-0:231 textureFetch (global highp 4-component vector of int)
-0:231 'bufSamp2' (uniform highp isamplerBuffer)
-0:231 's2' (temp highp int)
-0:232 Sequence
-0:232 move second child to first child (temp highp 4-component vector of uint)
-0:232 'f3' (temp highp 4-component vector of uint)
-0:232 textureFetch (global highp 4-component vector of uint)
-0:232 'bufSamp3' (uniform highp usamplerBuffer)
-0:232 's3' (temp highp int)
-0:279 Function Definition: CAT( (global void)
-0:279 Function Parameters:
-0:281 Sequence
-0:281 Sequence
-0:281 move second child to first child (temp highp 3-component vector of int)
-0:281 's4' (temp highp 3-component vector of int)
-0:281 textureSize (global highp 3-component vector of int)
-0:281 'CA4' (uniform highp samplerCubeArray)
-0:281 Constant:
-0:281 1 (const int)
-0:282 Sequence
-0:282 move second child to first child (temp highp 3-component vector of int)
-0:282 's5' (temp highp 3-component vector of int)
-0:282 textureSize (global highp 3-component vector of int)
-0:282 'CA5' (uniform highp samplerCubeArrayShadow)
-0:282 Constant:
-0:282 1 (const int)
-0:283 Sequence
-0:283 move second child to first child (temp highp 3-component vector of int)
-0:283 's6' (temp highp 3-component vector of int)
-0:283 textureSize (global highp 3-component vector of int)
-0:283 'CA6' (uniform highp isamplerCubeArray)
-0:283 Constant:
-0:283 1 (const int)
-0:284 Sequence
-0:284 move second child to first child (temp highp 3-component vector of int)
-0:284 's7' (temp highp 3-component vector of int)
-0:284 textureSize (global highp 3-component vector of int)
-0:284 'CA7' (uniform highp usamplerCubeArray)
-0:284 Constant:
-0:284 1 (const int)
-0:286 Sequence
-0:286 move second child to first child (temp highp 4-component vector of float)
-0:286 't4' (temp highp 4-component vector of float)
-0:286 texture (global highp 4-component vector of float)
-0:286 'CA4' (uniform highp samplerCubeArray)
-0:286 Constant:
-0:286 0.500000
-0:286 0.500000
-0:286 0.500000
-0:286 0.500000
-0:287 Sequence
-0:287 move second child to first child (temp highp float)
-0:287 't5' (temp highp float)
-0:287 texture (global highp float)
-0:287 'CA5' (uniform highp samplerCubeArrayShadow)
-0:287 Constant:
-0:287 0.500000
-0:287 0.500000
-0:287 0.500000
-0:287 0.500000
-0:287 Constant:
-0:287 3.000000
-0:288 Sequence
-0:288 move second child to first child (temp highp 4-component vector of int)
-0:288 't6' (temp highp 4-component vector of int)
-0:288 texture (global highp 4-component vector of int)
-0:288 'CA6' (uniform highp isamplerCubeArray)
-0:288 Constant:
-0:288 0.500000
-0:288 0.500000
-0:288 0.500000
-0:288 0.500000
-0:289 Sequence
-0:289 move second child to first child (temp highp 4-component vector of uint)
-0:289 't7' (temp highp 4-component vector of uint)
-0:289 texture (global highp 4-component vector of uint)
-0:289 'CA7' (uniform highp usamplerCubeArray)
-0:289 Constant:
-0:289 0.500000
-0:289 0.500000
-0:289 0.500000
-0:289 0.500000
-0:291 Sequence
-0:291 move second child to first child (temp highp 4-component vector of float)
-0:291 'L4' (temp highp 4-component vector of float)
-0:291 textureLod (global highp 4-component vector of float)
-0:291 'CA4' (uniform highp samplerCubeArray)
-0:291 Constant:
-0:291 0.500000
-0:291 0.500000
-0:291 0.500000
-0:291 0.500000
-0:291 Constant:
-0:291 0.240000
-0:292 Sequence
-0:292 move second child to first child (temp highp 4-component vector of int)
-0:292 'L6' (temp highp 4-component vector of int)
-0:292 textureLod (global highp 4-component vector of int)
-0:292 'CA6' (uniform highp isamplerCubeArray)
-0:292 Constant:
-0:292 0.500000
-0:292 0.500000
-0:292 0.500000
-0:292 0.500000
-0:292 Constant:
-0:292 0.260000
-0:293 Sequence
-0:293 move second child to first child (temp highp 4-component vector of uint)
-0:293 'L7' (temp highp 4-component vector of uint)
-0:293 textureLod (global highp 4-component vector of uint)
-0:293 'CA7' (uniform highp usamplerCubeArray)
-0:293 Constant:
-0:293 0.500000
-0:293 0.500000
-0:293 0.500000
-0:293 0.500000
-0:293 Constant:
-0:293 0.270000
-0:295 Sequence
-0:295 move second child to first child (temp highp 4-component vector of float)
-0:295 'g4' (temp highp 4-component vector of float)
-0:295 textureGrad (global highp 4-component vector of float)
-0:295 'CA4' (uniform highp samplerCubeArray)
-0:295 Constant:
-0:295 0.500000
-0:295 0.500000
-0:295 0.500000
-0:295 0.500000
-0:295 Constant:
-0:295 0.100000
-0:295 0.100000
-0:295 0.100000
-0:295 Constant:
-0:295 0.200000
-0:295 0.200000
-0:295 0.200000
-0:296 Sequence
-0:296 move second child to first child (temp highp 4-component vector of int)
-0:296 'g6' (temp highp 4-component vector of int)
-0:296 textureGrad (global highp 4-component vector of int)
-0:296 'CA6' (uniform highp isamplerCubeArray)
-0:296 Constant:
-0:296 0.500000
-0:296 0.500000
-0:296 0.500000
-0:296 0.500000
-0:296 Constant:
-0:296 0.100000
-0:296 0.100000
-0:296 0.100000
-0:296 Constant:
-0:296 0.200000
-0:296 0.200000
-0:296 0.200000
-0:297 Sequence
-0:297 move second child to first child (temp highp 4-component vector of uint)
-0:297 'g7' (temp highp 4-component vector of uint)
-0:297 textureGrad (global highp 4-component vector of uint)
-0:297 'CA7' (uniform highp usamplerCubeArray)
-0:297 Constant:
-0:297 0.500000
-0:297 0.500000
-0:297 0.500000
-0:297 0.500000
-0:297 Constant:
-0:297 0.100000
-0:297 0.100000
-0:297 0.100000
-0:297 Constant:
-0:297 0.200000
-0:297 0.200000
-0:297 0.200000
-0:299 Sequence
-0:299 move second child to first child (temp highp 4-component vector of float)
-0:299 'gath4' (temp highp 4-component vector of float)
-0:299 textureGather (global highp 4-component vector of float)
-0:299 'CA4' (uniform highp samplerCubeArray)
-0:299 Constant:
-0:299 0.500000
-0:299 0.500000
-0:299 0.500000
-0:299 0.500000
-0:300 Sequence
-0:300 move second child to first child (temp highp 4-component vector of float)
-0:300 'gathC4' (temp highp 4-component vector of float)
-0:300 textureGather (global highp 4-component vector of float)
-0:300 'CA4' (uniform highp samplerCubeArray)
-0:300 Constant:
-0:300 0.500000
-0:300 0.500000
-0:300 0.500000
-0:300 0.500000
-0:300 Constant:
-0:300 2 (const int)
-0:301 Sequence
-0:301 move second child to first child (temp highp 4-component vector of int)
-0:301 'gath6' (temp highp 4-component vector of int)
-0:301 textureGather (global highp 4-component vector of int)
-0:301 'CA6' (uniform highp isamplerCubeArray)
-0:301 Constant:
-0:301 0.500000
-0:301 0.500000
-0:301 0.500000
-0:301 0.500000
-0:302 Sequence
-0:302 move second child to first child (temp highp 4-component vector of int)
-0:302 'gathC6' (temp highp 4-component vector of int)
-0:302 textureGather (global highp 4-component vector of int)
-0:302 'CA6' (uniform highp isamplerCubeArray)
-0:302 Constant:
-0:302 0.500000
-0:302 0.500000
-0:302 0.500000
-0:302 0.500000
-0:302 Constant:
-0:302 1 (const int)
-0:303 Sequence
-0:303 move second child to first child (temp highp 4-component vector of uint)
-0:303 'gath7' (temp highp 4-component vector of uint)
-0:303 textureGather (global highp 4-component vector of uint)
-0:303 'CA7' (uniform highp usamplerCubeArray)
-0:303 Constant:
-0:303 0.500000
-0:303 0.500000
-0:303 0.500000
-0:303 0.500000
-0:304 Sequence
-0:304 move second child to first child (temp highp 4-component vector of uint)
-0:304 'gathC7' (temp highp 4-component vector of uint)
-0:304 textureGather (global highp 4-component vector of uint)
-0:304 'CA7' (uniform highp usamplerCubeArray)
-0:304 Constant:
-0:304 0.500000
-0:304 0.500000
-0:304 0.500000
-0:304 0.500000
-0:304 Constant:
-0:304 0 (const int)
-0:306 Sequence
-0:306 move second child to first child (temp highp 4-component vector of float)
-0:306 'gath5' (temp highp 4-component vector of float)
-0:306 textureGather (global highp 4-component vector of float)
-0:306 'CA5' (uniform highp samplerCubeArrayShadow)
-0:306 Constant:
-0:306 0.500000
-0:306 0.500000
-0:306 0.500000
-0:306 0.500000
-0:306 Constant:
-0:306 2.500000
-0:308 Sequence
-0:308 move second child to first child (temp highp 3-component vector of int)
-0:308 's1' (temp highp 3-component vector of int)
-0:308 imageQuerySize (global highp 3-component vector of int)
-0:308 'CA1' (writeonly uniform highp imageCubeArray)
-0:309 Sequence
-0:309 move second child to first child (temp highp 3-component vector of int)
-0:309 's2' (temp highp 3-component vector of int)
-0:309 imageQuerySize (global highp 3-component vector of int)
-0:309 'CA2' (writeonly uniform highp iimageCubeArray)
-0:310 Sequence
-0:310 move second child to first child (temp highp 3-component vector of int)
-0:310 's3' (temp highp 3-component vector of int)
-0:310 imageQuerySize (global highp 3-component vector of int)
-0:310 'CA3' (writeonly uniform highp uimageCubeArray)
-0:312 imageStore (global highp void)
-0:312 'CA1' (writeonly uniform highp imageCubeArray)
-0:312 's3' (temp highp 3-component vector of int)
-0:312 Constant:
-0:312 1.000000
-0:312 1.000000
-0:312 1.000000
-0:312 1.000000
-0:313 imageStore (global highp void)
-0:313 'CA2' (writeonly uniform highp iimageCubeArray)
-0:313 's3' (temp highp 3-component vector of int)
-0:313 Constant:
-0:313 1 (const int)
-0:313 1 (const int)
-0:313 1 (const int)
-0:313 1 (const int)
-0:314 imageStore (global highp void)
-0:314 'CA3' (writeonly uniform highp uimageCubeArray)
-0:314 's3' (temp highp 3-component vector of int)
-0:314 Constant:
-0:314 1 (const uint)
-0:314 1 (const uint)
-0:314 1 (const uint)
-0:314 1 (const uint)
-0:316 Sequence
-0:316 move second child to first child (temp highp 4-component vector of float)
-0:316 'cl1' (temp highp 4-component vector of float)
-0:316 imageLoad (global highp 4-component vector of float)
-0:316 'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)
-0:316 's3' (temp highp 3-component vector of int)
-0:317 Sequence
-0:317 move second child to first child (temp highp 4-component vector of int)
-0:317 'cl2' (temp highp 4-component vector of int)
-0:317 imageLoad (global highp 4-component vector of int)
-0:317 'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)
-0:317 's3' (temp highp 3-component vector of int)
-0:318 Sequence
-0:318 move second child to first child (temp highp 4-component vector of uint)
-0:318 'cl3' (temp highp 4-component vector of uint)
-0:318 imageLoad (global highp 4-component vector of uint)
-0:318 'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)
-0:318 's3' (temp highp 3-component vector of int)
-0:343 Function Definition: MSA( (global void)
-0:343 Function Parameters:
-0:345 Sequence
-0:345 Sequence
-0:345 move second child to first child (temp highp 4-component vector of float)
-0:345 'tf' (temp highp 4-component vector of float)
-0:345 textureFetch (global highp 4-component vector of float)
-0:345 'samp2DMSA' (uniform highp sampler2DMSArray)
-0:345 Constant:
-0:345 5 (const int)
-0:345 5 (const int)
-0:345 5 (const int)
-0:345 Constant:
-0:345 2 (const int)
-0:346 Sequence
-0:346 move second child to first child (temp highp 4-component vector of int)
-0:346 'tfi' (temp highp 4-component vector of int)
-0:346 textureFetch (global highp 4-component vector of int)
-0:346 'samp2DMSAi' (uniform highp isampler2DMSArray)
-0:346 Constant:
-0:346 5 (const int)
-0:346 5 (const int)
-0:346 5 (const int)
-0:346 Constant:
-0:346 2 (const int)
-0:347 Sequence
-0:347 move second child to first child (temp highp 4-component vector of uint)
-0:347 'tfu' (temp highp 4-component vector of uint)
-0:347 textureFetch (global highp 4-component vector of uint)
-0:347 'samp2DMSAu' (uniform highp usampler2DMSArray)
-0:347 Constant:
-0:347 5 (const int)
-0:347 5 (const int)
-0:347 5 (const int)
-0:347 Constant:
-0:347 2 (const int)
-0:349 Sequence
-0:349 move second child to first child (temp highp 3-component vector of int)
-0:349 'tfs' (temp highp 3-component vector of int)
-0:349 textureSize (global highp 3-component vector of int)
-0:349 'samp2DMSA' (uniform highp sampler2DMSArray)
-0:350 Sequence
-0:350 move second child to first child (temp highp 3-component vector of int)
-0:350 'tfsi' (temp highp 3-component vector of int)
-0:350 textureSize (global highp 3-component vector of int)
-0:350 'samp2DMSAi' (uniform highp isampler2DMSArray)
-0:352 Sequence
-0:352 move second child to first child (temp highp 3-component vector of int)
-0:352 'tfsu' (temp highp 3-component vector of int)
-0:352 textureSize (global highp 3-component vector of int)
-0:352 'samp2DMSAu' (uniform highp usampler2DMSArray)
-0:364 Function Definition: goodImageAtom( (global void)
-0:364 Function Parameters:
-0:? Sequence
-0:370 imageAtomicAdd (global highp int)
-0:370 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:370 'P' (uniform highp 2-component vector of int)
-0:370 'dati' (temp highp int)
-0:371 imageAtomicAdd (global highp uint)
-0:371 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:371 'P' (uniform highp 2-component vector of int)
-0:371 'datu' (temp highp uint)
-0:372 imageAtomicMin (global highp int)
-0:372 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:372 'P' (uniform highp 2-component vector of int)
-0:372 'dati' (temp highp int)
-0:373 imageAtomicMin (global highp uint)
-0:373 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:373 'P' (uniform highp 2-component vector of int)
-0:373 'datu' (temp highp uint)
-0:374 imageAtomicMax (global highp int)
-0:374 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:374 'P' (uniform highp 2-component vector of int)
-0:374 'dati' (temp highp int)
-0:375 imageAtomicMax (global highp uint)
-0:375 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:375 'P' (uniform highp 2-component vector of int)
-0:375 'datu' (temp highp uint)
-0:376 imageAtomicAnd (global highp int)
-0:376 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:376 'P' (uniform highp 2-component vector of int)
-0:376 'dati' (temp highp int)
-0:377 imageAtomicAnd (global highp uint)
-0:377 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:377 'P' (uniform highp 2-component vector of int)
-0:377 'datu' (temp highp uint)
-0:378 imageAtomicOr (global highp int)
-0:378 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:378 'P' (uniform highp 2-component vector of int)
-0:378 'dati' (temp highp int)
-0:379 imageAtomicOr (global highp uint)
-0:379 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:379 'P' (uniform highp 2-component vector of int)
-0:379 'datu' (temp highp uint)
-0:380 imageAtomicXor (global highp int)
-0:380 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:380 'P' (uniform highp 2-component vector of int)
-0:380 'dati' (temp highp int)
-0:381 imageAtomicXor (global highp uint)
-0:381 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:381 'P' (uniform highp 2-component vector of int)
-0:381 'datu' (temp highp uint)
-0:382 imageAtomicExchange (global highp int)
-0:382 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:382 'P' (uniform highp 2-component vector of int)
-0:382 'dati' (temp highp int)
-0:383 imageAtomicExchange (global highp uint)
-0:383 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:383 'P' (uniform highp 2-component vector of int)
-0:383 'datu' (temp highp uint)
-0:384 imageAtomicExchange (global highp float)
-0:384 'im2Df' (layout(r32f ) uniform highp image2D)
-0:384 'P' (uniform highp 2-component vector of int)
-0:384 'datf' (temp highp float)
-0:385 imageAtomicCompSwap (global highp int)
-0:385 'im2Di' (layout(r32i ) uniform highp iimage2D)
-0:385 'P' (uniform highp 2-component vector of int)
-0:385 Constant:
-0:385 3 (const int)
-0:385 'dati' (temp highp int)
-0:386 imageAtomicCompSwap (global highp uint)
-0:386 'im2Du' (layout(r32ui ) uniform highp uimage2D)
-0:386 'P' (uniform highp 2-component vector of int)
-0:386 Constant:
-0:386 5 (const uint)
-0:386 'datu' (temp highp uint)
-0:398 Function Definition: badInterp( (global void)
-0:398 Function Parameters:
-0:400 Sequence
-0:400 Constant:
-0:400 0.000000
-0:401 Constant:
-0:401 0.000000
-0:402 Constant:
-0:402 0.000000
0:? Linker Objects
0:? 's' (shared highp 4-component vector of float)
0:? 'v' (buffer highp 4-component vector of float)
diff --git a/Test/baseResults/310AofA.vert.out b/Test/baseResults/310AofA.vert.out
index 28592d5..6b69e71 100644
--- a/Test/baseResults/310AofA.vert.out
+++ b/Test/baseResults/310AofA.vert.out
@@ -359,277 +359,6 @@
0:13 1 (const uint)
0:13 2 (const uint)
0:13 'd' (temp 3-element array of 2-element array of highp int)
-0:44 Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
-0:44 Function Parameters:
-0:44 'a' (in 5-element array of 7-element array of highp float)
-0:? Sequence
-0:47 move second child to first child (temp 7-element array of highp float)
-0:47 'r' (temp 7-element array of highp float)
-0:47 direct index (temp 7-element array of highp float)
-0:47 'a' (in 5-element array of 7-element array of highp float)
-0:47 Constant:
-0:47 2 (const int)
-0:48 Constant:
-0:48 0.000000
-0:49 Constant:
-0:49 0.000000
-0:50 Branch: Return with expression
-0:50 Construct float (temp 4-element array of 7-element array of float)
-0:50 direct index (temp 7-element array of highp float)
-0:50 'a' (in 5-element array of 7-element array of highp float)
-0:50 Constant:
-0:50 0 (const int)
-0:50 direct index (temp 7-element array of highp float)
-0:50 'a' (in 5-element array of 7-element array of highp float)
-0:50 Constant:
-0:50 1 (const int)
-0:50 'r' (temp 7-element array of highp float)
-0:50 direct index (temp 7-element array of highp float)
-0:50 'a' (in 5-element array of 7-element array of highp float)
-0:50 Constant:
-0:50 3 (const int)
-0:51 Branch: Return with expression
-0:51 Construct float (temp 4-element array of 7-element array of float)
-0:51 direct index (temp 7-element array of highp float)
-0:51 'a' (in 5-element array of 7-element array of highp float)
-0:51 Constant:
-0:51 0 (const int)
-0:51 direct index (temp 7-element array of highp float)
-0:51 'a' (in 5-element array of 7-element array of highp float)
-0:51 Constant:
-0:51 1 (const int)
-0:51 'r' (temp 7-element array of highp float)
-0:51 direct index (temp 7-element array of highp float)
-0:51 'a' (in 5-element array of 7-element array of highp float)
-0:51 Constant:
-0:51 3 (const int)
-0:52 Branch: Return with expression
-0:52 Construct float (temp 4-element array of 7-element array of float)
-0:52 direct index (temp 7-element array of highp float)
-0:52 'a' (in 5-element array of 7-element array of highp float)
-0:52 Constant:
-0:52 0 (const int)
-0:52 direct index (temp 7-element array of highp float)
-0:52 'a' (in 5-element array of 7-element array of highp float)
-0:52 Constant:
-0:52 1 (const int)
-0:52 direct index (temp 7-element array of highp float)
-0:52 'a' (in 5-element array of 7-element array of highp float)
-0:52 Constant:
-0:52 2 (const int)
-0:52 direct index (temp 7-element array of highp float)
-0:52 'a' (in 5-element array of 7-element array of highp float)
-0:52 Constant:
-0:52 3 (const int)
-0:55 Function Definition: bar(f1[5][7]; (global void)
-0:55 Function Parameters:
-0:55 '' (in 5-element array of 7-element array of highp float)
-0:57 Function Definition: foo2( (global void)
-0:57 Function Parameters:
-0:? Sequence
-0:? Sequence
-0:62 move second child to first child (temp highp float)
-0:62 direct index (temp highp float)
-0:62 direct index (temp 2-element array of highp float)
-0:62 direct index (temp 4-element array of 2-element array of highp float)
-0:62 'gu' (temp 3-element array of 4-element array of 2-element array of highp float)
-0:62 Constant:
-0:62 2 (const int)
-0:62 Constant:
-0:62 4 (const int)
-0:62 Constant:
-0:62 1 (const int)
-0:62 Constant:
-0:62 4.000000
-0:64 Sequence
-0:64 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
-0:64 'ca4' (temp 3-element array of 2-element array of highp 4-component vector of float)
-0:66 Constant:
-0:66 0.000000
-0:66 0.000000
-0:66 0.000000
-0:66 0.000000
-0:66 1.000000
-0:66 1.000000
-0:66 1.000000
-0:66 1.000000
-0:66 0.000000
-0:66 0.000000
-0:66 0.000000
-0:66 0.000000
-0:66 1.000000
-0:66 1.000000
-0:66 1.000000
-0:66 1.000000
-0:66 0.000000
-0:66 0.000000
-0:66 0.000000
-0:66 0.000000
-0:66 1.000000
-0:66 1.000000
-0:66 1.000000
-0:66 1.000000
-0:67 Sequence
-0:67 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
-0:67 'caim' (temp 3-element array of 2-element array of highp 4-component vector of float)
-0:69 Constant:
-0:69 4.000000
-0:69 4.000000
-0:69 4.000000
-0:69 4.000000
-0:69 2.000000
-0:69 2.000000
-0:69 2.000000
-0:69 2.000000
-0:69 4.000000
-0:69 4.000000
-0:69 4.000000
-0:69 4.000000
-0:69 2.000000
-0:69 2.000000
-0:69 2.000000
-0:69 2.000000
-0:69 4.000000
-0:69 4.000000
-0:69 4.000000
-0:69 4.000000
-0:69 2.000000
-0:69 2.000000
-0:69 2.000000
-0:69 2.000000
-0:70 Sequence
-0:70 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
-0:70 'caim2' (temp 3-element array of 2-element array of highp 4-component vector of float)
-0:72 Constant:
-0:72 4.000000
-0:72 4.000000
-0:72 4.000000
-0:72 4.000000
-0:72 2.000000
-0:72 2.000000
-0:72 2.000000
-0:72 2.000000
-0:72 4.000000
-0:72 4.000000
-0:72 4.000000
-0:72 4.000000
-0:72 2.000000
-0:72 2.000000
-0:72 2.000000
-0:72 2.000000
-0:72 4.000000
-0:72 4.000000
-0:72 4.000000
-0:72 4.000000
-0:72 2.000000
-0:72 2.000000
-0:72 2.000000
-0:72 2.000000
-0:73 Sequence
-0:73 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
-0:73 'caim3' (temp 3-element array of 2-element array of highp 4-component vector of float)
-0:75 Constant:
-0:75 4.000000
-0:75 4.000000
-0:75 4.000000
-0:75 4.000000
-0:75 2.000000
-0:75 2.000000
-0:75 2.000000
-0:75 2.000000
-0:75 4.000000
-0:75 4.000000
-0:75 4.000000
-0:75 4.000000
-0:75 2.000000
-0:75 2.000000
-0:75 2.000000
-0:75 2.000000
-0:75 4.000000
-0:75 4.000000
-0:75 4.000000
-0:75 4.000000
-0:75 2.000000
-0:75 2.000000
-0:75 2.000000
-0:75 2.000000
-0:77 move second child to first child (temp 4-element array of 7-element array of highp float)
-0:77 'g4' (global 4-element array of 7-element array of highp float)
-0:77 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
-0:77 'g5' (global 5-element array of 7-element array of highp float)
-0:78 'g5' (global 5-element array of 7-element array of highp float)
-0:79 'gu' (global 1-element array of 7-element array of highp float)
-0:81 Constant:
-0:81 0.000000
-0:82 Function Call: bar(f1[5][7]; (global void)
-0:82 'g5' (global 5-element array of 7-element array of highp float)
-0:84 Test condition and select (temp void)
-0:84 Condition
-0:84 Compare Equal (temp bool)
-0:84 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
-0:84 'g5' (global 5-element array of 7-element array of highp float)
-0:84 'g4' (global 4-element array of 7-element array of highp float)
-0:84 true case is null
-0:86 Test condition and select (temp void)
-0:86 Condition
-0:86 Constant:
-0:86 false (const bool)
-0:86 true case is null
-0:90 move second child to first child (temp highp float)
-0:90 direct index (temp highp float)
-0:90 direct index (temp 7-element array of highp float)
-0:90 'u' (temp 5-element array of 7-element array of highp float)
-0:90 Constant:
-0:90 5 (const int)
-0:90 Constant:
-0:90 2 (const int)
-0:90 Constant:
-0:90 5.000000
-0:91 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
-0:91 'u' (temp 5-element array of 7-element array of highp float)
-0:94 direct index (layout(column_major shared ) temp highp 4-component vector of float)
-0:94 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
-0:94 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
-0:94 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
-0:94 Constant:
-0:94 1 (const int)
-0:94 Constant:
-0:94 1 (const int)
-0:94 Constant:
-0:94 -1 (const int)
-0:95 move second child to first child (temp highp 4-component vector of float)
-0:95 direct index (layout(column_major shared ) temp highp 4-component vector of float)
-0:95 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
-0:95 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
-0:95 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
-0:95 Constant:
-0:95 1 (const int)
-0:95 Constant:
-0:95 1 (const int)
-0:95 Constant:
-0:95 1 (const int)
-0:95 Constant:
-0:95 4.300000
-0:95 4.300000
-0:95 4.300000
-0:95 4.300000
-0:96 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
-0:96 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
-0:96 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
-0:96 Constant:
-0:96 1 (const int)
-0:96 Constant:
-0:96 1 (const int)
-0:98 Constant:
-0:98 7 (const int)
-0:99 array length (temp int)
-0:99 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float)
-0:99 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
-0:99 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
-0:99 Constant:
-0:99 0 (const int)
-0:99 Constant:
-0:99 1 (const int)
0:? Linker Objects
0:? 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
0:? 'uname' (layout(column_major shared ) uniform 3-element array of block{layout(column_major shared ) uniform highp float u, layout(column_major shared ) uniform 1-element array of highp 4-component vector of float v})
diff --git a/Test/baseResults/330.frag.out b/Test/baseResults/330.frag.out
index 904ad3e..d3c54fc 100644
--- a/Test/baseResults/330.frag.out
+++ b/Test/baseResults/330.frag.out
@@ -152,31 +152,6 @@
0:12 'buffer' (temp int)
0:12 Constant:
0:12 4 (const int)
-0:21 Function Definition: foo( (global void)
-0:21 Function Parameters:
-0:23 Sequence
-0:23 Sequence
-0:23 move second child to first child (temp 4-component vector of float)
-0:23 'c' (temp 4-component vector of float)
-0:23 gl_Color: direct index for structure (in 4-component vector of float Color)
-0:23 'anon@0' (in block{in 4-component vector of float Color gl_Color, })
-0:23 Constant:
-0:23 2 (const uint)
-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:147 Function Definition: fooKeyMem( (global void)
-0:147 Function Parameters:
-0:149 Sequence
-0:149 precise: direct index for structure (global int)
-0:149 'KeyMem' (global structure{global int precise})
-0:149 Constant:
-0:149 0 (const int)
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)
diff --git a/Test/baseResults/400.frag.out b/Test/baseResults/400.frag.out
index 9090414..aea4e49 100644
--- a/Test/baseResults/400.frag.out
+++ b/Test/baseResults/400.frag.out
@@ -642,312 +642,6 @@
0:27 move second child to first child (temp 4-component vector of float)
0:27 'c' (temp 4-component vector of float)
0:27 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
-0:47 Function Definition: foo23( (global void)
-0:47 Function Parameters:
-0:? Sequence
-0:51 textureProjGradOffset (global float)
-0:51 'u2drs' (uniform sampler2DRectShadow)
-0:51 'outp' (out 4-component vector of float)
-0:51 Constant:
-0:51 0.000000
-0:51 0.000000
-0:51 Constant:
-0:51 0.000000
-0:51 0.000000
-0:51 Convert float to int (temp 2-component vector of int)
-0:51 'c2D' (smooth in 2-component vector of float)
-0:52 textureProjGradOffset (global float)
-0:52 'u2drs' (uniform sampler2DRectShadow)
-0:52 'outp' (out 4-component vector of float)
-0:52 Constant:
-0:52 0.000000
-0:52 0.000000
-0:52 Constant:
-0:52 0.000000
-0:52 0.000000
-0:52 Constant:
-0:52 3 (const int)
-0:52 4 (const int)
-0:53 textureProjGradOffset (global float)
-0:53 'u2drs' (uniform sampler2DRectShadow)
-0:53 'outp' (out 4-component vector of float)
-0:53 Constant:
-0:53 0.000000
-0:53 0.000000
-0:53 Constant:
-0:53 0.000000
-0:53 0.000000
-0:53 Constant:
-0:53 15 (const int)
-0:53 16 (const int)
-0:54 textureProjGradOffset (global float)
-0:54 'u2drs' (uniform sampler2DRectShadow)
-0:54 'outp' (out 4-component vector of float)
-0:54 Constant:
-0:54 0.000000
-0:54 0.000000
-0:54 Constant:
-0:54 0.000000
-0:54 0.000000
-0:54 Constant:
-0:54 -10 (const int)
-0:54 20 (const int)
-0:60 Function Definition: foo24( (global void)
-0:60 Function Parameters:
-0:? Sequence
-0:63 move second child to first child (temp 3-component vector of double)
-0:63 'df' (temp 3-component vector of double)
-0:63 modf (global 3-component vector of double)
-0:63 Convert float to double (temp 3-component vector of double)
-0:63 vector swizzle (temp 3-component vector of float)
-0:63 'outp' (out 4-component vector of float)
-0:63 Sequence
-0:63 Constant:
-0:63 0 (const int)
-0:63 Constant:
-0:63 1 (const int)
-0:63 Constant:
-0:63 2 (const int)
-0:63 'di' (temp 3-component vector of double)
-0:71 Function Definition: foodc1( (global void)
-0:71 Function Parameters:
-0:73 Sequence
-0:73 Sequence
-0:73 move second child to first child (temp 2-component vector of float)
-0:73 'v2' (temp 2-component vector of float)
-0:73 dPdxFine (global 2-component vector of float)
-0:73 'in2' (smooth in 2-component vector of float)
-0:74 Sequence
-0:74 move second child to first child (temp 3-component vector of float)
-0:74 'v3' (temp 3-component vector of float)
-0:74 dPdyCoarse (global 3-component vector of float)
-0:74 'in3' (smooth in 3-component vector of float)
-0:75 Sequence
-0:75 move second child to first child (temp 4-component vector of float)
-0:75 'v4' (temp 4-component vector of float)
-0:75 add (temp 4-component vector of float)
-0:75 fwidthCoarse (global 4-component vector of float)
-0:75 'in4' (smooth in 4-component vector of float)
-0:75 fwidthFine (global 4-component vector of float)
-0:75 'in4' (smooth in 4-component vector of float)
-0:80 Function Definition: foodc2( (global void)
-0:80 Function Parameters:
-0:82 Sequence
-0:82 Sequence
-0:82 move second child to first child (temp 2-component vector of float)
-0:82 'v2' (temp 2-component vector of float)
-0:82 dPdxFine (global 2-component vector of float)
-0:82 'in2' (smooth in 2-component vector of float)
-0:83 Sequence
-0:83 move second child to first child (temp 3-component vector of float)
-0:83 'v3' (temp 3-component vector of float)
-0:83 dPdyCoarse (global 3-component vector of float)
-0:83 'in3' (smooth in 3-component vector of float)
-0:84 Sequence
-0:84 move second child to first child (temp 4-component vector of float)
-0:84 'v4' (temp 4-component vector of float)
-0:84 add (temp 4-component vector of float)
-0:84 fwidthCoarse (global 4-component vector of float)
-0:84 'in4' (smooth in 4-component vector of float)
-0:84 fwidthFine (global 4-component vector of float)
-0:84 'in4' (smooth in 4-component vector of float)
-0:89 move second child to first child (temp 2-component vector of float)
-0:89 'v2' (temp 2-component vector of float)
-0:89 frexp (global 2-component vector of float)
-0:89 'v2' (temp 2-component vector of float)
-0:89 'i2' (temp 2-component vector of int)
-0:90 move second child to first child (temp 3-component vector of float)
-0:90 'v3' (temp 3-component vector of float)
-0:90 ldexp (global 3-component vector of float)
-0:90 'v3' (temp 3-component vector of float)
-0:90 'i3' (temp 3-component vector of int)
-0:92 move second child to first child (temp uint)
-0:92 'u1' (temp uint)
-0:92 PackUnorm4x8 (global uint)
-0:92 'v4' (temp 4-component vector of float)
-0:93 move second child to first child (temp uint)
-0:93 'u1' (temp uint)
-0:93 PackSnorm4x8 (global uint)
-0:93 'v4' (temp 4-component vector of float)
-0:94 move second child to first child (temp 4-component vector of float)
-0:94 'v4' (temp 4-component vector of float)
-0:94 UnpackUnorm4x8 (global 4-component vector of float)
-0:94 'u1' (temp uint)
-0:95 move second child to first child (temp 4-component vector of float)
-0:95 'v4' (temp 4-component vector of float)
-0:95 UnpackSnorm4x8 (global 4-component vector of float)
-0:95 'u1' (temp uint)
-0:99 move second child to first child (temp double)
-0:99 'd' (temp double)
-0:99 PackDouble2x32 (global double)
-0:99 'u2' (temp 2-component vector of uint)
-0:100 move second child to first child (temp 2-component vector of uint)
-0:100 'u2' (temp 2-component vector of uint)
-0:100 UnpackDouble2x32 (global 2-component vector of uint)
-0:100 'd' (temp double)
-0:117 Function Definition: interp( (global void)
-0:117 Function Parameters:
-0:119 Sequence
-0:119 interpolateAtCentroid (global 2-component vector of float)
-0:119 'colorfc' (centroid flat in 2-component vector of float)
-0:120 interpolateAtCentroid (global 4-component vector of float)
-0:120 'colorSampIn' (smooth sample in 4-component vector of float)
-0:121 interpolateAtCentroid (global 4-component vector of float)
-0:121 'colorfsi' (noperspective in 4-component vector of float)
-0:122 interpolateAtCentroid (global float)
-0:122 'scalarIn' (smooth in float)
-0:123 Constant:
-0:123 0.000000
-0:124 interpolateAtCentroid (global 3-component vector of float)
-0:124 direct index (smooth sample temp 3-component vector of float)
-0:124 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
-0:124 Constant:
-0:124 2 (const int)
-0:125 interpolateAtCentroid (global 2-component vector of float)
-0:125 vector swizzle (temp 2-component vector of float)
-0:125 direct index (smooth sample temp 3-component vector of float)
-0:125 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
-0:125 Constant:
-0:125 2 (const int)
-0:125 Sequence
-0:125 Constant:
-0:125 0 (const int)
-0:125 Constant:
-0:125 1 (const int)
-0:127 Constant:
-0:127 0.000000
-0:128 interpolateAtSample (global 3-component vector of float)
-0:128 indirect index (smooth sample temp 3-component vector of float)
-0:128 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
-0:128 'i' (flat in int)
-0:128 Constant:
-0:128 0 (const int)
-0:129 interpolateAtSample (global float)
-0:129 x: direct index for structure (global float)
-0:129 's1' (smooth in structure{global float x})
-0:129 Constant:
-0:129 0 (const int)
-0:129 Constant:
-0:129 2 (const int)
-0:130 interpolateAtSample (global float)
-0:130 'scalarIn' (smooth in float)
-0:130 Constant:
-0:130 1 (const int)
-0:132 Constant:
-0:132 0.000000
-0:133 interpolateAtOffset (global 3-component vector of float)
-0:133 direct index (smooth sample temp 3-component vector of float)
-0:133 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
-0:133 Constant:
-0:133 2 (const int)
-0:133 Constant:
-0:133 0.200000
-0:133 0.200000
-0:134 interpolateAtOffset (global 2-component vector of float)
-0:134 vector swizzle (temp 2-component vector of float)
-0:134 direct index (smooth sample temp 3-component vector of float)
-0:134 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
-0:134 Constant:
-0:134 2 (const int)
-0:134 Sequence
-0:134 Constant:
-0:134 0 (const int)
-0:134 Constant:
-0:134 1 (const int)
-0:134 Constant:
-0:134 0.200000
-0:134 0.200000
-0:135 interpolateAtOffset (global float)
-0:135 add (temp float)
-0:135 'scalarIn' (smooth in float)
-0:135 'scalarIn' (smooth in float)
-0:135 Constant:
-0:135 0.200000
-0:135 0.200000
-0:136 interpolateAtOffset (global float)
-0:136 x: direct index for structure (global float)
-0:136 's2' (sample temp structure{global float x})
-0:136 Constant:
-0:136 0 (const int)
-0:136 Constant:
-0:136 0.200000
-0:136 0.200000
-0:139 interpolateAtCentroid (global float)
-0:139 'f' (temp float)
-0:140 interpolateAtSample (global 4-component vector of float)
-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)
diff --git a/Test/baseResults/400.geom.out b/Test/baseResults/400.geom.out
index 16117e6..86e2b8f 100644
--- a/Test/baseResults/400.geom.out
+++ b/Test/baseResults/400.geom.out
@@ -1070,981 +1070,6 @@
0:9 move second child to first child (temp int)
0:9 'id' (temp int)
0:9 'gl_InvocationID' (in int InvocationID)
-0:23 Function Definition: foo( (global void)
-0:23 Function Parameters:
-0:25 Sequence
-0:25 Constant:
-0:25 1 (const int)
-0:26 gl_Position: direct index for structure (in 4-component vector of float Position)
-0:26 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
-0:26 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
-0:26 Constant:
-0:26 1 (const int)
-0:26 Constant:
-0:26 0 (const int)
-0:34 Function Definition: foo2( (global void)
-0:34 Function Parameters:
-0:36 Sequence
-0:36 Constant:
-0:36 1 (const int)
-0:37 Constant:
-0:37 3 (const int)
-0:46 Function Definition: foo3( (global void)
-0:46 Function Parameters:
-0:48 Sequence
-0:48 Constant:
-0:48 3 (const int)
-0:49 Constant:
-0:49 3 (const int)
-0:50 Constant:
-0:50 3 (const int)
-0:51 Constant:
-0:51 3 (const int)
-0:75 Function Definition: bits( (global void)
-0:75 Function Parameters:
-0:? Sequence
-0:78 move second child to first child (temp 2-component vector of uint)
-0:78 'u2' (temp 2-component vector of uint)
-0:78 addCarry (global 2-component vector of uint)
-0:78 'u2' (temp 2-component vector of uint)
-0:78 'u2' (temp 2-component vector of uint)
-0:78 'u2' (temp 2-component vector of uint)
-0:80 move second child to first child (temp uint)
-0:80 'u1' (temp uint)
-0:80 subBorrow (global uint)
-0:80 'u1' (temp uint)
-0:80 'u1' (temp uint)
-0:80 'u1' (temp uint)
-0:82 uMulExtended (global void)
-0:82 'u4' (temp 4-component vector of uint)
-0:82 'u4' (temp 4-component vector of uint)
-0:82 'u4' (temp 4-component vector of uint)
-0:82 'u4' (temp 4-component vector of uint)
-0:84 iMulExtended (global void)
-0:84 'i4' (temp 4-component vector of int)
-0:84 'i4' (temp 4-component vector of int)
-0:84 'i4' (temp 4-component vector of int)
-0:84 'i4' (temp 4-component vector of int)
-0:86 move second child to first child (temp int)
-0:86 'i1' (temp int)
-0:86 bitfieldExtract (global int)
-0:86 'i1' (temp int)
-0:86 Constant:
-0:86 4 (const int)
-0:86 Constant:
-0:86 5 (const int)
-0:88 move second child to first child (temp 3-component vector of uint)
-0:88 'u3' (temp 3-component vector of uint)
-0:88 bitfieldExtract (global 3-component vector of uint)
-0:88 'u3' (temp 3-component vector of uint)
-0:88 Constant:
-0:88 4 (const int)
-0:88 Constant:
-0:88 5 (const int)
-0:90 move second child to first child (temp 3-component vector of int)
-0:90 'i3' (temp 3-component vector of int)
-0:90 bitfieldInsert (global 3-component vector of int)
-0:90 'i3' (temp 3-component vector of int)
-0:90 'i3' (temp 3-component vector of int)
-0:90 Constant:
-0:90 4 (const int)
-0:90 Constant:
-0:90 5 (const int)
-0:91 move second child to first child (temp uint)
-0:91 'u1' (temp uint)
-0:91 bitfieldInsert (global uint)
-0:91 'u1' (temp uint)
-0:91 'u1' (temp uint)
-0:91 Constant:
-0:91 4 (const int)
-0:91 Constant:
-0:91 5 (const int)
-0:93 move second child to first child (temp 2-component vector of int)
-0:93 'i2' (temp 2-component vector of int)
-0:93 bitFieldReverse (global 2-component vector of int)
-0:93 'i2' (temp 2-component vector of int)
-0:94 move second child to first child (temp 4-component vector of uint)
-0:94 'u4' (temp 4-component vector of uint)
-0:94 bitFieldReverse (global 4-component vector of uint)
-0:94 'u4' (temp 4-component vector of uint)
-0:95 move second child to first child (temp int)
-0:95 'i1' (temp int)
-0:95 bitCount (global int)
-0:95 'i1' (temp int)
-0:96 move second child to first child (temp 3-component vector of int)
-0:96 'i3' (temp 3-component vector of int)
-0:96 bitCount (global 3-component vector of int)
-0:96 'u3' (temp 3-component vector of uint)
-0:97 move second child to first child (temp 2-component vector of int)
-0:97 'i2' (temp 2-component vector of int)
-0:97 findLSB (global 2-component vector of int)
-0:97 'i2' (temp 2-component vector of int)
-0:98 move second child to first child (temp 4-component vector of int)
-0:98 'i4' (temp 4-component vector of int)
-0:98 findLSB (global 4-component vector of int)
-0:98 'u4' (temp 4-component vector of uint)
-0:99 move second child to first child (temp int)
-0:99 'i1' (temp int)
-0:99 findMSB (global int)
-0:99 'i1' (temp int)
-0:100 move second child to first child (temp 2-component vector of int)
-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:119 Function Definition: doubles( (global void)
-0:119 Function Parameters:
-0:? Sequence
-0:131 move second child to first child (temp double)
-0:131 'doublev' (temp double)
-0:131 Constant:
-0:131 1.702939
-0:132 move second child to first child (temp 2-component vector of double)
-0:132 'dvec2v' (temp 2-component vector of double)
-0:132 Constant:
-0:132 1.643168
-0:132 1.643168
-0:133 move second child to first child (temp 3-component vector of double)
-0:133 'dvec3v' (temp 3-component vector of double)
-0:133 Constant:
-0:133 1.414214
-0:133 1.414214
-0:133 1.414214
-0:134 move second child to first child (temp 4-component vector of double)
-0:134 'dvec4v' (temp 4-component vector of double)
-0:134 Constant:
-0:134 1.449138
-0:134 1.449138
-0:134 1.449138
-0:134 1.449138
-0:136 add second child into first child (temp double)
-0:136 'doublev' (temp double)
-0:136 inverse sqrt (global double)
-0:136 'doublev' (temp double)
-0:137 add second child into first child (temp 2-component vector of double)
-0:137 'dvec2v' (temp 2-component vector of double)
-0:137 inverse sqrt (global 2-component vector of double)
-0:137 'dvec2v' (temp 2-component vector of double)
-0:138 add second child into first child (temp 3-component vector of double)
-0:138 'dvec3v' (temp 3-component vector of double)
-0:138 inverse sqrt (global 3-component vector of double)
-0:138 'dvec3v' (temp 3-component vector of double)
-0:139 add second child into first child (temp 4-component vector of double)
-0:139 'dvec4v' (temp 4-component vector of double)
-0:139 inverse sqrt (global 4-component vector of double)
-0:139 'dvec4v' (temp 4-component vector of double)
-0:141 add second child into first child (temp double)
-0:141 'doublev' (temp double)
-0:141 Absolute value (global double)
-0:141 'doublev' (temp double)
-0:142 add second child into first child (temp 2-component vector of double)
-0:142 'dvec2v' (temp 2-component vector of double)
-0:142 Absolute value (global 2-component vector of double)
-0:142 'dvec2v' (temp 2-component vector of double)
-0:143 add second child into first child (temp 3-component vector of double)
-0:143 'dvec3v' (temp 3-component vector of double)
-0:143 Absolute value (global 3-component vector of double)
-0:143 'dvec3v' (temp 3-component vector of double)
-0:144 add second child into first child (temp 4-component vector of double)
-0:144 'dvec4v' (temp 4-component vector of double)
-0:144 Absolute value (global 4-component vector of double)
-0:144 'dvec4v' (temp 4-component vector of double)
-0:146 add second child into first child (temp double)
-0:146 'doublev' (temp double)
-0:146 Sign (global double)
-0:146 'doublev' (temp double)
-0:147 add second child into first child (temp 2-component vector of double)
-0:147 'dvec2v' (temp 2-component vector of double)
-0:147 Sign (global 2-component vector of double)
-0:147 'dvec2v' (temp 2-component vector of double)
-0:148 add second child into first child (temp 3-component vector of double)
-0:148 'dvec3v' (temp 3-component vector of double)
-0:148 Sign (global 3-component vector of double)
-0:148 'dvec3v' (temp 3-component vector of double)
-0:149 add second child into first child (temp 4-component vector of double)
-0:149 'dvec4v' (temp 4-component vector of double)
-0:149 Sign (global 4-component vector of double)
-0:149 'dvec4v' (temp 4-component vector of double)
-0:151 add second child into first child (temp double)
-0:151 'doublev' (temp double)
-0:151 Floor (global double)
-0:151 'doublev' (temp double)
-0:152 add second child into first child (temp 2-component vector of double)
-0:152 'dvec2v' (temp 2-component vector of double)
-0:152 Floor (global 2-component vector of double)
-0:152 'dvec2v' (temp 2-component vector of double)
-0:153 add second child into first child (temp 3-component vector of double)
-0:153 'dvec3v' (temp 3-component vector of double)
-0:153 Floor (global 3-component vector of double)
-0:153 'dvec3v' (temp 3-component vector of double)
-0:154 add second child into first child (temp 4-component vector of double)
-0:154 'dvec4v' (temp 4-component vector of double)
-0:154 Floor (global 4-component vector of double)
-0:154 'dvec4v' (temp 4-component vector of double)
-0:156 add second child into first child (temp double)
-0:156 'doublev' (temp double)
-0:156 trunc (global double)
-0:156 'doublev' (temp double)
-0:157 add second child into first child (temp 2-component vector of double)
-0:157 'dvec2v' (temp 2-component vector of double)
-0:157 trunc (global 2-component vector of double)
-0:157 'dvec2v' (temp 2-component vector of double)
-0:158 add second child into first child (temp 3-component vector of double)
-0:158 'dvec3v' (temp 3-component vector of double)
-0:158 trunc (global 3-component vector of double)
-0:158 'dvec3v' (temp 3-component vector of double)
-0:159 add second child into first child (temp 4-component vector of double)
-0:159 'dvec4v' (temp 4-component vector of double)
-0:159 trunc (global 4-component vector of double)
-0:159 'dvec4v' (temp 4-component vector of double)
-0:161 add second child into first child (temp double)
-0:161 'doublev' (temp double)
-0:161 round (global double)
-0:161 'doublev' (temp double)
-0:162 add second child into first child (temp 2-component vector of double)
-0:162 'dvec2v' (temp 2-component vector of double)
-0:162 round (global 2-component vector of double)
-0:162 'dvec2v' (temp 2-component vector of double)
-0:163 add second child into first child (temp 3-component vector of double)
-0:163 'dvec3v' (temp 3-component vector of double)
-0:163 round (global 3-component vector of double)
-0:163 'dvec3v' (temp 3-component vector of double)
-0:164 add second child into first child (temp 4-component vector of double)
-0:164 'dvec4v' (temp 4-component vector of double)
-0:164 round (global 4-component vector of double)
-0:164 'dvec4v' (temp 4-component vector of double)
-0:166 add second child into first child (temp double)
-0:166 'doublev' (temp double)
-0:166 roundEven (global double)
-0:166 'doublev' (temp double)
-0:167 add second child into first child (temp 2-component vector of double)
-0:167 'dvec2v' (temp 2-component vector of double)
-0:167 roundEven (global 2-component vector of double)
-0:167 'dvec2v' (temp 2-component vector of double)
-0:168 add second child into first child (temp 3-component vector of double)
-0:168 'dvec3v' (temp 3-component vector of double)
-0:168 roundEven (global 3-component vector of double)
-0:168 'dvec3v' (temp 3-component vector of double)
-0:169 add second child into first child (temp 4-component vector of double)
-0:169 'dvec4v' (temp 4-component vector of double)
-0:169 roundEven (global 4-component vector of double)
-0:169 'dvec4v' (temp 4-component vector of double)
-0:171 add second child into first child (temp double)
-0:171 'doublev' (temp double)
-0:171 Ceiling (global double)
-0:171 'doublev' (temp double)
-0:172 add second child into first child (temp 2-component vector of double)
-0:172 'dvec2v' (temp 2-component vector of double)
-0:172 Ceiling (global 2-component vector of double)
-0:172 'dvec2v' (temp 2-component vector of double)
-0:173 add second child into first child (temp 3-component vector of double)
-0:173 'dvec3v' (temp 3-component vector of double)
-0:173 Ceiling (global 3-component vector of double)
-0:173 'dvec3v' (temp 3-component vector of double)
-0:174 add second child into first child (temp 4-component vector of double)
-0:174 'dvec4v' (temp 4-component vector of double)
-0:174 Ceiling (global 4-component vector of double)
-0:174 'dvec4v' (temp 4-component vector of double)
-0:176 add second child into first child (temp double)
-0:176 'doublev' (temp double)
-0:176 Fraction (global double)
-0:176 'doublev' (temp double)
-0:177 add second child into first child (temp 2-component vector of double)
-0:177 'dvec2v' (temp 2-component vector of double)
-0:177 Fraction (global 2-component vector of double)
-0:177 'dvec2v' (temp 2-component vector of double)
-0:178 add second child into first child (temp 3-component vector of double)
-0:178 'dvec3v' (temp 3-component vector of double)
-0:178 Fraction (global 3-component vector of double)
-0:178 'dvec3v' (temp 3-component vector of double)
-0:179 add second child into first child (temp 4-component vector of double)
-0:179 'dvec4v' (temp 4-component vector of double)
-0:179 Fraction (global 4-component vector of double)
-0:179 'dvec4v' (temp 4-component vector of double)
-0:181 add second child into first child (temp double)
-0:181 'doublev' (temp double)
-0:181 mod (global double)
-0:181 'doublev' (temp double)
-0:181 'doublev' (temp double)
-0:182 add second child into first child (temp 2-component vector of double)
-0:182 'dvec2v' (temp 2-component vector of double)
-0:182 mod (global 2-component vector of double)
-0:182 'dvec2v' (temp 2-component vector of double)
-0:182 'doublev' (temp double)
-0:183 add second child into first child (temp 3-component vector of double)
-0:183 'dvec3v' (temp 3-component vector of double)
-0:183 mod (global 3-component vector of double)
-0:183 'dvec3v' (temp 3-component vector of double)
-0:183 'doublev' (temp double)
-0:184 add second child into first child (temp 4-component vector of double)
-0:184 'dvec4v' (temp 4-component vector of double)
-0:184 mod (global 4-component vector of double)
-0:184 'dvec4v' (temp 4-component vector of double)
-0:184 'doublev' (temp double)
-0:185 add second child into first child (temp 2-component vector of double)
-0:185 'dvec2v' (temp 2-component vector of double)
-0:185 mod (global 2-component vector of double)
-0:185 'dvec2v' (temp 2-component vector of double)
-0:185 'dvec2v' (temp 2-component vector of double)
-0:186 add second child into first child (temp 3-component vector of double)
-0:186 'dvec3v' (temp 3-component vector of double)
-0:186 mod (global 3-component vector of double)
-0:186 'dvec3v' (temp 3-component vector of double)
-0:186 'dvec3v' (temp 3-component vector of double)
-0:187 add second child into first child (temp 4-component vector of double)
-0:187 'dvec4v' (temp 4-component vector of double)
-0:187 mod (global 4-component vector of double)
-0:187 'dvec4v' (temp 4-component vector of double)
-0:187 'dvec4v' (temp 4-component vector of double)
-0:189 add second child into first child (temp double)
-0:189 'doublev' (temp double)
-0:189 modf (global double)
-0:189 'doublev' (temp double)
-0:189 'doublev' (temp double)
-0:190 add second child into first child (temp 2-component vector of double)
-0:190 'dvec2v' (temp 2-component vector of double)
-0:190 modf (global 2-component vector of double)
-0:190 'dvec2v' (temp 2-component vector of double)
-0:190 'dvec2v' (temp 2-component vector of double)
-0:191 add second child into first child (temp 3-component vector of double)
-0:191 'dvec3v' (temp 3-component vector of double)
-0:191 modf (global 3-component vector of double)
-0:191 'dvec3v' (temp 3-component vector of double)
-0:191 'dvec3v' (temp 3-component vector of double)
-0:192 add second child into first child (temp 4-component vector of double)
-0:192 'dvec4v' (temp 4-component vector of double)
-0:192 modf (global 4-component vector of double)
-0:192 'dvec4v' (temp 4-component vector of double)
-0:192 'dvec4v' (temp 4-component vector of double)
-0:194 add second child into first child (temp double)
-0:194 'doublev' (temp double)
-0:194 min (global double)
-0:194 'doublev' (temp double)
-0:194 'doublev' (temp double)
-0:195 add second child into first child (temp 2-component vector of double)
-0:195 'dvec2v' (temp 2-component vector of double)
-0:195 min (global 2-component vector of double)
-0:195 'dvec2v' (temp 2-component vector of double)
-0:195 'doublev' (temp double)
-0:196 add second child into first child (temp 3-component vector of double)
-0:196 'dvec3v' (temp 3-component vector of double)
-0:196 min (global 3-component vector of double)
-0:196 'dvec3v' (temp 3-component vector of double)
-0:196 'doublev' (temp double)
-0:197 add second child into first child (temp 4-component vector of double)
-0:197 'dvec4v' (temp 4-component vector of double)
-0:197 min (global 4-component vector of double)
-0:197 'dvec4v' (temp 4-component vector of double)
-0:197 'doublev' (temp double)
-0:198 add second child into first child (temp 2-component vector of double)
-0:198 'dvec2v' (temp 2-component vector of double)
-0:198 min (global 2-component vector of double)
-0:198 'dvec2v' (temp 2-component vector of double)
-0:198 'dvec2v' (temp 2-component vector of double)
-0:199 add second child into first child (temp 3-component vector of double)
-0:199 'dvec3v' (temp 3-component vector of double)
-0:199 min (global 3-component vector of double)
-0:199 'dvec3v' (temp 3-component vector of double)
-0:199 'dvec3v' (temp 3-component vector of double)
-0:200 add second child into first child (temp 4-component vector of double)
-0:200 'dvec4v' (temp 4-component vector of double)
-0:200 min (global 4-component vector of double)
-0:200 'dvec4v' (temp 4-component vector of double)
-0:200 'dvec4v' (temp 4-component vector of double)
-0:202 add second child into first child (temp double)
-0:202 'doublev' (temp double)
-0:202 max (global double)
-0:202 'doublev' (temp double)
-0:202 'doublev' (temp double)
-0:203 add second child into first child (temp 2-component vector of double)
-0:203 'dvec2v' (temp 2-component vector of double)
-0:203 max (global 2-component vector of double)
-0:203 'dvec2v' (temp 2-component vector of double)
-0:203 'doublev' (temp double)
-0:204 add second child into first child (temp 3-component vector of double)
-0:204 'dvec3v' (temp 3-component vector of double)
-0:204 max (global 3-component vector of double)
-0:204 'dvec3v' (temp 3-component vector of double)
-0:204 'doublev' (temp double)
-0:205 add second child into first child (temp 4-component vector of double)
-0:205 'dvec4v' (temp 4-component vector of double)
-0:205 max (global 4-component vector of double)
-0:205 'dvec4v' (temp 4-component vector of double)
-0:205 'doublev' (temp double)
-0:206 add second child into first child (temp 2-component vector of double)
-0:206 'dvec2v' (temp 2-component vector of double)
-0:206 max (global 2-component vector of double)
-0:206 'dvec2v' (temp 2-component vector of double)
-0:206 'dvec2v' (temp 2-component vector of double)
-0:207 add second child into first child (temp 3-component vector of double)
-0:207 'dvec3v' (temp 3-component vector of double)
-0:207 max (global 3-component vector of double)
-0:207 'dvec3v' (temp 3-component vector of double)
-0:207 'dvec3v' (temp 3-component vector of double)
-0:208 add second child into first child (temp 4-component vector of double)
-0:208 'dvec4v' (temp 4-component vector of double)
-0:208 max (global 4-component vector of double)
-0:208 'dvec4v' (temp 4-component vector of double)
-0:208 'dvec4v' (temp 4-component vector of double)
-0:210 add second child into first child (temp double)
-0:210 'doublev' (temp double)
-0:210 clamp (global double)
-0:210 'doublev' (temp double)
-0:210 'doublev' (temp double)
-0:210 'doublev' (temp double)
-0:211 add second child into first child (temp 2-component vector of double)
-0:211 'dvec2v' (temp 2-component vector of double)
-0:211 clamp (global 2-component vector of double)
-0:211 'dvec2v' (temp 2-component vector of double)
-0:211 'doublev' (temp double)
-0:211 'doublev' (temp double)
-0:212 add second child into first child (temp 3-component vector of double)
-0:212 'dvec3v' (temp 3-component vector of double)
-0:212 clamp (global 3-component vector of double)
-0:212 'dvec3v' (temp 3-component vector of double)
-0:212 'doublev' (temp double)
-0:212 'doublev' (temp double)
-0:213 add second child into first child (temp 4-component vector of double)
-0:213 'dvec4v' (temp 4-component vector of double)
-0:213 clamp (global 4-component vector of double)
-0:213 'dvec4v' (temp 4-component vector of double)
-0:213 'doublev' (temp double)
-0:213 'doublev' (temp double)
-0:214 add second child into first child (temp 2-component vector of double)
-0:214 'dvec2v' (temp 2-component vector of double)
-0:214 clamp (global 2-component vector of double)
-0:214 'dvec2v' (temp 2-component vector of double)
-0:214 'dvec2v' (temp 2-component vector of double)
-0:214 'dvec2v' (temp 2-component vector of double)
-0:215 add second child into first child (temp 3-component vector of double)
-0:215 'dvec3v' (temp 3-component vector of double)
-0:215 clamp (global 3-component vector of double)
-0:215 'dvec3v' (temp 3-component vector of double)
-0:215 'dvec3v' (temp 3-component vector of double)
-0:215 'dvec3v' (temp 3-component vector of double)
-0:216 add second child into first child (temp 4-component vector of double)
-0:216 'dvec4v' (temp 4-component vector of double)
-0:216 clamp (global 4-component vector of double)
-0:216 'dvec4v' (temp 4-component vector of double)
-0:216 'dvec4v' (temp 4-component vector of double)
-0:216 'dvec4v' (temp 4-component vector of double)
-0:218 add second child into first child (temp double)
-0:218 'doublev' (temp double)
-0:218 mix (global double)
-0:218 'doublev' (temp double)
-0:218 'doublev' (temp double)
-0:218 'doublev' (temp double)
-0:219 add second child into first child (temp 2-component vector of double)
-0:219 'dvec2v' (temp 2-component vector of double)
-0:219 mix (global 2-component vector of double)
-0:219 'dvec2v' (temp 2-component vector of double)
-0:219 'dvec2v' (temp 2-component vector of double)
-0:219 'doublev' (temp double)
-0:220 add second child into first child (temp 3-component vector of double)
-0:220 'dvec3v' (temp 3-component vector of double)
-0:220 mix (global 3-component vector of double)
-0:220 'dvec3v' (temp 3-component vector of double)
-0:220 'dvec3v' (temp 3-component vector of double)
-0:220 'doublev' (temp double)
-0:221 add second child into first child (temp 4-component vector of double)
-0:221 'dvec4v' (temp 4-component vector of double)
-0:221 mix (global 4-component vector of double)
-0:221 'dvec4v' (temp 4-component vector of double)
-0:221 'dvec4v' (temp 4-component vector of double)
-0:221 'doublev' (temp double)
-0:222 add second child into first child (temp 2-component vector of double)
-0:222 'dvec2v' (temp 2-component vector of double)
-0:222 mix (global 2-component vector of double)
-0:222 'dvec2v' (temp 2-component vector of double)
-0:222 'dvec2v' (temp 2-component vector of double)
-0:222 'dvec2v' (temp 2-component vector of double)
-0:223 add second child into first child (temp 3-component vector of double)
-0:223 'dvec3v' (temp 3-component vector of double)
-0:223 mix (global 3-component vector of double)
-0:223 'dvec3v' (temp 3-component vector of double)
-0:223 'dvec3v' (temp 3-component vector of double)
-0:223 'dvec3v' (temp 3-component vector of double)
-0:224 add second child into first child (temp 4-component vector of double)
-0:224 'dvec4v' (temp 4-component vector of double)
-0:224 mix (global 4-component vector of double)
-0:224 'dvec4v' (temp 4-component vector of double)
-0:224 'dvec4v' (temp 4-component vector of double)
-0:224 'dvec4v' (temp 4-component vector of double)
-0:225 add second child into first child (temp double)
-0:225 'doublev' (temp double)
-0:225 mix (global double)
-0:225 'doublev' (temp double)
-0:225 'doublev' (temp double)
-0:225 'boolv' (temp bool)
-0:226 add second child into first child (temp 2-component vector of double)
-0:226 'dvec2v' (temp 2-component vector of double)
-0:226 mix (global 2-component vector of double)
-0:226 'dvec2v' (temp 2-component vector of double)
-0:226 'dvec2v' (temp 2-component vector of double)
-0:226 'bvec2v' (temp 2-component vector of bool)
-0:227 add second child into first child (temp 3-component vector of double)
-0:227 'dvec3v' (temp 3-component vector of double)
-0:227 mix (global 3-component vector of double)
-0:227 'dvec3v' (temp 3-component vector of double)
-0:227 'dvec3v' (temp 3-component vector of double)
-0:227 'bvec3v' (temp 3-component vector of bool)
-0:228 add second child into first child (temp 4-component vector of double)
-0:228 'dvec4v' (temp 4-component vector of double)
-0:228 mix (global 4-component vector of double)
-0:228 'dvec4v' (temp 4-component vector of double)
-0:228 'dvec4v' (temp 4-component vector of double)
-0:228 'bvec4v' (temp 4-component vector of bool)
-0:230 add second child into first child (temp double)
-0:230 'doublev' (temp double)
-0:230 step (global double)
-0:230 'doublev' (temp double)
-0:230 'doublev' (temp double)
-0:231 add second child into first child (temp 2-component vector of double)
-0:231 'dvec2v' (temp 2-component vector of double)
-0:231 step (global 2-component vector of double)
-0:231 'dvec2v' (temp 2-component vector of double)
-0:231 'dvec2v' (temp 2-component vector of double)
-0:232 add second child into first child (temp 3-component vector of double)
-0:232 'dvec3v' (temp 3-component vector of double)
-0:232 step (global 3-component vector of double)
-0:232 'dvec3v' (temp 3-component vector of double)
-0:232 'dvec3v' (temp 3-component vector of double)
-0:233 add second child into first child (temp 4-component vector of double)
-0:233 'dvec4v' (temp 4-component vector of double)
-0:233 step (global 4-component vector of double)
-0:233 'dvec4v' (temp 4-component vector of double)
-0:233 'dvec4v' (temp 4-component vector of double)
-0:234 add second child into first child (temp 2-component vector of double)
-0:234 'dvec2v' (temp 2-component vector of double)
-0:234 step (global 2-component vector of double)
-0:234 'doublev' (temp double)
-0:234 'dvec2v' (temp 2-component vector of double)
-0:235 add second child into first child (temp 3-component vector of double)
-0:235 'dvec3v' (temp 3-component vector of double)
-0:235 step (global 3-component vector of double)
-0:235 'doublev' (temp double)
-0:235 'dvec3v' (temp 3-component vector of double)
-0:236 add second child into first child (temp 4-component vector of double)
-0:236 'dvec4v' (temp 4-component vector of double)
-0:236 step (global 4-component vector of double)
-0:236 'doublev' (temp double)
-0:236 'dvec4v' (temp 4-component vector of double)
-0:238 add second child into first child (temp double)
-0:238 'doublev' (temp double)
-0:238 smoothstep (global double)
-0:238 'doublev' (temp double)
-0:238 'doublev' (temp double)
-0:238 'doublev' (temp double)
-0:239 add second child into first child (temp 2-component vector of double)
-0:239 'dvec2v' (temp 2-component vector of double)
-0:239 smoothstep (global 2-component vector of double)
-0:239 'dvec2v' (temp 2-component vector of double)
-0:239 'dvec2v' (temp 2-component vector of double)
-0:239 'dvec2v' (temp 2-component vector of double)
-0:240 add second child into first child (temp 3-component vector of double)
-0:240 'dvec3v' (temp 3-component vector of double)
-0:240 smoothstep (global 3-component vector of double)
-0:240 'dvec3v' (temp 3-component vector of double)
-0:240 'dvec3v' (temp 3-component vector of double)
-0:240 'dvec3v' (temp 3-component vector of double)
-0:241 add second child into first child (temp 4-component vector of double)
-0:241 'dvec4v' (temp 4-component vector of double)
-0:241 smoothstep (global 4-component vector of double)
-0:241 'dvec4v' (temp 4-component vector of double)
-0:241 'dvec4v' (temp 4-component vector of double)
-0:241 'dvec4v' (temp 4-component vector of double)
-0:242 add second child into first child (temp 2-component vector of double)
-0:242 'dvec2v' (temp 2-component vector of double)
-0:242 smoothstep (global 2-component vector of double)
-0:242 'doublev' (temp double)
-0:242 'doublev' (temp double)
-0:242 'dvec2v' (temp 2-component vector of double)
-0:243 add second child into first child (temp 3-component vector of double)
-0:243 'dvec3v' (temp 3-component vector of double)
-0:243 smoothstep (global 3-component vector of double)
-0:243 'doublev' (temp double)
-0:243 'doublev' (temp double)
-0:243 'dvec3v' (temp 3-component vector of double)
-0:244 add second child into first child (temp 4-component vector of double)
-0:244 'dvec4v' (temp 4-component vector of double)
-0:244 smoothstep (global 4-component vector of double)
-0:244 'doublev' (temp double)
-0:244 'doublev' (temp double)
-0:244 'dvec4v' (temp 4-component vector of double)
-0:246 move second child to first child (temp bool)
-0:246 'boolv' (temp bool)
-0:246 isnan (global bool)
-0:246 'doublev' (temp double)
-0:247 move second child to first child (temp 2-component vector of bool)
-0:247 'bvec2v' (temp 2-component vector of bool)
-0:247 isnan (global 2-component vector of bool)
-0:247 'dvec2v' (temp 2-component vector of double)
-0:248 move second child to first child (temp 3-component vector of bool)
-0:248 'bvec3v' (temp 3-component vector of bool)
-0:248 isnan (global 3-component vector of bool)
-0:248 'dvec3v' (temp 3-component vector of double)
-0:249 move second child to first child (temp 4-component vector of bool)
-0:249 'bvec4v' (temp 4-component vector of bool)
-0:249 isnan (global 4-component vector of bool)
-0:249 'dvec4v' (temp 4-component vector of double)
-0:251 move second child to first child (temp bool)
-0:251 'boolv' (temp bool)
-0:251 Test condition and select (temp bool)
-0:251 Condition
-0:251 'boolv' (temp bool)
-0:251 true case
-0:251 isinf (global bool)
-0:251 'doublev' (temp double)
-0:251 false case
-0:251 Constant:
-0:251 false (const bool)
-0:252 move second child to first child (temp 2-component vector of bool)
-0:252 'bvec2v' (temp 2-component vector of bool)
-0:252 Test condition and select (temp 2-component vector of bool)
-0:252 Condition
-0:252 'boolv' (temp bool)
-0:252 true case
-0:252 isinf (global 2-component vector of bool)
-0:252 'dvec2v' (temp 2-component vector of double)
-0:252 false case
-0:252 Constant:
-0:252 false (const bool)
-0:252 false (const bool)
-0:253 move second child to first child (temp 3-component vector of bool)
-0:253 'bvec3v' (temp 3-component vector of bool)
-0:253 Test condition and select (temp 3-component vector of bool)
-0:253 Condition
-0:253 'boolv' (temp bool)
-0:253 true case
-0:253 isinf (global 3-component vector of bool)
-0:253 'dvec3v' (temp 3-component vector of double)
-0:253 false case
-0:253 Constant:
-0:253 false (const bool)
-0:253 false (const bool)
-0:253 false (const bool)
-0:254 move second child to first child (temp 4-component vector of bool)
-0:254 'bvec4v' (temp 4-component vector of bool)
-0:254 Test condition and select (temp 4-component vector of bool)
-0:254 Condition
-0:254 'boolv' (temp bool)
-0:254 true case
-0:254 isinf (global 4-component vector of bool)
-0:254 'dvec4v' (temp 4-component vector of double)
-0:254 false case
-0:254 Constant:
-0:254 false (const bool)
-0:254 false (const bool)
-0:254 false (const bool)
-0:254 false (const bool)
-0:256 add second child into first child (temp double)
-0:256 'doublev' (temp double)
-0:256 length (global double)
-0:256 'doublev' (temp double)
-0:257 add second child into first child (temp double)
-0:257 'doublev' (temp double)
-0:257 length (global double)
-0:257 'dvec2v' (temp 2-component vector of double)
-0:258 add second child into first child (temp double)
-0:258 'doublev' (temp double)
-0:258 length (global double)
-0:258 'dvec3v' (temp 3-component vector of double)
-0:259 add second child into first child (temp double)
-0:259 'doublev' (temp double)
-0:259 length (global double)
-0:259 'dvec4v' (temp 4-component vector of double)
-0:261 add second child into first child (temp double)
-0:261 'doublev' (temp double)
-0:261 distance (global double)
-0:261 'doublev' (temp double)
-0:261 'doublev' (temp double)
-0:262 add second child into first child (temp double)
-0:262 'doublev' (temp double)
-0:262 distance (global double)
-0:262 'dvec2v' (temp 2-component vector of double)
-0:262 'dvec2v' (temp 2-component vector of double)
-0:263 add second child into first child (temp double)
-0:263 'doublev' (temp double)
-0:263 distance (global double)
-0:263 'dvec3v' (temp 3-component vector of double)
-0:263 'dvec3v' (temp 3-component vector of double)
-0:264 add second child into first child (temp double)
-0:264 'doublev' (temp double)
-0:264 distance (global double)
-0:264 'dvec4v' (temp 4-component vector of double)
-0:264 'dvec4v' (temp 4-component vector of double)
-0:266 add second child into first child (temp double)
-0:266 'doublev' (temp double)
-0:266 dot-product (global double)
-0:266 'doublev' (temp double)
-0:266 'doublev' (temp double)
-0:267 add second child into first child (temp double)
-0:267 'doublev' (temp double)
-0:267 dot-product (global double)
-0:267 'dvec2v' (temp 2-component vector of double)
-0:267 'dvec2v' (temp 2-component vector of double)
-0:268 add second child into first child (temp double)
-0:268 'doublev' (temp double)
-0:268 dot-product (global double)
-0:268 'dvec3v' (temp 3-component vector of double)
-0:268 'dvec3v' (temp 3-component vector of double)
-0:269 add second child into first child (temp double)
-0:269 'doublev' (temp double)
-0:269 dot-product (global double)
-0:269 'dvec4v' (temp 4-component vector of double)
-0:269 'dvec4v' (temp 4-component vector of double)
-0:271 add second child into first child (temp 3-component vector of double)
-0:271 'dvec3v' (temp 3-component vector of double)
-0:271 cross-product (global 3-component vector of double)
-0:271 'dvec3v' (temp 3-component vector of double)
-0:271 'dvec3v' (temp 3-component vector of double)
-0:273 add second child into first child (temp double)
-0:273 'doublev' (temp double)
-0:273 normalize (global double)
-0:273 'doublev' (temp double)
-0:274 add second child into first child (temp 2-component vector of double)
-0:274 'dvec2v' (temp 2-component vector of double)
-0:274 normalize (global 2-component vector of double)
-0:274 'dvec2v' (temp 2-component vector of double)
-0:275 add second child into first child (temp 3-component vector of double)
-0:275 'dvec3v' (temp 3-component vector of double)
-0:275 normalize (global 3-component vector of double)
-0:275 'dvec3v' (temp 3-component vector of double)
-0:276 add second child into first child (temp 4-component vector of double)
-0:276 'dvec4v' (temp 4-component vector of double)
-0:276 normalize (global 4-component vector of double)
-0:276 'dvec4v' (temp 4-component vector of double)
-0:278 add second child into first child (temp double)
-0:278 'doublev' (temp double)
-0:278 face-forward (global double)
-0:278 'doublev' (temp double)
-0:278 'doublev' (temp double)
-0:278 'doublev' (temp double)
-0:279 add second child into first child (temp 2-component vector of double)
-0:279 'dvec2v' (temp 2-component vector of double)
-0:279 face-forward (global 2-component vector of double)
-0:279 'dvec2v' (temp 2-component vector of double)
-0:279 'dvec2v' (temp 2-component vector of double)
-0:279 'dvec2v' (temp 2-component vector of double)
-0:280 add second child into first child (temp 3-component vector of double)
-0:280 'dvec3v' (temp 3-component vector of double)
-0:280 face-forward (global 3-component vector of double)
-0:280 'dvec3v' (temp 3-component vector of double)
-0:280 'dvec3v' (temp 3-component vector of double)
-0:280 'dvec3v' (temp 3-component vector of double)
-0:281 add second child into first child (temp 4-component vector of double)
-0:281 'dvec4v' (temp 4-component vector of double)
-0:281 face-forward (global 4-component vector of double)
-0:281 'dvec4v' (temp 4-component vector of double)
-0:281 'dvec4v' (temp 4-component vector of double)
-0:281 'dvec4v' (temp 4-component vector of double)
-0:283 add second child into first child (temp double)
-0:283 'doublev' (temp double)
-0:283 reflect (global double)
-0:283 'doublev' (temp double)
-0:283 'doublev' (temp double)
-0:284 add second child into first child (temp 2-component vector of double)
-0:284 'dvec2v' (temp 2-component vector of double)
-0:284 reflect (global 2-component vector of double)
-0:284 'dvec2v' (temp 2-component vector of double)
-0:284 'dvec2v' (temp 2-component vector of double)
-0:285 add second child into first child (temp 3-component vector of double)
-0:285 'dvec3v' (temp 3-component vector of double)
-0:285 reflect (global 3-component vector of double)
-0:285 'dvec3v' (temp 3-component vector of double)
-0:285 'dvec3v' (temp 3-component vector of double)
-0:286 add second child into first child (temp 4-component vector of double)
-0:286 'dvec4v' (temp 4-component vector of double)
-0:286 reflect (global 4-component vector of double)
-0:286 'dvec4v' (temp 4-component vector of double)
-0:286 'dvec4v' (temp 4-component vector of double)
-0:288 add second child into first child (temp double)
-0:288 'doublev' (temp double)
-0:288 refract (global double)
-0:288 'doublev' (temp double)
-0:288 'doublev' (temp double)
-0:288 'doublev' (temp double)
-0:289 add second child into first child (temp 2-component vector of double)
-0:289 'dvec2v' (temp 2-component vector of double)
-0:289 refract (global 2-component vector of double)
-0:289 'dvec2v' (temp 2-component vector of double)
-0:289 'dvec2v' (temp 2-component vector of double)
-0:289 'doublev' (temp double)
-0:290 add second child into first child (temp 3-component vector of double)
-0:290 'dvec3v' (temp 3-component vector of double)
-0:290 refract (global 3-component vector of double)
-0:290 'dvec3v' (temp 3-component vector of double)
-0:290 'dvec3v' (temp 3-component vector of double)
-0:290 'doublev' (temp double)
-0:291 add second child into first child (temp 4-component vector of double)
-0:291 'dvec4v' (temp 4-component vector of double)
-0:291 refract (global 4-component vector of double)
-0:291 'dvec4v' (temp 4-component vector of double)
-0:291 'dvec4v' (temp 4-component vector of double)
-0:291 'doublev' (temp double)
-0:293 Sequence
-0:293 move second child to first child (temp 2X2 matrix of double)
-0:293 'dmat2v' (temp 2X2 matrix of double)
-0:293 outer product (global 2X2 matrix of double)
-0:293 'dvec2v' (temp 2-component vector of double)
-0:293 'dvec2v' (temp 2-component vector of double)
-0:294 Sequence
-0:294 move second child to first child (temp 3X3 matrix of double)
-0:294 'dmat3v' (temp 3X3 matrix of double)
-0:294 outer product (global 3X3 matrix of double)
-0:294 'dvec3v' (temp 3-component vector of double)
-0:294 'dvec3v' (temp 3-component vector of double)
-0:295 Sequence
-0:295 move second child to first child (temp 4X4 matrix of double)
-0:295 'dmat4v' (temp 4X4 matrix of double)
-0:295 outer product (global 4X4 matrix of double)
-0:295 'dvec4v' (temp 4-component vector of double)
-0:295 'dvec4v' (temp 4-component vector of double)
-0:296 Sequence
-0:296 move second child to first child (temp 2X3 matrix of double)
-0:296 'dmat2x3v' (temp 2X3 matrix of double)
-0:296 outer product (global 2X3 matrix of double)
-0:296 'dvec3v' (temp 3-component vector of double)
-0:296 'dvec2v' (temp 2-component vector of double)
-0:297 Sequence
-0:297 move second child to first child (temp 3X2 matrix of double)
-0:297 'dmat3x2v' (temp 3X2 matrix of double)
-0:297 outer product (global 3X2 matrix of double)
-0:297 'dvec2v' (temp 2-component vector of double)
-0:297 'dvec3v' (temp 3-component vector of double)
-0:298 Sequence
-0:298 move second child to first child (temp 2X4 matrix of double)
-0:298 'dmat2x4v' (temp 2X4 matrix of double)
-0:298 outer product (global 2X4 matrix of double)
-0:298 'dvec4v' (temp 4-component vector of double)
-0:298 'dvec2v' (temp 2-component vector of double)
-0:299 Sequence
-0:299 move second child to first child (temp 4X2 matrix of double)
-0:299 'dmat4x2v' (temp 4X2 matrix of double)
-0:299 outer product (global 4X2 matrix of double)
-0:299 'dvec2v' (temp 2-component vector of double)
-0:299 'dvec4v' (temp 4-component vector of double)
-0:300 Sequence
-0:300 move second child to first child (temp 3X4 matrix of double)
-0:300 'dmat3x4v' (temp 3X4 matrix of double)
-0:300 outer product (global 3X4 matrix of double)
-0:300 'dvec4v' (temp 4-component vector of double)
-0:300 'dvec3v' (temp 3-component vector of double)
-0:301 Sequence
-0:301 move second child to first child (temp 4X3 matrix of double)
-0:301 'dmat4x3v' (temp 4X3 matrix of double)
-0:301 outer product (global 4X3 matrix of double)
-0:301 'dvec3v' (temp 3-component vector of double)
-0:301 'dvec4v' (temp 4-component vector of double)
-0:303 matrix mult second child into first child (temp 2X2 matrix of double)
-0:303 'dmat2v' (temp 2X2 matrix of double)
-0:303 component-wise multiply (global 2X2 matrix of double)
-0:303 'dmat2v' (temp 2X2 matrix of double)
-0:303 'dmat2v' (temp 2X2 matrix of double)
-0:304 matrix mult second child into first child (temp 3X3 matrix of double)
-0:304 'dmat3v' (temp 3X3 matrix of double)
-0:304 component-wise multiply (global 3X3 matrix of double)
-0:304 'dmat3v' (temp 3X3 matrix of double)
-0:304 'dmat3v' (temp 3X3 matrix of double)
-0:305 matrix mult second child into first child (temp 4X4 matrix of double)
-0:305 'dmat4v' (temp 4X4 matrix of double)
-0:305 component-wise multiply (global 4X4 matrix of double)
-0:305 'dmat4v' (temp 4X4 matrix of double)
-0:305 'dmat4v' (temp 4X4 matrix of double)
-0:306 move second child to first child (temp 2X3 matrix of double)
-0:306 'dmat2x3v' (temp 2X3 matrix of double)
-0:306 component-wise multiply (global 2X3 matrix of double)
-0:306 'dmat2x3v' (temp 2X3 matrix of double)
-0:306 'dmat2x3v' (temp 2X3 matrix of double)
-0:307 move second child to first child (temp 2X4 matrix of double)
-0:307 'dmat2x4v' (temp 2X4 matrix of double)
-0:307 component-wise multiply (global 2X4 matrix of double)
-0:307 'dmat2x4v' (temp 2X4 matrix of double)
-0:307 'dmat2x4v' (temp 2X4 matrix of double)
-0:308 move second child to first child (temp 3X2 matrix of double)
-0:308 'dmat3x2v' (temp 3X2 matrix of double)
-0:308 component-wise multiply (global 3X2 matrix of double)
-0:308 'dmat3x2v' (temp 3X2 matrix of double)
-0:308 'dmat3x2v' (temp 3X2 matrix of double)
-0:309 move second child to first child (temp 3X4 matrix of double)
-0:309 'dmat3x4v' (temp 3X4 matrix of double)
-0:309 component-wise multiply (global 3X4 matrix of double)
-0:309 'dmat3x4v' (temp 3X4 matrix of double)
-0:309 'dmat3x4v' (temp 3X4 matrix of double)
-0:310 move second child to first child (temp 4X2 matrix of double)
-0:310 'dmat4x2v' (temp 4X2 matrix of double)
-0:310 component-wise multiply (global 4X2 matrix of double)
-0:310 'dmat4x2v' (temp 4X2 matrix of double)
-0:310 'dmat4x2v' (temp 4X2 matrix of double)
-0:311 move second child to first child (temp 4X3 matrix of double)
-0:311 'dmat4x3v' (temp 4X3 matrix of double)
-0:311 component-wise multiply (global 4X3 matrix of double)
-0:311 'dmat4x3v' (temp 4X3 matrix of double)
-0:311 'dmat4x3v' (temp 4X3 matrix of double)
-0:313 matrix mult second child into first child (temp 2X2 matrix of double)
-0:313 'dmat2v' (temp 2X2 matrix of double)
-0:313 transpose (global 2X2 matrix of double)
-0:313 'dmat2v' (temp 2X2 matrix of double)
-0:314 matrix mult second child into first child (temp 3X3 matrix of double)
-0:314 'dmat3v' (temp 3X3 matrix of double)
-0:314 transpose (global 3X3 matrix of double)
-0:314 'dmat3v' (temp 3X3 matrix of double)
-0:315 matrix mult second child into first child (temp 4X4 matrix of double)
-0:315 'dmat4v' (temp 4X4 matrix of double)
-0:315 transpose (global 4X4 matrix of double)
-0:315 'dmat4v' (temp 4X4 matrix of double)
-0:316 move second child to first child (temp 2X3 matrix of double)
-0:316 'dmat2x3v' (temp 2X3 matrix of double)
-0:316 transpose (global 2X3 matrix of double)
-0:316 'dmat3x2v' (temp 3X2 matrix of double)
-0:317 move second child to first child (temp 3X2 matrix of double)
-0:317 'dmat3x2v' (temp 3X2 matrix of double)
-0:317 transpose (global 3X2 matrix of double)
-0:317 'dmat2x3v' (temp 2X3 matrix of double)
-0:318 move second child to first child (temp 2X4 matrix of double)
-0:318 'dmat2x4v' (temp 2X4 matrix of double)
-0:318 transpose (global 2X4 matrix of double)
-0:318 'dmat4x2v' (temp 4X2 matrix of double)
-0:319 move second child to first child (temp 4X2 matrix of double)
-0:319 'dmat4x2v' (temp 4X2 matrix of double)
-0:319 transpose (global 4X2 matrix of double)
-0:319 'dmat2x4v' (temp 2X4 matrix of double)
-0:320 move second child to first child (temp 3X4 matrix of double)
-0:320 'dmat3x4v' (temp 3X4 matrix of double)
-0:320 transpose (global 3X4 matrix of double)
-0:320 'dmat4x3v' (temp 4X3 matrix of double)
-0:321 move second child to first child (temp 4X3 matrix of double)
-0:321 'dmat4x3v' (temp 4X3 matrix of double)
-0:321 transpose (global 4X3 matrix of double)
-0:321 'dmat3x4v' (temp 3X4 matrix of double)
-0:323 add second child into first child (temp double)
-0:323 'doublev' (temp double)
-0:323 determinant (global double)
-0:323 'dmat2v' (temp 2X2 matrix of double)
-0:324 add second child into first child (temp double)
-0:324 'doublev' (temp double)
-0:324 determinant (global double)
-0:324 'dmat3v' (temp 3X3 matrix of double)
-0:325 add second child into first child (temp double)
-0:325 'doublev' (temp double)
-0:325 determinant (global double)
-0:325 'dmat4v' (temp 4X4 matrix of double)
-0:327 matrix mult second child into first child (temp 2X2 matrix of double)
-0:327 'dmat2v' (temp 2X2 matrix of double)
-0:327 inverse (global 2X2 matrix of double)
-0:327 'dmat2v' (temp 2X2 matrix of double)
-0:328 matrix mult second child into first child (temp 3X3 matrix of double)
-0:328 'dmat3v' (temp 3X3 matrix of double)
-0:328 inverse (global 3X3 matrix of double)
-0:328 'dmat3v' (temp 3X3 matrix of double)
-0:329 matrix mult second child into first child (temp 4X4 matrix of double)
-0:329 'dmat4v' (temp 4X4 matrix of double)
-0:329 inverse (global 4X4 matrix of double)
-0:329 'dmat4v' (temp 4X4 matrix of double)
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})
diff --git a/Test/baseResults/400.tesc.out b/Test/baseResults/400.tesc.out
index 58a8a32..f3e7b8b 100644
--- a/Test/baseResults/400.tesc.out
+++ b/Test/baseResults/400.tesc.out
@@ -364,35 +364,6 @@
0:56 Barrier (global void)
0:59 Branch: Return
0:61 Barrier (global void)
-0:67 Function Definition: foo( (global void)
-0:67 Function Parameters:
-0:69 Sequence
-0:69 gl_PointSize: direct index for structure (out float PointSize)
-0:69 direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
-0:69 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
-0:69 Constant:
-0:69 4 (const int)
-0:69 Constant:
-0:69 1 (const int)
-0:71 Barrier (global void)
-0:91 Function Definition: foop( (global void)
-0:91 Function Parameters:
-0:? Sequence
-0:95 multiply second child into first child (temp 3-component vector of float)
-0:95 'pv3' (noContraction temp 3-component vector of float)
-0:95 'pv3' (noContraction temp 3-component vector of float)
-0:96 move second child to first child (temp 3-component vector of float)
-0:96 'pv3' (noContraction temp 3-component vector of float)
-0:96 fma (global 3-component vector of float)
-0:96 'pv3' (noContraction temp 3-component vector of float)
-0:96 'pv3' (noContraction temp 3-component vector of float)
-0:96 'pv3' (noContraction temp 3-component vector of float)
-0:97 move second child to first child (temp double)
-0:97 'd' (noContraction temp double)
-0:97 fma (global double)
-0:97 'd' (noContraction temp double)
-0:97 'd' (noContraction temp double)
-0:97 'd' (noContraction temp double)
0:? Linker Objects
0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance})
0:? 'outa' (global 4-element array of int)
diff --git a/Test/baseResults/400.vert.out b/Test/baseResults/400.vert.out
index 2b0d63d..bf07887 100755
--- a/Test/baseResults/400.vert.out
+++ b/Test/baseResults/400.vert.out
@@ -340,11 +340,6 @@
0:20 '' (in uint)
0:20 '' (in float)
0:20 '' (in double)
-0:21 Function Definition: ftd(f1;d1;d1; (global void)
-0:21 Function Parameters:
-0:21 '' (in float)
-0:21 '' (in double)
-0:21 '' (in double)
0:23 Function Definition: main( (global void)
0:23 Function Parameters:
0:? Sequence
@@ -552,19 +547,6 @@
0:91 'f' (temp float)
0:91 Convert float to double (temp double)
0:91 'f' (temp float)
-0:97 Function Definition: tf( (global void)
-0:97 Function Parameters:
-0:? Sequence
-0:104 Function Call: itf(i1;f1;i1; (global void)
-0:104 'i' (temp int)
-0:104 Convert int to float (temp float)
-0:104 'i' (temp int)
-0:104 'i' (temp int)
-0:105 Function Call: itf(i1;f1;i1; (global void)
-0:105 'i' (temp int)
-0:105 Convert uint to float (temp float)
-0:105 'u' (temp uint)
-0:105 'i' (temp int)
0:? Linker Objects
0:? 'd' (in double)
0:? 'd3' (in 3-component vector of double)
diff --git a/Test/baseResults/410.geom.out b/Test/baseResults/410.geom.out
index 6f7252c..aa421db 100644
--- a/Test/baseResults/410.geom.out
+++ b/Test/baseResults/410.geom.out
@@ -77,35 +77,6 @@
0:5 'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
0:5 Constant:
0:5 7 (const int)
-0:28 Function Definition: foo( (global void)
-0:28 Function Parameters:
-0:30 Sequence
-0:30 Sequence
-0:30 move second child to first child (temp float)
-0:30 'p' (temp float)
-0:30 gl_PointSize: direct index for structure (in float PointSize)
-0:30 direct index (temp block{in float PointSize gl_PointSize})
-0:30 'gl_in' (in 2-element array of block{in float PointSize gl_PointSize})
-0:30 Constant:
-0:30 1 (const int)
-0:30 Constant:
-0:30 0 (const int)
-0:31 move second child to first child (temp float)
-0:31 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)
-0:31 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
-0:31 Constant:
-0:31 1 (const uint)
-0:31 'p' (temp float)
-0:33 gl_Position: direct index for structure (layout(stream=0 ) gl_Position void Position)
-0:33 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
-0:33 Constant:
-0:33 0 (const uint)
-0:36 Function Definition: foo5( (global float)
-0:36 Function Parameters:
-0:38 Sequence
-0:38 Branch: Return with expression
-0:38 Constant:
-0:38 4.000000
0:? Linker Objects
0:? 'gl_in' (in 2-element array of block{in float PointSize gl_PointSize})
0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
diff --git a/Test/baseResults/420.geom.out b/Test/baseResults/420.geom.out
index 625feea..ca459a6 100644
--- a/Test/baseResults/420.geom.out
+++ b/Test/baseResults/420.geom.out
@@ -142,111 +142,6 @@
input primitive = triangles
output primitive = none
ERROR: node is still EOpNull!
-0:7 Function Definition: foo( (global void)
-0:7 Function Parameters:
-0:9 Sequence
-0:9 Constant:
-0:9 1 (const int)
-0:10 gl_Position: direct index for structure (in 4-component vector of float Position)
-0:10 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
-0:10 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
-0:10 Constant:
-0:10 1 (const int)
-0:10 Constant:
-0:10 0 (const int)
-0:11 gl_Position: direct index for structure (in 4-component vector of float Position)
-0:11 indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
-0:11 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
-0:11 'i' (global int)
-0:11 Constant:
-0:11 0 (const int)
-0:18 Function Definition: foo3( (global void)
-0:18 Function Parameters:
-0:20 Sequence
-0:20 Constant:
-0:20 3 (const int)
-0:21 gl_Position: direct index for structure (in 4-component vector of float Position)
-0:21 indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
-0:21 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
-0:21 'i' (global int)
-0:21 Constant:
-0:21 0 (const int)
-0:22 Constant:
-0:22 3 (const int)
-0:29 Function Definition: foo4( (global void)
-0:29 Function Parameters:
-0:? Sequence
-0:40 Sequence
-0:40 move second child to first child (temp 4-component vector of float)
-0:40 'v' (temp 4-component vector of float)
-0:40 textureGatherOffset (global 4-component vector of float)
-0:40 's2D' (uniform sampler2D)
-0:40 direct index (temp 2-component vector of float)
-0:40 'coord' (in 3-element array of 2-component vector of float)
-0:40 Constant:
-0:40 0 (const int)
-0:40 vector swizzle (temp 2-component vector of int)
-0:40 indirect index (temp 2-component vector of int)
-0:40 Constant:
-0:40 0 (const int)
-0:40 1 (const int)
-0:40 1 (const int)
-0:40 -2 (const int)
-0:40 0 (const int)
-0:40 3 (const int)
-0:40 -3 (const int)
-0:40 0 (const int)
-0:40 2 (const int)
-0:40 1 (const int)
-0:40 'i' (global int)
-0:40 Sequence
-0:40 Constant:
-0:40 0 (const int)
-0:40 Constant:
-0:40 1 (const int)
-0:42 move second child to first child (temp 2-component vector of int)
-0:42 vector swizzle (temp 2-component vector of int)
-0:42 indirect index (temp 2-component vector of int)
-0:42 Constant:
-0:42 0 (const int)
-0:42 1 (const int)
-0:42 1 (const int)
-0:42 -2 (const int)
-0:42 0 (const int)
-0:42 3 (const int)
-0:42 -3 (const int)
-0:42 0 (const int)
-0:42 2 (const int)
-0:42 1 (const int)
-0:42 'i' (global int)
-0:42 Sequence
-0:42 Constant:
-0:42 0 (const int)
-0:42 Constant:
-0:42 1 (const int)
-0:42 Constant:
-0:42 3 (const int)
-0:42 3 (const int)
-0:43 move second child to first child (temp float)
-0:43 direct index (temp float)
-0:43 'v4' (uniform 4-component vector of float)
-0:43 Constant:
-0:43 0 (const int)
-0:43 Constant:
-0:43 3.200000
-0:44 vector swizzle (temp 2-component vector of float)
-0:44 'v4' (uniform 4-component vector of float)
-0:44 Sequence
-0:44 Constant:
-0:44 0 (const int)
-0:44 Constant:
-0:44 1 (const int)
-0:52 Function Definition: foo5( (global float)
-0:52 Function Parameters:
-0:54 Sequence
-0:54 Branch: Return with expression
-0:54 Convert int to float (temp float)
-0:54 'i' (global int)
0:? Linker Objects
0:? 'i' (global int)
0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
diff --git a/Test/baseResults/420.tesc.out b/Test/baseResults/420.tesc.out
index 594e130..30839ec 100644
--- a/Test/baseResults/420.tesc.out
+++ b/Test/baseResults/420.tesc.out
@@ -184,41 +184,6 @@
0:26 indirect index (temp block{out 4-component vector of float Position gl_Position})
0:26 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
0:26 'gl_InvocationID' (in int InvocationID)
-0:34 Function Definition: foo( (global void)
-0:34 Function Parameters:
-0:36 Sequence
-0:36 Test condition and select (temp void)
-0:36 Condition
-0:36 logical-or (temp bool)
-0:36 Compare Not Equal (temp bool)
-0:36 Constant:
-0:36 -0.625000
-0:36 -0.500000
-0:36 -0.375000
-0:36 -0.250000
-0:36 -0.375000
-0:36 -0.250000
-0:36 -0.125000
-0:36 0.000000
-0:36 direct index (layout(location=0 ) temp 2X4 matrix of double)
-0:36 'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
-0:36 Constant:
-0:36 0 (const int)
-0:37 Compare Not Equal (temp bool)
-0:37 Constant:
-0:37 0.375000
-0:37 0.500000
-0:37 0.625000
-0:37 0.750000
-0:37 0.625000
-0:37 0.750000
-0:37 0.875000
-0:37 -0.625000
-0:37 direct index (layout(location=12 ) temp 2X4 matrix of double)
-0:37 'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
-0:37 Constant:
-0:37 0 (const int)
-0:36 true case is null
0:? Linker Objects
0:? 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
0:? 'a' (out 3-element array of int)
diff --git a/Test/baseResults/420.vert.out b/Test/baseResults/420.vert.out
index 5636e7a..a70b44e 100644
--- a/Test/baseResults/420.vert.out
+++ b/Test/baseResults/420.vert.out
@@ -310,19 +310,6 @@
Shader version: 420
ERROR: node is still EOpNull!
-0:20 Function Definition: foo( (const int)
-0:20 Function Parameters:
-0:? Sequence
-0:23 Sequence
-0:23 move second child to first child (temp int)
-0:23 'b' (const (read only) int)
-0:23 'anonconst' (global int)
-0:25 Sequence
-0:25 move second child to first child (temp int)
-0:25 'd' (const (read only) int)
-0:25 'b' (const (read only) int)
-0:29 Branch: Return with expression
-0:29 'b' (const (read only) int)
0:32 Function Definition: main( (global void)
0:32 Function Parameters:
0:? Sequence
@@ -342,164 +329,6 @@
0:42 Constant:
0:42 true (const bool)
0:42 No loop body
-0:50 Function Definition: bar(vf4; (global void)
-0:50 Function Parameters:
-0:50 'v' (volatile in 4-component vector of float)
-0:? Sequence
-0:53 's' (temp int)
-0:54 's' (temp int)
-0:55 Test condition and select (temp void)
-0:55 Condition
-0:55 Compare Equal (temp bool)
-0:55 direct index (temp float)
-0:55 direct index (temp 4-component vector of float)
-0:55 'bad' (in 10-element array of 4-component vector of float)
-0:55 Constant:
-0:55 0 (const int)
-0:55 Constant:
-0:55 0 (const int)
-0:55 Constant:
-0:55 4.200000
-0:55 true case is null
-0:57 Test condition and select (temp void)
-0:57 Condition
-0:57 Constant:
-0:57 true (const bool)
-0:57 true case
-0:58 move second child to first child (temp 4-component vector of float)
-0:58 'badorder3' (flat out 4-component vector of float)
-0:58 direct index (temp 4-component vector of float)
-0:58 'bad' (in 10-element array of 4-component vector of float)
-0:58 Constant:
-0:58 0 (const int)
-0:61 Sequence
-0:61 move second child to first child (temp 3-component vector of float)
-0:61 'smeared' (temp 3-component vector of float)
-0:61 Construct vec3 (temp 3-component vector of float)
-0:61 'f' (temp float)
-0:62 'f' (temp float)
-0:63 'f' (temp float)
-0:88 Function Definition: bar23444( (global void)
-0:88 Function Parameters:
-0:? Sequence
-0:91 Sequence
-0:91 move second child to first child (temp float)
-0:91 'a1' (temp float)
-0:91 direct index (temp float)
-0:91 direct index (temp 3-component vector of float)
-0:91 'm43' (temp 4X3 matrix of float)
-0:91 Constant:
-0:91 3 (const int)
-0:91 Constant:
-0:91 1 (const int)
-0:93 Sequence
-0:93 move second child to first child (temp int)
-0:93 'a2' (temp int)
-0:93 Constant:
-0:93 4 (const int)
-0:94 add second child into first child (temp int)
-0:94 'a2' (temp int)
-0:94 Constant:
-0:94 3 (const int)
-0:95 add second child into first child (temp int)
-0:95 'a2' (temp int)
-0:95 Constant:
-0:95 3 (const int)
-0:96 Sequence
-0:96 move second child to first child (temp float)
-0:96 'b' (const (read only) float)
-0:96 component-wise multiply (temp float)
-0:96 Constant:
-0:96 2.000000
-0:96 'a1' (temp float)
-0:97 Sequence
-0:97 move second child to first child (temp int)
-0:97 'a' (temp int)
-0:97 Constant:
-0:97 -1 (const int)
-0:109 Function Definition: qux( (global void)
-0:109 Function Parameters:
-0:111 Sequence
-0:111 Sequence
-0:111 move second child to first child (temp int)
-0:111 'i' (temp int)
-0:111 aoeu: direct index for structure (layout(column_major shared ) uniform int)
-0:111 'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
-0:111 Constant:
-0:111 0 (const uint)
-0:112 imageAtomicCompSwap (global int)
-0:112 'iimg2D' (layout(r32i ) uniform iimage2D)
-0:112 Construct ivec2 (temp 2-component vector of int)
-0:112 'i' (temp int)
-0:112 'i' (temp int)
-0:112 'i' (temp int)
-0:112 'i' (temp int)
-0:113 imageAtomicAdd (global uint)
-0:113 'uimg2D' (layout(r32ui ) uniform uimage2D)
-0:113 Construct ivec2 (temp 2-component vector of int)
-0:113 'i' (temp int)
-0:113 'i' (temp int)
-0:113 Convert int to uint (temp uint)
-0:113 'i' (temp int)
-0:114 imageAtomicMin (global int)
-0:114 'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)
-0:114 Construct ivec2 (temp 2-component vector of int)
-0:114 'i' (temp int)
-0:114 'i' (temp int)
-0:114 'i' (temp int)
-0:115 Constant:
-0:115 0.000000
-0:116 Sequence
-0:116 move second child to first child (temp 4-component vector of int)
-0:116 'pos' (temp 4-component vector of int)
-0:116 imageLoad (global 4-component vector of int)
-0:116 'iimg2D' (layout(r32i ) uniform iimage2D)
-0:116 Construct ivec2 (temp 2-component vector of int)
-0:116 'i' (temp int)
-0:116 'i' (temp int)
-0:117 Sequence
-0:117 move second child to first child (temp 4-component vector of float)
-0:117 'col' (temp 4-component vector of float)
-0:117 imageLoad (global 4-component vector of float)
-0:117 'img2DMS' (uniform image2DMS)
-0:117 Construct ivec2 (temp 2-component vector of int)
-0:117 'i' (temp int)
-0:117 'i' (temp int)
-0:117 'i' (temp int)
-0:118 imageStore (global void)
-0:118 'img2DMSWO' (writeonly uniform image2DMS)
-0:118 Construct ivec2 (temp 2-component vector of int)
-0:118 'i' (temp int)
-0:118 'i' (temp int)
-0:118 'i' (temp int)
-0:118 Constant:
-0:118 0.000000
-0:118 0.000000
-0:118 0.000000
-0:118 0.000000
-0:119 imageLoad (global 4-component vector of float)
-0:119 'img2DMSWO' (writeonly uniform image2DMS)
-0:119 Construct ivec2 (temp 2-component vector of int)
-0:119 'i' (temp int)
-0:119 'i' (temp int)
-0:119 'i' (temp int)
-0:125 Function Definition: passr(iI21; (global void)
-0:125 Function Parameters:
-0:125 'image' (coherent readonly in iimage2D)
-0:132 Function Definition: passrc( (global void)
-0:132 Function Parameters:
-0:134 Sequence
-0:134 Function Call: passr(iI21; (global void)
-0:134 'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)
-0:135 Function Call: passr(iI21; (global void)
-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)
diff --git a/Test/baseResults/420_size_gl_in.geom.out b/Test/baseResults/420_size_gl_in.geom.out
index 28d09a6..54ec99e 100644
--- a/Test/baseResults/420_size_gl_in.geom.out
+++ b/Test/baseResults/420_size_gl_in.geom.out
@@ -49,26 +49,6 @@
input primitive = triangles
output primitive = none
ERROR: node is still EOpNull!
-0:11 Function Definition: foo( (global void)
-0:11 Function Parameters:
-0:13 Sequence
-0:13 Constant:
-0:13 3 (const int)
-0:14 gl_Position: direct index for structure (in 4-component vector of float Position)
-0:14 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
-0:14 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
-0:14 Constant:
-0:14 1 (const int)
-0:14 Constant:
-0:14 0 (const int)
-0:15 Constant:
-0:15 3 (const int)
-0:16 gl_Position: direct index for structure (in 4-component vector of float Position)
-0:16 indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
-0:16 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
-0:16 'i' (global int)
-0:16 Constant:
-0:16 0 (const int)
0:? Linker Objects
0:? 'i' (global int)
0:? 'colorun' (in 3-element array of 4-component vector of float)
diff --git a/Test/baseResults/430.comp.out b/Test/baseResults/430.comp.out
index aecf42f..ed61346 100644
--- a/Test/baseResults/430.comp.out
+++ b/Test/baseResults/430.comp.out
@@ -184,77 +184,6 @@
0:39 10 (const int)
0:39 true case
0:40 Barrier (global void)
-0:63 Function Definition: foo( (global void)
-0:63 Function Parameters:
-0:65 Sequence
-0:65 move second child to first child (temp float)
-0:65 direct index (layout(column_major shared ) temp float)
-0:65 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
-0:65 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
-0:65 Constant:
-0:65 1 (const int)
-0:65 Constant:
-0:65 2 (const int)
-0:65 Constant:
-0:65 4.700000
-0:66 array length (temp int)
-0:66 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
-0:66 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
-0:66 Constant:
-0:66 1 (const int)
-0:67 Barrier (global void)
-0:72 Function Definition: fooaoeu( (global void)
-0:72 Function Parameters:
-0:73 Sequence
-0:73 Sequence
-0:73 move second child to first child (temp 2-component vector of int)
-0:73 'storePos' (temp 2-component vector of int)
-0:73 Convert uint to int (temp 2-component vector of int)
-0:73 vector swizzle (temp 2-component vector of uint)
-0:73 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)
-0:73 Sequence
-0:73 Constant:
-0:73 0 (const int)
-0:73 Constant:
-0:73 1 (const int)
-0:74 Sequence
-0:74 move second child to first child (temp double)
-0:74 'localCoef' (temp double)
-0:74 Convert float to double (temp double)
-0:74 length (global float)
-0:74 divide (temp 2-component vector of float)
-0:74 Convert int to float (temp 2-component vector of float)
-0:74 subtract (temp 2-component vector of int)
-0:74 Convert uint to int (temp 2-component vector of int)
-0:74 vector swizzle (temp 2-component vector of uint)
-0:74 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)
-0:74 Sequence
-0:74 Constant:
-0:74 0 (const int)
-0:74 Constant:
-0:74 1 (const int)
-0:74 Constant:
-0:74 8 (const int)
-0:74 Constant:
-0:74 8.000000
-0:75 Sequence
-0:75 move second child to first child (temp 4-component vector of double)
-0:75 'aa' (temp 4-component vector of double)
-0:75 Constant:
-0:75 0.400000
-0:75 0.200000
-0:75 0.300000
-0:75 0.400000
-0:76 Sequence
-0:76 move second child to first child (temp double)
-0:76 'globalCoef' (temp double)
-0:76 Constant:
-0:76 1.000000
-0:78 Sequence
-0:78 move second child to first child (temp double)
-0:78 'di' (temp double)
-0:78 Convert int to double (temp double)
-0:78 'i' (temp int)
0:? Linker Objects
0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
0:? 2 (const uint)
diff --git a/Test/baseResults/430.vert.out b/Test/baseResults/430.vert.out
index 676fcd3..8cd1156 100644
--- a/Test/baseResults/430.vert.out
+++ b/Test/baseResults/430.vert.out
@@ -275,135 +275,6 @@
Requested GL_ARB_shader_texture_image_samples
in xfb mode
ERROR: node is still EOpNull!
-0:14 Function Definition: foo( (global void)
-0:14 Function Parameters:
-0:16 Sequence
-0:16 move second child to first child (temp float)
-0:16 direct index (temp float ClipDistance)
-0:16 gl_ClipDistance: direct index for structure (out 17-element array of float ClipDistance)
-0:16 'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })
-0:16 Constant:
-0:16 2 (const uint)
-0:16 Constant:
-0:16 2 (const int)
-0:16 Constant:
-0:16 3.700000
-0:31 Function Definition: foo3(vf4;vf3;vf2;vf3; (global void)
-0:31 Function Parameters:
-0:31 'v4' (in 4-component vector of float)
-0:31 'v3' (volatile in 3-component vector of float)
-0:31 'v2' (in 2-component vector of float)
-0:31 'cv3' (in 3-component vector of float)
-0:148 Function Definition: fooBarrier( (global void)
-0:148 Function Parameters:
-0:150 Sequence
-0:150 Constant:
-0:150 0.000000
-0:151 MemoryBarrier (global void)
-0:152 MemoryBarrierAtomicCounter (global void)
-0:153 MemoryBarrierBuffer (global void)
-0:154 Constant:
-0:154 0.000000
-0:155 MemoryBarrierImage (global void)
-0:156 Constant:
-0:156 0.000000
-0:166 Function Definition: fooq( (global void)
-0:166 Function Parameters:
-0:168 Sequence
-0:168 Sequence
-0:168 move second child to first child (temp int)
-0:168 's' (temp int)
-0:168 textureSamples (global int)
-0:168 's2dms' (uniform sampler2DMS)
-0:169 add second child into first child (temp int)
-0:169 's' (temp int)
-0:169 textureSamples (global int)
-0:169 'us2dmsa' (uniform usampler2DMSArray)
-0:170 add second child into first child (temp int)
-0:170 's' (temp int)
-0:170 imageQuerySamples (global int)
-0:170 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
-0:171 add second child into first child (temp int)
-0:171 's' (temp int)
-0:171 imageQuerySamples (global int)
-0:171 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
-0:176 Function Definition: fooq2( (global void)
-0:176 Function Parameters:
-0:178 Sequence
-0:178 Sequence
-0:178 move second child to first child (temp int)
-0:178 's' (temp int)
-0:178 textureSamples (global int)
-0:178 's2dms' (uniform sampler2DMS)
-0:179 add second child into first child (temp int)
-0:179 's' (temp int)
-0:179 textureSamples (global int)
-0:179 'us2dmsa' (uniform usampler2DMSArray)
-0:180 add second child into first child (temp int)
-0:180 's' (temp int)
-0:180 imageQuerySamples (global int)
-0:180 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
-0:181 add second child into first child (temp int)
-0:181 's' (temp int)
-0:181 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)
diff --git a/Test/baseResults/430AofA.frag.out b/Test/baseResults/430AofA.frag.out
index f3bbfb8..fd3892d 100644
--- a/Test/baseResults/430AofA.frag.out
+++ b/Test/baseResults/430AofA.frag.out
@@ -766,34 +766,6 @@
0:84 5.000000
0:85 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
0:85 'u' (temp 5-element array of 7-element array of float)
-0:88 Function Definition: foo3( (global void)
-0:88 Function Parameters:
-0:? Sequence
-0:91 Constant:
-0:91 1 (const int)
-0:92 move second child to first child (temp float)
-0:92 direct index (temp float)
-0:92 direct index (temp 7-element array of float)
-0:92 direct index (temp 5-element array of 7-element array of float)
-0:92 'resize1' (temp 3-element array of 5-element array of 7-element array of float)
-0:92 Constant:
-0:92 1 (const int)
-0:92 Constant:
-0:92 4 (const int)
-0:92 Constant:
-0:92 5 (const int)
-0:92 Constant:
-0:92 2.000000
-0:93 Constant:
-0:93 1 (const int)
-0:95 Constant:
-0:95 3 (const int)
-0:96 Constant:
-0:96 5 (const int)
-0:97 Constant:
-0:97 7 (const int)
-0:98 Constant:
-0:98 0.000000
0:? Linker Objects
0:? 'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float)
0:? 'gu' (global 1-element array of 7-element array of float)
diff --git a/Test/baseResults/430scope.vert.out b/Test/baseResults/430scope.vert.out
index 0a097a2..c7d0503 100644
--- a/Test/baseResults/430scope.vert.out
+++ b/Test/baseResults/430scope.vert.out
@@ -127,6 +127,8 @@
Linked vertex stage:
+ERROR: Linking vertex stage: No function definition (body) found:
+ g(
Shader version: 430
ERROR: node is still EOpNull!
@@ -147,20 +149,6 @@
0:8 1.000000
0:11 Branch: Return with expression
0:11 'a' (in int)
-0:25 Function Definition: cos(f1; (global float)
-0:25 Function Parameters:
-0:25 'x' (in float)
-0:27 Sequence
-0:27 Branch: Return with expression
-0:27 Constant:
-0:27 1.000000
-0:29 Function Definition: radians(b1; (global bool)
-0:29 Function Parameters:
-0:29 'x' (in bool)
-0:31 Sequence
-0:31 Branch: Return with expression
-0:31 Constant:
-0:31 true (const bool)
0:36 Function Definition: main( (global void)
0:36 Function Parameters:
0:? Sequence
diff --git a/Test/baseResults/440.frag.out b/Test/baseResults/440.frag.out
index 064fe19..bdc1b09 100644
--- a/Test/baseResults/440.frag.out
+++ b/Test/baseResults/440.frag.out
@@ -126,35 +126,6 @@
Shader version: 440
ERROR: node is still EOpNull!
-0:144 Function Definition: interp( (global void)
-0:144 Function Parameters:
-0:146 Sequence
-0:146 interpolateAtCentroid (global 2-component vector of float)
-0:146 vector swizzle (temp 2-component vector of float)
-0:146 direct index (smooth sample temp 3-component vector of float)
-0:146 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
-0:146 Constant:
-0:146 2 (const int)
-0:146 Sequence
-0:146 Constant:
-0:146 0 (const int)
-0:146 Constant:
-0:146 1 (const int)
-0:147 interpolateAtSample (global float)
-0:147 direct index (temp float)
-0:147 direct index (smooth sample temp 3-component vector of float)
-0:147 'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
-0:147 Constant:
-0:147 2 (const int)
-0:147 Constant:
-0:147 0 (const int)
-0:147 Constant:
-0:147 2 (const int)
-0:150 Function Definition: layer( (global int)
-0:150 Function Parameters:
-0:152 Sequence
-0:152 Branch: Return with expression
-0:152 'gl_Layer' (flat in int Layer)
0:? Linker Objects
0:? 'a' (layout(location=4 component=2 ) smooth in 2-component vector of float)
0:? 'b' (layout(location=4 component=1 ) smooth in float)
diff --git a/Test/baseResults/440.vert.out b/Test/baseResults/440.vert.out
index 022ddec..bf625c8 100644
--- a/Test/baseResults/440.vert.out
+++ b/Test/baseResults/440.vert.out
@@ -174,37 +174,6 @@
Requested GL_ARB_shader_draw_parameters
in xfb mode
ERROR: node is still EOpNull!
-0:177 Function Definition: drawParamsBad( (global int)
-0:177 Function Parameters:
-0:179 Sequence
-0:179 Branch: Return with expression
-0:179 add (temp int)
-0:179 add (temp int)
-0:179 'gl_BaseVertexARB' (in int BaseVertex)
-0:179 'gl_BaseInstanceARB' (in int BaseInstance)
-0:179 'gl_DrawIDARB' (in int DrawId)
-0:184 Function Definition: drawParams( (global int)
-0:184 Function Parameters:
-0:186 Sequence
-0:186 Branch: Return with expression
-0:186 add (temp int)
-0:186 add (temp int)
-0:186 'gl_BaseVertexARB' (in int BaseVertex)
-0:186 'gl_BaseInstanceARB' (in int BaseInstance)
-0:186 'gl_DrawIDARB' (in int DrawId)
-0:187 move second child to first child (temp int)
-0:187 'gl_BaseVertexARB' (in int BaseVertex)
-0:187 Constant:
-0:187 3 (const int)
-0:188 move second child to first child (temp int)
-0:188 'gl_BaseInstanceARB' (in int BaseInstance)
-0:188 Constant:
-0:188 3 (const int)
-0:189 move second child to first child (temp int)
-0:189 'gl_DrawIDARB' (in int DrawId)
-0:189 Constant:
-0:189 3 (const int)
-0:190 'glBaseInstanceARB' (temp float)
0:? Linker Objects
0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float)
0:? 'b' (layout(location=2 component=1 ) in float)
diff --git a/Test/baseResults/450.frag.out b/Test/baseResults/450.frag.out
index 23682e8..0382673 100644
--- a/Test/baseResults/450.frag.out
+++ b/Test/baseResults/450.frag.out
@@ -263,57 +263,6 @@
0:34 'uin' (temp uint)
0:34 Construct bvec3 (temp 3-component vector of bool)
0:34 'b' (temp bool)
-0:42 Function Definition: foo( (global void)
-0:42 Function Parameters:
-0:44 Sequence
-0:44 Sequence
-0:44 move second child to first child (temp int)
-0:44 's' (temp int)
-0:44 textureSamples (global int)
-0:44 's2dms' (uniform sampler2DMS)
-0:45 add second child into first child (temp int)
-0:45 's' (temp int)
-0:45 textureSamples (global int)
-0:45 'us2dmsa' (uniform usampler2DMSArray)
-0:46 add second child into first child (temp int)
-0:46 's' (temp int)
-0:46 imageQuerySamples (global int)
-0:46 'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
-0:47 add second child into first child (temp int)
-0:47 's' (temp int)
-0:47 imageQuerySamples (global int)
-0:47 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
-0:48 Sequence
-0:48 move second child to first child (temp float)
-0:48 'f' (temp float)
-0:48 imageAtomicExchange (global float)
-0:48 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
-0:48 Convert float to int (temp 3-component vector of int)
-0:48 'in3' (smooth in 3-component vector of float)
-0:48 Constant:
-0:48 2 (const int)
-0:48 Constant:
-0:48 4.500000
-0:53 Function Definition: cull(i1; (global float)
-0:53 Function Parameters:
-0:53 'i' (in int)
-0:55 Sequence
-0:55 Branch: Return with expression
-0:55 Test condition and select (temp float)
-0:55 Condition
-0:55 Compare Greater Than or Equal (temp bool)
-0:55 'i' (in int)
-0:55 Constant:
-0:55 6 (const int)
-0:55 true case
-0:55 direct index (smooth temp float CullDistance)
-0:55 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
-0:55 Constant:
-0:55 5 (const int)
-0:55 false case
-0:55 indirect index (smooth temp float CullDistance)
-0:55 'gl_CullDistance' (smooth in 6-element array of float CullDistance)
-0:55 'i' (in int)
0:? Linker Objects
0:? 'in1' (smooth in float)
0:? 'in2' (smooth in 2-component vector of float)
diff --git a/Test/baseResults/array.frag.out b/Test/baseResults/array.frag.out
index 8b3cf80..e254bf1 100644
--- a/Test/baseResults/array.frag.out
+++ b/Test/baseResults/array.frag.out
@@ -446,71 +446,6 @@
0:58 1 (const int)
0:58 Constant:
0:58 4 (const int)
-0:68 Function Definition: foo( (global void)
-0:68 Function Parameters:
-0:? Sequence
-0:71 move second child to first child (temp int)
-0:71 direct index (temp int)
-0:71 'uns' (temp 4-element array of int)
-0:71 Constant:
-0:71 3 (const int)
-0:71 Constant:
-0:71 40 (const int)
-0:72 move second child to first child (temp int)
-0:72 direct index (temp int)
-0:72 'uns' (temp 4-element array of int)
-0:72 Constant:
-0:72 1 (const int)
-0:72 Constant:
-0:72 30 (const int)
-0:73 move second child to first child (temp 3-component vector of float)
-0:73 direct index (temp 3-component vector of float)
-0:73 'guns' (global 8-element array of 3-component vector of float)
-0:73 Constant:
-0:73 2 (const int)
-0:73 Constant:
-0:73 2.400000
-0:73 2.400000
-0:73 2.400000
-0:76 Constant:
-0:76 0.000000
-0:79 Function Definition: foo2( (global implicitly-sized array of float)
-0:79 Function Parameters:
-0:? Sequence
-0:82 Branch: Return with expression
-0:82 'f' (temp 1-element array of float)
-0:84 Branch: Return with expression
-0:84 'g' (temp 9-element array of float)
-0:89 Function Definition: foo3( (global void)
-0:89 Function Parameters:
-0:? Sequence
-0:92 move second child to first child (temp float)
-0:92 direct index (temp float)
-0:92 'resize1' (temp 3-element array of float)
-0:92 Constant:
-0:92 2 (const int)
-0:92 Constant:
-0:92 4.000000
-0:93 Constant:
-0:93 1 (const int)
-0:95 Constant:
-0:95 3 (const int)
-0:98 move second child to first child (temp float)
-0:98 direct index (temp float)
-0:98 'resize2' (temp 5-element array of float)
-0:98 Constant:
-0:98 5 (const int)
-0:98 Constant:
-0:98 4.000000
-0:100 Constant:
-0:100 5 (const int)
-0:101 move second child to first child (temp float)
-0:101 direct index (temp float)
-0:101 'resize2' (temp 5-element array of float)
-0:101 Constant:
-0:101 5 (const int)
-0:101 Constant:
-0:101 4.000000
0:106 Sequence
0:106 move second child to first child (temp float)
0:106 'b' (global float)
diff --git a/Test/baseResults/array100.frag.out b/Test/baseResults/array100.frag.out
index b44f6a0..cf54361 100644
--- a/Test/baseResults/array100.frag.out
+++ b/Test/baseResults/array100.frag.out
@@ -265,29 +265,6 @@
0:40 1.000000
0:40 1.000000
0:40 1.000000
-0:53 Function Definition: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
-0:53 Function Parameters:
-0:? Sequence
-0:56 Branch: Return with expression
-0:56 's' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
-0:59 Function Definition: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)
-0:59 Function Parameters:
-0:59 's' (in structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
-0:63 Function Definition: bar11( (global void)
-0:63 Function Parameters:
-0:? Sequence
-0:66 move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
-0:66 's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
-0:66 's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
-0:67 Function Call: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)
-0:67 's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
-0:68 move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
-0:68 's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
-0:68 Function Call: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
-0:69 Sequence
-0:69 move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
-0:69 'initSb' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
-0:69 's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
0:? Linker Objects
0:? 'gu' (global 1-element array of mediump float)
0:? 'g4' (global 4-element array of mediump float)
diff --git a/Test/baseResults/atomic_uint.frag.out b/Test/baseResults/atomic_uint.frag.out
index 4d05756..e54b5dc 100644
--- a/Test/baseResults/atomic_uint.frag.out
+++ b/Test/baseResults/atomic_uint.frag.out
@@ -86,22 +86,6 @@
Shader version: 420
ERROR: node is still EOpNull!
-0:5 Function Definition: func(au1; (global uint)
-0:5 Function Parameters:
-0:5 'c' (in atomic_uint)
-0:7 Sequence
-0:7 Branch: Return with expression
-0:7 AtomicCounterIncrement (global uint)
-0:7 'c' (in atomic_uint)
-0:10 Function Definition: func2(au1; (global uint)
-0:10 Function Parameters:
-0:10 'c' (out atomic_uint)
-0:12 Sequence
-0:12 Branch: Return with expression
-0:12 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
-0:13 Branch: Return with expression
-0:13 AtomicCounter (global uint)
-0:13 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:16 Function Definition: main( (global void)
0:16 Function Parameters:
0:? Sequence
@@ -112,22 +96,6 @@
0:19 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:20 AtomicCounterDecrement (global uint)
0:20 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
-0:26 Function Definition: opac( (global void)
-0:26 Function Parameters:
-0:28 Sequence
-0:28 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
-0:29 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
-0:31 indirect index (temp int)
-0:31 'a' (temp 3-element array of int)
-0:31 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
-0:32 direct index (layout(binding=1 offset=3 ) temp atomic_uint)
-0:32 'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
-0:32 Constant:
-0:32 2 (const int)
-0:33 indirect index (layout(binding=1 offset=3 ) temp atomic_uint)
-0:33 'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
-0:33 'i' (uniform int)
-0:34 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:? Linker Objects
0:? 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:? 'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
diff --git a/Test/baseResults/constFold.frag.out b/Test/baseResults/constFold.frag.out
index 2e78468..33bf513 100644
--- a/Test/baseResults/constFold.frag.out
+++ b/Test/baseResults/constFold.frag.out
@@ -546,120 +546,6 @@
0:69 0.028000
0:69 0.500000
0:69 1.000000
-0:78 Function Definition: foo( (global void)
-0:78 Function Parameters:
-0:? Sequence
-0:81 move second child to first child (temp float)
-0:81 direct index (temp float)
-0:81 'a' (temp 3-element array of float)
-0:81 Constant:
-0:81 0 (const int)
-0:81 Constant:
-0:81 7.000000
-0:82 Constant:
-0:82 2 (const int)
-0:83 Constant:
-0:83 2147483647 (const int)
-0:84 Constant:
-0:84 inf
-0:88 Constant:
-0:88 2 (const uint)
-0:88 3 (const uint)
-0:89 Constant:
-0:89 0 (const uint)
-0:90 Constant:
-0:90 6 (const uint)
-0:90 7 (const uint)
-0:103 Function Definition: foo2( (global void)
-0:103 Function Parameters:
-0:105 Sequence
-0:105 direct index (temp float)
-0:105 'a1' (global 1-element array of float)
-0:105 Constant:
-0:105 0 (const int)
-0:106 direct index (temp float)
-0:106 'a2' (global 2-element array of float)
-0:106 Constant:
-0:106 0 (const int)
-0:107 direct index (temp float)
-0:107 'a3' (global 4-element array of float)
-0:107 Constant:
-0:107 0 (const int)
-0:108 direct index (temp float)
-0:108 'a4' (global 2-element array of float)
-0:108 Constant:
-0:108 0 (const int)
-0:109 Constant:
-0:109 1.000000
-0:110 Constant:
-0:110 5.000000
-0:111 Constant:
-0:111 2.000000
-0:112 Constant:
-0:112 3.000000
-0:113 Constant:
-0:113 0.000000
-0:114 Constant:
-0:114 0.000000
-0:116 move second child to first child (temp int)
-0:116 'p' (temp int)
-0:116 Constant:
-0:116 2147483647 (const int)
-0:117 move second child to first child (temp int)
-0:117 'p' (temp int)
-0:117 Constant:
-0:117 -2147483648 (const int)
-0:118 move second child to first child (temp int)
-0:118 'p' (temp int)
-0:118 Constant:
-0:118 -2147483647 (const int)
-0:119 Sequence
-0:119 move second child to first child (temp float)
-0:119 'f' (temp float)
-0:119 Constant:
-0:119 1.444000
-0:120 move second child to first child (temp float)
-0:120 'f' (temp float)
-0:120 direct index (temp float)
-0:120 Construct vec4 (temp 4-component vector of float)
-0:120 Test condition and select (temp float)
-0:120 Condition
-0:120 Compare Less Than (temp bool)
-0:120 direct index (temp float)
-0:120 'inv' (smooth in 4-component vector of float)
-0:120 Constant:
-0:120 0 (const int)
-0:120 Constant:
-0:120 2.400000
-0:120 true case
-0:120 Constant:
-0:120 -1.000000
-0:120 false case
-0:120 Constant:
-0:120 1.000000
-0:120 Constant:
-0:120 3 (const int)
-0:126 Function Definition: foo3( (global void)
-0:126 Function Parameters:
-0:128 Sequence
-0:128 Sequence
-0:128 move second child to first child (temp 3X2 matrix of float)
-0:128 'r32' (temp 3X2 matrix of float)
-0:128 Constant:
-0:128 43.000000
-0:128 64.000000
-0:128 51.000000
-0:128 76.000000
-0:128 59.000000
-0:128 88.000000
-0:138 Function Definition: foo4( (global void)
-0:138 Function Parameters:
-0:140 Sequence
-0:140 Sequence
-0:140 move second child to first child (temp int)
-0:140 'a' (temp int)
-0:140 Constant:
-0:140 9 (const int)
0:? Linker Objects
0:? 'a' (const int)
0:? 1 (const int)
diff --git a/Test/baseResults/cppComplexExpr.vert.out b/Test/baseResults/cppComplexExpr.vert.out
index aa73a06..352dcac 100644
--- a/Test/baseResults/cppComplexExpr.vert.out
+++ b/Test/baseResults/cppComplexExpr.vert.out
@@ -152,41 +152,6 @@
0:39 'gl_Position' (gl_Position highp 4-component vector of float Position)
0:39 Construct vec4 (temp highp 4-component vector of float)
0:39 'sum' (global highp float)
-0:44 Function Definition: foo( (global highp float)
-0:44 Function Parameters:
-0:46 Sequence
-0:46 Branch: Return with expression
-0:46 add (temp highp float)
-0:46 add (temp highp float)
-0:46 direct index (temp highp float)
-0:46 'gl_Position' (gl_Position highp 4-component vector of float Position)
-0:46 Constant:
-0:46 0 (const int)
-0:46 Constant:
-0:46 3.000000
-0:46 add (temp highp float)
-0:46 direct index (temp highp float)
-0:46 'gl_Position' (gl_Position highp 4-component vector of float Position)
-0:46 Constant:
-0:46 0 (const int)
-0:46 Constant:
-0:46 3.000000
-0:47 Branch: Return with expression
-0:47 add (temp highp float)
-0:47 add (temp highp float)
-0:47 direct index (temp highp float)
-0:47 'gl_Position' (gl_Position highp 4-component vector of float Position)
-0:47 Constant:
-0:47 1 (const int)
-0:47 Constant:
-0:47 3.000000
-0:47 add (temp highp float)
-0:47 direct index (temp highp float)
-0:47 'gl_Position' (gl_Position highp 4-component vector of float Position)
-0:47 Constant:
-0:47 1 (const int)
-0:47 Constant:
-0:47 3.000000
0:97 Sequence
0:97 move second child to first child (temp highp float)
0:97 'c' (global highp float)
diff --git a/Test/baseResults/cppNest.vert.out b/Test/baseResults/cppNest.vert.out
index df90557..2077ec3 100644
--- a/Test/baseResults/cppNest.vert.out
+++ b/Test/baseResults/cppNest.vert.out
@@ -135,17 +135,6 @@
0:133 'selected3' (global int)
0:133 Constant:
0:133 3 (const int)
-0:175 Function Definition: foo985( (global void)
-0:175 Function Parameters:
-0:175 Sequence
-0:175 add (temp int)
-0:175 Constant:
-0:175 2 (const int)
-0:175 Comma (temp int)
-0:175 Constant:
-0:175 3 (const int)
-0:175 Constant:
-0:175 4 (const int)
0:? Linker Objects
0:? 'sum' (global float)
0:? 'selected4' (global int)
diff --git a/Test/baseResults/cppSimple.vert.out b/Test/baseResults/cppSimple.vert.out
index 366770d..bf4b42a 100644
--- a/Test/baseResults/cppSimple.vert.out
+++ b/Test/baseResults/cppSimple.vert.out
@@ -282,19 +282,6 @@
0:202 'f' (global double)
0:202 Constant:
0:202 0.000800
-12:20031 Function Definition: foo234( (global void)
-12:20031 Function Parameters:
-12:20033 Sequence
-12:20033 move second child to first child (temp 4-component vector of float)
-12:20033 gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
-12:20033 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
-12:20033 Constant:
-12:20033 0 (const uint)
-12:20033 Constant:
-12:20033 6.000000
-12:20033 6.000000
-12:20033 6.000000
-12:20033 6.000000
12:9011 Sequence
12:9011 move second child to first child (temp int)
12:9011 'R1' (global int)
diff --git a/Test/baseResults/dce.frag.out b/Test/baseResults/dce.frag.out
index 2846abd..6707ae7 100644
--- a/Test/baseResults/dce.frag.out
+++ b/Test/baseResults/dce.frag.out
@@ -147,128 +147,6 @@
0:5 'c' (global int)
0:5 Constant:
0:5 0 (const int)
-0:7 Function Definition: bar( (global void)
-0:7 Function Parameters:
-0:9 Sequence
-0:9 Test condition and select (temp void)
-0:9 Condition
-0:9 Constant:
-0:9 false (const bool)
-0:9 true case
-0:10 Pre-Increment (temp int)
-0:10 'c' (global int)
-0:9 false case
-0:12 Pre-Increment (temp int)
-0:12 'c' (global int)
-0:14 Test condition and select (temp int)
-0:14 Condition
-0:14 Constant:
-0:14 false (const bool)
-0:14 true case
-0:14 Pre-Increment (temp int)
-0:14 'c' (global int)
-0:14 false case
-0:14 Pre-Increment (temp int)
-0:14 'c' (global int)
-0:16 switch
-0:16 condition
-0:16 'c' (global int)
-0:16 body
-0:16 Sequence
-0:17 case: with expression
-0:17 Constant:
-0:17 1 (const int)
-0:? Sequence
-0:18 Pre-Increment (temp int)
-0:18 'c' (global int)
-0:19 Branch: Break
-0:20 Pre-Increment (temp int)
-0:20 'c' (global int)
-0:21 case: with expression
-0:21 Constant:
-0:21 2 (const int)
-0:? Sequence
-0:22 Branch: Break
-0:23 Pre-Increment (temp int)
-0:23 'c' (global int)
-0:24 default:
-0:? Sequence
-0:25 Branch: Break
-0:28 Sequence
-0:28 Sequence
-0:28 move second child to first child (temp int)
-0:28 'i' (temp int)
-0:28 Constant:
-0:28 0 (const int)
-0:28 Loop with condition tested first
-0:28 Loop Condition
-0:28 Compare Less Than (temp bool)
-0:28 'i' (temp int)
-0:28 Constant:
-0:28 0 (const int)
-0:28 Loop Body
-0:29 Pre-Increment (temp int)
-0:29 'c' (global int)
-0:28 Loop Terminal Expression
-0:28 Pre-Increment (temp int)
-0:28 'i' (temp int)
-0:31 Sequence
-0:31 Sequence
-0:31 move second child to first child (temp int)
-0:31 'i' (temp int)
-0:31 Constant:
-0:31 0 (const int)
-0:31 Loop with condition tested first
-0:31 Loop Condition
-0:31 Compare Less Than (temp bool)
-0:31 'i' (temp int)
-0:31 Constant:
-0:31 10 (const int)
-0:31 Loop Body
-0:32 Sequence
-0:32 Test condition and select (temp void)
-0:32 Condition
-0:32 Compare Less Than (temp bool)
-0:32 'c' (global int)
-0:32 Constant:
-0:32 3 (const int)
-0:32 true case
-0:33 Sequence
-0:33 Branch: Break
-0:34 Pre-Increment (temp int)
-0:34 'c' (global int)
-0:32 false case
-0:36 Sequence
-0:36 Branch: Continue
-0:37 Pre-Increment (temp int)
-0:37 'c' (global int)
-0:31 Loop Terminal Expression
-0:31 Pre-Increment (temp int)
-0:31 'i' (temp int)
-0:41 Branch: Return
-0:43 Pre-Increment (temp int)
-0:43 'c' (global int)
-0:46 Function Definition: foo( (global int)
-0:46 Function Parameters:
-0:48 Sequence
-0:48 Test condition and select (temp void)
-0:48 Condition
-0:48 Compare Greater Than (temp bool)
-0:48 'c' (global int)
-0:48 Constant:
-0:48 4 (const int)
-0:48 true case
-0:49 Sequence
-0:49 Branch: Return with expression
-0:49 Constant:
-0:49 4 (const int)
-0:50 Pre-Increment (temp int)
-0:50 'c' (global int)
-0:53 Branch: Return with expression
-0:53 Constant:
-0:53 5 (const int)
-0:55 Pre-Increment (temp int)
-0:55 'c' (global int)
0:? Linker Objects
0:? 'flag' (const bool)
0:? false (const bool)
diff --git a/Test/baseResults/functionSemantics.frag.out b/Test/baseResults/functionSemantics.frag.out
index 1ea7dbd..e0fd076 100644
--- a/Test/baseResults/functionSemantics.frag.out
+++ b/Test/baseResults/functionSemantics.frag.out
@@ -397,19 +397,6 @@
0:62 Construct vec4 (temp 4-component vector of float)
0:62 Convert int to float (temp float)
0:62 'color' (temp int)
-0:66 Function Definition: aggCall( (global void)
-0:66 Function Parameters:
-0:? Sequence
-0:69 Function Call: m(vf2; (global 3-component vector of float)
-0:69 Convert int to float (temp 2-component vector of float)
-0:69 Construct ivec2 (temp 2-component vector of int)
-0:69 Convert float to int (temp int)
-0:69 'F' (temp float)
-0:72 Function Definition: badConv( (global 4-component vector of float)
-0:72 Function Parameters:
-0:74 Sequence
-0:74 Branch: Return with expression
-0:74 'u' (uniform float)
0:? Linker Objects
0:? 'u' (uniform float)
diff --git a/Test/baseResults/glspv.esversion.vert.out b/Test/baseResults/glspv.esversion.vert.out
index ef406a1..8e4b3b8 100755
--- a/Test/baseResults/glspv.esversion.vert.out
+++ b/Test/baseResults/glspv.esversion.vert.out
@@ -4,8 +4,4 @@
ERROR: 1 compilation errors. No code generated.
-
-Linked vertex stage:
-
-
SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/glspv.frag.out b/Test/baseResults/glspv.frag.out
index 5df46c5..daa1dc1 100755
--- a/Test/baseResults/glspv.frag.out
+++ b/Test/baseResults/glspv.frag.out
@@ -6,8 +6,4 @@
ERROR: 4 compilation errors. No code generated.
-
-Linked fragment stage:
-
-
SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/glspv.version.frag.out b/Test/baseResults/glspv.version.frag.out
index 7f44889..3e8e8c4 100755
--- a/Test/baseResults/glspv.version.frag.out
+++ b/Test/baseResults/glspv.version.frag.out
@@ -1,10 +1,6 @@
glspv.version.frag
ERROR: #version: compilation for SPIR-V does not support the compatibility profile
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 6
diff --git a/Test/baseResults/glspv.version.vert.out b/Test/baseResults/glspv.version.vert.out
index eb003df..9683b3b 100755
--- a/Test/baseResults/glspv.version.vert.out
+++ b/Test/baseResults/glspv.version.vert.out
@@ -3,8 +3,4 @@
ERROR: 1 compilation errors. No code generated.
-
-Linked vertex stage:
-
-
SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/glspv.vert.out b/Test/baseResults/glspv.vert.out
index b91ab50..5f6d9bb 100755
--- a/Test/baseResults/glspv.vert.out
+++ b/Test/baseResults/glspv.vert.out
@@ -11,8 +11,4 @@
ERROR: 8 compilation errors. No code generated.
-
-Linked vertex stage:
-
-
SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out b/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out
new file mode 100644
index 0000000..71842af
--- /dev/null
+++ b/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out
@@ -0,0 +1,25 @@
+hlsl.deadFunctionMissingBody.vert
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 13
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 9
+ Name 4 "main"
+ Name 9 "@entryPointOutput"
+ Decorate 9(@entryPointOutput) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Output 7(fvec4)
+9(@entryPointOutput): 8(ptr) Variable Output
+ 10: 6(float) Constant 0
+ 11: 7(fvec4) ConstantComposite 10 10 10 10
+ 4(main): 2 Function None 3
+ 5: Label
+ Store 9(@entryPointOutput) 11
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.entry.rename.frag.out b/Test/baseResults/hlsl.entry.rename.frag.out
new file mode 100644
index 0000000..b24cb7a
--- /dev/null
+++ b/Test/baseResults/hlsl.entry.rename.frag.out
@@ -0,0 +1,119 @@
+hlsl.entry.rename.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:7 Function Definition: not_the_entry_point( (temp void)
+0:7 Function Parameters:
+0:11 Function Definition: main_in_spv( (temp structure{temp 4-component vector of float Color})
+0:11 Function Parameters:
+0:? Sequence
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 Color: direct index for structure (temp 4-component vector of float)
+0:13 'psout' (temp structure{temp 4-component vector of float Color})
+0:13 Constant:
+0:13 0 (const int)
+0:13 Constant:
+0:13 0.000000
+0:13 0.000000
+0:13 0.000000
+0:13 0.000000
+0:14 Sequence
+0:14 Sequence
+0:14 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:14 Color: direct index for structure (temp 4-component vector of float)
+0:14 'psout' (temp structure{temp 4-component vector of float Color})
+0:14 Constant:
+0:14 0 (const int)
+0:14 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int also_not_the_entry_point})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:7 Function Definition: not_the_entry_point( (temp void)
+0:7 Function Parameters:
+0:11 Function Definition: main_in_spv( (temp structure{temp 4-component vector of float Color})
+0:11 Function Parameters:
+0:? Sequence
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 Color: direct index for structure (temp 4-component vector of float)
+0:13 'psout' (temp structure{temp 4-component vector of float Color})
+0:13 Constant:
+0:13 0 (const int)
+0:13 Constant:
+0:13 0.000000
+0:13 0.000000
+0:13 0.000000
+0:13 0.000000
+0:14 Sequence
+0:14 Sequence
+0:14 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:14 Color: direct index for structure (temp 4-component vector of float)
+0:14 'psout' (temp structure{temp 4-component vector of float Color})
+0:14 Constant:
+0:14 0 (const int)
+0:14 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int also_not_the_entry_point})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 27
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main_in_spv" 20
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main_in_spv"
+ Name 6 "not_the_entry_point("
+ Name 10 "PS_OUTPUT"
+ MemberName 10(PS_OUTPUT) 0 "Color"
+ Name 12 "psout"
+ Name 20 "Color"
+ Name 24 "$Global"
+ MemberName 24($Global) 0 "also_not_the_entry_point"
+ Name 26 ""
+ Decorate 20(Color) Location 0
+ MemberDecorate 24($Global) 0 Offset 0
+ Decorate 24($Global) Block
+ Decorate 26 DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 8: TypeFloat 32
+ 9: TypeVector 8(float) 4
+ 10(PS_OUTPUT): TypeStruct 9(fvec4)
+ 11: TypePointer Function 10(PS_OUTPUT)
+ 13: TypeInt 32 1
+ 14: 13(int) Constant 0
+ 15: 8(float) Constant 0
+ 16: 9(fvec4) ConstantComposite 15 15 15 15
+ 17: TypePointer Function 9(fvec4)
+ 19: TypePointer Output 9(fvec4)
+ 20(Color): 19(ptr) Variable Output
+ 24($Global): TypeStruct 13(int)
+ 25: TypePointer Uniform 24($Global)
+ 26: 25(ptr) Variable Uniform
+ 4(main_in_spv): 2 Function None 3
+ 5: Label
+ 12(psout): 11(ptr) Variable Function
+ 18: 17(ptr) AccessChain 12(psout) 14
+ Store 18 16
+ 21: 17(ptr) AccessChain 12(psout) 14
+ 22: 9(fvec4) Load 21
+ Store 20(Color) 22
+ Return
+ FunctionEnd
+6(not_the_entry_point(): 2 Function None 3
+ 7: Label
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out
index 8a1935e..5def966 100644
--- a/Test/baseResults/hlsl.intrinsics.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.frag.out
@@ -92,11 +92,11 @@
0:35 hyp. cosine (temp float)
0:35 'inF0' (in float)
0:36 Sequence
-0:36 move second child to first child (temp uint)
-0:36 'r016' (temp uint)
-0:36 bitCount (temp uint)
+0:36 move second child to first child (temp int)
+0:36 'r016' (temp int)
+0:36 bitCount (temp int)
0:36 Constant:
-0:36 7 (const uint)
+0:36 7 (const int)
0:37 Sequence
0:37 move second child to first child (temp float)
0:37 'r017' (temp float)
@@ -257,9 +257,10 @@
0:69 Sequence
0:69 move second child to first child (temp uint)
0:69 'r048' (temp uint)
-0:69 bitFieldReverse (temp uint)
-0:69 Constant:
-0:69 2 (const uint)
+0:69 Convert int to uint (temp uint)
+0:69 bitFieldReverse (temp int)
+0:69 Constant:
+0:69 2 (const int)
0:70 Sequence
0:70 move second child to first child (temp float)
0:70 'r049' (temp float)
@@ -440,12 +441,12 @@
0:113 hyp. cosine (temp 2-component vector of float)
0:113 'inF0' (in 2-component vector of float)
0:114 Sequence
-0:114 move second child to first child (temp 2-component vector of uint)
-0:114 'r016' (temp 2-component vector of uint)
-0:? bitCount (temp 2-component vector of uint)
+0:114 move second child to first child (temp 2-component vector of int)
+0:114 'r016' (temp 2-component vector of int)
+0:? bitCount (temp 2-component vector of int)
0:? Constant:
-0:? 7 (const uint)
-0:? 3 (const uint)
+0:? 7 (const int)
+0:? 3 (const int)
0:115 Sequence
0:115 move second child to first child (temp 2-component vector of float)
0:115 'r017' (temp 2-component vector of float)
@@ -2893,11 +2894,11 @@
0:35 hyp. cosine (temp float)
0:35 'inF0' (in float)
0:36 Sequence
-0:36 move second child to first child (temp uint)
-0:36 'r016' (temp uint)
-0:36 bitCount (temp uint)
+0:36 move second child to first child (temp int)
+0:36 'r016' (temp int)
+0:36 bitCount (temp int)
0:36 Constant:
-0:36 7 (const uint)
+0:36 7 (const int)
0:37 Sequence
0:37 move second child to first child (temp float)
0:37 'r017' (temp float)
@@ -3058,9 +3059,10 @@
0:69 Sequence
0:69 move second child to first child (temp uint)
0:69 'r048' (temp uint)
-0:69 bitFieldReverse (temp uint)
-0:69 Constant:
-0:69 2 (const uint)
+0:69 Convert int to uint (temp uint)
+0:69 bitFieldReverse (temp int)
+0:69 Constant:
+0:69 2 (const int)
0:70 Sequence
0:70 move second child to first child (temp float)
0:70 'r049' (temp float)
@@ -3241,12 +3243,12 @@
0:113 hyp. cosine (temp 2-component vector of float)
0:113 'inF0' (in 2-component vector of float)
0:114 Sequence
-0:114 move second child to first child (temp 2-component vector of uint)
-0:114 'r016' (temp 2-component vector of uint)
-0:? bitCount (temp 2-component vector of uint)
+0:114 move second child to first child (temp 2-component vector of int)
+0:114 'r016' (temp 2-component vector of int)
+0:? bitCount (temp 2-component vector of int)
0:? Constant:
-0:? 7 (const uint)
-0:? 3 (const uint)
+0:? 7 (const int)
+0:? 3 (const int)
0:115 Sequence
0:115 move second child to first child (temp 2-component vector of float)
0:115 'r017' (temp 2-component vector of float)
@@ -5599,13 +5601,13 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 1825
+// Id's are bound by 1828
Capability Shader
Capability DerivativeControl
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 1805
+ EntryPoint Fragment 4 "main" 1808
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 16 "PixelShaderFunctionS(f1;f1;f1;u1;u1;"
@@ -5704,26 +5706,26 @@
Name 210 "r027"
Name 213 "r028"
Name 216 "r029"
- Name 220 "r030"
- Name 223 "r031"
- Name 226 "r033"
- Name 230 "r034"
- Name 233 "r035"
- Name 235 "ResType"
- Name 239 "r036"
- Name 242 "r037"
- Name 245 "r038"
- Name 248 "r039"
- Name 252 "r039a"
- Name 257 "r040"
- Name 260 "r041"
- Name 265 "r042"
- Name 268 "r043"
- Name 272 "r044"
- Name 276 "r045"
- Name 280 "r046"
- Name 283 "r047"
- Name 287 "r048"
+ Name 219 "r030"
+ Name 222 "r031"
+ Name 225 "r033"
+ Name 229 "r034"
+ Name 232 "r035"
+ Name 234 "ResType"
+ Name 238 "r036"
+ Name 241 "r037"
+ Name 244 "r038"
+ Name 247 "r039"
+ Name 251 "r039a"
+ Name 256 "r040"
+ Name 259 "r041"
+ Name 264 "r042"
+ Name 267 "r043"
+ Name 271 "r044"
+ Name 275 "r045"
+ Name 279 "r046"
+ Name 282 "r047"
+ Name 286 "r048"
Name 290 "r049"
Name 293 "r050"
Name 296 "r051"
@@ -5764,375 +5766,375 @@
Name 428 "r029"
Name 431 "r030"
Name 436 "r031"
- Name 440 "r032"
- Name 442 "r033"
- Name 445 "r035"
- Name 449 "r036"
- Name 452 "r037"
- Name 454 "ResType"
- Name 458 "r038"
- Name 462 "r039"
- Name 465 "r040"
- Name 468 "r041"
- Name 472 "r039a"
- Name 477 "r042"
- Name 480 "r043"
- Name 483 "r044"
- Name 487 "r045"
- Name 490 "r046"
- Name 494 "r047"
- Name 498 "r048"
- Name 501 "r049"
- Name 505 "r050"
- Name 508 "r051"
- Name 512 "r052"
- Name 516 "r053"
- Name 521 "r054"
- Name 525 "r055"
- Name 528 "r056"
- Name 531 "r057"
- Name 536 "r058"
- Name 539 "r059"
- Name 546 "r060"
- Name 549 "r061"
- Name 554 "r062"
- Name 557 "r063"
- Name 561 "r064"
- Name 564 "r065"
- Name 567 "r066"
- Name 573 "r000"
- Name 576 "r001"
- Name 579 "r002"
- Name 582 "r003"
- Name 585 "r004"
- Name 590 "r005"
- Name 593 "r006"
- Name 596 "r007"
- Name 599 "r009"
- Name 602 "r010"
- Name 606 "r011"
- Name 609 "r012"
- Name 622 "r013"
- Name 625 "r014"
- Name 628 "r015"
- Name 632 "r016"
- Name 636 "r017"
- Name 639 "r018"
- Name 642 "r019"
- Name 645 "r020"
- Name 648 "r021"
- Name 651 "r022"
- Name 654 "r023"
- Name 657 "r024"
- Name 661 "r025"
- Name 665 "r029"
- Name 668 "r030"
- Name 671 "r031"
- Name 676 "r032"
- Name 680 "r033"
- Name 682 "r034"
- Name 685 "r036"
- Name 689 "r037"
- Name 692 "r038"
- Name 694 "ResType"
- Name 698 "r039"
- Name 702 "r040"
- Name 705 "r041"
- Name 708 "r042"
- Name 712 "r039a"
- Name 717 "r039b"
- Name 723 "r043"
- Name 726 "r044"
- Name 729 "r045"
- Name 733 "r046"
- Name 736 "r047"
- Name 740 "r048"
- Name 744 "r049"
- Name 747 "r050"
- Name 751 "r051"
- Name 754 "r052"
- Name 758 "r053"
- Name 762 "r054"
- Name 766 "r055"
- Name 769 "r056"
- Name 772 "r057"
- Name 775 "r058"
- Name 780 "r059"
- Name 783 "r060"
- Name 790 "r061"
- Name 793 "r062"
- Name 798 "r063"
- Name 801 "r064"
- Name 805 "r065"
- Name 808 "r066"
- Name 811 "r067"
- Name 818 "r000"
- Name 821 "r001"
- Name 824 "r002"
- Name 827 "r003"
- Name 830 "r004"
- Name 835 "r005"
- Name 838 "r006"
- Name 841 "r007"
- Name 844 "r009"
- Name 847 "r010"
- Name 851 "r011"
- Name 854 "r012"
- Name 867 "r013"
- Name 870 "r014"
- Name 873 "r015"
- Name 876 "r016"
- Name 879 "r017"
- Name 882 "r018"
- Name 885 "r019"
- Name 888 "r020"
- Name 891 "r021"
- Name 894 "r022"
- Name 897 "r023"
- Name 901 "r024"
- Name 905 "r025"
- Name 916 "r029"
- Name 919 "r030"
- Name 922 "r031"
- Name 927 "r032"
- Name 932 "r033"
- Name 934 "r034"
- Name 937 "r036"
- Name 941 "r037"
- Name 944 "r038"
- Name 946 "ResType"
- Name 950 "r039"
- Name 954 "r040"
- Name 957 "r041"
- Name 960 "r042"
- Name 964 "r039a"
- Name 969 "r043"
- Name 972 "r044"
- Name 975 "r045"
- Name 979 "r046"
- Name 982 "r047"
- Name 986 "r048"
- Name 990 "r049"
- Name 993 "r050"
- Name 997 "r051"
- Name 1000 "r052"
- Name 1004 "r053"
- Name 1008 "r054"
- Name 1012 "r055"
- Name 1015 "r056"
- Name 1018 "r057"
- Name 1021 "r058"
- Name 1026 "r059"
- Name 1029 "r060"
- Name 1036 "r061"
- Name 1039 "r062"
- Name 1044 "r063"
- Name 1047 "r064"
- Name 1051 "r065"
- Name 1054 "r066"
- Name 1057 "r067"
- Name 1064 "r000"
- Name 1067 "r001"
- Name 1072 "r003"
- Name 1075 "r004"
- Name 1078 "r005"
- Name 1081 "r006"
- Name 1085 "r007"
- Name 1096 "r008"
- Name 1101 "r009"
- Name 1104 "r010"
- Name 1107 "r011"
- Name 1110 "r012"
- Name 1113 "r013"
- Name 1116 "r014"
- Name 1119 "r015"
- Name 1122 "r016"
- Name 1125 "r017"
- Name 1128 "r018"
- Name 1131 "r019"
- Name 1134 "R020"
- Name 1137 "r021"
- Name 1140 "r022"
- Name 1150 "r023"
- Name 1153 "r024"
- Name 1155 "ResType"
- Name 1159 "r025"
- Name 1162 "r026"
- Name 1166 "r026a"
- Name 1171 "r027"
- Name 1174 "r028"
- Name 1178 "r029"
- Name 1181 "r030"
- Name 1185 "r031"
- Name 1189 "r032"
- Name 1193 "r033"
- Name 1196 "r034"
- Name 1199 "r035"
- Name 1202 "r036"
- Name 1207 "r037"
- Name 1210 "r038"
- Name 1217 "r039"
- Name 1220 "r049"
- Name 1225 "r041"
- Name 1228 "r042"
- Name 1232 "r043"
- Name 1235 "r044"
- Name 1240 "r046"
- Name 1247 "r000"
- Name 1250 "r001"
- Name 1255 "r003"
- Name 1258 "r004"
- Name 1261 "r005"
- Name 1264 "r006"
- Name 1268 "r007"
- Name 1279 "r008"
- Name 1284 "r009"
- Name 1287 "r010"
- Name 1290 "r011"
- Name 1293 "r012"
- Name 1296 "r013"
- Name 1299 "r014"
- Name 1302 "r015"
- Name 1305 "r016"
- Name 1308 "r017"
- Name 1311 "r018"
- Name 1314 "r019"
- Name 1317 "R020"
- Name 1320 "r021"
- Name 1323 "r022"
- Name 1336 "r023"
- Name 1339 "r024"
- Name 1341 "ResType"
- Name 1345 "r025"
- Name 1348 "r026"
- Name 1352 "r026a"
- Name 1357 "r027"
- Name 1360 "r028"
- Name 1364 "r029"
- Name 1367 "r030"
- Name 1371 "r031"
- Name 1375 "r032"
- Name 1379 "r033"
- Name 1382 "r034"
- Name 1385 "r035"
- Name 1388 "r036"
- Name 1393 "r037"
- Name 1396 "r038"
- Name 1403 "r039"
- Name 1406 "r049"
- Name 1411 "r041"
- Name 1414 "r042"
- Name 1418 "r043"
- Name 1421 "r044"
- Name 1426 "r046"
- Name 1433 "r000"
- Name 1436 "r001"
- Name 1441 "r003"
- Name 1444 "r004"
- Name 1447 "r005"
- Name 1450 "r006"
- Name 1454 "r007"
- Name 1465 "r008"
- Name 1470 "r009"
- Name 1473 "r010"
- Name 1476 "r011"
- Name 1479 "r012"
- Name 1482 "r013"
- Name 1485 "r014"
- Name 1488 "r015"
- Name 1491 "r016"
- Name 1494 "r017"
- Name 1497 "r018"
- Name 1500 "r019"
- Name 1503 "R020"
- Name 1506 "r021"
- Name 1509 "r022"
- Name 1525 "r023"
- Name 1528 "r024"
- Name 1530 "ResType"
- Name 1534 "r025"
- Name 1537 "r026"
- Name 1541 "r026a"
- Name 1546 "r027"
- Name 1549 "r028"
- Name 1553 "r029"
- Name 1556 "r030"
- Name 1560 "r031"
- Name 1564 "r032"
- Name 1568 "r033"
- Name 1571 "r034"
- Name 1574 "r035"
- Name 1577 "r036"
- Name 1582 "r037"
- Name 1585 "r038"
- Name 1592 "r039"
- Name 1595 "r049"
- Name 1600 "r041"
- Name 1603 "r042"
- Name 1607 "r043"
- Name 1610 "r044"
- Name 1615 "r046"
- Name 1622 "r0"
- Name 1626 "r1"
- Name 1630 "r2"
- Name 1634 "r3"
- Name 1638 "r4"
- Name 1642 "r5"
- Name 1646 "r6"
- Name 1650 "r7"
- Name 1654 "r8"
- Name 1658 "r0"
- Name 1662 "r1"
- Name 1666 "r2"
- Name 1670 "r3"
- Name 1674 "r4"
- Name 1678 "r5"
- Name 1682 "r6"
- Name 1686 "r7"
- Name 1690 "r8"
- Name 1694 "r0"
- Name 1698 "r1"
- Name 1702 "r2"
- Name 1706 "r3"
- Name 1710 "r4"
- Name 1714 "r5"
- Name 1718 "r6"
- Name 1722 "r7"
- Name 1726 "r8"
- Name 1730 "r00"
- Name 1734 "r01"
- Name 1738 "r02"
- Name 1742 "r03"
- Name 1746 "r04"
- Name 1750 "r05"
- Name 1754 "r06"
- Name 1758 "r07"
- Name 1762 "r08"
- Name 1766 "r09"
- Name 1770 "r10"
- Name 1774 "r11"
- Name 1778 "r12"
- Name 1782 "r13"
- Name 1786 "r14"
- Name 1790 "r15"
- Name 1794 "r16"
- Name 1798 "PS_OUTPUT"
- MemberName 1798(PS_OUTPUT) 0 "color"
- Name 1800 "ps_output"
- Name 1805 "color"
- Name 1810 "gs_ua"
- Name 1811 "gs_ub"
- Name 1812 "gs_uc"
- Name 1814 "gs_ua2"
- Name 1815 "gs_ub2"
- Name 1816 "gs_uc2"
- Name 1818 "gs_ua3"
- Name 1819 "gs_ub3"
- Name 1820 "gs_uc3"
- Name 1822 "gs_ua4"
- Name 1823 "gs_ub4"
- Name 1824 "gs_uc4"
- Decorate 1805(color) Location 0
+ Name 441 "r032"
+ Name 443 "r033"
+ Name 446 "r035"
+ Name 450 "r036"
+ Name 453 "r037"
+ Name 455 "ResType"
+ Name 459 "r038"
+ Name 463 "r039"
+ Name 466 "r040"
+ Name 469 "r041"
+ Name 473 "r039a"
+ Name 478 "r042"
+ Name 481 "r043"
+ Name 484 "r044"
+ Name 488 "r045"
+ Name 491 "r046"
+ Name 495 "r047"
+ Name 499 "r048"
+ Name 502 "r049"
+ Name 506 "r050"
+ Name 509 "r051"
+ Name 513 "r052"
+ Name 517 "r053"
+ Name 522 "r054"
+ Name 527 "r055"
+ Name 530 "r056"
+ Name 533 "r057"
+ Name 538 "r058"
+ Name 541 "r059"
+ Name 548 "r060"
+ Name 551 "r061"
+ Name 556 "r062"
+ Name 559 "r063"
+ Name 563 "r064"
+ Name 566 "r065"
+ Name 569 "r066"
+ Name 575 "r000"
+ Name 578 "r001"
+ Name 581 "r002"
+ Name 584 "r003"
+ Name 587 "r004"
+ Name 592 "r005"
+ Name 595 "r006"
+ Name 598 "r007"
+ Name 601 "r009"
+ Name 604 "r010"
+ Name 608 "r011"
+ Name 611 "r012"
+ Name 624 "r013"
+ Name 627 "r014"
+ Name 630 "r015"
+ Name 635 "r016"
+ Name 639 "r017"
+ Name 642 "r018"
+ Name 645 "r019"
+ Name 648 "r020"
+ Name 651 "r021"
+ Name 654 "r022"
+ Name 657 "r023"
+ Name 660 "r024"
+ Name 664 "r025"
+ Name 668 "r029"
+ Name 671 "r030"
+ Name 674 "r031"
+ Name 679 "r032"
+ Name 683 "r033"
+ Name 685 "r034"
+ Name 688 "r036"
+ Name 692 "r037"
+ Name 695 "r038"
+ Name 697 "ResType"
+ Name 701 "r039"
+ Name 705 "r040"
+ Name 708 "r041"
+ Name 711 "r042"
+ Name 715 "r039a"
+ Name 720 "r039b"
+ Name 726 "r043"
+ Name 729 "r044"
+ Name 732 "r045"
+ Name 736 "r046"
+ Name 739 "r047"
+ Name 743 "r048"
+ Name 747 "r049"
+ Name 750 "r050"
+ Name 754 "r051"
+ Name 757 "r052"
+ Name 761 "r053"
+ Name 765 "r054"
+ Name 769 "r055"
+ Name 772 "r056"
+ Name 775 "r057"
+ Name 778 "r058"
+ Name 783 "r059"
+ Name 786 "r060"
+ Name 793 "r061"
+ Name 796 "r062"
+ Name 801 "r063"
+ Name 804 "r064"
+ Name 808 "r065"
+ Name 811 "r066"
+ Name 814 "r067"
+ Name 821 "r000"
+ Name 824 "r001"
+ Name 827 "r002"
+ Name 830 "r003"
+ Name 833 "r004"
+ Name 838 "r005"
+ Name 841 "r006"
+ Name 844 "r007"
+ Name 847 "r009"
+ Name 850 "r010"
+ Name 854 "r011"
+ Name 857 "r012"
+ Name 870 "r013"
+ Name 873 "r014"
+ Name 876 "r015"
+ Name 879 "r016"
+ Name 882 "r017"
+ Name 885 "r018"
+ Name 888 "r019"
+ Name 891 "r020"
+ Name 894 "r021"
+ Name 897 "r022"
+ Name 900 "r023"
+ Name 904 "r024"
+ Name 908 "r025"
+ Name 919 "r029"
+ Name 922 "r030"
+ Name 925 "r031"
+ Name 930 "r032"
+ Name 935 "r033"
+ Name 937 "r034"
+ Name 940 "r036"
+ Name 944 "r037"
+ Name 947 "r038"
+ Name 949 "ResType"
+ Name 953 "r039"
+ Name 957 "r040"
+ Name 960 "r041"
+ Name 963 "r042"
+ Name 967 "r039a"
+ Name 972 "r043"
+ Name 975 "r044"
+ Name 978 "r045"
+ Name 982 "r046"
+ Name 985 "r047"
+ Name 989 "r048"
+ Name 993 "r049"
+ Name 996 "r050"
+ Name 1000 "r051"
+ Name 1003 "r052"
+ Name 1007 "r053"
+ Name 1011 "r054"
+ Name 1015 "r055"
+ Name 1018 "r056"
+ Name 1021 "r057"
+ Name 1024 "r058"
+ Name 1029 "r059"
+ Name 1032 "r060"
+ Name 1039 "r061"
+ Name 1042 "r062"
+ Name 1047 "r063"
+ Name 1050 "r064"
+ Name 1054 "r065"
+ Name 1057 "r066"
+ Name 1060 "r067"
+ Name 1067 "r000"
+ Name 1070 "r001"
+ Name 1075 "r003"
+ Name 1078 "r004"
+ Name 1081 "r005"
+ Name 1084 "r006"
+ Name 1088 "r007"
+ Name 1099 "r008"
+ Name 1104 "r009"
+ Name 1107 "r010"
+ Name 1110 "r011"
+ Name 1113 "r012"
+ Name 1116 "r013"
+ Name 1119 "r014"
+ Name 1122 "r015"
+ Name 1125 "r016"
+ Name 1128 "r017"
+ Name 1131 "r018"
+ Name 1134 "r019"
+ Name 1137 "R020"
+ Name 1140 "r021"
+ Name 1143 "r022"
+ Name 1153 "r023"
+ Name 1156 "r024"
+ Name 1158 "ResType"
+ Name 1162 "r025"
+ Name 1165 "r026"
+ Name 1169 "r026a"
+ Name 1174 "r027"
+ Name 1177 "r028"
+ Name 1181 "r029"
+ Name 1184 "r030"
+ Name 1188 "r031"
+ Name 1192 "r032"
+ Name 1196 "r033"
+ Name 1199 "r034"
+ Name 1202 "r035"
+ Name 1205 "r036"
+ Name 1210 "r037"
+ Name 1213 "r038"
+ Name 1220 "r039"
+ Name 1223 "r049"
+ Name 1228 "r041"
+ Name 1231 "r042"
+ Name 1235 "r043"
+ Name 1238 "r044"
+ Name 1243 "r046"
+ Name 1250 "r000"
+ Name 1253 "r001"
+ Name 1258 "r003"
+ Name 1261 "r004"
+ Name 1264 "r005"
+ Name 1267 "r006"
+ Name 1271 "r007"
+ Name 1282 "r008"
+ Name 1287 "r009"
+ Name 1290 "r010"
+ Name 1293 "r011"
+ Name 1296 "r012"
+ Name 1299 "r013"
+ Name 1302 "r014"
+ Name 1305 "r015"
+ Name 1308 "r016"
+ Name 1311 "r017"
+ Name 1314 "r018"
+ Name 1317 "r019"
+ Name 1320 "R020"
+ Name 1323 "r021"
+ Name 1326 "r022"
+ Name 1339 "r023"
+ Name 1342 "r024"
+ Name 1344 "ResType"
+ Name 1348 "r025"
+ Name 1351 "r026"
+ Name 1355 "r026a"
+ Name 1360 "r027"
+ Name 1363 "r028"
+ Name 1367 "r029"
+ Name 1370 "r030"
+ Name 1374 "r031"
+ Name 1378 "r032"
+ Name 1382 "r033"
+ Name 1385 "r034"
+ Name 1388 "r035"
+ Name 1391 "r036"
+ Name 1396 "r037"
+ Name 1399 "r038"
+ Name 1406 "r039"
+ Name 1409 "r049"
+ Name 1414 "r041"
+ Name 1417 "r042"
+ Name 1421 "r043"
+ Name 1424 "r044"
+ Name 1429 "r046"
+ Name 1436 "r000"
+ Name 1439 "r001"
+ Name 1444 "r003"
+ Name 1447 "r004"
+ Name 1450 "r005"
+ Name 1453 "r006"
+ Name 1457 "r007"
+ Name 1468 "r008"
+ Name 1473 "r009"
+ Name 1476 "r010"
+ Name 1479 "r011"
+ Name 1482 "r012"
+ Name 1485 "r013"
+ Name 1488 "r014"
+ Name 1491 "r015"
+ Name 1494 "r016"
+ Name 1497 "r017"
+ Name 1500 "r018"
+ Name 1503 "r019"
+ Name 1506 "R020"
+ Name 1509 "r021"
+ Name 1512 "r022"
+ Name 1528 "r023"
+ Name 1531 "r024"
+ Name 1533 "ResType"
+ Name 1537 "r025"
+ Name 1540 "r026"
+ Name 1544 "r026a"
+ Name 1549 "r027"
+ Name 1552 "r028"
+ Name 1556 "r029"
+ Name 1559 "r030"
+ Name 1563 "r031"
+ Name 1567 "r032"
+ Name 1571 "r033"
+ Name 1574 "r034"
+ Name 1577 "r035"
+ Name 1580 "r036"
+ Name 1585 "r037"
+ Name 1588 "r038"
+ Name 1595 "r039"
+ Name 1598 "r049"
+ Name 1603 "r041"
+ Name 1606 "r042"
+ Name 1610 "r043"
+ Name 1613 "r044"
+ Name 1618 "r046"
+ Name 1625 "r0"
+ Name 1629 "r1"
+ Name 1633 "r2"
+ Name 1637 "r3"
+ Name 1641 "r4"
+ Name 1645 "r5"
+ Name 1649 "r6"
+ Name 1653 "r7"
+ Name 1657 "r8"
+ Name 1661 "r0"
+ Name 1665 "r1"
+ Name 1669 "r2"
+ Name 1673 "r3"
+ Name 1677 "r4"
+ Name 1681 "r5"
+ Name 1685 "r6"
+ Name 1689 "r7"
+ Name 1693 "r8"
+ Name 1697 "r0"
+ Name 1701 "r1"
+ Name 1705 "r2"
+ Name 1709 "r3"
+ Name 1713 "r4"
+ Name 1717 "r5"
+ Name 1721 "r6"
+ Name 1725 "r7"
+ Name 1729 "r8"
+ Name 1733 "r00"
+ Name 1737 "r01"
+ Name 1741 "r02"
+ Name 1745 "r03"
+ Name 1749 "r04"
+ Name 1753 "r05"
+ Name 1757 "r06"
+ Name 1761 "r07"
+ Name 1765 "r08"
+ Name 1769 "r09"
+ Name 1773 "r10"
+ Name 1777 "r11"
+ Name 1781 "r12"
+ Name 1785 "r13"
+ Name 1789 "r14"
+ Name 1793 "r15"
+ Name 1797 "r16"
+ Name 1801 "PS_OUTPUT"
+ MemberName 1801(PS_OUTPUT) 0 "color"
+ Name 1803 "ps_output"
+ Name 1808 "color"
+ Name 1813 "gs_ua"
+ Name 1814 "gs_ub"
+ Name 1815 "gs_uc"
+ Name 1817 "gs_ua2"
+ Name 1818 "gs_ub2"
+ Name 1819 "gs_uc2"
+ Name 1821 "gs_ua3"
+ Name 1822 "gs_ub3"
+ Name 1823 "gs_uc3"
+ Name 1825 "gs_ua4"
+ Name 1826 "gs_ub4"
+ Name 1827 "gs_uc4"
+ Decorate 1808(color) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -6182,98 +6184,100 @@
148: TypeInt 32 1
149: TypePointer Function 148(int)
175: 6(float) Constant 0
- 187: 8(int) Constant 7
- 217: 148(int) Constant 7
- 235(ResType): TypeStruct 6(float) 148(int)
- 263: 6(float) Constant 1050288283
- 284: 6(float) Constant 1065353216
- 288: 8(int) Constant 2
+ 187: 148(int) Constant 7
+ 234(ResType): TypeStruct 6(float) 148(int)
+ 262: 6(float) Constant 1050288283
+ 283: 6(float) Constant 1065353216
+ 287: 148(int) Constant 2
352: TypeVector 148(int) 2
353: TypePointer Function 352(ivec2)
379: 24(fvec2) ConstantComposite 175 175
380: TypeVector 131(bool) 2
- 393: 8(int) Constant 3
- 394: 26(ivec2) ConstantComposite 187 393
- 437: 8(int) Constant 8
- 438: 26(ivec2) ConstantComposite 187 437
- 454(ResType): TypeStruct 24(fvec2) 352(ivec2)
- 461: TypePointer Function 380(bvec2)
- 519: 6(float) Constant 1073741824
- 522: 8(int) Constant 1
- 523: 26(ivec2) ConstantComposite 522 288
- 570: 24(fvec2) ConstantComposite 284 519
- 588: TypeVector 148(int) 3
- 589: TypePointer Function 588(ivec3)
- 615: 36(fvec3) ConstantComposite 175 175 175
- 616: TypeVector 131(bool) 3
- 629: 8(int) Constant 5
- 630: 38(ivec3) ConstantComposite 187 393 629
- 677: 8(int) Constant 4
- 678: 38(ivec3) ConstantComposite 288 393 677
- 694(ResType): TypeStruct 36(fvec3) 588(ivec3)
- 701: TypePointer Function 616(bvec3)
- 720: 6(float) Constant 1050253722
- 767: 38(ivec3) ConstantComposite 522 288 393
- 814: 6(float) Constant 1077936128
- 815: 36(fvec3) ConstantComposite 284 519 814
- 833: TypeVector 148(int) 4
- 834: TypePointer Function 833(ivec4)
- 860: 48(fvec4) ConstantComposite 175 175 175 175
- 861: TypeVector 131(bool) 4
- 874: 50(ivec4) ConstantComposite 187 393 629 288
- 928: 8(int) Constant 9
- 929: 8(int) Constant 10
- 930: 50(ivec4) ConstantComposite 187 437 928 929
- 946(ResType): TypeStruct 48(fvec4) 833(ivec4)
- 953: TypePointer Function 861(bvec4)
- 1013: 50(ivec4) ConstantComposite 522 288 393 677
- 1060: 6(float) Constant 1082130432
- 1061: 48(fvec4) ConstantComposite 284 519 814 1060
- 1089: 60 ConstantComposite 379 379
- 1090: TypeMatrix 380(bvec2) 2
- 1155(ResType): TypeStruct 60 352(ivec2)
- 1243: 24(fvec2) ConstantComposite 519 519
- 1244: 60 ConstantComposite 1243 1243
- 1272: 68 ConstantComposite 615 615 615
- 1273: TypeMatrix 616(bvec3) 3
- 1341(ResType): TypeStruct 68 588(ivec3)
- 1429: 36(fvec3) ConstantComposite 814 814 814
- 1430: 68 ConstantComposite 1429 1429 1429
- 1458: 76 ConstantComposite 860 860 860 860
- 1459: TypeMatrix 861(bvec4) 4
- 1530(ResType): TypeStruct 76 833(ivec4)
- 1618: 48(fvec4) ConstantComposite 1060 1060 1060 1060
- 1619: 76 ConstantComposite 1618 1618 1618 1618
- 1798(PS_OUTPUT): TypeStruct 48(fvec4)
- 1799: TypePointer Function 1798(PS_OUTPUT)
- 1801: 148(int) Constant 0
- 1802: 48(fvec4) ConstantComposite 284 284 284 284
- 1804: TypePointer Output 48(fvec4)
- 1805(color): 1804(ptr) Variable Output
- 1809: TypePointer Workgroup 8(int)
- 1810(gs_ua): 1809(ptr) Variable Workgroup
- 1811(gs_ub): 1809(ptr) Variable Workgroup
- 1812(gs_uc): 1809(ptr) Variable Workgroup
- 1813: TypePointer Workgroup 26(ivec2)
- 1814(gs_ua2): 1813(ptr) Variable Workgroup
- 1815(gs_ub2): 1813(ptr) Variable Workgroup
- 1816(gs_uc2): 1813(ptr) Variable Workgroup
- 1817: TypePointer Workgroup 38(ivec3)
- 1818(gs_ua3): 1817(ptr) Variable Workgroup
- 1819(gs_ub3): 1817(ptr) Variable Workgroup
- 1820(gs_uc3): 1817(ptr) Variable Workgroup
- 1821: TypePointer Workgroup 50(ivec4)
- 1822(gs_ua4): 1821(ptr) Variable Workgroup
- 1823(gs_ub4): 1821(ptr) Variable Workgroup
- 1824(gs_uc4): 1821(ptr) Variable Workgroup
+ 393: 148(int) Constant 3
+ 394: 352(ivec2) ConstantComposite 187 393
+ 437: 8(int) Constant 7
+ 438: 8(int) Constant 8
+ 439: 26(ivec2) ConstantComposite 437 438
+ 455(ResType): TypeStruct 24(fvec2) 352(ivec2)
+ 462: TypePointer Function 380(bvec2)
+ 520: 6(float) Constant 1073741824
+ 523: 8(int) Constant 1
+ 524: 8(int) Constant 2
+ 525: 26(ivec2) ConstantComposite 523 524
+ 572: 24(fvec2) ConstantComposite 283 520
+ 590: TypeVector 148(int) 3
+ 591: TypePointer Function 590(ivec3)
+ 617: 36(fvec3) ConstantComposite 175 175 175
+ 618: TypeVector 131(bool) 3
+ 631: 8(int) Constant 3
+ 632: 8(int) Constant 5
+ 633: 38(ivec3) ConstantComposite 437 631 632
+ 680: 8(int) Constant 4
+ 681: 38(ivec3) ConstantComposite 524 631 680
+ 697(ResType): TypeStruct 36(fvec3) 590(ivec3)
+ 704: TypePointer Function 618(bvec3)
+ 723: 6(float) Constant 1050253722
+ 770: 38(ivec3) ConstantComposite 523 524 631
+ 817: 6(float) Constant 1077936128
+ 818: 36(fvec3) ConstantComposite 283 520 817
+ 836: TypeVector 148(int) 4
+ 837: TypePointer Function 836(ivec4)
+ 863: 48(fvec4) ConstantComposite 175 175 175 175
+ 864: TypeVector 131(bool) 4
+ 877: 50(ivec4) ConstantComposite 437 631 632 524
+ 931: 8(int) Constant 9
+ 932: 8(int) Constant 10
+ 933: 50(ivec4) ConstantComposite 437 438 931 932
+ 949(ResType): TypeStruct 48(fvec4) 836(ivec4)
+ 956: TypePointer Function 864(bvec4)
+ 1016: 50(ivec4) ConstantComposite 523 524 631 680
+ 1063: 6(float) Constant 1082130432
+ 1064: 48(fvec4) ConstantComposite 283 520 817 1063
+ 1092: 60 ConstantComposite 379 379
+ 1093: TypeMatrix 380(bvec2) 2
+ 1158(ResType): TypeStruct 60 352(ivec2)
+ 1246: 24(fvec2) ConstantComposite 520 520
+ 1247: 60 ConstantComposite 1246 1246
+ 1275: 68 ConstantComposite 617 617 617
+ 1276: TypeMatrix 618(bvec3) 3
+ 1344(ResType): TypeStruct 68 590(ivec3)
+ 1432: 36(fvec3) ConstantComposite 817 817 817
+ 1433: 68 ConstantComposite 1432 1432 1432
+ 1461: 76 ConstantComposite 863 863 863 863
+ 1462: TypeMatrix 864(bvec4) 4
+ 1533(ResType): TypeStruct 76 836(ivec4)
+ 1621: 48(fvec4) ConstantComposite 1063 1063 1063 1063
+ 1622: 76 ConstantComposite 1621 1621 1621 1621
+ 1801(PS_OUTPUT): TypeStruct 48(fvec4)
+ 1802: TypePointer Function 1801(PS_OUTPUT)
+ 1804: 148(int) Constant 0
+ 1805: 48(fvec4) ConstantComposite 283 283 283 283
+ 1807: TypePointer Output 48(fvec4)
+ 1808(color): 1807(ptr) Variable Output
+ 1812: TypePointer Workgroup 8(int)
+ 1813(gs_ua): 1812(ptr) Variable Workgroup
+ 1814(gs_ub): 1812(ptr) Variable Workgroup
+ 1815(gs_uc): 1812(ptr) Variable Workgroup
+ 1816: TypePointer Workgroup 26(ivec2)
+ 1817(gs_ua2): 1816(ptr) Variable Workgroup
+ 1818(gs_ub2): 1816(ptr) Variable Workgroup
+ 1819(gs_uc2): 1816(ptr) Variable Workgroup
+ 1820: TypePointer Workgroup 38(ivec3)
+ 1821(gs_ua3): 1820(ptr) Variable Workgroup
+ 1822(gs_ub3): 1820(ptr) Variable Workgroup
+ 1823(gs_uc3): 1820(ptr) Variable Workgroup
+ 1824: TypePointer Workgroup 50(ivec4)
+ 1825(gs_ua4): 1824(ptr) Variable Workgroup
+ 1826(gs_ub4): 1824(ptr) Variable Workgroup
+ 1827(gs_uc4): 1824(ptr) Variable Workgroup
4(main): 2 Function None 3
5: Label
- 1800(ps_output): 1799(ptr) Variable Function
- 1803: 49(ptr) AccessChain 1800(ps_output) 1801
- Store 1803 1802
- 1806: 49(ptr) AccessChain 1800(ps_output) 1801
- 1807: 48(fvec4) Load 1806
- Store 1805(color) 1807
+ 1803(ps_output): 1802(ptr) Variable Function
+ 1806: 49(ptr) AccessChain 1803(ps_output) 1804
+ Store 1806 1805
+ 1809: 49(ptr) AccessChain 1803(ps_output) 1804
+ 1810: 48(fvec4) Load 1809
+ Store 1808(color) 1810
Return
FunctionEnd
16(PixelShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10
@@ -6297,7 +6301,7 @@
169(r012): 7(ptr) Variable Function
180(r014): 7(ptr) Variable Function
183(r015): 7(ptr) Variable Function
- 186(r016): 9(ptr) Variable Function
+ 186(r016): 149(ptr) Variable Function
189(r017): 7(ptr) Variable Function
192(r018): 7(ptr) Variable Function
195(r019): 7(ptr) Variable Function
@@ -6308,25 +6312,25 @@
210(r027): 7(ptr) Variable Function
213(r028): 7(ptr) Variable Function
216(r029): 9(ptr) Variable Function
- 220(r030): 9(ptr) Variable Function
- 223(r031): 7(ptr) Variable Function
- 226(r033): 7(ptr) Variable Function
- 230(r034): 7(ptr) Variable Function
- 233(r035): 7(ptr) Variable Function
- 239(r036): 7(ptr) Variable Function
- 242(r037): 132(ptr) Variable Function
- 245(r038): 132(ptr) Variable Function
- 248(r039): 7(ptr) Variable Function
- 252(r039a): 7(ptr) Variable Function
- 257(r040): 7(ptr) Variable Function
- 260(r041): 7(ptr) Variable Function
- 265(r042): 7(ptr) Variable Function
- 268(r043): 7(ptr) Variable Function
- 272(r044): 7(ptr) Variable Function
- 276(r045): 7(ptr) Variable Function
- 280(r046): 7(ptr) Variable Function
- 283(r047): 7(ptr) Variable Function
- 287(r048): 9(ptr) Variable Function
+ 219(r030): 9(ptr) Variable Function
+ 222(r031): 7(ptr) Variable Function
+ 225(r033): 7(ptr) Variable Function
+ 229(r034): 7(ptr) Variable Function
+ 232(r035): 7(ptr) Variable Function
+ 238(r036): 7(ptr) Variable Function
+ 241(r037): 132(ptr) Variable Function
+ 244(r038): 132(ptr) Variable Function
+ 247(r039): 7(ptr) Variable Function
+ 251(r039a): 7(ptr) Variable Function
+ 256(r040): 7(ptr) Variable Function
+ 259(r041): 7(ptr) Variable Function
+ 264(r042): 7(ptr) Variable Function
+ 267(r043): 7(ptr) Variable Function
+ 271(r044): 7(ptr) Variable Function
+ 275(r045): 7(ptr) Variable Function
+ 279(r046): 7(ptr) Variable Function
+ 282(r047): 7(ptr) Variable Function
+ 286(r048): 9(ptr) Variable Function
290(r049): 7(ptr) Variable Function
293(r050): 7(ptr) Variable Function
296(r051): 7(ptr) Variable Function
@@ -6391,7 +6395,7 @@
184: 6(float) Load 11(inF0)
185: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 184
Store 183(r015) 185
- 188: 8(int) BitCount 187
+ 188: 148(int) BitCount 187
Store 186(r016) 188
190: 6(float) Load 11(inF0)
191: 6(float) DPdx 190
@@ -6420,76 +6424,77 @@
214: 6(float) Load 11(inF0)
215: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 214
Store 213(r028) 215
- 218: 148(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 217
- 219: 8(int) Bitcast 218
- Store 216(r029) 219
- 221: 148(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 217
- 222: 8(int) Bitcast 221
- Store 220(r030) 222
- 224: 6(float) Load 11(inF0)
- 225: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 224
- Store 223(r031) 225
- 227: 6(float) Load 11(inF0)
- 228: 6(float) Load 12(inF1)
- 229: 6(float) FMod 227 228
- Store 226(r033) 229
- 231: 6(float) Load 11(inF0)
- 232: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 231
- Store 230(r034) 232
- 234: 6(float) Load 11(inF0)
- 236:235(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 234
- 237: 148(int) CompositeExtract 236 1
- Store 12(inF1) 237
- 238: 6(float) CompositeExtract 236 0
- Store 233(r035) 238
- 240: 6(float) Load 11(inF0)
- 241: 6(float) Fwidth 240
- Store 239(r036) 241
- 243: 6(float) Load 11(inF0)
- 244: 131(bool) IsInf 243
- Store 242(r037) 244
- 246: 6(float) Load 11(inF0)
- 247: 131(bool) IsNan 246
- Store 245(r038) 247
- 249: 6(float) Load 11(inF0)
- 250: 6(float) Load 12(inF1)
- 251: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 249 250
- Store 248(r039) 251
- 253: 6(float) Load 11(inF0)
- 254: 6(float) Load 12(inF1)
- 255: 6(float) Load 13(inF2)
- 256: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 253 254 255
- Store 252(r039a) 256
- 258: 6(float) Load 11(inF0)
- 259: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 258
- Store 257(r040) 259
- 261: 6(float) Load 11(inF0)
- 262: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 261
- 264: 6(float) FMul 262 263
- Store 260(r041) 264
- 266: 6(float) Load 11(inF0)
- 267: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 266
- Store 265(r042) 267
- 269: 6(float) Load 11(inF0)
- 270: 6(float) Load 12(inF1)
- 271: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 269 270
- Store 268(r043) 271
- 273: 6(float) Load 11(inF0)
- 274: 6(float) Load 12(inF1)
- 275: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 273 274
- Store 272(r044) 275
- 277: 6(float) Load 11(inF0)
- 278: 6(float) Load 12(inF1)
- 279: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 277 278
- Store 276(r045) 279
- 281: 6(float) Load 11(inF0)
- 282: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 281
- Store 280(r046) 282
- 285: 6(float) Load 11(inF0)
- 286: 6(float) FDiv 284 285
- Store 283(r047) 286
- 289: 8(int) BitReverse 288
- Store 287(r048) 289
+ 217: 148(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 187
+ 218: 8(int) Bitcast 217
+ Store 216(r029) 218
+ 220: 148(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 187
+ 221: 8(int) Bitcast 220
+ Store 219(r030) 221
+ 223: 6(float) Load 11(inF0)
+ 224: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 223
+ Store 222(r031) 224
+ 226: 6(float) Load 11(inF0)
+ 227: 6(float) Load 12(inF1)
+ 228: 6(float) FMod 226 227
+ Store 225(r033) 228
+ 230: 6(float) Load 11(inF0)
+ 231: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 230
+ Store 229(r034) 231
+ 233: 6(float) Load 11(inF0)
+ 235:234(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 233
+ 236: 148(int) CompositeExtract 235 1
+ Store 12(inF1) 236
+ 237: 6(float) CompositeExtract 235 0
+ Store 232(r035) 237
+ 239: 6(float) Load 11(inF0)
+ 240: 6(float) Fwidth 239
+ Store 238(r036) 240
+ 242: 6(float) Load 11(inF0)
+ 243: 131(bool) IsInf 242
+ Store 241(r037) 243
+ 245: 6(float) Load 11(inF0)
+ 246: 131(bool) IsNan 245
+ Store 244(r038) 246
+ 248: 6(float) Load 11(inF0)
+ 249: 6(float) Load 12(inF1)
+ 250: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 248 249
+ Store 247(r039) 250
+ 252: 6(float) Load 11(inF0)
+ 253: 6(float) Load 12(inF1)
+ 254: 6(float) Load 13(inF2)
+ 255: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 252 253 254
+ Store 251(r039a) 255
+ 257: 6(float) Load 11(inF0)
+ 258: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 257
+ Store 256(r040) 258
+ 260: 6(float) Load 11(inF0)
+ 261: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 260
+ 263: 6(float) FMul 261 262
+ Store 259(r041) 263
+ 265: 6(float) Load 11(inF0)
+ 266: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 265
+ Store 264(r042) 266
+ 268: 6(float) Load 11(inF0)
+ 269: 6(float) Load 12(inF1)
+ 270: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 268 269
+ Store 267(r043) 270
+ 272: 6(float) Load 11(inF0)
+ 273: 6(float) Load 12(inF1)
+ 274: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 272 273
+ Store 271(r044) 274
+ 276: 6(float) Load 11(inF0)
+ 277: 6(float) Load 12(inF1)
+ 278: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 276 277
+ Store 275(r045) 278
+ 280: 6(float) Load 11(inF0)
+ 281: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 280
+ Store 279(r046) 281
+ 284: 6(float) Load 11(inF0)
+ 285: 6(float) FDiv 283 284
+ Store 282(r047) 285
+ 288: 148(int) BitReverse 287
+ 289: 8(int) Bitcast 288
+ Store 286(r048) 289
291: 6(float) Load 11(inF0)
292: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 291
Store 290(r049) 292
@@ -6497,7 +6502,7 @@
295: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 294
Store 293(r050) 295
297: 6(float) Load 11(inF0)
- 298: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 297 175 284
+ 298: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 297 175 283
Store 296(r051) 298
300: 6(float) Load 11(inF0)
301: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 300
@@ -6565,7 +6570,7 @@
373(r012): 25(ptr) Variable Function
386(r013): 25(ptr) Variable Function
389(r015): 25(ptr) Variable Function
- 392(r016): 27(ptr) Variable Function
+ 392(r016): 353(ptr) Variable Function
396(r017): 25(ptr) Variable Function
399(r018): 25(ptr) Variable Function
402(r019): 25(ptr) Variable Function
@@ -6579,41 +6584,41 @@
428(r029): 25(ptr) Variable Function
431(r030): 25(ptr) Variable Function
436(r031): 27(ptr) Variable Function
- 440(r032): 27(ptr) Variable Function
- 442(r033): 25(ptr) Variable Function
- 445(r035): 25(ptr) Variable Function
- 449(r036): 25(ptr) Variable Function
- 452(r037): 25(ptr) Variable Function
- 458(r038): 25(ptr) Variable Function
- 462(r039): 461(ptr) Variable Function
- 465(r040): 461(ptr) Variable Function
- 468(r041): 25(ptr) Variable Function
- 472(r039a): 25(ptr) Variable Function
- 477(r042): 7(ptr) Variable Function
- 480(r043): 25(ptr) Variable Function
- 483(r044): 25(ptr) Variable Function
- 487(r045): 25(ptr) Variable Function
- 490(r046): 25(ptr) Variable Function
- 494(r047): 25(ptr) Variable Function
- 498(r048): 25(ptr) Variable Function
- 501(r049): 25(ptr) Variable Function
- 505(r050): 25(ptr) Variable Function
- 508(r051): 25(ptr) Variable Function
- 512(r052): 25(ptr) Variable Function
- 516(r053): 25(ptr) Variable Function
- 521(r054): 27(ptr) Variable Function
- 525(r055): 25(ptr) Variable Function
- 528(r056): 25(ptr) Variable Function
- 531(r057): 25(ptr) Variable Function
- 536(r058): 25(ptr) Variable Function
- 539(r059): 25(ptr) Variable Function
- 546(r060): 25(ptr) Variable Function
- 549(r061): 25(ptr) Variable Function
- 554(r062): 25(ptr) Variable Function
- 557(r063): 25(ptr) Variable Function
- 561(r064): 25(ptr) Variable Function
- 564(r065): 25(ptr) Variable Function
- 567(r066): 25(ptr) Variable Function
+ 441(r032): 27(ptr) Variable Function
+ 443(r033): 25(ptr) Variable Function
+ 446(r035): 25(ptr) Variable Function
+ 450(r036): 25(ptr) Variable Function
+ 453(r037): 25(ptr) Variable Function
+ 459(r038): 25(ptr) Variable Function
+ 463(r039): 462(ptr) Variable Function
+ 466(r040): 462(ptr) Variable Function
+ 469(r041): 25(ptr) Variable Function
+ 473(r039a): 25(ptr) Variable Function
+ 478(r042): 7(ptr) Variable Function
+ 481(r043): 25(ptr) Variable Function
+ 484(r044): 25(ptr) Variable Function
+ 488(r045): 25(ptr) Variable Function
+ 491(r046): 25(ptr) Variable Function
+ 495(r047): 25(ptr) Variable Function
+ 499(r048): 25(ptr) Variable Function
+ 502(r049): 25(ptr) Variable Function
+ 506(r050): 25(ptr) Variable Function
+ 509(r051): 25(ptr) Variable Function
+ 513(r052): 25(ptr) Variable Function
+ 517(r053): 25(ptr) Variable Function
+ 522(r054): 27(ptr) Variable Function
+ 527(r055): 25(ptr) Variable Function
+ 530(r056): 25(ptr) Variable Function
+ 533(r057): 25(ptr) Variable Function
+ 538(r058): 25(ptr) Variable Function
+ 541(r059): 25(ptr) Variable Function
+ 548(r060): 25(ptr) Variable Function
+ 551(r061): 25(ptr) Variable Function
+ 556(r062): 25(ptr) Variable Function
+ 559(r063): 25(ptr) Variable Function
+ 563(r064): 25(ptr) Variable Function
+ 566(r065): 25(ptr) Variable Function
+ 569(r066): 25(ptr) Variable Function
338: 24(fvec2) Load 29(inF0)
339: 131(bool) All 338
Store 337(r000) 339
@@ -6667,7 +6672,7 @@
390: 24(fvec2) Load 29(inF0)
391: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 390
Store 389(r015) 391
- 395: 26(ivec2) BitCount 394
+ 395: 352(ivec2) BitCount 394
Store 392(r016) 395
397: 24(fvec2) Load 29(inF0)
398: 24(fvec2) DPdx 397
@@ -6709,137 +6714,137 @@
434: 24(fvec2) Load 31(inF2)
435: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 432 433 434
Store 431(r030) 435
- 439: 26(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 438
- Store 436(r031) 439
- 441: 26(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 438
- Store 440(r032) 441
- 443: 24(fvec2) Load 29(inF0)
- 444: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 443
- Store 442(r033) 444
- 446: 24(fvec2) Load 29(inF0)
- 447: 24(fvec2) Load 30(inF1)
- 448: 24(fvec2) FMod 446 447
- Store 445(r035) 448
- 450: 24(fvec2) Load 29(inF0)
- 451: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 450
- Store 449(r036) 451
- 453: 24(fvec2) Load 29(inF0)
- 455:454(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 453
- 456: 352(ivec2) CompositeExtract 455 1
- Store 30(inF1) 456
- 457: 24(fvec2) CompositeExtract 455 0
- Store 452(r037) 457
- 459: 24(fvec2) Load 29(inF0)
- 460: 24(fvec2) Fwidth 459
- Store 458(r038) 460
- 463: 24(fvec2) Load 29(inF0)
- 464: 380(bvec2) IsInf 463
- Store 462(r039) 464
- 466: 24(fvec2) Load 29(inF0)
- 467: 380(bvec2) IsNan 466
- Store 465(r040) 467
- 469: 24(fvec2) Load 29(inF0)
- 470: 24(fvec2) Load 30(inF1)
- 471: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 469 470
- Store 468(r041) 471
- 473: 24(fvec2) Load 29(inF0)
- 474: 24(fvec2) Load 30(inF1)
- 475: 24(fvec2) Load 31(inF2)
- 476: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 473 474 475
- Store 472(r039a) 476
- 478: 24(fvec2) Load 29(inF0)
- 479: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 478
- Store 477(r042) 479
- 481: 24(fvec2) Load 29(inF0)
- 482: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 481
- Store 480(r043) 482
- 484: 24(fvec2) Load 29(inF0)
- 485: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 484
- 486: 24(fvec2) VectorTimesScalar 485 263
- Store 483(r044) 486
- 488: 24(fvec2) Load 29(inF0)
- 489: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 488
- Store 487(r045) 489
- 491: 24(fvec2) Load 29(inF0)
- 492: 24(fvec2) Load 30(inF1)
- 493: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 491 492
- Store 490(r046) 493
- 495: 24(fvec2) Load 29(inF0)
- 496: 24(fvec2) Load 30(inF1)
- 497: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 495 496
- Store 494(r047) 497
- 499: 24(fvec2) Load 29(inF0)
- 500: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 499
- Store 498(r048) 500
- 502: 24(fvec2) Load 29(inF0)
- 503: 24(fvec2) Load 30(inF1)
- 504: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 502 503
- Store 501(r049) 504
- 506: 24(fvec2) Load 29(inF0)
- 507: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 506
- Store 505(r050) 507
- 509: 24(fvec2) Load 29(inF0)
- 510: 24(fvec2) CompositeConstruct 284 284
- 511: 24(fvec2) FDiv 510 509
- Store 508(r051) 511
- 513: 24(fvec2) Load 29(inF0)
- 514: 24(fvec2) Load 30(inF1)
- 515: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 513 514
- Store 512(r052) 515
- 517: 24(fvec2) Load 29(inF0)
- 518: 24(fvec2) Load 30(inF1)
- 520: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 517 518 519
- Store 516(r053) 520
- 524: 26(ivec2) BitReverse 523
- Store 521(r054) 524
- 526: 24(fvec2) Load 29(inF0)
- 527: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 526
- Store 525(r055) 527
- 529: 24(fvec2) Load 29(inF0)
- 530: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 529
- Store 528(r056) 530
- 532: 24(fvec2) Load 29(inF0)
- 533: 24(fvec2) CompositeConstruct 175 175
- 534: 24(fvec2) CompositeConstruct 284 284
- 535: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 532 533 534
- Store 531(r057) 535
- 537: 24(fvec2) Load 29(inF0)
- 538: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 537
- Store 536(r058) 538
- 540: 24(fvec2) Load 29(inF0)
- 541: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 540
- Store 539(r059) 541
+ 440: 26(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 439
+ Store 436(r031) 440
+ 442: 26(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 439
+ Store 441(r032) 442
+ 444: 24(fvec2) Load 29(inF0)
+ 445: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 444
+ Store 443(r033) 445
+ 447: 24(fvec2) Load 29(inF0)
+ 448: 24(fvec2) Load 30(inF1)
+ 449: 24(fvec2) FMod 447 448
+ Store 446(r035) 449
+ 451: 24(fvec2) Load 29(inF0)
+ 452: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 451
+ Store 450(r036) 452
+ 454: 24(fvec2) Load 29(inF0)
+ 456:455(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 454
+ 457: 352(ivec2) CompositeExtract 456 1
+ Store 30(inF1) 457
+ 458: 24(fvec2) CompositeExtract 456 0
+ Store 453(r037) 458
+ 460: 24(fvec2) Load 29(inF0)
+ 461: 24(fvec2) Fwidth 460
+ Store 459(r038) 461
+ 464: 24(fvec2) Load 29(inF0)
+ 465: 380(bvec2) IsInf 464
+ Store 463(r039) 465
+ 467: 24(fvec2) Load 29(inF0)
+ 468: 380(bvec2) IsNan 467
+ Store 466(r040) 468
+ 470: 24(fvec2) Load 29(inF0)
+ 471: 24(fvec2) Load 30(inF1)
+ 472: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 470 471
+ Store 469(r041) 472
+ 474: 24(fvec2) Load 29(inF0)
+ 475: 24(fvec2) Load 30(inF1)
+ 476: 24(fvec2) Load 31(inF2)
+ 477: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 474 475 476
+ Store 473(r039a) 477
+ 479: 24(fvec2) Load 29(inF0)
+ 480: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 479
+ Store 478(r042) 480
+ 482: 24(fvec2) Load 29(inF0)
+ 483: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 482
+ Store 481(r043) 483
+ 485: 24(fvec2) Load 29(inF0)
+ 486: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 485
+ 487: 24(fvec2) VectorTimesScalar 486 262
+ Store 484(r044) 487
+ 489: 24(fvec2) Load 29(inF0)
+ 490: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 489
+ Store 488(r045) 490
+ 492: 24(fvec2) Load 29(inF0)
+ 493: 24(fvec2) Load 30(inF1)
+ 494: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 492 493
+ Store 491(r046) 494
+ 496: 24(fvec2) Load 29(inF0)
+ 497: 24(fvec2) Load 30(inF1)
+ 498: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 496 497
+ Store 495(r047) 498
+ 500: 24(fvec2) Load 29(inF0)
+ 501: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 500
+ Store 499(r048) 501
+ 503: 24(fvec2) Load 29(inF0)
+ 504: 24(fvec2) Load 30(inF1)
+ 505: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 503 504
+ Store 502(r049) 505
+ 507: 24(fvec2) Load 29(inF0)
+ 508: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 507
+ Store 506(r050) 508
+ 510: 24(fvec2) Load 29(inF0)
+ 511: 24(fvec2) CompositeConstruct 283 283
+ 512: 24(fvec2) FDiv 511 510
+ Store 509(r051) 512
+ 514: 24(fvec2) Load 29(inF0)
+ 515: 24(fvec2) Load 30(inF1)
+ 516: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 514 515
+ Store 513(r052) 516
+ 518: 24(fvec2) Load 29(inF0)
+ 519: 24(fvec2) Load 30(inF1)
+ 521: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 518 519 520
+ Store 517(r053) 521
+ 526: 26(ivec2) BitReverse 525
+ Store 522(r054) 526
+ 528: 24(fvec2) Load 29(inF0)
+ 529: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 528
+ Store 527(r055) 529
+ 531: 24(fvec2) Load 29(inF0)
+ 532: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 531
+ Store 530(r056) 532
+ 534: 24(fvec2) Load 29(inF0)
+ 535: 24(fvec2) CompositeConstruct 175 175
+ 536: 24(fvec2) CompositeConstruct 283 283
+ 537: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 534 535 536
+ Store 533(r057) 537
+ 539: 24(fvec2) Load 29(inF0)
+ 540: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 539
+ Store 538(r058) 540
542: 24(fvec2) Load 29(inF0)
543: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 542
- Store 30(inF1) 543
+ Store 541(r059) 543
544: 24(fvec2) Load 29(inF0)
- 545: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 544
- Store 31(inF2) 545
- 547: 24(fvec2) Load 29(inF0)
- 548: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 547
- Store 546(r060) 548
- 550: 24(fvec2) Load 29(inF0)
- 551: 24(fvec2) Load 30(inF1)
- 552: 24(fvec2) Load 31(inF2)
- 553: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 550 551 552
- Store 549(r061) 553
- 555: 24(fvec2) Load 29(inF0)
- 556: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 555
- Store 554(r062) 556
- 558: 24(fvec2) Load 29(inF0)
- 559: 24(fvec2) Load 30(inF1)
- 560: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 558 559
- Store 557(r063) 560
- 562: 24(fvec2) Load 29(inF0)
- 563: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 562
- Store 561(r064) 563
- 565: 24(fvec2) Load 29(inF0)
- 566: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 565
- Store 564(r065) 566
- 568: 24(fvec2) Load 29(inF0)
- 569: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 568
- Store 567(r066) 569
- ReturnValue 570
+ 545: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 544
+ Store 30(inF1) 545
+ 546: 24(fvec2) Load 29(inF0)
+ 547: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 546
+ Store 31(inF2) 547
+ 549: 24(fvec2) Load 29(inF0)
+ 550: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 549
+ Store 548(r060) 550
+ 552: 24(fvec2) Load 29(inF0)
+ 553: 24(fvec2) Load 30(inF1)
+ 554: 24(fvec2) Load 31(inF2)
+ 555: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 552 553 554
+ Store 551(r061) 555
+ 557: 24(fvec2) Load 29(inF0)
+ 558: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 557
+ Store 556(r062) 558
+ 560: 24(fvec2) Load 29(inF0)
+ 561: 24(fvec2) Load 30(inF1)
+ 562: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 560 561
+ Store 559(r063) 562
+ 564: 24(fvec2) Load 29(inF0)
+ 565: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 564
+ Store 563(r064) 565
+ 567: 24(fvec2) Load 29(inF0)
+ 568: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 567
+ Store 566(r065) 568
+ 570: 24(fvec2) Load 29(inF0)
+ 571: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 570
+ Store 569(r066) 571
+ ReturnValue 572
FunctionEnd
46(PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40
41(inF0): 37(ptr) FunctionParameter
@@ -6848,306 +6853,306 @@
44(inU0): 39(ptr) FunctionParameter
45(inU1): 39(ptr) FunctionParameter
47: Label
- 573(r000): 132(ptr) Variable Function
- 576(r001): 37(ptr) Variable Function
- 579(r002): 37(ptr) Variable Function
- 582(r003): 132(ptr) Variable Function
- 585(r004): 37(ptr) Variable Function
- 590(r005): 589(ptr) Variable Function
- 593(r006): 39(ptr) Variable Function
- 596(r007): 37(ptr) Variable Function
- 599(r009): 37(ptr) Variable Function
- 602(r010): 37(ptr) Variable Function
- 606(r011): 37(ptr) Variable Function
- 609(r012): 37(ptr) Variable Function
- 622(r013): 37(ptr) Variable Function
- 625(r014): 37(ptr) Variable Function
- 628(r015): 39(ptr) Variable Function
- 632(r016): 37(ptr) Variable Function
- 636(r017): 37(ptr) Variable Function
- 639(r018): 37(ptr) Variable Function
- 642(r019): 37(ptr) Variable Function
- 645(r020): 37(ptr) Variable Function
- 648(r021): 37(ptr) Variable Function
- 651(r022): 37(ptr) Variable Function
- 654(r023): 37(ptr) Variable Function
- 657(r024): 7(ptr) Variable Function
- 661(r025): 7(ptr) Variable Function
- 665(r029): 37(ptr) Variable Function
- 668(r030): 37(ptr) Variable Function
- 671(r031): 37(ptr) Variable Function
- 676(r032): 39(ptr) Variable Function
- 680(r033): 39(ptr) Variable Function
- 682(r034): 37(ptr) Variable Function
- 685(r036): 37(ptr) Variable Function
- 689(r037): 37(ptr) Variable Function
- 692(r038): 37(ptr) Variable Function
- 698(r039): 37(ptr) Variable Function
- 702(r040): 701(ptr) Variable Function
- 705(r041): 701(ptr) Variable Function
- 708(r042): 37(ptr) Variable Function
- 712(r039a): 37(ptr) Variable Function
- 717(r039b): 37(ptr) Variable Function
- 723(r043): 7(ptr) Variable Function
- 726(r044): 37(ptr) Variable Function
- 729(r045): 37(ptr) Variable Function
- 733(r046): 37(ptr) Variable Function
- 736(r047): 37(ptr) Variable Function
- 740(r048): 37(ptr) Variable Function
- 744(r049): 37(ptr) Variable Function
- 747(r050): 37(ptr) Variable Function
- 751(r051): 37(ptr) Variable Function
- 754(r052): 37(ptr) Variable Function
- 758(r053): 37(ptr) Variable Function
- 762(r054): 37(ptr) Variable Function
- 766(r055): 39(ptr) Variable Function
- 769(r056): 37(ptr) Variable Function
- 772(r057): 37(ptr) Variable Function
- 775(r058): 37(ptr) Variable Function
- 780(r059): 37(ptr) Variable Function
- 783(r060): 37(ptr) Variable Function
- 790(r061): 37(ptr) Variable Function
- 793(r062): 37(ptr) Variable Function
- 798(r063): 37(ptr) Variable Function
- 801(r064): 37(ptr) Variable Function
- 805(r065): 37(ptr) Variable Function
- 808(r066): 37(ptr) Variable Function
- 811(r067): 37(ptr) Variable Function
- 574: 36(fvec3) Load 41(inF0)
- 575: 131(bool) All 574
- Store 573(r000) 575
- 577: 36(fvec3) Load 41(inF0)
- 578: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 577
- Store 576(r001) 578
- 580: 36(fvec3) Load 41(inF0)
- 581: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 580
- Store 579(r002) 581
- 583: 36(fvec3) Load 41(inF0)
- 584: 131(bool) Any 583
- Store 582(r003) 584
- 586: 36(fvec3) Load 41(inF0)
- 587: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 586
- Store 585(r004) 587
- 591: 36(fvec3) Load 41(inF0)
- 592: 588(ivec3) Bitcast 591
- Store 590(r005) 592
- 594: 36(fvec3) Load 41(inF0)
- 595: 38(ivec3) Bitcast 594
- Store 593(r006) 595
- 597: 38(ivec3) Load 44(inU0)
- 598: 36(fvec3) Bitcast 597
- Store 596(r007) 598
- 600: 36(fvec3) Load 41(inF0)
- 601: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 600
- Store 599(r009) 601
- 603: 36(fvec3) Load 41(inF0)
- 604: 36(fvec3) Load 42(inF1)
- 605: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 603 604
- Store 602(r010) 605
- 607: 36(fvec3) Load 41(inF0)
- 608: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 607
- Store 606(r011) 608
- 610: 36(fvec3) Load 41(inF0)
- 611: 36(fvec3) Load 42(inF1)
- 612: 36(fvec3) Load 43(inF2)
- 613: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 610 611 612
- Store 609(r012) 613
- 614: 36(fvec3) Load 41(inF0)
- 617: 616(bvec3) FOrdLessThan 614 615
- 618: 131(bool) Any 617
- SelectionMerge 620 None
- BranchConditional 618 619 620
- 619: Label
+ 575(r000): 132(ptr) Variable Function
+ 578(r001): 37(ptr) Variable Function
+ 581(r002): 37(ptr) Variable Function
+ 584(r003): 132(ptr) Variable Function
+ 587(r004): 37(ptr) Variable Function
+ 592(r005): 591(ptr) Variable Function
+ 595(r006): 39(ptr) Variable Function
+ 598(r007): 37(ptr) Variable Function
+ 601(r009): 37(ptr) Variable Function
+ 604(r010): 37(ptr) Variable Function
+ 608(r011): 37(ptr) Variable Function
+ 611(r012): 37(ptr) Variable Function
+ 624(r013): 37(ptr) Variable Function
+ 627(r014): 37(ptr) Variable Function
+ 630(r015): 39(ptr) Variable Function
+ 635(r016): 37(ptr) Variable Function
+ 639(r017): 37(ptr) Variable Function
+ 642(r018): 37(ptr) Variable Function
+ 645(r019): 37(ptr) Variable Function
+ 648(r020): 37(ptr) Variable Function
+ 651(r021): 37(ptr) Variable Function
+ 654(r022): 37(ptr) Variable Function
+ 657(r023): 37(ptr) Variable Function
+ 660(r024): 7(ptr) Variable Function
+ 664(r025): 7(ptr) Variable Function
+ 668(r029): 37(ptr) Variable Function
+ 671(r030): 37(ptr) Variable Function
+ 674(r031): 37(ptr) Variable Function
+ 679(r032): 39(ptr) Variable Function
+ 683(r033): 39(ptr) Variable Function
+ 685(r034): 37(ptr) Variable Function
+ 688(r036): 37(ptr) Variable Function
+ 692(r037): 37(ptr) Variable Function
+ 695(r038): 37(ptr) Variable Function
+ 701(r039): 37(ptr) Variable Function
+ 705(r040): 704(ptr) Variable Function
+ 708(r041): 704(ptr) Variable Function
+ 711(r042): 37(ptr) Variable Function
+ 715(r039a): 37(ptr) Variable Function
+ 720(r039b): 37(ptr) Variable Function
+ 726(r043): 7(ptr) Variable Function
+ 729(r044): 37(ptr) Variable Function
+ 732(r045): 37(ptr) Variable Function
+ 736(r046): 37(ptr) Variable Function
+ 739(r047): 37(ptr) Variable Function
+ 743(r048): 37(ptr) Variable Function
+ 747(r049): 37(ptr) Variable Function
+ 750(r050): 37(ptr) Variable Function
+ 754(r051): 37(ptr) Variable Function
+ 757(r052): 37(ptr) Variable Function
+ 761(r053): 37(ptr) Variable Function
+ 765(r054): 37(ptr) Variable Function
+ 769(r055): 39(ptr) Variable Function
+ 772(r056): 37(ptr) Variable Function
+ 775(r057): 37(ptr) Variable Function
+ 778(r058): 37(ptr) Variable Function
+ 783(r059): 37(ptr) Variable Function
+ 786(r060): 37(ptr) Variable Function
+ 793(r061): 37(ptr) Variable Function
+ 796(r062): 37(ptr) Variable Function
+ 801(r063): 37(ptr) Variable Function
+ 804(r064): 37(ptr) Variable Function
+ 808(r065): 37(ptr) Variable Function
+ 811(r066): 37(ptr) Variable Function
+ 814(r067): 37(ptr) Variable Function
+ 576: 36(fvec3) Load 41(inF0)
+ 577: 131(bool) All 576
+ Store 575(r000) 577
+ 579: 36(fvec3) Load 41(inF0)
+ 580: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 579
+ Store 578(r001) 580
+ 582: 36(fvec3) Load 41(inF0)
+ 583: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 582
+ Store 581(r002) 583
+ 585: 36(fvec3) Load 41(inF0)
+ 586: 131(bool) Any 585
+ Store 584(r003) 586
+ 588: 36(fvec3) Load 41(inF0)
+ 589: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 588
+ Store 587(r004) 589
+ 593: 36(fvec3) Load 41(inF0)
+ 594: 590(ivec3) Bitcast 593
+ Store 592(r005) 594
+ 596: 36(fvec3) Load 41(inF0)
+ 597: 38(ivec3) Bitcast 596
+ Store 595(r006) 597
+ 599: 38(ivec3) Load 44(inU0)
+ 600: 36(fvec3) Bitcast 599
+ Store 598(r007) 600
+ 602: 36(fvec3) Load 41(inF0)
+ 603: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 602
+ Store 601(r009) 603
+ 605: 36(fvec3) Load 41(inF0)
+ 606: 36(fvec3) Load 42(inF1)
+ 607: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 605 606
+ Store 604(r010) 607
+ 609: 36(fvec3) Load 41(inF0)
+ 610: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 609
+ Store 608(r011) 610
+ 612: 36(fvec3) Load 41(inF0)
+ 613: 36(fvec3) Load 42(inF1)
+ 614: 36(fvec3) Load 43(inF2)
+ 615: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 612 613 614
+ Store 611(r012) 615
+ 616: 36(fvec3) Load 41(inF0)
+ 619: 618(bvec3) FOrdLessThan 616 617
+ 620: 131(bool) Any 619
+ SelectionMerge 622 None
+ BranchConditional 620 621 622
+ 621: Label
Kill
- 620: Label
- 623: 36(fvec3) Load 41(inF0)
- 624: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 623
- Store 622(r013) 624
- 626: 36(fvec3) Load 41(inF0)
- 627: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 626
- Store 625(r014) 627
- 631: 38(ivec3) BitCount 630
- Store 628(r015) 631
- 633: 36(fvec3) Load 41(inF0)
- 634: 36(fvec3) Load 42(inF1)
- 635: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 633 634
- Store 632(r016) 635
- 637: 36(fvec3) Load 41(inF0)
- 638: 36(fvec3) DPdx 637
- Store 636(r017) 638
+ 622: Label
+ 625: 36(fvec3) Load 41(inF0)
+ 626: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 625
+ Store 624(r013) 626
+ 628: 36(fvec3) Load 41(inF0)
+ 629: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 628
+ Store 627(r014) 629
+ 634: 38(ivec3) BitCount 633
+ Store 630(r015) 634
+ 636: 36(fvec3) Load 41(inF0)
+ 637: 36(fvec3) Load 42(inF1)
+ 638: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 636 637
+ Store 635(r016) 638
640: 36(fvec3) Load 41(inF0)
- 641: 36(fvec3) DPdxCoarse 640
- Store 639(r018) 641
+ 641: 36(fvec3) DPdx 640
+ Store 639(r017) 641
643: 36(fvec3) Load 41(inF0)
- 644: 36(fvec3) DPdxFine 643
- Store 642(r019) 644
+ 644: 36(fvec3) DPdxCoarse 643
+ Store 642(r018) 644
646: 36(fvec3) Load 41(inF0)
- 647: 36(fvec3) DPdy 646
- Store 645(r020) 647
+ 647: 36(fvec3) DPdxFine 646
+ Store 645(r019) 647
649: 36(fvec3) Load 41(inF0)
- 650: 36(fvec3) DPdyCoarse 649
- Store 648(r021) 650
+ 650: 36(fvec3) DPdy 649
+ Store 648(r020) 650
652: 36(fvec3) Load 41(inF0)
- 653: 36(fvec3) DPdyFine 652
- Store 651(r022) 653
+ 653: 36(fvec3) DPdyCoarse 652
+ Store 651(r021) 653
655: 36(fvec3) Load 41(inF0)
- 656: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 655
- Store 654(r023) 656
+ 656: 36(fvec3) DPdyFine 655
+ Store 654(r022) 656
658: 36(fvec3) Load 41(inF0)
- 659: 36(fvec3) Load 42(inF1)
- 660: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 658 659
- Store 657(r024) 660
- 662: 36(fvec3) Load 41(inF0)
- 663: 36(fvec3) Load 42(inF1)
- 664: 6(float) Dot 662 663
- Store 661(r025) 664
- 666: 36(fvec3) Load 41(inF0)
- 667: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 666
- Store 665(r029) 667
+ 659: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 658
+ Store 657(r023) 659
+ 661: 36(fvec3) Load 41(inF0)
+ 662: 36(fvec3) Load 42(inF1)
+ 663: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 661 662
+ Store 660(r024) 663
+ 665: 36(fvec3) Load 41(inF0)
+ 666: 36(fvec3) Load 42(inF1)
+ 667: 6(float) Dot 665 666
+ Store 664(r025) 667
669: 36(fvec3) Load 41(inF0)
- 670: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 669
- Store 668(r030) 670
+ 670: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 669
+ Store 668(r029) 670
672: 36(fvec3) Load 41(inF0)
- 673: 36(fvec3) Load 42(inF1)
- 674: 36(fvec3) Load 43(inF2)
- 675: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 672 673 674
- Store 671(r031) 675
- 679: 38(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 678
- Store 676(r032) 679
- 681: 38(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 678
- Store 680(r033) 681
- 683: 36(fvec3) Load 41(inF0)
- 684: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 683
- Store 682(r034) 684
+ 673: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 672
+ Store 671(r030) 673
+ 675: 36(fvec3) Load 41(inF0)
+ 676: 36(fvec3) Load 42(inF1)
+ 677: 36(fvec3) Load 43(inF2)
+ 678: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 675 676 677
+ Store 674(r031) 678
+ 682: 38(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 681
+ Store 679(r032) 682
+ 684: 38(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 681
+ Store 683(r033) 684
686: 36(fvec3) Load 41(inF0)
- 687: 36(fvec3) Load 42(inF1)
- 688: 36(fvec3) FMod 686 687
- Store 685(r036) 688
- 690: 36(fvec3) Load 41(inF0)
- 691: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 690
- Store 689(r037) 691
+ 687: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 686
+ Store 685(r034) 687
+ 689: 36(fvec3) Load 41(inF0)
+ 690: 36(fvec3) Load 42(inF1)
+ 691: 36(fvec3) FMod 689 690
+ Store 688(r036) 691
693: 36(fvec3) Load 41(inF0)
- 695:694(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 693
- 696: 588(ivec3) CompositeExtract 695 1
- Store 42(inF1) 696
- 697: 36(fvec3) CompositeExtract 695 0
- Store 692(r038) 697
- 699: 36(fvec3) Load 41(inF0)
- 700: 36(fvec3) Fwidth 699
- Store 698(r039) 700
- 703: 36(fvec3) Load 41(inF0)
- 704: 616(bvec3) IsInf 703
- Store 702(r040) 704
+ 694: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 693
+ Store 692(r037) 694
+ 696: 36(fvec3) Load 41(inF0)
+ 698:697(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 696
+ 699: 590(ivec3) CompositeExtract 698 1
+ Store 42(inF1) 699
+ 700: 36(fvec3) CompositeExtract 698 0
+ Store 695(r038) 700
+ 702: 36(fvec3) Load 41(inF0)
+ 703: 36(fvec3) Fwidth 702
+ Store 701(r039) 703
706: 36(fvec3) Load 41(inF0)
- 707: 616(bvec3) IsNan 706
- Store 705(r041) 707
+ 707: 618(bvec3) IsInf 706
+ Store 705(r040) 707
709: 36(fvec3) Load 41(inF0)
- 710: 36(fvec3) Load 42(inF1)
- 711: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 709 710
- Store 708(r042) 711
- 713: 36(fvec3) Load 41(inF0)
- 714: 36(fvec3) Load 42(inF1)
- 715: 36(fvec3) Load 43(inF2)
- 716: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 713 714 715
- Store 712(r039a) 716
- 718: 36(fvec3) Load 41(inF0)
- 719: 36(fvec3) Load 42(inF1)
- 721: 36(fvec3) CompositeConstruct 720 720 720
- 722: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 718 719 721
- Store 717(r039b) 722
- 724: 36(fvec3) Load 41(inF0)
- 725: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 724
- Store 723(r043) 725
+ 710: 618(bvec3) IsNan 709
+ Store 708(r041) 710
+ 712: 36(fvec3) Load 41(inF0)
+ 713: 36(fvec3) Load 42(inF1)
+ 714: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 712 713
+ Store 711(r042) 714
+ 716: 36(fvec3) Load 41(inF0)
+ 717: 36(fvec3) Load 42(inF1)
+ 718: 36(fvec3) Load 43(inF2)
+ 719: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 716 717 718
+ Store 715(r039a) 719
+ 721: 36(fvec3) Load 41(inF0)
+ 722: 36(fvec3) Load 42(inF1)
+ 724: 36(fvec3) CompositeConstruct 723 723 723
+ 725: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 721 722 724
+ Store 720(r039b) 725
727: 36(fvec3) Load 41(inF0)
- 728: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 727
- Store 726(r044) 728
+ 728: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 727
+ Store 726(r043) 728
730: 36(fvec3) Load 41(inF0)
- 731: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 730
- 732: 36(fvec3) VectorTimesScalar 731 263
- Store 729(r045) 732
- 734: 36(fvec3) Load 41(inF0)
- 735: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 734
- Store 733(r046) 735
+ 731: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 730
+ Store 729(r044) 731
+ 733: 36(fvec3) Load 41(inF0)
+ 734: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 733
+ 735: 36(fvec3) VectorTimesScalar 734 262
+ Store 732(r045) 735
737: 36(fvec3) Load 41(inF0)
- 738: 36(fvec3) Load 42(inF1)
- 739: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 737 738
- Store 736(r047) 739
- 741: 36(fvec3) Load 41(inF0)
- 742: 36(fvec3) Load 42(inF1)
- 743: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 741 742
- Store 740(r048) 743
- 745: 36(fvec3) Load 41(inF0)
- 746: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 745
- Store 744(r049) 746
+ 738: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 737
+ Store 736(r046) 738
+ 740: 36(fvec3) Load 41(inF0)
+ 741: 36(fvec3) Load 42(inF1)
+ 742: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 740 741
+ Store 739(r047) 742
+ 744: 36(fvec3) Load 41(inF0)
+ 745: 36(fvec3) Load 42(inF1)
+ 746: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 744 745
+ Store 743(r048) 746
748: 36(fvec3) Load 41(inF0)
- 749: 36(fvec3) Load 42(inF1)
- 750: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 748 749
- Store 747(r050) 750
- 752: 36(fvec3) Load 41(inF0)
- 753: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 752
- Store 751(r051) 753
+ 749: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 748
+ Store 747(r049) 749
+ 751: 36(fvec3) Load 41(inF0)
+ 752: 36(fvec3) Load 42(inF1)
+ 753: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 751 752
+ Store 750(r050) 753
755: 36(fvec3) Load 41(inF0)
- 756: 36(fvec3) CompositeConstruct 284 284 284
- 757: 36(fvec3) FDiv 756 755
- Store 754(r052) 757
- 759: 36(fvec3) Load 41(inF0)
- 760: 36(fvec3) Load 42(inF1)
- 761: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 759 760
- Store 758(r053) 761
- 763: 36(fvec3) Load 41(inF0)
- 764: 36(fvec3) Load 42(inF1)
- 765: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 763 764 519
- Store 762(r054) 765
- 768: 38(ivec3) BitReverse 767
- Store 766(r055) 768
- 770: 36(fvec3) Load 41(inF0)
- 771: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 770
- Store 769(r056) 771
+ 756: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 755
+ Store 754(r051) 756
+ 758: 36(fvec3) Load 41(inF0)
+ 759: 36(fvec3) CompositeConstruct 283 283 283
+ 760: 36(fvec3) FDiv 759 758
+ Store 757(r052) 760
+ 762: 36(fvec3) Load 41(inF0)
+ 763: 36(fvec3) Load 42(inF1)
+ 764: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 762 763
+ Store 761(r053) 764
+ 766: 36(fvec3) Load 41(inF0)
+ 767: 36(fvec3) Load 42(inF1)
+ 768: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 766 767 520
+ Store 765(r054) 768
+ 771: 38(ivec3) BitReverse 770
+ Store 769(r055) 771
773: 36(fvec3) Load 41(inF0)
- 774: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 773
- Store 772(r057) 774
+ 774: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 773
+ Store 772(r056) 774
776: 36(fvec3) Load 41(inF0)
- 777: 36(fvec3) CompositeConstruct 175 175 175
- 778: 36(fvec3) CompositeConstruct 284 284 284
- 779: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 776 777 778
- Store 775(r058) 779
- 781: 36(fvec3) Load 41(inF0)
- 782: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 781
- Store 780(r059) 782
+ 777: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 776
+ Store 775(r057) 777
+ 779: 36(fvec3) Load 41(inF0)
+ 780: 36(fvec3) CompositeConstruct 175 175 175
+ 781: 36(fvec3) CompositeConstruct 283 283 283
+ 782: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 779 780 781
+ Store 778(r058) 782
784: 36(fvec3) Load 41(inF0)
- 785: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 784
- Store 783(r060) 785
- 786: 36(fvec3) Load 41(inF0)
- 787: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 786
- Store 42(inF1) 787
- 788: 36(fvec3) Load 41(inF0)
- 789: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 788
- Store 43(inF2) 789
+ 785: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 784
+ Store 783(r059) 785
+ 787: 36(fvec3) Load 41(inF0)
+ 788: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 787
+ Store 786(r060) 788
+ 789: 36(fvec3) Load 41(inF0)
+ 790: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 789
+ Store 42(inF1) 790
791: 36(fvec3) Load 41(inF0)
- 792: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 791
- Store 790(r061) 792
+ 792: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 791
+ Store 43(inF2) 792
794: 36(fvec3) Load 41(inF0)
- 795: 36(fvec3) Load 42(inF1)
- 796: 36(fvec3) Load 43(inF2)
- 797: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 794 795 796
- Store 793(r062) 797
- 799: 36(fvec3) Load 41(inF0)
- 800: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 799
- Store 798(r063) 800
+ 795: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 794
+ Store 793(r061) 795
+ 797: 36(fvec3) Load 41(inF0)
+ 798: 36(fvec3) Load 42(inF1)
+ 799: 36(fvec3) Load 43(inF2)
+ 800: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 797 798 799
+ Store 796(r062) 800
802: 36(fvec3) Load 41(inF0)
- 803: 36(fvec3) Load 42(inF1)
- 804: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 802 803
- Store 801(r064) 804
- 806: 36(fvec3) Load 41(inF0)
- 807: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 806
- Store 805(r065) 807
+ 803: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 802
+ Store 801(r063) 803
+ 805: 36(fvec3) Load 41(inF0)
+ 806: 36(fvec3) Load 42(inF1)
+ 807: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 805 806
+ Store 804(r064) 807
809: 36(fvec3) Load 41(inF0)
- 810: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 809
- Store 808(r066) 810
+ 810: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 809
+ Store 808(r065) 810
812: 36(fvec3) Load 41(inF0)
- 813: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 812
- Store 811(r067) 813
- ReturnValue 815
+ 813: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 812
+ Store 811(r066) 813
+ 815: 36(fvec3) Load 41(inF0)
+ 816: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 815
+ Store 814(r067) 816
+ ReturnValue 818
FunctionEnd
58(PixelShaderFunction(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52
53(inF0): 49(ptr) FunctionParameter
@@ -7156,1018 +7161,1018 @@
56(inU0): 51(ptr) FunctionParameter
57(inU1): 51(ptr) FunctionParameter
59: Label
- 818(r000): 132(ptr) Variable Function
- 821(r001): 49(ptr) Variable Function
- 824(r002): 49(ptr) Variable Function
- 827(r003): 132(ptr) Variable Function
- 830(r004): 49(ptr) Variable Function
- 835(r005): 834(ptr) Variable Function
- 838(r006): 51(ptr) Variable Function
- 841(r007): 49(ptr) Variable Function
- 844(r009): 49(ptr) Variable Function
- 847(r010): 49(ptr) Variable Function
- 851(r011): 49(ptr) Variable Function
- 854(r012): 49(ptr) Variable Function
- 867(r013): 49(ptr) Variable Function
- 870(r014): 49(ptr) Variable Function
- 873(r015): 51(ptr) Variable Function
- 876(r016): 49(ptr) Variable Function
- 879(r017): 49(ptr) Variable Function
- 882(r018): 49(ptr) Variable Function
- 885(r019): 49(ptr) Variable Function
- 888(r020): 49(ptr) Variable Function
- 891(r021): 49(ptr) Variable Function
- 894(r022): 49(ptr) Variable Function
- 897(r023): 7(ptr) Variable Function
- 901(r024): 7(ptr) Variable Function
- 905(r025): 49(ptr) Variable Function
- 916(r029): 49(ptr) Variable Function
- 919(r030): 49(ptr) Variable Function
- 922(r031): 49(ptr) Variable Function
- 927(r032): 51(ptr) Variable Function
- 932(r033): 51(ptr) Variable Function
- 934(r034): 49(ptr) Variable Function
- 937(r036): 49(ptr) Variable Function
- 941(r037): 49(ptr) Variable Function
- 944(r038): 49(ptr) Variable Function
- 950(r039): 49(ptr) Variable Function
- 954(r040): 953(ptr) Variable Function
- 957(r041): 953(ptr) Variable Function
- 960(r042): 49(ptr) Variable Function
- 964(r039a): 49(ptr) Variable Function
- 969(r043): 7(ptr) Variable Function
- 972(r044): 49(ptr) Variable Function
- 975(r045): 49(ptr) Variable Function
- 979(r046): 49(ptr) Variable Function
- 982(r047): 49(ptr) Variable Function
- 986(r048): 49(ptr) Variable Function
- 990(r049): 49(ptr) Variable Function
- 993(r050): 49(ptr) Variable Function
- 997(r051): 49(ptr) Variable Function
- 1000(r052): 49(ptr) Variable Function
- 1004(r053): 49(ptr) Variable Function
- 1008(r054): 49(ptr) Variable Function
- 1012(r055): 51(ptr) Variable Function
- 1015(r056): 49(ptr) Variable Function
- 1018(r057): 49(ptr) Variable Function
- 1021(r058): 49(ptr) Variable Function
- 1026(r059): 49(ptr) Variable Function
- 1029(r060): 49(ptr) Variable Function
- 1036(r061): 49(ptr) Variable Function
- 1039(r062): 49(ptr) Variable Function
- 1044(r063): 49(ptr) Variable Function
- 1047(r064): 49(ptr) Variable Function
- 1051(r065): 49(ptr) Variable Function
- 1054(r066): 49(ptr) Variable Function
- 1057(r067): 49(ptr) Variable Function
- 819: 48(fvec4) Load 53(inF0)
- 820: 131(bool) All 819
- Store 818(r000) 820
+ 821(r000): 132(ptr) Variable Function
+ 824(r001): 49(ptr) Variable Function
+ 827(r002): 49(ptr) Variable Function
+ 830(r003): 132(ptr) Variable Function
+ 833(r004): 49(ptr) Variable Function
+ 838(r005): 837(ptr) Variable Function
+ 841(r006): 51(ptr) Variable Function
+ 844(r007): 49(ptr) Variable Function
+ 847(r009): 49(ptr) Variable Function
+ 850(r010): 49(ptr) Variable Function
+ 854(r011): 49(ptr) Variable Function
+ 857(r012): 49(ptr) Variable Function
+ 870(r013): 49(ptr) Variable Function
+ 873(r014): 49(ptr) Variable Function
+ 876(r015): 51(ptr) Variable Function
+ 879(r016): 49(ptr) Variable Function
+ 882(r017): 49(ptr) Variable Function
+ 885(r018): 49(ptr) Variable Function
+ 888(r019): 49(ptr) Variable Function
+ 891(r020): 49(ptr) Variable Function
+ 894(r021): 49(ptr) Variable Function
+ 897(r022): 49(ptr) Variable Function
+ 900(r023): 7(ptr) Variable Function
+ 904(r024): 7(ptr) Variable Function
+ 908(r025): 49(ptr) Variable Function
+ 919(r029): 49(ptr) Variable Function
+ 922(r030): 49(ptr) Variable Function
+ 925(r031): 49(ptr) Variable Function
+ 930(r032): 51(ptr) Variable Function
+ 935(r033): 51(ptr) Variable Function
+ 937(r034): 49(ptr) Variable Function
+ 940(r036): 49(ptr) Variable Function
+ 944(r037): 49(ptr) Variable Function
+ 947(r038): 49(ptr) Variable Function
+ 953(r039): 49(ptr) Variable Function
+ 957(r040): 956(ptr) Variable Function
+ 960(r041): 956(ptr) Variable Function
+ 963(r042): 49(ptr) Variable Function
+ 967(r039a): 49(ptr) Variable Function
+ 972(r043): 7(ptr) Variable Function
+ 975(r044): 49(ptr) Variable Function
+ 978(r045): 49(ptr) Variable Function
+ 982(r046): 49(ptr) Variable Function
+ 985(r047): 49(ptr) Variable Function
+ 989(r048): 49(ptr) Variable Function
+ 993(r049): 49(ptr) Variable Function
+ 996(r050): 49(ptr) Variable Function
+ 1000(r051): 49(ptr) Variable Function
+ 1003(r052): 49(ptr) Variable Function
+ 1007(r053): 49(ptr) Variable Function
+ 1011(r054): 49(ptr) Variable Function
+ 1015(r055): 51(ptr) Variable Function
+ 1018(r056): 49(ptr) Variable Function
+ 1021(r057): 49(ptr) Variable Function
+ 1024(r058): 49(ptr) Variable Function
+ 1029(r059): 49(ptr) Variable Function
+ 1032(r060): 49(ptr) Variable Function
+ 1039(r061): 49(ptr) Variable Function
+ 1042(r062): 49(ptr) Variable Function
+ 1047(r063): 49(ptr) Variable Function
+ 1050(r064): 49(ptr) Variable Function
+ 1054(r065): 49(ptr) Variable Function
+ 1057(r066): 49(ptr) Variable Function
+ 1060(r067): 49(ptr) Variable Function
822: 48(fvec4) Load 53(inF0)
- 823: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 822
- Store 821(r001) 823
+ 823: 131(bool) All 822
+ Store 821(r000) 823
825: 48(fvec4) Load 53(inF0)
- 826: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 825
- Store 824(r002) 826
+ 826: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 825
+ Store 824(r001) 826
828: 48(fvec4) Load 53(inF0)
- 829: 131(bool) Any 828
- Store 827(r003) 829
+ 829: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 828
+ Store 827(r002) 829
831: 48(fvec4) Load 53(inF0)
- 832: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 831
- Store 830(r004) 832
- 836: 48(fvec4) Load 53(inF0)
- 837: 833(ivec4) Bitcast 836
- Store 835(r005) 837
+ 832: 131(bool) Any 831
+ Store 830(r003) 832
+ 834: 48(fvec4) Load 53(inF0)
+ 835: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 834
+ Store 833(r004) 835
839: 48(fvec4) Load 53(inF0)
- 840: 50(ivec4) Bitcast 839
- Store 838(r006) 840
- 842: 50(ivec4) Load 56(inU0)
- 843: 48(fvec4) Bitcast 842
- Store 841(r007) 843
- 845: 48(fvec4) Load 53(inF0)
- 846: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 845
- Store 844(r009) 846
+ 840: 836(ivec4) Bitcast 839
+ Store 838(r005) 840
+ 842: 48(fvec4) Load 53(inF0)
+ 843: 50(ivec4) Bitcast 842
+ Store 841(r006) 843
+ 845: 50(ivec4) Load 56(inU0)
+ 846: 48(fvec4) Bitcast 845
+ Store 844(r007) 846
848: 48(fvec4) Load 53(inF0)
- 849: 48(fvec4) Load 54(inF1)
- 850: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 848 849
- Store 847(r010) 850
- 852: 48(fvec4) Load 53(inF0)
- 853: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 852
- Store 851(r011) 853
+ 849: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 848
+ Store 847(r009) 849
+ 851: 48(fvec4) Load 53(inF0)
+ 852: 48(fvec4) Load 54(inF1)
+ 853: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 851 852
+ Store 850(r010) 853
855: 48(fvec4) Load 53(inF0)
- 856: 48(fvec4) Load 54(inF1)
- 857: 48(fvec4) Load 55(inF2)
- 858: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 855 856 857
- Store 854(r012) 858
- 859: 48(fvec4) Load 53(inF0)
- 862: 861(bvec4) FOrdLessThan 859 860
- 863: 131(bool) Any 862
- SelectionMerge 865 None
- BranchConditional 863 864 865
- 864: Label
+ 856: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 855
+ Store 854(r011) 856
+ 858: 48(fvec4) Load 53(inF0)
+ 859: 48(fvec4) Load 54(inF1)
+ 860: 48(fvec4) Load 55(inF2)
+ 861: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 858 859 860
+ Store 857(r012) 861
+ 862: 48(fvec4) Load 53(inF0)
+ 865: 864(bvec4) FOrdLessThan 862 863
+ 866: 131(bool) Any 865
+ SelectionMerge 868 None
+ BranchConditional 866 867 868
+ 867: Label
Kill
- 865: Label
- 868: 48(fvec4) Load 53(inF0)
- 869: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 868
- Store 867(r013) 869
+ 868: Label
871: 48(fvec4) Load 53(inF0)
- 872: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 871
- Store 870(r014) 872
- 875: 50(ivec4) BitCount 874
- Store 873(r015) 875
- 877: 48(fvec4) Load 53(inF0)
- 878: 48(fvec4) DPdx 877
- Store 876(r016) 878
+ 872: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 871
+ Store 870(r013) 872
+ 874: 48(fvec4) Load 53(inF0)
+ 875: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 874
+ Store 873(r014) 875
+ 878: 50(ivec4) BitCount 877
+ Store 876(r015) 878
880: 48(fvec4) Load 53(inF0)
- 881: 48(fvec4) DPdxCoarse 880
- Store 879(r017) 881
+ 881: 48(fvec4) DPdx 880
+ Store 879(r016) 881
883: 48(fvec4) Load 53(inF0)
- 884: 48(fvec4) DPdxFine 883
- Store 882(r018) 884
+ 884: 48(fvec4) DPdxCoarse 883
+ Store 882(r017) 884
886: 48(fvec4) Load 53(inF0)
- 887: 48(fvec4) DPdy 886
- Store 885(r019) 887
+ 887: 48(fvec4) DPdxFine 886
+ Store 885(r018) 887
889: 48(fvec4) Load 53(inF0)
- 890: 48(fvec4) DPdyCoarse 889
- Store 888(r020) 890
+ 890: 48(fvec4) DPdy 889
+ Store 888(r019) 890
892: 48(fvec4) Load 53(inF0)
- 893: 48(fvec4) DPdyFine 892
- Store 891(r021) 893
+ 893: 48(fvec4) DPdyCoarse 892
+ Store 891(r020) 893
895: 48(fvec4) Load 53(inF0)
- 896: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 895
- Store 894(r022) 896
+ 896: 48(fvec4) DPdyFine 895
+ Store 894(r021) 896
898: 48(fvec4) Load 53(inF0)
- 899: 48(fvec4) Load 54(inF1)
- 900: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 898 899
- Store 897(r023) 900
- 902: 48(fvec4) Load 53(inF0)
- 903: 48(fvec4) Load 54(inF1)
- 904: 6(float) Dot 902 903
- Store 901(r024) 904
- 906: 7(ptr) AccessChain 53(inF0) 522
- 907: 6(float) Load 906
- 908: 7(ptr) AccessChain 54(inF1) 522
- 909: 6(float) Load 908
- 910: 6(float) FMul 907 909
- 911: 7(ptr) AccessChain 53(inF0) 288
+ 899: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 898
+ Store 897(r022) 899
+ 901: 48(fvec4) Load 53(inF0)
+ 902: 48(fvec4) Load 54(inF1)
+ 903: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 901 902
+ Store 900(r023) 903
+ 905: 48(fvec4) Load 53(inF0)
+ 906: 48(fvec4) Load 54(inF1)
+ 907: 6(float) Dot 905 906
+ Store 904(r024) 907
+ 909: 7(ptr) AccessChain 53(inF0) 523
+ 910: 6(float) Load 909
+ 911: 7(ptr) AccessChain 54(inF1) 523
912: 6(float) Load 911
- 913: 7(ptr) AccessChain 54(inF1) 393
- 914: 6(float) Load 913
- 915: 48(fvec4) CompositeConstruct 284 910 912 914
- Store 905(r025) 915
- 917: 48(fvec4) Load 53(inF0)
- 918: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 917
- Store 916(r029) 918
+ 913: 6(float) FMul 910 912
+ 914: 7(ptr) AccessChain 53(inF0) 524
+ 915: 6(float) Load 914
+ 916: 7(ptr) AccessChain 54(inF1) 631
+ 917: 6(float) Load 916
+ 918: 48(fvec4) CompositeConstruct 283 913 915 917
+ Store 908(r025) 918
920: 48(fvec4) Load 53(inF0)
- 921: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 920
- Store 919(r030) 921
+ 921: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 920
+ Store 919(r029) 921
923: 48(fvec4) Load 53(inF0)
- 924: 48(fvec4) Load 54(inF1)
- 925: 48(fvec4) Load 55(inF2)
- 926: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 923 924 925
- Store 922(r031) 926
- 931: 50(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 930
- Store 927(r032) 931
- 933: 50(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 930
- Store 932(r033) 933
- 935: 48(fvec4) Load 53(inF0)
- 936: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 935
- Store 934(r034) 936
+ 924: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 923
+ Store 922(r030) 924
+ 926: 48(fvec4) Load 53(inF0)
+ 927: 48(fvec4) Load 54(inF1)
+ 928: 48(fvec4) Load 55(inF2)
+ 929: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 926 927 928
+ Store 925(r031) 929
+ 934: 50(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 933
+ Store 930(r032) 934
+ 936: 50(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 933
+ Store 935(r033) 936
938: 48(fvec4) Load 53(inF0)
- 939: 48(fvec4) Load 54(inF1)
- 940: 48(fvec4) FMod 938 939
- Store 937(r036) 940
- 942: 48(fvec4) Load 53(inF0)
- 943: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 942
- Store 941(r037) 943
+ 939: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 938
+ Store 937(r034) 939
+ 941: 48(fvec4) Load 53(inF0)
+ 942: 48(fvec4) Load 54(inF1)
+ 943: 48(fvec4) FMod 941 942
+ Store 940(r036) 943
945: 48(fvec4) Load 53(inF0)
- 947:946(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 945
- 948: 833(ivec4) CompositeExtract 947 1
- Store 54(inF1) 948
- 949: 48(fvec4) CompositeExtract 947 0
- Store 944(r038) 949
- 951: 48(fvec4) Load 53(inF0)
- 952: 48(fvec4) Fwidth 951
- Store 950(r039) 952
- 955: 48(fvec4) Load 53(inF0)
- 956: 861(bvec4) IsInf 955
- Store 954(r040) 956
+ 946: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 945
+ Store 944(r037) 946
+ 948: 48(fvec4) Load 53(inF0)
+ 950:949(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 948
+ 951: 836(ivec4) CompositeExtract 950 1
+ Store 54(inF1) 951
+ 952: 48(fvec4) CompositeExtract 950 0
+ Store 947(r038) 952
+ 954: 48(fvec4) Load 53(inF0)
+ 955: 48(fvec4) Fwidth 954
+ Store 953(r039) 955
958: 48(fvec4) Load 53(inF0)
- 959: 861(bvec4) IsNan 958
- Store 957(r041) 959
+ 959: 864(bvec4) IsInf 958
+ Store 957(r040) 959
961: 48(fvec4) Load 53(inF0)
- 962: 48(fvec4) Load 54(inF1)
- 963: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 961 962
- Store 960(r042) 963
- 965: 48(fvec4) Load 53(inF0)
- 966: 48(fvec4) Load 54(inF1)
- 967: 48(fvec4) Load 55(inF2)
- 968: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 965 966 967
- Store 964(r039a) 968
- 970: 48(fvec4) Load 53(inF0)
- 971: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 970
- Store 969(r043) 971
+ 962: 864(bvec4) IsNan 961
+ Store 960(r041) 962
+ 964: 48(fvec4) Load 53(inF0)
+ 965: 48(fvec4) Load 54(inF1)
+ 966: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 964 965
+ Store 963(r042) 966
+ 968: 48(fvec4) Load 53(inF0)
+ 969: 48(fvec4) Load 54(inF1)
+ 970: 48(fvec4) Load 55(inF2)
+ 971: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 968 969 970
+ Store 967(r039a) 971
973: 48(fvec4) Load 53(inF0)
- 974: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 973
- Store 972(r044) 974
+ 974: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 973
+ Store 972(r043) 974
976: 48(fvec4) Load 53(inF0)
- 977: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 976
- 978: 48(fvec4) VectorTimesScalar 977 263
- Store 975(r045) 978
- 980: 48(fvec4) Load 53(inF0)
- 981: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 980
- Store 979(r046) 981
+ 977: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 976
+ Store 975(r044) 977
+ 979: 48(fvec4) Load 53(inF0)
+ 980: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 979
+ 981: 48(fvec4) VectorTimesScalar 980 262
+ Store 978(r045) 981
983: 48(fvec4) Load 53(inF0)
- 984: 48(fvec4) Load 54(inF1)
- 985: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 983 984
- Store 982(r047) 985
- 987: 48(fvec4) Load 53(inF0)
- 988: 48(fvec4) Load 54(inF1)
- 989: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 987 988
- Store 986(r048) 989
- 991: 48(fvec4) Load 53(inF0)
- 992: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 991
- Store 990(r049) 992
+ 984: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 983
+ Store 982(r046) 984
+ 986: 48(fvec4) Load 53(inF0)
+ 987: 48(fvec4) Load 54(inF1)
+ 988: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 986 987
+ Store 985(r047) 988
+ 990: 48(fvec4) Load 53(inF0)
+ 991: 48(fvec4) Load 54(inF1)
+ 992: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 990 991
+ Store 989(r048) 992
994: 48(fvec4) Load 53(inF0)
- 995: 48(fvec4) Load 54(inF1)
- 996: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 994 995
- Store 993(r050) 996
- 998: 48(fvec4) Load 53(inF0)
- 999: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 998
- Store 997(r051) 999
+ 995: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 994
+ Store 993(r049) 995
+ 997: 48(fvec4) Load 53(inF0)
+ 998: 48(fvec4) Load 54(inF1)
+ 999: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 997 998
+ Store 996(r050) 999
1001: 48(fvec4) Load 53(inF0)
- 1002: 48(fvec4) CompositeConstruct 284 284 284 284
- 1003: 48(fvec4) FDiv 1002 1001
- Store 1000(r052) 1003
- 1005: 48(fvec4) Load 53(inF0)
- 1006: 48(fvec4) Load 54(inF1)
- 1007: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1005 1006
- Store 1004(r053) 1007
- 1009: 48(fvec4) Load 53(inF0)
- 1010: 48(fvec4) Load 54(inF1)
- 1011: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1009 1010 519
- Store 1008(r054) 1011
- 1014: 50(ivec4) BitReverse 1013
- Store 1012(r055) 1014
- 1016: 48(fvec4) Load 53(inF0)
- 1017: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1016
- Store 1015(r056) 1017
+ 1002: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 1001
+ Store 1000(r051) 1002
+ 1004: 48(fvec4) Load 53(inF0)
+ 1005: 48(fvec4) CompositeConstruct 283 283 283 283
+ 1006: 48(fvec4) FDiv 1005 1004
+ Store 1003(r052) 1006
+ 1008: 48(fvec4) Load 53(inF0)
+ 1009: 48(fvec4) Load 54(inF1)
+ 1010: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1008 1009
+ Store 1007(r053) 1010
+ 1012: 48(fvec4) Load 53(inF0)
+ 1013: 48(fvec4) Load 54(inF1)
+ 1014: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1012 1013 520
+ Store 1011(r054) 1014
+ 1017: 50(ivec4) BitReverse 1016
+ Store 1015(r055) 1017
1019: 48(fvec4) Load 53(inF0)
- 1020: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1019
- Store 1018(r057) 1020
+ 1020: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1019
+ Store 1018(r056) 1020
1022: 48(fvec4) Load 53(inF0)
- 1023: 48(fvec4) CompositeConstruct 175 175 175 175
- 1024: 48(fvec4) CompositeConstruct 284 284 284 284
- 1025: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1022 1023 1024
- Store 1021(r058) 1025
- 1027: 48(fvec4) Load 53(inF0)
- 1028: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1027
- Store 1026(r059) 1028
+ 1023: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1022
+ Store 1021(r057) 1023
+ 1025: 48(fvec4) Load 53(inF0)
+ 1026: 48(fvec4) CompositeConstruct 175 175 175 175
+ 1027: 48(fvec4) CompositeConstruct 283 283 283 283
+ 1028: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1025 1026 1027
+ Store 1024(r058) 1028
1030: 48(fvec4) Load 53(inF0)
- 1031: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1030
- Store 1029(r060) 1031
- 1032: 48(fvec4) Load 53(inF0)
- 1033: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1032
- Store 54(inF1) 1033
- 1034: 48(fvec4) Load 53(inF0)
- 1035: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1034
- Store 55(inF2) 1035
+ 1031: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1030
+ Store 1029(r059) 1031
+ 1033: 48(fvec4) Load 53(inF0)
+ 1034: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1033
+ Store 1032(r060) 1034
+ 1035: 48(fvec4) Load 53(inF0)
+ 1036: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1035
+ Store 54(inF1) 1036
1037: 48(fvec4) Load 53(inF0)
- 1038: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1037
- Store 1036(r061) 1038
+ 1038: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1037
+ Store 55(inF2) 1038
1040: 48(fvec4) Load 53(inF0)
- 1041: 48(fvec4) Load 54(inF1)
- 1042: 48(fvec4) Load 55(inF2)
- 1043: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1040 1041 1042
- Store 1039(r062) 1043
- 1045: 48(fvec4) Load 53(inF0)
- 1046: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1045
- Store 1044(r063) 1046
+ 1041: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1040
+ Store 1039(r061) 1041
+ 1043: 48(fvec4) Load 53(inF0)
+ 1044: 48(fvec4) Load 54(inF1)
+ 1045: 48(fvec4) Load 55(inF2)
+ 1046: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1043 1044 1045
+ Store 1042(r062) 1046
1048: 48(fvec4) Load 53(inF0)
- 1049: 48(fvec4) Load 54(inF1)
- 1050: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1048 1049
- Store 1047(r064) 1050
- 1052: 48(fvec4) Load 53(inF0)
- 1053: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1052
- Store 1051(r065) 1053
+ 1049: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1048
+ Store 1047(r063) 1049
+ 1051: 48(fvec4) Load 53(inF0)
+ 1052: 48(fvec4) Load 54(inF1)
+ 1053: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1051 1052
+ Store 1050(r064) 1053
1055: 48(fvec4) Load 53(inF0)
- 1056: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1055
- Store 1054(r066) 1056
+ 1056: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1055
+ Store 1054(r065) 1056
1058: 48(fvec4) Load 53(inF0)
- 1059: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1058
- Store 1057(r067) 1059
- ReturnValue 1061
+ 1059: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1058
+ Store 1057(r066) 1059
+ 1061: 48(fvec4) Load 53(inF0)
+ 1062: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1061
+ Store 1060(r067) 1062
+ ReturnValue 1064
FunctionEnd
66(PixelShaderFunction2x2(mf22;mf22;mf22;): 60 Function None 62
63(inF0): 61(ptr) FunctionParameter
64(inF1): 61(ptr) FunctionParameter
65(inF2): 61(ptr) FunctionParameter
67: Label
- 1064(r000): 132(ptr) Variable Function
- 1067(r001): 61(ptr) Variable Function
- 1072(r003): 132(ptr) Variable Function
- 1075(r004): 61(ptr) Variable Function
- 1078(r005): 61(ptr) Variable Function
- 1081(r006): 61(ptr) Variable Function
- 1085(r007): 61(ptr) Variable Function
- 1096(r008): 61(ptr) Variable Function
- 1101(r009): 61(ptr) Variable Function
- 1104(r010): 61(ptr) Variable Function
- 1107(r011): 61(ptr) Variable Function
- 1110(r012): 61(ptr) Variable Function
- 1113(r013): 61(ptr) Variable Function
- 1116(r014): 61(ptr) Variable Function
- 1119(r015): 61(ptr) Variable Function
- 1122(r016): 61(ptr) Variable Function
- 1125(r017): 61(ptr) Variable Function
- 1128(r018): 7(ptr) Variable Function
- 1131(r019): 61(ptr) Variable Function
- 1134(R020): 61(ptr) Variable Function
- 1137(r021): 61(ptr) Variable Function
- 1140(r022): 61(ptr) Variable Function
- 1150(r023): 61(ptr) Variable Function
- 1153(r024): 61(ptr) Variable Function
- 1159(r025): 61(ptr) Variable Function
- 1162(r026): 61(ptr) Variable Function
- 1166(r026a): 61(ptr) Variable Function
- 1171(r027): 61(ptr) Variable Function
- 1174(r028): 61(ptr) Variable Function
- 1178(r029): 61(ptr) Variable Function
- 1181(r030): 61(ptr) Variable Function
- 1185(r031): 61(ptr) Variable Function
- 1189(r032): 61(ptr) Variable Function
- 1193(r033): 61(ptr) Variable Function
- 1196(r034): 61(ptr) Variable Function
- 1199(r035): 61(ptr) Variable Function
- 1202(r036): 61(ptr) Variable Function
- 1207(r037): 61(ptr) Variable Function
- 1210(r038): 61(ptr) Variable Function
- 1217(r039): 61(ptr) Variable Function
- 1220(r049): 61(ptr) Variable Function
- 1225(r041): 61(ptr) Variable Function
- 1228(r042): 61(ptr) Variable Function
- 1232(r043): 61(ptr) Variable Function
- 1235(r044): 61(ptr) Variable Function
- 1240(r046): 61(ptr) Variable Function
- 1065: 60 Load 63(inF0)
- 1066: 131(bool) All 1065
- Store 1064(r000) 1066
+ 1067(r000): 132(ptr) Variable Function
+ 1070(r001): 61(ptr) Variable Function
+ 1075(r003): 132(ptr) Variable Function
+ 1078(r004): 61(ptr) Variable Function
+ 1081(r005): 61(ptr) Variable Function
+ 1084(r006): 61(ptr) Variable Function
+ 1088(r007): 61(ptr) Variable Function
+ 1099(r008): 61(ptr) Variable Function
+ 1104(r009): 61(ptr) Variable Function
+ 1107(r010): 61(ptr) Variable Function
+ 1110(r011): 61(ptr) Variable Function
+ 1113(r012): 61(ptr) Variable Function
+ 1116(r013): 61(ptr) Variable Function
+ 1119(r014): 61(ptr) Variable Function
+ 1122(r015): 61(ptr) Variable Function
+ 1125(r016): 61(ptr) Variable Function
+ 1128(r017): 61(ptr) Variable Function
+ 1131(r018): 7(ptr) Variable Function
+ 1134(r019): 61(ptr) Variable Function
+ 1137(R020): 61(ptr) Variable Function
+ 1140(r021): 61(ptr) Variable Function
+ 1143(r022): 61(ptr) Variable Function
+ 1153(r023): 61(ptr) Variable Function
+ 1156(r024): 61(ptr) Variable Function
+ 1162(r025): 61(ptr) Variable Function
+ 1165(r026): 61(ptr) Variable Function
+ 1169(r026a): 61(ptr) Variable Function
+ 1174(r027): 61(ptr) Variable Function
+ 1177(r028): 61(ptr) Variable Function
+ 1181(r029): 61(ptr) Variable Function
+ 1184(r030): 61(ptr) Variable Function
+ 1188(r031): 61(ptr) Variable Function
+ 1192(r032): 61(ptr) Variable Function
+ 1196(r033): 61(ptr) Variable Function
+ 1199(r034): 61(ptr) Variable Function
+ 1202(r035): 61(ptr) Variable Function
+ 1205(r036): 61(ptr) Variable Function
+ 1210(r037): 61(ptr) Variable Function
+ 1213(r038): 61(ptr) Variable Function
+ 1220(r039): 61(ptr) Variable Function
+ 1223(r049): 61(ptr) Variable Function
+ 1228(r041): 61(ptr) Variable Function
+ 1231(r042): 61(ptr) Variable Function
+ 1235(r043): 61(ptr) Variable Function
+ 1238(r044): 61(ptr) Variable Function
+ 1243(r046): 61(ptr) Variable Function
1068: 60 Load 63(inF0)
- 1069: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 1068
- Store 1067(r001) 1069
- 1070: 60 Load 63(inF0)
- 1071: 60 ExtInst 1(GLSL.std.450) 17(Acos) 1070
+ 1069: 131(bool) All 1068
+ Store 1067(r000) 1069
+ 1071: 60 Load 63(inF0)
+ 1072: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 1071
+ Store 1070(r001) 1072
1073: 60 Load 63(inF0)
- 1074: 131(bool) Any 1073
- Store 1072(r003) 1074
+ 1074: 60 ExtInst 1(GLSL.std.450) 17(Acos) 1073
1076: 60 Load 63(inF0)
- 1077: 60 ExtInst 1(GLSL.std.450) 16(Asin) 1076
- Store 1075(r004) 1077
+ 1077: 131(bool) Any 1076
+ Store 1075(r003) 1077
1079: 60 Load 63(inF0)
- 1080: 60 ExtInst 1(GLSL.std.450) 18(Atan) 1079
- Store 1078(r005) 1080
+ 1080: 60 ExtInst 1(GLSL.std.450) 16(Asin) 1079
+ Store 1078(r004) 1080
1082: 60 Load 63(inF0)
- 1083: 60 Load 64(inF1)
- 1084: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 1082 1083
- Store 1081(r006) 1084
- 1086: 60 Load 63(inF0)
- 1087: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 1086
- Store 1085(r007) 1087
- 1088: 60 Load 63(inF0)
- 1091: 1090 FOrdLessThan 1088 1089
- 1092: 131(bool) Any 1091
- SelectionMerge 1094 None
- BranchConditional 1092 1093 1094
- 1093: Label
+ 1083: 60 ExtInst 1(GLSL.std.450) 18(Atan) 1082
+ Store 1081(r005) 1083
+ 1085: 60 Load 63(inF0)
+ 1086: 60 Load 64(inF1)
+ 1087: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 1085 1086
+ Store 1084(r006) 1087
+ 1089: 60 Load 63(inF0)
+ 1090: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 1089
+ Store 1088(r007) 1090
+ 1091: 60 Load 63(inF0)
+ 1094: 1093 FOrdLessThan 1091 1092
+ 1095: 131(bool) Any 1094
+ SelectionMerge 1097 None
+ BranchConditional 1095 1096 1097
+ 1096: Label
Kill
- 1094: Label
- 1097: 60 Load 63(inF0)
- 1098: 60 Load 64(inF1)
- 1099: 60 Load 65(inF2)
- 1100: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1097 1098 1099
- Store 1096(r008) 1100
- 1102: 60 Load 63(inF0)
- 1103: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1102
- Store 1101(r009) 1103
+ 1097: Label
+ 1100: 60 Load 63(inF0)
+ 1101: 60 Load 64(inF1)
+ 1102: 60 Load 65(inF2)
+ 1103: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1100 1101 1102
+ Store 1099(r008) 1103
1105: 60 Load 63(inF0)
- 1106: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 1105
- Store 1104(r010) 1106
+ 1106: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1105
+ Store 1104(r009) 1106
1108: 60 Load 63(inF0)
- 1109: 60 DPdx 1108
- Store 1107(r011) 1109
+ 1109: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 1108
+ Store 1107(r010) 1109
1111: 60 Load 63(inF0)
- 1112: 60 DPdxCoarse 1111
- Store 1110(r012) 1112
+ 1112: 60 DPdx 1111
+ Store 1110(r011) 1112
1114: 60 Load 63(inF0)
- 1115: 60 DPdxFine 1114
- Store 1113(r013) 1115
+ 1115: 60 DPdxCoarse 1114
+ Store 1113(r012) 1115
1117: 60 Load 63(inF0)
- 1118: 60 DPdy 1117
- Store 1116(r014) 1118
+ 1118: 60 DPdxFine 1117
+ Store 1116(r013) 1118
1120: 60 Load 63(inF0)
- 1121: 60 DPdyCoarse 1120
- Store 1119(r015) 1121
+ 1121: 60 DPdy 1120
+ Store 1119(r014) 1121
1123: 60 Load 63(inF0)
- 1124: 60 DPdyFine 1123
- Store 1122(r016) 1124
+ 1124: 60 DPdyCoarse 1123
+ Store 1122(r015) 1124
1126: 60 Load 63(inF0)
- 1127: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 1126
- Store 1125(r017) 1127
+ 1127: 60 DPdyFine 1126
+ Store 1125(r016) 1127
1129: 60 Load 63(inF0)
- 1130: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1129
- Store 1128(r018) 1130
+ 1130: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 1129
+ Store 1128(r017) 1130
1132: 60 Load 63(inF0)
- 1133: 60 ExtInst 1(GLSL.std.450) 27(Exp) 1132
- Store 1131(r019) 1133
+ 1133: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1132
+ Store 1131(r018) 1133
1135: 60 Load 63(inF0)
- 1136: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 1135
- Store 1134(R020) 1136
+ 1136: 60 ExtInst 1(GLSL.std.450) 27(Exp) 1135
+ Store 1134(r019) 1136
1138: 60 Load 63(inF0)
- 1139: 60 ExtInst 1(GLSL.std.450) 8(Floor) 1138
- Store 1137(r021) 1139
+ 1139: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 1138
+ Store 1137(R020) 1139
1141: 60 Load 63(inF0)
- 1142: 60 Load 64(inF1)
- 1143: 24(fvec2) CompositeExtract 1141 0
- 1144: 24(fvec2) CompositeExtract 1142 0
- 1145: 24(fvec2) FMod 1143 1144
- 1146: 24(fvec2) CompositeExtract 1141 1
- 1147: 24(fvec2) CompositeExtract 1142 1
+ 1142: 60 ExtInst 1(GLSL.std.450) 8(Floor) 1141
+ Store 1140(r021) 1142
+ 1144: 60 Load 63(inF0)
+ 1145: 60 Load 64(inF1)
+ 1146: 24(fvec2) CompositeExtract 1144 0
+ 1147: 24(fvec2) CompositeExtract 1145 0
1148: 24(fvec2) FMod 1146 1147
- 1149: 60 CompositeConstruct 1145 1148
- Store 1140(r022) 1149
- 1151: 60 Load 63(inF0)
- 1152: 60 ExtInst 1(GLSL.std.450) 10(Fract) 1151
- Store 1150(r023) 1152
+ 1149: 24(fvec2) CompositeExtract 1144 1
+ 1150: 24(fvec2) CompositeExtract 1145 1
+ 1151: 24(fvec2) FMod 1149 1150
+ 1152: 60 CompositeConstruct 1148 1151
+ Store 1143(r022) 1152
1154: 60 Load 63(inF0)
- 1156:1155(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1154
- 1157: 352(ivec2) CompositeExtract 1156 1
- Store 64(inF1) 1157
- 1158: 60 CompositeExtract 1156 0
- Store 1153(r024) 1158
- 1160: 60 Load 63(inF0)
- 1161: 60 Fwidth 1160
- Store 1159(r025) 1161
+ 1155: 60 ExtInst 1(GLSL.std.450) 10(Fract) 1154
+ Store 1153(r023) 1155
+ 1157: 60 Load 63(inF0)
+ 1159:1158(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1157
+ 1160: 352(ivec2) CompositeExtract 1159 1
+ Store 64(inF1) 1160
+ 1161: 60 CompositeExtract 1159 0
+ Store 1156(r024) 1161
1163: 60 Load 63(inF0)
- 1164: 60 Load 64(inF1)
- 1165: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 1163 1164
- Store 1162(r026) 1165
- 1167: 60 Load 63(inF0)
- 1168: 60 Load 64(inF1)
- 1169: 60 Load 65(inF2)
- 1170: 60 ExtInst 1(GLSL.std.450) 46(FMix) 1167 1168 1169
- Store 1166(r026a) 1170
- 1172: 60 Load 63(inF0)
- 1173: 60 ExtInst 1(GLSL.std.450) 28(Log) 1172
- Store 1171(r027) 1173
+ 1164: 60 Fwidth 1163
+ Store 1162(r025) 1164
+ 1166: 60 Load 63(inF0)
+ 1167: 60 Load 64(inF1)
+ 1168: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 1166 1167
+ Store 1165(r026) 1168
+ 1170: 60 Load 63(inF0)
+ 1171: 60 Load 64(inF1)
+ 1172: 60 Load 65(inF2)
+ 1173: 60 ExtInst 1(GLSL.std.450) 46(FMix) 1170 1171 1172
+ Store 1169(r026a) 1173
1175: 60 Load 63(inF0)
- 1176: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1175
- 1177: 60 MatrixTimesScalar 1176 263
- Store 1174(r028) 1177
- 1179: 60 Load 63(inF0)
- 1180: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1179
- Store 1178(r029) 1180
+ 1176: 60 ExtInst 1(GLSL.std.450) 28(Log) 1175
+ Store 1174(r027) 1176
+ 1178: 60 Load 63(inF0)
+ 1179: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1178
+ 1180: 60 MatrixTimesScalar 1179 262
+ Store 1177(r028) 1180
1182: 60 Load 63(inF0)
- 1183: 60 Load 64(inF1)
- 1184: 60 ExtInst 1(GLSL.std.450) 40(FMax) 1182 1183
- Store 1181(r030) 1184
- 1186: 60 Load 63(inF0)
- 1187: 60 Load 64(inF1)
- 1188: 60 ExtInst 1(GLSL.std.450) 37(FMin) 1186 1187
- Store 1185(r031) 1188
- 1190: 60 Load 63(inF0)
- 1191: 60 Load 64(inF1)
- 1192: 60 ExtInst 1(GLSL.std.450) 26(Pow) 1190 1191
- Store 1189(r032) 1192
- 1194: 60 Load 63(inF0)
- 1195: 60 ExtInst 1(GLSL.std.450) 11(Radians) 1194
- Store 1193(r033) 1195
+ 1183: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1182
+ Store 1181(r029) 1183
+ 1185: 60 Load 63(inF0)
+ 1186: 60 Load 64(inF1)
+ 1187: 60 ExtInst 1(GLSL.std.450) 40(FMax) 1185 1186
+ Store 1184(r030) 1187
+ 1189: 60 Load 63(inF0)
+ 1190: 60 Load 64(inF1)
+ 1191: 60 ExtInst 1(GLSL.std.450) 37(FMin) 1189 1190
+ Store 1188(r031) 1191
+ 1193: 60 Load 63(inF0)
+ 1194: 60 Load 64(inF1)
+ 1195: 60 ExtInst 1(GLSL.std.450) 26(Pow) 1193 1194
+ Store 1192(r032) 1195
1197: 60 Load 63(inF0)
- 1198: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 1197
- Store 1196(r034) 1198
+ 1198: 60 ExtInst 1(GLSL.std.450) 11(Radians) 1197
+ Store 1196(r033) 1198
1200: 60 Load 63(inF0)
- 1201: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1200
- Store 1199(r035) 1201
+ 1201: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 1200
+ Store 1199(r034) 1201
1203: 60 Load 63(inF0)
- 1204: 24(fvec2) CompositeConstruct 175 175
- 1205: 24(fvec2) CompositeConstruct 284 284
- 1206: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1203 1204 1205
- Store 1202(r036) 1206
- 1208: 60 Load 63(inF0)
- 1209: 60 ExtInst 1(GLSL.std.450) 6(FSign) 1208
- Store 1207(r037) 1209
+ 1204: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1203
+ Store 1202(r035) 1204
+ 1206: 60 Load 63(inF0)
+ 1207: 24(fvec2) CompositeConstruct 175 175
+ 1208: 24(fvec2) CompositeConstruct 283 283
+ 1209: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1206 1207 1208
+ Store 1205(r036) 1209
1211: 60 Load 63(inF0)
- 1212: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1211
- Store 1210(r038) 1212
- 1213: 60 Load 63(inF0)
- 1214: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1213
- Store 64(inF1) 1214
- 1215: 60 Load 63(inF0)
- 1216: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1215
- Store 65(inF2) 1216
+ 1212: 60 ExtInst 1(GLSL.std.450) 6(FSign) 1211
+ Store 1210(r037) 1212
+ 1214: 60 Load 63(inF0)
+ 1215: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1214
+ Store 1213(r038) 1215
+ 1216: 60 Load 63(inF0)
+ 1217: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1216
+ Store 64(inF1) 1217
1218: 60 Load 63(inF0)
- 1219: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 1218
- Store 1217(r039) 1219
+ 1219: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1218
+ Store 65(inF2) 1219
1221: 60 Load 63(inF0)
- 1222: 60 Load 64(inF1)
- 1223: 60 Load 65(inF2)
- 1224: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1221 1222 1223
- Store 1220(r049) 1224
- 1226: 60 Load 63(inF0)
- 1227: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 1226
- Store 1225(r041) 1227
+ 1222: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 1221
+ Store 1220(r039) 1222
+ 1224: 60 Load 63(inF0)
+ 1225: 60 Load 64(inF1)
+ 1226: 60 Load 65(inF2)
+ 1227: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1224 1225 1226
+ Store 1223(r049) 1227
1229: 60 Load 63(inF0)
- 1230: 60 Load 64(inF1)
- 1231: 60 ExtInst 1(GLSL.std.450) 48(Step) 1229 1230
- Store 1228(r042) 1231
- 1233: 60 Load 63(inF0)
- 1234: 60 ExtInst 1(GLSL.std.450) 15(Tan) 1233
- Store 1232(r043) 1234
+ 1230: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 1229
+ Store 1228(r041) 1230
+ 1232: 60 Load 63(inF0)
+ 1233: 60 Load 64(inF1)
+ 1234: 60 ExtInst 1(GLSL.std.450) 48(Step) 1232 1233
+ Store 1231(r042) 1234
1236: 60 Load 63(inF0)
- 1237: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 1236
- Store 1235(r044) 1237
- 1238: 60 Load 63(inF0)
- 1239: 60 Transpose 1238
+ 1237: 60 ExtInst 1(GLSL.std.450) 15(Tan) 1236
+ Store 1235(r043) 1237
+ 1239: 60 Load 63(inF0)
+ 1240: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 1239
+ Store 1238(r044) 1240
1241: 60 Load 63(inF0)
- 1242: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 1241
- Store 1240(r046) 1242
- ReturnValue 1244
+ 1242: 60 Transpose 1241
+ 1244: 60 Load 63(inF0)
+ 1245: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 1244
+ Store 1243(r046) 1245
+ ReturnValue 1247
FunctionEnd
74(PixelShaderFunction3x3(mf33;mf33;mf33;): 68 Function None 70
71(inF0): 69(ptr) FunctionParameter
72(inF1): 69(ptr) FunctionParameter
73(inF2): 69(ptr) FunctionParameter
75: Label
- 1247(r000): 132(ptr) Variable Function
- 1250(r001): 69(ptr) Variable Function
- 1255(r003): 132(ptr) Variable Function
- 1258(r004): 69(ptr) Variable Function
- 1261(r005): 69(ptr) Variable Function
- 1264(r006): 69(ptr) Variable Function
- 1268(r007): 69(ptr) Variable Function
- 1279(r008): 69(ptr) Variable Function
- 1284(r009): 69(ptr) Variable Function
- 1287(r010): 69(ptr) Variable Function
- 1290(r011): 69(ptr) Variable Function
- 1293(r012): 69(ptr) Variable Function
- 1296(r013): 69(ptr) Variable Function
- 1299(r014): 69(ptr) Variable Function
- 1302(r015): 69(ptr) Variable Function
- 1305(r016): 69(ptr) Variable Function
- 1308(r017): 69(ptr) Variable Function
- 1311(r018): 7(ptr) Variable Function
- 1314(r019): 69(ptr) Variable Function
- 1317(R020): 69(ptr) Variable Function
- 1320(r021): 69(ptr) Variable Function
- 1323(r022): 69(ptr) Variable Function
- 1336(r023): 69(ptr) Variable Function
- 1339(r024): 69(ptr) Variable Function
- 1345(r025): 69(ptr) Variable Function
- 1348(r026): 69(ptr) Variable Function
- 1352(r026a): 69(ptr) Variable Function
- 1357(r027): 69(ptr) Variable Function
- 1360(r028): 69(ptr) Variable Function
- 1364(r029): 69(ptr) Variable Function
- 1367(r030): 69(ptr) Variable Function
- 1371(r031): 69(ptr) Variable Function
- 1375(r032): 69(ptr) Variable Function
- 1379(r033): 69(ptr) Variable Function
- 1382(r034): 69(ptr) Variable Function
- 1385(r035): 69(ptr) Variable Function
- 1388(r036): 69(ptr) Variable Function
- 1393(r037): 69(ptr) Variable Function
- 1396(r038): 69(ptr) Variable Function
- 1403(r039): 69(ptr) Variable Function
- 1406(r049): 69(ptr) Variable Function
- 1411(r041): 69(ptr) Variable Function
- 1414(r042): 69(ptr) Variable Function
- 1418(r043): 69(ptr) Variable Function
- 1421(r044): 69(ptr) Variable Function
- 1426(r046): 69(ptr) Variable Function
- 1248: 68 Load 71(inF0)
- 1249: 131(bool) All 1248
- Store 1247(r000) 1249
+ 1250(r000): 132(ptr) Variable Function
+ 1253(r001): 69(ptr) Variable Function
+ 1258(r003): 132(ptr) Variable Function
+ 1261(r004): 69(ptr) Variable Function
+ 1264(r005): 69(ptr) Variable Function
+ 1267(r006): 69(ptr) Variable Function
+ 1271(r007): 69(ptr) Variable Function
+ 1282(r008): 69(ptr) Variable Function
+ 1287(r009): 69(ptr) Variable Function
+ 1290(r010): 69(ptr) Variable Function
+ 1293(r011): 69(ptr) Variable Function
+ 1296(r012): 69(ptr) Variable Function
+ 1299(r013): 69(ptr) Variable Function
+ 1302(r014): 69(ptr) Variable Function
+ 1305(r015): 69(ptr) Variable Function
+ 1308(r016): 69(ptr) Variable Function
+ 1311(r017): 69(ptr) Variable Function
+ 1314(r018): 7(ptr) Variable Function
+ 1317(r019): 69(ptr) Variable Function
+ 1320(R020): 69(ptr) Variable Function
+ 1323(r021): 69(ptr) Variable Function
+ 1326(r022): 69(ptr) Variable Function
+ 1339(r023): 69(ptr) Variable Function
+ 1342(r024): 69(ptr) Variable Function
+ 1348(r025): 69(ptr) Variable Function
+ 1351(r026): 69(ptr) Variable Function
+ 1355(r026a): 69(ptr) Variable Function
+ 1360(r027): 69(ptr) Variable Function
+ 1363(r028): 69(ptr) Variable Function
+ 1367(r029): 69(ptr) Variable Function
+ 1370(r030): 69(ptr) Variable Function
+ 1374(r031): 69(ptr) Variable Function
+ 1378(r032): 69(ptr) Variable Function
+ 1382(r033): 69(ptr) Variable Function
+ 1385(r034): 69(ptr) Variable Function
+ 1388(r035): 69(ptr) Variable Function
+ 1391(r036): 69(ptr) Variable Function
+ 1396(r037): 69(ptr) Variable Function
+ 1399(r038): 69(ptr) Variable Function
+ 1406(r039): 69(ptr) Variable Function
+ 1409(r049): 69(ptr) Variable Function
+ 1414(r041): 69(ptr) Variable Function
+ 1417(r042): 69(ptr) Variable Function
+ 1421(r043): 69(ptr) Variable Function
+ 1424(r044): 69(ptr) Variable Function
+ 1429(r046): 69(ptr) Variable Function
1251: 68 Load 71(inF0)
- 1252: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 1251
- Store 1250(r001) 1252
- 1253: 68 Load 71(inF0)
- 1254: 68 ExtInst 1(GLSL.std.450) 17(Acos) 1253
+ 1252: 131(bool) All 1251
+ Store 1250(r000) 1252
+ 1254: 68 Load 71(inF0)
+ 1255: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 1254
+ Store 1253(r001) 1255
1256: 68 Load 71(inF0)
- 1257: 131(bool) Any 1256
- Store 1255(r003) 1257
+ 1257: 68 ExtInst 1(GLSL.std.450) 17(Acos) 1256
1259: 68 Load 71(inF0)
- 1260: 68 ExtInst 1(GLSL.std.450) 16(Asin) 1259
- Store 1258(r004) 1260
+ 1260: 131(bool) Any 1259
+ Store 1258(r003) 1260
1262: 68 Load 71(inF0)
- 1263: 68 ExtInst 1(GLSL.std.450) 18(Atan) 1262
- Store 1261(r005) 1263
+ 1263: 68 ExtInst 1(GLSL.std.450) 16(Asin) 1262
+ Store 1261(r004) 1263
1265: 68 Load 71(inF0)
- 1266: 68 Load 72(inF1)
- 1267: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 1265 1266
- Store 1264(r006) 1267
- 1269: 68 Load 71(inF0)
- 1270: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 1269
- Store 1268(r007) 1270
- 1271: 68 Load 71(inF0)
- 1274: 1273 FOrdLessThan 1271 1272
- 1275: 131(bool) Any 1274
- SelectionMerge 1277 None
- BranchConditional 1275 1276 1277
- 1276: Label
+ 1266: 68 ExtInst 1(GLSL.std.450) 18(Atan) 1265
+ Store 1264(r005) 1266
+ 1268: 68 Load 71(inF0)
+ 1269: 68 Load 72(inF1)
+ 1270: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 1268 1269
+ Store 1267(r006) 1270
+ 1272: 68 Load 71(inF0)
+ 1273: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 1272
+ Store 1271(r007) 1273
+ 1274: 68 Load 71(inF0)
+ 1277: 1276 FOrdLessThan 1274 1275
+ 1278: 131(bool) Any 1277
+ SelectionMerge 1280 None
+ BranchConditional 1278 1279 1280
+ 1279: Label
Kill
- 1277: Label
- 1280: 68 Load 71(inF0)
- 1281: 68 Load 72(inF1)
- 1282: 68 Load 73(inF2)
- 1283: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1280 1281 1282
- Store 1279(r008) 1283
- 1285: 68 Load 71(inF0)
- 1286: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1285
- Store 1284(r009) 1286
+ 1280: Label
+ 1283: 68 Load 71(inF0)
+ 1284: 68 Load 72(inF1)
+ 1285: 68 Load 73(inF2)
+ 1286: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1283 1284 1285
+ Store 1282(r008) 1286
1288: 68 Load 71(inF0)
- 1289: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 1288
- Store 1287(r010) 1289
+ 1289: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1288
+ Store 1287(r009) 1289
1291: 68 Load 71(inF0)
- 1292: 68 DPdx 1291
- Store 1290(r011) 1292
+ 1292: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 1291
+ Store 1290(r010) 1292
1294: 68 Load 71(inF0)
- 1295: 68 DPdxCoarse 1294
- Store 1293(r012) 1295
+ 1295: 68 DPdx 1294
+ Store 1293(r011) 1295
1297: 68 Load 71(inF0)
- 1298: 68 DPdxFine 1297
- Store 1296(r013) 1298
+ 1298: 68 DPdxCoarse 1297
+ Store 1296(r012) 1298
1300: 68 Load 71(inF0)
- 1301: 68 DPdy 1300
- Store 1299(r014) 1301
+ 1301: 68 DPdxFine 1300
+ Store 1299(r013) 1301
1303: 68 Load 71(inF0)
- 1304: 68 DPdyCoarse 1303
- Store 1302(r015) 1304
+ 1304: 68 DPdy 1303
+ Store 1302(r014) 1304
1306: 68 Load 71(inF0)
- 1307: 68 DPdyFine 1306
- Store 1305(r016) 1307
+ 1307: 68 DPdyCoarse 1306
+ Store 1305(r015) 1307
1309: 68 Load 71(inF0)
- 1310: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 1309
- Store 1308(r017) 1310
+ 1310: 68 DPdyFine 1309
+ Store 1308(r016) 1310
1312: 68 Load 71(inF0)
- 1313: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1312
- Store 1311(r018) 1313
+ 1313: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 1312
+ Store 1311(r017) 1313
1315: 68 Load 71(inF0)
- 1316: 68 ExtInst 1(GLSL.std.450) 27(Exp) 1315
- Store 1314(r019) 1316
+ 1316: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1315
+ Store 1314(r018) 1316
1318: 68 Load 71(inF0)
- 1319: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 1318
- Store 1317(R020) 1319
+ 1319: 68 ExtInst 1(GLSL.std.450) 27(Exp) 1318
+ Store 1317(r019) 1319
1321: 68 Load 71(inF0)
- 1322: 68 ExtInst 1(GLSL.std.450) 8(Floor) 1321
- Store 1320(r021) 1322
+ 1322: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 1321
+ Store 1320(R020) 1322
1324: 68 Load 71(inF0)
- 1325: 68 Load 72(inF1)
- 1326: 36(fvec3) CompositeExtract 1324 0
- 1327: 36(fvec3) CompositeExtract 1325 0
- 1328: 36(fvec3) FMod 1326 1327
- 1329: 36(fvec3) CompositeExtract 1324 1
- 1330: 36(fvec3) CompositeExtract 1325 1
+ 1325: 68 ExtInst 1(GLSL.std.450) 8(Floor) 1324
+ Store 1323(r021) 1325
+ 1327: 68 Load 71(inF0)
+ 1328: 68 Load 72(inF1)
+ 1329: 36(fvec3) CompositeExtract 1327 0
+ 1330: 36(fvec3) CompositeExtract 1328 0
1331: 36(fvec3) FMod 1329 1330
- 1332: 36(fvec3) CompositeExtract 1324 2
- 1333: 36(fvec3) CompositeExtract 1325 2
+ 1332: 36(fvec3) CompositeExtract 1327 1
+ 1333: 36(fvec3) CompositeExtract 1328 1
1334: 36(fvec3) FMod 1332 1333
- 1335: 68 CompositeConstruct 1328 1331 1334
- Store 1323(r022) 1335
- 1337: 68 Load 71(inF0)
- 1338: 68 ExtInst 1(GLSL.std.450) 10(Fract) 1337
- Store 1336(r023) 1338
+ 1335: 36(fvec3) CompositeExtract 1327 2
+ 1336: 36(fvec3) CompositeExtract 1328 2
+ 1337: 36(fvec3) FMod 1335 1336
+ 1338: 68 CompositeConstruct 1331 1334 1337
+ Store 1326(r022) 1338
1340: 68 Load 71(inF0)
- 1342:1341(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1340
- 1343: 588(ivec3) CompositeExtract 1342 1
- Store 72(inF1) 1343
- 1344: 68 CompositeExtract 1342 0
- Store 1339(r024) 1344
- 1346: 68 Load 71(inF0)
- 1347: 68 Fwidth 1346
- Store 1345(r025) 1347
+ 1341: 68 ExtInst 1(GLSL.std.450) 10(Fract) 1340
+ Store 1339(r023) 1341
+ 1343: 68 Load 71(inF0)
+ 1345:1344(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1343
+ 1346: 590(ivec3) CompositeExtract 1345 1
+ Store 72(inF1) 1346
+ 1347: 68 CompositeExtract 1345 0
+ Store 1342(r024) 1347
1349: 68 Load 71(inF0)
- 1350: 68 Load 72(inF1)
- 1351: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 1349 1350
- Store 1348(r026) 1351
- 1353: 68 Load 71(inF0)
- 1354: 68 Load 72(inF1)
- 1355: 68 Load 73(inF2)
- 1356: 68 ExtInst 1(GLSL.std.450) 46(FMix) 1353 1354 1355
- Store 1352(r026a) 1356
- 1358: 68 Load 71(inF0)
- 1359: 68 ExtInst 1(GLSL.std.450) 28(Log) 1358
- Store 1357(r027) 1359
+ 1350: 68 Fwidth 1349
+ Store 1348(r025) 1350
+ 1352: 68 Load 71(inF0)
+ 1353: 68 Load 72(inF1)
+ 1354: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 1352 1353
+ Store 1351(r026) 1354
+ 1356: 68 Load 71(inF0)
+ 1357: 68 Load 72(inF1)
+ 1358: 68 Load 73(inF2)
+ 1359: 68 ExtInst 1(GLSL.std.450) 46(FMix) 1356 1357 1358
+ Store 1355(r026a) 1359
1361: 68 Load 71(inF0)
- 1362: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1361
- 1363: 68 MatrixTimesScalar 1362 263
- Store 1360(r028) 1363
- 1365: 68 Load 71(inF0)
- 1366: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1365
- Store 1364(r029) 1366
+ 1362: 68 ExtInst 1(GLSL.std.450) 28(Log) 1361
+ Store 1360(r027) 1362
+ 1364: 68 Load 71(inF0)
+ 1365: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1364
+ 1366: 68 MatrixTimesScalar 1365 262
+ Store 1363(r028) 1366
1368: 68 Load 71(inF0)
- 1369: 68 Load 72(inF1)
- 1370: 68 ExtInst 1(GLSL.std.450) 40(FMax) 1368 1369
- Store 1367(r030) 1370
- 1372: 68 Load 71(inF0)
- 1373: 68 Load 72(inF1)
- 1374: 68 ExtInst 1(GLSL.std.450) 37(FMin) 1372 1373
- Store 1371(r031) 1374
- 1376: 68 Load 71(inF0)
- 1377: 68 Load 72(inF1)
- 1378: 68 ExtInst 1(GLSL.std.450) 26(Pow) 1376 1377
- Store 1375(r032) 1378
- 1380: 68 Load 71(inF0)
- 1381: 68 ExtInst 1(GLSL.std.450) 11(Radians) 1380
- Store 1379(r033) 1381
+ 1369: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1368
+ Store 1367(r029) 1369
+ 1371: 68 Load 71(inF0)
+ 1372: 68 Load 72(inF1)
+ 1373: 68 ExtInst 1(GLSL.std.450) 40(FMax) 1371 1372
+ Store 1370(r030) 1373
+ 1375: 68 Load 71(inF0)
+ 1376: 68 Load 72(inF1)
+ 1377: 68 ExtInst 1(GLSL.std.450) 37(FMin) 1375 1376
+ Store 1374(r031) 1377
+ 1379: 68 Load 71(inF0)
+ 1380: 68 Load 72(inF1)
+ 1381: 68 ExtInst 1(GLSL.std.450) 26(Pow) 1379 1380
+ Store 1378(r032) 1381
1383: 68 Load 71(inF0)
- 1384: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 1383
- Store 1382(r034) 1384
+ 1384: 68 ExtInst 1(GLSL.std.450) 11(Radians) 1383
+ Store 1382(r033) 1384
1386: 68 Load 71(inF0)
- 1387: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1386
- Store 1385(r035) 1387
+ 1387: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 1386
+ Store 1385(r034) 1387
1389: 68 Load 71(inF0)
- 1390: 36(fvec3) CompositeConstruct 175 175 175
- 1391: 36(fvec3) CompositeConstruct 284 284 284
- 1392: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1389 1390 1391
- Store 1388(r036) 1392
- 1394: 68 Load 71(inF0)
- 1395: 68 ExtInst 1(GLSL.std.450) 6(FSign) 1394
- Store 1393(r037) 1395
+ 1390: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1389
+ Store 1388(r035) 1390
+ 1392: 68 Load 71(inF0)
+ 1393: 36(fvec3) CompositeConstruct 175 175 175
+ 1394: 36(fvec3) CompositeConstruct 283 283 283
+ 1395: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1392 1393 1394
+ Store 1391(r036) 1395
1397: 68 Load 71(inF0)
- 1398: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1397
- Store 1396(r038) 1398
- 1399: 68 Load 71(inF0)
- 1400: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1399
- Store 72(inF1) 1400
- 1401: 68 Load 71(inF0)
- 1402: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1401
- Store 73(inF2) 1402
+ 1398: 68 ExtInst 1(GLSL.std.450) 6(FSign) 1397
+ Store 1396(r037) 1398
+ 1400: 68 Load 71(inF0)
+ 1401: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1400
+ Store 1399(r038) 1401
+ 1402: 68 Load 71(inF0)
+ 1403: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1402
+ Store 72(inF1) 1403
1404: 68 Load 71(inF0)
- 1405: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 1404
- Store 1403(r039) 1405
+ 1405: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1404
+ Store 73(inF2) 1405
1407: 68 Load 71(inF0)
- 1408: 68 Load 72(inF1)
- 1409: 68 Load 73(inF2)
- 1410: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1407 1408 1409
- Store 1406(r049) 1410
- 1412: 68 Load 71(inF0)
- 1413: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 1412
- Store 1411(r041) 1413
+ 1408: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 1407
+ Store 1406(r039) 1408
+ 1410: 68 Load 71(inF0)
+ 1411: 68 Load 72(inF1)
+ 1412: 68 Load 73(inF2)
+ 1413: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1410 1411 1412
+ Store 1409(r049) 1413
1415: 68 Load 71(inF0)
- 1416: 68 Load 72(inF1)
- 1417: 68 ExtInst 1(GLSL.std.450) 48(Step) 1415 1416
- Store 1414(r042) 1417
- 1419: 68 Load 71(inF0)
- 1420: 68 ExtInst 1(GLSL.std.450) 15(Tan) 1419
- Store 1418(r043) 1420
+ 1416: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 1415
+ Store 1414(r041) 1416
+ 1418: 68 Load 71(inF0)
+ 1419: 68 Load 72(inF1)
+ 1420: 68 ExtInst 1(GLSL.std.450) 48(Step) 1418 1419
+ Store 1417(r042) 1420
1422: 68 Load 71(inF0)
- 1423: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 1422
- Store 1421(r044) 1423
- 1424: 68 Load 71(inF0)
- 1425: 68 Transpose 1424
+ 1423: 68 ExtInst 1(GLSL.std.450) 15(Tan) 1422
+ Store 1421(r043) 1423
+ 1425: 68 Load 71(inF0)
+ 1426: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 1425
+ Store 1424(r044) 1426
1427: 68 Load 71(inF0)
- 1428: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 1427
- Store 1426(r046) 1428
- ReturnValue 1430
+ 1428: 68 Transpose 1427
+ 1430: 68 Load 71(inF0)
+ 1431: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 1430
+ Store 1429(r046) 1431
+ ReturnValue 1433
FunctionEnd
82(PixelShaderFunction4x4(mf44;mf44;mf44;): 76 Function None 78
79(inF0): 77(ptr) FunctionParameter
80(inF1): 77(ptr) FunctionParameter
81(inF2): 77(ptr) FunctionParameter
83: Label
- 1433(r000): 132(ptr) Variable Function
- 1436(r001): 77(ptr) Variable Function
- 1441(r003): 132(ptr) Variable Function
- 1444(r004): 77(ptr) Variable Function
- 1447(r005): 77(ptr) Variable Function
- 1450(r006): 77(ptr) Variable Function
- 1454(r007): 77(ptr) Variable Function
- 1465(r008): 77(ptr) Variable Function
- 1470(r009): 77(ptr) Variable Function
- 1473(r010): 77(ptr) Variable Function
- 1476(r011): 77(ptr) Variable Function
- 1479(r012): 77(ptr) Variable Function
- 1482(r013): 77(ptr) Variable Function
- 1485(r014): 77(ptr) Variable Function
- 1488(r015): 77(ptr) Variable Function
- 1491(r016): 77(ptr) Variable Function
- 1494(r017): 77(ptr) Variable Function
- 1497(r018): 7(ptr) Variable Function
- 1500(r019): 77(ptr) Variable Function
- 1503(R020): 77(ptr) Variable Function
- 1506(r021): 77(ptr) Variable Function
- 1509(r022): 77(ptr) Variable Function
- 1525(r023): 77(ptr) Variable Function
- 1528(r024): 77(ptr) Variable Function
- 1534(r025): 77(ptr) Variable Function
- 1537(r026): 77(ptr) Variable Function
- 1541(r026a): 77(ptr) Variable Function
- 1546(r027): 77(ptr) Variable Function
- 1549(r028): 77(ptr) Variable Function
- 1553(r029): 77(ptr) Variable Function
- 1556(r030): 77(ptr) Variable Function
- 1560(r031): 77(ptr) Variable Function
- 1564(r032): 77(ptr) Variable Function
- 1568(r033): 77(ptr) Variable Function
- 1571(r034): 77(ptr) Variable Function
- 1574(r035): 77(ptr) Variable Function
- 1577(r036): 77(ptr) Variable Function
- 1582(r037): 77(ptr) Variable Function
- 1585(r038): 77(ptr) Variable Function
- 1592(r039): 77(ptr) Variable Function
- 1595(r049): 77(ptr) Variable Function
- 1600(r041): 77(ptr) Variable Function
- 1603(r042): 77(ptr) Variable Function
- 1607(r043): 77(ptr) Variable Function
- 1610(r044): 77(ptr) Variable Function
- 1615(r046): 77(ptr) Variable Function
- 1434: 76 Load 79(inF0)
- 1435: 131(bool) All 1434
- Store 1433(r000) 1435
+ 1436(r000): 132(ptr) Variable Function
+ 1439(r001): 77(ptr) Variable Function
+ 1444(r003): 132(ptr) Variable Function
+ 1447(r004): 77(ptr) Variable Function
+ 1450(r005): 77(ptr) Variable Function
+ 1453(r006): 77(ptr) Variable Function
+ 1457(r007): 77(ptr) Variable Function
+ 1468(r008): 77(ptr) Variable Function
+ 1473(r009): 77(ptr) Variable Function
+ 1476(r010): 77(ptr) Variable Function
+ 1479(r011): 77(ptr) Variable Function
+ 1482(r012): 77(ptr) Variable Function
+ 1485(r013): 77(ptr) Variable Function
+ 1488(r014): 77(ptr) Variable Function
+ 1491(r015): 77(ptr) Variable Function
+ 1494(r016): 77(ptr) Variable Function
+ 1497(r017): 77(ptr) Variable Function
+ 1500(r018): 7(ptr) Variable Function
+ 1503(r019): 77(ptr) Variable Function
+ 1506(R020): 77(ptr) Variable Function
+ 1509(r021): 77(ptr) Variable Function
+ 1512(r022): 77(ptr) Variable Function
+ 1528(r023): 77(ptr) Variable Function
+ 1531(r024): 77(ptr) Variable Function
+ 1537(r025): 77(ptr) Variable Function
+ 1540(r026): 77(ptr) Variable Function
+ 1544(r026a): 77(ptr) Variable Function
+ 1549(r027): 77(ptr) Variable Function
+ 1552(r028): 77(ptr) Variable Function
+ 1556(r029): 77(ptr) Variable Function
+ 1559(r030): 77(ptr) Variable Function
+ 1563(r031): 77(ptr) Variable Function
+ 1567(r032): 77(ptr) Variable Function
+ 1571(r033): 77(ptr) Variable Function
+ 1574(r034): 77(ptr) Variable Function
+ 1577(r035): 77(ptr) Variable Function
+ 1580(r036): 77(ptr) Variable Function
+ 1585(r037): 77(ptr) Variable Function
+ 1588(r038): 77(ptr) Variable Function
+ 1595(r039): 77(ptr) Variable Function
+ 1598(r049): 77(ptr) Variable Function
+ 1603(r041): 77(ptr) Variable Function
+ 1606(r042): 77(ptr) Variable Function
+ 1610(r043): 77(ptr) Variable Function
+ 1613(r044): 77(ptr) Variable Function
+ 1618(r046): 77(ptr) Variable Function
1437: 76 Load 79(inF0)
- 1438: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 1437
- Store 1436(r001) 1438
- 1439: 76 Load 79(inF0)
- 1440: 76 ExtInst 1(GLSL.std.450) 17(Acos) 1439
+ 1438: 131(bool) All 1437
+ Store 1436(r000) 1438
+ 1440: 76 Load 79(inF0)
+ 1441: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 1440
+ Store 1439(r001) 1441
1442: 76 Load 79(inF0)
- 1443: 131(bool) Any 1442
- Store 1441(r003) 1443
+ 1443: 76 ExtInst 1(GLSL.std.450) 17(Acos) 1442
1445: 76 Load 79(inF0)
- 1446: 76 ExtInst 1(GLSL.std.450) 16(Asin) 1445
- Store 1444(r004) 1446
+ 1446: 131(bool) Any 1445
+ Store 1444(r003) 1446
1448: 76 Load 79(inF0)
- 1449: 76 ExtInst 1(GLSL.std.450) 18(Atan) 1448
- Store 1447(r005) 1449
+ 1449: 76 ExtInst 1(GLSL.std.450) 16(Asin) 1448
+ Store 1447(r004) 1449
1451: 76 Load 79(inF0)
- 1452: 76 Load 80(inF1)
- 1453: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 1451 1452
- Store 1450(r006) 1453
- 1455: 76 Load 79(inF0)
- 1456: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 1455
- Store 1454(r007) 1456
- 1457: 76 Load 79(inF0)
- 1460: 1459 FOrdLessThan 1457 1458
- 1461: 131(bool) Any 1460
- SelectionMerge 1463 None
- BranchConditional 1461 1462 1463
- 1462: Label
+ 1452: 76 ExtInst 1(GLSL.std.450) 18(Atan) 1451
+ Store 1450(r005) 1452
+ 1454: 76 Load 79(inF0)
+ 1455: 76 Load 80(inF1)
+ 1456: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 1454 1455
+ Store 1453(r006) 1456
+ 1458: 76 Load 79(inF0)
+ 1459: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 1458
+ Store 1457(r007) 1459
+ 1460: 76 Load 79(inF0)
+ 1463: 1462 FOrdLessThan 1460 1461
+ 1464: 131(bool) Any 1463
+ SelectionMerge 1466 None
+ BranchConditional 1464 1465 1466
+ 1465: Label
Kill
- 1463: Label
- 1466: 76 Load 79(inF0)
- 1467: 76 Load 80(inF1)
- 1468: 76 Load 81(inF2)
- 1469: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1466 1467 1468
- Store 1465(r008) 1469
- 1471: 76 Load 79(inF0)
- 1472: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1471
- Store 1470(r009) 1472
+ 1466: Label
+ 1469: 76 Load 79(inF0)
+ 1470: 76 Load 80(inF1)
+ 1471: 76 Load 81(inF2)
+ 1472: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1469 1470 1471
+ Store 1468(r008) 1472
1474: 76 Load 79(inF0)
- 1475: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 1474
- Store 1473(r010) 1475
+ 1475: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1474
+ Store 1473(r009) 1475
1477: 76 Load 79(inF0)
- 1478: 76 DPdx 1477
- Store 1476(r011) 1478
+ 1478: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 1477
+ Store 1476(r010) 1478
1480: 76 Load 79(inF0)
- 1481: 76 DPdxCoarse 1480
- Store 1479(r012) 1481
+ 1481: 76 DPdx 1480
+ Store 1479(r011) 1481
1483: 76 Load 79(inF0)
- 1484: 76 DPdxFine 1483
- Store 1482(r013) 1484
+ 1484: 76 DPdxCoarse 1483
+ Store 1482(r012) 1484
1486: 76 Load 79(inF0)
- 1487: 76 DPdy 1486
- Store 1485(r014) 1487
+ 1487: 76 DPdxFine 1486
+ Store 1485(r013) 1487
1489: 76 Load 79(inF0)
- 1490: 76 DPdyCoarse 1489
- Store 1488(r015) 1490
+ 1490: 76 DPdy 1489
+ Store 1488(r014) 1490
1492: 76 Load 79(inF0)
- 1493: 76 DPdyFine 1492
- Store 1491(r016) 1493
+ 1493: 76 DPdyCoarse 1492
+ Store 1491(r015) 1493
1495: 76 Load 79(inF0)
- 1496: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 1495
- Store 1494(r017) 1496
+ 1496: 76 DPdyFine 1495
+ Store 1494(r016) 1496
1498: 76 Load 79(inF0)
- 1499: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1498
- Store 1497(r018) 1499
+ 1499: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 1498
+ Store 1497(r017) 1499
1501: 76 Load 79(inF0)
- 1502: 76 ExtInst 1(GLSL.std.450) 27(Exp) 1501
- Store 1500(r019) 1502
+ 1502: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1501
+ Store 1500(r018) 1502
1504: 76 Load 79(inF0)
- 1505: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 1504
- Store 1503(R020) 1505
+ 1505: 76 ExtInst 1(GLSL.std.450) 27(Exp) 1504
+ Store 1503(r019) 1505
1507: 76 Load 79(inF0)
- 1508: 76 ExtInst 1(GLSL.std.450) 8(Floor) 1507
- Store 1506(r021) 1508
+ 1508: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 1507
+ Store 1506(R020) 1508
1510: 76 Load 79(inF0)
- 1511: 76 Load 80(inF1)
- 1512: 48(fvec4) CompositeExtract 1510 0
- 1513: 48(fvec4) CompositeExtract 1511 0
- 1514: 48(fvec4) FMod 1512 1513
- 1515: 48(fvec4) CompositeExtract 1510 1
- 1516: 48(fvec4) CompositeExtract 1511 1
+ 1511: 76 ExtInst 1(GLSL.std.450) 8(Floor) 1510
+ Store 1509(r021) 1511
+ 1513: 76 Load 79(inF0)
+ 1514: 76 Load 80(inF1)
+ 1515: 48(fvec4) CompositeExtract 1513 0
+ 1516: 48(fvec4) CompositeExtract 1514 0
1517: 48(fvec4) FMod 1515 1516
- 1518: 48(fvec4) CompositeExtract 1510 2
- 1519: 48(fvec4) CompositeExtract 1511 2
+ 1518: 48(fvec4) CompositeExtract 1513 1
+ 1519: 48(fvec4) CompositeExtract 1514 1
1520: 48(fvec4) FMod 1518 1519
- 1521: 48(fvec4) CompositeExtract 1510 3
- 1522: 48(fvec4) CompositeExtract 1511 3
+ 1521: 48(fvec4) CompositeExtract 1513 2
+ 1522: 48(fvec4) CompositeExtract 1514 2
1523: 48(fvec4) FMod 1521 1522
- 1524: 76 CompositeConstruct 1514 1517 1520 1523
- Store 1509(r022) 1524
- 1526: 76 Load 79(inF0)
- 1527: 76 ExtInst 1(GLSL.std.450) 10(Fract) 1526
- Store 1525(r023) 1527
+ 1524: 48(fvec4) CompositeExtract 1513 3
+ 1525: 48(fvec4) CompositeExtract 1514 3
+ 1526: 48(fvec4) FMod 1524 1525
+ 1527: 76 CompositeConstruct 1517 1520 1523 1526
+ Store 1512(r022) 1527
1529: 76 Load 79(inF0)
- 1531:1530(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1529
- 1532: 833(ivec4) CompositeExtract 1531 1
- Store 80(inF1) 1532
- 1533: 76 CompositeExtract 1531 0
- Store 1528(r024) 1533
- 1535: 76 Load 79(inF0)
- 1536: 76 Fwidth 1535
- Store 1534(r025) 1536
+ 1530: 76 ExtInst 1(GLSL.std.450) 10(Fract) 1529
+ Store 1528(r023) 1530
+ 1532: 76 Load 79(inF0)
+ 1534:1533(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1532
+ 1535: 836(ivec4) CompositeExtract 1534 1
+ Store 80(inF1) 1535
+ 1536: 76 CompositeExtract 1534 0
+ Store 1531(r024) 1536
1538: 76 Load 79(inF0)
- 1539: 76 Load 80(inF1)
- 1540: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1538 1539
- Store 1537(r026) 1540
- 1542: 76 Load 79(inF0)
- 1543: 76 Load 80(inF1)
- 1544: 76 Load 81(inF2)
- 1545: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1542 1543 1544
- Store 1541(r026a) 1545
- 1547: 76 Load 79(inF0)
- 1548: 76 ExtInst 1(GLSL.std.450) 28(Log) 1547
- Store 1546(r027) 1548
+ 1539: 76 Fwidth 1538
+ Store 1537(r025) 1539
+ 1541: 76 Load 79(inF0)
+ 1542: 76 Load 80(inF1)
+ 1543: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1541 1542
+ Store 1540(r026) 1543
+ 1545: 76 Load 79(inF0)
+ 1546: 76 Load 80(inF1)
+ 1547: 76 Load 81(inF2)
+ 1548: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1545 1546 1547
+ Store 1544(r026a) 1548
1550: 76 Load 79(inF0)
- 1551: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1550
- 1552: 76 MatrixTimesScalar 1551 263
- Store 1549(r028) 1552
- 1554: 76 Load 79(inF0)
- 1555: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1554
- Store 1553(r029) 1555
+ 1551: 76 ExtInst 1(GLSL.std.450) 28(Log) 1550
+ Store 1549(r027) 1551
+ 1553: 76 Load 79(inF0)
+ 1554: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1553
+ 1555: 76 MatrixTimesScalar 1554 262
+ Store 1552(r028) 1555
1557: 76 Load 79(inF0)
- 1558: 76 Load 80(inF1)
- 1559: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1557 1558
- Store 1556(r030) 1559
- 1561: 76 Load 79(inF0)
- 1562: 76 Load 80(inF1)
- 1563: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1561 1562
- Store 1560(r031) 1563
- 1565: 76 Load 79(inF0)
- 1566: 76 Load 80(inF1)
- 1567: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1565 1566
- Store 1564(r032) 1567
- 1569: 76 Load 79(inF0)
- 1570: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1569
- Store 1568(r033) 1570
+ 1558: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1557
+ Store 1556(r029) 1558
+ 1560: 76 Load 79(inF0)
+ 1561: 76 Load 80(inF1)
+ 1562: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1560 1561
+ Store 1559(r030) 1562
+ 1564: 76 Load 79(inF0)
+ 1565: 76 Load 80(inF1)
+ 1566: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1564 1565
+ Store 1563(r031) 1566
+ 1568: 76 Load 79(inF0)
+ 1569: 76 Load 80(inF1)
+ 1570: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1568 1569
+ Store 1567(r032) 1570
1572: 76 Load 79(inF0)
- 1573: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1572
- Store 1571(r034) 1573
+ 1573: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1572
+ Store 1571(r033) 1573
1575: 76 Load 79(inF0)
- 1576: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1575
- Store 1574(r035) 1576
+ 1576: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1575
+ Store 1574(r034) 1576
1578: 76 Load 79(inF0)
- 1579: 48(fvec4) CompositeConstruct 175 175 175 175
- 1580: 48(fvec4) CompositeConstruct 284 284 284 284
- 1581: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1578 1579 1580
- Store 1577(r036) 1581
- 1583: 76 Load 79(inF0)
- 1584: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1583
- Store 1582(r037) 1584
+ 1579: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1578
+ Store 1577(r035) 1579
+ 1581: 76 Load 79(inF0)
+ 1582: 48(fvec4) CompositeConstruct 175 175 175 175
+ 1583: 48(fvec4) CompositeConstruct 283 283 283 283
+ 1584: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1581 1582 1583
+ Store 1580(r036) 1584
1586: 76 Load 79(inF0)
- 1587: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1586
- Store 1585(r038) 1587
- 1588: 76 Load 79(inF0)
- 1589: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1588
- Store 80(inF1) 1589
- 1590: 76 Load 79(inF0)
- 1591: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1590
- Store 81(inF2) 1591
+ 1587: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1586
+ Store 1585(r037) 1587
+ 1589: 76 Load 79(inF0)
+ 1590: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1589
+ Store 1588(r038) 1590
+ 1591: 76 Load 79(inF0)
+ 1592: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1591
+ Store 80(inF1) 1592
1593: 76 Load 79(inF0)
- 1594: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1593
- Store 1592(r039) 1594
+ 1594: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1593
+ Store 81(inF2) 1594
1596: 76 Load 79(inF0)
- 1597: 76 Load 80(inF1)
- 1598: 76 Load 81(inF2)
- 1599: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1596 1597 1598
- Store 1595(r049) 1599
- 1601: 76 Load 79(inF0)
- 1602: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1601
- Store 1600(r041) 1602
+ 1597: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1596
+ Store 1595(r039) 1597
+ 1599: 76 Load 79(inF0)
+ 1600: 76 Load 80(inF1)
+ 1601: 76 Load 81(inF2)
+ 1602: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1599 1600 1601
+ Store 1598(r049) 1602
1604: 76 Load 79(inF0)
- 1605: 76 Load 80(inF1)
- 1606: 76 ExtInst 1(GLSL.std.450) 48(Step) 1604 1605
- Store 1603(r042) 1606
- 1608: 76 Load 79(inF0)
- 1609: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1608
- Store 1607(r043) 1609
+ 1605: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1604
+ Store 1603(r041) 1605
+ 1607: 76 Load 79(inF0)
+ 1608: 76 Load 80(inF1)
+ 1609: 76 ExtInst 1(GLSL.std.450) 48(Step) 1607 1608
+ Store 1606(r042) 1609
1611: 76 Load 79(inF0)
- 1612: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1611
- Store 1610(r044) 1612
- 1613: 76 Load 79(inF0)
- 1614: 76 Transpose 1613
+ 1612: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1611
+ Store 1610(r043) 1612
+ 1614: 76 Load 79(inF0)
+ 1615: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1614
+ Store 1613(r044) 1615
1616: 76 Load 79(inF0)
- 1617: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1616
- Store 1615(r046) 1617
- ReturnValue 1619
+ 1617: 76 Transpose 1616
+ 1619: 76 Load 79(inF0)
+ 1620: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1619
+ Store 1618(r046) 1620
+ ReturnValue 1622
FunctionEnd
91(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 84
85(inF0): 7(ptr) FunctionParameter
@@ -8177,51 +8182,51 @@
89(inFM0): 61(ptr) FunctionParameter
90(inFM1): 61(ptr) FunctionParameter
92: Label
- 1622(r0): 7(ptr) Variable Function
- 1626(r1): 25(ptr) Variable Function
- 1630(r2): 25(ptr) Variable Function
- 1634(r3): 7(ptr) Variable Function
- 1638(r4): 25(ptr) Variable Function
- 1642(r5): 25(ptr) Variable Function
- 1646(r6): 61(ptr) Variable Function
- 1650(r7): 61(ptr) Variable Function
- 1654(r8): 61(ptr) Variable Function
- 1623: 6(float) Load 86(inF1)
- 1624: 6(float) Load 85(inF0)
- 1625: 6(float) FMul 1623 1624
- Store 1622(r0) 1625
+ 1625(r0): 7(ptr) Variable Function
+ 1629(r1): 25(ptr) Variable Function
+ 1633(r2): 25(ptr) Variable Function
+ 1637(r3): 7(ptr) Variable Function
+ 1641(r4): 25(ptr) Variable Function
+ 1645(r5): 25(ptr) Variable Function
+ 1649(r6): 61(ptr) Variable Function
+ 1653(r7): 61(ptr) Variable Function
+ 1657(r8): 61(ptr) Variable Function
+ 1626: 6(float) Load 86(inF1)
1627: 6(float) Load 85(inF0)
- 1628: 24(fvec2) Load 87(inFV0)
- 1629: 24(fvec2) VectorTimesScalar 1628 1627
- Store 1626(r1) 1629
+ 1628: 6(float) FMul 1626 1627
+ Store 1625(r0) 1628
+ 1630: 6(float) Load 85(inF0)
1631: 24(fvec2) Load 87(inFV0)
- 1632: 6(float) Load 85(inF0)
- 1633: 24(fvec2) VectorTimesScalar 1631 1632
- Store 1630(r2) 1633
- 1635: 24(fvec2) Load 87(inFV0)
- 1636: 24(fvec2) Load 88(inFV1)
- 1637: 6(float) Dot 1635 1636
- Store 1634(r3) 1637
- 1639: 24(fvec2) Load 87(inFV0)
- 1640: 60 Load 89(inFM0)
- 1641: 24(fvec2) VectorTimesMatrix 1639 1640
- Store 1638(r4) 1641
+ 1632: 24(fvec2) VectorTimesScalar 1631 1630
+ Store 1629(r1) 1632
+ 1634: 24(fvec2) Load 87(inFV0)
+ 1635: 6(float) Load 85(inF0)
+ 1636: 24(fvec2) VectorTimesScalar 1634 1635
+ Store 1633(r2) 1636
+ 1638: 24(fvec2) Load 87(inFV0)
+ 1639: 24(fvec2) Load 88(inFV1)
+ 1640: 6(float) Dot 1638 1639
+ Store 1637(r3) 1640
+ 1642: 24(fvec2) Load 87(inFV0)
1643: 60 Load 89(inFM0)
- 1644: 24(fvec2) Load 87(inFV0)
- 1645: 24(fvec2) MatrixTimesVector 1643 1644
- Store 1642(r5) 1645
- 1647: 6(float) Load 85(inF0)
- 1648: 60 Load 89(inFM0)
- 1649: 60 MatrixTimesScalar 1648 1647
- Store 1646(r6) 1649
+ 1644: 24(fvec2) VectorTimesMatrix 1642 1643
+ Store 1641(r4) 1644
+ 1646: 60 Load 89(inFM0)
+ 1647: 24(fvec2) Load 87(inFV0)
+ 1648: 24(fvec2) MatrixTimesVector 1646 1647
+ Store 1645(r5) 1648
+ 1650: 6(float) Load 85(inF0)
1651: 60 Load 89(inFM0)
- 1652: 6(float) Load 85(inF0)
- 1653: 60 MatrixTimesScalar 1651 1652
- Store 1650(r7) 1653
- 1655: 60 Load 90(inFM1)
- 1656: 60 Load 89(inFM0)
- 1657: 60 MatrixTimesMatrix 1655 1656
- Store 1654(r8) 1657
+ 1652: 60 MatrixTimesScalar 1651 1650
+ Store 1649(r6) 1652
+ 1654: 60 Load 89(inFM0)
+ 1655: 6(float) Load 85(inF0)
+ 1656: 60 MatrixTimesScalar 1654 1655
+ Store 1653(r7) 1656
+ 1658: 60 Load 90(inFM1)
+ 1659: 60 Load 89(inFM0)
+ 1660: 60 MatrixTimesMatrix 1658 1659
+ Store 1657(r8) 1660
Return
FunctionEnd
100(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 93
@@ -8232,51 +8237,51 @@
98(inFM0): 69(ptr) FunctionParameter
99(inFM1): 69(ptr) FunctionParameter
101: Label
- 1658(r0): 7(ptr) Variable Function
- 1662(r1): 37(ptr) Variable Function
- 1666(r2): 37(ptr) Variable Function
- 1670(r3): 7(ptr) Variable Function
- 1674(r4): 37(ptr) Variable Function
- 1678(r5): 37(ptr) Variable Function
- 1682(r6): 69(ptr) Variable Function
- 1686(r7): 69(ptr) Variable Function
- 1690(r8): 69(ptr) Variable Function
- 1659: 6(float) Load 95(inF1)
- 1660: 6(float) Load 94(inF0)
- 1661: 6(float) FMul 1659 1660
- Store 1658(r0) 1661
+ 1661(r0): 7(ptr) Variable Function
+ 1665(r1): 37(ptr) Variable Function
+ 1669(r2): 37(ptr) Variable Function
+ 1673(r3): 7(ptr) Variable Function
+ 1677(r4): 37(ptr) Variable Function
+ 1681(r5): 37(ptr) Variable Function
+ 1685(r6): 69(ptr) Variable Function
+ 1689(r7): 69(ptr) Variable Function
+ 1693(r8): 69(ptr) Variable Function
+ 1662: 6(float) Load 95(inF1)
1663: 6(float) Load 94(inF0)
- 1664: 36(fvec3) Load 96(inFV0)
- 1665: 36(fvec3) VectorTimesScalar 1664 1663
- Store 1662(r1) 1665
+ 1664: 6(float) FMul 1662 1663
+ Store 1661(r0) 1664
+ 1666: 6(float) Load 94(inF0)
1667: 36(fvec3) Load 96(inFV0)
- 1668: 6(float) Load 94(inF0)
- 1669: 36(fvec3) VectorTimesScalar 1667 1668
- Store 1666(r2) 1669
- 1671: 36(fvec3) Load 96(inFV0)
- 1672: 36(fvec3) Load 97(inFV1)
- 1673: 6(float) Dot 1671 1672
- Store 1670(r3) 1673
- 1675: 36(fvec3) Load 96(inFV0)
- 1676: 68 Load 98(inFM0)
- 1677: 36(fvec3) VectorTimesMatrix 1675 1676
- Store 1674(r4) 1677
+ 1668: 36(fvec3) VectorTimesScalar 1667 1666
+ Store 1665(r1) 1668
+ 1670: 36(fvec3) Load 96(inFV0)
+ 1671: 6(float) Load 94(inF0)
+ 1672: 36(fvec3) VectorTimesScalar 1670 1671
+ Store 1669(r2) 1672
+ 1674: 36(fvec3) Load 96(inFV0)
+ 1675: 36(fvec3) Load 97(inFV1)
+ 1676: 6(float) Dot 1674 1675
+ Store 1673(r3) 1676
+ 1678: 36(fvec3) Load 96(inFV0)
1679: 68 Load 98(inFM0)
- 1680: 36(fvec3) Load 96(inFV0)
- 1681: 36(fvec3) MatrixTimesVector 1679 1680
- Store 1678(r5) 1681
- 1683: 6(float) Load 94(inF0)
- 1684: 68 Load 98(inFM0)
- 1685: 68 MatrixTimesScalar 1684 1683
- Store 1682(r6) 1685
+ 1680: 36(fvec3) VectorTimesMatrix 1678 1679
+ Store 1677(r4) 1680
+ 1682: 68 Load 98(inFM0)
+ 1683: 36(fvec3) Load 96(inFV0)
+ 1684: 36(fvec3) MatrixTimesVector 1682 1683
+ Store 1681(r5) 1684
+ 1686: 6(float) Load 94(inF0)
1687: 68 Load 98(inFM0)
- 1688: 6(float) Load 94(inF0)
- 1689: 68 MatrixTimesScalar 1687 1688
- Store 1686(r7) 1689
- 1691: 68 Load 99(inFM1)
- 1692: 68 Load 98(inFM0)
- 1693: 68 MatrixTimesMatrix 1691 1692
- Store 1690(r8) 1693
+ 1688: 68 MatrixTimesScalar 1687 1686
+ Store 1685(r6) 1688
+ 1690: 68 Load 98(inFM0)
+ 1691: 6(float) Load 94(inF0)
+ 1692: 68 MatrixTimesScalar 1690 1691
+ Store 1689(r7) 1692
+ 1694: 68 Load 99(inFM1)
+ 1695: 68 Load 98(inFM0)
+ 1696: 68 MatrixTimesMatrix 1694 1695
+ Store 1693(r8) 1696
Return
FunctionEnd
109(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 102
@@ -8287,51 +8292,51 @@
107(inFM0): 77(ptr) FunctionParameter
108(inFM1): 77(ptr) FunctionParameter
110: Label
- 1694(r0): 7(ptr) Variable Function
- 1698(r1): 49(ptr) Variable Function
- 1702(r2): 49(ptr) Variable Function
- 1706(r3): 7(ptr) Variable Function
- 1710(r4): 49(ptr) Variable Function
- 1714(r5): 49(ptr) Variable Function
- 1718(r6): 77(ptr) Variable Function
- 1722(r7): 77(ptr) Variable Function
- 1726(r8): 77(ptr) Variable Function
- 1695: 6(float) Load 104(inF1)
- 1696: 6(float) Load 103(inF0)
- 1697: 6(float) FMul 1695 1696
- Store 1694(r0) 1697
+ 1697(r0): 7(ptr) Variable Function
+ 1701(r1): 49(ptr) Variable Function
+ 1705(r2): 49(ptr) Variable Function
+ 1709(r3): 7(ptr) Variable Function
+ 1713(r4): 49(ptr) Variable Function
+ 1717(r5): 49(ptr) Variable Function
+ 1721(r6): 77(ptr) Variable Function
+ 1725(r7): 77(ptr) Variable Function
+ 1729(r8): 77(ptr) Variable Function
+ 1698: 6(float) Load 104(inF1)
1699: 6(float) Load 103(inF0)
- 1700: 48(fvec4) Load 105(inFV0)
- 1701: 48(fvec4) VectorTimesScalar 1700 1699
- Store 1698(r1) 1701
+ 1700: 6(float) FMul 1698 1699
+ Store 1697(r0) 1700
+ 1702: 6(float) Load 103(inF0)
1703: 48(fvec4) Load 105(inFV0)
- 1704: 6(float) Load 103(inF0)
- 1705: 48(fvec4) VectorTimesScalar 1703 1704
- Store 1702(r2) 1705
- 1707: 48(fvec4) Load 105(inFV0)
- 1708: 48(fvec4) Load 106(inFV1)
- 1709: 6(float) Dot 1707 1708
- Store 1706(r3) 1709
- 1711: 48(fvec4) Load 105(inFV0)
- 1712: 76 Load 107(inFM0)
- 1713: 48(fvec4) VectorTimesMatrix 1711 1712
- Store 1710(r4) 1713
+ 1704: 48(fvec4) VectorTimesScalar 1703 1702
+ Store 1701(r1) 1704
+ 1706: 48(fvec4) Load 105(inFV0)
+ 1707: 6(float) Load 103(inF0)
+ 1708: 48(fvec4) VectorTimesScalar 1706 1707
+ Store 1705(r2) 1708
+ 1710: 48(fvec4) Load 105(inFV0)
+ 1711: 48(fvec4) Load 106(inFV1)
+ 1712: 6(float) Dot 1710 1711
+ Store 1709(r3) 1712
+ 1714: 48(fvec4) Load 105(inFV0)
1715: 76 Load 107(inFM0)
- 1716: 48(fvec4) Load 105(inFV0)
- 1717: 48(fvec4) MatrixTimesVector 1715 1716
- Store 1714(r5) 1717
- 1719: 6(float) Load 103(inF0)
- 1720: 76 Load 107(inFM0)
- 1721: 76 MatrixTimesScalar 1720 1719
- Store 1718(r6) 1721
+ 1716: 48(fvec4) VectorTimesMatrix 1714 1715
+ Store 1713(r4) 1716
+ 1718: 76 Load 107(inFM0)
+ 1719: 48(fvec4) Load 105(inFV0)
+ 1720: 48(fvec4) MatrixTimesVector 1718 1719
+ Store 1717(r5) 1720
+ 1722: 6(float) Load 103(inF0)
1723: 76 Load 107(inFM0)
- 1724: 6(float) Load 103(inF0)
- 1725: 76 MatrixTimesScalar 1723 1724
- Store 1722(r7) 1725
- 1727: 76 Load 108(inFM1)
- 1728: 76 Load 107(inFM0)
- 1729: 76 MatrixTimesMatrix 1727 1728
- Store 1726(r8) 1729
+ 1724: 76 MatrixTimesScalar 1723 1722
+ Store 1721(r6) 1724
+ 1726: 76 Load 107(inFM0)
+ 1727: 6(float) Load 103(inF0)
+ 1728: 76 MatrixTimesScalar 1726 1727
+ Store 1725(r7) 1728
+ 1730: 76 Load 108(inFM1)
+ 1731: 76 Load 107(inFM0)
+ 1732: 76 MatrixTimesMatrix 1730 1731
+ Store 1729(r8) 1732
Return
FunctionEnd
129(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 2 Function None 119
@@ -8345,90 +8350,90 @@
127(inFM3x4): 116(ptr) FunctionParameter
128(inFM2x4): 118(ptr) FunctionParameter
130: Label
- 1730(r00): 7(ptr) Variable Function
- 1734(r01): 25(ptr) Variable Function
- 1738(r02): 37(ptr) Variable Function
- 1742(r03): 25(ptr) Variable Function
- 1746(r04): 37(ptr) Variable Function
- 1750(r05): 7(ptr) Variable Function
- 1754(r06): 7(ptr) Variable Function
- 1758(r07): 37(ptr) Variable Function
- 1762(r08): 25(ptr) Variable Function
- 1766(r09): 25(ptr) Variable Function
- 1770(r10): 37(ptr) Variable Function
- 1774(r11): 112(ptr) Variable Function
- 1778(r12): 114(ptr) Variable Function
- 1782(r13): 61(ptr) Variable Function
- 1786(r14): 112(ptr) Variable Function
- 1790(r15): 118(ptr) Variable Function
- 1794(r16): 116(ptr) Variable Function
- 1731: 6(float) Load 121(inF1)
- 1732: 6(float) Load 120(inF0)
- 1733: 6(float) FMul 1731 1732
- Store 1730(r00) 1733
+ 1733(r00): 7(ptr) Variable Function
+ 1737(r01): 25(ptr) Variable Function
+ 1741(r02): 37(ptr) Variable Function
+ 1745(r03): 25(ptr) Variable Function
+ 1749(r04): 37(ptr) Variable Function
+ 1753(r05): 7(ptr) Variable Function
+ 1757(r06): 7(ptr) Variable Function
+ 1761(r07): 37(ptr) Variable Function
+ 1765(r08): 25(ptr) Variable Function
+ 1769(r09): 25(ptr) Variable Function
+ 1773(r10): 37(ptr) Variable Function
+ 1777(r11): 112(ptr) Variable Function
+ 1781(r12): 114(ptr) Variable Function
+ 1785(r13): 61(ptr) Variable Function
+ 1789(r14): 112(ptr) Variable Function
+ 1793(r15): 118(ptr) Variable Function
+ 1797(r16): 116(ptr) Variable Function
+ 1734: 6(float) Load 121(inF1)
1735: 6(float) Load 120(inF0)
- 1736: 24(fvec2) Load 122(inFV2)
- 1737: 24(fvec2) VectorTimesScalar 1736 1735
- Store 1734(r01) 1737
- 1739: 6(float) Load 120(inF0)
- 1740: 36(fvec3) Load 123(inFV3)
- 1741: 36(fvec3) VectorTimesScalar 1740 1739
- Store 1738(r02) 1741
- 1743: 24(fvec2) Load 122(inFV2)
- 1744: 6(float) Load 120(inF0)
- 1745: 24(fvec2) VectorTimesScalar 1743 1744
- Store 1742(r03) 1745
- 1747: 36(fvec3) Load 123(inFV3)
- 1748: 6(float) Load 120(inF0)
- 1749: 36(fvec3) VectorTimesScalar 1747 1748
- Store 1746(r04) 1749
- 1751: 24(fvec2) Load 122(inFV2)
- 1752: 24(fvec2) Load 122(inFV2)
- 1753: 6(float) Dot 1751 1752
- Store 1750(r05) 1753
- 1755: 36(fvec3) Load 123(inFV3)
- 1756: 36(fvec3) Load 123(inFV3)
- 1757: 6(float) Dot 1755 1756
- Store 1754(r06) 1757
- 1759: 111 Load 124(inFM2x3)
- 1760: 24(fvec2) Load 122(inFV2)
- 1761: 36(fvec3) MatrixTimesVector 1759 1760
- Store 1758(r07) 1761
- 1763: 113 Load 125(inFM3x2)
- 1764: 36(fvec3) Load 123(inFV3)
- 1765: 24(fvec2) MatrixTimesVector 1763 1764
- Store 1762(r08) 1765
+ 1736: 6(float) FMul 1734 1735
+ Store 1733(r00) 1736
+ 1738: 6(float) Load 120(inF0)
+ 1739: 24(fvec2) Load 122(inFV2)
+ 1740: 24(fvec2) VectorTimesScalar 1739 1738
+ Store 1737(r01) 1740
+ 1742: 6(float) Load 120(inF0)
+ 1743: 36(fvec3) Load 123(inFV3)
+ 1744: 36(fvec3) VectorTimesScalar 1743 1742
+ Store 1741(r02) 1744
+ 1746: 24(fvec2) Load 122(inFV2)
+ 1747: 6(float) Load 120(inF0)
+ 1748: 24(fvec2) VectorTimesScalar 1746 1747
+ Store 1745(r03) 1748
+ 1750: 36(fvec3) Load 123(inFV3)
+ 1751: 6(float) Load 120(inF0)
+ 1752: 36(fvec3) VectorTimesScalar 1750 1751
+ Store 1749(r04) 1752
+ 1754: 24(fvec2) Load 122(inFV2)
+ 1755: 24(fvec2) Load 122(inFV2)
+ 1756: 6(float) Dot 1754 1755
+ Store 1753(r05) 1756
+ 1758: 36(fvec3) Load 123(inFV3)
+ 1759: 36(fvec3) Load 123(inFV3)
+ 1760: 6(float) Dot 1758 1759
+ Store 1757(r06) 1760
+ 1762: 111 Load 124(inFM2x3)
+ 1763: 24(fvec2) Load 122(inFV2)
+ 1764: 36(fvec3) MatrixTimesVector 1762 1763
+ Store 1761(r07) 1764
+ 1766: 113 Load 125(inFM3x2)
1767: 36(fvec3) Load 123(inFV3)
- 1768: 111 Load 124(inFM2x3)
- 1769: 24(fvec2) VectorTimesMatrix 1767 1768
- Store 1766(r09) 1769
- 1771: 24(fvec2) Load 122(inFV2)
- 1772: 113 Load 125(inFM3x2)
- 1773: 36(fvec3) VectorTimesMatrix 1771 1772
- Store 1770(r10) 1773
- 1775: 6(float) Load 120(inF0)
- 1776: 111 Load 124(inFM2x3)
- 1777: 111 MatrixTimesScalar 1776 1775
- Store 1774(r11) 1777
- 1779: 6(float) Load 120(inF0)
- 1780: 113 Load 125(inFM3x2)
- 1781: 113 MatrixTimesScalar 1780 1779
- Store 1778(r12) 1781
+ 1768: 24(fvec2) MatrixTimesVector 1766 1767
+ Store 1765(r08) 1768
+ 1770: 36(fvec3) Load 123(inFV3)
+ 1771: 111 Load 124(inFM2x3)
+ 1772: 24(fvec2) VectorTimesMatrix 1770 1771
+ Store 1769(r09) 1772
+ 1774: 24(fvec2) Load 122(inFV2)
+ 1775: 113 Load 125(inFM3x2)
+ 1776: 36(fvec3) VectorTimesMatrix 1774 1775
+ Store 1773(r10) 1776
+ 1778: 6(float) Load 120(inF0)
+ 1779: 111 Load 124(inFM2x3)
+ 1780: 111 MatrixTimesScalar 1779 1778
+ Store 1777(r11) 1780
+ 1782: 6(float) Load 120(inF0)
1783: 113 Load 125(inFM3x2)
- 1784: 111 Load 124(inFM2x3)
- 1785: 60 MatrixTimesMatrix 1783 1784
- Store 1782(r13) 1785
- 1787: 68 Load 126(inFM3x3)
- 1788: 111 Load 124(inFM2x3)
- 1789: 111 MatrixTimesMatrix 1787 1788
- Store 1786(r14) 1789
- 1791: 115 Load 127(inFM3x4)
- 1792: 111 Load 124(inFM2x3)
- 1793: 117 MatrixTimesMatrix 1791 1792
- Store 1790(r15) 1793
- 1795: 117 Load 128(inFM2x4)
- 1796: 113 Load 125(inFM3x2)
- 1797: 115 MatrixTimesMatrix 1795 1796
- Store 1794(r16) 1797
+ 1784: 113 MatrixTimesScalar 1783 1782
+ Store 1781(r12) 1784
+ 1786: 113 Load 125(inFM3x2)
+ 1787: 111 Load 124(inFM2x3)
+ 1788: 60 MatrixTimesMatrix 1786 1787
+ Store 1785(r13) 1788
+ 1790: 68 Load 126(inFM3x3)
+ 1791: 111 Load 124(inFM2x3)
+ 1792: 111 MatrixTimesMatrix 1790 1791
+ Store 1789(r14) 1792
+ 1794: 115 Load 127(inFM3x4)
+ 1795: 111 Load 124(inFM2x3)
+ 1796: 117 MatrixTimesMatrix 1794 1795
+ Store 1793(r15) 1796
+ 1798: 117 Load 128(inFM2x4)
+ 1799: 113 Load 125(inFM3x2)
+ 1800: 115 MatrixTimesMatrix 1798 1799
+ Store 1797(r16) 1800
Return
FunctionEnd
diff --git a/Test/baseResults/hlsl.intrinsics.promote.down.frag.out b/Test/baseResults/hlsl.intrinsics.promote.down.frag.out
new file mode 100644
index 0000000..f5ba86b
--- /dev/null
+++ b/Test/baseResults/hlsl.intrinsics.promote.down.frag.out
@@ -0,0 +1,184 @@
+hlsl.intrinsics.promote.down.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:15 Function Definition: main( (temp structure{temp 4-component vector of float color})
+0:15 Function Parameters:
+0:? Sequence
+0:16 Sequence
+0:16 move second child to first child (temp uint)
+0:16 'r00' (temp uint)
+0:16 bitCount (temp uint)
+0:16 Convert float to uint (temp uint)
+0:16 f: direct index for structure (layout(offset=8 ) uniform float)
+0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2})
+0:16 Constant:
+0:16 2 (const uint)
+0:17 Sequence
+0:17 move second child to first child (temp 2-component vector of uint)
+0:17 'r01' (temp 2-component vector of uint)
+0:17 bitFieldReverse (temp 2-component vector of uint)
+0:17 Convert float to uint (temp 2-component vector of uint)
+0:17 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2})
+0:17 Constant:
+0:17 6 (const uint)
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 color: direct index for structure (temp 4-component vector of float)
+0:20 'ps_output' (temp structure{temp 4-component vector of float color})
+0:20 Constant:
+0:20 0 (const int)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:21 Sequence
+0:21 Sequence
+0:21 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:21 color: direct index for structure (temp 4-component vector of float)
+0:21 'ps_output' (temp structure{temp 4-component vector of float color})
+0:21 Constant:
+0:21 0 (const int)
+0:21 Branch: Return
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:15 Function Definition: main( (temp structure{temp 4-component vector of float color})
+0:15 Function Parameters:
+0:? Sequence
+0:16 Sequence
+0:16 move second child to first child (temp uint)
+0:16 'r00' (temp uint)
+0:16 bitCount (temp uint)
+0:16 Convert float to uint (temp uint)
+0:16 f: direct index for structure (layout(offset=8 ) uniform float)
+0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2})
+0:16 Constant:
+0:16 2 (const uint)
+0:17 Sequence
+0:17 move second child to first child (temp 2-component vector of uint)
+0:17 'r01' (temp 2-component vector of uint)
+0:17 bitFieldReverse (temp 2-component vector of uint)
+0:17 Convert float to uint (temp 2-component vector of uint)
+0:17 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2})
+0:17 Constant:
+0:17 6 (const uint)
+0:20 move second child to first child (temp 4-component vector of float)
+0:20 color: direct index for structure (temp 4-component vector of float)
+0:20 'ps_output' (temp structure{temp 4-component vector of float color})
+0:20 Constant:
+0:20 0 (const int)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:21 Sequence
+0:21 Sequence
+0:21 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:21 color: direct index for structure (temp 4-component vector of float)
+0:21 'ps_output' (temp structure{temp 4-component vector of float color})
+0:21 Constant:
+0:21 0 (const int)
+0:21 Branch: Return
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 45
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 41
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 8 "r00"
+ Name 14 "$Global"
+ MemberName 14($Global) 0 "i"
+ MemberName 14($Global) 1 "u"
+ MemberName 14($Global) 2 "f"
+ MemberName 14($Global) 3 "b"
+ MemberName 14($Global) 4 "i2"
+ MemberName 14($Global) 5 "u2"
+ MemberName 14($Global) 6 "f2"
+ MemberName 14($Global) 7 "b2"
+ Name 16 ""
+ Name 24 "r01"
+ Name 32 "PS_OUTPUT"
+ MemberName 32(PS_OUTPUT) 0 "color"
+ Name 34 "ps_output"
+ Name 41 "color"
+ MemberDecorate 14($Global) 0 Offset 0
+ MemberDecorate 14($Global) 1 Offset 4
+ MemberDecorate 14($Global) 2 Offset 8
+ MemberDecorate 14($Global) 3 Offset 12
+ MemberDecorate 14($Global) 4 Offset 16
+ MemberDecorate 14($Global) 5 Offset 24
+ MemberDecorate 14($Global) 6 Offset 32
+ MemberDecorate 14($Global) 7 Offset 40
+ Decorate 14($Global) Block
+ Decorate 16 DescriptorSet 0
+ Decorate 41(color) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: TypePointer Function 6(int)
+ 9: TypeInt 32 1
+ 10: TypeFloat 32
+ 11: TypeVector 9(int) 2
+ 12: TypeVector 6(int) 2
+ 13: TypeVector 10(float) 2
+ 14($Global): TypeStruct 9(int) 6(int) 10(float) 6(int) 11(ivec2) 12(ivec2) 13(fvec2) 12(ivec2)
+ 15: TypePointer Uniform 14($Global)
+ 16: 15(ptr) Variable Uniform
+ 17: 9(int) Constant 2
+ 18: TypePointer Uniform 10(float)
+ 23: TypePointer Function 12(ivec2)
+ 25: 9(int) Constant 6
+ 26: TypePointer Uniform 13(fvec2)
+ 31: TypeVector 10(float) 4
+ 32(PS_OUTPUT): TypeStruct 31(fvec4)
+ 33: TypePointer Function 32(PS_OUTPUT)
+ 35: 9(int) Constant 0
+ 36: 10(float) Constant 0
+ 37: 31(fvec4) ConstantComposite 36 36 36 36
+ 38: TypePointer Function 31(fvec4)
+ 40: TypePointer Output 31(fvec4)
+ 41(color): 40(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r00): 7(ptr) Variable Function
+ 24(r01): 23(ptr) Variable Function
+ 34(ps_output): 33(ptr) Variable Function
+ 19: 18(ptr) AccessChain 16 17
+ 20: 10(float) Load 19
+ 21: 6(int) ConvertFToU 20
+ 22: 6(int) BitCount 21
+ Store 8(r00) 22
+ 27: 26(ptr) AccessChain 16 25
+ 28: 13(fvec2) Load 27
+ 29: 12(ivec2) ConvertFToU 28
+ 30: 12(ivec2) BitReverse 29
+ Store 24(r01) 30
+ 39: 38(ptr) AccessChain 34(ps_output) 35
+ Store 39 37
+ 42: 38(ptr) AccessChain 34(ps_output) 35
+ 43: 31(fvec4) Load 42
+ Store 41(color) 43
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.intrinsics.promote.frag.out b/Test/baseResults/hlsl.intrinsics.promote.frag.out
new file mode 100644
index 0000000..82b9e68
--- /dev/null
+++ b/Test/baseResults/hlsl.intrinsics.promote.frag.out
@@ -0,0 +1,1313 @@
+hlsl.intrinsics.promote.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:20 Function Definition: main( (temp structure{temp 4-component vector of float color})
+0:20 Function Parameters:
+0:? Sequence
+0:23 Sequence
+0:23 move second child to first child (temp float)
+0:23 'r00' (temp float)
+0:23 max (temp float)
+0:23 Convert bool to float (temp float)
+0:23 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:23 Constant:
+0:23 3 (const uint)
+0:23 f: direct index for structure (layout(offset=8 ) uniform float)
+0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:23 Constant:
+0:23 2 (const uint)
+0:24 Sequence
+0:24 move second child to first child (temp uint)
+0:24 'r01' (temp uint)
+0:24 max (temp uint)
+0:24 Convert bool to uint (temp uint)
+0:24 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:24 Constant:
+0:24 3 (const uint)
+0:24 u: direct index for structure (layout(offset=4 ) uniform uint)
+0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:24 Constant:
+0:24 1 (const uint)
+0:25 Sequence
+0:25 move second child to first child (temp int)
+0:25 'r02' (temp int)
+0:25 max (temp int)
+0:25 Convert bool to int (temp int)
+0:25 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:25 Constant:
+0:25 3 (const uint)
+0:25 i: direct index for structure (layout(offset=0 ) uniform int)
+0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:25 Constant:
+0:25 0 (const uint)
+0:26 Sequence
+0:26 move second child to first child (temp float)
+0:26 'r03' (temp float)
+0:26 max (temp float)
+0:26 Convert int to float (temp float)
+0:26 i: direct index for structure (layout(offset=0 ) uniform int)
+0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:26 Constant:
+0:26 0 (const uint)
+0:26 f: direct index for structure (layout(offset=8 ) uniform float)
+0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:26 Constant:
+0:26 2 (const uint)
+0:27 Sequence
+0:27 move second child to first child (temp float)
+0:27 'r04' (temp float)
+0:27 max (temp float)
+0:27 Convert uint to float (temp float)
+0:27 u: direct index for structure (layout(offset=4 ) uniform uint)
+0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:27 Constant:
+0:27 1 (const uint)
+0:27 f: direct index for structure (layout(offset=8 ) uniform float)
+0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:27 Constant:
+0:27 2 (const uint)
+0:29 Sequence
+0:29 move second child to first child (temp 2-component vector of float)
+0:29 'r10' (temp 2-component vector of float)
+0:29 max (temp 2-component vector of float)
+0:29 Convert bool to float (temp 2-component vector of float)
+0:29 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:29 Constant:
+0:29 7 (const uint)
+0:29 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:29 Constant:
+0:29 6 (const uint)
+0:30 Sequence
+0:30 move second child to first child (temp 2-component vector of uint)
+0:30 'r11' (temp 2-component vector of uint)
+0:30 max (temp 2-component vector of uint)
+0:30 Convert bool to uint (temp 2-component vector of uint)
+0:30 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:30 Constant:
+0:30 7 (const uint)
+0:30 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:30 Constant:
+0:30 5 (const uint)
+0:31 Sequence
+0:31 move second child to first child (temp 2-component vector of int)
+0:31 'r12' (temp 2-component vector of int)
+0:31 max (temp 2-component vector of int)
+0:31 Convert bool to int (temp 2-component vector of int)
+0:31 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:31 Constant:
+0:31 7 (const uint)
+0:31 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int)
+0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:31 Constant:
+0:31 4 (const uint)
+0:32 Sequence
+0:32 move second child to first child (temp 2-component vector of float)
+0:32 'r13' (temp 2-component vector of float)
+0:32 max (temp 2-component vector of float)
+0:32 Convert int to float (temp 2-component vector of float)
+0:32 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int)
+0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:32 Constant:
+0:32 4 (const uint)
+0:32 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:32 Constant:
+0:32 6 (const uint)
+0:33 Sequence
+0:33 move second child to first child (temp 2-component vector of float)
+0:33 'r14' (temp 2-component vector of float)
+0:33 max (temp 2-component vector of float)
+0:33 Convert uint to float (temp 2-component vector of float)
+0:33 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:33 Constant:
+0:33 5 (const uint)
+0:33 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:33 Constant:
+0:33 6 (const uint)
+0:35 Sequence
+0:35 move second child to first child (temp 2-component vector of float)
+0:35 'r20' (temp 2-component vector of float)
+0:35 clamp (temp 2-component vector of float)
+0:35 Convert int to float (temp 2-component vector of float)
+0:35 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int)
+0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:35 Constant:
+0:35 4 (const uint)
+0:35 Convert uint to float (temp 2-component vector of float)
+0:35 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:35 Constant:
+0:35 5 (const uint)
+0:35 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:35 Constant:
+0:35 6 (const uint)
+0:36 Sequence
+0:36 move second child to first child (temp 2-component vector of uint)
+0:36 'r21' (temp 2-component vector of uint)
+0:36 clamp (temp 2-component vector of uint)
+0:36 Convert bool to uint (temp 2-component vector of uint)
+0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:36 Constant:
+0:36 7 (const uint)
+0:36 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:36 Constant:
+0:36 5 (const uint)
+0:36 Convert bool to uint (temp 2-component vector of uint)
+0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:36 Constant:
+0:36 7 (const uint)
+0:37 Sequence
+0:37 move second child to first child (temp 2-component vector of float)
+0:37 'r22' (temp 2-component vector of float)
+0:37 clamp (temp 2-component vector of float)
+0:37 Convert bool to float (temp 2-component vector of float)
+0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:37 Constant:
+0:37 7 (const uint)
+0:37 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:37 Constant:
+0:37 6 (const uint)
+0:37 Convert bool to float (temp 2-component vector of float)
+0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:37 Constant:
+0:37 7 (const uint)
+0:40 Sequence
+0:40 move second child to first child (temp 2-component vector of float)
+0:40 'r30' (temp 2-component vector of float)
+0:40 max (temp 2-component vector of float)
+0:40 Construct vec2 (in 2-component vector of float)
+0:40 Convert bool to float (temp float)
+0:40 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:40 Constant:
+0:40 3 (const uint)
+0:40 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:40 Constant:
+0:40 6 (const uint)
+0:41 Sequence
+0:41 move second child to first child (temp 2-component vector of uint)
+0:41 'r31' (temp 2-component vector of uint)
+0:41 max (temp 2-component vector of uint)
+0:41 Construct uvec2 (in 2-component vector of uint)
+0:41 Convert bool to uint (temp uint)
+0:41 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:41 Constant:
+0:41 3 (const uint)
+0:41 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:41 Constant:
+0:41 5 (const uint)
+0:42 Sequence
+0:42 move second child to first child (temp 2-component vector of int)
+0:42 'r32' (temp 2-component vector of int)
+0:42 max (temp 2-component vector of int)
+0:42 Construct ivec2 (in 2-component vector of int)
+0:42 Convert bool to int (temp int)
+0:42 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:42 Constant:
+0:42 3 (const uint)
+0:42 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int)
+0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:42 Constant:
+0:42 4 (const uint)
+0:43 Sequence
+0:43 move second child to first child (temp 2-component vector of float)
+0:43 'r33' (temp 2-component vector of float)
+0:43 max (temp 2-component vector of float)
+0:43 Construct vec2 (in 2-component vector of float)
+0:43 Convert int to float (temp float)
+0:43 i: direct index for structure (layout(offset=0 ) uniform int)
+0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:43 Constant:
+0:43 0 (const uint)
+0:43 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:43 Constant:
+0:43 6 (const uint)
+0:44 Sequence
+0:44 move second child to first child (temp 2-component vector of float)
+0:44 'r34' (temp 2-component vector of float)
+0:44 max (temp 2-component vector of float)
+0:44 Construct vec2 (in 2-component vector of float)
+0:44 Convert uint to float (temp float)
+0:44 u: direct index for structure (layout(offset=4 ) uniform uint)
+0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:44 Constant:
+0:44 1 (const uint)
+0:44 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:44 Constant:
+0:44 6 (const uint)
+0:46 Sequence
+0:46 move second child to first child (temp 2-component vector of float)
+0:46 'r40' (temp 2-component vector of float)
+0:46 clamp (temp 2-component vector of float)
+0:46 Construct vec2 (in 2-component vector of float)
+0:46 Convert int to float (temp float)
+0:46 i: direct index for structure (layout(offset=0 ) uniform int)
+0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:46 Constant:
+0:46 0 (const uint)
+0:46 Convert uint to float (temp 2-component vector of float)
+0:46 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:46 Constant:
+0:46 5 (const uint)
+0:46 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:46 Constant:
+0:46 6 (const uint)
+0:47 Sequence
+0:47 move second child to first child (temp 2-component vector of uint)
+0:47 'r41' (temp 2-component vector of uint)
+0:47 clamp (temp 2-component vector of uint)
+0:47 Convert bool to uint (temp 2-component vector of uint)
+0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:47 Constant:
+0:47 7 (const uint)
+0:47 Construct uvec2 (in 2-component vector of uint)
+0:47 u: direct index for structure (layout(offset=4 ) uniform uint)
+0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:47 Constant:
+0:47 1 (const uint)
+0:47 Convert bool to uint (temp 2-component vector of uint)
+0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:47 Constant:
+0:47 7 (const uint)
+0:48 Sequence
+0:48 move second child to first child (temp 2-component vector of float)
+0:48 'r42' (temp 2-component vector of float)
+0:48 clamp (temp 2-component vector of float)
+0:48 Convert bool to float (temp 2-component vector of float)
+0:48 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:48 Constant:
+0:48 7 (const uint)
+0:48 Construct vec2 (in 2-component vector of float)
+0:48 f: direct index for structure (layout(offset=8 ) uniform float)
+0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:48 Constant:
+0:48 2 (const uint)
+0:48 Construct vec2 (in 2-component vector of float)
+0:48 Convert bool to float (temp float)
+0:48 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:48 Constant:
+0:48 3 (const uint)
+0:49 Sequence
+0:49 move second child to first child (temp 2-component vector of int)
+0:49 'r43' (temp 2-component vector of int)
+0:49 Convert uint to int (temp 2-component vector of int)
+0:49 clamp (temp 2-component vector of uint)
+0:49 Construct uvec2 (in 2-component vector of uint)
+0:49 Convert int to uint (temp uint)
+0:49 i: direct index for structure (layout(offset=0 ) uniform int)
+0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:49 Constant:
+0:49 0 (const uint)
+0:49 Convert int to uint (temp 2-component vector of uint)
+0:49 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int)
+0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:49 Constant:
+0:49 4 (const uint)
+0:49 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:49 Constant:
+0:49 5 (const uint)
+0:51 Sequence
+0:51 move second child to first child (temp float)
+0:51 'r50' (temp float)
+0:51 Construct float (temp float)
+0:? textureFetch (temp 4-component vector of float)
+0:51 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
+0:51 Convert uint to int (temp int)
+0:51 upos: direct index for structure (layout(offset=48 ) uniform uint)
+0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:51 Constant:
+0:51 8 (const uint)
+0:52 Sequence
+0:52 move second child to first child (temp float)
+0:52 'r51' (temp float)
+0:52 Construct float (temp float)
+0:? textureFetch (temp 4-component vector of float)
+0:52 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
+0:52 Convert float to int (temp int)
+0:52 fpos: direct index for structure (layout(offset=52 ) uniform float)
+0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:52 Constant:
+0:52 9 (const uint)
+0:70 Sequence
+0:70 move second child to first child (temp uint)
+0:70 'sizeQueryTemp' (temp uint)
+0:70 textureSize (temp uint)
+0:70 'g_tTex1df4' (uniform texture1D)
+0:70 move second child to first child (temp int)
+0:70 'WidthI' (temp int)
+0:70 Convert uint to int (temp int)
+0:70 'sizeQueryTemp' (temp uint)
+0:71 Sequence
+0:71 move second child to first child (temp uint)
+0:71 'sizeQueryTemp' (temp uint)
+0:71 textureSize (temp uint)
+0:71 'g_tTex1df4' (uniform texture1D)
+0:71 Constant:
+0:71 6 (const uint)
+0:71 move second child to first child (temp int)
+0:71 'WidthI' (temp int)
+0:71 Convert uint to int (temp int)
+0:71 'sizeQueryTemp' (temp uint)
+0:71 move second child to first child (temp uint)
+0:71 'NumberOfLevelsU' (temp uint)
+0:71 textureQueryLevels (temp uint)
+0:71 'g_tTex1df4' (uniform texture1D)
+0:72 Sequence
+0:72 move second child to first child (temp uint)
+0:72 'sizeQueryTemp' (temp uint)
+0:72 textureSize (temp uint)
+0:72 'g_tTex1df4' (uniform texture1D)
+0:72 Constant:
+0:72 6 (const uint)
+0:72 move second child to first child (temp uint)
+0:72 'WidthU' (temp uint)
+0:72 'sizeQueryTemp' (temp uint)
+0:72 move second child to first child (temp int)
+0:72 'NumberOfLevelsI' (temp int)
+0:72 Convert uint to int (temp int)
+0:72 textureQueryLevels (temp uint)
+0:72 'g_tTex1df4' (uniform texture1D)
+0:73 Sequence
+0:73 move second child to first child (temp uint)
+0:73 'sizeQueryTemp' (temp uint)
+0:73 textureSize (temp uint)
+0:73 'g_tTex1df4' (uniform texture1D)
+0:73 Constant:
+0:73 6 (const uint)
+0:73 move second child to first child (temp int)
+0:73 'WidthI' (temp int)
+0:73 Convert uint to int (temp int)
+0:73 'sizeQueryTemp' (temp uint)
+0:73 move second child to first child (temp int)
+0:73 'NumberOfLevelsI' (temp int)
+0:73 Convert uint to int (temp int)
+0:73 textureQueryLevels (temp uint)
+0:73 'g_tTex1df4' (uniform texture1D)
+0:77 move second child to first child (temp 4-component vector of float)
+0:77 color: direct index for structure (temp 4-component vector of float)
+0:77 'ps_output' (temp structure{temp 4-component vector of float color})
+0:77 Constant:
+0:77 0 (const int)
+0:77 Construct vec4 (temp 4-component vector of float)
+0:77 'r00' (temp float)
+0:78 Sequence
+0:78 Sequence
+0:78 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:78 color: direct index for structure (temp 4-component vector of float)
+0:78 'ps_output' (temp structure{temp 4-component vector of float color})
+0:78 Constant:
+0:78 0 (const int)
+0:78 Branch: Return
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
+0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:20 Function Definition: main( (temp structure{temp 4-component vector of float color})
+0:20 Function Parameters:
+0:? Sequence
+0:23 Sequence
+0:23 move second child to first child (temp float)
+0:23 'r00' (temp float)
+0:23 max (temp float)
+0:23 Convert bool to float (temp float)
+0:23 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:23 Constant:
+0:23 3 (const uint)
+0:23 f: direct index for structure (layout(offset=8 ) uniform float)
+0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:23 Constant:
+0:23 2 (const uint)
+0:24 Sequence
+0:24 move second child to first child (temp uint)
+0:24 'r01' (temp uint)
+0:24 max (temp uint)
+0:24 Convert bool to uint (temp uint)
+0:24 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:24 Constant:
+0:24 3 (const uint)
+0:24 u: direct index for structure (layout(offset=4 ) uniform uint)
+0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:24 Constant:
+0:24 1 (const uint)
+0:25 Sequence
+0:25 move second child to first child (temp int)
+0:25 'r02' (temp int)
+0:25 max (temp int)
+0:25 Convert bool to int (temp int)
+0:25 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:25 Constant:
+0:25 3 (const uint)
+0:25 i: direct index for structure (layout(offset=0 ) uniform int)
+0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:25 Constant:
+0:25 0 (const uint)
+0:26 Sequence
+0:26 move second child to first child (temp float)
+0:26 'r03' (temp float)
+0:26 max (temp float)
+0:26 Convert int to float (temp float)
+0:26 i: direct index for structure (layout(offset=0 ) uniform int)
+0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:26 Constant:
+0:26 0 (const uint)
+0:26 f: direct index for structure (layout(offset=8 ) uniform float)
+0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:26 Constant:
+0:26 2 (const uint)
+0:27 Sequence
+0:27 move second child to first child (temp float)
+0:27 'r04' (temp float)
+0:27 max (temp float)
+0:27 Convert uint to float (temp float)
+0:27 u: direct index for structure (layout(offset=4 ) uniform uint)
+0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:27 Constant:
+0:27 1 (const uint)
+0:27 f: direct index for structure (layout(offset=8 ) uniform float)
+0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:27 Constant:
+0:27 2 (const uint)
+0:29 Sequence
+0:29 move second child to first child (temp 2-component vector of float)
+0:29 'r10' (temp 2-component vector of float)
+0:29 max (temp 2-component vector of float)
+0:29 Convert bool to float (temp 2-component vector of float)
+0:29 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:29 Constant:
+0:29 7 (const uint)
+0:29 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:29 Constant:
+0:29 6 (const uint)
+0:30 Sequence
+0:30 move second child to first child (temp 2-component vector of uint)
+0:30 'r11' (temp 2-component vector of uint)
+0:30 max (temp 2-component vector of uint)
+0:30 Convert bool to uint (temp 2-component vector of uint)
+0:30 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:30 Constant:
+0:30 7 (const uint)
+0:30 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:30 Constant:
+0:30 5 (const uint)
+0:31 Sequence
+0:31 move second child to first child (temp 2-component vector of int)
+0:31 'r12' (temp 2-component vector of int)
+0:31 max (temp 2-component vector of int)
+0:31 Convert bool to int (temp 2-component vector of int)
+0:31 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:31 Constant:
+0:31 7 (const uint)
+0:31 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int)
+0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:31 Constant:
+0:31 4 (const uint)
+0:32 Sequence
+0:32 move second child to first child (temp 2-component vector of float)
+0:32 'r13' (temp 2-component vector of float)
+0:32 max (temp 2-component vector of float)
+0:32 Convert int to float (temp 2-component vector of float)
+0:32 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int)
+0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:32 Constant:
+0:32 4 (const uint)
+0:32 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:32 Constant:
+0:32 6 (const uint)
+0:33 Sequence
+0:33 move second child to first child (temp 2-component vector of float)
+0:33 'r14' (temp 2-component vector of float)
+0:33 max (temp 2-component vector of float)
+0:33 Convert uint to float (temp 2-component vector of float)
+0:33 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:33 Constant:
+0:33 5 (const uint)
+0:33 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:33 Constant:
+0:33 6 (const uint)
+0:35 Sequence
+0:35 move second child to first child (temp 2-component vector of float)
+0:35 'r20' (temp 2-component vector of float)
+0:35 clamp (temp 2-component vector of float)
+0:35 Convert int to float (temp 2-component vector of float)
+0:35 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int)
+0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:35 Constant:
+0:35 4 (const uint)
+0:35 Convert uint to float (temp 2-component vector of float)
+0:35 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:35 Constant:
+0:35 5 (const uint)
+0:35 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:35 Constant:
+0:35 6 (const uint)
+0:36 Sequence
+0:36 move second child to first child (temp 2-component vector of uint)
+0:36 'r21' (temp 2-component vector of uint)
+0:36 clamp (temp 2-component vector of uint)
+0:36 Convert bool to uint (temp 2-component vector of uint)
+0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:36 Constant:
+0:36 7 (const uint)
+0:36 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:36 Constant:
+0:36 5 (const uint)
+0:36 Convert bool to uint (temp 2-component vector of uint)
+0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:36 Constant:
+0:36 7 (const uint)
+0:37 Sequence
+0:37 move second child to first child (temp 2-component vector of float)
+0:37 'r22' (temp 2-component vector of float)
+0:37 clamp (temp 2-component vector of float)
+0:37 Convert bool to float (temp 2-component vector of float)
+0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:37 Constant:
+0:37 7 (const uint)
+0:37 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:37 Constant:
+0:37 6 (const uint)
+0:37 Convert bool to float (temp 2-component vector of float)
+0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:37 Constant:
+0:37 7 (const uint)
+0:40 Sequence
+0:40 move second child to first child (temp 2-component vector of float)
+0:40 'r30' (temp 2-component vector of float)
+0:40 max (temp 2-component vector of float)
+0:40 Construct vec2 (in 2-component vector of float)
+0:40 Convert bool to float (temp float)
+0:40 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:40 Constant:
+0:40 3 (const uint)
+0:40 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:40 Constant:
+0:40 6 (const uint)
+0:41 Sequence
+0:41 move second child to first child (temp 2-component vector of uint)
+0:41 'r31' (temp 2-component vector of uint)
+0:41 max (temp 2-component vector of uint)
+0:41 Construct uvec2 (in 2-component vector of uint)
+0:41 Convert bool to uint (temp uint)
+0:41 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:41 Constant:
+0:41 3 (const uint)
+0:41 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:41 Constant:
+0:41 5 (const uint)
+0:42 Sequence
+0:42 move second child to first child (temp 2-component vector of int)
+0:42 'r32' (temp 2-component vector of int)
+0:42 max (temp 2-component vector of int)
+0:42 Construct ivec2 (in 2-component vector of int)
+0:42 Convert bool to int (temp int)
+0:42 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:42 Constant:
+0:42 3 (const uint)
+0:42 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int)
+0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:42 Constant:
+0:42 4 (const uint)
+0:43 Sequence
+0:43 move second child to first child (temp 2-component vector of float)
+0:43 'r33' (temp 2-component vector of float)
+0:43 max (temp 2-component vector of float)
+0:43 Construct vec2 (in 2-component vector of float)
+0:43 Convert int to float (temp float)
+0:43 i: direct index for structure (layout(offset=0 ) uniform int)
+0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:43 Constant:
+0:43 0 (const uint)
+0:43 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:43 Constant:
+0:43 6 (const uint)
+0:44 Sequence
+0:44 move second child to first child (temp 2-component vector of float)
+0:44 'r34' (temp 2-component vector of float)
+0:44 max (temp 2-component vector of float)
+0:44 Construct vec2 (in 2-component vector of float)
+0:44 Convert uint to float (temp float)
+0:44 u: direct index for structure (layout(offset=4 ) uniform uint)
+0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:44 Constant:
+0:44 1 (const uint)
+0:44 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:44 Constant:
+0:44 6 (const uint)
+0:46 Sequence
+0:46 move second child to first child (temp 2-component vector of float)
+0:46 'r40' (temp 2-component vector of float)
+0:46 clamp (temp 2-component vector of float)
+0:46 Construct vec2 (in 2-component vector of float)
+0:46 Convert int to float (temp float)
+0:46 i: direct index for structure (layout(offset=0 ) uniform int)
+0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:46 Constant:
+0:46 0 (const uint)
+0:46 Convert uint to float (temp 2-component vector of float)
+0:46 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:46 Constant:
+0:46 5 (const uint)
+0:46 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float)
+0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:46 Constant:
+0:46 6 (const uint)
+0:47 Sequence
+0:47 move second child to first child (temp 2-component vector of uint)
+0:47 'r41' (temp 2-component vector of uint)
+0:47 clamp (temp 2-component vector of uint)
+0:47 Convert bool to uint (temp 2-component vector of uint)
+0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:47 Constant:
+0:47 7 (const uint)
+0:47 Construct uvec2 (in 2-component vector of uint)
+0:47 u: direct index for structure (layout(offset=4 ) uniform uint)
+0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:47 Constant:
+0:47 1 (const uint)
+0:47 Convert bool to uint (temp 2-component vector of uint)
+0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:47 Constant:
+0:47 7 (const uint)
+0:48 Sequence
+0:48 move second child to first child (temp 2-component vector of float)
+0:48 'r42' (temp 2-component vector of float)
+0:48 clamp (temp 2-component vector of float)
+0:48 Convert bool to float (temp 2-component vector of float)
+0:48 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool)
+0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:48 Constant:
+0:48 7 (const uint)
+0:48 Construct vec2 (in 2-component vector of float)
+0:48 f: direct index for structure (layout(offset=8 ) uniform float)
+0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:48 Constant:
+0:48 2 (const uint)
+0:48 Construct vec2 (in 2-component vector of float)
+0:48 Convert bool to float (temp float)
+0:48 b: direct index for structure (layout(offset=12 ) uniform bool)
+0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:48 Constant:
+0:48 3 (const uint)
+0:49 Sequence
+0:49 move second child to first child (temp 2-component vector of int)
+0:49 'r43' (temp 2-component vector of int)
+0:49 Convert uint to int (temp 2-component vector of int)
+0:49 clamp (temp 2-component vector of uint)
+0:49 Construct uvec2 (in 2-component vector of uint)
+0:49 Convert int to uint (temp uint)
+0:49 i: direct index for structure (layout(offset=0 ) uniform int)
+0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:49 Constant:
+0:49 0 (const uint)
+0:49 Convert int to uint (temp 2-component vector of uint)
+0:49 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int)
+0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:49 Constant:
+0:49 4 (const uint)
+0:49 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint)
+0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:49 Constant:
+0:49 5 (const uint)
+0:51 Sequence
+0:51 move second child to first child (temp float)
+0:51 'r50' (temp float)
+0:51 Construct float (temp float)
+0:? textureFetch (temp 4-component vector of float)
+0:51 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
+0:51 Convert uint to int (temp int)
+0:51 upos: direct index for structure (layout(offset=48 ) uniform uint)
+0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:51 Constant:
+0:51 8 (const uint)
+0:52 Sequence
+0:52 move second child to first child (temp float)
+0:52 'r51' (temp float)
+0:52 Construct float (temp float)
+0:? textureFetch (temp 4-component vector of float)
+0:52 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
+0:52 Convert float to int (temp int)
+0:52 fpos: direct index for structure (layout(offset=52 ) uniform float)
+0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:52 Constant:
+0:52 9 (const uint)
+0:70 Sequence
+0:70 move second child to first child (temp uint)
+0:70 'sizeQueryTemp' (temp uint)
+0:70 textureSize (temp uint)
+0:70 'g_tTex1df4' (uniform texture1D)
+0:70 move second child to first child (temp int)
+0:70 'WidthI' (temp int)
+0:70 Convert uint to int (temp int)
+0:70 'sizeQueryTemp' (temp uint)
+0:71 Sequence
+0:71 move second child to first child (temp uint)
+0:71 'sizeQueryTemp' (temp uint)
+0:71 textureSize (temp uint)
+0:71 'g_tTex1df4' (uniform texture1D)
+0:71 Constant:
+0:71 6 (const uint)
+0:71 move second child to first child (temp int)
+0:71 'WidthI' (temp int)
+0:71 Convert uint to int (temp int)
+0:71 'sizeQueryTemp' (temp uint)
+0:71 move second child to first child (temp uint)
+0:71 'NumberOfLevelsU' (temp uint)
+0:71 textureQueryLevels (temp uint)
+0:71 'g_tTex1df4' (uniform texture1D)
+0:72 Sequence
+0:72 move second child to first child (temp uint)
+0:72 'sizeQueryTemp' (temp uint)
+0:72 textureSize (temp uint)
+0:72 'g_tTex1df4' (uniform texture1D)
+0:72 Constant:
+0:72 6 (const uint)
+0:72 move second child to first child (temp uint)
+0:72 'WidthU' (temp uint)
+0:72 'sizeQueryTemp' (temp uint)
+0:72 move second child to first child (temp int)
+0:72 'NumberOfLevelsI' (temp int)
+0:72 Convert uint to int (temp int)
+0:72 textureQueryLevels (temp uint)
+0:72 'g_tTex1df4' (uniform texture1D)
+0:73 Sequence
+0:73 move second child to first child (temp uint)
+0:73 'sizeQueryTemp' (temp uint)
+0:73 textureSize (temp uint)
+0:73 'g_tTex1df4' (uniform texture1D)
+0:73 Constant:
+0:73 6 (const uint)
+0:73 move second child to first child (temp int)
+0:73 'WidthI' (temp int)
+0:73 Convert uint to int (temp int)
+0:73 'sizeQueryTemp' (temp uint)
+0:73 move second child to first child (temp int)
+0:73 'NumberOfLevelsI' (temp int)
+0:73 Convert uint to int (temp int)
+0:73 textureQueryLevels (temp uint)
+0:73 'g_tTex1df4' (uniform texture1D)
+0:77 move second child to first child (temp 4-component vector of float)
+0:77 color: direct index for structure (temp 4-component vector of float)
+0:77 'ps_output' (temp structure{temp 4-component vector of float color})
+0:77 Constant:
+0:77 0 (const int)
+0:77 Construct vec4 (temp 4-component vector of float)
+0:77 'r00' (temp float)
+0:78 Sequence
+0:78 Sequence
+0:78 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:78 color: direct index for structure (temp 4-component vector of float)
+0:78 'ps_output' (temp structure{temp 4-component vector of float color})
+0:78 Constant:
+0:78 0 (const int)
+0:78 Branch: Return
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
+0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 320
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledBuffer
+ Capability ImageQuery
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 316
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 8 "r00"
+ Name 14 "$Global"
+ MemberName 14($Global) 0 "i"
+ MemberName 14($Global) 1 "u"
+ MemberName 14($Global) 2 "f"
+ MemberName 14($Global) 3 "b"
+ MemberName 14($Global) 4 "i2"
+ MemberName 14($Global) 5 "u2"
+ MemberName 14($Global) 6 "f2"
+ MemberName 14($Global) 7 "b2"
+ MemberName 14($Global) 8 "upos"
+ MemberName 14($Global) 9 "fpos"
+ Name 16 ""
+ Name 33 "r01"
+ Name 44 "r02"
+ Name 54 "r03"
+ Name 61 "r04"
+ Name 69 "r10"
+ Name 86 "r11"
+ Name 97 "r12"
+ Name 109 "r13"
+ Name 116 "r14"
+ Name 123 "r20"
+ Name 133 "r21"
+ Name 145 "r22"
+ Name 157 "r30"
+ Name 166 "r31"
+ Name 175 "r32"
+ Name 184 "r33"
+ Name 192 "r34"
+ Name 200 "r40"
+ Name 211 "r41"
+ Name 224 "r42"
+ Name 238 "r43"
+ Name 250 "r50"
+ Name 254 "g_tTexbfs"
+ Name 264 "r51"
+ Name 273 "sizeQueryTemp"
+ Name 276 "g_tTex1df4"
+ Name 279 "WidthI"
+ Name 282 "sizeQueryTemp"
+ Name 288 "NumberOfLevelsU"
+ Name 291 "sizeQueryTemp"
+ Name 294 "WidthU"
+ Name 296 "NumberOfLevelsI"
+ Name 300 "sizeQueryTemp"
+ Name 308 "PS_OUTPUT"
+ MemberName 308(PS_OUTPUT) 0 "color"
+ Name 310 "ps_output"
+ Name 316 "color"
+ MemberDecorate 14($Global) 0 Offset 0
+ MemberDecorate 14($Global) 1 Offset 4
+ MemberDecorate 14($Global) 2 Offset 8
+ MemberDecorate 14($Global) 3 Offset 12
+ MemberDecorate 14($Global) 4 Offset 16
+ MemberDecorate 14($Global) 5 Offset 24
+ MemberDecorate 14($Global) 6 Offset 32
+ MemberDecorate 14($Global) 7 Offset 40
+ MemberDecorate 14($Global) 8 Offset 48
+ MemberDecorate 14($Global) 9 Offset 52
+ Decorate 14($Global) Block
+ Decorate 16 DescriptorSet 0
+ Decorate 254(g_tTexbfs) DescriptorSet 0
+ Decorate 276(g_tTex1df4) DescriptorSet 0
+ Decorate 316(color) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: TypeInt 32 1
+ 10: TypeInt 32 0
+ 11: TypeVector 9(int) 2
+ 12: TypeVector 10(int) 2
+ 13: TypeVector 6(float) 2
+ 14($Global): TypeStruct 9(int) 10(int) 6(float) 10(int) 11(ivec2) 12(ivec2) 13(fvec2) 12(ivec2) 10(int) 6(float)
+ 15: TypePointer Uniform 14($Global)
+ 16: 15(ptr) Variable Uniform
+ 17: 9(int) Constant 3
+ 18: TypePointer Uniform 10(int)
+ 21: TypeBool
+ 22: 10(int) Constant 0
+ 24: 6(float) Constant 0
+ 25: 6(float) Constant 1065353216
+ 27: 9(int) Constant 2
+ 28: TypePointer Uniform 6(float)
+ 32: TypePointer Function 10(int)
+ 37: 10(int) Constant 1
+ 39: 9(int) Constant 1
+ 43: TypePointer Function 9(int)
+ 48: 9(int) Constant 0
+ 50: TypePointer Uniform 9(int)
+ 68: TypePointer Function 13(fvec2)
+ 70: 9(int) Constant 7
+ 71: TypePointer Uniform 12(ivec2)
+ 74: TypeVector 21(bool) 2
+ 75: 12(ivec2) ConstantComposite 22 22
+ 77: 13(fvec2) ConstantComposite 24 24
+ 78: 13(fvec2) ConstantComposite 25 25
+ 80: 9(int) Constant 6
+ 81: TypePointer Uniform 13(fvec2)
+ 85: TypePointer Function 12(ivec2)
+ 90: 12(ivec2) ConstantComposite 37 37
+ 92: 9(int) Constant 5
+ 96: TypePointer Function 11(ivec2)
+ 101: 11(ivec2) ConstantComposite 48 48
+ 102: 11(ivec2) ConstantComposite 39 39
+ 104: 9(int) Constant 4
+ 105: TypePointer Uniform 11(ivec2)
+ 251: TypeImage 6(float) Buffer sampled format:R32f
+ 252: TypeSampledImage 251
+ 253: TypePointer UniformConstant 252
+ 254(g_tTexbfs): 253(ptr) Variable UniformConstant
+ 256: 9(int) Constant 8
+ 261: TypeVector 6(float) 4
+ 266: 9(int) Constant 9
+ 274: TypeImage 6(float) 1D sampled format:Unknown
+ 275: TypePointer UniformConstant 274
+ 276(g_tTex1df4): 275(ptr) Variable UniformConstant
+ 284: 10(int) Constant 6
+ 308(PS_OUTPUT): TypeStruct 261(fvec4)
+ 309: TypePointer Function 308(PS_OUTPUT)
+ 313: TypePointer Function 261(fvec4)
+ 315: TypePointer Output 261(fvec4)
+ 316(color): 315(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r00): 7(ptr) Variable Function
+ 33(r01): 32(ptr) Variable Function
+ 44(r02): 43(ptr) Variable Function
+ 54(r03): 7(ptr) Variable Function
+ 61(r04): 7(ptr) Variable Function
+ 69(r10): 68(ptr) Variable Function
+ 86(r11): 85(ptr) Variable Function
+ 97(r12): 96(ptr) Variable Function
+ 109(r13): 68(ptr) Variable Function
+ 116(r14): 68(ptr) Variable Function
+ 123(r20): 68(ptr) Variable Function
+ 133(r21): 85(ptr) Variable Function
+ 145(r22): 68(ptr) Variable Function
+ 157(r30): 68(ptr) Variable Function
+ 166(r31): 85(ptr) Variable Function
+ 175(r32): 96(ptr) Variable Function
+ 184(r33): 68(ptr) Variable Function
+ 192(r34): 68(ptr) Variable Function
+ 200(r40): 68(ptr) Variable Function
+ 211(r41): 85(ptr) Variable Function
+ 224(r42): 68(ptr) Variable Function
+ 238(r43): 96(ptr) Variable Function
+ 250(r50): 7(ptr) Variable Function
+ 264(r51): 7(ptr) Variable Function
+273(sizeQueryTemp): 32(ptr) Variable Function
+ 279(WidthI): 43(ptr) Variable Function
+282(sizeQueryTemp): 32(ptr) Variable Function
+288(NumberOfLevelsU): 32(ptr) Variable Function
+291(sizeQueryTemp): 32(ptr) Variable Function
+ 294(WidthU): 32(ptr) Variable Function
+296(NumberOfLevelsI): 43(ptr) Variable Function
+300(sizeQueryTemp): 32(ptr) Variable Function
+ 310(ps_output): 309(ptr) Variable Function
+ 19: 18(ptr) AccessChain 16 17
+ 20: 10(int) Load 19
+ 23: 21(bool) INotEqual 20 22
+ 26: 6(float) Select 23 25 24
+ 29: 28(ptr) AccessChain 16 27
+ 30: 6(float) Load 29
+ 31: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 26 30
+ Store 8(r00) 31
+ 34: 18(ptr) AccessChain 16 17
+ 35: 10(int) Load 34
+ 36: 21(bool) INotEqual 35 22
+ 38: 10(int) Select 36 37 22
+ 40: 18(ptr) AccessChain 16 39
+ 41: 10(int) Load 40
+ 42: 10(int) ExtInst 1(GLSL.std.450) 41(UMax) 38 41
+ Store 33(r01) 42
+ 45: 18(ptr) AccessChain 16 17
+ 46: 10(int) Load 45
+ 47: 21(bool) INotEqual 46 22
+ 49: 9(int) Select 47 39 48
+ 51: 50(ptr) AccessChain 16 48
+ 52: 9(int) Load 51
+ 53: 9(int) ExtInst 1(GLSL.std.450) 42(SMax) 49 52
+ Store 44(r02) 53
+ 55: 50(ptr) AccessChain 16 48
+ 56: 9(int) Load 55
+ 57: 6(float) ConvertSToF 56
+ 58: 28(ptr) AccessChain 16 27
+ 59: 6(float) Load 58
+ 60: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 57 59
+ Store 54(r03) 60
+ 62: 18(ptr) AccessChain 16 39
+ 63: 10(int) Load 62
+ 64: 6(float) ConvertUToF 63
+ 65: 28(ptr) AccessChain 16 27
+ 66: 6(float) Load 65
+ 67: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 64 66
+ Store 61(r04) 67
+ 72: 71(ptr) AccessChain 16 70
+ 73: 12(ivec2) Load 72
+ 76: 74(bvec2) INotEqual 73 75
+ 79: 13(fvec2) Select 76 78 77
+ 82: 81(ptr) AccessChain 16 80
+ 83: 13(fvec2) Load 82
+ 84: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 79 83
+ Store 69(r10) 84
+ 87: 71(ptr) AccessChain 16 70
+ 88: 12(ivec2) Load 87
+ 89: 74(bvec2) INotEqual 88 75
+ 91: 12(ivec2) Select 89 90 75
+ 93: 71(ptr) AccessChain 16 92
+ 94: 12(ivec2) Load 93
+ 95: 12(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 91 94
+ Store 86(r11) 95
+ 98: 71(ptr) AccessChain 16 70
+ 99: 12(ivec2) Load 98
+ 100: 74(bvec2) INotEqual 99 75
+ 103: 11(ivec2) Select 100 102 101
+ 106: 105(ptr) AccessChain 16 104
+ 107: 11(ivec2) Load 106
+ 108: 11(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 103 107
+ Store 97(r12) 108
+ 110: 105(ptr) AccessChain 16 104
+ 111: 11(ivec2) Load 110
+ 112: 13(fvec2) ConvertSToF 111
+ 113: 81(ptr) AccessChain 16 80
+ 114: 13(fvec2) Load 113
+ 115: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 112 114
+ Store 109(r13) 115
+ 117: 71(ptr) AccessChain 16 92
+ 118: 12(ivec2) Load 117
+ 119: 13(fvec2) ConvertUToF 118
+ 120: 81(ptr) AccessChain 16 80
+ 121: 13(fvec2) Load 120
+ 122: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 119 121
+ Store 116(r14) 122
+ 124: 105(ptr) AccessChain 16 104
+ 125: 11(ivec2) Load 124
+ 126: 13(fvec2) ConvertSToF 125
+ 127: 71(ptr) AccessChain 16 92
+ 128: 12(ivec2) Load 127
+ 129: 13(fvec2) ConvertUToF 128
+ 130: 81(ptr) AccessChain 16 80
+ 131: 13(fvec2) Load 130
+ 132: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 126 129 131
+ Store 123(r20) 132
+ 134: 71(ptr) AccessChain 16 70
+ 135: 12(ivec2) Load 134
+ 136: 74(bvec2) INotEqual 135 75
+ 137: 12(ivec2) Select 136 90 75
+ 138: 71(ptr) AccessChain 16 92
+ 139: 12(ivec2) Load 138
+ 140: 71(ptr) AccessChain 16 70
+ 141: 12(ivec2) Load 140
+ 142: 74(bvec2) INotEqual 141 75
+ 143: 12(ivec2) Select 142 90 75
+ 144: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 137 139 143
+ Store 133(r21) 144
+ 146: 71(ptr) AccessChain 16 70
+ 147: 12(ivec2) Load 146
+ 148: 74(bvec2) INotEqual 147 75
+ 149: 13(fvec2) Select 148 78 77
+ 150: 81(ptr) AccessChain 16 80
+ 151: 13(fvec2) Load 150
+ 152: 71(ptr) AccessChain 16 70
+ 153: 12(ivec2) Load 152
+ 154: 74(bvec2) INotEqual 153 75
+ 155: 13(fvec2) Select 154 78 77
+ 156: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 149 151 155
+ Store 145(r22) 156
+ 158: 18(ptr) AccessChain 16 17
+ 159: 10(int) Load 158
+ 160: 21(bool) INotEqual 159 22
+ 161: 6(float) Select 160 25 24
+ 162: 13(fvec2) CompositeConstruct 161 161
+ 163: 81(ptr) AccessChain 16 80
+ 164: 13(fvec2) Load 163
+ 165: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 162 164
+ Store 157(r30) 165
+ 167: 18(ptr) AccessChain 16 17
+ 168: 10(int) Load 167
+ 169: 21(bool) INotEqual 168 22
+ 170: 10(int) Select 169 37 22
+ 171: 12(ivec2) CompositeConstruct 170 170
+ 172: 71(ptr) AccessChain 16 92
+ 173: 12(ivec2) Load 172
+ 174: 12(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 171 173
+ Store 166(r31) 174
+ 176: 18(ptr) AccessChain 16 17
+ 177: 10(int) Load 176
+ 178: 21(bool) INotEqual 177 22
+ 179: 9(int) Select 178 39 48
+ 180: 11(ivec2) CompositeConstruct 179 179
+ 181: 105(ptr) AccessChain 16 104
+ 182: 11(ivec2) Load 181
+ 183: 11(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 180 182
+ Store 175(r32) 183
+ 185: 50(ptr) AccessChain 16 48
+ 186: 9(int) Load 185
+ 187: 6(float) ConvertSToF 186
+ 188: 13(fvec2) CompositeConstruct 187 187
+ 189: 81(ptr) AccessChain 16 80
+ 190: 13(fvec2) Load 189
+ 191: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 188 190
+ Store 184(r33) 191
+ 193: 18(ptr) AccessChain 16 39
+ 194: 10(int) Load 193
+ 195: 6(float) ConvertUToF 194
+ 196: 13(fvec2) CompositeConstruct 195 195
+ 197: 81(ptr) AccessChain 16 80
+ 198: 13(fvec2) Load 197
+ 199: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 196 198
+ Store 192(r34) 199
+ 201: 50(ptr) AccessChain 16 48
+ 202: 9(int) Load 201
+ 203: 6(float) ConvertSToF 202
+ 204: 13(fvec2) CompositeConstruct 203 203
+ 205: 71(ptr) AccessChain 16 92
+ 206: 12(ivec2) Load 205
+ 207: 13(fvec2) ConvertUToF 206
+ 208: 81(ptr) AccessChain 16 80
+ 209: 13(fvec2) Load 208
+ 210: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 204 207 209
+ Store 200(r40) 210
+ 212: 71(ptr) AccessChain 16 70
+ 213: 12(ivec2) Load 212
+ 214: 74(bvec2) INotEqual 213 75
+ 215: 12(ivec2) Select 214 90 75
+ 216: 18(ptr) AccessChain 16 39
+ 217: 10(int) Load 216
+ 218: 12(ivec2) CompositeConstruct 217 217
+ 219: 71(ptr) AccessChain 16 70
+ 220: 12(ivec2) Load 219
+ 221: 74(bvec2) INotEqual 220 75
+ 222: 12(ivec2) Select 221 90 75
+ 223: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 215 218 222
+ Store 211(r41) 223
+ 225: 71(ptr) AccessChain 16 70
+ 226: 12(ivec2) Load 225
+ 227: 74(bvec2) INotEqual 226 75
+ 228: 13(fvec2) Select 227 78 77
+ 229: 28(ptr) AccessChain 16 27
+ 230: 6(float) Load 229
+ 231: 13(fvec2) CompositeConstruct 230 230
+ 232: 18(ptr) AccessChain 16 17
+ 233: 10(int) Load 232
+ 234: 21(bool) INotEqual 233 22
+ 235: 6(float) Select 234 25 24
+ 236: 13(fvec2) CompositeConstruct 235 235
+ 237: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 228 231 236
+ Store 224(r42) 237
+ 239: 50(ptr) AccessChain 16 48
+ 240: 9(int) Load 239
+ 241: 10(int) Bitcast 240
+ 242: 12(ivec2) CompositeConstruct 241 241
+ 243: 105(ptr) AccessChain 16 104
+ 244: 11(ivec2) Load 243
+ 245: 12(ivec2) Bitcast 244
+ 246: 71(ptr) AccessChain 16 92
+ 247: 12(ivec2) Load 246
+ 248: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 242 245 247
+ 249: 11(ivec2) Bitcast 248
+ Store 238(r43) 249
+ 255: 252 Load 254(g_tTexbfs)
+ 257: 18(ptr) AccessChain 16 256
+ 258: 10(int) Load 257
+ 259: 9(int) Bitcast 258
+ 260: 251 Image 255
+ 262: 261(fvec4) ImageFetch 260 259
+ 263: 6(float) CompositeExtract 262 0
+ Store 250(r50) 263
+ 265: 252 Load 254(g_tTexbfs)
+ 267: 28(ptr) AccessChain 16 266
+ 268: 6(float) Load 267
+ 269: 9(int) ConvertFToS 268
+ 270: 251 Image 265
+ 271: 261(fvec4) ImageFetch 270 269
+ 272: 6(float) CompositeExtract 271 0
+ Store 264(r51) 272
+ 277: 274 Load 276(g_tTex1df4)
+ 278: 9(int) ImageQuerySize 277
+ Store 273(sizeQueryTemp) 278
+ 280: 10(int) Load 273(sizeQueryTemp)
+ 281: 9(int) Bitcast 280
+ Store 279(WidthI) 281
+ 283: 274 Load 276(g_tTex1df4)
+ 285: 9(int) ImageQuerySizeLod 283 284
+ Store 282(sizeQueryTemp) 285
+ 286: 10(int) Load 282(sizeQueryTemp)
+ 287: 9(int) Bitcast 286
+ Store 279(WidthI) 287
+ 289: 274 Load 276(g_tTex1df4)
+ 290: 9(int) ImageQueryLevels 289
+ Store 288(NumberOfLevelsU) 290
+ 292: 274 Load 276(g_tTex1df4)
+ 293: 9(int) ImageQuerySizeLod 292 284
+ Store 291(sizeQueryTemp) 293
+ 295: 10(int) Load 291(sizeQueryTemp)
+ Store 294(WidthU) 295
+ 297: 274 Load 276(g_tTex1df4)
+ 298: 9(int) ImageQueryLevels 297
+ 299: 9(int) Bitcast 298
+ Store 296(NumberOfLevelsI) 299
+ 301: 274 Load 276(g_tTex1df4)
+ 302: 9(int) ImageQuerySizeLod 301 284
+ Store 300(sizeQueryTemp) 302
+ 303: 10(int) Load 300(sizeQueryTemp)
+ 304: 9(int) Bitcast 303
+ Store 279(WidthI) 304
+ 305: 274 Load 276(g_tTex1df4)
+ 306: 9(int) ImageQueryLevels 305
+ 307: 9(int) Bitcast 306
+ Store 296(NumberOfLevelsI) 307
+ 311: 6(float) Load 8(r00)
+ 312: 261(fvec4) CompositeConstruct 311 311 311 311
+ 314: 313(ptr) AccessChain 310(ps_output) 48
+ Store 314 312
+ 317: 313(ptr) AccessChain 310(ps_output) 48
+ 318: 261(fvec4) Load 317
+ Store 316(color) 318
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out
new file mode 100644
index 0000000..ebe6a24
--- /dev/null
+++ b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out
@@ -0,0 +1,337 @@
+hlsl.intrinsics.promote.outputs.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:20 Function Definition: main( (temp structure{temp 4-component vector of float color})
+0:20 Function Parameters:
+0:? Sequence
+0:37 clamp (temp float)
+0:37 fpos: direct index for structure (layout(offset=52 ) uniform float)
+0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:37 Constant:
+0:37 9 (const uint)
+0:37 Constant:
+0:37 0.000000
+0:37 Constant:
+0:37 1.000000
+0:40 Sequence
+0:40 move second child to first child (temp uint)
+0:40 'sizeQueryTemp' (temp uint)
+0:40 textureSize (temp uint)
+0:40 'g_tTex1df4' (uniform texture1D)
+0:40 move second child to first child (temp int)
+0:40 'WidthI' (temp int)
+0:40 Convert uint to int (temp int)
+0:40 'sizeQueryTemp' (temp uint)
+0:41 Sequence
+0:41 move second child to first child (temp uint)
+0:41 'sizeQueryTemp' (temp uint)
+0:41 textureSize (temp uint)
+0:41 'g_tTex1df4' (uniform texture1D)
+0:41 Constant:
+0:41 6 (const uint)
+0:41 move second child to first child (temp int)
+0:41 'WidthI' (temp int)
+0:41 Convert uint to int (temp int)
+0:41 'sizeQueryTemp' (temp uint)
+0:41 move second child to first child (temp uint)
+0:41 'NumberOfLevelsU' (temp uint)
+0:41 textureQueryLevels (temp uint)
+0:41 'g_tTex1df4' (uniform texture1D)
+0:42 Sequence
+0:42 move second child to first child (temp uint)
+0:42 'sizeQueryTemp' (temp uint)
+0:42 textureSize (temp uint)
+0:42 'g_tTex1df4' (uniform texture1D)
+0:42 Constant:
+0:42 6 (const uint)
+0:42 move second child to first child (temp uint)
+0:42 'WidthU' (temp uint)
+0:42 'sizeQueryTemp' (temp uint)
+0:42 move second child to first child (temp int)
+0:42 'NumberOfLevelsI' (temp int)
+0:42 Convert uint to int (temp int)
+0:42 textureQueryLevels (temp uint)
+0:42 'g_tTex1df4' (uniform texture1D)
+0:43 Sequence
+0:43 move second child to first child (temp uint)
+0:43 'sizeQueryTemp' (temp uint)
+0:43 textureSize (temp uint)
+0:43 'g_tTex1df4' (uniform texture1D)
+0:43 Constant:
+0:43 6 (const uint)
+0:43 move second child to first child (temp int)
+0:43 'WidthI' (temp int)
+0:43 Convert uint to int (temp int)
+0:43 'sizeQueryTemp' (temp uint)
+0:43 move second child to first child (temp int)
+0:43 'NumberOfLevelsI' (temp int)
+0:43 Convert uint to int (temp int)
+0:43 textureQueryLevels (temp uint)
+0:43 'g_tTex1df4' (uniform texture1D)
+0:47 move second child to first child (temp 4-component vector of float)
+0:47 color: direct index for structure (temp 4-component vector of float)
+0:47 'ps_output' (temp structure{temp 4-component vector of float color})
+0:47 Constant:
+0:47 0 (const int)
+0:47 Constant:
+0:47 0.000000
+0:47 0.000000
+0:47 0.000000
+0:47 0.000000
+0:48 Sequence
+0:48 Sequence
+0:48 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:48 color: direct index for structure (temp 4-component vector of float)
+0:48 'ps_output' (temp structure{temp 4-component vector of float color})
+0:48 Constant:
+0:48 0 (const int)
+0:48 Branch: Return
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
+0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:20 Function Definition: main( (temp structure{temp 4-component vector of float color})
+0:20 Function Parameters:
+0:? Sequence
+0:37 clamp (temp float)
+0:37 fpos: direct index for structure (layout(offset=52 ) uniform float)
+0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+0:37 Constant:
+0:37 9 (const uint)
+0:37 Constant:
+0:37 0.000000
+0:37 Constant:
+0:37 1.000000
+0:40 Sequence
+0:40 move second child to first child (temp uint)
+0:40 'sizeQueryTemp' (temp uint)
+0:40 textureSize (temp uint)
+0:40 'g_tTex1df4' (uniform texture1D)
+0:40 move second child to first child (temp int)
+0:40 'WidthI' (temp int)
+0:40 Convert uint to int (temp int)
+0:40 'sizeQueryTemp' (temp uint)
+0:41 Sequence
+0:41 move second child to first child (temp uint)
+0:41 'sizeQueryTemp' (temp uint)
+0:41 textureSize (temp uint)
+0:41 'g_tTex1df4' (uniform texture1D)
+0:41 Constant:
+0:41 6 (const uint)
+0:41 move second child to first child (temp int)
+0:41 'WidthI' (temp int)
+0:41 Convert uint to int (temp int)
+0:41 'sizeQueryTemp' (temp uint)
+0:41 move second child to first child (temp uint)
+0:41 'NumberOfLevelsU' (temp uint)
+0:41 textureQueryLevels (temp uint)
+0:41 'g_tTex1df4' (uniform texture1D)
+0:42 Sequence
+0:42 move second child to first child (temp uint)
+0:42 'sizeQueryTemp' (temp uint)
+0:42 textureSize (temp uint)
+0:42 'g_tTex1df4' (uniform texture1D)
+0:42 Constant:
+0:42 6 (const uint)
+0:42 move second child to first child (temp uint)
+0:42 'WidthU' (temp uint)
+0:42 'sizeQueryTemp' (temp uint)
+0:42 move second child to first child (temp int)
+0:42 'NumberOfLevelsI' (temp int)
+0:42 Convert uint to int (temp int)
+0:42 textureQueryLevels (temp uint)
+0:42 'g_tTex1df4' (uniform texture1D)
+0:43 Sequence
+0:43 move second child to first child (temp uint)
+0:43 'sizeQueryTemp' (temp uint)
+0:43 textureSize (temp uint)
+0:43 'g_tTex1df4' (uniform texture1D)
+0:43 Constant:
+0:43 6 (const uint)
+0:43 move second child to first child (temp int)
+0:43 'WidthI' (temp int)
+0:43 Convert uint to int (temp int)
+0:43 'sizeQueryTemp' (temp uint)
+0:43 move second child to first child (temp int)
+0:43 'NumberOfLevelsI' (temp int)
+0:43 Convert uint to int (temp int)
+0:43 textureQueryLevels (temp uint)
+0:43 'g_tTex1df4' (uniform texture1D)
+0:47 move second child to first child (temp 4-component vector of float)
+0:47 color: direct index for structure (temp 4-component vector of float)
+0:47 'ps_output' (temp structure{temp 4-component vector of float color})
+0:47 Constant:
+0:47 0 (const int)
+0:47 Constant:
+0:47 0.000000
+0:47 0.000000
+0:47 0.000000
+0:47 0.000000
+0:48 Sequence
+0:48 Sequence
+0:48 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:48 color: direct index for structure (temp 4-component vector of float)
+0:48 'ps_output' (temp structure{temp 4-component vector of float color})
+0:48 Constant:
+0:48 0 (const int)
+0:48 Branch: Return
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
+0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 76
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledBuffer
+ Capability ImageQuery
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 68
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 12 "$Global"
+ MemberName 12($Global) 0 "i"
+ MemberName 12($Global) 1 "u"
+ MemberName 12($Global) 2 "f"
+ MemberName 12($Global) 3 "b"
+ MemberName 12($Global) 4 "i2"
+ MemberName 12($Global) 5 "u2"
+ MemberName 12($Global) 6 "f2"
+ MemberName 12($Global) 7 "b2"
+ MemberName 12($Global) 8 "upos"
+ MemberName 12($Global) 9 "fpos"
+ Name 14 ""
+ Name 23 "sizeQueryTemp"
+ Name 26 "g_tTex1df4"
+ Name 30 "WidthI"
+ Name 33 "sizeQueryTemp"
+ Name 39 "NumberOfLevelsU"
+ Name 42 "sizeQueryTemp"
+ Name 45 "WidthU"
+ Name 47 "NumberOfLevelsI"
+ Name 51 "sizeQueryTemp"
+ Name 60 "PS_OUTPUT"
+ MemberName 60(PS_OUTPUT) 0 "color"
+ Name 62 "ps_output"
+ Name 68 "color"
+ Name 75 "g_tTexbfs"
+ MemberDecorate 12($Global) 0 Offset 0
+ MemberDecorate 12($Global) 1 Offset 4
+ MemberDecorate 12($Global) 2 Offset 8
+ MemberDecorate 12($Global) 3 Offset 12
+ MemberDecorate 12($Global) 4 Offset 16
+ MemberDecorate 12($Global) 5 Offset 24
+ MemberDecorate 12($Global) 6 Offset 32
+ MemberDecorate 12($Global) 7 Offset 40
+ MemberDecorate 12($Global) 8 Offset 48
+ MemberDecorate 12($Global) 9 Offset 52
+ Decorate 12($Global) Block
+ Decorate 14 DescriptorSet 0
+ Decorate 26(g_tTex1df4) DescriptorSet 0
+ Decorate 68(color) Location 0
+ Decorate 75(g_tTexbfs) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeInt 32 0
+ 8: TypeFloat 32
+ 9: TypeVector 6(int) 2
+ 10: TypeVector 7(int) 2
+ 11: TypeVector 8(float) 2
+ 12($Global): TypeStruct 6(int) 7(int) 8(float) 7(int) 9(ivec2) 10(ivec2) 11(fvec2) 10(ivec2) 7(int) 8(float)
+ 13: TypePointer Uniform 12($Global)
+ 14: 13(ptr) Variable Uniform
+ 15: 6(int) Constant 9
+ 16: TypePointer Uniform 8(float)
+ 19: 8(float) Constant 0
+ 20: 8(float) Constant 1065353216
+ 22: TypePointer Function 7(int)
+ 24: TypeImage 8(float) 1D sampled format:Unknown
+ 25: TypePointer UniformConstant 24
+ 26(g_tTex1df4): 25(ptr) Variable UniformConstant
+ 29: TypePointer Function 6(int)
+ 35: 7(int) Constant 6
+ 59: TypeVector 8(float) 4
+ 60(PS_OUTPUT): TypeStruct 59(fvec4)
+ 61: TypePointer Function 60(PS_OUTPUT)
+ 63: 6(int) Constant 0
+ 64: 59(fvec4) ConstantComposite 19 19 19 19
+ 65: TypePointer Function 59(fvec4)
+ 67: TypePointer Output 59(fvec4)
+ 68(color): 67(ptr) Variable Output
+ 72: TypeImage 8(float) Buffer sampled format:R32f
+ 73: TypeSampledImage 72
+ 74: TypePointer UniformConstant 73
+ 75(g_tTexbfs): 74(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+23(sizeQueryTemp): 22(ptr) Variable Function
+ 30(WidthI): 29(ptr) Variable Function
+33(sizeQueryTemp): 22(ptr) Variable Function
+39(NumberOfLevelsU): 22(ptr) Variable Function
+42(sizeQueryTemp): 22(ptr) Variable Function
+ 45(WidthU): 22(ptr) Variable Function
+47(NumberOfLevelsI): 29(ptr) Variable Function
+51(sizeQueryTemp): 22(ptr) Variable Function
+ 62(ps_output): 61(ptr) Variable Function
+ 17: 16(ptr) AccessChain 14 15
+ 18: 8(float) Load 17
+ 21: 8(float) ExtInst 1(GLSL.std.450) 43(FClamp) 18 19 20
+ 27: 24 Load 26(g_tTex1df4)
+ 28: 6(int) ImageQuerySize 27
+ Store 23(sizeQueryTemp) 28
+ 31: 7(int) Load 23(sizeQueryTemp)
+ 32: 6(int) Bitcast 31
+ Store 30(WidthI) 32
+ 34: 24 Load 26(g_tTex1df4)
+ 36: 6(int) ImageQuerySizeLod 34 35
+ Store 33(sizeQueryTemp) 36
+ 37: 7(int) Load 33(sizeQueryTemp)
+ 38: 6(int) Bitcast 37
+ Store 30(WidthI) 38
+ 40: 24 Load 26(g_tTex1df4)
+ 41: 6(int) ImageQueryLevels 40
+ Store 39(NumberOfLevelsU) 41
+ 43: 24 Load 26(g_tTex1df4)
+ 44: 6(int) ImageQuerySizeLod 43 35
+ Store 42(sizeQueryTemp) 44
+ 46: 7(int) Load 42(sizeQueryTemp)
+ Store 45(WidthU) 46
+ 48: 24 Load 26(g_tTex1df4)
+ 49: 6(int) ImageQueryLevels 48
+ 50: 6(int) Bitcast 49
+ Store 47(NumberOfLevelsI) 50
+ 52: 24 Load 26(g_tTex1df4)
+ 53: 6(int) ImageQuerySizeLod 52 35
+ Store 51(sizeQueryTemp) 53
+ 54: 7(int) Load 51(sizeQueryTemp)
+ 55: 6(int) Bitcast 54
+ Store 30(WidthI) 55
+ 56: 24 Load 26(g_tTex1df4)
+ 57: 6(int) ImageQueryLevels 56
+ 58: 6(int) Bitcast 57
+ Store 47(NumberOfLevelsI) 58
+ 66: 65(ptr) AccessChain 62(ps_output) 63
+ Store 66 64
+ 69: 65(ptr) AccessChain 62(ps_output) 63
+ 70: 59(fvec4) Load 69
+ Store 68(color) 70
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out
index bcf911b..84146e6 100644
--- a/Test/baseResults/hlsl.intrinsics.vert.out
+++ b/Test/baseResults/hlsl.intrinsics.vert.out
@@ -40,9 +40,9 @@
0:16 'inF0' (in float)
0:17 hyp. cosine (temp float)
0:17 'inF0' (in float)
-0:18 bitCount (temp uint)
+0:18 bitCount (temp int)
0:18 Constant:
-0:18 7 (const uint)
+0:18 7 (const int)
0:19 degrees (temp float)
0:19 'inF0' (in float)
0:23 exp (temp float)
@@ -96,9 +96,9 @@
0:42 'inF1' (in float)
0:43 radians (temp float)
0:43 'inF0' (in float)
-0:44 bitFieldReverse (temp uint)
+0:44 bitFieldReverse (temp int)
0:44 Constant:
-0:44 2 (const uint)
+0:44 2 (const int)
0:45 roundEven (temp float)
0:45 'inF0' (in float)
0:46 inverse sqrt (temp float)
@@ -190,10 +190,10 @@
0:84 'inF0' (in 2-component vector of float)
0:85 hyp. cosine (temp 2-component vector of float)
0:85 'inF0' (in 2-component vector of float)
-0:? bitCount (temp 2-component vector of uint)
+0:? bitCount (temp 2-component vector of int)
0:? Constant:
-0:? 7 (const uint)
-0:? 3 (const uint)
+0:? 7 (const int)
+0:? 3 (const int)
0:87 degrees (temp 2-component vector of float)
0:87 'inF0' (in 2-component vector of float)
0:88 distance (temp float)
@@ -269,10 +269,10 @@
0:118 'inF1' (in 2-component vector of float)
0:118 Constant:
0:118 2.000000
-0:? bitFieldReverse (temp 2-component vector of uint)
+0:? bitFieldReverse (temp 2-component vector of int)
0:? Constant:
-0:? 1 (const uint)
-0:? 2 (const uint)
+0:? 1 (const int)
+0:? 2 (const int)
0:120 roundEven (temp 2-component vector of float)
0:120 'inF0' (in 2-component vector of float)
0:121 inverse sqrt (temp 2-component vector of float)
@@ -356,11 +356,11 @@
0:154 'inF0' (in 3-component vector of float)
0:155 hyp. cosine (temp 3-component vector of float)
0:155 'inF0' (in 3-component vector of float)
-0:? bitCount (temp 3-component vector of uint)
+0:? bitCount (temp 3-component vector of int)
0:? Constant:
-0:? 7 (const uint)
-0:? 3 (const uint)
-0:? 5 (const uint)
+0:? 7 (const int)
+0:? 3 (const int)
+0:? 5 (const int)
0:157 cross-product (temp 3-component vector of float)
0:157 'inF0' (in 3-component vector of float)
0:157 'inF1' (in 3-component vector of float)
@@ -439,11 +439,11 @@
0:189 'inF1' (in 3-component vector of float)
0:189 Constant:
0:189 2.000000
-0:? bitFieldReverse (temp 3-component vector of uint)
+0:? bitFieldReverse (temp 3-component vector of int)
0:? Constant:
-0:? 1 (const uint)
-0:? 2 (const uint)
-0:? 3 (const uint)
+0:? 1 (const int)
+0:? 2 (const int)
+0:? 3 (const int)
0:191 roundEven (temp 3-component vector of float)
0:191 'inF0' (in 3-component vector of float)
0:192 inverse sqrt (temp 3-component vector of float)
@@ -528,12 +528,12 @@
0:225 'inF0' (in 4-component vector of float)
0:226 hyp. cosine (temp 4-component vector of float)
0:226 'inF0' (in 4-component vector of float)
-0:? bitCount (temp 4-component vector of uint)
+0:? bitCount (temp 4-component vector of int)
0:? Constant:
-0:? 7 (const uint)
-0:? 3 (const uint)
-0:? 5 (const uint)
-0:? 2 (const uint)
+0:? 7 (const int)
+0:? 3 (const int)
+0:? 5 (const int)
+0:? 2 (const int)
0:228 degrees (temp 4-component vector of float)
0:228 'inF0' (in 4-component vector of float)
0:229 distance (temp float)
@@ -629,12 +629,12 @@
0:260 'inF1' (in 4-component vector of float)
0:260 Constant:
0:260 2.000000
-0:? bitFieldReverse (temp 4-component vector of uint)
+0:? bitFieldReverse (temp 4-component vector of int)
0:? Constant:
-0:? 1 (const uint)
-0:? 2 (const uint)
-0:? 3 (const uint)
-0:? 4 (const uint)
+0:? 1 (const int)
+0:? 2 (const int)
+0:? 3 (const int)
+0:? 4 (const int)
0:262 roundEven (temp 4-component vector of float)
0:262 'inF0' (in 4-component vector of float)
0:263 inverse sqrt (temp 4-component vector of float)
@@ -1439,9 +1439,9 @@
0:16 'inF0' (in float)
0:17 hyp. cosine (temp float)
0:17 'inF0' (in float)
-0:18 bitCount (temp uint)
+0:18 bitCount (temp int)
0:18 Constant:
-0:18 7 (const uint)
+0:18 7 (const int)
0:19 degrees (temp float)
0:19 'inF0' (in float)
0:23 exp (temp float)
@@ -1495,9 +1495,9 @@
0:42 'inF1' (in float)
0:43 radians (temp float)
0:43 'inF0' (in float)
-0:44 bitFieldReverse (temp uint)
+0:44 bitFieldReverse (temp int)
0:44 Constant:
-0:44 2 (const uint)
+0:44 2 (const int)
0:45 roundEven (temp float)
0:45 'inF0' (in float)
0:46 inverse sqrt (temp float)
@@ -1589,10 +1589,10 @@
0:84 'inF0' (in 2-component vector of float)
0:85 hyp. cosine (temp 2-component vector of float)
0:85 'inF0' (in 2-component vector of float)
-0:? bitCount (temp 2-component vector of uint)
+0:? bitCount (temp 2-component vector of int)
0:? Constant:
-0:? 7 (const uint)
-0:? 3 (const uint)
+0:? 7 (const int)
+0:? 3 (const int)
0:87 degrees (temp 2-component vector of float)
0:87 'inF0' (in 2-component vector of float)
0:88 distance (temp float)
@@ -1668,10 +1668,10 @@
0:118 'inF1' (in 2-component vector of float)
0:118 Constant:
0:118 2.000000
-0:? bitFieldReverse (temp 2-component vector of uint)
+0:? bitFieldReverse (temp 2-component vector of int)
0:? Constant:
-0:? 1 (const uint)
-0:? 2 (const uint)
+0:? 1 (const int)
+0:? 2 (const int)
0:120 roundEven (temp 2-component vector of float)
0:120 'inF0' (in 2-component vector of float)
0:121 inverse sqrt (temp 2-component vector of float)
@@ -1755,11 +1755,11 @@
0:154 'inF0' (in 3-component vector of float)
0:155 hyp. cosine (temp 3-component vector of float)
0:155 'inF0' (in 3-component vector of float)
-0:? bitCount (temp 3-component vector of uint)
+0:? bitCount (temp 3-component vector of int)
0:? Constant:
-0:? 7 (const uint)
-0:? 3 (const uint)
-0:? 5 (const uint)
+0:? 7 (const int)
+0:? 3 (const int)
+0:? 5 (const int)
0:157 cross-product (temp 3-component vector of float)
0:157 'inF0' (in 3-component vector of float)
0:157 'inF1' (in 3-component vector of float)
@@ -1838,11 +1838,11 @@
0:189 'inF1' (in 3-component vector of float)
0:189 Constant:
0:189 2.000000
-0:? bitFieldReverse (temp 3-component vector of uint)
+0:? bitFieldReverse (temp 3-component vector of int)
0:? Constant:
-0:? 1 (const uint)
-0:? 2 (const uint)
-0:? 3 (const uint)
+0:? 1 (const int)
+0:? 2 (const int)
+0:? 3 (const int)
0:191 roundEven (temp 3-component vector of float)
0:191 'inF0' (in 3-component vector of float)
0:192 inverse sqrt (temp 3-component vector of float)
@@ -1927,12 +1927,12 @@
0:225 'inF0' (in 4-component vector of float)
0:226 hyp. cosine (temp 4-component vector of float)
0:226 'inF0' (in 4-component vector of float)
-0:? bitCount (temp 4-component vector of uint)
+0:? bitCount (temp 4-component vector of int)
0:? Constant:
-0:? 7 (const uint)
-0:? 3 (const uint)
-0:? 5 (const uint)
-0:? 2 (const uint)
+0:? 7 (const int)
+0:? 3 (const int)
+0:? 5 (const int)
+0:? 2 (const int)
0:228 degrees (temp 4-component vector of float)
0:228 'inF0' (in 4-component vector of float)
0:229 distance (temp float)
@@ -2028,12 +2028,12 @@
0:260 'inF1' (in 4-component vector of float)
0:260 Constant:
0:260 2.000000
-0:? bitFieldReverse (temp 4-component vector of uint)
+0:? bitFieldReverse (temp 4-component vector of int)
0:? Constant:
-0:? 1 (const uint)
-0:? 2 (const uint)
-0:? 3 (const uint)
-0:? 4 (const uint)
+0:? 1 (const int)
+0:? 2 (const int)
+0:? 3 (const int)
+0:? 4 (const int)
0:262 roundEven (temp 4-component vector of float)
0:262 'inF0' (in 4-component vector of float)
0:263 inverse sqrt (temp 4-component vector of float)
@@ -2794,7 +2794,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 1238
+// Id's are bound by 1240
Capability Shader
1: ExtInstImport "GLSL.std.450"
@@ -2872,57 +2872,57 @@
Name 126 "inFM3x3"
Name 127 "inFM3x4"
Name 128 "inFM2x4"
- Name 183 "ResType"
- Name 317 "ResType"
- Name 465 "ResType"
- Name 618 "ResType"
- Name 751 "ResType"
- Name 871 "ResType"
- Name 994 "ResType"
- Name 1062 "r0"
- Name 1066 "r1"
- Name 1070 "r2"
- Name 1074 "r3"
- Name 1078 "r4"
- Name 1082 "r5"
- Name 1086 "r6"
- Name 1090 "r7"
- Name 1094 "r8"
- Name 1098 "r0"
- Name 1102 "r1"
- Name 1106 "r2"
- Name 1110 "r3"
- Name 1114 "r4"
- Name 1118 "r5"
- Name 1122 "r6"
- Name 1126 "r7"
- Name 1130 "r8"
- Name 1134 "r0"
- Name 1138 "r1"
- Name 1142 "r2"
- Name 1146 "r3"
- Name 1150 "r4"
- Name 1154 "r5"
- Name 1158 "r6"
- Name 1162 "r7"
- Name 1166 "r8"
- Name 1170 "r00"
- Name 1174 "r01"
- Name 1178 "r02"
- Name 1182 "r03"
- Name 1186 "r04"
- Name 1190 "r05"
- Name 1194 "r06"
- Name 1198 "r07"
- Name 1202 "r08"
- Name 1206 "r09"
- Name 1210 "r10"
- Name 1214 "r11"
- Name 1218 "r12"
- Name 1222 "r13"
- Name 1226 "r14"
- Name 1230 "r15"
- Name 1234 "r16"
+ Name 182 "ResType"
+ Name 316 "ResType"
+ Name 464 "ResType"
+ Name 620 "ResType"
+ Name 753 "ResType"
+ Name 873 "ResType"
+ Name 996 "ResType"
+ Name 1064 "r0"
+ Name 1068 "r1"
+ Name 1072 "r2"
+ Name 1076 "r3"
+ Name 1080 "r4"
+ Name 1084 "r5"
+ Name 1088 "r6"
+ Name 1092 "r7"
+ Name 1096 "r8"
+ Name 1100 "r0"
+ Name 1104 "r1"
+ Name 1108 "r2"
+ Name 1112 "r3"
+ Name 1116 "r4"
+ Name 1120 "r5"
+ Name 1124 "r6"
+ Name 1128 "r7"
+ Name 1132 "r8"
+ Name 1136 "r0"
+ Name 1140 "r1"
+ Name 1144 "r2"
+ Name 1148 "r3"
+ Name 1152 "r4"
+ Name 1156 "r5"
+ Name 1160 "r6"
+ Name 1164 "r7"
+ Name 1168 "r8"
+ Name 1172 "r00"
+ Name 1176 "r01"
+ Name 1180 "r02"
+ Name 1184 "r03"
+ Name 1188 "r04"
+ Name 1192 "r05"
+ Name 1196 "r06"
+ Name 1200 "r07"
+ Name 1204 "r08"
+ Name 1208 "r09"
+ Name 1212 "r10"
+ Name 1216 "r11"
+ Name 1220 "r12"
+ Name 1224 "r13"
+ Name 1228 "r14"
+ Name 1232 "r15"
+ Name 1236 "r16"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -2969,47 +2969,49 @@
119: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 37(ptr) 112(ptr) 114(ptr) 69(ptr) 116(ptr) 118(ptr)
132: TypeBool
143: TypeInt 32 1
- 164: 8(int) Constant 7
- 172: 143(int) Constant 7
- 183(ResType): TypeStruct 6(float) 143(int)
- 202: 6(float) Constant 1050288283
- 217: 8(int) Constant 2
- 224: 6(float) Constant 0
- 225: 6(float) Constant 1065353216
- 267: TypeVector 143(int) 2
- 288: 8(int) Constant 3
- 289: 26(ivec2) ConstantComposite 164 288
- 317(ResType): TypeStruct 24(fvec2) 267(ivec2)
- 322: TypeVector 132(bool) 2
- 360: 6(float) Constant 1073741824
- 362: 8(int) Constant 1
- 363: 26(ivec2) ConstantComposite 362 217
- 398: 24(fvec2) ConstantComposite 225 360
- 412: TypeVector 143(int) 3
- 433: 8(int) Constant 5
- 434: 38(ivec3) ConstantComposite 164 288 433
- 465(ResType): TypeStruct 36(fvec3) 412(ivec3)
- 470: TypeVector 132(bool) 3
- 509: 38(ivec3) ConstantComposite 362 217 288
- 544: 6(float) Constant 1077936128
- 545: 36(fvec3) ConstantComposite 225 360 544
- 559: TypeVector 143(int) 4
- 580: 50(ivec4) ConstantComposite 164 288 433 217
- 618(ResType): TypeStruct 48(fvec4) 559(ivec4)
- 623: TypeVector 132(bool) 4
- 662: 8(int) Constant 4
- 663: 50(ivec4) ConstantComposite 362 217 288 662
- 698: 6(float) Constant 1082130432
- 699: 48(fvec4) ConstantComposite 225 360 544 698
- 751(ResType): TypeStruct 60 267(ivec2)
- 815: 24(fvec2) ConstantComposite 360 360
- 816: 60 ConstantComposite 815 815
- 871(ResType): TypeStruct 68 412(ivec3)
- 935: 36(fvec3) ConstantComposite 544 544 544
- 936: 68 ConstantComposite 935 935 935
- 994(ResType): TypeStruct 76 559(ivec4)
- 1058: 48(fvec4) ConstantComposite 698 698 698 698
- 1059: 76 ConstantComposite 1058 1058 1058 1058
+ 164: 143(int) Constant 7
+ 182(ResType): TypeStruct 6(float) 143(int)
+ 201: 6(float) Constant 1050288283
+ 216: 143(int) Constant 2
+ 223: 6(float) Constant 0
+ 224: 6(float) Constant 1065353216
+ 266: TypeVector 143(int) 2
+ 287: 143(int) Constant 3
+ 288: 266(ivec2) ConstantComposite 164 287
+ 316(ResType): TypeStruct 24(fvec2) 266(ivec2)
+ 321: TypeVector 132(bool) 2
+ 359: 6(float) Constant 1073741824
+ 361: 143(int) Constant 1
+ 362: 266(ivec2) ConstantComposite 361 216
+ 397: 24(fvec2) ConstantComposite 224 359
+ 411: TypeVector 143(int) 3
+ 432: 143(int) Constant 5
+ 433: 411(ivec3) ConstantComposite 164 287 432
+ 464(ResType): TypeStruct 36(fvec3) 411(ivec3)
+ 469: TypeVector 132(bool) 3
+ 508: 411(ivec3) ConstantComposite 361 216 287
+ 543: 6(float) Constant 1077936128
+ 544: 36(fvec3) ConstantComposite 224 359 543
+ 558: TypeVector 143(int) 4
+ 579: 558(ivec4) ConstantComposite 164 287 432 216
+ 589: 8(int) Constant 1
+ 595: 8(int) Constant 2
+ 598: 8(int) Constant 3
+ 620(ResType): TypeStruct 48(fvec4) 558(ivec4)
+ 625: TypeVector 132(bool) 4
+ 664: 143(int) Constant 4
+ 665: 558(ivec4) ConstantComposite 361 216 287 664
+ 700: 6(float) Constant 1082130432
+ 701: 48(fvec4) ConstantComposite 224 359 543 700
+ 753(ResType): TypeStruct 60 266(ivec2)
+ 817: 24(fvec2) ConstantComposite 359 359
+ 818: 60 ConstantComposite 817 817
+ 873(ResType): TypeStruct 68 411(ivec3)
+ 937: 36(fvec3) ConstantComposite 543 543 543
+ 938: 68 ConstantComposite 937 937 937
+ 996(ResType): TypeStruct 76 558(ivec4)
+ 1060: 48(fvec4) ConstantComposite 700 700 700 700
+ 1061: 76 ConstantComposite 1060 1060 1060 1060
4(VertexShaderFunction): 2 Function None 3
5: Label
Return
@@ -3052,98 +3054,98 @@
161: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 160
162: 6(float) Load 11(inF0)
163: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 162
- 165: 8(int) BitCount 164
+ 165: 143(int) BitCount 164
166: 6(float) Load 11(inF0)
167: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 166
168: 6(float) Load 11(inF0)
169: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 168
170: 6(float) Load 11(inF0)
171: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 170
- 173: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172
- 174: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172
- 175: 6(float) Load 11(inF0)
- 176: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 175
- 177: 6(float) Load 11(inF0)
- 178: 6(float) Load 12(inF1)
- 179: 6(float) FMod 177 178
- 180: 6(float) Load 11(inF0)
- 181: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 180
- 182: 6(float) Load 11(inF0)
- 184:183(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 182
- 185: 143(int) CompositeExtract 184 1
- Store 12(inF1) 185
- 186: 6(float) CompositeExtract 184 0
- 187: 6(float) Load 11(inF0)
- 188: 132(bool) IsInf 187
- 189: 6(float) Load 11(inF0)
- 190: 132(bool) IsNan 189
- 191: 6(float) Load 11(inF0)
- 192: 6(float) Load 12(inF1)
- 193: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 191 192
- 194: 6(float) Load 11(inF0)
- 195: 6(float) Load 12(inF1)
- 196: 6(float) Load 13(inF2)
- 197: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 194 195 196
- 198: 6(float) Load 11(inF0)
- 199: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 198
- 200: 6(float) Load 11(inF0)
- 201: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 200
- 203: 6(float) FMul 201 202
- 204: 6(float) Load 11(inF0)
- 205: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 204
- 206: 6(float) Load 11(inF0)
- 207: 6(float) Load 12(inF1)
- 208: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 206 207
- 209: 6(float) Load 11(inF0)
- 210: 6(float) Load 12(inF1)
- 211: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 209 210
- 212: 6(float) Load 11(inF0)
- 213: 6(float) Load 12(inF1)
- 214: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 212 213
- 215: 6(float) Load 11(inF0)
- 216: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 215
- 218: 8(int) BitReverse 217
- 219: 6(float) Load 11(inF0)
- 220: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 219
- 221: 6(float) Load 11(inF0)
- 222: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 221
- 223: 6(float) Load 11(inF0)
- 226: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 223 224 225
- 227: 6(float) Load 11(inF0)
- 228: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 227
- 229: 6(float) Load 11(inF0)
- 230: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 229
- 231: 6(float) Load 11(inF0)
- 232: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 231
- Store 12(inF1) 232
- 233: 6(float) Load 11(inF0)
- 234: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 233
- Store 13(inF2) 234
- 235: 6(float) Load 11(inF0)
- 236: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 235
- 237: 6(float) Load 11(inF0)
- 238: 6(float) Load 12(inF1)
- 239: 6(float) Load 13(inF2)
- 240: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 237 238 239
- 241: 6(float) Load 11(inF0)
- 242: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 241
- 243: 6(float) Load 11(inF0)
- 244: 6(float) Load 12(inF1)
- 245: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 243 244
- 246: 6(float) Load 11(inF0)
- 247: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 246
- 248: 6(float) Load 11(inF0)
- 249: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 248
- 250: 6(float) Load 11(inF0)
- 251: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 250
- ReturnValue 224
+ 172: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164
+ 173: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164
+ 174: 6(float) Load 11(inF0)
+ 175: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 174
+ 176: 6(float) Load 11(inF0)
+ 177: 6(float) Load 12(inF1)
+ 178: 6(float) FMod 176 177
+ 179: 6(float) Load 11(inF0)
+ 180: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 179
+ 181: 6(float) Load 11(inF0)
+ 183:182(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 181
+ 184: 143(int) CompositeExtract 183 1
+ Store 12(inF1) 184
+ 185: 6(float) CompositeExtract 183 0
+ 186: 6(float) Load 11(inF0)
+ 187: 132(bool) IsInf 186
+ 188: 6(float) Load 11(inF0)
+ 189: 132(bool) IsNan 188
+ 190: 6(float) Load 11(inF0)
+ 191: 6(float) Load 12(inF1)
+ 192: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 190 191
+ 193: 6(float) Load 11(inF0)
+ 194: 6(float) Load 12(inF1)
+ 195: 6(float) Load 13(inF2)
+ 196: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 193 194 195
+ 197: 6(float) Load 11(inF0)
+ 198: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 197
+ 199: 6(float) Load 11(inF0)
+ 200: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 199
+ 202: 6(float) FMul 200 201
+ 203: 6(float) Load 11(inF0)
+ 204: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 203
+ 205: 6(float) Load 11(inF0)
+ 206: 6(float) Load 12(inF1)
+ 207: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 205 206
+ 208: 6(float) Load 11(inF0)
+ 209: 6(float) Load 12(inF1)
+ 210: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 208 209
+ 211: 6(float) Load 11(inF0)
+ 212: 6(float) Load 12(inF1)
+ 213: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 211 212
+ 214: 6(float) Load 11(inF0)
+ 215: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 214
+ 217: 143(int) BitReverse 216
+ 218: 6(float) Load 11(inF0)
+ 219: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 218
+ 220: 6(float) Load 11(inF0)
+ 221: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 220
+ 222: 6(float) Load 11(inF0)
+ 225: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 222 223 224
+ 226: 6(float) Load 11(inF0)
+ 227: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 226
+ 228: 6(float) Load 11(inF0)
+ 229: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 228
+ 230: 6(float) Load 11(inF0)
+ 231: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 230
+ Store 12(inF1) 231
+ 232: 6(float) Load 11(inF0)
+ 233: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 232
+ Store 13(inF2) 233
+ 234: 6(float) Load 11(inF0)
+ 235: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 234
+ 236: 6(float) Load 11(inF0)
+ 237: 6(float) Load 12(inF1)
+ 238: 6(float) Load 13(inF2)
+ 239: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 236 237 238
+ 240: 6(float) Load 11(inF0)
+ 241: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 240
+ 242: 6(float) Load 11(inF0)
+ 243: 6(float) Load 12(inF1)
+ 244: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 242 243
+ 245: 6(float) Load 11(inF0)
+ 246: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 245
+ 247: 6(float) Load 11(inF0)
+ 248: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 247
+ 249: 6(float) Load 11(inF0)
+ 250: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 249
+ ReturnValue 223
FunctionEnd
22(VertexShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 18
19(inF0): 7(ptr) FunctionParameter
20(inF1): 7(ptr) FunctionParameter
21(inF2): 7(ptr) FunctionParameter
23: Label
- ReturnValue 224
+ ReturnValue 223
FunctionEnd
34(VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28
29(inF0): 25(ptr) FunctionParameter
@@ -3152,144 +3154,144 @@
32(inU0): 27(ptr) FunctionParameter
33(inU1): 27(ptr) FunctionParameter
35: Label
- 256: 24(fvec2) Load 29(inF0)
- 257: 132(bool) All 256
- 258: 24(fvec2) Load 29(inF0)
- 259: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 258
- 260: 24(fvec2) Load 29(inF0)
- 261: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 260
- 262: 24(fvec2) Load 29(inF0)
- 263: 132(bool) Any 262
- 264: 24(fvec2) Load 29(inF0)
- 265: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 264
- 266: 24(fvec2) Load 29(inF0)
- 268: 267(ivec2) Bitcast 266
- 269: 24(fvec2) Load 29(inF0)
- 270: 26(ivec2) Bitcast 269
- 271: 26(ivec2) Load 32(inU0)
- 272: 24(fvec2) Bitcast 271
- 273: 24(fvec2) Load 29(inF0)
- 274: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 273
- 275: 24(fvec2) Load 29(inF0)
- 276: 24(fvec2) Load 30(inF1)
- 277: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 275 276
- 278: 24(fvec2) Load 29(inF0)
- 279: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 278
- 280: 24(fvec2) Load 29(inF0)
- 281: 24(fvec2) Load 30(inF1)
- 282: 24(fvec2) Load 31(inF2)
- 283: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 280 281 282
- 284: 24(fvec2) Load 29(inF0)
- 285: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 284
- 286: 24(fvec2) Load 29(inF0)
- 287: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 286
- 290: 26(ivec2) BitCount 289
- 291: 24(fvec2) Load 29(inF0)
- 292: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 291
- 293: 24(fvec2) Load 29(inF0)
- 294: 24(fvec2) Load 30(inF1)
- 295: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 293 294
- 296: 24(fvec2) Load 29(inF0)
- 297: 24(fvec2) Load 30(inF1)
- 298: 6(float) Dot 296 297
- 299: 24(fvec2) Load 29(inF0)
- 300: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 299
- 301: 24(fvec2) Load 29(inF0)
- 302: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 301
- 303: 24(fvec2) Load 29(inF0)
- 304: 24(fvec2) Load 30(inF1)
- 305: 24(fvec2) Load 31(inF2)
- 306: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 303 304 305
- 307: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172
- 308: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172
- 309: 24(fvec2) Load 29(inF0)
- 310: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 309
- 311: 24(fvec2) Load 29(inF0)
- 312: 24(fvec2) Load 30(inF1)
- 313: 24(fvec2) FMod 311 312
- 314: 24(fvec2) Load 29(inF0)
- 315: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 314
- 316: 24(fvec2) Load 29(inF0)
- 318:317(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 316
- 319: 267(ivec2) CompositeExtract 318 1
- Store 30(inF1) 319
- 320: 24(fvec2) CompositeExtract 318 0
- 321: 24(fvec2) Load 29(inF0)
- 323: 322(bvec2) IsInf 321
- 324: 24(fvec2) Load 29(inF0)
- 325: 322(bvec2) IsNan 324
- 326: 24(fvec2) Load 29(inF0)
- 327: 24(fvec2) Load 30(inF1)
- 328: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 326 327
- 329: 24(fvec2) Load 29(inF0)
- 330: 24(fvec2) Load 30(inF1)
- 331: 24(fvec2) Load 31(inF2)
- 332: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 329 330 331
- 333: 24(fvec2) Load 29(inF0)
- 334: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 333
- 335: 24(fvec2) Load 29(inF0)
- 336: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 335
- 337: 24(fvec2) Load 29(inF0)
- 338: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 337
- 339: 24(fvec2) VectorTimesScalar 338 202
- 340: 24(fvec2) Load 29(inF0)
- 341: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 340
- 342: 24(fvec2) Load 29(inF0)
- 343: 24(fvec2) Load 30(inF1)
- 344: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 342 343
- 345: 24(fvec2) Load 29(inF0)
- 346: 24(fvec2) Load 30(inF1)
- 347: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 345 346
- 348: 24(fvec2) Load 29(inF0)
- 349: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 348
- 350: 24(fvec2) Load 29(inF0)
- 351: 24(fvec2) Load 30(inF1)
- 352: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 350 351
- 353: 24(fvec2) Load 29(inF0)
- 354: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 353
- 355: 24(fvec2) Load 29(inF0)
- 356: 24(fvec2) Load 30(inF1)
- 357: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 355 356
- 358: 24(fvec2) Load 29(inF0)
- 359: 24(fvec2) Load 30(inF1)
- 361: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 358 359 360
- 364: 26(ivec2) BitReverse 363
- 365: 24(fvec2) Load 29(inF0)
- 366: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 365
- 367: 24(fvec2) Load 29(inF0)
- 368: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 367
- 369: 24(fvec2) Load 29(inF0)
+ 255: 24(fvec2) Load 29(inF0)
+ 256: 132(bool) All 255
+ 257: 24(fvec2) Load 29(inF0)
+ 258: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 257
+ 259: 24(fvec2) Load 29(inF0)
+ 260: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 259
+ 261: 24(fvec2) Load 29(inF0)
+ 262: 132(bool) Any 261
+ 263: 24(fvec2) Load 29(inF0)
+ 264: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 263
+ 265: 24(fvec2) Load 29(inF0)
+ 267: 266(ivec2) Bitcast 265
+ 268: 24(fvec2) Load 29(inF0)
+ 269: 26(ivec2) Bitcast 268
+ 270: 26(ivec2) Load 32(inU0)
+ 271: 24(fvec2) Bitcast 270
+ 272: 24(fvec2) Load 29(inF0)
+ 273: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 272
+ 274: 24(fvec2) Load 29(inF0)
+ 275: 24(fvec2) Load 30(inF1)
+ 276: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 274 275
+ 277: 24(fvec2) Load 29(inF0)
+ 278: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 277
+ 279: 24(fvec2) Load 29(inF0)
+ 280: 24(fvec2) Load 30(inF1)
+ 281: 24(fvec2) Load 31(inF2)
+ 282: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 279 280 281
+ 283: 24(fvec2) Load 29(inF0)
+ 284: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 283
+ 285: 24(fvec2) Load 29(inF0)
+ 286: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 285
+ 289: 266(ivec2) BitCount 288
+ 290: 24(fvec2) Load 29(inF0)
+ 291: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 290
+ 292: 24(fvec2) Load 29(inF0)
+ 293: 24(fvec2) Load 30(inF1)
+ 294: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 292 293
+ 295: 24(fvec2) Load 29(inF0)
+ 296: 24(fvec2) Load 30(inF1)
+ 297: 6(float) Dot 295 296
+ 298: 24(fvec2) Load 29(inF0)
+ 299: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 298
+ 300: 24(fvec2) Load 29(inF0)
+ 301: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 300
+ 302: 24(fvec2) Load 29(inF0)
+ 303: 24(fvec2) Load 30(inF1)
+ 304: 24(fvec2) Load 31(inF2)
+ 305: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 302 303 304
+ 306: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164
+ 307: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164
+ 308: 24(fvec2) Load 29(inF0)
+ 309: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 308
+ 310: 24(fvec2) Load 29(inF0)
+ 311: 24(fvec2) Load 30(inF1)
+ 312: 24(fvec2) FMod 310 311
+ 313: 24(fvec2) Load 29(inF0)
+ 314: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 313
+ 315: 24(fvec2) Load 29(inF0)
+ 317:316(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 315
+ 318: 266(ivec2) CompositeExtract 317 1
+ Store 30(inF1) 318
+ 319: 24(fvec2) CompositeExtract 317 0
+ 320: 24(fvec2) Load 29(inF0)
+ 322: 321(bvec2) IsInf 320
+ 323: 24(fvec2) Load 29(inF0)
+ 324: 321(bvec2) IsNan 323
+ 325: 24(fvec2) Load 29(inF0)
+ 326: 24(fvec2) Load 30(inF1)
+ 327: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 325 326
+ 328: 24(fvec2) Load 29(inF0)
+ 329: 24(fvec2) Load 30(inF1)
+ 330: 24(fvec2) Load 31(inF2)
+ 331: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 328 329 330
+ 332: 24(fvec2) Load 29(inF0)
+ 333: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 332
+ 334: 24(fvec2) Load 29(inF0)
+ 335: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 334
+ 336: 24(fvec2) Load 29(inF0)
+ 337: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 336
+ 338: 24(fvec2) VectorTimesScalar 337 201
+ 339: 24(fvec2) Load 29(inF0)
+ 340: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 339
+ 341: 24(fvec2) Load 29(inF0)
+ 342: 24(fvec2) Load 30(inF1)
+ 343: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 341 342
+ 344: 24(fvec2) Load 29(inF0)
+ 345: 24(fvec2) Load 30(inF1)
+ 346: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 344 345
+ 347: 24(fvec2) Load 29(inF0)
+ 348: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 347
+ 349: 24(fvec2) Load 29(inF0)
+ 350: 24(fvec2) Load 30(inF1)
+ 351: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 349 350
+ 352: 24(fvec2) Load 29(inF0)
+ 353: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 352
+ 354: 24(fvec2) Load 29(inF0)
+ 355: 24(fvec2) Load 30(inF1)
+ 356: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 354 355
+ 357: 24(fvec2) Load 29(inF0)
+ 358: 24(fvec2) Load 30(inF1)
+ 360: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 357 358 359
+ 363: 266(ivec2) BitReverse 362
+ 364: 24(fvec2) Load 29(inF0)
+ 365: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 364
+ 366: 24(fvec2) Load 29(inF0)
+ 367: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 366
+ 368: 24(fvec2) Load 29(inF0)
+ 369: 24(fvec2) CompositeConstruct 223 223
370: 24(fvec2) CompositeConstruct 224 224
- 371: 24(fvec2) CompositeConstruct 225 225
- 372: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 369 370 371
- 373: 24(fvec2) Load 29(inF0)
- 374: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 373
- 375: 24(fvec2) Load 29(inF0)
- 376: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 375
- 377: 24(fvec2) Load 29(inF0)
- 378: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 377
- Store 30(inF1) 378
- 379: 24(fvec2) Load 29(inF0)
- 380: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 379
- Store 31(inF2) 380
- 381: 24(fvec2) Load 29(inF0)
- 382: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 381
- 383: 24(fvec2) Load 29(inF0)
- 384: 24(fvec2) Load 30(inF1)
- 385: 24(fvec2) Load 31(inF2)
- 386: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 383 384 385
- 387: 24(fvec2) Load 29(inF0)
- 388: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 387
- 389: 24(fvec2) Load 29(inF0)
- 390: 24(fvec2) Load 30(inF1)
- 391: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 389 390
- 392: 24(fvec2) Load 29(inF0)
- 393: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 392
- 394: 24(fvec2) Load 29(inF0)
- 395: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 394
- 396: 24(fvec2) Load 29(inF0)
- 397: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 396
- ReturnValue 398
+ 371: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 368 369 370
+ 372: 24(fvec2) Load 29(inF0)
+ 373: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 372
+ 374: 24(fvec2) Load 29(inF0)
+ 375: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 374
+ 376: 24(fvec2) Load 29(inF0)
+ 377: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 376
+ Store 30(inF1) 377
+ 378: 24(fvec2) Load 29(inF0)
+ 379: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 378
+ Store 31(inF2) 379
+ 380: 24(fvec2) Load 29(inF0)
+ 381: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 380
+ 382: 24(fvec2) Load 29(inF0)
+ 383: 24(fvec2) Load 30(inF1)
+ 384: 24(fvec2) Load 31(inF2)
+ 385: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 382 383 384
+ 386: 24(fvec2) Load 29(inF0)
+ 387: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 386
+ 388: 24(fvec2) Load 29(inF0)
+ 389: 24(fvec2) Load 30(inF1)
+ 390: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 388 389
+ 391: 24(fvec2) Load 29(inF0)
+ 392: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 391
+ 393: 24(fvec2) Load 29(inF0)
+ 394: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 393
+ 395: 24(fvec2) Load 29(inF0)
+ 396: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 395
+ ReturnValue 397
FunctionEnd
46(VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40
41(inF0): 37(ptr) FunctionParameter
@@ -3298,147 +3300,147 @@
44(inU0): 39(ptr) FunctionParameter
45(inU1): 39(ptr) FunctionParameter
47: Label
- 401: 36(fvec3) Load 41(inF0)
- 402: 132(bool) All 401
- 403: 36(fvec3) Load 41(inF0)
- 404: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 403
- 405: 36(fvec3) Load 41(inF0)
- 406: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 405
- 407: 36(fvec3) Load 41(inF0)
- 408: 132(bool) Any 407
- 409: 36(fvec3) Load 41(inF0)
- 410: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 409
- 411: 36(fvec3) Load 41(inF0)
- 413: 412(ivec3) Bitcast 411
- 414: 36(fvec3) Load 41(inF0)
- 415: 38(ivec3) Bitcast 414
- 416: 38(ivec3) Load 44(inU0)
- 417: 36(fvec3) Bitcast 416
- 418: 36(fvec3) Load 41(inF0)
- 419: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 418
- 420: 36(fvec3) Load 41(inF0)
- 421: 36(fvec3) Load 42(inF1)
- 422: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 420 421
- 423: 36(fvec3) Load 41(inF0)
- 424: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 423
- 425: 36(fvec3) Load 41(inF0)
- 426: 36(fvec3) Load 42(inF1)
- 427: 36(fvec3) Load 43(inF2)
- 428: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 425 426 427
- 429: 36(fvec3) Load 41(inF0)
- 430: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 429
- 431: 36(fvec3) Load 41(inF0)
- 432: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 431
- 435: 38(ivec3) BitCount 434
- 436: 36(fvec3) Load 41(inF0)
- 437: 36(fvec3) Load 42(inF1)
- 438: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 436 437
- 439: 36(fvec3) Load 41(inF0)
- 440: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 439
- 441: 36(fvec3) Load 41(inF0)
- 442: 36(fvec3) Load 42(inF1)
- 443: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 441 442
- 444: 36(fvec3) Load 41(inF0)
- 445: 36(fvec3) Load 42(inF1)
- 446: 6(float) Dot 444 445
- 447: 36(fvec3) Load 41(inF0)
- 448: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 447
- 449: 36(fvec3) Load 41(inF0)
- 450: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 449
- 451: 36(fvec3) Load 41(inF0)
- 452: 36(fvec3) Load 42(inF1)
- 453: 36(fvec3) Load 43(inF2)
- 454: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 451 452 453
- 455: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172
- 456: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172
- 457: 36(fvec3) Load 41(inF0)
- 458: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 457
- 459: 36(fvec3) Load 41(inF0)
- 460: 36(fvec3) Load 42(inF1)
- 461: 36(fvec3) FMod 459 460
- 462: 36(fvec3) Load 41(inF0)
- 463: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 462
- 464: 36(fvec3) Load 41(inF0)
- 466:465(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 464
- 467: 412(ivec3) CompositeExtract 466 1
- Store 42(inF1) 467
- 468: 36(fvec3) CompositeExtract 466 0
- 469: 36(fvec3) Load 41(inF0)
- 471: 470(bvec3) IsInf 469
- 472: 36(fvec3) Load 41(inF0)
- 473: 470(bvec3) IsNan 472
- 474: 36(fvec3) Load 41(inF0)
- 475: 36(fvec3) Load 42(inF1)
- 476: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 474 475
- 477: 36(fvec3) Load 41(inF0)
- 478: 36(fvec3) Load 42(inF1)
- 479: 36(fvec3) Load 43(inF2)
- 480: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 477 478 479
- 481: 36(fvec3) Load 41(inF0)
- 482: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 481
- 483: 36(fvec3) Load 41(inF0)
- 484: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 483
- 485: 36(fvec3) Load 41(inF0)
- 486: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 485
- 487: 36(fvec3) VectorTimesScalar 486 202
- 488: 36(fvec3) Load 41(inF0)
- 489: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 488
- 490: 36(fvec3) Load 41(inF0)
- 491: 36(fvec3) Load 42(inF1)
- 492: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 490 491
- 493: 36(fvec3) Load 41(inF0)
- 494: 36(fvec3) Load 42(inF1)
- 495: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 493 494
- 496: 36(fvec3) Load 41(inF0)
- 497: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 496
- 498: 36(fvec3) Load 41(inF0)
- 499: 36(fvec3) Load 42(inF1)
- 500: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 498 499
- 501: 36(fvec3) Load 41(inF0)
- 502: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 501
- 503: 36(fvec3) Load 41(inF0)
- 504: 36(fvec3) Load 42(inF1)
- 505: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 503 504
- 506: 36(fvec3) Load 41(inF0)
- 507: 36(fvec3) Load 42(inF1)
- 508: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 506 507 360
- 510: 38(ivec3) BitReverse 509
- 511: 36(fvec3) Load 41(inF0)
- 512: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 511
- 513: 36(fvec3) Load 41(inF0)
- 514: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 513
- 515: 36(fvec3) Load 41(inF0)
+ 400: 36(fvec3) Load 41(inF0)
+ 401: 132(bool) All 400
+ 402: 36(fvec3) Load 41(inF0)
+ 403: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 402
+ 404: 36(fvec3) Load 41(inF0)
+ 405: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 404
+ 406: 36(fvec3) Load 41(inF0)
+ 407: 132(bool) Any 406
+ 408: 36(fvec3) Load 41(inF0)
+ 409: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 408
+ 410: 36(fvec3) Load 41(inF0)
+ 412: 411(ivec3) Bitcast 410
+ 413: 36(fvec3) Load 41(inF0)
+ 414: 38(ivec3) Bitcast 413
+ 415: 38(ivec3) Load 44(inU0)
+ 416: 36(fvec3) Bitcast 415
+ 417: 36(fvec3) Load 41(inF0)
+ 418: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 417
+ 419: 36(fvec3) Load 41(inF0)
+ 420: 36(fvec3) Load 42(inF1)
+ 421: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 419 420
+ 422: 36(fvec3) Load 41(inF0)
+ 423: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 422
+ 424: 36(fvec3) Load 41(inF0)
+ 425: 36(fvec3) Load 42(inF1)
+ 426: 36(fvec3) Load 43(inF2)
+ 427: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 424 425 426
+ 428: 36(fvec3) Load 41(inF0)
+ 429: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 428
+ 430: 36(fvec3) Load 41(inF0)
+ 431: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 430
+ 434: 411(ivec3) BitCount 433
+ 435: 36(fvec3) Load 41(inF0)
+ 436: 36(fvec3) Load 42(inF1)
+ 437: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 435 436
+ 438: 36(fvec3) Load 41(inF0)
+ 439: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 438
+ 440: 36(fvec3) Load 41(inF0)
+ 441: 36(fvec3) Load 42(inF1)
+ 442: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 440 441
+ 443: 36(fvec3) Load 41(inF0)
+ 444: 36(fvec3) Load 42(inF1)
+ 445: 6(float) Dot 443 444
+ 446: 36(fvec3) Load 41(inF0)
+ 447: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 446
+ 448: 36(fvec3) Load 41(inF0)
+ 449: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 448
+ 450: 36(fvec3) Load 41(inF0)
+ 451: 36(fvec3) Load 42(inF1)
+ 452: 36(fvec3) Load 43(inF2)
+ 453: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 450 451 452
+ 454: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164
+ 455: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164
+ 456: 36(fvec3) Load 41(inF0)
+ 457: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 456
+ 458: 36(fvec3) Load 41(inF0)
+ 459: 36(fvec3) Load 42(inF1)
+ 460: 36(fvec3) FMod 458 459
+ 461: 36(fvec3) Load 41(inF0)
+ 462: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 461
+ 463: 36(fvec3) Load 41(inF0)
+ 465:464(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 463
+ 466: 411(ivec3) CompositeExtract 465 1
+ Store 42(inF1) 466
+ 467: 36(fvec3) CompositeExtract 465 0
+ 468: 36(fvec3) Load 41(inF0)
+ 470: 469(bvec3) IsInf 468
+ 471: 36(fvec3) Load 41(inF0)
+ 472: 469(bvec3) IsNan 471
+ 473: 36(fvec3) Load 41(inF0)
+ 474: 36(fvec3) Load 42(inF1)
+ 475: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 473 474
+ 476: 36(fvec3) Load 41(inF0)
+ 477: 36(fvec3) Load 42(inF1)
+ 478: 36(fvec3) Load 43(inF2)
+ 479: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 476 477 478
+ 480: 36(fvec3) Load 41(inF0)
+ 481: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 480
+ 482: 36(fvec3) Load 41(inF0)
+ 483: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 482
+ 484: 36(fvec3) Load 41(inF0)
+ 485: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 484
+ 486: 36(fvec3) VectorTimesScalar 485 201
+ 487: 36(fvec3) Load 41(inF0)
+ 488: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 487
+ 489: 36(fvec3) Load 41(inF0)
+ 490: 36(fvec3) Load 42(inF1)
+ 491: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 489 490
+ 492: 36(fvec3) Load 41(inF0)
+ 493: 36(fvec3) Load 42(inF1)
+ 494: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 492 493
+ 495: 36(fvec3) Load 41(inF0)
+ 496: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 495
+ 497: 36(fvec3) Load 41(inF0)
+ 498: 36(fvec3) Load 42(inF1)
+ 499: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 497 498
+ 500: 36(fvec3) Load 41(inF0)
+ 501: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 500
+ 502: 36(fvec3) Load 41(inF0)
+ 503: 36(fvec3) Load 42(inF1)
+ 504: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 502 503
+ 505: 36(fvec3) Load 41(inF0)
+ 506: 36(fvec3) Load 42(inF1)
+ 507: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 505 506 359
+ 509: 411(ivec3) BitReverse 508
+ 510: 36(fvec3) Load 41(inF0)
+ 511: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 510
+ 512: 36(fvec3) Load 41(inF0)
+ 513: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 512
+ 514: 36(fvec3) Load 41(inF0)
+ 515: 36(fvec3) CompositeConstruct 223 223 223
516: 36(fvec3) CompositeConstruct 224 224 224
- 517: 36(fvec3) CompositeConstruct 225 225 225
- 518: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 515 516 517
- 519: 36(fvec3) Load 41(inF0)
- 520: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 519
- 521: 36(fvec3) Load 41(inF0)
- 522: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 521
- 523: 36(fvec3) Load 41(inF0)
- 524: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 523
- Store 42(inF1) 524
- 525: 36(fvec3) Load 41(inF0)
- 526: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 525
- Store 43(inF2) 526
- 527: 36(fvec3) Load 41(inF0)
- 528: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 527
- 529: 36(fvec3) Load 41(inF0)
- 530: 36(fvec3) Load 42(inF1)
- 531: 36(fvec3) Load 43(inF2)
- 532: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 529 530 531
- 533: 36(fvec3) Load 41(inF0)
- 534: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 533
- 535: 36(fvec3) Load 41(inF0)
- 536: 36(fvec3) Load 42(inF1)
- 537: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 535 536
- 538: 36(fvec3) Load 41(inF0)
- 539: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 538
- 540: 36(fvec3) Load 41(inF0)
- 541: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 540
- 542: 36(fvec3) Load 41(inF0)
- 543: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 542
- ReturnValue 545
+ 517: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 514 515 516
+ 518: 36(fvec3) Load 41(inF0)
+ 519: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 518
+ 520: 36(fvec3) Load 41(inF0)
+ 521: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 520
+ 522: 36(fvec3) Load 41(inF0)
+ 523: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 522
+ Store 42(inF1) 523
+ 524: 36(fvec3) Load 41(inF0)
+ 525: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 524
+ Store 43(inF2) 525
+ 526: 36(fvec3) Load 41(inF0)
+ 527: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 526
+ 528: 36(fvec3) Load 41(inF0)
+ 529: 36(fvec3) Load 42(inF1)
+ 530: 36(fvec3) Load 43(inF2)
+ 531: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 528 529 530
+ 532: 36(fvec3) Load 41(inF0)
+ 533: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 532
+ 534: 36(fvec3) Load 41(inF0)
+ 535: 36(fvec3) Load 42(inF1)
+ 536: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 534 535
+ 537: 36(fvec3) Load 41(inF0)
+ 538: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 537
+ 539: 36(fvec3) Load 41(inF0)
+ 540: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 539
+ 541: 36(fvec3) Load 41(inF0)
+ 542: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 541
+ ReturnValue 544
FunctionEnd
58(VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52
53(inF0): 49(ptr) FunctionParameter
@@ -3447,529 +3449,529 @@
56(inU0): 51(ptr) FunctionParameter
57(inU1): 51(ptr) FunctionParameter
59: Label
- 548: 48(fvec4) Load 53(inF0)
- 549: 132(bool) All 548
- 550: 48(fvec4) Load 53(inF0)
- 551: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 550
- 552: 48(fvec4) Load 53(inF0)
- 553: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 552
- 554: 48(fvec4) Load 53(inF0)
- 555: 132(bool) Any 554
- 556: 48(fvec4) Load 53(inF0)
- 557: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 556
- 558: 48(fvec4) Load 53(inF0)
- 560: 559(ivec4) Bitcast 558
- 561: 48(fvec4) Load 53(inF0)
- 562: 50(ivec4) Bitcast 561
- 563: 50(ivec4) Load 56(inU0)
- 564: 48(fvec4) Bitcast 563
- 565: 48(fvec4) Load 53(inF0)
- 566: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 565
- 567: 48(fvec4) Load 53(inF0)
- 568: 48(fvec4) Load 54(inF1)
- 569: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 567 568
- 570: 48(fvec4) Load 53(inF0)
- 571: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 570
- 572: 48(fvec4) Load 53(inF0)
- 573: 48(fvec4) Load 54(inF1)
- 574: 48(fvec4) Load 55(inF2)
- 575: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 572 573 574
- 576: 48(fvec4) Load 53(inF0)
- 577: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 576
- 578: 48(fvec4) Load 53(inF0)
- 579: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 578
- 581: 50(ivec4) BitCount 580
- 582: 48(fvec4) Load 53(inF0)
- 583: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 582
- 584: 48(fvec4) Load 53(inF0)
- 585: 48(fvec4) Load 54(inF1)
- 586: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 584 585
- 587: 48(fvec4) Load 53(inF0)
- 588: 48(fvec4) Load 54(inF1)
- 589: 6(float) Dot 587 588
- 590: 7(ptr) AccessChain 53(inF0) 362
+ 547: 48(fvec4) Load 53(inF0)
+ 548: 132(bool) All 547
+ 549: 48(fvec4) Load 53(inF0)
+ 550: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 549
+ 551: 48(fvec4) Load 53(inF0)
+ 552: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 551
+ 553: 48(fvec4) Load 53(inF0)
+ 554: 132(bool) Any 553
+ 555: 48(fvec4) Load 53(inF0)
+ 556: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 555
+ 557: 48(fvec4) Load 53(inF0)
+ 559: 558(ivec4) Bitcast 557
+ 560: 48(fvec4) Load 53(inF0)
+ 561: 50(ivec4) Bitcast 560
+ 562: 50(ivec4) Load 56(inU0)
+ 563: 48(fvec4) Bitcast 562
+ 564: 48(fvec4) Load 53(inF0)
+ 565: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 564
+ 566: 48(fvec4) Load 53(inF0)
+ 567: 48(fvec4) Load 54(inF1)
+ 568: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 566 567
+ 569: 48(fvec4) Load 53(inF0)
+ 570: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 569
+ 571: 48(fvec4) Load 53(inF0)
+ 572: 48(fvec4) Load 54(inF1)
+ 573: 48(fvec4) Load 55(inF2)
+ 574: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 571 572 573
+ 575: 48(fvec4) Load 53(inF0)
+ 576: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 575
+ 577: 48(fvec4) Load 53(inF0)
+ 578: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 577
+ 580: 558(ivec4) BitCount 579
+ 581: 48(fvec4) Load 53(inF0)
+ 582: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 581
+ 583: 48(fvec4) Load 53(inF0)
+ 584: 48(fvec4) Load 54(inF1)
+ 585: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 583 584
+ 586: 48(fvec4) Load 53(inF0)
+ 587: 48(fvec4) Load 54(inF1)
+ 588: 6(float) Dot 586 587
+ 590: 7(ptr) AccessChain 53(inF0) 589
591: 6(float) Load 590
- 592: 7(ptr) AccessChain 54(inF1) 362
+ 592: 7(ptr) AccessChain 54(inF1) 589
593: 6(float) Load 592
594: 6(float) FMul 591 593
- 595: 7(ptr) AccessChain 53(inF0) 217
- 596: 6(float) Load 595
- 597: 7(ptr) AccessChain 54(inF1) 288
- 598: 6(float) Load 597
- 599: 48(fvec4) CompositeConstruct 225 594 596 598
- 600: 48(fvec4) Load 53(inF0)
- 601: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 600
+ 596: 7(ptr) AccessChain 53(inF0) 595
+ 597: 6(float) Load 596
+ 599: 7(ptr) AccessChain 54(inF1) 598
+ 600: 6(float) Load 599
+ 601: 48(fvec4) CompositeConstruct 224 594 597 600
602: 48(fvec4) Load 53(inF0)
- 603: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 602
+ 603: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 602
604: 48(fvec4) Load 53(inF0)
- 605: 48(fvec4) Load 54(inF1)
- 606: 48(fvec4) Load 55(inF2)
- 607: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 604 605 606
- 608: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172
- 609: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172
- 610: 48(fvec4) Load 53(inF0)
- 611: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 610
+ 605: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 604
+ 606: 48(fvec4) Load 53(inF0)
+ 607: 48(fvec4) Load 54(inF1)
+ 608: 48(fvec4) Load 55(inF2)
+ 609: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 606 607 608
+ 610: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164
+ 611: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164
612: 48(fvec4) Load 53(inF0)
- 613: 48(fvec4) Load 54(inF1)
- 614: 48(fvec4) FMod 612 613
- 615: 48(fvec4) Load 53(inF0)
- 616: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 615
+ 613: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 612
+ 614: 48(fvec4) Load 53(inF0)
+ 615: 48(fvec4) Load 54(inF1)
+ 616: 48(fvec4) FMod 614 615
617: 48(fvec4) Load 53(inF0)
- 619:618(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 617
- 620: 559(ivec4) CompositeExtract 619 1
- Store 54(inF1) 620
- 621: 48(fvec4) CompositeExtract 619 0
- 622: 48(fvec4) Load 53(inF0)
- 624: 623(bvec4) IsInf 622
- 625: 48(fvec4) Load 53(inF0)
- 626: 623(bvec4) IsNan 625
+ 618: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 617
+ 619: 48(fvec4) Load 53(inF0)
+ 621:620(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 619
+ 622: 558(ivec4) CompositeExtract 621 1
+ Store 54(inF1) 622
+ 623: 48(fvec4) CompositeExtract 621 0
+ 624: 48(fvec4) Load 53(inF0)
+ 626: 625(bvec4) IsInf 624
627: 48(fvec4) Load 53(inF0)
- 628: 48(fvec4) Load 54(inF1)
- 629: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 627 628
- 630: 48(fvec4) Load 53(inF0)
- 631: 48(fvec4) Load 54(inF1)
- 632: 48(fvec4) Load 55(inF2)
- 633: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 630 631 632
- 634: 48(fvec4) Load 53(inF0)
- 635: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 634
+ 628: 625(bvec4) IsNan 627
+ 629: 48(fvec4) Load 53(inF0)
+ 630: 48(fvec4) Load 54(inF1)
+ 631: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 629 630
+ 632: 48(fvec4) Load 53(inF0)
+ 633: 48(fvec4) Load 54(inF1)
+ 634: 48(fvec4) Load 55(inF2)
+ 635: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 632 633 634
636: 48(fvec4) Load 53(inF0)
- 637: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 636
+ 637: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 636
638: 48(fvec4) Load 53(inF0)
- 639: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 638
- 640: 48(fvec4) VectorTimesScalar 639 202
- 641: 48(fvec4) Load 53(inF0)
- 642: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 641
+ 639: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 638
+ 640: 48(fvec4) Load 53(inF0)
+ 641: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 640
+ 642: 48(fvec4) VectorTimesScalar 641 201
643: 48(fvec4) Load 53(inF0)
- 644: 48(fvec4) Load 54(inF1)
- 645: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 643 644
- 646: 48(fvec4) Load 53(inF0)
- 647: 48(fvec4) Load 54(inF1)
- 648: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 646 647
- 649: 48(fvec4) Load 53(inF0)
- 650: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 649
+ 644: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 643
+ 645: 48(fvec4) Load 53(inF0)
+ 646: 48(fvec4) Load 54(inF1)
+ 647: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 645 646
+ 648: 48(fvec4) Load 53(inF0)
+ 649: 48(fvec4) Load 54(inF1)
+ 650: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 648 649
651: 48(fvec4) Load 53(inF0)
- 652: 48(fvec4) Load 54(inF1)
- 653: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 651 652
- 654: 48(fvec4) Load 53(inF0)
- 655: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 654
+ 652: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 651
+ 653: 48(fvec4) Load 53(inF0)
+ 654: 48(fvec4) Load 54(inF1)
+ 655: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 653 654
656: 48(fvec4) Load 53(inF0)
- 657: 48(fvec4) Load 54(inF1)
- 658: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 656 657
- 659: 48(fvec4) Load 53(inF0)
- 660: 48(fvec4) Load 54(inF1)
- 661: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 659 660 360
- 664: 50(ivec4) BitReverse 663
- 665: 48(fvec4) Load 53(inF0)
- 666: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 665
+ 657: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 656
+ 658: 48(fvec4) Load 53(inF0)
+ 659: 48(fvec4) Load 54(inF1)
+ 660: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 658 659
+ 661: 48(fvec4) Load 53(inF0)
+ 662: 48(fvec4) Load 54(inF1)
+ 663: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 661 662 359
+ 666: 558(ivec4) BitReverse 665
667: 48(fvec4) Load 53(inF0)
- 668: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 667
+ 668: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 667
669: 48(fvec4) Load 53(inF0)
- 670: 48(fvec4) CompositeConstruct 224 224 224 224
- 671: 48(fvec4) CompositeConstruct 225 225 225 225
- 672: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 669 670 671
- 673: 48(fvec4) Load 53(inF0)
- 674: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 673
+ 670: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 669
+ 671: 48(fvec4) Load 53(inF0)
+ 672: 48(fvec4) CompositeConstruct 223 223 223 223
+ 673: 48(fvec4) CompositeConstruct 224 224 224 224
+ 674: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 671 672 673
675: 48(fvec4) Load 53(inF0)
- 676: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 675
+ 676: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 675
677: 48(fvec4) Load 53(inF0)
678: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 677
- Store 54(inF1) 678
679: 48(fvec4) Load 53(inF0)
- 680: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 679
- Store 55(inF2) 680
+ 680: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 679
+ Store 54(inF1) 680
681: 48(fvec4) Load 53(inF0)
- 682: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 681
+ 682: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 681
+ Store 55(inF2) 682
683: 48(fvec4) Load 53(inF0)
- 684: 48(fvec4) Load 54(inF1)
- 685: 48(fvec4) Load 55(inF2)
- 686: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 683 684 685
- 687: 48(fvec4) Load 53(inF0)
- 688: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 687
+ 684: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 683
+ 685: 48(fvec4) Load 53(inF0)
+ 686: 48(fvec4) Load 54(inF1)
+ 687: 48(fvec4) Load 55(inF2)
+ 688: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 685 686 687
689: 48(fvec4) Load 53(inF0)
- 690: 48(fvec4) Load 54(inF1)
- 691: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 689 690
- 692: 48(fvec4) Load 53(inF0)
- 693: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 692
+ 690: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 689
+ 691: 48(fvec4) Load 53(inF0)
+ 692: 48(fvec4) Load 54(inF1)
+ 693: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 691 692
694: 48(fvec4) Load 53(inF0)
- 695: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 694
+ 695: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 694
696: 48(fvec4) Load 53(inF0)
- 697: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 696
- ReturnValue 699
+ 697: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 696
+ 698: 48(fvec4) Load 53(inF0)
+ 699: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 698
+ ReturnValue 701
FunctionEnd
66(VertexShaderFunction2x2(mf22;mf22;mf22;): 60 Function None 62
63(inF0): 61(ptr) FunctionParameter
64(inF1): 61(ptr) FunctionParameter
65(inF2): 61(ptr) FunctionParameter
67: Label
- 702: 60 Load 63(inF0)
- 703: 132(bool) All 702
704: 60 Load 63(inF0)
- 705: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 704
+ 705: 132(bool) All 704
706: 60 Load 63(inF0)
- 707: 60 ExtInst 1(GLSL.std.450) 17(Acos) 706
+ 707: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 706
708: 60 Load 63(inF0)
- 709: 132(bool) Any 708
+ 709: 60 ExtInst 1(GLSL.std.450) 17(Acos) 708
710: 60 Load 63(inF0)
- 711: 60 ExtInst 1(GLSL.std.450) 16(Asin) 710
+ 711: 132(bool) Any 710
712: 60 Load 63(inF0)
- 713: 60 ExtInst 1(GLSL.std.450) 18(Atan) 712
+ 713: 60 ExtInst 1(GLSL.std.450) 16(Asin) 712
714: 60 Load 63(inF0)
- 715: 60 Load 64(inF1)
- 716: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 714 715
- 717: 60 Load 63(inF0)
- 718: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 717
+ 715: 60 ExtInst 1(GLSL.std.450) 18(Atan) 714
+ 716: 60 Load 63(inF0)
+ 717: 60 Load 64(inF1)
+ 718: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 716 717
719: 60 Load 63(inF0)
- 720: 60 Load 64(inF1)
- 721: 60 Load 65(inF2)
- 722: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 719 720 721
- 723: 60 Load 63(inF0)
- 724: 60 ExtInst 1(GLSL.std.450) 14(Cos) 723
+ 720: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 719
+ 721: 60 Load 63(inF0)
+ 722: 60 Load 64(inF1)
+ 723: 60 Load 65(inF2)
+ 724: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 721 722 723
725: 60 Load 63(inF0)
- 726: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 725
+ 726: 60 ExtInst 1(GLSL.std.450) 14(Cos) 725
727: 60 Load 63(inF0)
- 728: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 727
+ 728: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 727
729: 60 Load 63(inF0)
- 730: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 729
+ 730: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 729
731: 60 Load 63(inF0)
- 732: 60 ExtInst 1(GLSL.std.450) 27(Exp) 731
+ 732: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 731
733: 60 Load 63(inF0)
- 734: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 733
- 735: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172
- 736: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172
- 737: 60 Load 63(inF0)
- 738: 60 ExtInst 1(GLSL.std.450) 8(Floor) 737
+ 734: 60 ExtInst 1(GLSL.std.450) 27(Exp) 733
+ 735: 60 Load 63(inF0)
+ 736: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 735
+ 737: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164
+ 738: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164
739: 60 Load 63(inF0)
- 740: 60 Load 64(inF1)
- 741: 24(fvec2) CompositeExtract 739 0
- 742: 24(fvec2) CompositeExtract 740 0
- 743: 24(fvec2) FMod 741 742
- 744: 24(fvec2) CompositeExtract 739 1
- 745: 24(fvec2) CompositeExtract 740 1
- 746: 24(fvec2) FMod 744 745
- 747: 60 CompositeConstruct 743 746
- 748: 60 Load 63(inF0)
- 749: 60 ExtInst 1(GLSL.std.450) 10(Fract) 748
+ 740: 60 ExtInst 1(GLSL.std.450) 8(Floor) 739
+ 741: 60 Load 63(inF0)
+ 742: 60 Load 64(inF1)
+ 743: 24(fvec2) CompositeExtract 741 0
+ 744: 24(fvec2) CompositeExtract 742 0
+ 745: 24(fvec2) FMod 743 744
+ 746: 24(fvec2) CompositeExtract 741 1
+ 747: 24(fvec2) CompositeExtract 742 1
+ 748: 24(fvec2) FMod 746 747
+ 749: 60 CompositeConstruct 745 748
750: 60 Load 63(inF0)
- 752:751(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 750
- 753: 267(ivec2) CompositeExtract 752 1
- Store 64(inF1) 753
- 754: 60 CompositeExtract 752 0
- 755: 60 Load 63(inF0)
- 756: 60 Load 64(inF1)
- 757: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 755 756
- 758: 60 Load 63(inF0)
- 759: 60 Load 64(inF1)
- 760: 60 Load 65(inF2)
- 761: 60 ExtInst 1(GLSL.std.450) 46(FMix) 758 759 760
- 762: 60 Load 63(inF0)
- 763: 60 ExtInst 1(GLSL.std.450) 28(Log) 762
+ 751: 60 ExtInst 1(GLSL.std.450) 10(Fract) 750
+ 752: 60 Load 63(inF0)
+ 754:753(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 752
+ 755: 266(ivec2) CompositeExtract 754 1
+ Store 64(inF1) 755
+ 756: 60 CompositeExtract 754 0
+ 757: 60 Load 63(inF0)
+ 758: 60 Load 64(inF1)
+ 759: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 757 758
+ 760: 60 Load 63(inF0)
+ 761: 60 Load 64(inF1)
+ 762: 60 Load 65(inF2)
+ 763: 60 ExtInst 1(GLSL.std.450) 46(FMix) 760 761 762
764: 60 Load 63(inF0)
- 765: 60 ExtInst 1(GLSL.std.450) 30(Log2) 764
- 766: 60 MatrixTimesScalar 765 202
- 767: 60 Load 63(inF0)
- 768: 60 ExtInst 1(GLSL.std.450) 30(Log2) 767
+ 765: 60 ExtInst 1(GLSL.std.450) 28(Log) 764
+ 766: 60 Load 63(inF0)
+ 767: 60 ExtInst 1(GLSL.std.450) 30(Log2) 766
+ 768: 60 MatrixTimesScalar 767 201
769: 60 Load 63(inF0)
- 770: 60 Load 64(inF1)
- 771: 60 ExtInst 1(GLSL.std.450) 40(FMax) 769 770
- 772: 60 Load 63(inF0)
- 773: 60 Load 64(inF1)
- 774: 60 ExtInst 1(GLSL.std.450) 37(FMin) 772 773
- 775: 60 Load 63(inF0)
- 776: 60 Load 64(inF1)
- 777: 60 ExtInst 1(GLSL.std.450) 26(Pow) 775 776
- 778: 60 Load 63(inF0)
- 779: 60 ExtInst 1(GLSL.std.450) 11(Radians) 778
+ 770: 60 ExtInst 1(GLSL.std.450) 30(Log2) 769
+ 771: 60 Load 63(inF0)
+ 772: 60 Load 64(inF1)
+ 773: 60 ExtInst 1(GLSL.std.450) 40(FMax) 771 772
+ 774: 60 Load 63(inF0)
+ 775: 60 Load 64(inF1)
+ 776: 60 ExtInst 1(GLSL.std.450) 37(FMin) 774 775
+ 777: 60 Load 63(inF0)
+ 778: 60 Load 64(inF1)
+ 779: 60 ExtInst 1(GLSL.std.450) 26(Pow) 777 778
780: 60 Load 63(inF0)
- 781: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 780
+ 781: 60 ExtInst 1(GLSL.std.450) 11(Radians) 780
782: 60 Load 63(inF0)
- 783: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 782
+ 783: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 782
784: 60 Load 63(inF0)
- 785: 24(fvec2) CompositeConstruct 224 224
- 786: 24(fvec2) CompositeConstruct 225 225
- 787: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 784 785 786
- 788: 60 Load 63(inF0)
- 789: 60 ExtInst 1(GLSL.std.450) 6(FSign) 788
+ 785: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 784
+ 786: 60 Load 63(inF0)
+ 787: 24(fvec2) CompositeConstruct 223 223
+ 788: 24(fvec2) CompositeConstruct 224 224
+ 789: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 786 787 788
790: 60 Load 63(inF0)
- 791: 60 ExtInst 1(GLSL.std.450) 13(Sin) 790
+ 791: 60 ExtInst 1(GLSL.std.450) 6(FSign) 790
792: 60 Load 63(inF0)
793: 60 ExtInst 1(GLSL.std.450) 13(Sin) 792
- Store 64(inF1) 793
794: 60 Load 63(inF0)
- 795: 60 ExtInst 1(GLSL.std.450) 14(Cos) 794
- Store 65(inF2) 795
+ 795: 60 ExtInst 1(GLSL.std.450) 13(Sin) 794
+ Store 64(inF1) 795
796: 60 Load 63(inF0)
- 797: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 796
+ 797: 60 ExtInst 1(GLSL.std.450) 14(Cos) 796
+ Store 65(inF2) 797
798: 60 Load 63(inF0)
- 799: 60 Load 64(inF1)
- 800: 60 Load 65(inF2)
- 801: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 798 799 800
- 802: 60 Load 63(inF0)
- 803: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 802
+ 799: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 798
+ 800: 60 Load 63(inF0)
+ 801: 60 Load 64(inF1)
+ 802: 60 Load 65(inF2)
+ 803: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 800 801 802
804: 60 Load 63(inF0)
- 805: 60 Load 64(inF1)
- 806: 60 ExtInst 1(GLSL.std.450) 48(Step) 804 805
- 807: 60 Load 63(inF0)
- 808: 60 ExtInst 1(GLSL.std.450) 15(Tan) 807
+ 805: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 804
+ 806: 60 Load 63(inF0)
+ 807: 60 Load 64(inF1)
+ 808: 60 ExtInst 1(GLSL.std.450) 48(Step) 806 807
809: 60 Load 63(inF0)
- 810: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 809
+ 810: 60 ExtInst 1(GLSL.std.450) 15(Tan) 809
811: 60 Load 63(inF0)
- 812: 60 Transpose 811
+ 812: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 811
813: 60 Load 63(inF0)
- 814: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 813
- ReturnValue 816
+ 814: 60 Transpose 813
+ 815: 60 Load 63(inF0)
+ 816: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 815
+ ReturnValue 818
FunctionEnd
74(VertexShaderFunction3x3(mf33;mf33;mf33;): 68 Function None 70
71(inF0): 69(ptr) FunctionParameter
72(inF1): 69(ptr) FunctionParameter
73(inF2): 69(ptr) FunctionParameter
75: Label
- 819: 68 Load 71(inF0)
- 820: 132(bool) All 819
821: 68 Load 71(inF0)
- 822: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 821
+ 822: 132(bool) All 821
823: 68 Load 71(inF0)
- 824: 68 ExtInst 1(GLSL.std.450) 17(Acos) 823
+ 824: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 823
825: 68 Load 71(inF0)
- 826: 132(bool) Any 825
+ 826: 68 ExtInst 1(GLSL.std.450) 17(Acos) 825
827: 68 Load 71(inF0)
- 828: 68 ExtInst 1(GLSL.std.450) 16(Asin) 827
+ 828: 132(bool) Any 827
829: 68 Load 71(inF0)
- 830: 68 ExtInst 1(GLSL.std.450) 18(Atan) 829
+ 830: 68 ExtInst 1(GLSL.std.450) 16(Asin) 829
831: 68 Load 71(inF0)
- 832: 68 Load 72(inF1)
- 833: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 831 832
- 834: 68 Load 71(inF0)
- 835: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 834
+ 832: 68 ExtInst 1(GLSL.std.450) 18(Atan) 831
+ 833: 68 Load 71(inF0)
+ 834: 68 Load 72(inF1)
+ 835: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 833 834
836: 68 Load 71(inF0)
- 837: 68 Load 72(inF1)
- 838: 68 Load 73(inF2)
- 839: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 836 837 838
- 840: 68 Load 71(inF0)
- 841: 68 ExtInst 1(GLSL.std.450) 14(Cos) 840
+ 837: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 836
+ 838: 68 Load 71(inF0)
+ 839: 68 Load 72(inF1)
+ 840: 68 Load 73(inF2)
+ 841: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 838 839 840
842: 68 Load 71(inF0)
- 843: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 842
+ 843: 68 ExtInst 1(GLSL.std.450) 14(Cos) 842
844: 68 Load 71(inF0)
- 845: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 844
+ 845: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 844
846: 68 Load 71(inF0)
- 847: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 846
+ 847: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 846
848: 68 Load 71(inF0)
- 849: 68 ExtInst 1(GLSL.std.450) 27(Exp) 848
+ 849: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 848
850: 68 Load 71(inF0)
- 851: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 850
- 852: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172
- 853: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172
- 854: 68 Load 71(inF0)
- 855: 68 ExtInst 1(GLSL.std.450) 8(Floor) 854
+ 851: 68 ExtInst 1(GLSL.std.450) 27(Exp) 850
+ 852: 68 Load 71(inF0)
+ 853: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 852
+ 854: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164
+ 855: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164
856: 68 Load 71(inF0)
- 857: 68 Load 72(inF1)
- 858: 36(fvec3) CompositeExtract 856 0
- 859: 36(fvec3) CompositeExtract 857 0
- 860: 36(fvec3) FMod 858 859
- 861: 36(fvec3) CompositeExtract 856 1
- 862: 36(fvec3) CompositeExtract 857 1
- 863: 36(fvec3) FMod 861 862
- 864: 36(fvec3) CompositeExtract 856 2
- 865: 36(fvec3) CompositeExtract 857 2
- 866: 36(fvec3) FMod 864 865
- 867: 68 CompositeConstruct 860 863 866
- 868: 68 Load 71(inF0)
- 869: 68 ExtInst 1(GLSL.std.450) 10(Fract) 868
+ 857: 68 ExtInst 1(GLSL.std.450) 8(Floor) 856
+ 858: 68 Load 71(inF0)
+ 859: 68 Load 72(inF1)
+ 860: 36(fvec3) CompositeExtract 858 0
+ 861: 36(fvec3) CompositeExtract 859 0
+ 862: 36(fvec3) FMod 860 861
+ 863: 36(fvec3) CompositeExtract 858 1
+ 864: 36(fvec3) CompositeExtract 859 1
+ 865: 36(fvec3) FMod 863 864
+ 866: 36(fvec3) CompositeExtract 858 2
+ 867: 36(fvec3) CompositeExtract 859 2
+ 868: 36(fvec3) FMod 866 867
+ 869: 68 CompositeConstruct 862 865 868
870: 68 Load 71(inF0)
- 872:871(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 870
- 873: 412(ivec3) CompositeExtract 872 1
- Store 72(inF1) 873
- 874: 68 CompositeExtract 872 0
- 875: 68 Load 71(inF0)
- 876: 68 Load 72(inF1)
- 877: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 875 876
- 878: 68 Load 71(inF0)
- 879: 68 Load 72(inF1)
- 880: 68 Load 73(inF2)
- 881: 68 ExtInst 1(GLSL.std.450) 46(FMix) 878 879 880
- 882: 68 Load 71(inF0)
- 883: 68 ExtInst 1(GLSL.std.450) 28(Log) 882
+ 871: 68 ExtInst 1(GLSL.std.450) 10(Fract) 870
+ 872: 68 Load 71(inF0)
+ 874:873(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 872
+ 875: 411(ivec3) CompositeExtract 874 1
+ Store 72(inF1) 875
+ 876: 68 CompositeExtract 874 0
+ 877: 68 Load 71(inF0)
+ 878: 68 Load 72(inF1)
+ 879: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 877 878
+ 880: 68 Load 71(inF0)
+ 881: 68 Load 72(inF1)
+ 882: 68 Load 73(inF2)
+ 883: 68 ExtInst 1(GLSL.std.450) 46(FMix) 880 881 882
884: 68 Load 71(inF0)
- 885: 68 ExtInst 1(GLSL.std.450) 30(Log2) 884
- 886: 68 MatrixTimesScalar 885 202
- 887: 68 Load 71(inF0)
- 888: 68 ExtInst 1(GLSL.std.450) 30(Log2) 887
+ 885: 68 ExtInst 1(GLSL.std.450) 28(Log) 884
+ 886: 68 Load 71(inF0)
+ 887: 68 ExtInst 1(GLSL.std.450) 30(Log2) 886
+ 888: 68 MatrixTimesScalar 887 201
889: 68 Load 71(inF0)
- 890: 68 Load 72(inF1)
- 891: 68 ExtInst 1(GLSL.std.450) 40(FMax) 889 890
- 892: 68 Load 71(inF0)
- 893: 68 Load 72(inF1)
- 894: 68 ExtInst 1(GLSL.std.450) 37(FMin) 892 893
- 895: 68 Load 71(inF0)
- 896: 68 Load 72(inF1)
- 897: 68 ExtInst 1(GLSL.std.450) 26(Pow) 895 896
- 898: 68 Load 71(inF0)
- 899: 68 ExtInst 1(GLSL.std.450) 11(Radians) 898
+ 890: 68 ExtInst 1(GLSL.std.450) 30(Log2) 889
+ 891: 68 Load 71(inF0)
+ 892: 68 Load 72(inF1)
+ 893: 68 ExtInst 1(GLSL.std.450) 40(FMax) 891 892
+ 894: 68 Load 71(inF0)
+ 895: 68 Load 72(inF1)
+ 896: 68 ExtInst 1(GLSL.std.450) 37(FMin) 894 895
+ 897: 68 Load 71(inF0)
+ 898: 68 Load 72(inF1)
+ 899: 68 ExtInst 1(GLSL.std.450) 26(Pow) 897 898
900: 68 Load 71(inF0)
- 901: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 900
+ 901: 68 ExtInst 1(GLSL.std.450) 11(Radians) 900
902: 68 Load 71(inF0)
- 903: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 902
+ 903: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 902
904: 68 Load 71(inF0)
- 905: 36(fvec3) CompositeConstruct 224 224 224
- 906: 36(fvec3) CompositeConstruct 225 225 225
- 907: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 904 905 906
- 908: 68 Load 71(inF0)
- 909: 68 ExtInst 1(GLSL.std.450) 6(FSign) 908
+ 905: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 904
+ 906: 68 Load 71(inF0)
+ 907: 36(fvec3) CompositeConstruct 223 223 223
+ 908: 36(fvec3) CompositeConstruct 224 224 224
+ 909: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 906 907 908
910: 68 Load 71(inF0)
- 911: 68 ExtInst 1(GLSL.std.450) 13(Sin) 910
+ 911: 68 ExtInst 1(GLSL.std.450) 6(FSign) 910
912: 68 Load 71(inF0)
913: 68 ExtInst 1(GLSL.std.450) 13(Sin) 912
- Store 72(inF1) 913
914: 68 Load 71(inF0)
- 915: 68 ExtInst 1(GLSL.std.450) 14(Cos) 914
- Store 73(inF2) 915
+ 915: 68 ExtInst 1(GLSL.std.450) 13(Sin) 914
+ Store 72(inF1) 915
916: 68 Load 71(inF0)
- 917: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 916
+ 917: 68 ExtInst 1(GLSL.std.450) 14(Cos) 916
+ Store 73(inF2) 917
918: 68 Load 71(inF0)
- 919: 68 Load 72(inF1)
- 920: 68 Load 73(inF2)
- 921: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 918 919 920
- 922: 68 Load 71(inF0)
- 923: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 922
+ 919: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 918
+ 920: 68 Load 71(inF0)
+ 921: 68 Load 72(inF1)
+ 922: 68 Load 73(inF2)
+ 923: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 920 921 922
924: 68 Load 71(inF0)
- 925: 68 Load 72(inF1)
- 926: 68 ExtInst 1(GLSL.std.450) 48(Step) 924 925
- 927: 68 Load 71(inF0)
- 928: 68 ExtInst 1(GLSL.std.450) 15(Tan) 927
+ 925: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 924
+ 926: 68 Load 71(inF0)
+ 927: 68 Load 72(inF1)
+ 928: 68 ExtInst 1(GLSL.std.450) 48(Step) 926 927
929: 68 Load 71(inF0)
- 930: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 929
+ 930: 68 ExtInst 1(GLSL.std.450) 15(Tan) 929
931: 68 Load 71(inF0)
- 932: 68 Transpose 931
+ 932: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 931
933: 68 Load 71(inF0)
- 934: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 933
- ReturnValue 936
+ 934: 68 Transpose 933
+ 935: 68 Load 71(inF0)
+ 936: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 935
+ ReturnValue 938
FunctionEnd
82(VertexShaderFunction4x4(mf44;mf44;mf44;): 76 Function None 78
79(inF0): 77(ptr) FunctionParameter
80(inF1): 77(ptr) FunctionParameter
81(inF2): 77(ptr) FunctionParameter
83: Label
- 939: 76 Load 79(inF0)
- 940: 132(bool) All 939
941: 76 Load 79(inF0)
- 942: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 941
+ 942: 132(bool) All 941
943: 76 Load 79(inF0)
- 944: 76 ExtInst 1(GLSL.std.450) 17(Acos) 943
+ 944: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 943
945: 76 Load 79(inF0)
- 946: 132(bool) Any 945
+ 946: 76 ExtInst 1(GLSL.std.450) 17(Acos) 945
947: 76 Load 79(inF0)
- 948: 76 ExtInst 1(GLSL.std.450) 16(Asin) 947
+ 948: 132(bool) Any 947
949: 76 Load 79(inF0)
- 950: 76 ExtInst 1(GLSL.std.450) 18(Atan) 949
+ 950: 76 ExtInst 1(GLSL.std.450) 16(Asin) 949
951: 76 Load 79(inF0)
- 952: 76 Load 80(inF1)
- 953: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 951 952
- 954: 76 Load 79(inF0)
- 955: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 954
+ 952: 76 ExtInst 1(GLSL.std.450) 18(Atan) 951
+ 953: 76 Load 79(inF0)
+ 954: 76 Load 80(inF1)
+ 955: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 953 954
956: 76 Load 79(inF0)
- 957: 76 Load 80(inF1)
- 958: 76 Load 81(inF2)
- 959: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 956 957 958
- 960: 76 Load 79(inF0)
- 961: 76 ExtInst 1(GLSL.std.450) 14(Cos) 960
+ 957: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 956
+ 958: 76 Load 79(inF0)
+ 959: 76 Load 80(inF1)
+ 960: 76 Load 81(inF2)
+ 961: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 958 959 960
962: 76 Load 79(inF0)
- 963: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 962
+ 963: 76 ExtInst 1(GLSL.std.450) 14(Cos) 962
964: 76 Load 79(inF0)
- 965: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 964
+ 965: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 964
966: 76 Load 79(inF0)
- 967: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 966
+ 967: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 966
968: 76 Load 79(inF0)
- 969: 76 ExtInst 1(GLSL.std.450) 27(Exp) 968
+ 969: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 968
970: 76 Load 79(inF0)
- 971: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 970
- 972: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172
- 973: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172
- 974: 76 Load 79(inF0)
- 975: 76 ExtInst 1(GLSL.std.450) 8(Floor) 974
+ 971: 76 ExtInst 1(GLSL.std.450) 27(Exp) 970
+ 972: 76 Load 79(inF0)
+ 973: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 972
+ 974: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164
+ 975: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164
976: 76 Load 79(inF0)
- 977: 76 Load 80(inF1)
- 978: 48(fvec4) CompositeExtract 976 0
- 979: 48(fvec4) CompositeExtract 977 0
- 980: 48(fvec4) FMod 978 979
- 981: 48(fvec4) CompositeExtract 976 1
- 982: 48(fvec4) CompositeExtract 977 1
- 983: 48(fvec4) FMod 981 982
- 984: 48(fvec4) CompositeExtract 976 2
- 985: 48(fvec4) CompositeExtract 977 2
- 986: 48(fvec4) FMod 984 985
- 987: 48(fvec4) CompositeExtract 976 3
- 988: 48(fvec4) CompositeExtract 977 3
- 989: 48(fvec4) FMod 987 988
- 990: 76 CompositeConstruct 980 983 986 989
- 991: 76 Load 79(inF0)
- 992: 76 ExtInst 1(GLSL.std.450) 10(Fract) 991
+ 977: 76 ExtInst 1(GLSL.std.450) 8(Floor) 976
+ 978: 76 Load 79(inF0)
+ 979: 76 Load 80(inF1)
+ 980: 48(fvec4) CompositeExtract 978 0
+ 981: 48(fvec4) CompositeExtract 979 0
+ 982: 48(fvec4) FMod 980 981
+ 983: 48(fvec4) CompositeExtract 978 1
+ 984: 48(fvec4) CompositeExtract 979 1
+ 985: 48(fvec4) FMod 983 984
+ 986: 48(fvec4) CompositeExtract 978 2
+ 987: 48(fvec4) CompositeExtract 979 2
+ 988: 48(fvec4) FMod 986 987
+ 989: 48(fvec4) CompositeExtract 978 3
+ 990: 48(fvec4) CompositeExtract 979 3
+ 991: 48(fvec4) FMod 989 990
+ 992: 76 CompositeConstruct 982 985 988 991
993: 76 Load 79(inF0)
- 995:994(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 993
- 996: 559(ivec4) CompositeExtract 995 1
- Store 80(inF1) 996
- 997: 76 CompositeExtract 995 0
- 998: 76 Load 79(inF0)
- 999: 76 Load 80(inF1)
- 1000: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 998 999
- 1001: 76 Load 79(inF0)
- 1002: 76 Load 80(inF1)
- 1003: 76 Load 81(inF2)
- 1004: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1001 1002 1003
- 1005: 76 Load 79(inF0)
- 1006: 76 ExtInst 1(GLSL.std.450) 28(Log) 1005
+ 994: 76 ExtInst 1(GLSL.std.450) 10(Fract) 993
+ 995: 76 Load 79(inF0)
+ 997:996(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 995
+ 998: 558(ivec4) CompositeExtract 997 1
+ Store 80(inF1) 998
+ 999: 76 CompositeExtract 997 0
+ 1000: 76 Load 79(inF0)
+ 1001: 76 Load 80(inF1)
+ 1002: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1000 1001
+ 1003: 76 Load 79(inF0)
+ 1004: 76 Load 80(inF1)
+ 1005: 76 Load 81(inF2)
+ 1006: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1003 1004 1005
1007: 76 Load 79(inF0)
- 1008: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1007
- 1009: 76 MatrixTimesScalar 1008 202
- 1010: 76 Load 79(inF0)
- 1011: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1010
+ 1008: 76 ExtInst 1(GLSL.std.450) 28(Log) 1007
+ 1009: 76 Load 79(inF0)
+ 1010: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1009
+ 1011: 76 MatrixTimesScalar 1010 201
1012: 76 Load 79(inF0)
- 1013: 76 Load 80(inF1)
- 1014: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1012 1013
- 1015: 76 Load 79(inF0)
- 1016: 76 Load 80(inF1)
- 1017: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1015 1016
- 1018: 76 Load 79(inF0)
- 1019: 76 Load 80(inF1)
- 1020: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1018 1019
- 1021: 76 Load 79(inF0)
- 1022: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1021
+ 1013: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1012
+ 1014: 76 Load 79(inF0)
+ 1015: 76 Load 80(inF1)
+ 1016: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1014 1015
+ 1017: 76 Load 79(inF0)
+ 1018: 76 Load 80(inF1)
+ 1019: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1017 1018
+ 1020: 76 Load 79(inF0)
+ 1021: 76 Load 80(inF1)
+ 1022: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1020 1021
1023: 76 Load 79(inF0)
- 1024: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1023
+ 1024: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1023
1025: 76 Load 79(inF0)
- 1026: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1025
+ 1026: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1025
1027: 76 Load 79(inF0)
- 1028: 48(fvec4) CompositeConstruct 224 224 224 224
- 1029: 48(fvec4) CompositeConstruct 225 225 225 225
- 1030: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1027 1028 1029
- 1031: 76 Load 79(inF0)
- 1032: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1031
+ 1028: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1027
+ 1029: 76 Load 79(inF0)
+ 1030: 48(fvec4) CompositeConstruct 223 223 223 223
+ 1031: 48(fvec4) CompositeConstruct 224 224 224 224
+ 1032: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1029 1030 1031
1033: 76 Load 79(inF0)
- 1034: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1033
+ 1034: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1033
1035: 76 Load 79(inF0)
1036: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1035
- Store 80(inF1) 1036
1037: 76 Load 79(inF0)
- 1038: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1037
- Store 81(inF2) 1038
+ 1038: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1037
+ Store 80(inF1) 1038
1039: 76 Load 79(inF0)
- 1040: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1039
+ 1040: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1039
+ Store 81(inF2) 1040
1041: 76 Load 79(inF0)
- 1042: 76 Load 80(inF1)
- 1043: 76 Load 81(inF2)
- 1044: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1041 1042 1043
- 1045: 76 Load 79(inF0)
- 1046: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1045
+ 1042: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1041
+ 1043: 76 Load 79(inF0)
+ 1044: 76 Load 80(inF1)
+ 1045: 76 Load 81(inF2)
+ 1046: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1043 1044 1045
1047: 76 Load 79(inF0)
- 1048: 76 Load 80(inF1)
- 1049: 76 ExtInst 1(GLSL.std.450) 48(Step) 1047 1048
- 1050: 76 Load 79(inF0)
- 1051: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1050
+ 1048: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1047
+ 1049: 76 Load 79(inF0)
+ 1050: 76 Load 80(inF1)
+ 1051: 76 ExtInst 1(GLSL.std.450) 48(Step) 1049 1050
1052: 76 Load 79(inF0)
- 1053: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1052
+ 1053: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1052
1054: 76 Load 79(inF0)
- 1055: 76 Transpose 1054
+ 1055: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1054
1056: 76 Load 79(inF0)
- 1057: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1056
- ReturnValue 1059
+ 1057: 76 Transpose 1056
+ 1058: 76 Load 79(inF0)
+ 1059: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1058
+ ReturnValue 1061
FunctionEnd
91(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 84
85(inF0): 7(ptr) FunctionParameter
@@ -3979,51 +3981,51 @@
89(inFM0): 61(ptr) FunctionParameter
90(inFM1): 61(ptr) FunctionParameter
92: Label
- 1062(r0): 7(ptr) Variable Function
- 1066(r1): 25(ptr) Variable Function
- 1070(r2): 25(ptr) Variable Function
- 1074(r3): 7(ptr) Variable Function
- 1078(r4): 25(ptr) Variable Function
- 1082(r5): 25(ptr) Variable Function
- 1086(r6): 61(ptr) Variable Function
- 1090(r7): 61(ptr) Variable Function
- 1094(r8): 61(ptr) Variable Function
- 1063: 6(float) Load 86(inF1)
- 1064: 6(float) Load 85(inF0)
- 1065: 6(float) FMul 1063 1064
- Store 1062(r0) 1065
- 1067: 6(float) Load 85(inF0)
- 1068: 24(fvec2) Load 87(inFV0)
- 1069: 24(fvec2) VectorTimesScalar 1068 1067
- Store 1066(r1) 1069
- 1071: 24(fvec2) Load 87(inFV0)
- 1072: 6(float) Load 85(inF0)
- 1073: 24(fvec2) VectorTimesScalar 1071 1072
- Store 1070(r2) 1073
- 1075: 24(fvec2) Load 87(inFV0)
- 1076: 24(fvec2) Load 88(inFV1)
- 1077: 6(float) Dot 1075 1076
- Store 1074(r3) 1077
- 1079: 24(fvec2) Load 87(inFV0)
- 1080: 60 Load 89(inFM0)
- 1081: 24(fvec2) VectorTimesMatrix 1079 1080
- Store 1078(r4) 1081
- 1083: 60 Load 89(inFM0)
- 1084: 24(fvec2) Load 87(inFV0)
- 1085: 24(fvec2) MatrixTimesVector 1083 1084
- Store 1082(r5) 1085
- 1087: 6(float) Load 85(inF0)
- 1088: 60 Load 89(inFM0)
- 1089: 60 MatrixTimesScalar 1088 1087
- Store 1086(r6) 1089
- 1091: 60 Load 89(inFM0)
- 1092: 6(float) Load 85(inF0)
- 1093: 60 MatrixTimesScalar 1091 1092
- Store 1090(r7) 1093
- 1095: 60 Load 90(inFM1)
- 1096: 60 Load 89(inFM0)
- 1097: 60 MatrixTimesMatrix 1095 1096
- Store 1094(r8) 1097
+ 1064(r0): 7(ptr) Variable Function
+ 1068(r1): 25(ptr) Variable Function
+ 1072(r2): 25(ptr) Variable Function
+ 1076(r3): 7(ptr) Variable Function
+ 1080(r4): 25(ptr) Variable Function
+ 1084(r5): 25(ptr) Variable Function
+ 1088(r6): 61(ptr) Variable Function
+ 1092(r7): 61(ptr) Variable Function
+ 1096(r8): 61(ptr) Variable Function
+ 1065: 6(float) Load 86(inF1)
+ 1066: 6(float) Load 85(inF0)
+ 1067: 6(float) FMul 1065 1066
+ Store 1064(r0) 1067
+ 1069: 6(float) Load 85(inF0)
+ 1070: 24(fvec2) Load 87(inFV0)
+ 1071: 24(fvec2) VectorTimesScalar 1070 1069
+ Store 1068(r1) 1071
+ 1073: 24(fvec2) Load 87(inFV0)
+ 1074: 6(float) Load 85(inF0)
+ 1075: 24(fvec2) VectorTimesScalar 1073 1074
+ Store 1072(r2) 1075
+ 1077: 24(fvec2) Load 87(inFV0)
+ 1078: 24(fvec2) Load 88(inFV1)
+ 1079: 6(float) Dot 1077 1078
+ Store 1076(r3) 1079
+ 1081: 24(fvec2) Load 87(inFV0)
+ 1082: 60 Load 89(inFM0)
+ 1083: 24(fvec2) VectorTimesMatrix 1081 1082
+ Store 1080(r4) 1083
+ 1085: 60 Load 89(inFM0)
+ 1086: 24(fvec2) Load 87(inFV0)
+ 1087: 24(fvec2) MatrixTimesVector 1085 1086
+ Store 1084(r5) 1087
+ 1089: 6(float) Load 85(inF0)
+ 1090: 60 Load 89(inFM0)
+ 1091: 60 MatrixTimesScalar 1090 1089
+ Store 1088(r6) 1091
+ 1093: 60 Load 89(inFM0)
+ 1094: 6(float) Load 85(inF0)
+ 1095: 60 MatrixTimesScalar 1093 1094
+ Store 1092(r7) 1095
+ 1097: 60 Load 90(inFM1)
+ 1098: 60 Load 89(inFM0)
+ 1099: 60 MatrixTimesMatrix 1097 1098
+ Store 1096(r8) 1099
Return
FunctionEnd
100(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 93
@@ -4034,51 +4036,51 @@
98(inFM0): 69(ptr) FunctionParameter
99(inFM1): 69(ptr) FunctionParameter
101: Label
- 1098(r0): 7(ptr) Variable Function
- 1102(r1): 37(ptr) Variable Function
- 1106(r2): 37(ptr) Variable Function
- 1110(r3): 7(ptr) Variable Function
- 1114(r4): 37(ptr) Variable Function
- 1118(r5): 37(ptr) Variable Function
- 1122(r6): 69(ptr) Variable Function
- 1126(r7): 69(ptr) Variable Function
- 1130(r8): 69(ptr) Variable Function
- 1099: 6(float) Load 95(inF1)
- 1100: 6(float) Load 94(inF0)
- 1101: 6(float) FMul 1099 1100
- Store 1098(r0) 1101
- 1103: 6(float) Load 94(inF0)
- 1104: 36(fvec3) Load 96(inFV0)
- 1105: 36(fvec3) VectorTimesScalar 1104 1103
- Store 1102(r1) 1105
- 1107: 36(fvec3) Load 96(inFV0)
- 1108: 6(float) Load 94(inF0)
- 1109: 36(fvec3) VectorTimesScalar 1107 1108
- Store 1106(r2) 1109
- 1111: 36(fvec3) Load 96(inFV0)
- 1112: 36(fvec3) Load 97(inFV1)
- 1113: 6(float) Dot 1111 1112
- Store 1110(r3) 1113
- 1115: 36(fvec3) Load 96(inFV0)
- 1116: 68 Load 98(inFM0)
- 1117: 36(fvec3) VectorTimesMatrix 1115 1116
- Store 1114(r4) 1117
- 1119: 68 Load 98(inFM0)
- 1120: 36(fvec3) Load 96(inFV0)
- 1121: 36(fvec3) MatrixTimesVector 1119 1120
- Store 1118(r5) 1121
- 1123: 6(float) Load 94(inF0)
- 1124: 68 Load 98(inFM0)
- 1125: 68 MatrixTimesScalar 1124 1123
- Store 1122(r6) 1125
- 1127: 68 Load 98(inFM0)
- 1128: 6(float) Load 94(inF0)
- 1129: 68 MatrixTimesScalar 1127 1128
- Store 1126(r7) 1129
- 1131: 68 Load 99(inFM1)
- 1132: 68 Load 98(inFM0)
- 1133: 68 MatrixTimesMatrix 1131 1132
- Store 1130(r8) 1133
+ 1100(r0): 7(ptr) Variable Function
+ 1104(r1): 37(ptr) Variable Function
+ 1108(r2): 37(ptr) Variable Function
+ 1112(r3): 7(ptr) Variable Function
+ 1116(r4): 37(ptr) Variable Function
+ 1120(r5): 37(ptr) Variable Function
+ 1124(r6): 69(ptr) Variable Function
+ 1128(r7): 69(ptr) Variable Function
+ 1132(r8): 69(ptr) Variable Function
+ 1101: 6(float) Load 95(inF1)
+ 1102: 6(float) Load 94(inF0)
+ 1103: 6(float) FMul 1101 1102
+ Store 1100(r0) 1103
+ 1105: 6(float) Load 94(inF0)
+ 1106: 36(fvec3) Load 96(inFV0)
+ 1107: 36(fvec3) VectorTimesScalar 1106 1105
+ Store 1104(r1) 1107
+ 1109: 36(fvec3) Load 96(inFV0)
+ 1110: 6(float) Load 94(inF0)
+ 1111: 36(fvec3) VectorTimesScalar 1109 1110
+ Store 1108(r2) 1111
+ 1113: 36(fvec3) Load 96(inFV0)
+ 1114: 36(fvec3) Load 97(inFV1)
+ 1115: 6(float) Dot 1113 1114
+ Store 1112(r3) 1115
+ 1117: 36(fvec3) Load 96(inFV0)
+ 1118: 68 Load 98(inFM0)
+ 1119: 36(fvec3) VectorTimesMatrix 1117 1118
+ Store 1116(r4) 1119
+ 1121: 68 Load 98(inFM0)
+ 1122: 36(fvec3) Load 96(inFV0)
+ 1123: 36(fvec3) MatrixTimesVector 1121 1122
+ Store 1120(r5) 1123
+ 1125: 6(float) Load 94(inF0)
+ 1126: 68 Load 98(inFM0)
+ 1127: 68 MatrixTimesScalar 1126 1125
+ Store 1124(r6) 1127
+ 1129: 68 Load 98(inFM0)
+ 1130: 6(float) Load 94(inF0)
+ 1131: 68 MatrixTimesScalar 1129 1130
+ Store 1128(r7) 1131
+ 1133: 68 Load 99(inFM1)
+ 1134: 68 Load 98(inFM0)
+ 1135: 68 MatrixTimesMatrix 1133 1134
+ Store 1132(r8) 1135
Return
FunctionEnd
109(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 102
@@ -4089,51 +4091,51 @@
107(inFM0): 77(ptr) FunctionParameter
108(inFM1): 77(ptr) FunctionParameter
110: Label
- 1134(r0): 7(ptr) Variable Function
- 1138(r1): 49(ptr) Variable Function
- 1142(r2): 49(ptr) Variable Function
- 1146(r3): 7(ptr) Variable Function
- 1150(r4): 49(ptr) Variable Function
- 1154(r5): 49(ptr) Variable Function
- 1158(r6): 77(ptr) Variable Function
- 1162(r7): 77(ptr) Variable Function
- 1166(r8): 77(ptr) Variable Function
- 1135: 6(float) Load 104(inF1)
- 1136: 6(float) Load 103(inF0)
- 1137: 6(float) FMul 1135 1136
- Store 1134(r0) 1137
- 1139: 6(float) Load 103(inF0)
- 1140: 48(fvec4) Load 105(inFV0)
- 1141: 48(fvec4) VectorTimesScalar 1140 1139
- Store 1138(r1) 1141
- 1143: 48(fvec4) Load 105(inFV0)
- 1144: 6(float) Load 103(inF0)
- 1145: 48(fvec4) VectorTimesScalar 1143 1144
- Store 1142(r2) 1145
- 1147: 48(fvec4) Load 105(inFV0)
- 1148: 48(fvec4) Load 106(inFV1)
- 1149: 6(float) Dot 1147 1148
- Store 1146(r3) 1149
- 1151: 48(fvec4) Load 105(inFV0)
- 1152: 76 Load 107(inFM0)
- 1153: 48(fvec4) VectorTimesMatrix 1151 1152
- Store 1150(r4) 1153
- 1155: 76 Load 107(inFM0)
- 1156: 48(fvec4) Load 105(inFV0)
- 1157: 48(fvec4) MatrixTimesVector 1155 1156
- Store 1154(r5) 1157
- 1159: 6(float) Load 103(inF0)
- 1160: 76 Load 107(inFM0)
- 1161: 76 MatrixTimesScalar 1160 1159
- Store 1158(r6) 1161
- 1163: 76 Load 107(inFM0)
- 1164: 6(float) Load 103(inF0)
- 1165: 76 MatrixTimesScalar 1163 1164
- Store 1162(r7) 1165
- 1167: 76 Load 108(inFM1)
- 1168: 76 Load 107(inFM0)
- 1169: 76 MatrixTimesMatrix 1167 1168
- Store 1166(r8) 1169
+ 1136(r0): 7(ptr) Variable Function
+ 1140(r1): 49(ptr) Variable Function
+ 1144(r2): 49(ptr) Variable Function
+ 1148(r3): 7(ptr) Variable Function
+ 1152(r4): 49(ptr) Variable Function
+ 1156(r5): 49(ptr) Variable Function
+ 1160(r6): 77(ptr) Variable Function
+ 1164(r7): 77(ptr) Variable Function
+ 1168(r8): 77(ptr) Variable Function
+ 1137: 6(float) Load 104(inF1)
+ 1138: 6(float) Load 103(inF0)
+ 1139: 6(float) FMul 1137 1138
+ Store 1136(r0) 1139
+ 1141: 6(float) Load 103(inF0)
+ 1142: 48(fvec4) Load 105(inFV0)
+ 1143: 48(fvec4) VectorTimesScalar 1142 1141
+ Store 1140(r1) 1143
+ 1145: 48(fvec4) Load 105(inFV0)
+ 1146: 6(float) Load 103(inF0)
+ 1147: 48(fvec4) VectorTimesScalar 1145 1146
+ Store 1144(r2) 1147
+ 1149: 48(fvec4) Load 105(inFV0)
+ 1150: 48(fvec4) Load 106(inFV1)
+ 1151: 6(float) Dot 1149 1150
+ Store 1148(r3) 1151
+ 1153: 48(fvec4) Load 105(inFV0)
+ 1154: 76 Load 107(inFM0)
+ 1155: 48(fvec4) VectorTimesMatrix 1153 1154
+ Store 1152(r4) 1155
+ 1157: 76 Load 107(inFM0)
+ 1158: 48(fvec4) Load 105(inFV0)
+ 1159: 48(fvec4) MatrixTimesVector 1157 1158
+ Store 1156(r5) 1159
+ 1161: 6(float) Load 103(inF0)
+ 1162: 76 Load 107(inFM0)
+ 1163: 76 MatrixTimesScalar 1162 1161
+ Store 1160(r6) 1163
+ 1165: 76 Load 107(inFM0)
+ 1166: 6(float) Load 103(inF0)
+ 1167: 76 MatrixTimesScalar 1165 1166
+ Store 1164(r7) 1167
+ 1169: 76 Load 108(inFM1)
+ 1170: 76 Load 107(inFM0)
+ 1171: 76 MatrixTimesMatrix 1169 1170
+ Store 1168(r8) 1171
Return
FunctionEnd
129(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 2 Function None 119
@@ -4147,90 +4149,90 @@
127(inFM3x4): 116(ptr) FunctionParameter
128(inFM2x4): 118(ptr) FunctionParameter
130: Label
- 1170(r00): 7(ptr) Variable Function
- 1174(r01): 25(ptr) Variable Function
- 1178(r02): 37(ptr) Variable Function
- 1182(r03): 25(ptr) Variable Function
- 1186(r04): 37(ptr) Variable Function
- 1190(r05): 7(ptr) Variable Function
- 1194(r06): 7(ptr) Variable Function
- 1198(r07): 37(ptr) Variable Function
- 1202(r08): 25(ptr) Variable Function
- 1206(r09): 25(ptr) Variable Function
- 1210(r10): 37(ptr) Variable Function
- 1214(r11): 112(ptr) Variable Function
- 1218(r12): 114(ptr) Variable Function
- 1222(r13): 61(ptr) Variable Function
- 1226(r14): 112(ptr) Variable Function
- 1230(r15): 118(ptr) Variable Function
- 1234(r16): 116(ptr) Variable Function
- 1171: 6(float) Load 121(inF1)
- 1172: 6(float) Load 120(inF0)
- 1173: 6(float) FMul 1171 1172
- Store 1170(r00) 1173
- 1175: 6(float) Load 120(inF0)
- 1176: 24(fvec2) Load 122(inFV2)
- 1177: 24(fvec2) VectorTimesScalar 1176 1175
- Store 1174(r01) 1177
- 1179: 6(float) Load 120(inF0)
- 1180: 36(fvec3) Load 123(inFV3)
- 1181: 36(fvec3) VectorTimesScalar 1180 1179
- Store 1178(r02) 1181
- 1183: 24(fvec2) Load 122(inFV2)
- 1184: 6(float) Load 120(inF0)
- 1185: 24(fvec2) VectorTimesScalar 1183 1184
- Store 1182(r03) 1185
- 1187: 36(fvec3) Load 123(inFV3)
- 1188: 6(float) Load 120(inF0)
- 1189: 36(fvec3) VectorTimesScalar 1187 1188
- Store 1186(r04) 1189
- 1191: 24(fvec2) Load 122(inFV2)
- 1192: 24(fvec2) Load 122(inFV2)
- 1193: 6(float) Dot 1191 1192
- Store 1190(r05) 1193
- 1195: 36(fvec3) Load 123(inFV3)
- 1196: 36(fvec3) Load 123(inFV3)
- 1197: 6(float) Dot 1195 1196
- Store 1194(r06) 1197
- 1199: 111 Load 124(inFM2x3)
- 1200: 24(fvec2) Load 122(inFV2)
- 1201: 36(fvec3) MatrixTimesVector 1199 1200
- Store 1198(r07) 1201
- 1203: 113 Load 125(inFM3x2)
- 1204: 36(fvec3) Load 123(inFV3)
- 1205: 24(fvec2) MatrixTimesVector 1203 1204
- Store 1202(r08) 1205
- 1207: 36(fvec3) Load 123(inFV3)
- 1208: 111 Load 124(inFM2x3)
- 1209: 24(fvec2) VectorTimesMatrix 1207 1208
- Store 1206(r09) 1209
- 1211: 24(fvec2) Load 122(inFV2)
- 1212: 113 Load 125(inFM3x2)
- 1213: 36(fvec3) VectorTimesMatrix 1211 1212
- Store 1210(r10) 1213
- 1215: 6(float) Load 120(inF0)
- 1216: 111 Load 124(inFM2x3)
- 1217: 111 MatrixTimesScalar 1216 1215
- Store 1214(r11) 1217
- 1219: 6(float) Load 120(inF0)
- 1220: 113 Load 125(inFM3x2)
- 1221: 113 MatrixTimesScalar 1220 1219
- Store 1218(r12) 1221
- 1223: 113 Load 125(inFM3x2)
- 1224: 111 Load 124(inFM2x3)
- 1225: 60 MatrixTimesMatrix 1223 1224
- Store 1222(r13) 1225
- 1227: 68 Load 126(inFM3x3)
- 1228: 111 Load 124(inFM2x3)
- 1229: 111 MatrixTimesMatrix 1227 1228
- Store 1226(r14) 1229
- 1231: 115 Load 127(inFM3x4)
- 1232: 111 Load 124(inFM2x3)
- 1233: 117 MatrixTimesMatrix 1231 1232
- Store 1230(r15) 1233
- 1235: 117 Load 128(inFM2x4)
- 1236: 113 Load 125(inFM3x2)
- 1237: 115 MatrixTimesMatrix 1235 1236
- Store 1234(r16) 1237
+ 1172(r00): 7(ptr) Variable Function
+ 1176(r01): 25(ptr) Variable Function
+ 1180(r02): 37(ptr) Variable Function
+ 1184(r03): 25(ptr) Variable Function
+ 1188(r04): 37(ptr) Variable Function
+ 1192(r05): 7(ptr) Variable Function
+ 1196(r06): 7(ptr) Variable Function
+ 1200(r07): 37(ptr) Variable Function
+ 1204(r08): 25(ptr) Variable Function
+ 1208(r09): 25(ptr) Variable Function
+ 1212(r10): 37(ptr) Variable Function
+ 1216(r11): 112(ptr) Variable Function
+ 1220(r12): 114(ptr) Variable Function
+ 1224(r13): 61(ptr) Variable Function
+ 1228(r14): 112(ptr) Variable Function
+ 1232(r15): 118(ptr) Variable Function
+ 1236(r16): 116(ptr) Variable Function
+ 1173: 6(float) Load 121(inF1)
+ 1174: 6(float) Load 120(inF0)
+ 1175: 6(float) FMul 1173 1174
+ Store 1172(r00) 1175
+ 1177: 6(float) Load 120(inF0)
+ 1178: 24(fvec2) Load 122(inFV2)
+ 1179: 24(fvec2) VectorTimesScalar 1178 1177
+ Store 1176(r01) 1179
+ 1181: 6(float) Load 120(inF0)
+ 1182: 36(fvec3) Load 123(inFV3)
+ 1183: 36(fvec3) VectorTimesScalar 1182 1181
+ Store 1180(r02) 1183
+ 1185: 24(fvec2) Load 122(inFV2)
+ 1186: 6(float) Load 120(inF0)
+ 1187: 24(fvec2) VectorTimesScalar 1185 1186
+ Store 1184(r03) 1187
+ 1189: 36(fvec3) Load 123(inFV3)
+ 1190: 6(float) Load 120(inF0)
+ 1191: 36(fvec3) VectorTimesScalar 1189 1190
+ Store 1188(r04) 1191
+ 1193: 24(fvec2) Load 122(inFV2)
+ 1194: 24(fvec2) Load 122(inFV2)
+ 1195: 6(float) Dot 1193 1194
+ Store 1192(r05) 1195
+ 1197: 36(fvec3) Load 123(inFV3)
+ 1198: 36(fvec3) Load 123(inFV3)
+ 1199: 6(float) Dot 1197 1198
+ Store 1196(r06) 1199
+ 1201: 111 Load 124(inFM2x3)
+ 1202: 24(fvec2) Load 122(inFV2)
+ 1203: 36(fvec3) MatrixTimesVector 1201 1202
+ Store 1200(r07) 1203
+ 1205: 113 Load 125(inFM3x2)
+ 1206: 36(fvec3) Load 123(inFV3)
+ 1207: 24(fvec2) MatrixTimesVector 1205 1206
+ Store 1204(r08) 1207
+ 1209: 36(fvec3) Load 123(inFV3)
+ 1210: 111 Load 124(inFM2x3)
+ 1211: 24(fvec2) VectorTimesMatrix 1209 1210
+ Store 1208(r09) 1211
+ 1213: 24(fvec2) Load 122(inFV2)
+ 1214: 113 Load 125(inFM3x2)
+ 1215: 36(fvec3) VectorTimesMatrix 1213 1214
+ Store 1212(r10) 1215
+ 1217: 6(float) Load 120(inF0)
+ 1218: 111 Load 124(inFM2x3)
+ 1219: 111 MatrixTimesScalar 1218 1217
+ Store 1216(r11) 1219
+ 1221: 6(float) Load 120(inF0)
+ 1222: 113 Load 125(inFM3x2)
+ 1223: 113 MatrixTimesScalar 1222 1221
+ Store 1220(r12) 1223
+ 1225: 113 Load 125(inFM3x2)
+ 1226: 111 Load 124(inFM2x3)
+ 1227: 60 MatrixTimesMatrix 1225 1226
+ Store 1224(r13) 1227
+ 1229: 68 Load 126(inFM3x3)
+ 1230: 111 Load 124(inFM2x3)
+ 1231: 111 MatrixTimesMatrix 1229 1230
+ Store 1228(r14) 1231
+ 1233: 115 Load 127(inFM3x4)
+ 1234: 111 Load 124(inFM2x3)
+ 1235: 117 MatrixTimesMatrix 1233 1234
+ Store 1232(r15) 1235
+ 1237: 117 Load 128(inFM2x4)
+ 1238: 113 Load 125(inFM3x2)
+ 1239: 115 MatrixTimesMatrix 1237 1238
+ Store 1236(r16) 1239
Return
FunctionEnd
diff --git a/Test/baseResults/hlsl.promote.atomic.frag.out b/Test/baseResults/hlsl.promote.atomic.frag.out
new file mode 100644
index 0000000..7fa0cad
--- /dev/null
+++ b/Test/baseResults/hlsl.promote.atomic.frag.out
@@ -0,0 +1,109 @@
+hlsl.promote.atomic.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:5 Function Definition: main( (temp 4-component vector of float)
+0:5 Function Parameters:
+0:? Sequence
+0:13 move second child to first child (temp int)
+0:13 'Orig' (temp int)
+0:13 Convert uint to int (temp int)
+0:13 imageAtomicAdd (temp uint)
+0:13 's_uintbuff' (layout(r32ui ) uniform uimageBuffer)
+0:13 'Loc' (temp int)
+0:13 Convert int to uint (temp uint)
+0:13 'Inc' (temp int)
+0:15 Sequence
+0:15 move second child to first child (temp 4-component vector of float)
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:15 Branch: Return
+0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? 's_uintbuff' (layout(r32ui ) uniform uimageBuffer)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:5 Function Definition: main( (temp 4-component vector of float)
+0:5 Function Parameters:
+0:? Sequence
+0:13 move second child to first child (temp int)
+0:13 'Orig' (temp int)
+0:13 Convert uint to int (temp int)
+0:13 imageAtomicAdd (temp uint)
+0:13 's_uintbuff' (layout(r32ui ) uniform uimageBuffer)
+0:13 'Loc' (temp int)
+0:13 Convert int to uint (temp uint)
+0:13 'Inc' (temp int)
+0:15 Sequence
+0:15 move second child to first child (temp 4-component vector of float)
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:15 Branch: Return
+0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? 's_uintbuff' (layout(r32ui ) uniform uimageBuffer)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 31
+
+ Capability Shader
+ Capability SampledBuffer
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 27
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 8 "Orig"
+ Name 12 "s_uintbuff"
+ Name 13 "Loc"
+ Name 15 "Inc"
+ Name 27 "@entryPointOutput"
+ Decorate 12(s_uintbuff) DescriptorSet 0
+ Decorate 27(@entryPointOutput) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: TypeInt 32 0
+ 10: TypeImage 9(int) Buffer nonsampled format:R32ui
+ 11: TypePointer UniformConstant 10
+ 12(s_uintbuff): 11(ptr) Variable UniformConstant
+ 18: 9(int) Constant 0
+ 19: TypePointer Image 9(int)
+ 21: 9(int) Constant 1
+ 24: TypeFloat 32
+ 25: TypeVector 24(float) 4
+ 26: TypePointer Output 25(fvec4)
+27(@entryPointOutput): 26(ptr) Variable Output
+ 28: 24(float) Constant 0
+ 29: 25(fvec4) ConstantComposite 28 28 28 28
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(Orig): 7(ptr) Variable Function
+ 13(Loc): 7(ptr) Variable Function
+ 15(Inc): 7(ptr) Variable Function
+ 14: 6(int) Load 13(Loc)
+ 16: 6(int) Load 15(Inc)
+ 17: 9(int) Bitcast 16
+ 20: 19(ptr) ImageTexelPointer 12(s_uintbuff) 14 18
+ 22: 9(int) AtomicIAdd 20 21 18 17
+ 23: 6(int) Bitcast 22
+ Store 8(Orig) 23
+ Store 27(@entryPointOutput) 29
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.reflection.binding.frag.out b/Test/baseResults/hlsl.reflection.binding.frag.out
index e26e0f6..dd19621 100644
--- a/Test/baseResults/hlsl.reflection.binding.frag.out
+++ b/Test/baseResults/hlsl.reflection.binding.frag.out
@@ -1,8 +1,4 @@
hlsl.reflection.binding.frag
-
-Linked fragment stage:
-
-
Uniform reflection:
t1: offset -1, type 8b5d, size 1, index -1, binding 15
s1: offset -1, type 0, size 1, index -1, binding 5
diff --git a/Test/baseResults/hlsl.reflection.vert.out b/Test/baseResults/hlsl.reflection.vert.out
index cbce25e..8ecfde6 100644
--- a/Test/baseResults/hlsl.reflection.vert.out
+++ b/Test/baseResults/hlsl.reflection.vert.out
@@ -1,8 +1,4 @@
hlsl.reflection.vert
-
-Linked vertex stage:
-
-
Uniform reflection:
anonMember3: offset 80, type 8b52, size 1, index 0, binding -1
s.a: offset 0, type 1404, size 1, index 1, binding -1
diff --git a/Test/baseResults/hlsl.structarray.flatten.frag.out b/Test/baseResults/hlsl.structarray.flatten.frag.out
new file mode 100644
index 0000000..6b22d66
--- /dev/null
+++ b/Test/baseResults/hlsl.structarray.flatten.frag.out
@@ -0,0 +1,197 @@
+hlsl.structarray.flatten.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:23 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void)
+0:23 Function Parameters:
+0:23 'ps_output' (out structure{temp 4-component vector of float color})
+0:? Sequence
+0:24 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:26 add (temp 4-component vector of float)
+0:25 add (temp 4-component vector of float)
+0:25 texture (temp 4-component vector of float)
+0:25 Construct combined texture-sampler (temp sampler1D)
+0:? 'tex' (uniform texture1D)
+0:? 'samp' (uniform sampler)
+0:25 Constant:
+0:25 0.500000
+0:26 texture (temp 4-component vector of float)
+0:26 Construct combined texture-sampler (temp sampler1D)
+0:? 'g_texdata_array[1].tex' (uniform texture1D)
+0:? 'g_texdata_array[1].samp' (uniform sampler)
+0:26 Constant:
+0:26 0.400000
+0:27 texture (temp 4-component vector of float)
+0:27 Construct combined texture-sampler (temp sampler1D)
+0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D)
+0:? 'g_texdata_array2[1].samp[0]' (uniform sampler)
+0:27 Constant:
+0:27 0.300000
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:? 'g_samp' (uniform sampler)
+0:? 'g_tex' (uniform texture1D)
+0:? 'g_texdata_array2[0].samp[0]' (uniform sampler)
+0:? 'g_texdata_array2[0].samp[1]' (uniform sampler)
+0:? 'g_texdata_array2[0].tex[0]' (uniform texture1D)
+0:? 'g_texdata_array2[0].tex[1]' (uniform texture1D)
+0:? 'g_texdata_array2[1].samp[0]' (uniform sampler)
+0:? 'g_texdata_array2[1].samp[1]' (uniform sampler)
+0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D)
+0:? 'g_texdata_array2[1].tex[1]' (uniform texture1D)
+0:? 'g_texdata_array2[2].samp[0]' (uniform sampler)
+0:? 'g_texdata_array2[2].samp[1]' (uniform sampler)
+0:? 'g_texdata_array2[2].tex[0]' (uniform texture1D)
+0:? 'g_texdata_array2[2].tex[1]' (uniform texture1D)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:23 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void)
+0:23 Function Parameters:
+0:23 'ps_output' (out structure{temp 4-component vector of float color})
+0:? Sequence
+0:24 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:26 add (temp 4-component vector of float)
+0:25 add (temp 4-component vector of float)
+0:25 texture (temp 4-component vector of float)
+0:25 Construct combined texture-sampler (temp sampler1D)
+0:? 'tex' (uniform texture1D)
+0:? 'samp' (uniform sampler)
+0:25 Constant:
+0:25 0.500000
+0:26 texture (temp 4-component vector of float)
+0:26 Construct combined texture-sampler (temp sampler1D)
+0:? 'g_texdata_array[1].tex' (uniform texture1D)
+0:? 'g_texdata_array[1].samp' (uniform sampler)
+0:26 Constant:
+0:26 0.400000
+0:27 texture (temp 4-component vector of float)
+0:27 Construct combined texture-sampler (temp sampler1D)
+0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D)
+0:? 'g_texdata_array2[1].samp[0]' (uniform sampler)
+0:27 Constant:
+0:27 0.300000
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:? 'g_samp' (uniform sampler)
+0:? 'g_tex' (uniform texture1D)
+0:? 'g_texdata_array2[0].samp[0]' (uniform sampler)
+0:? 'g_texdata_array2[0].samp[1]' (uniform sampler)
+0:? 'g_texdata_array2[0].tex[0]' (uniform texture1D)
+0:? 'g_texdata_array2[0].tex[1]' (uniform texture1D)
+0:? 'g_texdata_array2[1].samp[0]' (uniform sampler)
+0:? 'g_texdata_array2[1].samp[1]' (uniform sampler)
+0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D)
+0:? 'g_texdata_array2[1].tex[1]' (uniform texture1D)
+0:? 'g_texdata_array2[2].samp[0]' (uniform sampler)
+0:? 'g_texdata_array2[2].samp[1]' (uniform sampler)
+0:? 'g_texdata_array2[2].tex[0]' (uniform texture1D)
+0:? 'g_texdata_array2[2].tex[1]' (uniform texture1D)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 50
+
+ Capability Shader
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 9
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 9 "color"
+ Name 12 "tex"
+ Name 16 "samp"
+ Name 22 "g_texdata_array[1].tex"
+ Name 24 "g_texdata_array[1].samp"
+ Name 30 "g_texdata_array2[1].tex[0]"
+ Name 32 "g_texdata_array2[1].samp[0]"
+ Name 38 "g_samp"
+ Name 39 "g_tex"
+ Name 40 "g_texdata_array2[0].samp[0]"
+ Name 41 "g_texdata_array2[0].samp[1]"
+ Name 42 "g_texdata_array2[0].tex[0]"
+ Name 43 "g_texdata_array2[0].tex[1]"
+ Name 44 "g_texdata_array2[1].samp[1]"
+ Name 45 "g_texdata_array2[1].tex[1]"
+ Name 46 "g_texdata_array2[2].samp[0]"
+ Name 47 "g_texdata_array2[2].samp[1]"
+ Name 48 "g_texdata_array2[2].tex[0]"
+ Name 49 "g_texdata_array2[2].tex[1]"
+ Decorate 9(color) Location 0
+ Decorate 12(tex) DescriptorSet 0
+ Decorate 16(samp) DescriptorSet 0
+ Decorate 22(g_texdata_array[1].tex) DescriptorSet 0
+ Decorate 24(g_texdata_array[1].samp) DescriptorSet 0
+ Decorate 30(g_texdata_array2[1].tex[0]) DescriptorSet 0
+ Decorate 32(g_texdata_array2[1].samp[0]) DescriptorSet 0
+ Decorate 38(g_samp) DescriptorSet 0
+ Decorate 39(g_tex) DescriptorSet 0
+ Decorate 40(g_texdata_array2[0].samp[0]) DescriptorSet 0
+ Decorate 41(g_texdata_array2[0].samp[1]) DescriptorSet 0
+ Decorate 42(g_texdata_array2[0].tex[0]) DescriptorSet 0
+ Decorate 43(g_texdata_array2[0].tex[1]) DescriptorSet 0
+ Decorate 44(g_texdata_array2[1].samp[1]) DescriptorSet 0
+ Decorate 45(g_texdata_array2[1].tex[1]) DescriptorSet 0
+ Decorate 46(g_texdata_array2[2].samp[0]) DescriptorSet 0
+ Decorate 47(g_texdata_array2[2].samp[1]) DescriptorSet 0
+ Decorate 48(g_texdata_array2[2].tex[0]) DescriptorSet 0
+ Decorate 49(g_texdata_array2[2].tex[1]) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Output 7(fvec4)
+ 9(color): 8(ptr) Variable Output
+ 10: TypeImage 6(float) 1D sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(tex): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(samp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: 6(float) Constant 1056964608
+22(g_texdata_array[1].tex): 11(ptr) Variable UniformConstant
+24(g_texdata_array[1].samp): 15(ptr) Variable UniformConstant
+ 27: 6(float) Constant 1053609165
+30(g_texdata_array2[1].tex[0]): 11(ptr) Variable UniformConstant
+32(g_texdata_array2[1].samp[0]): 15(ptr) Variable UniformConstant
+ 35: 6(float) Constant 1050253722
+ 38(g_samp): 15(ptr) Variable UniformConstant
+ 39(g_tex): 11(ptr) Variable UniformConstant
+40(g_texdata_array2[0].samp[0]): 15(ptr) Variable UniformConstant
+41(g_texdata_array2[0].samp[1]): 15(ptr) Variable UniformConstant
+42(g_texdata_array2[0].tex[0]): 11(ptr) Variable UniformConstant
+43(g_texdata_array2[0].tex[1]): 11(ptr) Variable UniformConstant
+44(g_texdata_array2[1].samp[1]): 15(ptr) Variable UniformConstant
+45(g_texdata_array2[1].tex[1]): 11(ptr) Variable UniformConstant
+46(g_texdata_array2[2].samp[0]): 15(ptr) Variable UniformConstant
+47(g_texdata_array2[2].samp[1]): 15(ptr) Variable UniformConstant
+48(g_texdata_array2[2].tex[0]): 11(ptr) Variable UniformConstant
+49(g_texdata_array2[2].tex[1]): 11(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 13: 10 Load 12(tex)
+ 17: 14 Load 16(samp)
+ 19: 18 SampledImage 13 17
+ 21: 7(fvec4) ImageSampleImplicitLod 19 20
+ 23: 10 Load 22(g_texdata_array[1].tex)
+ 25: 14 Load 24(g_texdata_array[1].samp)
+ 26: 18 SampledImage 23 25
+ 28: 7(fvec4) ImageSampleImplicitLod 26 27
+ 29: 7(fvec4) FAdd 21 28
+ 31: 10 Load 30(g_texdata_array2[1].tex[0])
+ 33: 14 Load 32(g_texdata_array2[1].samp[0])
+ 34: 18 SampledImage 31 33
+ 36: 7(fvec4) ImageSampleImplicitLod 34 35
+ 37: 7(fvec4) FAdd 29 36
+ Store 9(color) 37
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.structarray.flatten.geom.out b/Test/baseResults/hlsl.structarray.flatten.geom.out
new file mode 100644
index 0000000..0994af8
--- /dev/null
+++ b/Test/baseResults/hlsl.structarray.flatten.geom.out
@@ -0,0 +1,100 @@
+hlsl.structarray.flatten.geom
+ERROR: 0:10: 'vin' : recursive type not yet supported in GS input
+ERROR: 1 compilation errors. No code generated.
+
+
+Shader version: 450
+invocations = -1
+max_vertices = 4
+input primitive = lines
+output primitive = triangle_strip
+ERROR: node is still EOpNull!
+0:10 Function Definition: main(struct-VertexData-vf4-vf4-vf21[2];struct-VertexData-vf4-vf4-vf21; (temp void)
+0:10 Function Parameters:
+0:10 'vin' (in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:10 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:? Sequence
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 color: direct index for structure (temp 4-component vector of float)
+0:13 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:13 Constant:
+0:13 1 (const int)
+0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float)
+0:14 move second child to first child (temp 2-component vector of float)
+0:14 uv: direct index for structure (temp 2-component vector of float)
+0:14 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:14 Constant:
+0:14 2 (const int)
+0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float)
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 position: direct index for structure (temp 4-component vector of float)
+0:15 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:15 Constant:
+0:15 0 (const int)
+0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float)
+0:16 Sequence
+0:16 move second child to first child (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:16 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:16 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:16 EmitVertex (temp void)
+0:? Linker Objects
+0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float)
+0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float)
+0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float)
+0:? 'vin[1].position' (layout(location=3 ) in 4-component vector of float)
+0:? 'vin[1].color' (layout(location=4 ) in 4-component vector of float)
+0:? 'vin[1].uv' (layout(location=5 ) in 2-component vector of float)
+0:? 'position' (layout(location=0 ) out 4-component vector of float)
+0:? 'color' (layout(location=1 ) out 4-component vector of float)
+0:? 'uv' (layout(location=2 ) out 2-component vector of float)
+
+
+Linked geometry stage:
+
+
+Shader version: 450
+invocations = 1
+max_vertices = 4
+input primitive = lines
+output primitive = triangle_strip
+ERROR: node is still EOpNull!
+0:10 Function Definition: main(struct-VertexData-vf4-vf4-vf21[2];struct-VertexData-vf4-vf4-vf21; (temp void)
+0:10 Function Parameters:
+0:10 'vin' (in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:10 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:? Sequence
+0:13 move second child to first child (temp 4-component vector of float)
+0:13 color: direct index for structure (temp 4-component vector of float)
+0:13 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:13 Constant:
+0:13 1 (const int)
+0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float)
+0:14 move second child to first child (temp 2-component vector of float)
+0:14 uv: direct index for structure (temp 2-component vector of float)
+0:14 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:14 Constant:
+0:14 2 (const int)
+0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float)
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 position: direct index for structure (temp 4-component vector of float)
+0:15 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:15 Constant:
+0:15 0 (const int)
+0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float)
+0:16 Sequence
+0:16 move second child to first child (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:16 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:16 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
+0:16 EmitVertex (temp void)
+0:? Linker Objects
+0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float)
+0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float)
+0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float)
+0:? 'vin[1].position' (layout(location=3 ) in 4-component vector of float)
+0:? 'vin[1].color' (layout(location=4 ) in 4-component vector of float)
+0:? 'vin[1].uv' (layout(location=5 ) in 2-component vector of float)
+0:? 'position' (layout(location=0 ) out 4-component vector of float)
+0:? 'color' (layout(location=1 ) out 4-component vector of float)
+0:? 'uv' (layout(location=2 ) out 2-component vector of float)
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/hlsl.structin.vert.out b/Test/baseResults/hlsl.structin.vert.out
index f3e56b6..a5feea8 100755
--- a/Test/baseResults/hlsl.structin.vert.out
+++ b/Test/baseResults/hlsl.structin.vert.out
@@ -16,14 +16,8 @@
0:11 add (temp 4-component vector of float)
0:11 add (temp 4-component vector of float)
0:11 add (temp 4-component vector of float)
-0:11 direct index (layout(location=1 ) temp 4-component vector of float)
-0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
-0:11 Constant:
-0:11 1 (const int)
-0:11 direct index (layout(location=1 ) temp 4-component vector of float)
-0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
-0:11 Constant:
-0:11 0 (const int)
+0:? 'm[1]' (layout(location=2 ) in 4-component vector of float)
+0:? 'm[0]' (layout(location=1 ) in 4-component vector of float)
0:11 Construct vec4 (temp 4-component vector of float)
0:11 Convert uint to float (temp float)
0:11 direct index (temp uint)
@@ -34,12 +28,24 @@
0:11 'e' (layout(location=5 ) in 4-component vector of float)
0:13 Sequence
0:13 Sequence
-0:13 move second child to first child (temp 2-element array of 4-component vector of float)
-0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float)
-0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
-0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
+0:13 move second child to first child (temp 4-component vector of float)
+0:? 'm[0]' (layout(location=0 ) out 4-component vector of float)
+0:13 direct index (temp 4-component vector of float)
+0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
+0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
+0:13 Constant:
+0:13 0 (const int)
0:13 Constant:
0:13 0 (const int)
+0:13 move second child to first child (temp 4-component vector of float)
+0:? 'm[1]' (layout(location=1 ) out 4-component vector of float)
+0:13 direct index (temp 4-component vector of float)
+0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
+0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
+0:13 Constant:
+0:13 0 (const int)
+0:13 Constant:
+0:13 1 (const int)
0:13 move second child to first child (temp 2-component vector of uint)
0:? 'coord' (layout(location=2 ) out 2-component vector of uint)
0:13 coord: direct index for structure (temp 2-component vector of uint)
@@ -54,14 +60,20 @@
0:13 2 (const int)
0:13 Branch: Return
0:? Linker Objects
-0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float)
+0:? 'm[0]' (layout(location=0 ) out 4-component vector of float)
+0:? 'm[1]' (layout(location=1 ) out 4-component vector of float)
0:? 'coord' (layout(location=2 ) out 2-component vector of uint)
0:? 'b' (layout(location=3 ) smooth out 4-component vector of float)
0:? 'd' (layout(location=0 ) in 4-component vector of float)
-0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
+0:? 'm[0]' (layout(location=1 ) in 4-component vector of float)
+0:? 'm[1]' (layout(location=2 ) in 4-component vector of float)
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
0:? 'b' (layout(location=4 ) in 4-component vector of float)
0:? 'e' (layout(location=5 ) in 4-component vector of float)
+0:? 'm[0]' (layout(location=0 ) out 4-component vector of float)
+0:? 'm[1]' (layout(location=1 ) out 4-component vector of float)
+0:? 'm[0]' (layout(location=1 ) in 4-component vector of float)
+0:? 'm[1]' (layout(location=2 ) in 4-component vector of float)
Linked vertex stage:
@@ -84,14 +96,8 @@
0:11 add (temp 4-component vector of float)
0:11 add (temp 4-component vector of float)
0:11 add (temp 4-component vector of float)
-0:11 direct index (layout(location=1 ) temp 4-component vector of float)
-0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
-0:11 Constant:
-0:11 1 (const int)
-0:11 direct index (layout(location=1 ) temp 4-component vector of float)
-0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
-0:11 Constant:
-0:11 0 (const int)
+0:? 'm[1]' (layout(location=2 ) in 4-component vector of float)
+0:? 'm[0]' (layout(location=1 ) in 4-component vector of float)
0:11 Construct vec4 (temp 4-component vector of float)
0:11 Convert uint to float (temp float)
0:11 direct index (temp uint)
@@ -102,12 +108,24 @@
0:11 'e' (layout(location=5 ) in 4-component vector of float)
0:13 Sequence
0:13 Sequence
-0:13 move second child to first child (temp 2-element array of 4-component vector of float)
-0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float)
-0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
-0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
+0:13 move second child to first child (temp 4-component vector of float)
+0:? 'm[0]' (layout(location=0 ) out 4-component vector of float)
+0:13 direct index (temp 4-component vector of float)
+0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
+0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
+0:13 Constant:
+0:13 0 (const int)
0:13 Constant:
0:13 0 (const int)
+0:13 move second child to first child (temp 4-component vector of float)
+0:? 'm[1]' (layout(location=1 ) out 4-component vector of float)
+0:13 direct index (temp 4-component vector of float)
+0:13 m: direct index for structure (temp 2-element array of 4-component vector of float)
+0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
+0:13 Constant:
+0:13 0 (const int)
+0:13 Constant:
+0:13 1 (const int)
0:13 move second child to first child (temp 2-component vector of uint)
0:? 'coord' (layout(location=2 ) out 2-component vector of uint)
0:13 coord: direct index for structure (temp 2-component vector of uint)
@@ -122,45 +140,55 @@
0:13 2 (const int)
0:13 Branch: Return
0:? Linker Objects
-0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float)
+0:? 'm[0]' (layout(location=0 ) out 4-component vector of float)
+0:? 'm[1]' (layout(location=1 ) out 4-component vector of float)
0:? 'coord' (layout(location=2 ) out 2-component vector of uint)
0:? 'b' (layout(location=3 ) smooth out 4-component vector of float)
0:? 'd' (layout(location=0 ) in 4-component vector of float)
-0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
+0:? 'm[0]' (layout(location=1 ) in 4-component vector of float)
+0:? 'm[1]' (layout(location=2 ) in 4-component vector of float)
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
0:? 'b' (layout(location=4 ) in 4-component vector of float)
0:? 'e' (layout(location=5 ) in 4-component vector of float)
+0:? 'm[0]' (layout(location=0 ) out 4-component vector of float)
+0:? 'm[1]' (layout(location=1 ) out 4-component vector of float)
+0:? 'm[0]' (layout(location=1 ) in 4-component vector of float)
+0:? 'm[1]' (layout(location=2 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 60
+// Id's are bound by 59
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Vertex 4 "main" 18 28 36 39 45 50 55 59
+ EntryPoint Vertex 4 "main" 18 20 24 32 35 41 45 50 54 58
Name 4 "main"
Name 12 "VI"
MemberName 12(VI) 0 "m"
MemberName 12(VI) 1 "coord"
MemberName 12(VI) 2 "b"
Name 14 "local"
- Name 18 "m"
- Name 28 "coord"
- Name 36 "d"
- Name 39 "e"
- Name 45 "m"
+ Name 18 "m[1]"
+ Name 20 "m[0]"
+ Name 24 "coord"
+ Name 32 "d"
+ Name 35 "e"
+ Name 41 "m[0]"
+ Name 45 "m[1]"
Name 50 "coord"
- Name 55 "b"
- Name 59 "b"
- Decorate 18(m) Location 1
- Decorate 28(coord) Location 3
- Decorate 36(d) Location 0
- Decorate 39(e) Location 5
- Decorate 45(m) Location 0
+ Name 54 "b"
+ Name 58 "b"
+ Decorate 18(m[1]) Location 2
+ Decorate 20(m[0]) Location 1
+ Decorate 24(coord) Location 3
+ Decorate 32(d) Location 0
+ Decorate 35(e) Location 5
+ Decorate 41(m[0]) Location 0
+ Decorate 45(m[1]) Location 1
Decorate 50(coord) Location 2
- Decorate 55(b) Location 3
- Decorate 59(b) Location 4
+ Decorate 54(b) Location 3
+ Decorate 58(b) Location 4
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -173,54 +201,54 @@
13: TypePointer Function 12(VI)
15: TypeInt 32 1
16: 15(int) Constant 2
- 17: TypePointer Input 10
- 18(m): 17(ptr) Variable Input
- 19: 15(int) Constant 1
- 20: TypePointer Input 7(fvec4)
- 23: 15(int) Constant 0
- 27: TypePointer Input 11(ivec2)
- 28(coord): 27(ptr) Variable Input
- 29: 8(int) Constant 0
- 30: TypePointer Input 8(int)
- 36(d): 20(ptr) Variable Input
- 39(e): 20(ptr) Variable Input
- 42: TypePointer Function 7(fvec4)
- 44: TypePointer Output 10
- 45(m): 44(ptr) Variable Output
- 46: TypePointer Function 10
+ 17: TypePointer Input 7(fvec4)
+ 18(m[1]): 17(ptr) Variable Input
+ 20(m[0]): 17(ptr) Variable Input
+ 23: TypePointer Input 11(ivec2)
+ 24(coord): 23(ptr) Variable Input
+ 25: 8(int) Constant 0
+ 26: TypePointer Input 8(int)
+ 32(d): 17(ptr) Variable Input
+ 35(e): 17(ptr) Variable Input
+ 38: TypePointer Function 7(fvec4)
+ 40: TypePointer Output 7(fvec4)
+ 41(m[0]): 40(ptr) Variable Output
+ 42: 15(int) Constant 0
+ 45(m[1]): 40(ptr) Variable Output
+ 46: 15(int) Constant 1
49: TypePointer Output 11(ivec2)
50(coord): 49(ptr) Variable Output
51: TypePointer Function 11(ivec2)
- 54: TypePointer Output 7(fvec4)
- 55(b): 54(ptr) Variable Output
- 59(b): 20(ptr) Variable Input
+ 54(b): 40(ptr) Variable Output
+ 58(b): 17(ptr) Variable Input
4(main): 2 Function None 3
5: Label
14(local): 13(ptr) Variable Function
- 21: 20(ptr) AccessChain 18(m) 19
- 22: 7(fvec4) Load 21
- 24: 20(ptr) AccessChain 18(m) 23
- 25: 7(fvec4) Load 24
- 26: 7(fvec4) FAdd 22 25
- 31: 30(ptr) AccessChain 28(coord) 29
- 32: 8(int) Load 31
- 33: 6(float) ConvertUToF 32
- 34: 7(fvec4) CompositeConstruct 33 33 33 33
- 35: 7(fvec4) FAdd 26 34
- 37: 7(fvec4) Load 36(d)
- 38: 7(fvec4) FAdd 35 37
- 40: 7(fvec4) Load 39(e)
- 41: 7(fvec4) FAdd 38 40
- 43: 42(ptr) AccessChain 14(local) 16
- Store 43 41
- 47: 46(ptr) AccessChain 14(local) 23
- 48: 10 Load 47
- Store 45(m) 48
- 52: 51(ptr) AccessChain 14(local) 19
+ 19: 7(fvec4) Load 18(m[1])
+ 21: 7(fvec4) Load 20(m[0])
+ 22: 7(fvec4) FAdd 19 21
+ 27: 26(ptr) AccessChain 24(coord) 25
+ 28: 8(int) Load 27
+ 29: 6(float) ConvertUToF 28
+ 30: 7(fvec4) CompositeConstruct 29 29 29 29
+ 31: 7(fvec4) FAdd 22 30
+ 33: 7(fvec4) Load 32(d)
+ 34: 7(fvec4) FAdd 31 33
+ 36: 7(fvec4) Load 35(e)
+ 37: 7(fvec4) FAdd 34 36
+ 39: 38(ptr) AccessChain 14(local) 16
+ Store 39 37
+ 43: 38(ptr) AccessChain 14(local) 42 42
+ 44: 7(fvec4) Load 43
+ Store 41(m[0]) 44
+ 47: 38(ptr) AccessChain 14(local) 42 46
+ 48: 7(fvec4) Load 47
+ Store 45(m[1]) 48
+ 52: 51(ptr) AccessChain 14(local) 46
53: 11(ivec2) Load 52
Store 50(coord) 53
- 56: 42(ptr) AccessChain 14(local) 16
- 57: 7(fvec4) Load 56
- Store 55(b) 57
+ 55: 38(ptr) AccessChain 14(local) 16
+ 56: 7(fvec4) Load 55
+ Store 54(b) 56
Return
FunctionEnd
diff --git a/Test/baseResults/lineContinuation.vert.out b/Test/baseResults/lineContinuation.vert.out
index 78e5c07..d91ffa3 100644
--- a/Test/baseResults/lineContinuation.vert.out
+++ b/Test/baseResults/lineContinuation.vert.out
@@ -176,16 +176,6 @@
0:20 'gl_Position' (gl_Position highp 4-component vector of float Position)
0:20 Construct vec4 (temp highp 4-component vector of float)
0:20 'foo' (global highp float)
-0:22 Function Definition: foo2(vf4; (global highp 4-component vector of float)
-0:22 Function Parameters:
-0:22 'a' (in highp 4-component vector of float)
-0:24 Sequence
-0:24 Sequence
-0:24 move second child to first child (temp highp 4-component vector of float)
-0:24 'b' (temp highp 4-component vector of float)
-0:24 'a' (in highp 4-component vector of float)
-0:25 Branch: Return with expression
-0:25 'b' (temp highp 4-component vector of float)
0:47 Sequence
0:47 move second child to first child (temp highp int)
0:47 'q1' (global highp int)
@@ -256,25 +246,6 @@
0:123 'bar107' (global highp int)
0:128 Constant:
0:128 5 (const int)
-0:131 Function Definition: foo203209409( (global void)
-0:131 Function Parameters:
-0:134 Sequence
-0:134 add second child into first child (temp highp int)
-0:133 'bar107' (global highp int)
-0:134 Constant:
-0:134 37 (const int)
-0:135 multiply second child into first child (temp highp int)
-0:135 'bar107' (global highp int)
-0:136 Constant:
-0:136 38 (const int)
-0:137 divide second child into first child (temp highp int)
-0:137 'bar107' (global highp int)
-0:138 Constant:
-0:138 39 (const int)
-0:139 add (temp highp int)
-0:139 'bar107' (global highp int)
-0:140 Constant:
-0:140 41 (const int)
0:? Linker Objects
0:? 'foo' (global highp float)
0:? 'goodDecl' (global highp int)
diff --git a/Test/baseResults/lineContinuation100.vert.out b/Test/baseResults/lineContinuation100.vert.out
index 003637d..1fb309b 100644
--- a/Test/baseResults/lineContinuation100.vert.out
+++ b/Test/baseResults/lineContinuation100.vert.out
@@ -90,16 +90,6 @@
0:20 'gl_Position' (gl_Position highp 4-component vector of float Position)
0:20 Construct vec4 (temp highp 4-component vector of float)
0:20 'foo' (global highp float)
-0:22 Function Definition: foo2(vf4; (global highp 4-component vector of float)
-0:22 Function Parameters:
-0:22 'a' (in highp 4-component vector of float)
-0:24 Sequence
-0:24 Sequence
-0:24 move second child to first child (temp highp 4-component vector of float)
-0:24 'b' (temp highp 4-component vector of float)
-0:24 'a' (in highp 4-component vector of float)
-0:25 Branch: Return with expression
-0:25 'b' (temp highp 4-component vector of float)
0:45 Sequence
0:45 move second child to first child (temp highp int)
0:45 'q1' (global highp int)
diff --git a/Test/baseResults/mains1.frag.out b/Test/baseResults/mains1.frag.out
index 0b5c2b7..95e98e4 100644
--- a/Test/baseResults/mains1.frag.out
+++ b/Test/baseResults/mains1.frag.out
@@ -48,6 +48,7 @@
Linked fragment stage:
+ERROR: Linking fragment stage: can't handle multiple entry points per stage
ERROR: Linking fragment stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
main(
@@ -57,10 +58,6 @@
input primitive = none
output primitive = points
ERROR: node is still EOpNull!
-0:3 Function Definition: foo( (global void)
-0:3 Function Parameters:
-0:3 Function Definition: bar( (global void)
-0:3 Function Parameters:
0:? Linker Objects
Shader version: 110
0:? Sequence
diff --git a/Test/baseResults/missingBodies.vert.out b/Test/baseResults/missingBodies.vert.out
new file mode 100755
index 0000000..6d77e09
--- /dev/null
+++ b/Test/baseResults/missingBodies.vert.out
@@ -0,0 +1,98 @@
+missingBodies.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+0:? Sequence
+0:4 Function Definition: foo( (global void)
+0:4 Function Parameters:
+0:4 Sequence
+0:4 Function Call: bar( (global void)
+0:8 Function Definition: C(i1;i1; (global void)
+0:8 Function Parameters:
+0:8 '' (in int)
+0:8 '' (in int)
+0:10 Function Definition: A( (global void)
+0:10 Function Parameters:
+0:10 Sequence
+0:10 Function Call: B( (global void)
+0:10 Function Call: C(i1; (global void)
+0:10 Constant:
+0:10 1 (const int)
+0:10 Function Call: C(b1; (global void)
+0:10 Constant:
+0:10 true (const bool)
+0:10 Function Call: C(i1;i1; (global void)
+0:10 Constant:
+0:10 1 (const int)
+0:10 Constant:
+0:10 2 (const int)
+0:12 Function Definition: main( (global void)
+0:12 Function Parameters:
+0:14 Sequence
+0:14 Function Call: foo( (global void)
+0:15 Function Call: C(b1; (global void)
+0:15 Constant:
+0:15 true (const bool)
+0:20 Sequence
+0:20 move second child to first child (temp int)
+0:20 'f1' (global int)
+0:20 Function Call: ret1( (global int)
+0:22 Function Definition: ret2( (global int)
+0:22 Function Parameters:
+0:22 Sequence
+0:22 Branch: Return with expression
+0:22 Constant:
+0:22 3 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp int)
+0:24 'f2' (global int)
+0:24 Function Call: ret2( (global int)
+0:? Linker Objects
+0:? 'f1' (global int)
+0:? 'f2' (global int)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: No function definition (body) found:
+ ret1(
+ERROR: Linking vertex stage: No function definition (body) found:
+ C(b1;
+ERROR: Linking vertex stage: No function definition (body) found:
+ bar(
+
+Shader version: 450
+0:? Sequence
+0:4 Function Definition: foo( (global void)
+0:4 Function Parameters:
+0:4 Sequence
+0:4 Function Call: bar( (global void)
+0:12 Function Definition: main( (global void)
+0:12 Function Parameters:
+0:14 Sequence
+0:14 Function Call: foo( (global void)
+0:15 Function Call: C(b1; (global void)
+0:15 Constant:
+0:15 true (const bool)
+0:20 Sequence
+0:20 move second child to first child (temp int)
+0:20 'f1' (global int)
+0:20 Function Call: ret1( (global int)
+0:22 Function Definition: ret2( (global int)
+0:22 Function Parameters:
+0:22 Sequence
+0:22 Branch: Return with expression
+0:22 Constant:
+0:22 3 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp int)
+0:24 'f2' (global int)
+0:24 Function Call: ret2( (global int)
+0:? Linker Objects
+0:? 'f1' (global int)
+0:? 'f2' (global int)
+0:? 'gl_VertexID' (gl_VertexId int VertexId)
+0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/noMain.vert.out b/Test/baseResults/noMain.vert.out
index 80a3225..60ac3a3 100644
--- a/Test/baseResults/noMain.vert.out
+++ b/Test/baseResults/noMain.vert.out
@@ -30,8 +30,6 @@
Shader version: 300
0:? Sequence
-0:3 Function Definition: foo( (global void)
-0:3 Function Parameters:
0:? Linker Objects
0:? 'gl_VertexID' (gl_VertexId highp int VertexId)
0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId)
diff --git a/Test/baseResults/precise.tesc.out b/Test/baseResults/precise.tesc.out
index 962a3c9..17c7d53 100644
--- a/Test/baseResults/precise.tesc.out
+++ b/Test/baseResults/precise.tesc.out
@@ -392,376 +392,6 @@
Requested GL_EXT_tessellation_shader
vertices = -1
0:? Sequence
-0:5 Function Definition: minimal( (global float)
-0:5 Function Parameters:
-0:6 Sequence
-0:6 Sequence
-0:6 move second child to first child (temp float)
-0:6 'result' (noContraction temp float)
-0:6 Constant:
-0:6 5.000000
-0:7 Sequence
-0:7 move second child to first child (temp float)
-0:7 'a' (noContraction temp float)
-0:7 Constant:
-0:7 10.000000
-0:8 Sequence
-0:8 move second child to first child (temp float)
-0:8 'b' (noContraction temp float)
-0:8 Constant:
-0:8 20.000000
-0:9 Sequence
-0:9 move second child to first child (temp float)
-0:9 'c' (noContraction temp float)
-0:9 Constant:
-0:9 30.000000
-0:10 Sequence
-0:10 move second child to first child (temp float)
-0:10 'd' (noContraction temp float)
-0:10 Constant:
-0:10 40.000000
-0:11 move second child to first child (temp float)
-0:11 'result' (noContraction temp float)
-0:11 add (noContraction temp float)
-0:11 component-wise multiply (noContraction temp float)
-0:11 'a' (noContraction temp float)
-0:11 'b' (noContraction temp float)
-0:11 component-wise multiply (noContraction temp float)
-0:11 'c' (noContraction temp float)
-0:11 'd' (noContraction temp float)
-0:12 Branch: Return with expression
-0:12 'result' (noContraction temp float)
-0:15 Function Definition: continuous_assignment( (global void)
-0:15 Function Parameters:
-0:16 Sequence
-0:16 Sequence
-0:16 move second child to first child (temp float)
-0:16 'result' (noContraction temp float)
-0:16 Constant:
-0:16 5.000000
-0:17 Sequence
-0:17 move second child to first child (temp float)
-0:17 'a' (noContraction temp float)
-0:17 Constant:
-0:17 10.000000
-0:18 Sequence
-0:18 move second child to first child (temp float)
-0:18 'b' (noContraction temp float)
-0:18 Constant:
-0:18 20.000000
-0:19 move second child to first child (temp float)
-0:19 'result' (noContraction temp float)
-0:19 move second child to first child (temp float)
-0:19 'a' (noContraction temp float)
-0:19 add (noContraction temp float)
-0:19 'b' (noContraction temp float)
-0:19 Constant:
-0:19 4.000000
-0:22 Function Definition: convert( (global void)
-0:22 Function Parameters:
-0:? Sequence
-0:24 Sequence
-0:24 move second child to first child (temp float)
-0:24 'a' (noContraction temp float)
-0:24 Constant:
-0:24 10.000000
-0:25 Sequence
-0:25 move second child to first child (temp float)
-0:25 'b' (noContraction temp float)
-0:25 Constant:
-0:25 20.000000
-0:26 move second child to first child (temp float)
-0:26 'b' (noContraction temp float)
-0:26 add (noContraction temp float)
-0:26 'a' (noContraction temp float)
-0:26 'b' (noContraction temp float)
-0:27 move second child to first child (temp double)
-0:27 'result' (noContraction temp double)
-0:27 Convert float to double (temp double)
-0:27 'b' (noContraction temp float)
-0:30 Function Definition: loop_for( (global float)
-0:30 Function Parameters:
-0:31 Sequence
-0:31 Sequence
-0:31 move second child to first child (temp float)
-0:31 'r1' (noContraction temp float)
-0:31 Constant:
-0:31 5.000000
-0:32 Sequence
-0:32 move second child to first child (temp float)
-0:32 'r2' (noContraction temp float)
-0:32 Constant:
-0:32 10.000000
-0:33 Sequence
-0:33 move second child to first child (temp int)
-0:33 'a' (temp int)
-0:33 Constant:
-0:33 10 (const int)
-0:34 Sequence
-0:34 move second child to first child (temp int)
-0:34 'b' (noContraction temp int)
-0:34 Constant:
-0:34 20 (const int)
-0:35 Sequence
-0:35 move second child to first child (temp int)
-0:35 'c' (noContraction temp int)
-0:35 Constant:
-0:35 30 (const int)
-0:36 Sequence
-0:36 Sequence
-0:36 move second child to first child (temp int)
-0:36 'i' (noContraction temp int)
-0:36 Constant:
-0:36 0 (const int)
-0:36 Loop with condition tested first
-0:36 Loop Condition
-0:36 Compare Less Than (temp bool)
-0:36 'i' (temp int)
-0:36 'a' (temp int)
-0:36 Loop Body
-0:37 Sequence
-0:37 add second child into first child (noContraction temp float)
-0:37 'r1' (noContraction temp float)
-0:37 add (noContraction temp float)
-0:37 add (noContraction temp float)
-0:37 Constant:
-0:37 3.120000
-0:37 Convert int to float (temp float)
-0:37 'b' (noContraction temp int)
-0:37 Convert int to float (temp float)
-0:37 'i' (noContraction temp int)
-0:38 add second child into first child (noContraction temp int)
-0:38 'c' (noContraction temp int)
-0:38 Constant:
-0:38 1 (const int)
-0:36 Loop Terminal Expression
-0:36 Post-Increment (noContraction temp int)
-0:36 'i' (noContraction temp int)
-0:40 add second child into first child (temp int)
-0:40 'a' (temp int)
-0:40 Constant:
-0:40 1 (const int)
-0:41 move second child to first child (temp float)
-0:41 'r2' (noContraction temp float)
-0:41 Convert int to float (temp float)
-0:41 'c' (noContraction temp int)
-0:42 Branch: Return with expression
-0:42 Construct float (temp float)
-0:42 add (temp float)
-0:42 'r1' (noContraction temp float)
-0:42 'r2' (noContraction temp float)
-0:45 Function Definition: loop_array( (global void)
-0:45 Function Parameters:
-0:? Sequence
-0:48 Sequence
-0:48 move second child to first child (temp int)
-0:48 'x' (noContraction temp int)
-0:48 Constant:
-0:48 22 (const int)
-0:49 Sequence
-0:49 move second child to first child (temp int)
-0:49 'y' (noContraction temp int)
-0:49 Constant:
-0:49 33 (const int)
-0:52 add second child into first child (noContraction temp float)
-0:52 'result' (noContraction temp float)
-0:52 add (noContraction temp float)
-0:52 Convert int to float (temp float)
-0:52 'x' (noContraction temp int)
-0:52 Convert int to float (temp float)
-0:52 'y' (noContraction temp int)
-0:54 Sequence
-0:54 Sequence
-0:54 move second child to first child (temp int)
-0:54 'i' (temp int)
-0:54 Constant:
-0:54 0 (const int)
-0:54 Loop with condition tested first
-0:54 Loop Condition
-0:54 Compare Less Than (temp bool)
-0:54 'i' (temp int)
-0:54 Constant:
-0:54 3 (const int)
-0:54 Loop Body
-0:56 Sequence
-0:56 add second child into first child (noContraction temp float)
-0:56 'result' (noContraction temp float)
-0:56 add (noContraction temp float)
-0:56 indirect index (noContraction temp float)
-0:56 'a0' (temp 3-element array of float)
-0:56 'i' (temp int)
-0:56 Constant:
-0:56 2.000000
-0:58 move second child to first child (temp float)
-0:58 indirect index (noContraction temp float)
-0:58 'a0' (noContraction temp 3-element array of float)
-0:58 'i' (temp int)
-0:58 subtract (noContraction temp float)
-0:58 Constant:
-0:58 3.000000
-0:58 Post-Increment (noContraction temp float)
-0:58 'result' (noContraction temp float)
-0:54 Loop Terminal Expression
-0:54 Pre-Increment (temp int)
-0:54 'i' (temp int)
-0:62 Function Definition: loop_while( (global void)
-0:62 Function Parameters:
-0:63 Sequence
-0:63 Sequence
-0:63 move second child to first child (temp float)
-0:63 'result' (noContraction temp float)
-0:63 Constant:
-0:63 5.000000
-0:64 Sequence
-0:64 move second child to first child (temp int)
-0:64 'a' (noContraction temp int)
-0:64 Constant:
-0:64 10 (const int)
-0:65 Sequence
-0:65 move second child to first child (temp int)
-0:65 'b' (noContraction temp int)
-0:65 Constant:
-0:65 20 (const int)
-0:66 Loop with condition tested first
-0:66 Loop Condition
-0:66 Compare Less Than (temp bool)
-0:66 'result' (noContraction temp float)
-0:66 Constant:
-0:66 10.000000
-0:66 Loop Body
-0:67 Sequence
-0:67 add second child into first child (noContraction temp float)
-0:67 'result' (noContraction temp float)
-0:67 add (noContraction temp float)
-0:67 Constant:
-0:67 3.120000
-0:67 Convert int to float (temp float)
-0:67 'b' (noContraction temp int)
-0:69 move second child to first child (temp float)
-0:69 'result' (noContraction temp float)
-0:69 Convert int to float (temp float)
-0:69 add (temp int)
-0:69 add (temp int)
-0:69 'a' (noContraction temp int)
-0:69 'b' (noContraction temp int)
-0:69 Constant:
-0:69 5 (const int)
-0:70 move second child to first child (temp float)
-0:70 'result' (noContraction temp float)
-0:70 Constant:
-0:70 11.100000
-0:73 Function Definition: fma_not_decorated( (global float)
-0:73 Function Parameters:
-0:? Sequence
-0:75 Sequence
-0:75 move second child to first child (temp float)
-0:75 'a' (noContraction temp float)
-0:75 Constant:
-0:75 1.000000
-0:76 Sequence
-0:76 move second child to first child (temp float)
-0:76 'b' (noContraction temp float)
-0:76 Constant:
-0:76 2.000000
-0:77 Sequence
-0:77 move second child to first child (temp float)
-0:77 'c' (noContraction temp float)
-0:77 Constant:
-0:77 3.000000
-0:78 move second child to first child (temp float)
-0:78 'b' (noContraction temp float)
-0:78 add (noContraction temp float)
-0:78 'b' (noContraction temp float)
-0:78 'c' (noContraction temp float)
-0:79 move second child to first child (temp float)
-0:79 'result' (noContraction temp float)
-0:79 fma (global float)
-0:79 'a' (noContraction temp float)
-0:79 'b' (noContraction temp float)
-0:79 'c' (noContraction temp float)
-0:80 Branch: Return with expression
-0:80 'result' (noContraction temp float)
-0:83 Function Definition: precise_return_exp_func( (noContraction temp float)
-0:83 Function Parameters:
-0:84 Sequence
-0:84 Sequence
-0:84 move second child to first child (temp float)
-0:84 'a' (noContraction temp float)
-0:84 Constant:
-0:84 1.000000
-0:85 Sequence
-0:85 move second child to first child (temp float)
-0:85 'b' (noContraction temp float)
-0:85 Constant:
-0:85 2.000000
-0:86 Branch: Return with expression
-0:86 add (noContraction temp float)
-0:86 'a' (noContraction temp float)
-0:86 'b' (noContraction temp float)
-0:89 Function Definition: precise_return_val_func( (noContraction temp float)
-0:89 Function Parameters:
-0:90 Sequence
-0:90 Sequence
-0:90 move second child to first child (temp float)
-0:90 'a' (noContraction temp float)
-0:90 Constant:
-0:90 1.000000
-0:91 Sequence
-0:91 move second child to first child (temp float)
-0:91 'b' (noContraction temp float)
-0:91 Constant:
-0:91 2.000000
-0:92 Sequence
-0:92 move second child to first child (temp float)
-0:92 'result' (noContraction temp float)
-0:92 add (noContraction temp float)
-0:92 'a' (noContraction temp float)
-0:92 'b' (noContraction temp float)
-0:93 Branch: Return with expression
-0:93 'result' (noContraction temp float)
-0:96 Function Definition: precise_func_parameter(f1;f1; (global float)
-0:96 Function Parameters:
-0:96 'b' (in float)
-0:96 'c' (noContraction out float)
-0:97 Sequence
-0:97 Sequence
-0:97 move second child to first child (temp float)
-0:97 'a' (noContraction temp float)
-0:97 Constant:
-0:97 0.500000
-0:98 move second child to first child (temp float)
-0:98 'c' (noContraction out float)
-0:98 add (noContraction temp float)
-0:98 'a' (noContraction temp float)
-0:98 'b' (noContraction in float)
-0:99 Branch: Return with expression
-0:99 subtract (temp float)
-0:99 'a' (temp float)
-0:99 'b' (in float)
-0:102 Function Definition: matrix(mf23;mf32; (global 3X3 matrix of float)
-0:102 Function Parameters:
-0:102 'a' (in 2X3 matrix of float)
-0:102 'b' (in 3X2 matrix of float)
-0:103 Sequence
-0:103 Sequence
-0:103 move second child to first child (temp 2X3 matrix of float)
-0:103 'c' (noContraction temp 2X3 matrix of float)
-0:103 Constant:
-0:103 1.000000
-0:103 2.000000
-0:103 3.000000
-0:103 4.000000
-0:103 5.000000
-0:103 6.000000
-0:105 move second child to first child (temp 3X3 matrix of float)
-0:105 'result' (noContraction temp 3X3 matrix of float)
-0:105 matrix-multiply (noContraction temp 3X3 matrix of float)
-0:105 add (noContraction temp 2X3 matrix of float)
-0:105 'a' (noContraction in 2X3 matrix of float)
-0:105 'c' (noContraction temp 2X3 matrix of float)
-0:105 'b' (noContraction in 3X2 matrix of float)
-0:106 Branch: Return with expression
-0:106 'result' (noContraction temp 3X3 matrix of float)
0:109 Function Definition: main( (global void)
0:109 Function Parameters:
0:? Linker Objects
diff --git a/Test/baseResults/precise_struct_block.vert.out b/Test/baseResults/precise_struct_block.vert.out
index 9d726d6..e40fd0c 100644
--- a/Test/baseResults/precise_struct_block.vert.out
+++ b/Test/baseResults/precise_struct_block.vert.out
@@ -526,515 +526,6 @@
Shader version: 450
0:? Sequence
-0:11 Function Definition: struct_member( (global float)
-0:11 Function Parameters:
-0:12 Sequence
-0:12 Sequence
-0:12 move second child to first child (temp float)
-0:12 'a' (noContraction temp float)
-0:12 Constant:
-0:12 1.000000
-0:13 Sequence
-0:13 move second child to first child (temp float)
-0:13 'b' (temp float)
-0:13 Constant:
-0:13 2.000000
-0:14 Sequence
-0:14 move second child to first child (temp float)
-0:14 'c' (temp float)
-0:14 Constant:
-0:14 3.000000
-0:15 Sequence
-0:15 move second child to first child (temp float)
-0:15 'd' (temp float)
-0:15 Constant:
-0:15 4.000000
-0:21 move second child to first child (temp float)
-0:21 f1: direct index for structure (noContraction global float)
-0:21 'S2' (temp structure{global float f1, global float f2})
-0:21 Constant:
-0:21 0 (const int)
-0:21 add (noContraction temp float)
-0:21 'a' (noContraction temp float)
-0:21 Constant:
-0:21 0.200000
-0:22 move second child to first child (temp float)
-0:22 f2: direct index for structure (global float)
-0:22 'S2' (temp structure{global float f1, global float f2})
-0:22 Constant:
-0:22 1 (const int)
-0:22 add (temp float)
-0:22 'b' (temp float)
-0:22 Constant:
-0:22 0.200000
-0:23 move second child to first child (temp float)
-0:23 f1: direct index for structure (global float)
-0:23 'S3' (temp structure{global float f1, global float f2})
-0:23 Constant:
-0:23 0 (const int)
-0:23 add (temp float)
-0:23 'a' (temp float)
-0:23 'b' (temp float)
-0:24 move second child to first child (temp structure{global float f1, global float f2})
-0:24 'S' (temp structure{global float f1, global float f2})
-0:24 'S2' (temp structure{global float f1, global float f2})
-0:25 move second child to first child (temp float)
-0:25 'result' (noContraction temp float)
-0:25 add (noContraction temp float)
-0:25 f1: direct index for structure (noContraction global float)
-0:25 'S' (temp structure{global float f1, global float f2})
-0:25 Constant:
-0:25 0 (const int)
-0:25 Constant:
-0:25 0.100000
-0:27 Branch: Return with expression
-0:27 'result' (noContraction temp float)
-0:30 Function Definition: complex_array_struct( (global float)
-0:30 Function Parameters:
-0:? Sequence
-0:43 Sequence
-0:43 Sequence
-0:43 move second child to first child (temp int)
-0:43 'i' (noContraction temp int)
-0:43 Constant:
-0:43 0 (const int)
-0:43 Loop with condition tested first
-0:43 Loop Condition
-0:43 Compare Less Than (temp bool)
-0:43 'i' (temp int)
-0:43 Constant:
-0:43 10 (const int)
-0:43 Loop Body
-0:44 Sequence
-0:44 move second child to first child (temp float)
-0:44 f: direct index for structure (temp float)
-0:44 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:44 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:44 'i' (temp int)
-0:44 Constant:
-0:44 0 (const int)
-0:44 divide (temp float)
-0:44 Convert int to float (temp float)
-0:44 'i' (temp int)
-0:44 Constant:
-0:44 3.000000
-0:45 move second child to first child (temp 4-component vector of float)
-0:45 v: direct index for structure (noContraction temp 4-component vector of float)
-0:45 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:45 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:45 'i' (temp int)
-0:45 Constant:
-0:45 2 (const int)
-0:45 Construct vec4 (temp 4-component vector of float)
-0:45 component-wise multiply (noContraction temp float)
-0:45 Convert int to float (temp float)
-0:45 'i' (noContraction temp int)
-0:45 Constant:
-0:45 1.500000
-0:46 move second child to first child (temp int)
-0:46 p: direct index for structure (temp int)
-0:46 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:46 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:46 'i' (temp int)
-0:46 Constant:
-0:46 3 (const int)
-0:46 add (temp int)
-0:46 'i' (temp int)
-0:46 Constant:
-0:46 1 (const int)
-0:47 Sequence
-0:47 Sequence
-0:47 move second child to first child (temp int)
-0:47 'j' (temp int)
-0:47 Constant:
-0:47 0 (const int)
-0:47 Loop with condition tested first
-0:47 Loop Condition
-0:47 Compare Less Than (temp bool)
-0:47 'j' (temp int)
-0:47 Constant:
-0:47 5 (const int)
-0:47 Loop Body
-0:48 Sequence
-0:48 Sequence
-0:48 Sequence
-0:48 move second child to first child (temp int)
-0:48 'k' (temp int)
-0:48 Constant:
-0:48 0 (const int)
-0:48 Loop with condition tested first
-0:48 Loop Condition
-0:48 Compare Less Than (temp bool)
-0:48 'k' (temp int)
-0:48 Constant:
-0:48 3 (const int)
-0:48 Loop Body
-0:49 Sequence
-0:49 move second child to first child (temp float)
-0:49 indirect index (temp float)
-0:49 t1_array: direct index for structure (temp 3-element array of float)
-0:49 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:49 t1a: direct index for structure (temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:49 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
-0:49 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:49 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:49 'i' (temp int)
-0:49 Constant:
-0:49 1 (const int)
-0:49 Constant:
-0:49 0 (const int)
-0:49 'j' (temp int)
-0:49 Constant:
-0:49 0 (const int)
-0:49 'k' (temp int)
-0:49 Convert int to float (temp float)
-0:49 add (temp int)
-0:49 component-wise multiply (temp int)
-0:49 'i' (temp int)
-0:49 'j' (temp int)
-0:49 'k' (temp int)
-0:48 Loop Terminal Expression
-0:48 Post-Increment (temp int)
-0:48 'k' (temp int)
-0:51 move second child to first child (temp float)
-0:51 t1_scalar: direct index for structure (temp float)
-0:51 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:51 t1a: direct index for structure (temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:51 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
-0:51 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:51 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:51 'i' (temp int)
-0:51 Constant:
-0:51 1 (const int)
-0:51 Constant:
-0:51 0 (const int)
-0:51 'j' (temp int)
-0:51 Constant:
-0:51 1 (const int)
-0:51 divide (temp float)
-0:51 component-wise multiply (temp float)
-0:51 Convert int to float (temp float)
-0:51 'j' (temp int)
-0:51 Constant:
-0:51 2.000000
-0:51 Convert int to float (temp float)
-0:51 'i' (temp int)
-0:47 Loop Terminal Expression
-0:47 Post-Increment (temp int)
-0:47 'j' (temp int)
-0:54 Sequence
-0:54 Sequence
-0:54 move second child to first child (temp int)
-0:54 'j' (noContraction temp int)
-0:54 Constant:
-0:54 0 (const int)
-0:54 Loop with condition tested first
-0:54 Loop Condition
-0:54 Compare Less Than (temp bool)
-0:54 'j' (temp int)
-0:54 Constant:
-0:54 6 (const int)
-0:54 Loop Body
-0:55 Sequence
-0:55 Sequence
-0:55 Sequence
-0:55 move second child to first child (temp int)
-0:55 'k' (temp int)
-0:55 Constant:
-0:55 0 (const int)
-0:55 Loop with condition tested first
-0:55 Loop Condition
-0:55 Compare Less Than (temp bool)
-0:55 'k' (temp int)
-0:55 Constant:
-0:55 3 (const int)
-0:55 Loop Body
-0:56 Sequence
-0:56 move second child to first child (temp float)
-0:56 indirect index (temp float)
-0:56 t1_array: direct index for structure (temp 3-element array of float)
-0:56 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:56 t1b: direct index for structure (temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:56 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
-0:56 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:56 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:56 'i' (temp int)
-0:56 Constant:
-0:56 1 (const int)
-0:56 Constant:
-0:56 1 (const int)
-0:56 'j' (temp int)
-0:56 Constant:
-0:56 0 (const int)
-0:56 'k' (temp int)
-0:56 Convert int to float (temp float)
-0:56 add (temp int)
-0:56 component-wise multiply (temp int)
-0:56 'i' (temp int)
-0:56 'j' (temp int)
-0:56 'k' (temp int)
-0:55 Loop Terminal Expression
-0:55 Post-Increment (temp int)
-0:55 'k' (temp int)
-0:58 move second child to first child (temp float)
-0:58 t1_scalar: direct index for structure (noContraction temp float)
-0:58 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:58 t1b: direct index for structure (temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:58 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
-0:58 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:58 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:58 'i' (temp int)
-0:58 Constant:
-0:58 1 (const int)
-0:58 Constant:
-0:58 1 (const int)
-0:58 'j' (temp int)
-0:58 Constant:
-0:58 1 (const int)
-0:58 divide (noContraction temp float)
-0:58 component-wise multiply (noContraction temp float)
-0:58 Convert int to float (temp float)
-0:58 'j' (noContraction temp int)
-0:58 Constant:
-0:58 2.000000
-0:58 Convert int to float (temp float)
-0:58 'i' (noContraction temp int)
-0:54 Loop Terminal Expression
-0:54 Post-Increment (noContraction temp int)
-0:54 'j' (noContraction temp int)
-0:61 Sequence
-0:61 Sequence
-0:61 move second child to first child (temp int)
-0:61 'j' (noContraction temp int)
-0:61 Constant:
-0:61 0 (const int)
-0:61 Loop with condition tested first
-0:61 Loop Condition
-0:61 Compare Less Than (temp bool)
-0:61 'j' (temp int)
-0:61 Constant:
-0:61 6 (const int)
-0:61 Loop Body
-0:62 Sequence
-0:62 Sequence
-0:62 Sequence
-0:62 move second child to first child (temp int)
-0:62 'k' (noContraction temp int)
-0:62 Constant:
-0:62 0 (const int)
-0:62 Loop with condition tested first
-0:62 Loop Condition
-0:62 Compare Less Than (temp bool)
-0:62 'k' (temp int)
-0:62 Constant:
-0:62 3 (const int)
-0:62 Loop Body
-0:63 Sequence
-0:63 move second child to first child (temp float)
-0:63 indirect index (noContraction temp float)
-0:63 t1_array: direct index for structure (noContraction temp 3-element array of float)
-0:63 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:63 t1c: direct index for structure (temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:63 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
-0:63 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:63 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:63 'i' (temp int)
-0:63 Constant:
-0:63 1 (const int)
-0:63 Constant:
-0:63 2 (const int)
-0:63 'j' (temp int)
-0:63 Constant:
-0:63 0 (const int)
-0:63 'k' (temp int)
-0:63 Convert int to float (temp float)
-0:63 add (temp int)
-0:63 component-wise multiply (temp int)
-0:63 'i' (noContraction temp int)
-0:63 'j' (noContraction temp int)
-0:63 'k' (noContraction temp int)
-0:62 Loop Terminal Expression
-0:62 Post-Increment (noContraction temp int)
-0:62 'k' (noContraction temp int)
-0:65 move second child to first child (temp float)
-0:65 t1_scalar: direct index for structure (temp float)
-0:65 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:65 t1c: direct index for structure (temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:65 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
-0:65 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:65 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:65 'i' (temp int)
-0:65 Constant:
-0:65 1 (const int)
-0:65 Constant:
-0:65 2 (const int)
-0:65 'j' (temp int)
-0:65 Constant:
-0:65 1 (const int)
-0:65 divide (temp float)
-0:65 component-wise multiply (temp float)
-0:65 Convert int to float (temp float)
-0:65 'j' (temp int)
-0:65 Constant:
-0:65 2.000000
-0:65 Convert int to float (temp float)
-0:65 'i' (temp int)
-0:61 Loop Terminal Expression
-0:61 Post-Increment (noContraction temp int)
-0:61 'j' (noContraction temp int)
-0:43 Loop Terminal Expression
-0:43 Post-Increment (noContraction temp int)
-0:43 'i' (noContraction temp int)
-0:68 Sequence
-0:68 move second child to first child (temp int)
-0:68 'i' (temp int)
-0:68 Constant:
-0:68 2 (const int)
-0:69 move second child to first child (temp float)
-0:69 'result' (noContraction temp float)
-0:71 add (noContraction temp float)
-0:70 add (noContraction temp float)
-0:69 direct index (noContraction temp float)
-0:69 t1_array: direct index for structure (temp 3-element array of float)
-0:69 direct index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:69 t1c: direct index for structure (temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:69 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
-0:69 direct index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:69 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:69 Constant:
-0:69 5 (const int)
-0:69 Constant:
-0:69 1 (const int)
-0:69 Constant:
-0:69 2 (const int)
-0:69 Constant:
-0:69 6 (const int)
-0:69 Constant:
-0:69 0 (const int)
-0:69 Constant:
-0:69 1 (const int)
-0:70 t1_scalar: direct index for structure (noContraction temp float)
-0:70 direct index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:70 t1b: direct index for structure (temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar})
-0:70 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c})
-0:70 direct index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:70 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:70 Constant:
-0:70 2 (const int)
-0:70 Constant:
-0:70 1 (const int)
-0:70 Constant:
-0:70 1 (const int)
-0:70 Constant:
-0:70 1 (const int)
-0:70 Constant:
-0:70 1 (const int)
-0:71 direct index (noContraction temp float)
-0:71 vector swizzle (temp 2-component vector of float)
-0:71 v: direct index for structure (temp 4-component vector of float)
-0:71 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:71 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p})
-0:71 subtract (temp int)
-0:71 'i' (temp int)
-0:71 Constant:
-0:71 1 (const int)
-0:71 Constant:
-0:71 2 (const int)
-0:71 Sequence
-0:71 Constant:
-0:71 0 (const int)
-0:71 Constant:
-0:71 1 (const int)
-0:71 Constant:
-0:71 0 (const int)
-0:72 Branch: Return with expression
-0:72 'result' (noContraction temp float)
-0:75 Function Definition: out_block( (global float)
-0:75 Function Parameters:
-0:76 Sequence
-0:76 Sequence
-0:76 move second child to first child (temp float)
-0:76 'a' (noContraction temp float)
-0:76 Constant:
-0:76 0.100000
-0:77 Sequence
-0:77 move second child to first child (temp float)
-0:77 'b' (noContraction temp float)
-0:77 Constant:
-0:77 0.200000
-0:78 move second child to first child (temp float)
-0:78 f1: direct index for structure (noContraction global float)
-0:78 s: direct index for structure (noContraction out structure{global float f1, global float f2})
-0:78 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x})
-0:78 Constant:
-0:78 0 (const int)
-0:78 Constant:
-0:78 0 (const int)
-0:78 add (noContraction temp float)
-0:78 'a' (noContraction temp float)
-0:78 'b' (noContraction temp float)
-0:79 move second child to first child (temp float)
-0:79 f2: direct index for structure (noContraction global float)
-0:79 s: direct index for structure (noContraction out structure{global float f1, global float f2})
-0:79 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x})
-0:79 Constant:
-0:79 0 (const int)
-0:79 Constant:
-0:79 1 (const int)
-0:79 subtract (noContraction temp float)
-0:79 'a' (noContraction temp float)
-0:79 'b' (noContraction temp float)
-0:80 move second child to first child (temp float)
-0:80 x: direct index for structure (out float)
-0:80 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x})
-0:80 Constant:
-0:80 1 (const int)
-0:80 component-wise multiply (temp float)
-0:80 'a' (temp float)
-0:80 'b' (temp float)
-0:82 move second child to first child (temp float)
-0:82 f1: direct index for structure (noContraction global float)
-0:82 s: direct index for structure (noContraction out structure{global float f1, global float f2})
-0:82 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x})
-0:82 Constant:
-0:82 0 (const int)
-0:82 Constant:
-0:82 0 (const int)
-0:82 add (noContraction temp float)
-0:82 add (noContraction temp float)
-0:82 'a' (noContraction temp float)
-0:82 'b' (noContraction temp float)
-0:82 Constant:
-0:82 1.000000
-0:83 move second child to first child (temp float)
-0:83 f2: direct index for structure (noContraction global float)
-0:83 s: direct index for structure (noContraction out structure{global float f1, global float f2})
-0:83 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x})
-0:83 Constant:
-0:83 0 (const int)
-0:83 Constant:
-0:83 1 (const int)
-0:83 subtract (noContraction temp float)
-0:83 subtract (noContraction temp float)
-0:83 'a' (noContraction temp float)
-0:83 'b' (noContraction temp float)
-0:83 Constant:
-0:83 1.000000
-0:84 move second child to first child (temp float)
-0:84 x: direct index for structure (noContraction out float)
-0:84 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x})
-0:84 Constant:
-0:84 1 (const int)
-0:84 component-wise multiply (noContraction temp float)
-0:84 component-wise multiply (noContraction temp float)
-0:84 'a' (noContraction temp float)
-0:84 'b' (noContraction temp float)
-0:84 Constant:
-0:84 2.000000
-0:86 Branch: Return with expression
-0:86 add (temp float)
-0:86 'a' (temp float)
-0:86 'b' (temp float)
0:89 Function Definition: main( (global void)
0:89 Function Parameters:
0:? Linker Objects
diff --git a/Test/baseResults/precision.frag.out b/Test/baseResults/precision.frag.out
index 79485b4..5ab99e9 100644
--- a/Test/baseResults/precision.frag.out
+++ b/Test/baseResults/precision.frag.out
@@ -130,18 +130,6 @@
Shader version: 100
ERROR: node is still EOpNull!
-0:5 Function Definition: foo(vf3; (global lowp 2-component vector of float)
-0:5 Function Parameters:
-0:5 'mv3' (in mediump 3-component vector of float)
-0:? Sequence
-0:8 Branch: Return with expression
-0:8 vector swizzle (temp highp 2-component vector of float)
-0:8 'hv4' (temp highp 4-component vector of float)
-0:8 Sequence
-0:8 Constant:
-0:8 0 (const int)
-0:8 Constant:
-0:8 1 (const int)
0:25 Function Definition: main( (global void)
0:25 Function Parameters:
0:27 Sequence
diff --git a/Test/baseResults/recurse1.vert.out b/Test/baseResults/recurse1.vert.out
index c2ae014..4274eb3 100644
--- a/Test/baseResults/recurse1.vert.out
+++ b/Test/baseResults/recurse1.vert.out
@@ -218,66 +218,6 @@
0:? Sequence
0:3 Function Definition: main( (global void)
0:3 Function Parameters:
-0:9 Function Definition: self( (global void)
-0:9 Function Parameters:
-0:11 Sequence
-0:11 Function Call: self( (global void)
-0:16 Function Definition: foo(f1; (global void)
-0:16 Function Parameters:
-0:16 '' (in float)
-0:18 Sequence
-0:18 Function Call: bar(i1; (global float)
-0:18 Constant:
-0:18 2 (const int)
-0:21 Function Definition: bar(i1; (global float)
-0:21 Function Parameters:
-0:21 '' (in int)
-0:23 Sequence
-0:23 Function Call: foo(f1; (global void)
-0:23 Constant:
-0:23 4.200000
-0:25 Branch: Return with expression
-0:25 Constant:
-0:25 3.200000
-0:32 Function Definition: A( (global void)
-0:32 Function Parameters:
-0:32 Sequence
-0:32 Function Call: B( (global void)
-0:33 Function Definition: C( (global void)
-0:33 Function Parameters:
-0:33 Sequence
-0:33 Function Call: D( (global void)
-0:34 Function Definition: B( (global void)
-0:34 Function Parameters:
-0:34 Sequence
-0:34 Function Call: C( (global void)
-0:35 Function Definition: D( (global void)
-0:35 Function Parameters:
-0:35 Sequence
-0:35 Function Call: A( (global void)
-0:41 Function Definition: AT( (global void)
-0:41 Function Parameters:
-0:41 Sequence
-0:41 Function Call: BT( (global void)
-0:41 Function Call: BT( (global void)
-0:41 Function Call: BT( (global void)
-0:42 Function Definition: CT( (global void)
-0:42 Function Parameters:
-0:42 Sequence
-0:42 Function Call: DT( (global void)
-0:42 Function Call: AT( (global void)
-0:42 Function Call: DT( (global void)
-0:42 Function Call: BT( (global void)
-0:43 Function Definition: BT( (global void)
-0:43 Function Parameters:
-0:43 Sequence
-0:43 Function Call: CT( (global void)
-0:43 Function Call: CT( (global void)
-0:43 Function Call: CT( (global void)
-0:44 Function Definition: DT( (global void)
-0:44 Function Parameters:
-0:44 Sequence
-0:44 Function Call: AT( (global void)
0:? Linker Objects
0:? 'gl_VertexID' (gl_VertexId int VertexId)
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
@@ -285,113 +225,5 @@
0:? Sequence
0:5 Function Definition: main( (global void)
0:5 Function Parameters:
-0:11 Function Definition: cfoo(f1; (global void)
-0:11 Function Parameters:
-0:11 '' (in float)
-0:13 Sequence
-0:13 Function Call: cbar(i1; (global float)
-0:13 Constant:
-0:13 2 (const int)
-0:20 Function Definition: CA( (global void)
-0:20 Function Parameters:
-0:20 Sequence
-0:20 Function Call: CB( (global void)
-0:21 Function Definition: CC( (global void)
-0:21 Function Parameters:
-0:21 Sequence
-0:21 Function Call: CD( (global void)
-0:27 Function Definition: CAT( (global void)
-0:27 Function Parameters:
-0:27 Sequence
-0:27 Function Call: CBT( (global void)
-0:27 Function Call: CBT( (global void)
-0:27 Function Call: CBT( (global void)
-0:28 Function Definition: CCT( (global void)
-0:28 Function Parameters:
-0:28 Sequence
-0:28 Function Call: CDT( (global void)
-0:28 Function Call: CDT( (global void)
-0:28 Function Call: CBT( (global void)
-0:32 Function Definition: norA( (global void)
-0:32 Function Parameters:
-0:33 Function Definition: norB( (global void)
-0:33 Function Parameters:
-0:33 Sequence
-0:33 Function Call: norA( (global void)
-0:34 Function Definition: norC( (global void)
-0:34 Function Parameters:
-0:34 Sequence
-0:34 Function Call: norA( (global void)
-0:35 Function Definition: norD( (global void)
-0:35 Function Parameters:
-0:35 Sequence
-0:35 Function Call: norA( (global void)
-0:36 Function Definition: norE( (global void)
-0:36 Function Parameters:
-0:36 Sequence
-0:36 Function Call: norB( (global void)
-0:37 Function Definition: norF( (global void)
-0:37 Function Parameters:
-0:37 Sequence
-0:37 Function Call: norB( (global void)
-0:38 Function Definition: norG( (global void)
-0:38 Function Parameters:
-0:38 Sequence
-0:38 Function Call: norE( (global void)
-0:39 Function Definition: norH( (global void)
-0:39 Function Parameters:
-0:39 Sequence
-0:39 Function Call: norE( (global void)
-0:40 Function Definition: norI( (global void)
-0:40 Function Parameters:
-0:40 Sequence
-0:40 Function Call: norE( (global void)
-0:44 Function Definition: norcA( (global void)
-0:44 Function Parameters:
-0:45 Function Definition: norcB( (global void)
-0:45 Function Parameters:
-0:45 Sequence
-0:45 Function Call: norcA( (global void)
-0:46 Function Definition: norcC( (global void)
-0:46 Function Parameters:
-0:46 Sequence
-0:46 Function Call: norcB( (global void)
-0:47 Function Definition: norcD( (global void)
-0:47 Function Parameters:
-0:47 Sequence
-0:47 Function Call: norcC( (global void)
-0:47 Function Call: norcB( (global void)
-0:48 Function Definition: norcE( (global void)
-0:48 Function Parameters:
-0:48 Sequence
-0:48 Function Call: norcD( (global void)
-0:9 Function Definition: cbar(i1; (global float)
-0:9 Function Parameters:
-0:9 '' (in int)
-0:11 Sequence
-0:11 Function Call: cfoo(f1; (global void)
-0:11 Constant:
-0:11 4.200000
-0:13 Branch: Return with expression
-0:13 Constant:
-0:13 3.200000
-0:20 Function Definition: CB( (global void)
-0:20 Function Parameters:
-0:20 Sequence
-0:20 Function Call: CC( (global void)
-0:21 Function Definition: CD( (global void)
-0:21 Function Parameters:
-0:21 Sequence
-0:21 Function Call: CA( (global void)
-0:27 Function Definition: CBT( (global void)
-0:27 Function Parameters:
-0:27 Sequence
-0:27 Function Call: CCT( (global void)
-0:27 Function Call: CCT( (global void)
-0:27 Function Call: CCT( (global void)
-0:28 Function Definition: CDT( (global void)
-0:28 Function Parameters:
-0:28 Sequence
-0:28 Function Call: CAT( (global void)
0:? Linker Objects
diff --git a/Test/baseResults/reflection.vert.out b/Test/baseResults/reflection.vert.out
index 1e4c24f..ba3e0e6 100644
--- a/Test/baseResults/reflection.vert.out
+++ b/Test/baseResults/reflection.vert.out
@@ -1,10 +1,6 @@
reflection.vert
Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
Uniform reflection:
image_ui2D: offset -1, type 9063, size 1, index -1, binding -1
sampler_2D: offset -1, type 8b5e, size 1, index -1, binding -1
diff --git a/Test/baseResults/remap.basic.dcefunc.frag.out b/Test/baseResults/remap.basic.dcefunc.frag.out
index 0f367c9..99b4d55 100644
--- a/Test/baseResults/remap.basic.dcefunc.frag.out
+++ b/Test/baseResults/remap.basic.dcefunc.frag.out
@@ -1,10 +1,6 @@
remap.basic.dcefunc.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 19
diff --git a/Test/baseResults/remap.basic.everything.frag.out b/Test/baseResults/remap.basic.everything.frag.out
index f6d6ed4..357a8d2 100644
--- a/Test/baseResults/remap.basic.everything.frag.out
+++ b/Test/baseResults/remap.basic.everything.frag.out
@@ -1,10 +1,6 @@
remap.basic.everything.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24969
diff --git a/Test/baseResults/remap.basic.none.frag.out b/Test/baseResults/remap.basic.none.frag.out
index 3632309..39e56b2 100644
--- a/Test/baseResults/remap.basic.none.frag.out
+++ b/Test/baseResults/remap.basic.none.frag.out
@@ -1,10 +1,6 @@
remap.basic.none.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 20
diff --git a/Test/baseResults/remap.basic.strip.frag.out b/Test/baseResults/remap.basic.strip.frag.out
index d34ce8f..27c0874 100644
--- a/Test/baseResults/remap.basic.strip.frag.out
+++ b/Test/baseResults/remap.basic.strip.frag.out
@@ -1,10 +1,6 @@
remap.basic.strip.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 20
diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
index bd1fa7e..b49a10b 100644
--- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
+++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
@@ -1,10 +1,6 @@
remap.hlsl.sample.basic.everything.frag
WARNING: 0:4: 'immediate sampler state' : unimplemented
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24916
diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out
index b149718..28c384c 100644
--- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out
+++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out
@@ -1,10 +1,6 @@
remap.hlsl.sample.basic.none.frag
WARNING: 0:4: 'immediate sampler state' : unimplemented
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 190
diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
index 5340767..10a8938 100644
--- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
+++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
@@ -1,10 +1,6 @@
remap.hlsl.sample.basic.strip.frag
WARNING: 0:4: 'immediate sampler state' : unimplemented
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 190
diff --git a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out
index 63eb6cb..c42a037 100644
--- a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out
+++ b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out
@@ -1,8 +1,4 @@
remap.hlsl.templatetypes.everything.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 9012
diff --git a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out
index df0dcf5..c3fab1a 100644
--- a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out
+++ b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out
@@ -1,8 +1,4 @@
remap.hlsl.templatetypes.none.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 149
diff --git a/Test/baseResults/remap.if.everything.frag.out b/Test/baseResults/remap.if.everything.frag.out
index 9f98c18..d20564c 100644
--- a/Test/baseResults/remap.if.everything.frag.out
+++ b/Test/baseResults/remap.if.everything.frag.out
@@ -1,10 +1,6 @@
remap.if.everything.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 22855
diff --git a/Test/baseResults/remap.if.none.frag.out b/Test/baseResults/remap.if.none.frag.out
index f3113a3..081d5cd 100644
--- a/Test/baseResults/remap.if.none.frag.out
+++ b/Test/baseResults/remap.if.none.frag.out
@@ -1,10 +1,6 @@
remap.if.none.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 25
diff --git a/Test/baseResults/remap.similar_1a.everything.frag.out b/Test/baseResults/remap.similar_1a.everything.frag.out
index 09589f5..384b8e8 100644
--- a/Test/baseResults/remap.similar_1a.everything.frag.out
+++ b/Test/baseResults/remap.similar_1a.everything.frag.out
@@ -1,10 +1,6 @@
remap.similar_1a.everything.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24916
diff --git a/Test/baseResults/remap.similar_1a.none.frag.out b/Test/baseResults/remap.similar_1a.none.frag.out
index 1748451..ad1273a 100644
--- a/Test/baseResults/remap.similar_1a.none.frag.out
+++ b/Test/baseResults/remap.similar_1a.none.frag.out
@@ -1,10 +1,6 @@
remap.similar_1a.none.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 82
diff --git a/Test/baseResults/remap.similar_1b.everything.frag.out b/Test/baseResults/remap.similar_1b.everything.frag.out
index d05be11..0ce4544 100644
--- a/Test/baseResults/remap.similar_1b.everything.frag.out
+++ b/Test/baseResults/remap.similar_1b.everything.frag.out
@@ -1,10 +1,6 @@
remap.similar_1b.everything.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24916
diff --git a/Test/baseResults/remap.similar_1b.none.frag.out b/Test/baseResults/remap.similar_1b.none.frag.out
index f9bf084..b86fd4b 100644
--- a/Test/baseResults/remap.similar_1b.none.frag.out
+++ b/Test/baseResults/remap.similar_1b.none.frag.out
@@ -1,10 +1,6 @@
remap.similar_1b.none.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 87
diff --git a/Test/baseResults/remap.switch.everything.frag.out b/Test/baseResults/remap.switch.everything.frag.out
index a1d9b0d..e5a7ef7 100644
--- a/Test/baseResults/remap.switch.everything.frag.out
+++ b/Test/baseResults/remap.switch.everything.frag.out
@@ -3,10 +3,6 @@
WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.:
"precision mediump int; precision highp float;"
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 23990
diff --git a/Test/baseResults/remap.switch.none.frag.out b/Test/baseResults/remap.switch.none.frag.out
index 7fc8f04..5d373cc 100644
--- a/Test/baseResults/remap.switch.none.frag.out
+++ b/Test/baseResults/remap.switch.none.frag.out
@@ -3,10 +3,6 @@
WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.:
"precision mediump int; precision highp float;"
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 44
diff --git a/Test/baseResults/remap.uniformarray.everything.frag.out b/Test/baseResults/remap.uniformarray.everything.frag.out
index 18defec..ed906d5 100644
--- a/Test/baseResults/remap.uniformarray.everything.frag.out
+++ b/Test/baseResults/remap.uniformarray.everything.frag.out
@@ -1,8 +1,4 @@
remap.uniformarray.everything.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 25030
diff --git a/Test/baseResults/remap.uniformarray.none.frag.out b/Test/baseResults/remap.uniformarray.none.frag.out
index ff2489e..526b9e4 100644
--- a/Test/baseResults/remap.uniformarray.none.frag.out
+++ b/Test/baseResults/remap.uniformarray.none.frag.out
@@ -1,8 +1,4 @@
remap.uniformarray.none.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 53
diff --git a/Test/baseResults/specExamples.frag.out b/Test/baseResults/specExamples.frag.out
index 711c529..a66144a 100644
--- a/Test/baseResults/specExamples.frag.out
+++ b/Test/baseResults/specExamples.frag.out
@@ -399,17 +399,6 @@
0:26 'fd' (global double)
0:26 Constant:
0:26 2.000000
-0:127 Function Definition: foo(f1[5]; (global 5-element array of float)
-0:127 Function Parameters:
-0:127 '' (in 5-element array of float)
-0:129 Sequence
-0:129 Branch: Return with expression
-0:129 Constant:
-0:129 3.400000
-0:129 4.200000
-0:129 5.000000
-0:129 5.200000
-0:129 1.100000
0:137 Function Definition: main( (global void)
0:137 Function Parameters:
0:140 Sequence
diff --git a/Test/baseResults/spv.100ops.frag.out b/Test/baseResults/spv.100ops.frag.out
index 9b40c92..efd8201 100755
--- a/Test/baseResults/spv.100ops.frag.out
+++ b/Test/baseResults/spv.100ops.frag.out
@@ -1,10 +1,6 @@
spv.100ops.frag
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 49
diff --git a/Test/baseResults/spv.130.frag.out b/Test/baseResults/spv.130.frag.out
index 8d881f5..19c6db0 100644
--- a/Test/baseResults/spv.130.frag.out
+++ b/Test/baseResults/spv.130.frag.out
@@ -1,10 +1,6 @@
spv.130.frag
WARNING: 0:31: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 205
diff --git a/Test/baseResults/spv.140.frag.out b/Test/baseResults/spv.140.frag.out
index f302478..f8e75eb 100755
--- a/Test/baseResults/spv.140.frag.out
+++ b/Test/baseResults/spv.140.frag.out
@@ -1,8 +1,4 @@
spv.140.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 101
diff --git a/Test/baseResults/spv.150.geom.out b/Test/baseResults/spv.150.geom.out
index 8b021ff..1c98c70 100755
--- a/Test/baseResults/spv.150.geom.out
+++ b/Test/baseResults/spv.150.geom.out
@@ -1,8 +1,4 @@
spv.150.geom
-
-Linked geometry stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 71
diff --git a/Test/baseResults/spv.150.vert.out b/Test/baseResults/spv.150.vert.out
index 5ccf1a8..2843139 100755
--- a/Test/baseResults/spv.150.vert.out
+++ b/Test/baseResults/spv.150.vert.out
@@ -1,8 +1,4 @@
spv.150.vert
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 63
diff --git a/Test/baseResults/spv.300BuiltIns.vert.out b/Test/baseResults/spv.300BuiltIns.vert.out
index ab07f4a..7dc949d 100755
--- a/Test/baseResults/spv.300BuiltIns.vert.out
+++ b/Test/baseResults/spv.300BuiltIns.vert.out
@@ -1,10 +1,6 @@
spv.300BuiltIns.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 42
diff --git a/Test/baseResults/spv.300layout.frag.out b/Test/baseResults/spv.300layout.frag.out
index e340c1b..7ce08d8 100755
--- a/Test/baseResults/spv.300layout.frag.out
+++ b/Test/baseResults/spv.300layout.frag.out
@@ -1,10 +1,6 @@
spv.300layout.frag
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 37
diff --git a/Test/baseResults/spv.300layout.vert.out b/Test/baseResults/spv.300layout.vert.out
index 859794a..20eb8e7 100644
--- a/Test/baseResults/spv.300layout.vert.out
+++ b/Test/baseResults/spv.300layout.vert.out
@@ -1,10 +1,6 @@
spv.300layout.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 163
diff --git a/Test/baseResults/spv.300layoutp.vert.out b/Test/baseResults/spv.300layoutp.vert.out
index ebad963..5924137 100755
--- a/Test/baseResults/spv.300layoutp.vert.out
+++ b/Test/baseResults/spv.300layoutp.vert.out
@@ -1,10 +1,6 @@
spv.300layoutp.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 115
diff --git a/Test/baseResults/spv.310.bitcast.frag.out b/Test/baseResults/spv.310.bitcast.frag.out
index 80df3b1..14e184a 100755
--- a/Test/baseResults/spv.310.bitcast.frag.out
+++ b/Test/baseResults/spv.310.bitcast.frag.out
@@ -1,10 +1,6 @@
spv.310.bitcast.frag
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 153
diff --git a/Test/baseResults/spv.310.comp.out b/Test/baseResults/spv.310.comp.out
index bd1f346..095bf39 100644
--- a/Test/baseResults/spv.310.comp.out
+++ b/Test/baseResults/spv.310.comp.out
@@ -1,10 +1,6 @@
spv.310.comp
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked compute stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 67
diff --git a/Test/baseResults/spv.330.geom.out b/Test/baseResults/spv.330.geom.out
index 3077769..3e81dcb 100644
--- a/Test/baseResults/spv.330.geom.out
+++ b/Test/baseResults/spv.330.geom.out
@@ -1,8 +1,4 @@
spv.330.geom
-
-Linked geometry stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 32
diff --git a/Test/baseResults/spv.400.frag.out b/Test/baseResults/spv.400.frag.out
index 7858845..cb2de96 100644
--- a/Test/baseResults/spv.400.frag.out
+++ b/Test/baseResults/spv.400.frag.out
@@ -1,10 +1,6 @@
spv.400.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 1118
diff --git a/Test/baseResults/spv.400.tesc.out b/Test/baseResults/spv.400.tesc.out
index ae469aa..68b142e 100644
--- a/Test/baseResults/spv.400.tesc.out
+++ b/Test/baseResults/spv.400.tesc.out
@@ -1,10 +1,6 @@
spv.400.tesc
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked tessellation control stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 93
diff --git a/Test/baseResults/spv.400.tese.out b/Test/baseResults/spv.400.tese.out
index 51534b1..0c62bed 100755
--- a/Test/baseResults/spv.400.tese.out
+++ b/Test/baseResults/spv.400.tese.out
@@ -1,10 +1,6 @@
spv.400.tese
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked tessellation evaluation stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 96
diff --git a/Test/baseResults/spv.420.geom.out b/Test/baseResults/spv.420.geom.out
index 78e3aaa..6413d5a 100644
--- a/Test/baseResults/spv.420.geom.out
+++ b/Test/baseResults/spv.420.geom.out
@@ -1,10 +1,6 @@
spv.420.geom
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked geometry stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 72
diff --git a/Test/baseResults/spv.430.frag.out b/Test/baseResults/spv.430.frag.out
index 0058e9c..abe2a58 100755
--- a/Test/baseResults/spv.430.frag.out
+++ b/Test/baseResults/spv.430.frag.out
@@ -1,10 +1,6 @@
spv.430.frag
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24
diff --git a/Test/baseResults/spv.430.vert.out b/Test/baseResults/spv.430.vert.out
index c3ad2b9..8ea95d1 100755
--- a/Test/baseResults/spv.430.vert.out
+++ b/Test/baseResults/spv.430.vert.out
@@ -1,10 +1,6 @@
spv.430.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 66
diff --git a/Test/baseResults/spv.450.tesc.out b/Test/baseResults/spv.450.tesc.out
index 2900fdf..a0bf3dd 100755
--- a/Test/baseResults/spv.450.tesc.out
+++ b/Test/baseResults/spv.450.tesc.out
@@ -1,10 +1,6 @@
spv.450.tesc
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked tessellation control stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 23
diff --git a/Test/baseResults/spv.AofA.frag.out b/Test/baseResults/spv.AofA.frag.out
index 0dbf69c..4eb7563 100644
--- a/Test/baseResults/spv.AofA.frag.out
+++ b/Test/baseResults/spv.AofA.frag.out
@@ -1,10 +1,6 @@
spv.AofA.frag
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 104
diff --git a/Test/baseResults/spv.Operations.frag.out b/Test/baseResults/spv.Operations.frag.out
index f8b666d..1a74192 100755
--- a/Test/baseResults/spv.Operations.frag.out
+++ b/Test/baseResults/spv.Operations.frag.out
@@ -1,10 +1,6 @@
spv.Operations.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 509
diff --git a/Test/baseResults/spv.accessChain.frag.out b/Test/baseResults/spv.accessChain.frag.out
index 3d391c3..b319cfd 100755
--- a/Test/baseResults/spv.accessChain.frag.out
+++ b/Test/baseResults/spv.accessChain.frag.out
@@ -1,10 +1,6 @@
spv.accessChain.frag
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 206
diff --git a/Test/baseResults/spv.aggOps.frag.out b/Test/baseResults/spv.aggOps.frag.out
index 5a19d2f..c3ceb9a 100644
--- a/Test/baseResults/spv.aggOps.frag.out
+++ b/Test/baseResults/spv.aggOps.frag.out
@@ -3,10 +3,6 @@
WARNING: 0:4: '' : all default precisions are highp; use precision statements to quiet warning, e.g.:
"precision mediump int; precision highp float;"
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 215
diff --git a/Test/baseResults/spv.always-discard.frag.out b/Test/baseResults/spv.always-discard.frag.out
index 9102b3b..652d45c 100644
--- a/Test/baseResults/spv.always-discard.frag.out
+++ b/Test/baseResults/spv.always-discard.frag.out
@@ -1,8 +1,4 @@
spv.always-discard.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 84
diff --git a/Test/baseResults/spv.always-discard2.frag.out b/Test/baseResults/spv.always-discard2.frag.out
index 7984c83..0bbb9ee 100755
--- a/Test/baseResults/spv.always-discard2.frag.out
+++ b/Test/baseResults/spv.always-discard2.frag.out
@@ -1,8 +1,4 @@
spv.always-discard2.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 40
diff --git a/Test/baseResults/spv.atomic.comp.out b/Test/baseResults/spv.atomic.comp.out
index 01e0932..97c7f6e 100755
--- a/Test/baseResults/spv.atomic.comp.out
+++ b/Test/baseResults/spv.atomic.comp.out
@@ -1,10 +1,6 @@
spv.atomic.comp
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked compute stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 73
diff --git a/Test/baseResults/spv.bitCast.frag.out b/Test/baseResults/spv.bitCast.frag.out
index b0dc810..07dd729 100644
--- a/Test/baseResults/spv.bitCast.frag.out
+++ b/Test/baseResults/spv.bitCast.frag.out
@@ -1,10 +1,6 @@
spv.bitCast.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 172
diff --git a/Test/baseResults/spv.bool.vert.out b/Test/baseResults/spv.bool.vert.out
index 49a69a0..f84687a 100644
--- a/Test/baseResults/spv.bool.vert.out
+++ b/Test/baseResults/spv.bool.vert.out
@@ -1,10 +1,6 @@
spv.bool.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 49
diff --git a/Test/baseResults/spv.boolInBlock.frag.out b/Test/baseResults/spv.boolInBlock.frag.out
index 6e7cf40..2181f26 100644
--- a/Test/baseResults/spv.boolInBlock.frag.out
+++ b/Test/baseResults/spv.boolInBlock.frag.out
@@ -1,10 +1,6 @@
spv.boolInBlock.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 107
diff --git a/Test/baseResults/spv.branch-return.vert.out b/Test/baseResults/spv.branch-return.vert.out
index 217a863..9093135 100644
--- a/Test/baseResults/spv.branch-return.vert.out
+++ b/Test/baseResults/spv.branch-return.vert.out
@@ -1,10 +1,6 @@
spv.branch-return.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 38
diff --git a/Test/baseResults/spv.buffer.autoassign.frag.out b/Test/baseResults/spv.buffer.autoassign.frag.out
index 1d94707..f2c8d6d 100644
--- a/Test/baseResults/spv.buffer.autoassign.frag.out
+++ b/Test/baseResults/spv.buffer.autoassign.frag.out
@@ -1,8 +1,4 @@
spv.buffer.autoassign.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 45
diff --git a/Test/baseResults/spv.conditionalDiscard.frag.out b/Test/baseResults/spv.conditionalDiscard.frag.out
index ef7e3b4..b3cb8e8 100755
--- a/Test/baseResults/spv.conditionalDiscard.frag.out
+++ b/Test/baseResults/spv.conditionalDiscard.frag.out
@@ -1,10 +1,6 @@
spv.conditionalDiscard.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 36
diff --git a/Test/baseResults/spv.conversion.frag.out b/Test/baseResults/spv.conversion.frag.out
index bc91569..b38d84e 100755
--- a/Test/baseResults/spv.conversion.frag.out
+++ b/Test/baseResults/spv.conversion.frag.out
@@ -1,8 +1,4 @@
spv.conversion.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 455
diff --git a/Test/baseResults/spv.dataOut.frag.out b/Test/baseResults/spv.dataOut.frag.out
index 651c96e..9dbe5d1 100755
--- a/Test/baseResults/spv.dataOut.frag.out
+++ b/Test/baseResults/spv.dataOut.frag.out
@@ -1,8 +1,4 @@
spv.dataOut.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 20
diff --git a/Test/baseResults/spv.dataOutIndirect.frag.out b/Test/baseResults/spv.dataOutIndirect.frag.out
index d1227a5..663092f 100755
--- a/Test/baseResults/spv.dataOutIndirect.frag.out
+++ b/Test/baseResults/spv.dataOutIndirect.frag.out
@@ -1,8 +1,4 @@
spv.dataOutIndirect.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 26
diff --git a/Test/baseResults/spv.dataOutIndirect.vert.out b/Test/baseResults/spv.dataOutIndirect.vert.out
index 797c651..1523fab 100755
--- a/Test/baseResults/spv.dataOutIndirect.vert.out
+++ b/Test/baseResults/spv.dataOutIndirect.vert.out
@@ -1,10 +1,6 @@
spv.dataOutIndirect.vert
WARNING: 0:3: attribute deprecated in version 130; may be removed in future release
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 38
diff --git a/Test/baseResults/spv.deepRvalue.frag.out b/Test/baseResults/spv.deepRvalue.frag.out
index b489438..29cf848 100644
--- a/Test/baseResults/spv.deepRvalue.frag.out
+++ b/Test/baseResults/spv.deepRvalue.frag.out
@@ -1,8 +1,4 @@
spv.deepRvalue.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 155
diff --git a/Test/baseResults/spv.depthOut.frag.out b/Test/baseResults/spv.depthOut.frag.out
index 6242391..247b2f3 100755
--- a/Test/baseResults/spv.depthOut.frag.out
+++ b/Test/baseResults/spv.depthOut.frag.out
@@ -1,10 +1,6 @@
spv.depthOut.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 15
diff --git a/Test/baseResults/spv.discard-dce.frag.out b/Test/baseResults/spv.discard-dce.frag.out
index 7668233..173ea26 100755
--- a/Test/baseResults/spv.discard-dce.frag.out
+++ b/Test/baseResults/spv.discard-dce.frag.out
@@ -1,8 +1,4 @@
spv.discard-dce.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 84
diff --git a/Test/baseResults/spv.do-simple.vert.out b/Test/baseResults/spv.do-simple.vert.out
index c0862d1..d6d4c28 100755
--- a/Test/baseResults/spv.do-simple.vert.out
+++ b/Test/baseResults/spv.do-simple.vert.out
@@ -1,10 +1,6 @@
spv.do-simple.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 21
diff --git a/Test/baseResults/spv.do-while-continue-break.vert.out b/Test/baseResults/spv.do-while-continue-break.vert.out
index ebfe85d..d1d0c85 100644
--- a/Test/baseResults/spv.do-while-continue-break.vert.out
+++ b/Test/baseResults/spv.do-while-continue-break.vert.out
@@ -1,10 +1,6 @@
spv.do-while-continue-break.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 43
diff --git a/Test/baseResults/spv.doWhileLoop.frag.out b/Test/baseResults/spv.doWhileLoop.frag.out
index 1d12af1..9b8cee7 100755
--- a/Test/baseResults/spv.doWhileLoop.frag.out
+++ b/Test/baseResults/spv.doWhileLoop.frag.out
@@ -1,8 +1,4 @@
spv.doWhileLoop.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 34
diff --git a/Test/baseResults/spv.double.comp.out b/Test/baseResults/spv.double.comp.out
index 766f839..3b1bdc8 100755
--- a/Test/baseResults/spv.double.comp.out
+++ b/Test/baseResults/spv.double.comp.out
@@ -1,10 +1,6 @@
spv.double.comp
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked compute stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 60
diff --git a/Test/baseResults/spv.earlyReturnDiscard.frag.out b/Test/baseResults/spv.earlyReturnDiscard.frag.out
index 7e6409e..41441b7 100755
--- a/Test/baseResults/spv.earlyReturnDiscard.frag.out
+++ b/Test/baseResults/spv.earlyReturnDiscard.frag.out
@@ -1,8 +1,4 @@
spv.earlyReturnDiscard.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 110
diff --git a/Test/baseResults/spv.float16.frag.out b/Test/baseResults/spv.float16.frag.out
index f1fe6e4..5499b7e 100644
--- a/Test/baseResults/spv.float16.frag.out
+++ b/Test/baseResults/spv.float16.frag.out
@@ -1,10 +1,6 @@
spv.float16.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 534
diff --git a/Test/baseResults/spv.flowControl.frag.out b/Test/baseResults/spv.flowControl.frag.out
index 7ca61b7..274cb74 100755
--- a/Test/baseResults/spv.flowControl.frag.out
+++ b/Test/baseResults/spv.flowControl.frag.out
@@ -1,8 +1,4 @@
spv.flowControl.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 39
diff --git a/Test/baseResults/spv.for-complex-condition.vert.out b/Test/baseResults/spv.for-complex-condition.vert.out
index c5fe438..bb3bc2a 100644
--- a/Test/baseResults/spv.for-complex-condition.vert.out
+++ b/Test/baseResults/spv.for-complex-condition.vert.out
@@ -1,10 +1,6 @@
spv.for-complex-condition.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 35
diff --git a/Test/baseResults/spv.for-continue-break.vert.out b/Test/baseResults/spv.for-continue-break.vert.out
index 0ea2f14..764001d 100644
--- a/Test/baseResults/spv.for-continue-break.vert.out
+++ b/Test/baseResults/spv.for-continue-break.vert.out
@@ -1,10 +1,6 @@
spv.for-continue-break.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 45
diff --git a/Test/baseResults/spv.for-nobody.vert.out b/Test/baseResults/spv.for-nobody.vert.out
index a127b70..0ec3584 100644
--- a/Test/baseResults/spv.for-nobody.vert.out
+++ b/Test/baseResults/spv.for-nobody.vert.out
@@ -1,10 +1,6 @@
spv.for-nobody.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 25
diff --git a/Test/baseResults/spv.for-notest.vert.out b/Test/baseResults/spv.for-notest.vert.out
index 6770670..c7346f9 100644
--- a/Test/baseResults/spv.for-notest.vert.out
+++ b/Test/baseResults/spv.for-notest.vert.out
@@ -1,10 +1,6 @@
spv.for-notest.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 20
diff --git a/Test/baseResults/spv.for-simple.vert.out b/Test/baseResults/spv.for-simple.vert.out
index 52a047f..996b65a 100755
--- a/Test/baseResults/spv.for-simple.vert.out
+++ b/Test/baseResults/spv.for-simple.vert.out
@@ -1,10 +1,6 @@
spv.for-simple.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24
diff --git a/Test/baseResults/spv.forLoop.frag.out b/Test/baseResults/spv.forLoop.frag.out
index e606f9c..628c791 100755
--- a/Test/baseResults/spv.forLoop.frag.out
+++ b/Test/baseResults/spv.forLoop.frag.out
@@ -1,8 +1,4 @@
spv.forLoop.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 131
diff --git a/Test/baseResults/spv.forwardFun.frag.out b/Test/baseResults/spv.forwardFun.frag.out
index a804e1d..6575953 100755
--- a/Test/baseResults/spv.forwardFun.frag.out
+++ b/Test/baseResults/spv.forwardFun.frag.out
@@ -1,8 +1,4 @@
spv.forwardFun.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 60
diff --git a/Test/baseResults/spv.functionCall.frag.out b/Test/baseResults/spv.functionCall.frag.out
index db40dd5..69a525f 100755
--- a/Test/baseResults/spv.functionCall.frag.out
+++ b/Test/baseResults/spv.functionCall.frag.out
@@ -3,10 +3,6 @@
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
WARNING: 0:5: varying deprecated in version 130; may be removed in future release
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 76
diff --git a/Test/baseResults/spv.functionSemantics.frag.out b/Test/baseResults/spv.functionSemantics.frag.out
index aa2abd8..005a315 100755
--- a/Test/baseResults/spv.functionSemantics.frag.out
+++ b/Test/baseResults/spv.functionSemantics.frag.out
@@ -1,10 +1,6 @@
spv.functionSemantics.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 156
diff --git a/Test/baseResults/spv.glFragColor.frag.out b/Test/baseResults/spv.glFragColor.frag.out
index df825a0..febbdf4 100755
--- a/Test/baseResults/spv.glFragColor.frag.out
+++ b/Test/baseResults/spv.glFragColor.frag.out
@@ -1,8 +1,4 @@
spv.glFragColor.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 12
diff --git a/Test/baseResults/spv.glsl.register.autoassign.frag.out b/Test/baseResults/spv.glsl.register.autoassign.frag.out
index a9c1bda..11818f6 100644
--- a/Test/baseResults/spv.glsl.register.autoassign.frag.out
+++ b/Test/baseResults/spv.glsl.register.autoassign.frag.out
@@ -1,10 +1,6 @@
spv.glsl.register.autoassign.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 142
diff --git a/Test/baseResults/spv.glsl.register.noautoassign.frag.out b/Test/baseResults/spv.glsl.register.noautoassign.frag.out
index 05bf3cf..327ac04 100644
--- a/Test/baseResults/spv.glsl.register.noautoassign.frag.out
+++ b/Test/baseResults/spv.glsl.register.noautoassign.frag.out
@@ -1,10 +1,6 @@
spv.glsl.register.noautoassign.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 142
diff --git a/Test/baseResults/spv.image.frag.out b/Test/baseResults/spv.image.frag.out
index 2bd26f7..2dd7d4b 100644
--- a/Test/baseResults/spv.image.frag.out
+++ b/Test/baseResults/spv.image.frag.out
@@ -1,10 +1,6 @@
spv.image.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 378
diff --git a/Test/baseResults/spv.int64.frag.out b/Test/baseResults/spv.int64.frag.out
index acfee73..cb5433e 100644
--- a/Test/baseResults/spv.int64.frag.out
+++ b/Test/baseResults/spv.int64.frag.out
@@ -1,10 +1,6 @@
spv.int64.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 480
diff --git a/Test/baseResults/spv.intOps.vert.out b/Test/baseResults/spv.intOps.vert.out
index 22451b9..93d2dfd 100644
--- a/Test/baseResults/spv.intOps.vert.out
+++ b/Test/baseResults/spv.intOps.vert.out
@@ -1,10 +1,6 @@
spv.intOps.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 268
diff --git a/Test/baseResults/spv.interpOps.frag.out b/Test/baseResults/spv.interpOps.frag.out
index a507642..88d8e53 100644
--- a/Test/baseResults/spv.interpOps.frag.out
+++ b/Test/baseResults/spv.interpOps.frag.out
@@ -1,10 +1,6 @@
spv.interpOps.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 100
diff --git a/Test/baseResults/spv.layoutNested.vert.out b/Test/baseResults/spv.layoutNested.vert.out
index fd785ab..0d0b28b 100644
--- a/Test/baseResults/spv.layoutNested.vert.out
+++ b/Test/baseResults/spv.layoutNested.vert.out
@@ -1,10 +1,6 @@
spv.layoutNested.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 66
diff --git a/Test/baseResults/spv.length.frag.out b/Test/baseResults/spv.length.frag.out
index 81f98a6..76f6ca6 100755
--- a/Test/baseResults/spv.length.frag.out
+++ b/Test/baseResults/spv.length.frag.out
@@ -1,8 +1,4 @@
spv.length.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 33
diff --git a/Test/baseResults/spv.localAggregates.frag.out b/Test/baseResults/spv.localAggregates.frag.out
index 21c389a..7ffa874 100755
--- a/Test/baseResults/spv.localAggregates.frag.out
+++ b/Test/baseResults/spv.localAggregates.frag.out
@@ -1,10 +1,6 @@
spv.localAggregates.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 136
diff --git a/Test/baseResults/spv.loops.frag.out b/Test/baseResults/spv.loops.frag.out
index 952f794..8b1b480 100755
--- a/Test/baseResults/spv.loops.frag.out
+++ b/Test/baseResults/spv.loops.frag.out
@@ -1,8 +1,4 @@
spv.loops.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 725
diff --git a/Test/baseResults/spv.loopsArtificial.frag.out b/Test/baseResults/spv.loopsArtificial.frag.out
index 5f10bd3..707a78d 100755
--- a/Test/baseResults/spv.loopsArtificial.frag.out
+++ b/Test/baseResults/spv.loopsArtificial.frag.out
@@ -1,8 +1,4 @@
spv.loopsArtificial.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 158
diff --git a/Test/baseResults/spv.matFun.vert.out b/Test/baseResults/spv.matFun.vert.out
index 0aa0a52..38d9d2c 100755
--- a/Test/baseResults/spv.matFun.vert.out
+++ b/Test/baseResults/spv.matFun.vert.out
@@ -1,10 +1,6 @@
spv.matFun.vert
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 103
diff --git a/Test/baseResults/spv.matrix.frag.out b/Test/baseResults/spv.matrix.frag.out
index 7b34fca..700e90e 100644
--- a/Test/baseResults/spv.matrix.frag.out
+++ b/Test/baseResults/spv.matrix.frag.out
@@ -1,10 +1,6 @@
spv.matrix.frag
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 261
diff --git a/Test/baseResults/spv.matrix2.frag.out b/Test/baseResults/spv.matrix2.frag.out
index e0497b0..78facff 100644
--- a/Test/baseResults/spv.matrix2.frag.out
+++ b/Test/baseResults/spv.matrix2.frag.out
@@ -1,8 +1,4 @@
spv.matrix2.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 221
diff --git a/Test/baseResults/spv.memoryQualifier.frag.out b/Test/baseResults/spv.memoryQualifier.frag.out
index e2bfb39..a990e47 100644
--- a/Test/baseResults/spv.memoryQualifier.frag.out
+++ b/Test/baseResults/spv.memoryQualifier.frag.out
@@ -1,10 +1,6 @@
spv.memoryQualifier.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 97
diff --git a/Test/baseResults/spv.merge-unreachable.frag.out b/Test/baseResults/spv.merge-unreachable.frag.out
index 6e32618..58bbb06 100644
--- a/Test/baseResults/spv.merge-unreachable.frag.out
+++ b/Test/baseResults/spv.merge-unreachable.frag.out
@@ -1,10 +1,6 @@
spv.merge-unreachable.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 25
diff --git a/Test/baseResults/spv.multiStruct.comp.out b/Test/baseResults/spv.multiStruct.comp.out
index 28402ce..f8c0eea 100755
--- a/Test/baseResults/spv.multiStruct.comp.out
+++ b/Test/baseResults/spv.multiStruct.comp.out
@@ -1,10 +1,6 @@
spv.multiStruct.comp
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked compute stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 157
diff --git a/Test/baseResults/spv.multiStructFuncall.frag.out b/Test/baseResults/spv.multiStructFuncall.frag.out
index dcbcfa0..b9b0cb2 100755
--- a/Test/baseResults/spv.multiStructFuncall.frag.out
+++ b/Test/baseResults/spv.multiStructFuncall.frag.out
@@ -1,10 +1,6 @@
spv.multiStructFuncall.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 63
diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out
index 3206faa..ea694ee 100755
--- a/Test/baseResults/spv.newTexture.frag.out
+++ b/Test/baseResults/spv.newTexture.frag.out
@@ -1,10 +1,6 @@
spv.newTexture.frag
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 284
diff --git a/Test/baseResults/spv.noDeadDecorations.vert.out b/Test/baseResults/spv.noDeadDecorations.vert.out
index e9b2356..41d2a43 100644
--- a/Test/baseResults/spv.noDeadDecorations.vert.out
+++ b/Test/baseResults/spv.noDeadDecorations.vert.out
@@ -1,10 +1,6 @@
spv.noDeadDecorations.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 32
diff --git a/Test/baseResults/spv.noWorkgroup.comp.out b/Test/baseResults/spv.noWorkgroup.comp.out
index f12e620..0f88436 100755
--- a/Test/baseResults/spv.noWorkgroup.comp.out
+++ b/Test/baseResults/spv.noWorkgroup.comp.out
@@ -1,10 +1,6 @@
spv.noWorkgroup.comp
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked compute stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 12
diff --git a/Test/baseResults/spv.nonSquare.vert.out b/Test/baseResults/spv.nonSquare.vert.out
index 329a71c..684d4f1 100755
--- a/Test/baseResults/spv.nonSquare.vert.out
+++ b/Test/baseResults/spv.nonSquare.vert.out
@@ -1,8 +1,4 @@
spv.nonSquare.vert
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 90
diff --git a/Test/baseResults/spv.offsets.frag.out b/Test/baseResults/spv.offsets.frag.out
index b0091ea..ea4be8f 100755
--- a/Test/baseResults/spv.offsets.frag.out
+++ b/Test/baseResults/spv.offsets.frag.out
@@ -1,10 +1,6 @@
spv.offsets.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 15
diff --git a/Test/baseResults/spv.precise.tesc.out b/Test/baseResults/spv.precise.tesc.out
index 0331a14..4bae395 100644
--- a/Test/baseResults/spv.precise.tesc.out
+++ b/Test/baseResults/spv.precise.tesc.out
@@ -1,10 +1,6 @@
spv.precise.tesc
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked tessellation control stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 72
diff --git a/Test/baseResults/spv.precise.tese.out b/Test/baseResults/spv.precise.tese.out
index 4033981..4f1839c 100644
--- a/Test/baseResults/spv.precise.tese.out
+++ b/Test/baseResults/spv.precise.tese.out
@@ -1,10 +1,6 @@
spv.precise.tese
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked tessellation evaluation stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 119
diff --git a/Test/baseResults/spv.precision.frag.out b/Test/baseResults/spv.precision.frag.out
index 33e4fb2..f49b356 100755
--- a/Test/baseResults/spv.precision.frag.out
+++ b/Test/baseResults/spv.precision.frag.out
@@ -1,10 +1,6 @@
spv.precision.frag
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 127
diff --git a/Test/baseResults/spv.prepost.frag.out b/Test/baseResults/spv.prepost.frag.out
index 9581267..410286c 100755
--- a/Test/baseResults/spv.prepost.frag.out
+++ b/Test/baseResults/spv.prepost.frag.out
@@ -1,8 +1,4 @@
spv.prepost.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 94
diff --git a/Test/baseResults/spv.pushConstant.vert.out b/Test/baseResults/spv.pushConstant.vert.out
index 6b314e0..bdefd63 100644
--- a/Test/baseResults/spv.pushConstant.vert.out
+++ b/Test/baseResults/spv.pushConstant.vert.out
@@ -1,10 +1,6 @@
spv.pushConstant.vert
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 35
diff --git a/Test/baseResults/spv.qualifiers.vert.out b/Test/baseResults/spv.qualifiers.vert.out
index d2baf72..37f474c 100755
--- a/Test/baseResults/spv.qualifiers.vert.out
+++ b/Test/baseResults/spv.qualifiers.vert.out
@@ -1,10 +1,6 @@
spv.qualifiers.vert
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 21
diff --git a/Test/baseResults/spv.queryL.frag.out b/Test/baseResults/spv.queryL.frag.out
index 2236c66..fbdcbc8 100755
--- a/Test/baseResults/spv.queryL.frag.out
+++ b/Test/baseResults/spv.queryL.frag.out
@@ -1,10 +1,6 @@
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 10000
// Generated by (magic number): 80001
// Id's are bound by 224
diff --git a/Test/baseResults/spv.register.autoassign-2.frag.out b/Test/baseResults/spv.register.autoassign-2.frag.out
index 038c7f0..6d2ad36 100644
--- a/Test/baseResults/spv.register.autoassign-2.frag.out
+++ b/Test/baseResults/spv.register.autoassign-2.frag.out
@@ -1,11 +1,7 @@
spv.register.autoassign-2.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 30
+// Id's are bound by 31
Capability Shader
1: ExtInstImport "GLSL.std.450"
@@ -16,14 +12,14 @@
Name 9 "Color"
Name 12 "g_tScene[0]"
Name 16 "g_tSamp"
- Name 24 "g_tScene[1]"
+ Name 25 "g_tScene[1]"
Decorate 9(Color) Location 0
Decorate 12(g_tScene[0]) DescriptorSet 0
Decorate 12(g_tScene[0]) Binding 10
Decorate 16(g_tSamp) DescriptorSet 0
Decorate 16(g_tSamp) Binding 5
- Decorate 24(g_tScene[1]) DescriptorSet 0
- Decorate 24(g_tScene[1]) Binding 11
+ Decorate 25(g_tScene[1]) DescriptorSet 0
+ Decorate 25(g_tScene[1]) Binding 11
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -39,19 +35,20 @@
18: TypeSampledImage 10
20: TypeVector 6(float) 2
21: 6(float) Constant 1050253722
- 22: 20(fvec2) ConstantComposite 21 21
- 24(g_tScene[1]): 11(ptr) Variable UniformConstant
+ 22: 6(float) Constant 1053609165
+ 23: 20(fvec2) ConstantComposite 21 22
+ 25(g_tScene[1]): 11(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
13: 10 Load 12(g_tScene[0])
17: 14 Load 16(g_tSamp)
19: 18 SampledImage 13 17
- 23: 7(fvec4) ImageSampleImplicitLod 19 22
- 25: 10 Load 24(g_tScene[1])
- 26: 14 Load 16(g_tSamp)
- 27: 18 SampledImage 25 26
- 28: 7(fvec4) ImageSampleImplicitLod 27 22
- 29: 7(fvec4) FAdd 23 28
- Store 9(Color) 29
+ 24: 7(fvec4) ImageSampleImplicitLod 19 23
+ 26: 10 Load 25(g_tScene[1])
+ 27: 14 Load 16(g_tSamp)
+ 28: 18 SampledImage 26 27
+ 29: 7(fvec4) ImageSampleImplicitLod 28 23
+ 30: 7(fvec4) FAdd 24 29
+ Store 9(Color) 30
Return
FunctionEnd
diff --git a/Test/baseResults/spv.register.autoassign.frag.out b/Test/baseResults/spv.register.autoassign.frag.out
index 708f475..4b4655e 100644
--- a/Test/baseResults/spv.register.autoassign.frag.out
+++ b/Test/baseResults/spv.register.autoassign.frag.out
@@ -1,8 +1,4 @@
spv.register.autoassign.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 150
diff --git a/Test/baseResults/spv.register.autoassign.rangetest.frag.out b/Test/baseResults/spv.register.autoassign.rangetest.frag.out
index 94933fb..8eb76c9 100644
--- a/Test/baseResults/spv.register.autoassign.rangetest.frag.out
+++ b/Test/baseResults/spv.register.autoassign.rangetest.frag.out
@@ -1,7 +1,4 @@
spv.register.autoassign.rangetest.frag
-
-Linked fragment stage:
-
INTERNAL ERROR: mapped binding out of range: g_tSamp
INTERNAL ERROR: mapped binding out of range: g_tScene
diff --git a/Test/baseResults/spv.register.noautoassign.frag.out b/Test/baseResults/spv.register.noautoassign.frag.out
index ad476ee..71140dc 100644
--- a/Test/baseResults/spv.register.noautoassign.frag.out
+++ b/Test/baseResults/spv.register.noautoassign.frag.out
@@ -1,8 +1,4 @@
spv.register.noautoassign.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 150
diff --git a/Test/baseResults/spv.rw.autoassign.frag.out b/Test/baseResults/spv.rw.autoassign.frag.out
index 851ef46..d6b75ba 100644
--- a/Test/baseResults/spv.rw.autoassign.frag.out
+++ b/Test/baseResults/spv.rw.autoassign.frag.out
@@ -1,8 +1,4 @@
spv.rw.autoassign.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 37
diff --git a/Test/baseResults/spv.separate.frag.out b/Test/baseResults/spv.separate.frag.out
index 2a71a01..c654117 100644
--- a/Test/baseResults/spv.separate.frag.out
+++ b/Test/baseResults/spv.separate.frag.out
@@ -1,10 +1,6 @@
spv.separate.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 319
diff --git a/Test/baseResults/spv.set.vert.out b/Test/baseResults/spv.set.vert.out
index 72fbaa7..38cb669 100755
--- a/Test/baseResults/spv.set.vert.out
+++ b/Test/baseResults/spv.set.vert.out
@@ -1,10 +1,6 @@
spv.set.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 22
diff --git a/Test/baseResults/spv.shaderBallot.comp.out b/Test/baseResults/spv.shaderBallot.comp.out
index b837b8b..4f03312 100644
--- a/Test/baseResults/spv.shaderBallot.comp.out
+++ b/Test/baseResults/spv.shaderBallot.comp.out
@@ -1,10 +1,6 @@
spv.shaderBallot.comp
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked compute stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 299
diff --git a/Test/baseResults/spv.shaderDrawParams.vert.out b/Test/baseResults/spv.shaderDrawParams.vert.out
index ad53810..41ad78d 100644
--- a/Test/baseResults/spv.shaderDrawParams.vert.out
+++ b/Test/baseResults/spv.shaderDrawParams.vert.out
@@ -1,10 +1,6 @@
spv.shaderDrawParams.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 53
diff --git a/Test/baseResults/spv.shaderGroupVote.comp.out b/Test/baseResults/spv.shaderGroupVote.comp.out
index e63164d..f8bfae8 100644
--- a/Test/baseResults/spv.shaderGroupVote.comp.out
+++ b/Test/baseResults/spv.shaderGroupVote.comp.out
@@ -1,10 +1,6 @@
spv.shaderGroupVote.comp
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked compute stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 37
diff --git a/Test/baseResults/spv.shiftOps.frag.out b/Test/baseResults/spv.shiftOps.frag.out
index 39e40ec..498c287 100644
--- a/Test/baseResults/spv.shiftOps.frag.out
+++ b/Test/baseResults/spv.shiftOps.frag.out
@@ -1,10 +1,6 @@
spv.shiftOps.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 38
diff --git a/Test/baseResults/spv.shortCircuit.frag.out b/Test/baseResults/spv.shortCircuit.frag.out
index 5b39b1c..7d5189a 100644
--- a/Test/baseResults/spv.shortCircuit.frag.out
+++ b/Test/baseResults/spv.shortCircuit.frag.out
@@ -1,10 +1,6 @@
spv.shortCircuit.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 147
diff --git a/Test/baseResults/spv.simpleFunctionCall.frag.out b/Test/baseResults/spv.simpleFunctionCall.frag.out
index 458a90d..2e6b671 100755
--- a/Test/baseResults/spv.simpleFunctionCall.frag.out
+++ b/Test/baseResults/spv.simpleFunctionCall.frag.out
@@ -1,8 +1,4 @@
spv.simpleFunctionCall.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 19
diff --git a/Test/baseResults/spv.simpleMat.vert.out b/Test/baseResults/spv.simpleMat.vert.out
index 3e0f05e..2cad631 100755
--- a/Test/baseResults/spv.simpleMat.vert.out
+++ b/Test/baseResults/spv.simpleMat.vert.out
@@ -1,10 +1,6 @@
spv.simpleMat.vert
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 39
diff --git a/Test/baseResults/spv.sparseTexture.frag.out b/Test/baseResults/spv.sparseTexture.frag.out
index ae48f41..431ef15 100644
--- a/Test/baseResults/spv.sparseTexture.frag.out
+++ b/Test/baseResults/spv.sparseTexture.frag.out
@@ -1,10 +1,6 @@
spv.sparseTexture.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 438
diff --git a/Test/baseResults/spv.sparseTextureClamp.frag.out b/Test/baseResults/spv.sparseTextureClamp.frag.out
index 1922ac1..175dc35 100644
--- a/Test/baseResults/spv.sparseTextureClamp.frag.out
+++ b/Test/baseResults/spv.sparseTextureClamp.frag.out
@@ -1,10 +1,6 @@
spv.sparseTextureClamp.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 360
diff --git a/Test/baseResults/spv.specConst.vert.out b/Test/baseResults/spv.specConst.vert.out
index db5a417..5a7de46 100755
--- a/Test/baseResults/spv.specConst.vert.out
+++ b/Test/baseResults/spv.specConst.vert.out
@@ -1,10 +1,6 @@
spv.specConst.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 27
diff --git a/Test/baseResults/spv.specConstant.comp.out b/Test/baseResults/spv.specConstant.comp.out
index 2f16f04..481ed68 100644
--- a/Test/baseResults/spv.specConstant.comp.out
+++ b/Test/baseResults/spv.specConstant.comp.out
@@ -1,10 +1,6 @@
spv.specConstant.comp
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked compute stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 27
diff --git a/Test/baseResults/spv.specConstant.vert.out b/Test/baseResults/spv.specConstant.vert.out
index edda4a7..dc10e23 100644
--- a/Test/baseResults/spv.specConstant.vert.out
+++ b/Test/baseResults/spv.specConstant.vert.out
@@ -1,10 +1,6 @@
spv.specConstant.vert
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 81
diff --git a/Test/baseResults/spv.specConstantComposite.vert.out b/Test/baseResults/spv.specConstantComposite.vert.out
index c4585e4..f8c556e 100644
--- a/Test/baseResults/spv.specConstantComposite.vert.out
+++ b/Test/baseResults/spv.specConstantComposite.vert.out
@@ -1,10 +1,6 @@
spv.specConstantComposite.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 43
diff --git a/Test/baseResults/spv.specConstantOperations.vert.out b/Test/baseResults/spv.specConstantOperations.vert.out
index ab42558..e2395c8 100644
--- a/Test/baseResults/spv.specConstantOperations.vert.out
+++ b/Test/baseResults/spv.specConstantOperations.vert.out
@@ -1,10 +1,6 @@
spv.specConstantOperations.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 135
diff --git a/Test/baseResults/spv.structAssignment.frag.out b/Test/baseResults/spv.structAssignment.frag.out
index abff683..eb796f7 100755
--- a/Test/baseResults/spv.structAssignment.frag.out
+++ b/Test/baseResults/spv.structAssignment.frag.out
@@ -2,10 +2,6 @@
WARNING: 0:6: '' : all default precisions are highp; use precision statements to quiet warning, e.g.:
"precision mediump int; precision highp float;"
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 50
diff --git a/Test/baseResults/spv.structDeref.frag.out b/Test/baseResults/spv.structDeref.frag.out
index 78ebdc6..e60159f 100755
--- a/Test/baseResults/spv.structDeref.frag.out
+++ b/Test/baseResults/spv.structDeref.frag.out
@@ -1,8 +1,4 @@
spv.structDeref.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 123
diff --git a/Test/baseResults/spv.structure.frag.out b/Test/baseResults/spv.structure.frag.out
index 8d91ed0..f7cb2d2 100755
--- a/Test/baseResults/spv.structure.frag.out
+++ b/Test/baseResults/spv.structure.frag.out
@@ -1,8 +1,4 @@
spv.structure.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 60
diff --git a/Test/baseResults/spv.subpass.frag.out b/Test/baseResults/spv.subpass.frag.out
index 93d680c..c242111 100644
--- a/Test/baseResults/spv.subpass.frag.out
+++ b/Test/baseResults/spv.subpass.frag.out
@@ -1,10 +1,6 @@
spv.subpass.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 67
diff --git a/Test/baseResults/spv.switch.frag.out b/Test/baseResults/spv.switch.frag.out
index 87ea4c8..86acb6c 100755
--- a/Test/baseResults/spv.switch.frag.out
+++ b/Test/baseResults/spv.switch.frag.out
@@ -4,10 +4,6 @@
WARNING: 0:134: 'switch' : last case/default label not followed by statements
WARNING: 0:139: 'switch' : last case/default label not followed by statements
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 269
diff --git a/Test/baseResults/spv.swizzle.frag.out b/Test/baseResults/spv.swizzle.frag.out
index 471fed1..46978f8 100755
--- a/Test/baseResults/spv.swizzle.frag.out
+++ b/Test/baseResults/spv.swizzle.frag.out
@@ -1,8 +1,4 @@
spv.swizzle.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 108
diff --git a/Test/baseResults/spv.swizzleInversion.frag.out b/Test/baseResults/spv.swizzleInversion.frag.out
index 6b92206..bf0699a 100755
--- a/Test/baseResults/spv.swizzleInversion.frag.out
+++ b/Test/baseResults/spv.swizzleInversion.frag.out
@@ -1,10 +1,6 @@
spv.swizzleInversion.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 46
diff --git a/Test/baseResults/spv.test.frag.out b/Test/baseResults/spv.test.frag.out
index 8f1c526..bf0135a 100644
--- a/Test/baseResults/spv.test.frag.out
+++ b/Test/baseResults/spv.test.frag.out
@@ -1,10 +1,6 @@
spv.test.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 55
diff --git a/Test/baseResults/spv.test.vert.out b/Test/baseResults/spv.test.vert.out
index 697e468..623d16b 100644
--- a/Test/baseResults/spv.test.vert.out
+++ b/Test/baseResults/spv.test.vert.out
@@ -1,10 +1,6 @@
spv.test.vert
WARNING: 0:5: attribute deprecated in version 130; may be removed in future release
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24
diff --git a/Test/baseResults/spv.texture.frag.out b/Test/baseResults/spv.texture.frag.out
index 30f3f28..467f254 100755
--- a/Test/baseResults/spv.texture.frag.out
+++ b/Test/baseResults/spv.texture.frag.out
@@ -3,10 +3,6 @@
WARNING: 0:11: varying deprecated in version 130; may be removed in future release
WARNING: 0:12: varying deprecated in version 130; may be removed in future release
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 305
diff --git a/Test/baseResults/spv.texture.vert.out b/Test/baseResults/spv.texture.vert.out
index cc3d3da..c361549 100755
--- a/Test/baseResults/spv.texture.vert.out
+++ b/Test/baseResults/spv.texture.vert.out
@@ -1,8 +1,4 @@
spv.texture.vert
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 150
diff --git a/Test/baseResults/spv.types.frag.out b/Test/baseResults/spv.types.frag.out
index 4295370..9a2d8e3 100755
--- a/Test/baseResults/spv.types.frag.out
+++ b/Test/baseResults/spv.types.frag.out
@@ -1,8 +1,4 @@
spv.types.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 260
diff --git a/Test/baseResults/spv.uint.frag.out b/Test/baseResults/spv.uint.frag.out
index 6682e7c..e9ba0ce 100755
--- a/Test/baseResults/spv.uint.frag.out
+++ b/Test/baseResults/spv.uint.frag.out
@@ -1,10 +1,6 @@
spv.uint.frag
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 213
diff --git a/Test/baseResults/spv.uniformArray.frag.out b/Test/baseResults/spv.uniformArray.frag.out
index e66eda6..447ad4f 100644
--- a/Test/baseResults/spv.uniformArray.frag.out
+++ b/Test/baseResults/spv.uniformArray.frag.out
@@ -1,8 +1,4 @@
spv.uniformArray.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 53
diff --git a/Test/baseResults/spv.variableArrayIndex.frag.out b/Test/baseResults/spv.variableArrayIndex.frag.out
index 1f8ee96..b4d3fe0 100755
--- a/Test/baseResults/spv.variableArrayIndex.frag.out
+++ b/Test/baseResults/spv.variableArrayIndex.frag.out
@@ -1,10 +1,6 @@
spv.variableArrayIndex.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 93
diff --git a/Test/baseResults/spv.varyingArray.frag.out b/Test/baseResults/spv.varyingArray.frag.out
index 4a7d2ee..58833ea 100755
--- a/Test/baseResults/spv.varyingArray.frag.out
+++ b/Test/baseResults/spv.varyingArray.frag.out
@@ -1,8 +1,4 @@
spv.varyingArray.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 61
diff --git a/Test/baseResults/spv.varyingArrayIndirect.frag.out b/Test/baseResults/spv.varyingArrayIndirect.frag.out
index 410fd3c..9c01840 100755
--- a/Test/baseResults/spv.varyingArrayIndirect.frag.out
+++ b/Test/baseResults/spv.varyingArrayIndirect.frag.out
@@ -1,8 +1,4 @@
spv.varyingArrayIndirect.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 70
diff --git a/Test/baseResults/spv.voidFunction.frag.out b/Test/baseResults/spv.voidFunction.frag.out
index 1d4b694..4434861 100755
--- a/Test/baseResults/spv.voidFunction.frag.out
+++ b/Test/baseResults/spv.voidFunction.frag.out
@@ -1,10 +1,6 @@
spv.voidFunction.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 43
diff --git a/Test/baseResults/spv.while-continue-break.vert.out b/Test/baseResults/spv.while-continue-break.vert.out
index 2ec3310..73dc35c 100644
--- a/Test/baseResults/spv.while-continue-break.vert.out
+++ b/Test/baseResults/spv.while-continue-break.vert.out
@@ -1,10 +1,6 @@
spv.while-continue-break.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 41
diff --git a/Test/baseResults/spv.while-simple.vert.out b/Test/baseResults/spv.while-simple.vert.out
index 0c1c822..82121dd 100755
--- a/Test/baseResults/spv.while-simple.vert.out
+++ b/Test/baseResults/spv.while-simple.vert.out
@@ -1,10 +1,6 @@
spv.while-simple.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
-
-Linked vertex stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 22
diff --git a/Test/baseResults/spv.whileLoop.frag.out b/Test/baseResults/spv.whileLoop.frag.out
index 8de5e95..ce1e195 100755
--- a/Test/baseResults/spv.whileLoop.frag.out
+++ b/Test/baseResults/spv.whileLoop.frag.out
@@ -1,8 +1,4 @@
spv.whileLoop.frag
-
-Linked fragment stage:
-
-
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 35
diff --git a/Test/baseResults/vulkan.comp.out b/Test/baseResults/vulkan.comp.out
index 7f1fd18..5eb4c5b 100644
--- a/Test/baseResults/vulkan.comp.out
+++ b/Test/baseResults/vulkan.comp.out
@@ -4,8 +4,4 @@
ERROR: 1 compilation errors. No code generated.
-
-Linked compute stage:
-
-
SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/vulkan.frag.out b/Test/baseResults/vulkan.frag.out
index d4da919..1df2c3e 100644
--- a/Test/baseResults/vulkan.frag.out
+++ b/Test/baseResults/vulkan.frag.out
@@ -43,9 +43,6 @@
ERROR: 38 compilation errors. No code generated.
-
-Linked fragment stage:
-
ERROR: Linking fragment stage: Only one push_constant block is allowed per stage
SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/vulkan.vert.out b/Test/baseResults/vulkan.vert.out
index 5aeaa74..7111a2d 100644
--- a/Test/baseResults/vulkan.vert.out
+++ b/Test/baseResults/vulkan.vert.out
@@ -26,8 +26,4 @@
ERROR: 23 compilation errors. No code generated.
-
-Linked vertex stage:
-
-
SPIR-V is not generated for failed compile or link
diff --git a/Test/hlsl.deadFunctionMissingBody.vert b/Test/hlsl.deadFunctionMissingBody.vert
new file mode 100644
index 0000000..a5f965a
--- /dev/null
+++ b/Test/hlsl.deadFunctionMissingBody.vert
@@ -0,0 +1,8 @@
+float4 main(): SV_Target0 { return 0; }
+struct Surface { float3 albedo; };
+Surface surfaceShader(float fade);
+Surface surfaceShaderExec()
+{
+ float fade = 0;
+ return surfaceShader(0);
+}
diff --git a/Test/hlsl.entry.rename.frag b/Test/hlsl.entry.rename.frag
new file mode 100644
index 0000000..188dfc5
--- /dev/null
+++ b/Test/hlsl.entry.rename.frag
@@ -0,0 +1,15 @@
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+};
+
+void not_the_entry_point() { }
+int also_not_the_entry_point;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+ psout.Color = 0;
+ return psout;
+}
diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag
index 03e7ed3..15db637 100644
--- a/Test/hlsl.intrinsics.frag
+++ b/Test/hlsl.intrinsics.frag
@@ -33,7 +33,7 @@
clip(inF0);
float r014 = cos(inF0);
float r015 = cosh(inF0);
- uint r016 = countbits(7);
+ int r016 = countbits(7);
float r017 = ddx(inF0);
float r018 = ddx_coarse(inF0);
float r019 = ddx_fine(inF0);
@@ -111,7 +111,7 @@
clip(inF0);
float2 r013 = cos(inF0);
float2 r015 = cosh(inF0);
- uint2 r016 = countbits(int2(7,3));
+ int2 r016 = countbits(int2(7,3));
float2 r017 = ddx(inF0);
float2 r018 = ddx_coarse(inF0);
float2 r019 = ddx_fine(inF0);
diff --git a/Test/hlsl.intrinsics.promote.down.frag b/Test/hlsl.intrinsics.promote.down.frag
new file mode 100644
index 0000000..5f4882b
--- /dev/null
+++ b/Test/hlsl.intrinsics.promote.down.frag
@@ -0,0 +1,22 @@
+
+struct PS_OUTPUT { float4 color : SV_Target0; };
+
+int i;
+uint u;
+float f;
+bool b;
+
+int2 i2;
+uint2 u2;
+float2 f2;
+bool2 b2;
+
+PS_OUTPUT main()
+{
+ uint r00 = countbits(f);
+ uint2 r01 = reversebits(f2);
+
+ PS_OUTPUT ps_output;
+ ps_output.color = float4(0,0,0,0);
+ return ps_output;
+};
diff --git a/Test/hlsl.intrinsics.promote.frag b/Test/hlsl.intrinsics.promote.frag
new file mode 100644
index 0000000..89d3e68
--- /dev/null
+++ b/Test/hlsl.intrinsics.promote.frag
@@ -0,0 +1,79 @@
+
+struct PS_OUTPUT { float4 color : SV_Target0; };
+
+int i;
+uint u;
+float f;
+bool b;
+
+int2 i2;
+uint2 u2;
+float2 f2;
+bool2 b2;
+
+Buffer <float> g_tTexbfs;
+Texture1D <float4> g_tTex1df4;
+uint upos;
+float fpos;
+
+PS_OUTPUT main()
+{
+ // Same shapes:
+
+ float r00 = max(b, f);
+ uint r01 = max(b, u);
+ int r02 = max(b, i);
+ float r03 = max(i, f);
+ float r04 = max(u, f);
+
+ float2 r10 = max(b2, f2);
+ uint2 r11 = max(b2, u2);
+ int2 r12 = max(b2, i2);
+ float2 r13 = max(i2, f2);
+ float2 r14 = max(u2, f2);
+
+ float2 r20 = clamp(i2, u2, f2); // 3 args, converts all to best type.
+ uint2 r21 = clamp(b2, u2, b2);
+ float2 r22 = clamp(b2, f2, b2);
+
+ // Mixed shapes:
+ float2 r30 = max(b, f2);
+ uint2 r31 = max(b, u2);
+ int2 r32 = max(b, i2);
+ float2 r33 = max(i, f2);
+ float2 r34 = max(u, f2);
+
+ float2 r40 = clamp(i, u2, f2); // 3 args, converts all to best type.
+ uint2 r41 = clamp(b2, u, b2);
+ float2 r42 = clamp(b2, f, b);
+ int2 r43 = clamp(i, i2, u2);
+
+ float r50 = g_tTexbfs.Load(upos);
+ float r51 = g_tTexbfs.Load(fpos);
+
+ int MipLevel;
+
+ uint WidthU;
+ uint HeightU;
+ uint ElementsU;
+ uint DepthU;
+ uint NumberOfLevelsU;
+ uint NumberOfSamplesU;
+
+ int WidthI;
+ int HeightI;
+ int ElementsI;
+ int DepthI;
+ int NumberOfLevelsI;
+ int NumberOfSamplesI;
+
+ g_tTex1df4 . GetDimensions(WidthI);
+ g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsU);
+ g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsI);
+ g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsI);
+
+ // max(i2, f2);
+ PS_OUTPUT ps_output;
+ ps_output.color = r00;
+ return ps_output;
+};
diff --git a/Test/hlsl.intrinsics.promote.outputs.frag b/Test/hlsl.intrinsics.promote.outputs.frag
new file mode 100644
index 0000000..42fa3e8
--- /dev/null
+++ b/Test/hlsl.intrinsics.promote.outputs.frag
@@ -0,0 +1,49 @@
+
+struct PS_OUTPUT { float4 color : SV_Target0; };
+
+int i;
+uint u;
+float f;
+bool b;
+
+int2 i2;
+uint2 u2;
+float2 f2;
+bool2 b2;
+
+Buffer <float> g_tTexbfs;
+Texture1D <float4> g_tTex1df4;
+uint upos;
+float fpos;
+
+PS_OUTPUT main()
+{
+ int MipLevel;
+
+ uint WidthU;
+ uint HeightU;
+ uint ElementsU;
+ uint DepthU;
+ uint NumberOfLevelsU;
+ uint NumberOfSamplesU;
+
+ int WidthI;
+ int HeightI;
+ int ElementsI;
+ int DepthI;
+ int NumberOfLevelsI;
+ int NumberOfSamplesI;
+
+ saturate(fpos);
+
+ // Test output promotions
+ g_tTex1df4 . GetDimensions(WidthI);
+ g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsU);
+ g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsI);
+ g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsI);
+
+ // max(i2, f2);
+ PS_OUTPUT ps_output;
+ ps_output.color = 0;
+ return ps_output;
+};
diff --git a/Test/hlsl.promote.atomic.frag b/Test/hlsl.promote.atomic.frag
new file mode 100644
index 0000000..2b46225
--- /dev/null
+++ b/Test/hlsl.promote.atomic.frag
@@ -0,0 +1,17 @@
+
+RWBuffer<uint> s_uintbuff; // UINT RWBuffer ...
+
+float4 main() : SV_Target
+{
+ int Loc; // ... with INT variables
+ int Inc;
+ int Orig;
+
+ // This must select the uint flavor of SPIR-V atomic op, and promote
+ // the other arguments as required. The output value from the
+ // imageAtomicAdd AST will be converted to an int for 'Orig'.
+ InterlockedAdd(s_uintbuff[Loc], Inc, Orig);
+
+ return float4(0,0,0,0);
+}
+
diff --git a/Test/hlsl.structarray.flatten.frag b/Test/hlsl.structarray.flatten.frag
new file mode 100644
index 0000000..eedb931
--- /dev/null
+++ b/Test/hlsl.structarray.flatten.frag
@@ -0,0 +1,28 @@
+SamplerState g_samp;
+Texture1D g_tex;
+
+struct tex_t {
+ SamplerState samp;
+ Texture1D tex;
+ int nonopaque_thing;
+};
+
+struct tex_with_arrays_t {
+ SamplerState samp[2];
+ Texture1D tex[2];
+ int nonopaque_thing;
+};
+
+uniform tex_t g_texdata;
+uniform tex_t g_texdata_array[3];
+uniform tex_with_arrays_t g_texdata_array2[3];
+
+struct PS_OUTPUT { float4 color : SV_Target0; };
+
+void main(out PS_OUTPUT ps_output)
+{
+ ps_output.color =
+ g_texdata.tex.Sample(g_texdata.samp, 0.5) +
+ g_texdata_array[1].tex.Sample(g_texdata_array[1].samp, 0.4) +
+ g_texdata_array2[1].tex[0].Sample(g_texdata_array2[1].samp[0], 0.3);
+}
diff --git a/Test/hlsl.structarray.flatten.geom b/Test/hlsl.structarray.flatten.geom
new file mode 100644
index 0000000..1b05dc1
--- /dev/null
+++ b/Test/hlsl.structarray.flatten.geom
@@ -0,0 +1,17 @@
+
+struct VertexData {
+ float4 position : POSITION;
+ float4 color : COLOR0;
+ float2 uv : TEXCOORD0;
+};
+
+[maxvertexcount(4)]
+void main(line VertexData vin[2], inout TriangleStream<VertexData> outStream)
+{
+ VertexData vout;
+
+ vout.color = vin[0].color;
+ vout.uv = vin[0].uv;
+ vout.position = vin[0].position;
+ outStream.Append(vout);
+}
diff --git a/Test/hlsl.structin.vert b/Test/hlsl.structin.vert
index 7eba552..43d0cfd 100644
--- a/Test/hlsl.structin.vert
+++ b/Test/hlsl.structin.vert
@@ -11,4 +11,4 @@
local.b = vi.m[1] + vi.m[0] + float4(vi.coord.x) + d + e;
return local;
-}
\ No newline at end of file
+}
diff --git a/Test/missingBodies.vert b/Test/missingBodies.vert
new file mode 100644
index 0000000..04b7181
--- /dev/null
+++ b/Test/missingBodies.vert
@@ -0,0 +1,24 @@
+#version 450
+
+void bar();
+void foo() { bar(); }
+
+void B();
+void C(int);
+void C(int, int) { }
+void C(bool);
+void A() { B(); C(1); C(true); C(1, 2); }
+
+void main()
+{
+ foo();
+ C(true);
+}
+
+int ret1();
+
+int f1 = ret1();
+
+int ret2() { return 3; }
+
+int f2 = ret2();
diff --git a/Test/runtests b/Test/runtests
index 0640391..a17848b 100755
--- a/Test/runtests
+++ b/Test/runtests
@@ -45,6 +45,20 @@
$EXE -i -C *.vert *.geom *.frag *.tes* *.comp -t > multiThread.out
diff singleThread.out multiThread.out || HASERROR=1
+#
+# entry point renaming tests
+#
+echo Running entry-point renaming tests
+$EXE -i -H -V -D -e main_in_spv --ku --source-entrypoint main hlsl.entry.rename.frag > $TARGETDIR/hlsl.entry.rename.frag.out
+diff -b $BASEDIR/hlsl.entry.rename.frag.out $TARGETDIR/hlsl.entry.rename.frag.out || HASERROR=1
+
+#
+# Testing ill-defined uncalled function
+#
+echo Running ill-defined uncalled function
+$EXE -D -e main -H hlsl.deadFunctionMissingBody.vert > $TARGETDIR/hlsl.deadFunctionMissingBody.vert.out
+diff -b $BASEDIR/hlsl.deadFunctionMissingBody.vert.out $TARGETDIR/hlsl.deadFunctionMissingBody.vert.out || HASERROR=1
+
if [ $HASERROR -eq 0 ]
then
echo Tests Succeeded.
diff --git a/Test/spv.register.autoassign-2.frag b/Test/spv.register.autoassign-2.frag
index b943791..05c4925 100644
--- a/Test/spv.register.autoassign-2.frag
+++ b/Test/spv.register.autoassign-2.frag
@@ -10,6 +10,6 @@
void main(out PS_OUTPUT psout)
{
- psout.Color = g_tScene[0].Sample(g_tSamp, 0.3) +
- g_tScene[1].Sample(g_tSamp, 0.3);
+ psout.Color = g_tScene[0].Sample(g_tSamp, float2(0.3,0.4)) +
+ g_tScene[1].Sample(g_tSamp, float2(0.3,0.4));
}
diff --git a/Test/spv.register.autoassign.rangetest.frag b/Test/spv.register.autoassign.rangetest.frag
index c81c395..314c8e9 100644
--- a/Test/spv.register.autoassign.rangetest.frag
+++ b/Test/spv.register.autoassign.rangetest.frag
@@ -10,6 +10,6 @@
void main(out PS_OUTPUT psout)
{
- psout.Color = g_tScene[0].Sample(g_tSamp, 0.3) +
- g_tScene[1].Sample(g_tSamp, 0.3);
+ psout.Color = g_tScene[0].Sample(g_tSamp, float2(0.3, 0.3)) +
+ g_tScene[1].Sample(g_tSamp, float2(0.3, 0.3));
}
diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h
index 5445009..5fda0eb 100644
--- a/glslang/Include/revision.h
+++ b/glslang/Include/revision.h
@@ -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 "Overload400-PrecQual.1667"
-#define GLSLANG_DATE "27-Nov-2016"
+#define GLSLANG_REVISION "Overload400-PrecQual.1689"
+#define GLSLANG_DATE "12-Dec-2016"
diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp
index 71b4b71..9b6d4c6 100644
--- a/glslang/MachineIndependent/Intermediate.cpp
+++ b/glslang/MachineIndependent/Intermediate.cpp
@@ -45,6 +45,7 @@
#include "propagateNoContraction.h"
#include <cfloat>
+#include <utility>
namespace glslang {
@@ -575,6 +576,27 @@
case EOpDivAssign:
case EOpModAssign:
+ case EOpAtan:
+ case EOpClamp:
+ case EOpCross:
+ case EOpDistance:
+ case EOpDot:
+ case EOpDst:
+ case EOpFaceForward:
+ case EOpFma:
+ case EOpFrexp:
+ case EOpLdexp:
+ case EOpMix:
+ case EOpLit:
+ case EOpMax:
+ case EOpMin:
+ case EOpModf:
+ case EOpPow:
+ case EOpReflect:
+ case EOpRefract:
+ case EOpSmoothStep:
+ case EOpStep:
+
case EOpSequence:
case EOpConstructStruct:
@@ -833,6 +855,9 @@
if (profile == EEsProfile || version == 110)
return false;
+ if (from == to)
+ return true;
+
// TODO: Move more policies into language-specific handlers.
// Some languages allow more general (or potentially, more specific) conversions under some conditions.
if (source == EShSourceHlsl) {
@@ -902,6 +927,8 @@
return version >= 400;
case EbtUint:
return true;
+ case EbtBool:
+ return (source == EShSourceHlsl);
default:
return false;
}
@@ -909,6 +936,8 @@
switch (from) {
case EbtInt:
return true;
+ case EbtBool:
+ return (source == EShSourceHlsl);
default:
return false;
}
@@ -1759,6 +1788,9 @@
if (node->getAsBinaryNode())
return promoteBinary(*node->getAsBinaryNode());
+ if (node->getAsAggregate())
+ return promoteAggregate(*node->getAsAggregate());
+
return false;
}
@@ -2202,6 +2234,77 @@
return true;
}
+//
+// See TIntermediate::promote
+//
+bool TIntermediate::promoteAggregate(TIntermAggregate& node)
+{
+ TOperator op = node.getOp();
+ TIntermSequence& args = node.getSequence();
+ const int numArgs = args.size();
+
+ // Presently, only hlsl does intrinsic promotions.
+ if (getSource() != EShSourceHlsl)
+ return true;
+
+ // set of opcodes that can be promoted in this manner.
+ switch (op) {
+ case EOpAtan:
+ case EOpClamp:
+ case EOpCross:
+ case EOpDistance:
+ case EOpDot:
+ case EOpDst:
+ case EOpFaceForward:
+ // case EOpFindMSB: TODO: ??
+ // case EOpFindLSB: TODO: ??
+ case EOpFma:
+ case EOpMod:
+ case EOpFrexp:
+ case EOpLdexp:
+ case EOpMix:
+ case EOpLit:
+ case EOpMax:
+ case EOpMin:
+ case EOpModf:
+ // case EOpGenMul: TODO: ??
+ case EOpPow:
+ case EOpReflect:
+ case EOpRefract:
+ // case EOpSinCos: TODO: ??
+ case EOpSmoothStep:
+ case EOpStep:
+ break;
+ default:
+ return true;
+ }
+
+ // TODO: array and struct behavior
+
+ // Try converting all nodes to the given node's type
+ TIntermSequence convertedArgs(numArgs, nullptr);
+
+ // Try to convert all types to the nonConvArg type.
+ for (int nonConvArg = 0; nonConvArg < numArgs; ++nonConvArg) {
+ // Try converting all args to this arg's type
+ for (int convArg = 0; convArg < numArgs; ++convArg) {
+ convertedArgs[convArg] = addConversion(op, args[nonConvArg]->getAsTyped()->getType(),
+ args[convArg]->getAsTyped());
+ }
+
+ // If we successfully converted all the args, use the result.
+ if (std::all_of(convertedArgs.begin(), convertedArgs.end(),
+ [](const TIntermNode* node) { return node != nullptr; })) {
+
+ std::swap(args, convertedArgs);
+ return true;
+ }
+ }
+
+ return false;
+}
+
+
void TIntermBinary::updatePrecision()
{
#ifdef AMD_EXTENSIONS
diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp
index dc8c61d..d084af8 100644
--- a/glslang/MachineIndependent/ParseContextBase.cpp
+++ b/glslang/MachineIndependent/ParseContextBase.cpp
@@ -304,7 +304,7 @@
const TFunction* TParseContextBase::selectFunction(
const TVector<const TFunction*> candidateList,
const TFunction& call,
- std::function<bool(const TType& from, const TType& to)> convertible,
+ std::function<bool(const TType& from, const TType& to, TOperator op, int arg)> convertible,
std::function<bool(const TType& from, const TType& to1, const TType& to2)> better,
/* output */ bool& tie)
{
@@ -356,13 +356,13 @@
bool viable = true;
for (int param = 0; param < candidate.getParamCount(); ++param) {
if (candidate[param].type->getQualifier().isParamInput()) {
- if (! convertible(*call[param].type, *candidate[param].type)) {
+ if (! convertible(*call[param].type, *candidate[param].type, candidate.getBuiltInOp(), param)) {
viable = false;
break;
}
}
if (candidate[param].type->getQualifier().isParamOutput()) {
- if (! convertible(*candidate[param].type, *call[param].type)) {
+ if (! convertible(*candidate[param].type, *call[param].type, candidate.getBuiltInOp(), param)) {
viable = false;
break;
}
diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp
index 831e3ac..ed043e0 100644
--- a/glslang/MachineIndependent/ParseHelper.cpp
+++ b/glslang/MachineIndependent/ParseHelper.cpp
@@ -1109,9 +1109,10 @@
// if builtIn == true, it's definitely a built-in function with EOpNull
if (! builtIn) {
call->setUserDefined();
- if (symbolTable.atGlobalLevel())
- error(loc, "can't call user function from global scope", fnCandidate->getName().c_str(), "");
- else
+ if (symbolTable.atGlobalLevel()) {
+ requireProfile(loc, ~EEsProfile, "calling user function from global scope");
+ intermediate.addToCallGraph(infoSink, "main(", fnCandidate->getMangledName());
+ } else
intermediate.addToCallGraph(infoSink, currentCaller, fnCandidate->getMangledName());
}
@@ -4874,7 +4875,7 @@
symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn);
// can 'from' convert to 'to'?
- const auto convertible = [this](const TType& from, const TType& to) -> bool {
+ const auto convertible = [this](const TType& from, const TType& to, TOperator, int) -> bool {
if (from == to)
return true;
if (from.isArray() || to.isArray() || ! from.sameElementShape(to))
diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h
index 165601d..6234db6 100644
--- a/glslang/MachineIndependent/ParseHelper.h
+++ b/glslang/MachineIndependent/ParseHelper.h
@@ -167,7 +167,7 @@
// see implementation for detail
const TFunction* selectFunction(const TVector<const TFunction*>, const TFunction&,
- std::function<bool(const TType&, const TType&)>,
+ std::function<bool(const TType&, const TType&, TOperator, int arg)>,
std::function<bool(const TType&, const TType&, const TType&)>,
/* output */ bool& tie);
diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp
index cc21b2e..e50b12f 100644
--- a/glslang/MachineIndependent/ShaderLang.cpp
+++ b/glslang/MachineIndependent/ShaderLang.cpp
@@ -86,7 +86,7 @@
int version, EProfile profile, EShSource source,
EShLanguage language, TInfoSink& infoSink,
SpvVersion spvVersion, bool forwardCompatible, EShMessages messages,
- bool parsingBuiltIns)
+ bool parsingBuiltIns, const std::string sourceEntryPointName = "")
{
switch (source) {
case EShSourceGlsl:
@@ -96,7 +96,7 @@
case EShSourceHlsl:
return new HlslParseContext(symbolTable, intermediate, parsingBuiltIns, version, profile, spvVersion,
- language, infoSink, forwardCompatible, messages);
+ language, infoSink, sourceEntryPointName.c_str(), forwardCompatible, messages);
default:
infoSink.info.message(EPrefixInternalError, "Unable to determine source language");
return nullptr;
@@ -616,7 +616,8 @@
TIntermediate& intermediate, // returned tree, etc.
ProcessingContext& processingContext,
bool requireNonempty,
- TShader::Includer& includer
+ TShader::Includer& includer,
+ const std::string sourceEntryPointName = ""
)
{
if (! InitThread())
@@ -733,7 +734,7 @@
TParseContextBase* parseContext = CreateParseContext(symbolTable, intermediate, version, profile, source,
compiler->getLanguage(), compiler->infoSink,
- spvVersion, forwardCompatible, messages, false);
+ spvVersion, forwardCompatible, messages, false, sourceEntryPointName);
TPpContext ppContext(*parseContext, names[numPre]? names[numPre]: "", includer);
@@ -1054,14 +1055,15 @@
bool forwardCompatible, // give errors for use of deprecated features
EShMessages messages, // warnings/errors/AST; things to print out
TIntermediate& intermediate,// returned tree, etc.
- TShader::Includer& includer)
+ TShader::Includer& includer,
+ const std::string sourceEntryPointName = "")
{
DoFullParse parser;
return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames,
preamble, optLevel, resources, defaultVersion,
defaultProfile, forceDefaultVersionAndProfile,
forwardCompatible, messages, intermediate, parser,
- true, includer);
+ true, includer, sourceEntryPointName);
}
} // end anonymous namespace for local functions
@@ -1479,7 +1481,7 @@
virtual bool compile(TIntermNode*, int = 0, EProfile = ENoProfile) { return true; }
};
-TShader::TShader(EShLanguage s)
+TShader::TShader(EShLanguage s)
: pool(0), stage(s), lengths(nullptr), stringNames(nullptr), preamble("")
{
infoSink = new TInfoSink;
@@ -1523,6 +1525,11 @@
intermediate->setEntryPointName(entryPoint);
}
+void TShader::setSourceEntryPoint(const char* name)
+{
+ sourceEntryPointName = name;
+}
+
void TShader::setShiftSamplerBinding(unsigned int base) { intermediate->setShiftSamplerBinding(base); }
void TShader::setShiftTextureBinding(unsigned int base) { intermediate->setShiftTextureBinding(base); }
void TShader::setShiftImageBinding(unsigned int base) { intermediate->setShiftImageBinding(base); }
@@ -1550,7 +1557,7 @@
return CompileDeferred(compiler, strings, numStrings, lengths, stringNames,
preamble, EShOptNone, builtInResources, defaultVersion,
defaultProfile, forceDefaultVersionAndProfile,
- forwardCompatible, messages, *intermediate, includer);
+ forwardCompatible, messages, *intermediate, includer, sourceEntryPointName);
}
bool TShader::parse(const TBuiltInResource* builtInResources, int defaultVersion, bool forwardCompatible, EShMessages messages)
@@ -1680,7 +1687,8 @@
newedIntermediate[stage] = true;
}
- infoSink->info << "\nLinked " << StageName(stage) << " stage:\n\n";
+ if (messages & EShMsgAST)
+ infoSink->info << "\nLinked " << StageName(stage) << " stage:\n\n";
if (stages[stage].size() > 1) {
std::list<TShader*>::const_iterator it;
@@ -1688,7 +1696,7 @@
intermediate[stage]->merge(*infoSink, *(*it)->intermediate);
}
- intermediate[stage]->finalCheck(*infoSink);
+ intermediate[stage]->finalCheck(*infoSink, (messages & EShMsgKeepUncalled) != 0);
if (messages & EShMsgAST)
intermediate[stage]->output(*infoSink, true);
diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp
index 050fdae..3834fde 100644
--- a/glslang/MachineIndependent/linkValidate.cpp
+++ b/glslang/MachineIndependent/linkValidate.cpp
@@ -82,19 +82,21 @@
if (source != unit.source)
error(infoSink, "can't link compilation units from different source languages");
- if (source == EShSourceHlsl && unit.getNumEntryPoints() > 0) {
+ if (unit.getNumEntryPoints() > 0) {
if (getNumEntryPoints() > 0)
error(infoSink, "can't handle multiple entry points per stage");
- else
- entryPointName = unit.entryPointName;
+ else {
+ entryPointName = unit.getEntryPointName();
+ entryPointMangledName = unit.getEntryPointMangledName();
+ }
}
- numEntryPoints += unit.numEntryPoints;
- numErrors += unit.numErrors;
+ numEntryPoints += unit.getNumEntryPoints();
+ numErrors += unit.getNumErrors();
numPushConstants += unit.numPushConstants;
callGraph.insert(callGraph.end(), unit.callGraph.begin(), unit.callGraph.end());
if (originUpperLeft != unit.originUpperLeft || pixelCenterInteger != unit.pixelCenterInteger)
- error(infoSink, "gl_FragCoord redeclarations must match across shaders\n");
+ error(infoSink, "gl_FragCoord redeclarations must match across shaders");
if (! earlyFragmentTests)
earlyFragmentTests = unit.earlyFragmentTests;
@@ -375,7 +377,7 @@
//
// Also, lock in defaults of things not set, including array sizes.
//
-void TIntermediate::finalCheck(TInfoSink& infoSink)
+void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled)
{
if (getTreeRoot() == nullptr)
return;
@@ -390,8 +392,9 @@
if (numPushConstants > 1)
error(infoSink, "Only one push_constant block is allowed per stage");
- // recursion checking
+ // recursion and missing body checking
checkCallGraphCycles(infoSink);
+ checkCallGraphBodies(infoSink, keepUncalled);
// overlap/alias/missing I/O, etc.
inOutLocationCheck(infoSink);
@@ -502,7 +505,7 @@
//
void TIntermediate::checkCallGraphCycles(TInfoSink& infoSink)
{
- // Reset everything, once.
+ // Clear fields we'll use for this.
for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) {
call->visited = false;
call->currentPath = false;
@@ -578,6 +581,85 @@
}
//
+// See which functions are reachable from the entry point and which have bodies.
+// Reachable ones with missing bodies are errors.
+// Unreachable bodies are dead code.
+//
+void TIntermediate::checkCallGraphBodies(TInfoSink& infoSink, bool keepUncalled)
+{
+ // Clear fields we'll use for this.
+ for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) {
+ call->visited = false;
+ call->calleeBodyPosition = -1;
+ }
+
+ // The top level of the AST includes function definitions (bodies).
+ // Compare these to function calls in the call graph.
+ // We'll end up knowing which have bodies, and if so,
+ // how to map the call-graph node to the location in the AST.
+ TIntermSequence &functionSequence = getTreeRoot()->getAsAggregate()->getSequence();
+ std::vector<bool> reachable(functionSequence.size(), true); // so that non-functions are reachable
+ for (int f = 0; f < (int)functionSequence.size(); ++f) {
+ glslang::TIntermAggregate* node = functionSequence[f]->getAsAggregate();
+ if (node && (node->getOp() == glslang::EOpFunction)) {
+ if (node->getName().compare(getEntryPointMangledName().c_str()) != 0)
+ reachable[f] = false; // so that function bodies are unreachable, until proven otherwise
+ for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) {
+ if (call->callee == node->getName())
+ call->calleeBodyPosition = f;
+ }
+ }
+ }
+
+ // Start call-graph traversal by visiting the entry point nodes.
+ for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) {
+ if (call->caller.compare(getEntryPointMangledName().c_str()) == 0)
+ call->visited = true;
+ }
+
+ // Propagate 'visited' through the call-graph to every part of the graph it
+ // can reach (seeded with the entry-point setting above).
+ bool changed;
+ do {
+ changed = false;
+ for (auto call1 = callGraph.begin(); call1 != callGraph.end(); ++call1) {
+ if (call1->visited) {
+ for (TGraph::iterator call2 = callGraph.begin(); call2 != callGraph.end(); ++call2) {
+ if (! call2->visited) {
+ if (call1->callee == call2->caller) {
+ changed = true;
+ call2->visited = true;
+ }
+ }
+ }
+ }
+ }
+ } while (changed);
+
+ // Any call-graph node set to visited but without a callee body is an error.
+ for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) {
+ if (call->visited) {
+ if (call->calleeBodyPosition == -1) {
+ error(infoSink, "No function definition (body) found: ");
+ infoSink.info << " " << call->callee << "\n";
+ } else
+ reachable[call->calleeBodyPosition] = true;
+ }
+ }
+
+ // Bodies in the AST not reached by the call graph are dead;
+ // clear them out, since they can't be reached and also can't
+ // be translated further due to possibility of being ill defined.
+ if (! keepUncalled) {
+ for (int f = 0; f < (int)functionSequence.size(); ++f) {
+ if (! reachable[f])
+ functionSequence[f] = nullptr;
+ }
+ functionSequence.erase(std::remove(functionSequence.begin(), functionSequence.end(), nullptr), functionSequence.end());
+ }
+}
+
+//
// Satisfy rules for location qualifiers on inputs and outputs
//
void TIntermediate::inOutLocationCheck(TInfoSink& infoSink)
diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h
index 9ad50c7..6f6db92 100644
--- a/glslang/MachineIndependent/localintermediate.h
+++ b/glslang/MachineIndependent/localintermediate.h
@@ -67,7 +67,9 @@
// by TIntermediate.
//
-// Used for detecting recursion: A "call" is a pair: <caller, callee>.
+// Used for call-graph algorithms for detecting recursion, missing bodies, and dead bodies.
+// A "call" is a pair: <caller, callee>.
+// There can be duplicates. General assumption is the list is small.
struct TCall {
TCall(const TString& pCaller, const TString& pCallee) : caller(pCaller), callee(pCallee) { }
TString caller;
@@ -75,6 +77,7 @@
bool visited;
bool currentPath;
bool errorGiven;
+ int calleeBodyPosition;
};
// A generic 1-D range.
@@ -361,7 +364,7 @@
void addToCallGraph(TInfoSink&, const TString& caller, const TString& callee);
void merge(TInfoSink&, TIntermediate&);
- void finalCheck(TInfoSink&);
+ void finalCheck(TInfoSink&, bool keepUncalled);
void addIoAccessed(const TString& name) { ioAccessed.insert(name); }
bool inIoAccessed(const TString& name) const { return ioAccessed.find(name) != ioAccessed.end(); }
@@ -382,6 +385,7 @@
int addXfbBufferOffset(const TType&);
unsigned int computeTypeXfbSize(const TType&, bool& containsDouble) const;
static int getBaseAlignment(const TType&, int& size, int& stride, bool std140, bool rowMajor);
+ bool promote(TIntermOperator*);
protected:
TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
@@ -392,15 +396,16 @@
void mergeImplicitArraySizes(TType&, const TType&);
void mergeErrorCheck(TInfoSink&, const TIntermSymbol&, const TIntermSymbol&, bool crossStage);
void checkCallGraphCycles(TInfoSink&);
+ void checkCallGraphBodies(TInfoSink&, bool keepUncalled);
void inOutLocationCheck(TInfoSink&);
TIntermSequence& findLinkerObjects() const;
bool userOutputUsed() const;
static int getBaseAlignmentScalar(const TType&, int& size);
bool isSpecializationOperation(const TIntermOperator&) const;
- bool promote(TIntermOperator*);
bool promoteUnary(TIntermUnary&);
bool promoteBinary(TIntermBinary&);
void addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTable&, const TString&);
+ bool promoteAggregate(TIntermAggregate&);
const EShLanguage language; // stage, known at construction time
EShSource source; // source language, known a bit later
diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h
index 967d352..acb5750 100755
--- a/glslang/MachineIndependent/parseVersions.h
+++ b/glslang/MachineIndependent/parseVersions.h
@@ -110,6 +110,7 @@
void getPreamble(std::string&);
bool relaxedErrors() const { return (messages & EShMsgRelaxedErrors) != 0; }
bool suppressWarnings() const { return (messages & EShMsgSuppressWarnings) != 0; }
+ bool isReadingHLSL() const { return (messages & EShMsgReadHlsl) == EShMsgReadHlsl; }
TInfoSink& infoSink;
diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp
index 3c6d012..824a69a 100644
--- a/glslang/MachineIndependent/preprocessor/Pp.cpp
+++ b/glslang/MachineIndependent/preprocessor/Pp.cpp
@@ -897,7 +897,9 @@
token = CPPifdef(0, ppToken);
break;
case PpAtomInclude:
- parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_include_directive, "#include");
+ if(!parseContext.isReadingHLSL()) {
+ parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_include_directive, "#include");
+ }
token = CPPinclude(ppToken);
break;
case PpAtomLine:
diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h
index 6793cdd..afdc7d1 100644
--- a/glslang/Public/ShaderLang.h
+++ b/glslang/Public/ShaderLang.h
@@ -146,6 +146,7 @@
EShMsgOnlyPreprocessor = (1 << 5), // only print out errors produced by the preprocessor
EShMsgReadHlsl = (1 << 6), // use HLSL parsing rules and semantics
EShMsgCascadingErrors = (1 << 7), // get cascading errors; risks error-recovery issues, instead of an early exit
+ EShMsgKeepUncalled = (1 << 8), // for testing, don't eliminate uncalled functions
};
//
@@ -304,6 +305,7 @@
const char* const* s, const int* l, const char* const* names, int n);
void setPreamble(const char* s) { preamble = s; }
void setEntryPoint(const char* entryPoint);
+ void setSourceEntryPoint(const char* sourceEntryPointName);
void setShiftSamplerBinding(unsigned int base);
void setShiftTextureBinding(unsigned int base);
void setShiftImageBinding(unsigned int base);
@@ -374,9 +376,7 @@
// Signals that the parser will no longer use the contents of the
// specified IncludeResult.
virtual void releaseInclude(IncludeResult* result) = 0;
-#ifdef __ANDROID__
- virtual ~Includer() {} // Pacify -Werror=non-virtual-dtor
-#endif
+ virtual ~Includer() {}
};
// Returns an error message for any #include directive.
@@ -437,6 +437,9 @@
const char* preamble;
int numStrings;
+ // a function in the source string can be renamed FROM this TO the name given in setEntryPoint.
+ std::string sourceEntryPointName;
+
friend class TProgram;
private:
diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp
index 429f445..f0332aa 100644
--- a/gtests/Hlsl.FromFile.cpp
+++ b/gtests/Hlsl.FromFile.cpp
@@ -134,6 +134,9 @@
{"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"},
{"hlsl.intrinsics.negative.frag", "PixelShaderFunction"},
{"hlsl.intrinsics.negative.vert", "VertexShaderFunction"},
+ {"hlsl.intrinsics.promote.frag", "main"},
+ {"hlsl.intrinsics.promote.down.frag", "main"},
+ {"hlsl.intrinsics.promote.outputs.frag", "main"},
{"hlsl.layout.frag", "main"},
{"hlsl.load.2dms.dx10.frag", "main"},
{"hlsl.load.array.dx10.frag", "main"},
@@ -160,6 +163,7 @@
{"hlsl.partialInit.frag", "PixelShaderFunction"},
{"hlsl.pp.line.frag", "main"},
{"hlsl.precise.frag", "main"},
+ {"hlsl.promote.atomic.frag", "main"},
{"hlsl.promote.binary.frag", "main"},
{"hlsl.promote.vec1.frag", "main"},
{"hlsl.promotions.frag", "main"},
@@ -200,6 +204,8 @@
{"hlsl.shapeConvRet.frag", "main"},
{"hlsl.stringtoken.frag", "main"},
{"hlsl.string.frag", "main"},
+ {"hlsl.structarray.flatten.frag", "main"},
+ {"hlsl.structarray.flatten.geom", "main"},
{"hlsl.structin.vert", "main"},
{"hlsl.intrinsics.vert", "VertexShaderFunction"},
{"hlsl.matType.frag", "PixelShaderFunction"},
diff --git a/gtests/Link.FromFile.cpp b/gtests/Link.FromFile.cpp
index 2651a1e..ab845bf 100644
--- a/gtests/Link.FromFile.cpp
+++ b/gtests/Link.FromFile.cpp
@@ -99,6 +99,7 @@
{"150.tesc", "150.tese", "400.tesc", "400.tese", "410.tesc", "420.tesc", "420.tese"},
{"max_vertices_0.geom"},
{"es-link1.frag", "es-link2.frag"},
+ {"missingBodies.vert"}
})),
);
// clang-format on
diff --git a/gtests/TestFixture.cpp b/gtests/TestFixture.cpp
index 7d27b3b..db2b81d 100644
--- a/gtests/TestFixture.cpp
+++ b/gtests/TestFixture.cpp
@@ -84,9 +84,11 @@
break;
case Target::Spv:
result = static_cast<EShMessages>(result | EShMsgSpvRules);
+ result = static_cast<EShMessages>(result | EShMsgKeepUncalled);
break;
case Target::BothASTAndSpv:
result = static_cast<EShMessages>(result | EShMsgSpvRules | EShMsgAST);
+ result = static_cast<EShMessages>(result | EShMsgKeepUncalled);
break;
};
diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp
index 10dfcc8..e676e95 100755
--- a/hlsl/hlslGrammar.cpp
+++ b/hlsl/hlslGrammar.cpp
@@ -308,8 +308,13 @@
// identifier
HlslToken idToken;
while (acceptIdentifier(idToken)) {
+ TString* fnName = idToken.string;
+
+ // Potentially rename shader entry point function. No-op most of the time.
+ parseContext.renameShaderFunction(fnName);
+
// function_parameters
- TFunction& function = *new TFunction(idToken.string, declaredType);
+ TFunction& function = *new TFunction(fnName, declaredType);
if (acceptFunctionParameters(function)) {
// post_decls
acceptPostDecls(function.getWritableType().getQualifier());
@@ -384,7 +389,7 @@
else if (variableType.getBasicType() == EbtBlock)
parseContext.declareBlock(idToken.loc, variableType, idToken.string);
else {
- if (variableType.getQualifier().storage == EvqUniform && ! variableType.isOpaque()) {
+ if (variableType.getQualifier().storage == EvqUniform && ! variableType.containsOpaque()) {
// this isn't really an individual variable, but a member of the $Global buffer
parseContext.growGlobalUniformBlock(idToken.loc, variableType, *idToken.string);
} else {
@@ -2210,6 +2215,20 @@
return false;
}
+ // This is to guarantee we do this no matter how we get out of the stack frame.
+ // This way there's no bug if an early return forgets to do it.
+ struct tFinalize {
+ tFinalize(HlslParseContext& p) : parseContext(p) { }
+ ~tFinalize() { parseContext.finalizeFlattening(); }
+ HlslParseContext& parseContext;
+ } finalize(parseContext);
+
+ // Initialize the flattening accumulation data, so we can track data across multiple bracket or
+ // dot operators. This can also be nested, e.g, for [], so we have to track each nesting
+ // level: hence the init and finalize. Even though in practice these must be
+ // constants, they are parsed no matter what.
+ parseContext.initFlattening();
+
// Something was found, chain as many postfix operations as exist.
do {
TSourceLoc loc = token.loc;
@@ -2243,7 +2262,7 @@
node = parseContext.handleDotDereference(field.loc, node, *field.string);
// In the event of a method node, we look for an open paren and accept the function call.
- if (node->getAsMethodNode() != nullptr && peekTokenClass(EHTokLeftParen)) {
+ if (node != nullptr && node->getAsMethodNode() != nullptr && peekTokenClass(EHTokLeftParen)) {
if (! acceptFunctionCall(field, node, base)) {
expected("function parameters");
return false;
diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp
index 8685dcd..54cd10f 100755
--- a/hlsl/hlslParseHelper.cpp
+++ b/hlsl/hlslParseHelper.cpp
@@ -45,12 +45,14 @@
#include "../glslang/OSDependent/osinclude.h"
#include <algorithm>
+#include <functional>
#include <cctype>
namespace glslang {
HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins,
int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink,
+ const TString sourceEntryPointName,
bool forwardCompatible, EShMessages messages) :
TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, infoSink, forwardCompatible, messages),
contextPragma(true, false),
@@ -58,7 +60,8 @@
postEntryPointReturn(false),
limits(resources.limits),
entryPointOutput(nullptr),
- nextInLocation(0), nextOutLocation(0)
+ nextInLocation(0), nextOutLocation(0),
+ sourceEntryPointName(sourceEntryPointName)
{
globalUniformDefaults.clear();
globalUniformDefaults.layoutMatrix = ElmRowMajor;
@@ -649,11 +652,11 @@
else {
// at least one of base and index is variable...
- if (base->getAsSymbolNode() && shouldFlatten(base->getType())) {
+ if (base->getAsSymbolNode() && (wasFlattened(base) || shouldFlatten(base->getType()))) {
if (index->getQualifier().storage != EvqConst)
error(loc, "Invalid variable index to flattened uniform array", base->getAsSymbolNode()->getName().c_str(), "");
- result = flattenAccess(base, indexValue);
+ result = flattenAccess(loc, base, indexValue);
flattened = (result != base);
} else {
if (index->getQualifier().storage == EvqConst) {
@@ -829,8 +832,8 @@
}
}
if (fieldFound) {
- if (base->getAsSymbolNode() && shouldFlatten(base->getType()))
- result = flattenAccess(base, member);
+ if (base->getAsSymbolNode() && (wasFlattened(base) || shouldFlatten(base->getType())))
+ result = flattenAccess(loc, base, member);
else {
if (base->getType().getQualifier().storage == EvqConst)
result = intermediate.foldDereference(base, member, loc);
@@ -848,6 +851,12 @@
return result;
}
+// Determine whether we should flatten an arbitrary type.
+bool HlslParseContext::shouldFlatten(const TType& type) const
+{
+ return shouldFlattenIO(type) || shouldFlattenUniform(type);
+}
+
// Is this an IO variable that can't be passed down the stack?
// E.g., pipeline inputs to the vertex stage and outputs from the fragment stage.
bool HlslParseContext::shouldFlattenIO(const TType& type) const
@@ -867,27 +876,98 @@
{
const TStorageQualifier qualifier = type.getQualifier().storage;
- return type.isArray() &&
- intermediate.getFlattenUniformArrays() &&
+ return ((type.isArray() && intermediate.getFlattenUniformArrays()) || type.isStruct()) &&
qualifier == EvqUniform &&
- type.isOpaque();
+ type.containsOpaque();
}
+// Top level variable flattening: construct data
void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable)
{
const TType& type = variable.getType();
- // Presently, flattening of structure arrays is unimplemented.
- // We handle one, or the other.
- if (type.isArray() && type.isStruct()) {
- error(loc, "cannot flatten structure array", variable.getName().c_str(), "");
+ // emplace gives back a pair whose .first is an iterator to the item...
+ auto entry = flattenMap.emplace(variable.getUniqueId(),
+ TFlattenData(type.getQualifier().layoutBinding));
+
+ // ... and the item is a map pair, so first->second is the TFlattenData itself.
+ flatten(loc, variable, type, entry.first->second, "");
+}
+
+// Recursively flatten the given variable at the provided type, building the flattenData as we go.
+//
+// This is mutually recursive with flattenStruct and flattenArray.
+// We are going to flatten an arbitrarily nested composite structure into a linear sequence of
+// members, and later on, we want to turn a path through the tree structure into a final
+// location in this linear sequence.
+//
+// If the tree was N-ary, that can be directly calculated. However, we are dealing with
+// arbitrary numbers - peraps a struct of 7 members containing an array of 3. Thus, we must
+// build a data structure to allow the sequence of bracket and dot operators on arrays and
+// structs to arrive at the proper member.
+//
+// To avoid storing a tree with pointers, we are going to flatten the tree into a vector of integers.
+// The leaves are the indexes into the flattened member array.
+// Each level will have the next location for the Nth item stored sequentially, so for instance:
+//
+// struct { float2 a[2]; int b; float4 c[3] };
+//
+// This will produce the following flattened tree:
+// Pos: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
+// (3, 7, 8, 5, 6, 0, 1, 2, 11, 12, 13, 3, 4, 5}
+//
+// Given a reference to mystruct.c[1], the access chain is (2,1), so we traverse:
+// (0+2) = 8 --> (8+1) = 12 --> 12 = 4
+//
+// so the 4th flattened member in traversal order is ours.
+//
+int HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable, const TType& type,
+ TFlattenData& flattenData, TString name)
+{
+ // TODO: when struct splitting is in place we can remove this restriction.
+ if (language == EShLangGeometry) {
+ const TType derefType(type, 0);
+ if (!isFinalFlattening(derefType) && type.getQualifier().storage == EvqVaryingIn)
+ error(loc, "recursive type not yet supported in GS input", variable.getName().c_str(), "");
}
- if (type.isStruct())
- flattenStruct(variable);
-
+ // If something is an arrayed struct, the array flattener will recursively call flatten()
+ // to then flatten the struct, so this is an "if else": we don't do both.
if (type.isArray())
- flattenArray(loc, variable);
+ return flattenArray(loc, variable, type, flattenData, name);
+ else if (type.isStruct())
+ return flattenStruct(loc, variable, type, flattenData, name);
+ else {
+ assert(0); // should never happen
+ return -1;
+ }
+}
+
+// Add a single flattened member to the flattened data being tracked for the composite
+// Returns true for the final flattening level.
+int HlslParseContext::addFlattenedMember(const TSourceLoc& loc,
+ const TVariable& variable, const TType& type, TFlattenData& flattenData,
+ const TString& memberName, bool track)
+{
+ if (isFinalFlattening(type)) {
+ // This is as far as we flatten. Insert the variable.
+ TVariable* memberVariable = makeInternalVariable(memberName.c_str(), type);
+ mergeQualifiers(memberVariable->getWritableType().getQualifier(), variable.getType().getQualifier());
+
+ if (flattenData.nextBinding != TQualifier::layoutBindingEnd)
+ memberVariable->getWritableType().getQualifier().layoutBinding = flattenData.nextBinding++;
+
+ flattenData.offsets.push_back(flattenData.members.size());
+ flattenData.members.push_back(memberVariable);
+
+ if (track)
+ trackLinkageDeferred(*memberVariable);
+
+ return flattenData.offsets.size()-1; // location of the member reference
+ } else {
+ // Further recursion required
+ return flatten(loc, variable, type, flattenData, memberName);
+ }
}
// Figure out the mapping between an aggregate's top members and an
@@ -897,84 +977,103 @@
// effecting a transfer of this information to the flattened variable form.
//
// Assumes shouldFlatten() or equivalent was called first.
-//
-// TODO: generalize this to arbitrary nesting?
-void HlslParseContext::flattenStruct(const TVariable& variable)
+int HlslParseContext::flattenStruct(const TSourceLoc& loc, const TVariable& variable, const TType& type,
+ TFlattenData& flattenData, TString name)
{
- TVector<TVariable*> memberVariables;
+ assert(type.isStruct());
- auto members = *variable.getType().getStruct();
+ auto members = *type.getStruct();
+
+ // Reserve space for this tree level.
+ int start = flattenData.offsets.size();
+ int pos = start;
+ flattenData.offsets.resize(int(pos + members.size()), -1);
+
for (int member = 0; member < (int)members.size(); ++member) {
- TVariable* memberVariable = makeInternalVariable(members[member].type->getFieldName().c_str(),
- *members[member].type);
- mergeQualifiers(memberVariable->getWritableType().getQualifier(), variable.getType().getQualifier());
- memberVariables.push_back(memberVariable);
+ TType& dereferencedType = *members[member].type;
+ const TString memberName = name + (name.empty() ? "" : ".") + dereferencedType.getFieldName();
+
+ const int mpos = addFlattenedMember(loc, variable, dereferencedType, flattenData, memberName, false);
+ flattenData.offsets[pos++] = mpos;
// N.B. Erase I/O-related annotations from the source-type member.
- members[member].type->getQualifier().makeTemporary();
+ dereferencedType.getQualifier().makeTemporary();
}
- flattenMap[variable.getUniqueId()] = memberVariables;
+ return start;
}
// Figure out mapping between an array's members and an
// equivalent set of individual variables.
//
// Assumes shouldFlatten() or equivalent was called first.
-void HlslParseContext::flattenArray(const TSourceLoc& loc, const TVariable& variable)
+int HlslParseContext::flattenArray(const TSourceLoc& loc, const TVariable& variable, const TType& type,
+ TFlattenData& flattenData, TString name)
{
- const TType& type = variable.getType();
assert(type.isArray());
if (type.isImplicitlySizedArray())
error(loc, "cannot flatten implicitly sized array", variable.getName().c_str(), "");
- if (type.getArraySizes()->getNumDims() != 1)
- error(loc, "cannot flatten multi-dimensional array", variable.getName().c_str(), "");
-
- const int size = type.getCumulativeArraySize();
-
- TVector<TVariable*> memberVariables;
-
+ const int size = type.getOuterArraySize();
const TType dereferencedType(type, 0);
- int binding = type.getQualifier().layoutBinding;
- if (dereferencedType.isStruct() || dereferencedType.isArray()) {
- error(loc, "cannot flatten array of aggregate types", variable.getName().c_str(), "");
- }
+ if (name.empty())
+ name = variable.getName();
- for (int element=0; element < size; ++element) {
+ // Reserve space for this tree level.
+ int start = flattenData.offsets.size();
+ int pos = start;
+ flattenData.offsets.resize(int(pos + size), -1);
+
+ for (int element=0; element < size; ++element) {
char elementNumBuf[20]; // sufficient for MAXINT
snprintf(elementNumBuf, sizeof(elementNumBuf)-1, "[%d]", element);
- const TString memberName = variable.getName() + elementNumBuf;
+ const int mpos = addFlattenedMember(loc, variable, dereferencedType, flattenData,
+ name + elementNumBuf, true);
- TVariable* memberVariable = makeInternalVariable(memberName.c_str(), dereferencedType);
- memberVariable->getWritableType().getQualifier() = variable.getType().getQualifier();
-
- memberVariable->getWritableType().getQualifier().layoutBinding = binding;
-
- if (binding != TQualifier::layoutBindingEnd)
- ++binding;
-
- memberVariables.push_back(memberVariable);
- trackLinkageDeferred(*memberVariable);
+ flattenData.offsets[pos++] = mpos;
}
- flattenMap[variable.getUniqueId()] = memberVariables;
+ return start;
}
+// Return true if we have flattened this node.
+bool HlslParseContext::wasFlattened(const TIntermTyped* node) const
+{
+ return node != nullptr &&
+ node->getAsSymbolNode() != nullptr &&
+ wasFlattened(node->getAsSymbolNode()->getId());
+}
+
+
// Turn an access into an aggregate that was flattened to instead be
// an access to the individual variable the member was flattened to.
// Assumes shouldFlatten() or equivalent was called first.
-TIntermTyped* HlslParseContext::flattenAccess(TIntermTyped* base, int member)
+TIntermTyped* HlslParseContext::flattenAccess(const TSourceLoc&, TIntermTyped* base, int member)
{
+ const TType dereferencedType(base->getType(), member); // dereferenced type
+
const TIntermSymbol& symbolNode = *base->getAsSymbolNode();
- if (flattenMap.find(symbolNode.getId()) == flattenMap.end())
+ const auto flattenData = flattenMap.find(symbolNode.getId());
+
+ if (flattenData == flattenMap.end())
return base;
- const TVariable* memberVariable = flattenMap[symbolNode.getId()][member];
- return intermediate.addSymbol(*memberVariable);
+ // Calculate new cumulative offset from the packed tree
+ flattenOffset.back() = flattenData->second.offsets[flattenOffset.back() + member];
+
+ if (isFinalFlattening(dereferencedType)) {
+ // Finished flattening: create symbol for variable
+ member = flattenData->second.offsets[flattenOffset.back()];
+ const TVariable* memberVariable = flattenData->second.members[member];
+ return intermediate.addSymbol(*memberVariable);
+ } else {
+ // If this is not the final flattening, accumulate the position and return
+ // an object of the partially dereferenced type.
+ return new TIntermSymbol(symbolNode.getId(), "flattenShadow", dereferencedType);
+ }
}
// Variables that correspond to the user-interface in and out of a stage
@@ -1000,8 +1099,8 @@
}
};
- if (shouldFlatten(variable.getType())) {
- auto& memberList = flattenMap[variable.getUniqueId()];
+ if (wasFlattened(variable.getUniqueId())) {
+ auto& memberList = flattenMap[variable.getUniqueId()].members;
for (auto member = memberList.begin(); member != memberList.end(); ++member)
assignLocation(**member);
} else
@@ -1292,7 +1391,7 @@
return nullptr;
const auto mustFlatten = [&](const TIntermTyped& node) {
- return shouldFlatten(node.getType()) && node.getAsSymbolNode() &&
+ return wasFlattened(&node) && node.getAsSymbolNode() &&
flattenMap.find(node.getAsSymbolNode()->getId()) != flattenMap.end();
};
@@ -1325,10 +1424,10 @@
memberCount = left->getType().getCumulativeArraySize();
if (flattenLeft)
- leftVariables = &flattenMap.find(left->getAsSymbolNode()->getId())->second;
+ leftVariables = &flattenMap.find(left->getAsSymbolNode()->getId())->second.members;
if (flattenRight) {
- rightVariables = &flattenMap.find(right->getAsSymbolNode()->getId())->second;
+ rightVariables = &flattenMap.find(right->getAsSymbolNode()->getId())->second.members;
} else {
// The RHS is not flattened. There are several cases:
// 1. 1 item to copy: Use the RHS directly.
@@ -1353,13 +1452,15 @@
}
}
+ int memberIdx = 0;
+
const auto getMember = [&](bool flatten, TIntermTyped* node,
const TVector<TVariable*>& memberVariables, int member,
TOperator op, const TType& memberType) -> TIntermTyped * {
TIntermTyped* subTree;
- if (flatten)
- subTree = intermediate.addSymbol(*memberVariables[member]);
- else {
+ if (flatten && isFinalFlattening(memberType)) {
+ subTree = intermediate.addSymbol(*memberVariables[memberIdx++]);
+ } else {
subTree = intermediate.addIndex(op, node, intermediate.addConstantUnion(member, loc), loc);
subTree->setType(memberType);
}
@@ -1367,46 +1468,59 @@
return subTree;
};
- // Return the proper RHS node: a new symbol from a TVariable, copy
- // of an TIntermSymbol node, or sometimes the right node directly.
- const auto getRHS = [&]() {
- return rhsTempVar ? intermediate.addSymbol(*rhsTempVar, loc) :
- cloneSymNode ? intermediate.addSymbol(*cloneSymNode) :
- right;
+ // Cannot use auto here, because this is recursive, and auto can't work out the type without seeing the
+ // whole thing. So, we'll resort to an explicit type via std::function.
+ const std::function<void(TIntermTyped* left, TIntermTyped* right)>
+ traverse = [&](TIntermTyped* left, TIntermTyped* right) -> void {
+ // If we get here, we are assigning to or from a whole array or struct that must be
+ // flattened, so have to do member-by-member assignment:
+
+ if (left->getType().isArray()) {
+ // array case
+ const TType dereferencedType(left->getType(), 0);
+
+ for (int element=0; element < left->getType().getOuterArraySize(); ++element) {
+ // Add a new AST symbol node if we have a temp variable holding a complex RHS.
+ TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, element,
+ EOpIndexDirect, dereferencedType);
+ TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, element,
+ EOpIndexDirect, dereferencedType);
+
+ if (isFinalFlattening(dereferencedType))
+ assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc), loc);
+ else
+ traverse(subLeft, subRight);
+ }
+ } else if (left->getType().isStruct()) {
+ // struct case
+ const auto& members = *left->getType().getStruct();
+
+ for (int member = 0; member < (int)members.size(); ++member) {
+ TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, member,
+ EOpIndexDirectStruct, *members[member].type);
+ TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, member,
+ EOpIndexDirectStruct, *members[member].type);
+
+ if (isFinalFlattening(*members[member].type))
+ assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc), loc);
+ else
+ traverse(subLeft, subRight);
+ }
+ } else {
+ assert(0); // we should never be called on a non-flattenable thing, because
+ // that case bails out above to a simple copy.
+ }
+
};
- // Handle struct assignment
- if (left->getType().isStruct()) {
- // If we get here, we are assigning to or from a whole struct that must be
- // flattened, so have to do member-by-member assignment:
- const auto& members = *left->getType().getStruct();
+ // Use the proper RHS node: a new symbol from a TVariable, copy
+ // of an TIntermSymbol node, or sometimes the right node directly.
+ right = rhsTempVar ? intermediate.addSymbol(*rhsTempVar, loc) :
+ cloneSymNode ? intermediate.addSymbol(*cloneSymNode) :
+ right;
- for (int member = 0; member < (int)members.size(); ++member) {
- TIntermTyped* subRight = getMember(flattenRight, getRHS(), *rightVariables, member,
- EOpIndexDirectStruct, *members[member].type);
- TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, member,
- EOpIndexDirectStruct, *members[member].type);
- assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc), loc);
- }
- }
-
- // Handle array assignment
- if (left->getType().isArray()) {
- // If we get here, we are assigning to or from a whole array that must be
- // flattened, so have to do member-by-member assignment:
-
- const TType dereferencedType(left->getType(), 0);
-
- for (int element=0; element < memberCount; ++element) {
- // Add a new AST symbol node if we have a temp variable holding a complex RHS.
- TIntermTyped* subRight = getMember(flattenRight, getRHS(), *rightVariables, element,
- EOpIndexDirect, dereferencedType);
- TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, element,
- EOpIndexDirect, dereferencedType);
-
- assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc), loc);
- }
- }
+ // This makes the whole assignment, recursing through subtypes as needed.
+ traverse(left, right);
assert(assignList != nullptr);
assignList->setOperator(EOpSequence);
@@ -2555,7 +2669,7 @@
//
const TFunction* fnCandidate;
bool builtIn;
- fnCandidate = findFunction(loc, *function, builtIn);
+ fnCandidate = findFunction(loc, *function, builtIn, arguments);
if (fnCandidate) {
// This is a declared function that might map to
// - a built-in operator,
@@ -2597,21 +2711,27 @@
}
}
+ // for decompositions, since we want to operate on the function node, not the aggregate holding
+ // output conversions.
+ const TIntermTyped* fnNode = result;
+
+ decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions
+ decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions
+ decomposeGeometryMethods(loc, result, arguments); // HLSL->AST geometry method decompositions
+
// Convert 'out' arguments. If it was a constant folded built-in, it won't be an aggregate anymore.
// Built-ins with a single argument aren't called with an aggregate, but they also don't have an output.
// Also, build the qualifier list for user function calls, which are always called with an aggregate.
- if (result->getAsAggregate()) {
+ // We don't do this is if there has been a decomposition, which will have added its own conversions
+ // for output parameters.
+ if (result == fnNode && result->getAsAggregate()) {
TQualifierList& qualifierList = result->getAsAggregate()->getQualifierList();
for (int i = 0; i < fnCandidate->getParamCount(); ++i) {
TStorageQualifier qual = (*fnCandidate)[i].type->getQualifier().storage;
qualifierList.push_back(qual);
}
- result = addOutputArgumentConversions(*fnCandidate, *result->getAsAggregate());
+ result = addOutputArgumentConversions(*fnCandidate, *result->getAsOperator());
}
-
- decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions
- decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions
- decomposeGeometryMethods(loc, result, arguments); // HLSL->AST geometry method decompositions
}
}
@@ -2693,7 +2813,7 @@
arg = intermediate.addShapeConversion(EOpFunctionCall, *function[i].type, arg);
setArg(i, arg);
} else {
- if (shouldFlatten(arg->getType())) {
+ if (wasFlattened(arg)) {
// Will make a two-level subtree.
// The deepest will copy member-by-member to build the structure to pass.
// The level above that will be a two-operand EOpComma sequence that follows the copy by the
@@ -2724,14 +2844,24 @@
//
// Returns a node of a subtree that evaluates to the return value of the function.
//
-TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& function, TIntermAggregate& intermNode)
+TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& function, TIntermOperator& intermNode)
{
- TIntermSequence& arguments = intermNode.getSequence();
+ assert (intermNode.getAsAggregate() != nullptr || intermNode.getAsUnaryNode() != nullptr);
+
+ const TSourceLoc& loc = intermNode.getLoc();
+
+ TIntermSequence argSequence; // temp sequence for unary node args
+
+ if (intermNode.getAsUnaryNode())
+ argSequence.push_back(intermNode.getAsUnaryNode()->getOperand());
+
+ TIntermSequence& arguments = argSequence.empty() ? intermNode.getAsAggregate()->getSequence() : argSequence;
+
const auto needsConversion = [&](int argNum) {
return function[argNum].type->getQualifier().isParamOutput() &&
(*function[argNum].type != arguments[argNum]->getAsTyped()->getType() ||
shouldConvertLValue(arguments[argNum]) ||
- shouldFlatten(arguments[argNum]->getAsTyped()->getType()));
+ wasFlattened(arguments[argNum]->getAsTyped()));
};
// Will there be any output conversions?
@@ -2759,8 +2889,8 @@
if (intermNode.getBasicType() != EbtVoid) {
// do the "tempRet = function(...), " bit from above
tempRet = makeInternalVariable("tempReturn", intermNode.getType());
- TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, intermNode.getLoc());
- conversionTree = intermediate.addAssign(EOpAssign, tempRetNode, &intermNode, intermNode.getLoc());
+ TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, loc);
+ conversionTree = intermediate.addAssign(EOpAssign, tempRetNode, &intermNode, loc);
} else
conversionTree = &intermNode;
@@ -2775,7 +2905,7 @@
// Make a temporary for what the function expects the argument to look like.
TVariable* tempArg = makeInternalVariable("tempArg", *function[i].type);
tempArg->getWritableType().getQualifier().makeTemporary();
- TIntermSymbol* tempArgNode = intermediate.addSymbol(*tempArg, intermNode.getLoc());
+ TIntermSymbol* tempArgNode = intermediate.addSymbol(*tempArg, loc);
// This makes the deepest level, the member-wise copy
TIntermTyped* tempAssign = handleAssign(arguments[i]->getLoc(), EOpAssign, arguments[i]->getAsTyped(), tempArgNode);
@@ -2783,17 +2913,18 @@
conversionTree = intermediate.growAggregate(conversionTree, tempAssign, arguments[i]->getLoc());
// replace the argument with another node for the same tempArg variable
- arguments[i] = intermediate.addSymbol(*tempArg, intermNode.getLoc());
+ arguments[i] = intermediate.addSymbol(*tempArg, loc);
}
}
// Finalize the tree topology (see bigger comment above).
if (tempRet) {
// do the "..., tempRet" bit from above
- TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, intermNode.getLoc());
- conversionTree = intermediate.growAggregate(conversionTree, tempRetNode, intermNode.getLoc());
+ TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, loc);
+ conversionTree = intermediate.growAggregate(conversionTree, tempRetNode, loc);
}
- conversionTree = intermediate.setAggregateOperator(conversionTree, EOpComma, intermNode.getType(), intermNode.getLoc());
+
+ conversionTree = intermediate.setAggregateOperator(conversionTree, EOpComma, intermNode.getType(), loc);
return conversionTree;
}
@@ -4346,7 +4477,8 @@
//
// Return the function symbol if found, otherwise nullptr.
//
-const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn)
+const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn,
+ TIntermNode* args)
{
// const TFunction* function = nullptr;
@@ -4374,8 +4506,10 @@
return candidateList[0];
}
+ bool allowOnlyUpConversions = true;
+
// can 'from' convert to 'to'?
- const auto convertible = [this](const TType& from, const TType& to) -> bool {
+ const auto convertible = [&](const TType& from, const TType& to, TOperator op, int arg) -> bool {
if (from == to)
return true;
@@ -4384,9 +4518,33 @@
from.isStruct() || to.isStruct())
return false;
+ switch (op) {
+ case EOpInterlockedAdd:
+ case EOpInterlockedAnd:
+ case EOpInterlockedCompareExchange:
+ case EOpInterlockedCompareStore:
+ case EOpInterlockedExchange:
+ case EOpInterlockedMax:
+ case EOpInterlockedMin:
+ case EOpInterlockedOr:
+ case EOpInterlockedXor:
+ // We do not promote the texture or image type for these ocodes. Normally that would not
+ // be an issue because it's a buffer, but we haven't decomposed the opcode yet, and at this
+ // stage it's merely e.g, a basic integer type.
+ //
+ // Instead, we want to promote other arguments, but stay within the same family. In other
+ // words, InterlockedAdd(RWBuffer<int>, ...) will always use the int flavor, never the uint flavor,
+ // but it is allowed to promote its other arguments.
+ if (arg == 0)
+ return false;
+ default:
+ break;
+ }
+
// basic types have to be convertible
- if (! intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType(), EOpFunctionCall))
- return false;
+ if (allowOnlyUpConversions)
+ if (! intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType(), EOpFunctionCall))
+ return false;
// shapes have to be convertible
if ((from.isScalarOrVec1() && to.isScalarOrVec1()) ||
@@ -4452,9 +4610,89 @@
// send to the generic selector
const TFunction* bestMatch = selectFunction(candidateList, call, convertible, better, tie);
- if (bestMatch == nullptr)
+ if (bestMatch == nullptr) {
+ // If there is nothing selected by allowing only up-conversions (to a larger linearize() value),
+ // we instead try down-conversions, which are valid in HLSL, but not preferred if there are any
+ // upconversions possible.
+ allowOnlyUpConversions = false;
+ bestMatch = selectFunction(candidateList, call, convertible, better, tie);
+ }
+
+ if (bestMatch == nullptr) {
error(loc, "no matching overloaded function found", call.getName().c_str(), "");
- else if (tie)
+ return nullptr;
+ }
+
+ // For builtins, we can convert across the arguments. This will happen in several steps:
+ // Step 1: If there's an exact match, use it.
+ // Step 2a: Otherwise, get the operator from the best match and promote arguments:
+ // Step 2b: reconstruct the TFunction based on the new arg types
+ // Step 3: Re-select after type promotion is applied, to find proper candidate.
+ if (builtIn) {
+ // Step 1: If there's an exact match, use it.
+ if (call.getMangledName() == bestMatch->getMangledName())
+ return bestMatch;
+
+ // Step 2a: Otherwise, get the operator from the best match and promote arguments as if we
+ // are that kind of operator.
+ if (args != nullptr) {
+ // The arg list can be a unary node, or an aggregate. We have to handle both.
+ // We will use the normal promote() facilities, which require an interm node.
+ TIntermOperator* promote = nullptr;
+
+ if (call.getParamCount() == 1) {
+ promote = new TIntermUnary(bestMatch->getBuiltInOp());
+ promote->getAsUnaryNode()->setOperand(args->getAsTyped());
+ } else {
+ promote = new TIntermAggregate(bestMatch->getBuiltInOp());
+ promote->getAsAggregate()->getSequence().swap(args->getAsAggregate()->getSequence());
+ }
+
+ if (! intermediate.promote(promote))
+ return nullptr;
+
+ // Obtain the promoted arg list.
+ if (call.getParamCount() == 1) {
+ args = promote->getAsUnaryNode()->getOperand();
+ } else {
+ promote->getAsAggregate()->getSequence().swap(args->getAsAggregate()->getSequence());
+ }
+ }
+
+ // Step 2b: reconstruct the TFunction based on the new arg types
+ TFunction convertedCall(&call.getName(), call.getType(), call.getBuiltInOp());
+
+ if (args->getAsAggregate()) {
+ // Handle aggregates: put all args into the new function call
+ for (int arg=0; arg<int(args->getAsAggregate()->getSequence().size()); ++arg) {
+ // TODO: But for constness, we could avoid the new & shallowCopy, and use the pointer directly.
+ TParameter param = { 0, new TType };
+ param.type->shallowCopy(args->getAsAggregate()->getSequence()[arg]->getAsTyped()->getType());
+ convertedCall.addParameter(param);
+ }
+ } else if (args->getAsUnaryNode()) {
+ // Handle unaries: put all args into the new function call
+ TParameter param = { 0, new TType };
+ param.type->shallowCopy(args->getAsUnaryNode()->getOperand()->getAsTyped()->getType());
+ convertedCall.addParameter(param);
+ } else if (args->getAsTyped()) {
+ // Handle bare e.g, floats, not in an aggregate.
+ TParameter param = { 0, new TType };
+ param.type->shallowCopy(args->getAsTyped()->getType());
+ convertedCall.addParameter(param);
+ } else {
+ assert(0); // unknown argument list.
+ return nullptr;
+ }
+
+ // Step 3: Re-select after type promotion, to find proper candidate
+ // send to the generic selector
+ bestMatch = selectFunction(candidateList, convertedCall, convertible, better, tie);
+
+ // At this point, there should be no tie.
+ }
+
+ if (tie)
error(loc, "ambiguous best function under implicit type conversion", call.getName().c_str(), "");
return bestMatch;
@@ -4497,23 +4735,23 @@
inheritGlobalDefaults(type.getQualifier());
- bool flattenVar = false;
+ const bool flattenVar = shouldFlatten(type);
// Declare the variable
if (type.isArray()) {
// array case
- flattenVar = shouldFlatten(type);
declareArray(loc, identifier, type, symbol, !flattenVar);
- if (flattenVar)
- flatten(loc, *symbol->getAsVariable());
} else {
// non-array case
if (! symbol)
- symbol = declareNonArray(loc, identifier, type);
+ symbol = declareNonArray(loc, identifier, type, !flattenVar);
else if (type != symbol->getType())
error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str());
}
+ if (flattenVar)
+ flatten(loc, *symbol->getAsVariable());
+
if (! symbol)
return nullptr;
@@ -4566,14 +4804,14 @@
//
// Return the successfully declared variable.
//
-TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type)
+TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type, bool track)
{
// make a new variable
TVariable* variable = new TVariable(&identifier, type);
// add variable to symbol table
if (symbolTable.insert(*variable)) {
- if (symbolTable.atGlobalLevel())
+ if (track && symbolTable.atGlobalLevel())
trackLinkageDeferred(*variable);
return variable;
}
@@ -5539,4 +5777,13 @@
return switchNode;
}
+// Potentially rename shader entry point function
+void HlslParseContext::renameShaderFunction(TString*& name) const
+{
+ // Replace the entry point name given in the shader with the real entry point name,
+ // if there is a substitution.
+ if (name != nullptr && *name == sourceEntryPointName)
+ name = new TString(intermediate.getEntryPointName().c_str());
+}
+
} // end namespace glslang
diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h
index 246c7c4..206df9b 100755
--- a/hlsl/hlslParseHelper.h
+++ b/hlsl/hlslParseHelper.h
@@ -47,6 +47,7 @@
public:
HlslParseContext(TSymbolTable&, TIntermediate&, bool parsingBuiltins,
int version, EProfile, const SpvVersion& spvVersion, EShLanguage, TInfoSink&,
+ const TString sourceEntryPointName,
bool forwardCompatible = false, EShMessages messages = EShMsgDefault);
virtual ~HlslParseContext();
void initializeExtensionBehavior();
@@ -84,7 +85,7 @@
void decomposeGeometryMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments);
TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*);
void addInputArgumentConversions(const TFunction&, TIntermNode*&) const;
- TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&);
+ TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermOperator&);
void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&);
TFunction* handleConstructorCall(const TSourceLoc&, const TType&);
void handleSemantic(TSourceLoc, TQualifier&, const TString& semantic);
@@ -125,7 +126,7 @@
void mergeObjectLayoutQualifiers(TQualifier& dest, const TQualifier& src, bool inheritOnly);
void checkNoShaderLayouts(const TSourceLoc&, const TShaderQualifiers&);
- const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn);
+ const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn, TIntermNode* args);
void declareTypedef(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0);
TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, TType&, TIntermTyped* initializer = 0);
void lengthenList(const TSourceLoc&, TIntermSequence& list, int size);
@@ -165,10 +166,26 @@
bool handleOutputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry);
bool handleInputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry);
+ // Potentially rename shader entry point function
+ void renameShaderFunction(TString*& name) const;
+
+ // Reset data for incrementally built referencing of flattened composite structures
+ void initFlattening() { flattenLevel.push_back(0); flattenOffset.push_back(0); }
+ void finalizeFlattening() { flattenLevel.pop_back(); flattenOffset.pop_back(); }
+
protected:
+ struct TFlattenData {
+ TFlattenData() : nextBinding(TQualifier::layoutBindingEnd) { }
+ TFlattenData(int nb) : nextBinding(nb) { }
+
+ TVector<TVariable*> members; // individual flattened variables
+ TVector<int> offsets; // offset to next tree level
+ int nextBinding; // next binding to use.
+ };
+
void inheritGlobalDefaults(TQualifier& dst) const;
TVariable* makeInternalVariable(const char* name, const TType&) const;
- TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&);
+ TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&, bool track);
void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool track);
TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable);
TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer);
@@ -179,13 +196,19 @@
bool shouldConvertLValue(const TIntermNode*) const;
// Array and struct flattening
- bool shouldFlatten(const TType& type) const { return shouldFlattenIO(type) || shouldFlattenUniform(type); }
- TIntermTyped* flattenAccess(TIntermTyped* base, int member);
+ bool shouldFlatten(const TType& type) const;
+ TIntermTyped* flattenAccess(const TSourceLoc&, TIntermTyped* base, int member);
bool shouldFlattenIO(const TType&) const;
bool shouldFlattenUniform(const TType&) const;
+ bool wasFlattened(const TIntermTyped* node) const;
+ bool wasFlattened(int id) const { return flattenMap.find(id) != flattenMap.end(); }
+ int addFlattenedMember(const TSourceLoc& loc, const TVariable&, const TType&, TFlattenData&, const TString& name, bool track);
+ bool isFinalFlattening(const TType& type) const { return !(type.isStruct() || type.isArray()); }
+
void flatten(const TSourceLoc& loc, const TVariable& variable);
- void flattenStruct(const TVariable& variable);
- void flattenArray(const TSourceLoc& loc, const TVariable& variable);
+ int flatten(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name);
+ int flattenStruct(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name);
+ int flattenArray(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name);
// Current state of parsing
struct TPragma contextPragma;
@@ -248,9 +271,14 @@
//
TVector<TSymbol*> ioArraySymbolResizeList;
- TMap<int, TVector<TVariable*>> flattenMap;
+ TMap<int, TFlattenData> flattenMap;
+ TVector<int> flattenLevel; // nested postfix operator level for flattening
+ TVector<int> flattenOffset; // cumulative offset for flattening
+
unsigned int nextInLocation;
unsigned int nextOutLocation;
+
+ TString sourceEntryPointName;
};
} // end namespace glslang
diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp
index 05dc7cf..8ecaec9 100755
--- a/hlsl/hlslParseables.cpp
+++ b/hlsl/hlslParseables.cpp
@@ -558,8 +558,8 @@
{ "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS },
{ "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS },
{ "any", "S", "B", "SVM", "BFIU", EShLangAll },
- { "asdouble", "S", "D", "S,", "U,", EShLangAll },
- { "asdouble", "V2", "D", "V2,", "U,", EShLangAll },
+ { "asdouble", "S", "D", "S,", "UI,", EShLangAll },
+ { "asdouble", "V2", "D", "V2,", "UI,", EShLangAll },
{ "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll },
{ "asin", nullptr, nullptr, "SVM", "F", EShLangAll },
{ "asint", nullptr, "I", "SVM", "FU", EShLangAll },
@@ -572,7 +572,7 @@
{ "clip", "-", "-", "SVM", "F", EShLangPS },
{ "cos", nullptr, nullptr, "SVM", "F", EShLangAll },
{ "cosh", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "countbits", nullptr, nullptr, "SV", "U", EShLangAll },
+ { "countbits", nullptr, nullptr, "SV", "UI", EShLangAll },
{ "cross", nullptr, nullptr, "V3,", "F,", EShLangAll },
{ "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll },
{ "ddx", nullptr, nullptr, "SVM", "F", EShLangPS },
@@ -636,9 +636,9 @@
{ "log10", nullptr, nullptr, "SVM", "F", EShLangAll },
{ "log2", nullptr, nullptr, "SVM", "F", EShLangAll },
{ "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll },
- { "max", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
- { "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
- { "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll },
+ { "max", nullptr, nullptr, "SVM,", "FIU,", EShLangAll },
+ { "min", nullptr, nullptr, "SVM,", "FIU,", EShLangAll },
+ { "modf", nullptr, nullptr, "SVM,>", "FIU,", EShLangAll },
{ "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll },
{ "mul", "S", nullptr, "S,S", "FI,", EShLangAll },
{ "mul", "V", nullptr, "S,V", "FI,", EShLangAll },
@@ -665,7 +665,7 @@
{ "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll },
{ "reflect", nullptr, nullptr, "V,", "F,", EShLangAll },
{ "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll },
- { "reversebits", nullptr, nullptr, "SV", "U", EShLangAll },
+ { "reversebits", nullptr, nullptr, "SV", "UI", EShLangAll },
{ "round", nullptr, nullptr, "SVM", "F", EShLangAll },
{ "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
{ "saturate", nullptr, nullptr , "SVM", "F", EShLangAll },
@@ -735,7 +735,7 @@
// RWTexture loads
{ "Load", "V4", nullptr, "!#,V", "FIU,I", EShLangAll },
// (RW)Buffer loads
- { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll },
+ { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll },
{ "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll },
{ "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll },