Commit graph

  • 8e5425745f - Temp fix for the GLSL yacc file (linux builds failing). John Kessenich 2013-04-11 22:38:16 +00:00
  • b51f62c573 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. John Kessenich 2013-04-11 16:31:09 +00:00
  • 63eed3867a Additional layout-related error checking. John Kessenich 2013-04-10 23:30:05 +00:00
  • bcd79fe5a3 Implement default layout qualifiers at global and block levels with proper inheritance. Also add more error checking of qualifiers. John Kessenich 2013-04-10 22:26:56 +00:00
  • ba04210097 Add anonymous members as a new symbol table type, so the infrastructure can handle blocks with no names. John Kessenich 2013-04-10 20:15:16 +00:00
  • ed3197921e Change TType member from "type" to "basicType". It was very confusing. John Kessenich 2013-04-10 02:28:55 +00:00
  • f6648dc12c Add interface blocks as a basic type and handle uniform blocks that have an instance name. Includes handling qualifiers on structure members. John Kessenich 2013-04-10 02:06:46 +00:00
  • e9942d26f5 Initial implementation of layout qualifiers. More to come after uniform blocks are in place. John Kessenich 2013-04-09 01:20:01 +00:00
  • 3ed2db58f1 Put in correct rules for multiple versions of qualification and typing of inputs and outputs. Also, removed EvqAttribute, merging it with EvqVaryingIn. John Kessenich 2013-04-07 22:43:16 +00:00
  • ad3663be1f 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. John Kessenich 2013-04-07 20:04:12 +00:00
  • 4ba94413d3 Split out the unary-argument built-in function path from the addUnaryMath() path, allowing the return types to be treated correctly without any special casing. Also, implement the correct precision qualifier propagation rules for built-in functions mapped to operators. John Kessenich 2013-04-07 02:10:55 +00:00
  • ebeeece6a7 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. John Kessenich 2013-04-05 04:05:39 +00:00
  • ae722a6230 CPP: Handle the "u" and "U" suffixes for uint literals, and correctly handle underflow/overflow of integer literals. John Kessenich 2013-04-03 18:42:43 +00:00
  • 7d58d655c2 Add a forward reference function call test. John Kessenich 2013-03-21 17:33:38 +00:00
  • a067b588aa Fix release build, it was missing the custom build steps. John Kessenich 2013-03-13 01:58:33 +00:00
  • 213c464c60 Add and use ability to tell the backend compiler what version/profile the source shader was. John Kessenich 2013-03-12 17:53:55 +00:00
  • d7c120f16f A few trivial things, including removing '/' as a command line option indicator so absolute paths work naturally. John Kessenich 2013-03-12 17:52:59 +00:00
  • 20169715df Get a clean g++/gcc build. Runs and gets correct results on linux. John Kessenich 2013-03-09 19:50:19 +00:00
  • cfd643e447 Another round of gcc/g++ fixes. John Kessenich 2013-03-08 23:14:42 +00:00
  • 37827023c4 Add warning-suppression flag. Combined with relaxed errors, so an enum can be used instead of many bools. John Kessenich 2013-03-08 19:26:11 +00:00
  • 4055816bc9 Add compilation mode flags for forward-compatible contexts and relaxed error checking. These initiate as arguments to ShCompile() and both default to being off. John Kessenich 2013-03-08 18:49:22 +00:00
  • 9500dff05e Upgrade to MSVC 11. Fix pool_allocator a bit. John Kessenich 2013-03-08 06:51:50 +00:00
  • 53fb465729 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. John Kessenich 2013-03-07 19:22:07 +00:00
  • 3f3e0ad3ad Add unsigned ints to constUnions. (Unsigned int support is still partial throughout.) John Kessenich 2013-03-07 01:02:02 +00:00
  • 3252b18590 Minor updates to tests. John Kessenich 2013-03-04 23:50:08 +00:00
  • ca8899c9ae Add productions/data for about 14 qualifiers (versions 1.2 through 4.3). Fixed some case issues for rect/array keywords. John Kessenich 2013-03-01 21:53:13 +00:00
  • 4b67103b02 Implement operator-based implicit type conversions. John Kessenich 2013-02-28 20:49:41 +00:00
  • ef8ae2e345 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. John Kessenich 2013-02-27 19:02:52 +00:00
  • df807514b6 Skip dummy unused second component for 1D non-array shadows. John Kessenich 2013-02-26 19:48:48 +00:00
  • b3338b307f Fix checking-in of wrong test files. John Kessenich 2013-02-26 19:47:21 +00:00
  • db6b9117a6 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. John Kessenich 2013-02-25 19:44:56 +00:00
  • 4774d5ca15 Rationalize original texture functions per stage. John Kessenich 2013-02-22 19:06:20 +00:00
  • d7f9406f82 Rationalize locations of type string methods. John Kessenich 2013-02-22 18:43:31 +00:00
  • 6f045f3e72 Expose the sampler type from a TType, and add a way to rebuild just the sampler type name for messages/annotation. John Kessenich 2013-02-21 17:22:17 +00:00
  • e141d5c99c Replace flat 110 sampler type space with an orthogonalized 430 sampler type space. Invoke it for all the sampler types in the 4.3 grammar. John Kessenich 2013-02-21 02:18:42 +00:00
  • e396a22632 Make legacy texture prototypes more concise, fix minor bugs needed to support it. John Kessenich 2013-02-20 20:10:07 +00:00
  • 1aec044854 Line up version 100 and 110 texture prototypes under correct versions. John Kessenich 2013-02-20 19:04:22 +00:00
  • 1f2a36bd6b Add ES 300 matrix operations: outerProduct, determinant, inverse, and transpose, and missing ES 300 limit gl_MaxFragmentInputVectors. John Kessenich 2013-02-20 04:42:42 +00:00
  • bd0747d6f0 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. John Kessenich 2013-02-17 06:01:50 +00:00
  • fb5f7eadfa Improve robustness for symbol downcasts by moving to a "getAs" infrastructure and doing more error checking. John Kessenich 2013-02-14 19:02:23 +00:00
  • e25cd0447d CPP: Fix stack of previous nested #if/#else/#endif for whether a #else had been seen, which was sometimes cleared and sometimes not, effected later nested #if/#else/#endif #else checks. John Kessenich 2013-02-13 17:18:30 +00:00
  • aab251435b Add bash script for running through all tests. John Kessenich 2013-02-12 18:26:15 +00:00
  • 71fca670f3 Allow GLSL construction of matrix from matrix, starting with version 120, and always for ES shaders. John Kessenich 2013-02-12 08:02:20 +00:00
  • f792295e35 Classify more keywords as to what versions they are identifiers, reserved, or keywords. John Kessenich 2013-02-12 06:53:13 +00:00
  • 3e1fcf34c5 Pass 2 at building on linux: remove compile errors from the preprocessor. John Kessenich 2013-02-12 04:58:22 +00:00
  • 54d8cda95e Pass 1 at building on linux: remove compile errors from machine independent. John Kessenich 2013-02-11 22:36:01 +00:00
  • dadf945fd7 Simultaneously fix only known memory leak and take the next step in supporting arrays of arrays. Improved several minor things along the way. John Kessenich 2013-02-11 00:54:44 +00:00
  • 6968b823ef Add gl_PointCoord. John Kessenich 2013-02-08 22:54:14 +00:00
  • 38c507e75a Make the default version be 100. John Kessenich 2013-02-08 18:56:56 +00:00
  • 46eaf4939e Support multiple default versions, to enable ES vs. desktop contexts, for shaders missing a #version statement. John Kessenich 2013-02-06 23:06:52 +00:00
  • c435c71d87 Update copyrights. John Kessenich 2013-02-06 19:46:32 +00:00
  • 85e0e02f6f Fix a preprocessor defect, where nested dead #if-#endif had nesting depth off by one level, turning what should be dead code into live code. John Kessenich 2013-02-06 02:23:47 +00:00
  • 464f6d9ff1 Add some CPP tests. John Kessenich 2013-02-06 00:14:16 +00:00
  • f0fdc53e2a Implement non-square matrices, and make a few type improvements. Cleaned up a few old issues. Added two tests. John Kessenich 2013-02-04 23:54:58 +00:00
  • 1c809955ba Add ability to treat keywords as identifiers in versions that had not yet reserved the keyword. John Kessenich 2013-01-31 22:55:53 +00:00
  • 59ddbafb62 Have non-ES profiles always use EpqNone (no precision qualifier) rather than using highp. This keeps precision qualifiers out of error messages, IL dumps, etc., and avoids the precision propagation algorithm. John Kessenich 2013-01-29 17:24:14 +00:00
  • e406f1c71c Put in basic propagation algorithm for precision qualifiers. Some corner cases are document as TODO. John Kessenich 2013-01-28 23:52:49 +00:00
  • cc2f8022d4 Hard code to ES profile for #version 100. John Kessenich 2013-01-28 18:28:28 +00:00
  • 868933d668 Add precision.frag test. John Kessenich 2013-01-28 17:40:21 +00:00
  • 5521862729 Implement the full scheme for ES precision qualifiers, generalizing existing storage qualifiers to be able to include multiple independent kinds of qualifiers. John Kessenich 2013-01-24 23:10:51 +00:00
  • 674014bfc4 Fix: version 100 does not accept the 'es' profile John Kessenich 2013-01-24 22:37:46 +00:00
  • 62b51a2b7e Non functional: Simplify accesses to the parseContext in the flex file. John Kessenich 2013-01-24 22:33:43 +00:00
  • 6dc6df377d Update copyrights to 2013 for files with real change in them. John Kessenich 2013-01-11 18:55:57 +00:00
  • 45b009a364 Update copyrights to 2013 for files with real change in them. John Kessenich 2013-01-11 18:40:40 +00:00
  • 564842b23b Properly declare versions for precision qualifiers, in/out/attribute/varying. John Kessenich 2013-01-10 18:20:47 +00:00
  • f59bfa07e0 Support in/out for stage inputs/outputs, tied to being desktop version 150 or ES 300. John Kessenich 2013-01-10 01:47:54 +00:00
  • 1b12b9c575 Fix "forward" -> "faceforward" typo, which had caused the operator for it to not be mapped, and instead passed through as a function call. John Kessenich 2012-12-21 04:28:05 +00:00
  • 5f96bbf9fd Bug fix: Make the type of the result of a structure assignment be the type of the structure assigned. That is, the type of the result of the "=" itself, if used in a broader expression. This probably fixes some other subtle problems as well. John Kessenich 2012-12-19 00:50:42 +00:00
  • f20bb0eb94 Add a simple test list for regression testing. A much broader test base is needed, however. John Kessenich 2012-12-13 01:37:04 +00:00
  • ece0d0ca27 Change the core of glslang to be a static library rather than a DLL. John Kessenich 2012-12-13 00:09:49 +00:00
  • 9fd55bd338 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. John Kessenich 2012-12-13 00:05:26 +00:00
  • 5d3e2e35b6 Support suffixes for floats and doubles (none were supported in 110). John Kessenich 2012-12-12 22:42:30 +00:00
  • e95ecc54fa 1) Improve error recovery from arrays sized with a non constant. 2) Add double vectors to the lexer. 3) Default to vertex shaders for unrecognized file name suffixes. John Kessenich 2012-12-12 21:34:14 +00:00
  • fabf3e4058 Add arrays of arrays grammar, and adapt existing 1D array semantics to keep working as before. John Kessenich 2012-12-12 21:26:43 +00:00
  • e320a1854b Remove the pack/unpack languages and bring grammar up from 1.1 to 4.2 and fix the affected 1.1 productions and semantics to still work correctly for 1.1 shaders. John Kessenich 2012-12-12 21:23:55 +00:00
  • 200b2734d7 Bring up to date with VS 10 express. John Kessenich 2012-12-12 21:21:23 +00:00
  • a0af473a8b Create a base GLSL front-end from the 3Dlabs glslang front-end from 20-Sep-2005. John Kessenich 2012-12-12 21:15:54 +00:00