- 0d22e31 Implement 1.20 style function signature matching under implicit conversion. This was the last key unimplemented feature of versions 120 through 330. by John Kessenich · 11 years ago
- 8cbd18e Fix recursion detection (it was detecting cycles in the call graph that were not directed cycles). by John Kessenich · 11 years ago
- e17ef84 Fix bug where bracket dereferences were incorrectly keeping the base's qualifier (for example constBase[i] would still be a const instead of EvqTemporary). by John Kessenich · 11 years ago
- ea869fb 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. by John Kessenich · 11 years ago
- 9497485 Add geometry shader input array sizing/checking WRT declared input primitive layout. by John Kessenich · 11 years ago
- ab41fe5 Add redeclarations of built-in blocks. by John Kessenich · 11 years ago
- 94fdd11 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.) by John Kessenich · 11 years ago
- 284231c Add built-in constants through version 440. Some still need to be consumed when initializing the symbol table. by John Kessenich · 11 years ago
- c78a126 Tie "location = " to the right stages/versions/extensions. Also add "#define extension 1" extension support and instructions. by John Kessenich · 11 years ago
- 21a8770 Add texture gather functions (and extension check) for GLSL 400 and GL_ARB_texture_gather. by John Kessenich · 11 years ago
- ab30803 Add layout binding qualifier for blocks and samplers (atomics are not yet in, nor link validation). by John Kessenich · 11 years ago
- 8f13e13 Add swizzles to scalars. by John Kessenich · 11 years ago
- 8d8f4cc Minor preprocessor fix for error message line/string numbers coming from source line, not macro line. by John Kessenich · 11 years ago
- e46b087 Add function "const", where the initializer does not have to be a compile-time constant. by John Kessenich · 11 years ago
- 779e6b4 Add C-style curly-brace initializers. by John Kessenich · 11 years ago
- e7c59c1 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. by John Kessenich · 11 years ago
- 457145d Have block members use EvqVaryingIn rather than EvqIn, etc., confining the EvqIn-class of qualifier just to parameters and parse time (before it's known if something is a parameter). Also, have member error messages report their actual line, rather than the block's line. by John Kessenich · 11 years ago
- fb57e7c Add ES 3.0 fragment output link-time test for outputs having or not having location qualifiers. by John Kessenich · 11 years ago
- 27b72e4 Implement ES 2.0 (version 100) limitations for non-inductive loop detection and array indexes needing "constant-index-expressions" (inductive variables and constant expressions). by John Kessenich · 11 years ago
- a4ea131 Turn on non-uniform blocks (in/out/buffer), and prevent new stages from working with "no profile" (before 150) shaders. by John Kessenich · 11 years ago
- 3afe67d Non-functional: Remove use of the unused structure 'remapper', and other minor internal improvements. Triggered by some bigger changes in the works. Also, turned on an existing test that was not included in the test list. by John Kessenich · 11 years ago
- 98c2ef2 Non-functional changes: Typo in error message and in comment, remove unneeded arguments, separate constructor-op mapping from handling constructors. by John Kessenich · 11 years ago
- 816e9bc Improve robustness of extension checking, and its intersection with ES 100 features. by John Kessenich · 11 years ago
- a5830df 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. by John Kessenich · 11 years ago
- 44e8cae Allow ES version 100 to redeclare built-in functions. by John Kessenich · 11 years ago
- 447fc36 Add message indicating level of completeness for not-yet-complete versions. by John Kessenich · 11 years ago
- 2ecdd14 Add function recursion testing to the link-time validation. by John Kessenich · 11 years ago
- f2ee3dd Add full support for uniforms with initializers, including intra-stage link validation of aggregate constant initializers. by John Kessenich · 11 years ago
- 9839e24 Unify the 8 grammar productions for declaring variables. This greatly simplifies making changes for this set of productions. by John Kessenich · 11 years ago
- 337dbc7 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. by John Kessenich · 11 years ago
- f5ebfb5 Test for and prevent any dead-code elimination, as all code is needed in the AST for static-use analysis. by John Kessenich · 11 years ago
- 05a7063 Add optional configuration file for specifying (existing) limits. Details explained by usage statement. More limits to be added in the future. by John Kessenich · 11 years ago
- b84b700 Basic infrastructure for redeclaring built-in variables (like gl_FragCoord) so shaders can change their type/layout. by John Kessenich · 11 years ago
- 5f753e0 Full thread safety working: by John Kessenich · 11 years ago
- 38f3b89 Ensure the shared symbol table levels are read-only to make multi-threading safe. Also removed inadvertent extra copies of the symbol table shared across all stages. by John Kessenich · 11 years ago
- 69f4b51 Add link validation infrastructure for multiple compilation units per stage. Includes a new, straightforward, C++ interface to the front end. by John Kessenich · 11 years ago
- 807b8e3 Remove TIntermediate's dependency on infoSink, simplify folding of constant aggregates, and infoSink use in constant folding. by John Kessenich · 11 years ago
- 8700e9e Add more constant folding cases for min, max, step, smoothstep, mix, clamp, atan, and pow. by John Kessenich · 11 years ago
- 23bdb29 Move the complex pieces of C++ code from glslang.y to ParseHelper.cpp. Updated some tests. by John Kessenich · 11 years ago
- d46b31f Give new scopes to non-compound (simple) if-then-else substatements, correcting scoping for declarations they contain. by John Kessenich · 11 years ago
- c027579 Put in infrastructure for tessellation, geometry, and compute stages, and partially flesh out with built-in functions. by John Kessenich · 11 years ago
- 252b619 Remove a mangled-name cache in the type that was sometimes stale. by John Kessenich · 11 years ago
- 1b42f2a Add parse-time constant folding for isinf() and isnan(). by John Kessenich · 11 years ago
- 8d2fe45 Linux abs() needs to be fabs(); a few other minor Linux tweaks. by John Kessenich · 11 years ago
- 4586dbd Track expected test results and add more README information. by John Kessenich · 11 years ago
- 41a5918 Allow unsigned int in the "location = " grammar, and generally improve recognition of numeric literals to be up to spec. by John Kessenich · 11 years ago
- 54f6e56 Set up infrastructure for installing an executable. Changes the standalone name to glslangValidator. by John Kessenich · 11 years ago
- 5f1a0b7 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. by John Kessenich · 11 years ago
- 73ed17a Rationalize naming/access to current thread-local-storage scheme. However, the preprocessor tokenizer is not thread-safe, so this may all change. by John Kessenich · 11 years ago
- 1fde51d 1) Don't propagate precision of built-in function arguments to return type when return type is bool (e.g., isnan). by John Kessenich · 11 years ago
- e369bfc Semantic checks for .length(), switch/case/default, and multidimensional arrays. by John Kessenich · 11 years ago
- ef84d10 Add semantic check for precision qualifier on wrong kind of type. Added a few more tests. by John Kessenich · 11 years ago
- d3f8589 Support line-continuation (backslash before newline) for tokens and one-line comments in the preprocessor. by John Kessenich · 11 years ago
- ebf0825 Add the 6 hyperbolic trig functions. by John Kessenich · 11 years ago
- eebed6f Disallow variable indexing into sampler array for ES and desktop before version 400. by John Kessenich · 11 years ago
- 01fc064 Add semantic checks for order of qualification and repetition within a class of qualifiers. by John Kessenich · 11 years ago
- 06f8464 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. by John Kessenich · 11 years ago
- b29ba33 Fix bug of accidentally overriding initial layout location with 0, which does not mean no location. Added in/out structure tests. by John Kessenich · 11 years ago
- 211cba2 Add grammar productions for the syntax "layout(...) uniform;" for setting global defaults. by John Kessenich · 11 years ago
- 60d9f7a Add grammar productions for adding 'invariant' to already declared variables. by John Kessenich · 11 years ago
- 41a36bb 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. by John Kessenich · 11 years ago
- f78fff9 Implement __VERSION__ macro, make ftransform() non-ES only, add more tests. by John Kessenich · 11 years ago
- fb7044a Semantic checks: ES doesn't have unsized arrays or noise*(). by John Kessenich · 11 years ago
- fbe0152 Get all the scoping rules right for ES and non ES, name hiding, built-in overriding, etc. by John Kessenich · 11 years ago
- a5cecfc Add constant folding for the exp*(), log*(), *sqrt(), round*(), floor(), fract(), ceil(), abs(), and sign() built in functions. by John Kessenich · 11 years ago
- fddf3ce Unify constant floats and constant doubles; they can all be constant doubles. by John Kessenich · 11 years ago
- 50a8cab Add constant folding for length(), normalize(), fwidth(), dFdx(), and dFdy(). by John Kessenich · 11 years ago
- 00f605b A round of increasing robustness against buffer overruns. by John Kessenich · 11 years ago
- 3ce5745 Add more tests for built-in variables. by John Kessenich · 11 years ago
- 0fbb0c4 Block/structure fixes: Merge qualifiers with multiple declarators, handle arrays of blocks, more semantic checks for what's allowed. by John Kessenich · 11 years ago
- ceb0623 Fix another problem with undefined macros needing to evaluate to 0 within a preprocessor expression, but not outside a preprocessor expression. by John Kessenich · 11 years ago
- 04de88f The new test that was to have been added with the previous check in. by John Kessenich · 11 years ago
- 2327da4 Add test for operation semantics, fix one bug it found. by John Kessenich · 11 years ago
- 8d00fd0 Add missing type check for operands having the same type (after conversion) around the ":" in a "?:" operation. by John Kessenich · 11 years ago
- 2d0f1e5 Add precision qualifier propagation for swizzling, texture lookups, built-in funtions mapped to operators, comma op, and more robustly propagate for all binary/unary ops. by John Kessenich · 11 years ago
- 52ac67e Make the PP report an error on undefined macro in "#if ..." for ES profiles, unless relaxed error checking is requested. Still works as normal CPP on non-ES. by John Kessenich · 11 years ago
- c2ff770 For all keywords already present, get correct when they could be identifiers, are reserved words, or are keywords, for all versions of ESSL and GLSL. by John Kessenich · 11 years ago
- 0576126 Add switch/case/default statements, using a switch node that contains a sequence of case/default nodes and top-level nodes of the code chunks in between them. by John Kessenich · 11 years ago
- b51f62c Add the GL_ES macro for ES personalities, along with a general mechanism for adding preambles in front of shaders without effecting line numbers, etc. by John Kessenich · 11 years ago
- 63eed38 Additional layout-related error checking. by John Kessenich · 11 years ago
- bcd79fe Implement default layout qualifiers at global and block levels with proper inheritance. Also add more error checking of qualifiers. by John Kessenich · 11 years ago
- ba04210 Add anonymous members as a new symbol table type, so the infrastructure can handle blocks with no names. by John Kessenich · 11 years ago
- f6648dc Add interface blocks as a basic type and handle uniform blocks that have an instance name. Includes handling qualifiers on structure members. by John Kessenich · 11 years ago
- e9942d2 Initial implementation of layout qualifiers. More to come after uniform blocks are in place. by John Kessenich · 11 years ago
- 3ed2db5 Put in correct rules for multiple versions of qualification and typing of inputs and outputs. Also, removed EvqAttribute, merging it with EvqVaryingIn. by John Kessenich · 11 years ago
- ad3663b Add ES 300 built-ins trunc, round, roundEven, modf, isnan, isinf, floatBitsToInt, floatBitsToUint, intBitsToFloat, uintBitsToFloat, packSnorm2x16, unpackSnorm2x16, packUnorm2x16, unpackUnorm2x16, packHalf2x16, and unpackHalf2x16, and new form of min, max, clamp, and mix. by John Kessenich · 11 years ago
- ebeeece Add uint type (big change). For both int/uint, add the operators >>, <<, &, |, and ^. Also added unsigned literals and uint precision support. Also fixed how int/uint literal underflow/overflow is handled. by John Kessenich · 11 years ago
- 7d58d65 Add a forward reference function call test. by John Kessenich · 11 years ago
- 2016971 Get a clean g++/gcc build. Runs and gets correct results on linux. by John Kessenich · 12 years ago
- 53fb465 Change infrastructure to support constant folding across built-in functions, as required by 1.2 semantics. Partially fleshed out with min/max and some trig functions. Still have to complete all operations. by John Kessenich · 12 years ago
- 3252b18 Minor updates to tests. by John Kessenich · 12 years ago
- ca8899c Add productions/data for about 14 qualifiers (versions 1.2 through 4.3). Fixed some case issues for rect/array keywords. by John Kessenich · 12 years ago
- 4b67103 Implement operator-based implicit type conversions. by John Kessenich · 12 years ago
- ef8ae2e 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. by John Kessenich · 12 years ago
- df80751 Skip dummy unused second component for 1D non-array shadows. by John Kessenich · 12 years ago
- b3338b3 Fix checking-in of wrong test files. by John Kessenich · 12 years ago
- db6b911 Implement modern (130 and above) texturing. About 250 functions for 3.0, over 500 for 4.3, created programmatically. Handles all 3.0 functions, almost all 4.3 functions. by John Kessenich · 12 years ago
- 1f2a36b Add ES 300 matrix operations: outerProduct, determinant, inverse, and transpose, and missing ES 300 limit gl_MaxFragmentInputVectors. by John Kessenich · 12 years ago
- bd0747d 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. by John Kessenich · 12 years ago
- aab2514 Add bash script for running through all tests. by John Kessenich · 12 years ago