Commit graph

  • 71e01cbab9 Make switch statements have their own nested scope (bug 11904). John Kessenich 2014-03-17 22:48:25 +00:00
  • c63759ef01 Additional test results for previous check in. John Kessenich 2014-03-16 23:18:34 +00:00
  • 75694fdacd Implement implicit conversions of function-call arguments (both in and out) as explicit conversions in the AST, through handleArgumentConversions(). John Kessenich 2014-03-16 23:03:07 +00:00
  • e5d92eb194 remove bison-generated header from library dependencies John Kessenich 2014-03-14 17:47:46 +00:00
  • d0848e0ef1 Add new Linux set up script. John Kessenich 2014-03-14 17:32:51 +00:00
  • 71241d8221 Allow choice of DLL or static CRT libraries through CMake options. John Kessenich 2014-03-12 02:34:44 +00:00
  • 3ce1058dbe update Linux build for latest CMake changes from Windows John Kessenich 2014-03-11 06:35:42 +00:00
  • d18e2d8adc Add CMake support for Visual Studio and installation, with an expected "install" for CMAKE_INSTALL_PREFIX, and updated test scripts to consume the CMake installation. John Kessenich 2014-03-11 02:10:26 +00:00
  • 6b57784690 Use more modern bison %parse-param and %lex-param rather than #defined YYPARSE_PARAM and YYLEX_PARAM. This should make it build across a broader range of modern versions of bison, as well as avoid void* and type casting. John Kessenich 2014-03-08 00:17:27 +00:00
  • 8922ce7353 Fix bug 11736: Minor glslang compilation fixes: Correct "currentChar" logic for recently switched to unsigned size_t locations, and protect more pool guard code with #ifdef. John Kessenich 2014-02-24 21:36:08 +00:00
  • b35e9bfa21 Track things like "(3)" and "+3" as expressions, not literals. John Kessenich 2014-02-24 21:16:19 +00:00
  • 35f04bde8a Make 64-bit VS compile clean. Mostly size_t vs. int tweaks. John Kessenich 2014-02-19 02:47:20 +00:00
  • 8922da24a4 Check in a much improved submitted set of makefiles for Linux builds. This eliminates dependencies on system headers, and generally simplifies the makefiles. John Kessenich 2014-02-19 01:00:58 +00:00
  • 2023368ce1 Correct newlines and executable bit for BuildLinuxCMake.sh John Kessenich 2014-02-19 00:27:03 +00:00
  • 0547c2a6bb Add submitted CMake files for Linux builds. All existing ways of building remain in tact. John Kessenich 2014-02-19 00:18:25 +00:00
  • 6494baf371 Check-in a couple submitted char* string portability bug fixes: correct sizing of buffers and stop overwriting preprocessor token names with themselves. John Kessenich 2014-02-19 00:08:59 +00:00
  • 51cdd90fa8 Fix the few non-portable uses of "char" (where a -1 might be relevant): All uses of char are now either "int", "unsigned char" or char arrays for storing strings. Also, went to consistent "char* foo" coding convention. (There were only a few ambiguous uses.) John Kessenich 2014-02-18 23:37:57 +00:00
  • 52c351442c Update rules for "GL_", "gl_", and "__" to match latest specification bug fixes. John Kessenich 2014-02-18 21:55:42 +00:00
  • 3bef952d48 update linux binary John Kessenich 2014-02-13 19:15:53 +00:00
  • 56876dcfe7 Fix missing semantic check: Disallow layout qualifiers when augmenting an already declared variable with a qualifier. John Kessenich 2014-02-13 19:14:33 +00:00
  • 782aa830b6 Correct which versions can support the extensions GL_ARB_separate_shader_objects and GL_ARB_shading_language_420pack. They'd only gone back to 150, rather than 130/140. John Kessenich 2014-02-12 05:15:49 +00:00
  • 4094630ca3 GL_ARB_enhanced_layouts, final. #extension tests, built-in constants, and bug fix for non-constant expression in layout(...=expr). John Kessenich 2014-02-03 16:28:23 +00:00
  • 39974acf93 ESSL 1.0: Add GL_FRAGMENT_PRECISION_HIGH to ESSL 1.0. It was in desktop, and properly not in ES 3.0, but missing in ES 1.0. John Kessenich 2014-01-31 02:42:25 +00:00
  • ac1e188f3b GL_ARB_enhanced_layouts, part 6: Numerical side of uniform offset and align semantics. Included - moving offset calculations for std140/std430 from reflection to linkValidate.cpp - applying the offset/align rules on top of std140/std430 - removing caching the structure's number of components (and correcting that this is components, not size) John Kessenich 2014-01-31 02:40:19 +00:00
  • 04b1c6ed4c GL_ARB_enhanced_layouts, part 5: uniform offset and align semantics. Numerical computations not yet done. John Kessenich 2014-01-28 21:13:59 +00:00
  • 255df5760a Fix build errors: John Kessenich 2014-01-27 20:02:12 +00:00
  • e5fbec8a17 Support GL_ARB_texture_cube_map_array extension for desktop. John Kessenich 2014-01-26 22:22:54 +00:00
  • 4e9d8c3171 x86 (32-bit) fix for last g++ fix. John Kessenich 2014-01-26 07:56:43 +00:00
  • 772139cd4b fix g++ complaint John Kessenich 2014-01-26 01:44:34 +00:00
  • 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