glslang-zig/Test
John Kessenich 11f9fc7247 Add and partially implement an interface for doing uniform reflection. It includes an AST traversal to identify live accesses.
It does not yet correctly compute block offsets, give correct GL-API-style type values, or handle arrays.

This is tied to the new -q flag.


git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23938 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2013-11-07 01:06:34 +00:00
..
baseResults Add and partially implement an interface for doing uniform reflection. It includes an AST traversal to identify live accesses. 2013-11-07 01:06:34 +00:00
100.conf Add the following ESSL 2.0 (#version 100) limitations to the configuration file, internal infrastructure, and test cases. Still need to implement the actual detection of non-inductive loops and array accesses. While and do-while loop detection is done. 2013-10-02 05:10:48 +00:00
100.frag Improve robustness of extension checking, and its intersection with ES 100 features. 2013-10-04 21:09:36 +00:00
100Limits.vert Implement ES 2.0 (version 100) limitations for non-inductive loop detection and array indexes needing "constant-index-expressions" (inductive variables and constant expressions). 2013-10-14 22:42:16 +00:00
100scope.vert Allow ES version 100 to redeclare built-in functions. 2013-10-02 01:30:14 +00:00
120.frag Full thread safety working: 2013-09-08 21:04:46 +00:00
120.vert Fix parameter count bug in ambiguity checking for overloaded function matching under implicit conversions. 2013-10-31 18:05:50 +00:00
130.frag Clean up/resolve a bunch of TODO, which included implementing pixel_center_integer and origin_upper_left and adjusting what versions see legacy texturing names. 2013-11-05 18:07:25 +00:00
140.frag Add all built-in variables for all versions/profiles/stages of GLSL. Also, made more readable; declarations are cut and paste from the specs, with quotes around them. This does not include built-in constants yet (other than MaxClipDistances), just the non-constants. 2013-10-16 22:28:35 +00:00
150.frag Clean up/resolve a bunch of TODO, which included implementing pixel_center_integer and origin_upper_left and adjusting what versions see legacy texturing names. 2013-11-05 18:07:25 +00:00
150.geom Add geometry-shader stream, invocations, max_vertices, lines, triangles, etc. layout qualifiers, and their default/inheritance behaviors, and some other misc. geometry shader features. (Geometry shaders are not yet done though.) 2013-10-23 19:34:05 +00:00
150.vert Add ES 3.0 fragment output link-time test for outputs having or not having location qualifiers. 2013-10-15 21:46:20 +00:00
300.frag Clean up/resolve a bunch of TODO, which included implementing pixel_center_integer and origin_upper_left and adjusting what versions see legacy texturing names. 2013-11-05 18:07:25 +00:00
300.vert Add semantic checks for order of qualification and repetition within a class of qualifiers. 2013-06-24 21:22:03 +00:00
300block.frag Create linkage symbol nodes in the AST so a linker has access to all global objects that were declared, for error checking, etc. Use it now for all ins/outs/uniforms as well as gl_VertexID and gl_InstanceID. 2013-06-24 17:26:56 +00:00
300BuiltIns.frag Semantic checks: ES doesn't have unsized arrays or noise*(). 2013-06-13 20:16:43 +00:00
300layout.frag Track separate precision defaults for each kind of sampler, give initial defaults as per spec. Also make fragment floats have no default. Modify/add tests to adapt to these changes. 2013-06-19 05:41:25 +00:00
300layout.vert Turn on non-uniform blocks (in/out/buffer), and prevent new stages from working with "no profile" (before 150) shaders. 2013-10-11 19:46:10 +00:00
300link.frag Add ES 3.0 fragment output link-time test for outputs having or not having location qualifiers. 2013-10-15 21:46:20 +00:00
300link2.frag Add ES 3.0 fragment output link-time test for outputs having or not having location qualifiers. 2013-10-15 21:46:20 +00:00
300link3.frag Add ES 3.0 fragment output link-time test for outputs having or not having location qualifiers. 2013-10-15 21:46:20 +00:00
300operations.frag Track separate precision defaults for each kind of sampler, give initial defaults as per spec. Also make fragment floats have no default. Modify/add tests to adapt to these changes. 2013-06-19 05:41:25 +00:00
300scope.vert Get all the scoping rules right for ES and non ES, name hiding, built-in overriding, etc. 2013-06-12 06:13:17 +00:00
330.frag Add redeclarations of built-in blocks. 2013-10-24 01:25:40 +00:00
330comp.frag Allow gl_FragColor and gl_FragData in non-forward-compatible contexts for non-ES versions 150 - 410. Also add deprecation message for attribute/varying for core profile. 2013-02-27 19:02:52 +00:00
400.frag Clean up/resolve a bunch of TODO, which included implementing pixel_center_integer and origin_upper_left and adjusting what versions see legacy texturing names. 2013-11-05 18:07:25 +00:00
400.geom Add geometry shader input array sizing/checking WRT declared input primitive layout. 2013-10-24 22:41:04 +00:00
400.tesc Put in infrastructure for tessellation, geometry, and compute stages, and partially flesh out with built-in functions. 2013-08-09 17:14:49 +00:00
400.tese Put in infrastructure for tessellation, geometry, and compute stages, and partially flesh out with built-in functions. 2013-08-09 17:14:49 +00:00
410.geom Add redeclarations of built-in blocks. 2013-10-24 01:25:40 +00:00
420.geom Fix bug where bracket dereferences were incorrectly keeping the base's qualifier (for example constBase[i] would still be a const instead of EvqTemporary). 2013-10-28 19:49:16 +00:00
420.tese Add C-style curly-brace initializers. 2013-10-17 19:43:43 +00:00
420.vert Add layout binding qualifier for blocks and samplers (atomics are not yet in, nor link validation). 2013-10-18 21:37:55 +00:00
430.comp Tie "location = " to the right stages/versions/extensions. Also add "#define extension 1" extension support and instructions. 2013-10-22 00:21:04 +00:00
430.vert Add redeclarations of built-in blocks. 2013-10-24 01:25:40 +00:00
430scope.vert Get all the scoping rules right for ES and non ES, name hiding, built-in overriding, etc. 2013-06-12 06:13:17 +00:00
array.frag Add semantic check for precision qualifier on wrong kind of type. Added a few more tests. 2013-06-25 21:53:59 +00:00
array100.frag Improve robustness of extension checking, and its intersection with ES 100 features. 2013-10-04 21:09:36 +00:00
comment.frag Support line-continuation (backslash before newline) for tokens and one-line comments in the preprocessor. 2013-06-25 21:09:47 +00:00
constErrors.frag Add function "const", where the initializer does not have to be a compile-time constant. 2013-10-17 20:55:30 +00:00
constFold.frag Remove TIntermediate's dependency on infoSink, simplify folding of constant aggregates, and infoSink use in constant folding. 2013-09-03 22:14:59 +00:00
cppComplexExpr.vert Minor preprocessor fix for error message line/string numbers coming from source line, not macro line. 2013-10-18 03:09:37 +00:00
cppIndent.vert Make the default version be 100. 2013-02-08 18:56:56 +00:00
cppNest.vert Make the default version be 100. 2013-02-08 18:56:56 +00:00
cppSimple.vert Eliminate flex as the GLSL lexical analyzer, going from two nested lexical analyzers down to one, leaving just the preprocessor's lexical analysis. A new layer replaces it, to translate from the preprocessor's view of tokenization to glslang's view of tokenization. 2013-07-06 19:54:21 +00:00
dce.frag Test for and prevent any dead-code elimination, as all code is needed in the AST for static-use analysis. 2013-09-20 06:20:21 +00:00
decls.frag Add full support for uniforms with initializers, including intra-stage link validation of aggregate constant initializers. 2013-09-28 04:02:08 +00:00
empty.frag Improve preprocessor by using GLSL scanner, allowing read-only strings to be compiled, unifying of line # tracking, and correct detection that ES #version appeared after a comment. 2013-10-28 18:12:06 +00:00
empty2.frag Improve preprocessor by using GLSL scanner, allowing read-only strings to be compiled, unifying of line # tracking, and correct detection that ES #version appeared after a comment. 2013-10-28 18:12:06 +00:00
empty3.frag Improve preprocessor by using GLSL scanner, allowing read-only strings to be compiled, unifying of line # tracking, and correct detection that ES #version appeared after a comment. 2013-10-28 18:12:06 +00:00
errors.frag Minor updates to tests. 2013-03-04 23:50:08 +00:00
forwardRef.frag Track separate precision defaults for each kind of sampler, give initial defaults as per spec. Also make fragment floats have no default. Modify/add tests to adapt to these changes. 2013-06-19 05:41:25 +00:00
lineContinuation.vert Eliminate flex as the GLSL lexical analyzer, going from two nested lexical analyzers down to one, leaving just the preprocessor's lexical analysis. A new layer replaces it, to translate from the preprocessor's view of tokenization to glslang's view of tokenization. 2013-07-06 19:54:21 +00:00
link1.frag Add full support for uniforms with initializers, including intra-stage link validation of aggregate constant initializers. 2013-09-28 04:02:08 +00:00
link2.frag Add full support for uniforms with initializers, including intra-stage link validation of aggregate constant initializers. 2013-09-28 04:02:08 +00:00
link3.frag Add basic intra-stage linking validation for matching types and qualification of uniforms/ins/outs/globals, function body duplication, and mixing ES/non-ES shaders. 2013-09-24 21:18:46 +00:00
mains.frag Add link validation infrastructure for multiple compilation units per stage. Includes a new, straightforward, C++ interface to the front end. 2013-09-04 21:19:27 +00:00
mains1.frag Add link validation infrastructure for multiple compilation units per stage. Includes a new, straightforward, C++ interface to the front end. 2013-09-04 21:19:27 +00:00
mains2.frag Add link validation infrastructure for multiple compilation units per stage. Includes a new, straightforward, C++ interface to the front end. 2013-09-04 21:19:27 +00:00
matrixError.vert Move the complex pieces of C++ code from glslang.y to ParseHelper.cpp. Updated some tests. 2013-08-27 05:57:15 +00:00
noMain.vert Add link validation infrastructure for multiple compilation units per stage. Includes a new, straightforward, C++ interface to the front end. 2013-09-04 21:19:27 +00:00
noMain1.geom Add link validation infrastructure for multiple compilation units per stage. Includes a new, straightforward, C++ interface to the front end. 2013-09-04 21:19:27 +00:00
noMain2.geom Add link validation infrastructure for multiple compilation units per stage. Includes a new, straightforward, C++ interface to the front end. 2013-09-04 21:19:27 +00:00
nonSquare.vert Implement non-square matrices, and make a few type improvements. Cleaned up a few old issues. Added two tests. 2013-02-04 23:54:58 +00:00
numeral.frag Allow unsigned int in the "location = " grammar, and generally improve recognition of numeric literals to be up to spec. 2013-08-04 23:51:37 +00:00
pointCoord.frag Built-in symbol tables now lazily evaluated, and driven by per version, per profile input. Got all ES 100 and ES 300 built-in symbols correct. 2013-02-17 06:01:50 +00:00
precision.frag Add semantic check for precision qualifier on wrong kind of type. Added a few more tests. 2013-06-25 21:53:59 +00:00
precision.vert Rationalize naming/access to current thread-local-storage scheme. However, the preprocessor tokenizer is not thread-safe, so this may all change. 2013-07-02 20:18:59 +00:00
recurse1.frag Fix recursion detection (it was detecting cycles in the call graph that were not directed cycles). 2013-10-30 01:22:04 +00:00
recurse1.vert Add function recursion testing to the link-time validation. 2013-10-01 21:58:43 +00:00
recurse2.frag Add function recursion testing to the link-time validation. 2013-10-01 21:58:43 +00:00
reflection.vert Add and partially implement an interface for doing uniform reflection. It includes an AST traversal to identify live accesses. 2013-11-07 01:06:34 +00:00
runtests Add and partially implement an interface for doing uniform reflection. It includes an AST traversal to identify live accesses. 2013-11-07 01:06:34 +00:00
sample.frag Make the default version be 100. 2013-02-08 18:56:56 +00:00
sample.frag.out Add a new shader-versioning infrastructure capable of handling multiple profiles, desktop/ES, many versions, features coming and going in different versions across different profiles, and extensions. 2012-12-13 00:05:26 +00:00
sample.vert Make the default version be 100. 2013-02-08 18:56:56 +00:00
sample.vert.out Add a new shader-versioning infrastructure capable of handling multiple profiles, desktop/ES, many versions, features coming and going in different versions across different profiles, and extensions. 2012-12-13 00:05:26 +00:00
specExamples.frag Turn on non-uniform blocks (in/out/buffer), and prevent new stages from working with "no profile" (before 150) shaders. 2013-10-11 19:46:10 +00:00
specExamples.vert Add swizzles to scalars. 2013-10-18 03:56:23 +00:00
switch.frag 1) Don't propagate precision of built-in function arguments to return type when return type is bool (e.g., isnan). 2013-07-01 17:56:24 +00:00
testlist Clean up/resolve a bunch of TODO, which included implementing pixel_center_integer and origin_upper_left and adjusting what versions see legacy texturing names. 2013-11-05 18:07:25 +00:00
tokenLength.vert Eliminate flex as the GLSL lexical analyzer, going from two nested lexical analyzers down to one, leaving just the preprocessor's lexical analysis. A new layer replaces it, to translate from the preprocessor's view of tokenization to glslang's view of tokenization. 2013-07-06 19:54:21 +00:00
uint.frag Track separate precision defaults for each kind of sampler, give initial defaults as per spec. Also make fragment floats have no default. Modify/add tests to adapt to these changes. 2013-06-19 05:41:25 +00:00
versionsClean.frag Track separate precision defaults for each kind of sampler, give initial defaults as per spec. Also make fragment floats have no default. Modify/add tests to adapt to these changes. 2013-06-19 05:41:25 +00:00
versionsClean.vert Add a new shader-versioning infrastructure capable of handling multiple profiles, desktop/ES, many versions, features coming and going in different versions across different profiles, and extensions. 2012-12-13 00:05:26 +00:00
versionsErrors.frag Add a new shader-versioning infrastructure capable of handling multiple profiles, desktop/ES, many versions, features coming and going in different versions across different profiles, and extensions. 2012-12-13 00:05:26 +00:00
versionsErrors.vert Add a new shader-versioning infrastructure capable of handling multiple profiles, desktop/ES, many versions, features coming and going in different versions across different profiles, and extensions. 2012-12-13 00:05:26 +00:00