1. 27 Dec, 2016 1 commit
    • HLSL: allow scalar type keywords as identifiers, and add half type support. · 5ca85ad9
      steve-lunarg authored
      HLSL allows type keywords to also be identifiers, so a sequence such as "float half = 3" is
      valid, or more bizzarely, something like "float.float = int.uint + bool;"
      
      There are places this is not supported.  E.g, it's permitted for struct members, but not struct
      names or functions.  Also, vector or matrix types such as "float3" are not permitted as
      identifiers.
      
      This PR adds that support, as well as support for the "half" type.  In production shaders,
      this was seen with variables named "half".  The PR attempts to support this without breaking
      useful grammar errors such as "; expected" at the end of unterminated statements, so it errs
      on that side at the possible expense of failing to accept valid constructs containing a type
      keyword identifier.  If others are discovered, they can be added.
      
      Also, half is now accepted as a valid type, alongside the min*float types.
  2. 22 Dec, 2016 1 commit
  3. 21 Dec, 2016 10 commits
  4. 20 Dec, 2016 8 commits
  5. 19 Dec, 2016 7 commits
    • Build: Fix #633, add missing overrides. · 432576fd
      John Kessenich authored
    • Merge pull request #637 from KhronosGroup/token-paste · 0955b1cb
      John Kessenich authored
      PP: Implement token pasting for PP identifiers.
    • Merge pull request #624 from steve-lunarg/remapper-strip-removed · e6cbc5b1
      John Kessenich authored
      WIP: Remapper: remove debug info for IDs stripped in other passes
    • Merge pull request #635 from steve-lunarg/sample-fix-2 · 4ba444b6
      John Kessenich authored
      HLSL: allow "sample" in expressions.
    • Merge pull request #625 from jbeich/gcc6 · 059d46ee
      John Kessenich authored
      Unbreak build on FreeBSD with GCC/libstdc++ 6.2.0
    • PP: Implement token pasting for PP identifiers. · d485e0b7
      John Kessenich authored
      Implement token pasting as per the C++ specification, within the current
      style of the PP code.
      Non-identifiers (turning 12 ## 10 into the numeral 1210) is not yet covered;
      they should be a simple incremental change built on this one.
      Addresses issue #255.
    • HLSL: allow "sample" in expressions. · a64ed3eb
      steve-lunarg authored
      Unlike other qualifiers, HLSL allows "sample" to be either a qualifier keyword or an
      identifier (e.g, a variable or function name).
      
      A fix to allow this was made a while ago, but that fix was insufficient when 'sample'
      was used in an expression.  The problem was around the initial ambiguity between:
      
         sample float a; // "sample" is part of a fully specified type
      and
         sample.xyz;     // sample is a keyword in a dot expression
      
      Both start the same.  The "sample" was being accepted as a qualifier before enough
      further parsing was done to determine we were not a declaration after all.  This
      consumed the token, causing it to fail for its real purpose.
      
      Now, when accepting a fully specified type, the token is pushed back onto the stack if
      the thing is not a fully specified type.  This leaves it available for subsequent
      purposes.
      
      Changed the "hlsl.identifier.sample.frag" test to exercise this situation, distilled
      down from a production shaders.
  6. 17 Dec, 2016 1 commit
  7. 15 Dec, 2016 1 commit
  8. 14 Dec, 2016 3 commits
  9. 13 Dec, 2016 1 commit
    • Fix size_t to int cast warnings. · 3ec327c5
      Jamie Madill authored
      Several instances in Visual Studio 2015:
      
      warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
  10. 12 Dec, 2016 2 commits
  11. 10 Dec, 2016 3 commits
  12. 09 Dec, 2016 2 commits