const char* GlslStd450DebugNames[GLSL_STD_450::Count];
+// Outputs the given string, but only if it is non-null and non-empty.
+// This prevents erroneous newlines from appearing.
+void puts_if_non_empty(const char* str)
+{
+ if (str && str[0]) {
+ puts(str);
+ }
+}
+
//
// For linking mode: Will independently parse each item in the worklist, but then put them
// in the same program and link them together.
program.addShader(shader);
if (! (Options & EOptionSuppressInfolog)) {
- puts(workItem->name.c_str());
- puts(shader->getInfoLog());
- puts(shader->getInfoDebugLog());
+ puts_if_non_empty(workItem->name.c_str());
+ puts_if_non_empty(shader->getInfoLog());
+ puts_if_non_empty(shader->getInfoDebugLog());
}
FreeFileData(shaderStrings);
LinkFailed = true;
if (! (Options & EOptionSuppressInfolog)) {
- puts(program.getInfoLog());
- puts(program.getInfoDebugLog());
+ puts_if_non_empty(program.getInfoLog());
+ puts_if_non_empty(program.getInfoDebugLog());
}
if (Options & EOptionDumpReflection) {
for (int w = 0; w < NumWorkItems; ++w) {
if (Work[w]) {
if (printShaderNames)
- puts(Work[w]->name.c_str());
- puts(Work[w]->results.c_str());
+ puts_if_non_empty(Work[w]->name.c_str());
+ puts_if_non_empty(Work[w]->results.c_str());
delete Work[w];
}
}
100Limits.vert\r
-\r
Shader version: 100\r
0:? Sequence\r
0:15 Function Definition: foo(f1; (global void)\r
150.tesc\r
-\r
Shader version: 150\r
Requested GL_ARB_tessellation_shader\r
vertices = 4\r
300link.frag\r
-\r
Shader version: 300\r
0:? Sequence\r
0:8 Function Definition: main( (global void)\r
300link2.frag\r
-\r
Shader version: 300\r
0:? Sequence\r
0:9 Function Definition: main( (global void)\r
300link3.frag\r
-\r
Shader version: 300\r
0:? Sequence\r
0:7 Function Definition: main( (global void)\r
330comp.frag\r
-\r
Shader version: 330\r
0:? Sequence\r
0:8 Function Definition: main( (global void)\r
Operations.frag\r
-\r
Shader version: 130\r
0:? Sequence\r
0:15 Function Definition: main( (global void)\r
always-discard.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:4 Function Definition: main( (global void)\r
always-discard2.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:4 Function Definition: main( (global void)\r
conditionalDiscard.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:6 Function Definition: main( (global void)\r
conversion.frag\r
-\r
Shader version: 130\r
0:? Sequence\r
0:33 Function Definition: main( (global void)\r
deepRvalue.frag\r
-\r
Shader version: 120\r
0:? Sequence\r
0:5 Sequence\r
discard-dce.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:4 Function Definition: main( (global void)\r
doWhileLoop.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:7 Function Definition: main( (global void)\r
earlyReturnDiscard.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:19 Function Definition: main( (global void)\r
empty.frag\r
-\r
Shader version: 100\r
0:? Sequence\r
0:? Linker Objects\r
\r
empty2.frag\r
-\r
Shader version: 100\r
0:? Sequence\r
0:? Linker Objects\r
\r
empty3.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:? Linker Objects\r
flowControl.frag\r
-\r
Shader version: 120\r
0:? Sequence\r
0:10 Function Definition: main( (global void)\r
forLoop.frag\r
-\r
Shader version: 130\r
0:? Sequence\r
0:10 Function Definition: main( (global void)\r
forwardRef.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:11 Function Definition: main( (global void)\r
length.frag\r
-\r
Shader version: 120\r
0:? Sequence\r
0:11 Function Definition: main( (global void)\r
link1.frag\r
-\r
Shader version: 130\r
0:? Sequence\r
0:8 Sequence\r
0:? 3.900000\r
\r
link2.frag\r
-\r
Shader version: 130\r
Requested GL_OES_standard_derivatives\r
Requested GL_OES_texture_3D\r
0:? 3.900000\r
\r
link3.frag\r
-\r
Shader version: 300\r
Requested GL_OES_EGL_image_external\r
Requested GL_OES_standard_derivatives\r
mains1.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:3 Function Definition: main( (global void)\r
0:? Linker Objects\r
\r
mains2.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:3 Function Definition: main( (global void)\r
0:? Linker Objects\r
\r
noMain2.geom\r
-\r
Shader version: 150\r
invocations = 0\r
max_vertices = 0\r
noMain.vert\r
-\r
Shader version: 300\r
0:? Sequence\r
0:3 Function Definition: foo( (global void)\r
nonSquare.vert\r
-\r
Shader version: 120\r
0:? Sequence\r
0:15 Function Definition: main( (global void)\r
pointCoord.frag\r
-\r
Shader version: 100\r
0:? Sequence\r
0:5 Function Definition: main( (global void)\r
prepost.frag\r
-\r
Shader version: 140\r
0:? Sequence\r
0:3 Function Definition: main( (global void)\r
gl_Position = vec4(3 + 2 + 2 * 4 + 2 + 3 * 2);\r
}\r
\r
-\r
-\r
int main(){\r
}\r
\r
-\r
-\r
int main(){\r
}\r
\r
-\r
-\r
gl_Position = vec4(4 + 3 + 3);\r
}\r
\r
-\r
-\r
int main(){\r
}\r
\r
-\r
-\r
gl_Position = vec4(fn(3));\r
}\r
\r
-\r
-\r
recurse1.vert\r
-\r
Shader version: 330\r
0:? Sequence\r
0:3 Function Definition: main( (global void)\r
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)\r
\r
recurse1.frag\r
-\r
Shader version: 330\r
0:? Sequence\r
0:5 Function Definition: main( (global void)\r
0:? Linker Objects\r
\r
recurse2.frag\r
-\r
Shader version: 330\r
0:? Sequence\r
0:9 Function Definition: cbar(i1; (global float)\r
Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked vertex stage:\r
\r
\r
-\r
Uniform reflection:\r
image_ui2D: offset -1, type 9063, size 1, index -1\r
sampler_2D: offset -1, type 8b5e, size 1, index -1\r
sample.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:38 Function Definition: main( (global void)\r
sample.vert\r
-\r
Shader version: 110\r
0:? Sequence\r
0:38 Function Definition: main( (global void)\r
spv.100ops.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 48\r
WARNING: 0:34: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
Missing functionality: texture gather\r
spv.140.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 90\r
spv.150.geom\r
\r
-\r
-\r
Linked geometry stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 72\r
spv.150.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 53\r
spv.300BuiltIns.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 41\r
spv.300layout.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 38\r
spv.300layout.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
Missing functionality: binary operation on matrix\r
spv.300layoutp.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 112\r
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked compute stage:\r
\r
\r
-\r
Missing functionality: Unsized array\r
spv.330.geom\r
\r
-\r
-\r
Linked geometry stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 33\r
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
Missing functionality: texture gather\r
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked tessellation control stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 89\r
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked tessellation evaluation stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 99\r
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked geometry stage:\r
\r
\r
-\r
Missing functionality: texture gather\r
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 62\r
spv.Operations.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 399\r
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 198\r
WARNING: 0:6: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
Missing functionality: Composite comparison of non-vectors\r
spv.always-discard.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 81\r
spv.always-discard2.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 37\r
spv.conditionalDiscard.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 36\r
spv.conversion.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 444\r
WARNING: 0:3: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 21\r
WARNING: 0:3: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 23\r
WARNING: 0:4: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 39\r
spv.deepRvalue.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
Missing functionality: binary operation on matrix\r
WARNING: 0:4: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 19\r
spv.discard-dce.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 81\r
spv.do-simple.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 26\r
spv.do-while-continue-break.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 48\r
spv.doWhileLoop.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 34\r
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked compute stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 63\r
spv.earlyReturnDiscard.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 112\r
spv.flowControl.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 42\r
spv.for-continue-break.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 49\r
spv.for-simple.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 26\r
spv.forLoop.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 123\r
spv.forwardFun.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 59\r
WARNING: 0:4: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 76\r
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 159\r
spv.length.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 34\r
WARNING: 0:5: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 134\r
WARNING: 0:14: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 737\r
WARNING: 0:14: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 192\r
spv.matFun.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 94\r
WARNING: 0:22: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
Missing functionality: Composite comparison of non-vectors\r
WARNING: 0:15: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
Missing functionality: binary operation on matrix\r
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
Missing functionality: texel fetch\r
spv.nonSquare.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 91\r
spv.precision.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 111\r
spv.prepost.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 97\r
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 26\r
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.\r
\r
\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 25\r
WARNING: 0:4: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 23\r
spv.simpleMat.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 44\r
WARNING: 0:4: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 50\r
WARNING: 0:4: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 120\r
WARNING: 0:3: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 61\r
WARNING: 0:139: 'switch' : last case/default label not followed by statements \r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 261\r
spv.swizzle.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 112\r
spv.test.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 54\r
WARNING: 0:5: attribute deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked vertex stage:\r
\r
\r
-\r
Missing functionality: ftransform()\r
WARNING: 0:15: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
Missing functionality: texel fetch\r
spv.texture.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 132\r
spv.types.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 264\r
spv.uint.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 206\r
spv.uniformArray.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 52\r
WARNING: 0:3: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 93\r
WARNING: 0:8: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 61\r
WARNING: 0:8: varying deprecated in version 130; may be removed in future release\r
\r
\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 69\r
spv.voidFunction.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 43\r
spv.while-continue-break.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 43\r
spv.while-simple.vert\r
\r
-\r
-\r
Linked vertex stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 24\r
spv.whileLoop.frag\r
\r
-\r
-\r
Linked fragment stage:\r
\r
\r
-\r
// Module Version 99\r
// Generated by (magic number): 51a00bb\r
// Id's are bound by 32\r
swizzle.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:9 Function Definition: main( (global void)\r
test.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:13 Function Definition: main( (global void)\r
types.frag\r
-\r
Shader version: 130\r
0:? Sequence\r
0:33 Function Definition: main( (global void)\r
uniformArray.frag\r
-\r
Shader version: 130\r
0:? Sequence\r
0:7 Function Definition: main( (global void)\r
voidFunction.frag\r
-\r
Shader version: 120\r
0:? Sequence\r
0:7 Sequence\r
whileLoop.frag\r
-\r
Shader version: 110\r
0:? Sequence\r
0:7 Function Definition: main( (global void)\r