Commit Graph

  • c7776ec3fd GL_ARB_enhanced_layouts, part 4: Numerical side of xfb_*: offset computation, size computation, alias detection, paddings, overflow, implicit strides, gl_Max* checks, etc. John Kessenich 2014-01-26 01:37:13 +00:00
  • f359199cc3 Support both dynamic CRT and static CRT configurations on VS11 build. The public download needs the static one for user simplicity, while some downstream tools need the dynamic one. John Kessenich 2014-01-23 21:40:33 +00:00
  • efb2b7d433 Move to the v110_xp toolset to support XP. John Kessenich 2014-01-23 00:35:24 +00:00
  • f4d6634713 Bug 11531: Use %zu when printing size_t values in printf and use "friend class" instead of "friend". John Kessenich 2014-01-22 23:37:55 +00:00
  • 28b95b682c Remove Windows VS 11 executable dependencies on MSVCP110.dll and MSVCR110.dll. The only DLL needed now is the standard KERNEL32.DLL. John Kessenich 2014-01-22 23:23:19 +00:00
  • 44b807e1d0 GL_ARB_enhanced_layouts, part 3: Semantics for xfb_*: where they can go, inheritance, etc., but not yet the backing arithmetic for offsets and strides. John Kessenich 2014-01-21 04:43:23 +00:00
  • 281958c21a Fix g++ warning and update Window's binary. John Kessenich 2014-01-11 20:35:26 +00:00
  • a9819921b3 Improvement to the AST traversal infrastructure. John Kessenich 2014-01-11 19:29:55 +00:00
  • 4f9aebf659 update Makefile dependencies John Kessenich 2014-01-10 21:25:05 +00:00
  • 3cdc47bf0b Several miscellaneous portability improvements (no functional changes). John Kessenich 2014-01-10 21:09:51 +00:00
  • 68546c6ca4 GL_ARB_enhanced_layouts, part 2: Full implementation of location/component, plus the parsing for xfb* and align/offset (but not yet full semantics for align/offset). John Kessenich 2014-01-08 23:25:18 +00:00
  • b76d6d6496 GL_ARB_enhanced_layouts, part 1: Track whether constants are literals, to enable version-specific checking of layout(... = literal) vs. layout(... = expression). John Kessenich 2014-01-07 18:14:48 +00:00
  • 5053a39578 Fix slight inconsistencies in which qualifiers are inherited into block members: - don't inherit 'binding' - always set the member storage qualifier, not just when the shader explicitly set it - don't include in/out members as objects that are resized by geometry/primitive layout specifiers As a side effect, this makes built-in redeclarations (like gl_ClipDistance) require in/out. John Kessenich 2014-01-07 17:44:41 +00:00
  • 7cbfdf4394 Minor infrastructure changes, to simplify an upcoming check in: - print out block member types when printing a block (makes all test results change) - const versions of all intermediate.h type-identification methods - layoutSlotLocation -> layoutLocation John Kessenich 2014-01-06 21:27:56 +00:00
  • 7054075804 Tests: add a few more test cases. John Kessenich 2013-12-31 23:02:24 +00:00
  • a70031a696 update linux binary John Kessenich 2013-12-31 00:16:26 +00:00
  • 99b0ffd468 Properly handle 'default' nested in flow control, as well as default/case outside switch statements. John Kessenich 2013-12-31 00:13:26 +00:00
  • ddbe0befd7 Update windows binaries. John Kessenich 2013-12-30 20:44:49 +00:00
  • bd306b89a4 fix g++ complaint and update binaries John Kessenich 2013-12-30 20:40:03 +00:00
  • fcb4ed054c Preprocessor: Rationalize, simplify, and correct the stack of input sources and their tokenization. This included - consistently dealing with EOF and its effect on error recovery (bug 11444, #1) - turning a simulated OO hierarchy of function pointers and typecasting into a real C++ class hierarchy - correctly handling '\' everywhere, in all classes of tokens, as a layer before preprocessing itself - conditionally handling '\n' in macro expansion input, depending on whether it is in a macro expression or not - delete some unused "memory cleanup" code John Kessenich 2013-12-30 20:34:28 +00:00
  • 08d182470b Add array sizing/checking/overlapping semantics for tessellation inputs. John Kessenich 2013-12-20 18:36:27 +00:00
  • e8fe7b81d7 Allow tessellation shaders to work on versions back to 150. Also combined all the tessellation tests into a single run. John Kessenich 2013-12-18 18:47:12 +00:00
  • 7c908d2543 Additional semantic checking for tessellation shaders and related clean up: - non-arrayed geometry inputs and tessellation-control outputs - include user blocks in i/o array resizing based on primitive type - things belonging only to 'in' or 'out' are verified only on 'in' or 'out' - invocation number changing - move shader-scoped qualifier checking into its class - remove an incidental union of two levels of the node hierarchy in the yacc stack - remove layout(location=) default tracking when setting on a variable John Kessenich 2013-12-18 03:06:24 +00:00
  • 76ea74afe0 Update Linux script and binaries John Kessenich 2013-12-17 00:28:00 +00:00
  • bd95819123 1) Allow '\' before a non-newline as a token in the preprocessor, and 2) localize line-continuation to just the pp scanner. John Kessenich 2013-12-16 23:58:15 +00:00
  • 27151efa71 Tessellation: Smaller changes: Take tessellation control output arrayness into account in location overlap testing, better error message for redeclaring a built-in with size to be unsized. John Kessenich 2013-12-13 19:26:54 +00:00
  • f3e2a89452 Tessellation: Implicit array sizing and consistency checking of control-shader output arrays based on layout(vertices=...). John Kessenich 2013-12-13 18:38:43 +00:00
  • 116c30b6ed Tessellation: implement 'patch' semantics. John Kessenich 2013-12-12 01:25:37 +00:00
  • a57a78ed9f Update Linux binaries John Kessenich 2013-12-11 22:42:17 +00:00
  • 3a4687d782 Add missing check that a function call is not using the same name as a variable hiding the function's name. Also, support version 110 separate name spaces for functions and variable names. John Kessenich 2013-12-11 22:38:19 +00:00
  • 623833fabc Tessellation partial implementation (not ready for use yet), including: - the built-in constants - built-in variable declarations, some dependent on gl_MaxPatchVertices - layout qualifier for vertices (shared with geometry shader max_vertices) - layout qualifiers for vertex spacing, vertex order, point mode, and primitive type - link semantics for layout qualifiers John Kessenich 2013-12-11 18:57:40 +00:00
  • 2fcc9ff1d2 Update Linux binaries John Kessenich 2013-12-10 00:27:59 +00:00
  • 2d2f31625d Preprocessor: Implement skipping of macros that evaluate to nothing while evaluating expressions. They had been causing early termination of an expression's evaluation. John Kessenich 2013-12-10 00:25:14 +00:00
  • c719481d43 Flesh out 4.x block redeclaration semantics: - hide non-redeclared anonymous members - array size limit checking - illegal member qualifiers - additional members John Kessenich 2013-12-09 00:37:46 +00:00
  • e1b2e39a56 Allow layout aliasing for desktop vertex inputs. John Kessenich 2013-12-07 00:28:07 +00:00
  • 5f15d4224a Desktop array size limit checking for gl_ClipDistance[] and gl_TexCoord[]. John Kessenich 2013-12-06 23:57:42 +00:00
  • 64bcb105c9 Made '\' at end of C++ comments be a warning. It is line continuation for some versions, but not others. John Kessenich 2013-12-06 21:45:15 +00:00
  • 828dc87a7c Update Linux binaries John Kessenich 2013-12-06 18:30:06 +00:00
  • 3e0efe5981 Fix g++ warnings. John Kessenich 2013-12-06 18:24:47 +00:00
  • 7fc3669195 Preprocessor: Add short-circuit logic so ES errors are not given on undefined variables that are short circuited in && and || preprocessing expressions. John Kessenich 2013-12-06 18:19:22 +00:00
  • e28beee891 Preprocessor: Fixed that some comments incorrectly substituted a new line instead of space. Also generally cleaned up the space-related coding. John Kessenich 2013-12-06 16:13:47 +00:00
  • 8e789e8d62 Fixed a couple places that missed the error check for #else/#elif after #else. John Kessenich 2013-12-05 21:51:40 +00:00
  • 521ca375e0 Remove one layer of arrayness on geometry shader inputs before checking for location overlaps. I think there is a spec. bug here. John Kessenich 2013-12-05 20:58:16 +00:00
  • 0b39137009 Implement location overlap error checking. John Kessenich 2013-12-05 20:07:56 +00:00
  • 2f15597a7e Update Linux binaries John Kessenich 2013-12-04 21:51:22 +00:00
  • 38ae7be872 Update Window's binary. John Kessenich 2013-12-04 21:50:38 +00:00
  • 7fd9e1189b Track the flow-control (and {}) nesting level to prevent case statements from being a different nesting level than their switch statement. John Kessenich 2013-12-04 21:48:20 +00:00
  • 3a53006e0e Check for packing qualifiers on block members. John Kessenich 2013-12-04 21:01:32 +00:00
  • afda2411c0 Check for structures out from vertex or into fragment for ES 100 or desktop pre-150. John Kessenich 2013-12-04 20:41:33 +00:00
  • 66cdf36521 Detect and give error on second occurrence of #version. John Kessenich 2013-12-04 20:08:16 +00:00
  • ef9c8ab207 Update Linux binaries John Kessenich 2013-12-04 19:47:13 +00:00
  • e644daf0ed Update Window's binary. John Kessenich 2013-12-04 19:46:19 +00:00
  • b88c60b03f Track whether function declarations are prototypes, and only allow at most one prototype for ES 100. John Kessenich 2013-12-04 19:43:05 +00:00
  • e1f0f5b31f Re-allow non-language characters in ES 100 comments, including '\', except for '\' just before a new line. John Kessenich 2013-12-04 17:23:03 +00:00
  • 34bd4fbef7 Fix ES unsized-array checking: it was one level too low, disallowing some unsized syntax that is legal. John Kessenich 2013-12-04 16:43:00 +00:00
  • d4042f1827 Update Linux binaries John Kessenich 2013-12-04 04:49:23 +00:00
  • bc91f48e26 Update Window's binary. John Kessenich 2013-12-04 04:47:57 +00:00
  • 319de233dc Add a versioning system and tie it to the -v command-line option. System is described in glslang/Include/revision.template. John Kessenich 2013-12-04 04:43:40 +00:00
  • 44222f90af Update Linux binaries John Kessenich 2013-12-03 21:05:59 +00:00
  • 6ec8f28960 Update test results. John Kessenich 2013-12-03 21:05:07 +00:00
  • 143c8bf10f Give error when overloaded functions differ only on a parameter's precision qualifier. John Kessenich 2013-12-03 21:04:03 +00:00
  • 4e734dd68b Disallow non-language characters in comments for ES version 100. John Kessenich 2013-12-03 20:09:57 +00:00
  • 1abc4045ce Add #line functionality to allow expressions instead of just literals. Also made some preprocessor code slightly more clear. John Kessenich 2013-12-03 17:19:03 +00:00
  • b06c378cc9 Non-functional: missing test result and slight coding change from yesterday's constant folding check in. John Kessenich 2013-12-03 16:13:22 +00:00
  • a4ca22ff1d Finish compile-time constant folding for multi-argument built-ins: distance(), dot(), cross(), faceforward(), reflect(), refract(), and outerProduct(). John Kessenich 2013-12-03 01:18:06 +00:00
  • 0bd3ab69e2 Update Linux binaries John Kessenich 2013-12-02 18:10:10 +00:00
  • 13221d2f7a Fix logic error in steering which stages get bias vs. non-bias texturing functions. John Kessenich 2013-12-02 18:09:08 +00:00
  • 78fe3ace85 Fix crash from attempting ES precision propagation through a constant folded built-in function call when the expression tree has unknown precisions. John Kessenich 2013-12-02 16:38:53 +00:00
  • 98434bed00 Preprocessor fixes: - Correctly handle non-directive lines starting with "#" - Correctly ignore unrecognized #pragma - Partial fix for new lines in the middle of macro invocation John Kessenich 2013-12-02 15:56:38 +00:00
  • 3591813a8b Simplify and rationalize constant folding for dereferences (array, matrix, vector, swizzle, struct). John Kessenich 2013-12-01 23:37:08 +00:00
  • 1fbaa35ce7 Compile-time check on sampler binding size, link-time merging and checking of bindings. John Kessenich 2013-11-27 02:41:52 +00:00
  • 474b84bdcf Fix for glslang_vs2013.vcxproj: One source file was marked as CLInclude instead of CLCompile, which caused link errors. John Kessenich 2013-11-26 13:37:57 +00:00
  • d6bef9186b Correct textureGather*() extension support: - add extension behavior and warning message for partial extension support - add partial support for gpu_shader5 for textureGather* - add interactions between texture rectangle and textureGather* - add checks to distinguish between gpu_shader5 and texture_gather extension feature differences John Kessenich 2013-11-23 21:10:51 +00:00
  • 5b9f98854c Reflection: Eliminate redundant arrayed block entries, and use block name instead of instance name for active uniform enumeration. John Kessenich 2013-11-23 00:44:18 +00:00
  • c4a2b94dfa Update Linux binaries John Kessenich 2013-11-22 17:54:04 +00:00
  • 37d080c38a Add missing non-square matrixCompMult built-in functions. John Kessenich 2013-11-22 17:52:58 +00:00
  • 7c8ca2d529 Update Linux binaries John Kessenich 2013-11-22 17:32:52 +00:00
  • ad43f6f684 Implement GL_EXT_shader_texture_lod. John Kessenich 2013-11-22 17:30:34 +00:00
  • 04884e42ed Reflection: Expand out block arrays to N different blocks. John Kessenich 2013-11-21 00:54:57 +00:00
  • 1d1132d9eb Add limit checking for constant texture texel offsets and max_vertices. John Kessenich 2013-11-20 23:46:57 +00:00
  • 1e91f5ee8d Add link-time checks for max_vertices, input primitive, and output primitive for existence and matching. John Kessenich 2013-11-20 22:16:41 +00:00
  • 5134b9cf57 Track what ins/outs/uniforms are used, so that errors like "declare after use" or "can't use both XXX and YYY" can be issued. So far, used this for invariant, gl_FragColor et. al., and gl_FragCoord use before redeclaration. John Kessenich 2013-11-20 21:12:43 +00:00
  • 23bcc02a20 Add new convenience pool allocators for arbitrary types, and use them to keep all TSymbol content in the pool, so they don't have to be deleted. John Kessenich 2013-11-20 18:37:12 +00:00
  • e1dba1b59f Fix a preprocessor memory leak by cleaning up some preprocessor memory management. John Kessenich 2013-11-19 20:52:56 +00:00
  • 43e43ce77a Reflection: Flesh out expansions of complex aggregates not fully dereferenced, visit all array elements for a variable index, and correct max array index when a later occurrence is larger than an earlier one. John Kessenich 2013-11-15 20:41:31 +00:00
  • c17dbd516f Reflection: Optimize leaf-array sizes for largest index used in a live path. John Kessenich 2013-11-15 05:28:51 +00:00
  • 12f9221e44 Reflection: - correct block data size - handle deep dereference chains (block.member.member.member) - more clear interface argument names John Kessenich 2013-11-15 01:34:27 +00:00
  • c0827e4532 Add VS2013 projects. Also, update VS2010 project to: John Kessenich 2013-11-14 16:05:13 +00:00
  • 3db2966570 Fix for build error in vs2013: #include <algorithm> to get definition of std::min and std::max John Kessenich 2013-11-14 15:28:57 +00:00
  • bf63ef05d9 Add GetEsslVersionString() and GetGlslVersionString(). John Kessenich 2013-11-14 00:16:43 +00:00
  • e4f45cbf49 fix g++ compilation issues John Kessenich 2013-11-13 20:50:21 +00:00
  • ec252dfd3b Reflection: Add translation from glslang types to the API #define types. John Kessenich 2013-11-13 19:07:43 +00:00
  • 568bc3ae55 Reflection: Implement the std140 block offset calculation rules. John Kessenich 2013-11-13 05:40:44 +00:00
  • c043498b02 Update Linux binaries John Kessenich 2013-11-12 22:05:09 +00:00
  • 9511ae8d70 Update Window's binary. John Kessenich 2013-11-12 22:04:23 +00:00
  • ffa66d3bc7 Disallow arrays in initializers for non-array-object versions (assignment, etc. were already caught, but not initialization). John Kessenich 2013-11-12 22:02:36 +00:00
  • 029d746bad Fix line-continuation bug. John Kessenich 2013-11-12 22:01:32 +00:00
  • df0488dd0f Update Linux binaries John Kessenich 2013-11-12 03:36:35 +00:00
  • 69aa9c1b84 Fixes to scanning: - do version checking for the line-continuation character - check for built-in names in #undef - bug fix for #elif after #else - do version checking for use of floating point suffixes (f, LF, etc.) John Kessenich 2013-11-12 03:31:24 +00:00
  • 67c9f3a720 Misc semantics fixes: - don't allow pre-array object versions to return a struct containing an array - special case -2147483648 / -1 - include "~" in the full integer functionality checks - handle multiple function parameters having the same name John Kessenich 2013-11-12 01:02:51 +00:00