1. 28 Nov, 2016 5 commits
  2. 26 Nov, 2016 3 commits
  3. 23 Nov, 2016 4 commits
  4. 22 Nov, 2016 2 commits
  5. 16 Nov, 2016 2 commits
    • HLSL: allow "sample" as a valid identifier. · 75fd223f
      steve-lunarg authored
      HLSL has keywords for various interpolation modifiers such as "linear",
      "centroid", "sample", etc.  Of these, "sample" appears to be special,
      as it is also accepted as an identifier string, where the others are not.
      
      This PR adds this ability, so the construct "int sample = 42;" no longer
      produces a compilation error.
      
      New test = hlsl.identifier.sample.frag
    • HLSL: use HLSL parser to parse HLSL intrinsic prototypes, enable int/bool mats · 0842dbb3
      steve-lunarg authored
      This PR adds a CreateParseContext() fn analogous to CreateBuiltInParseables(),
      to create a language specific built in parser.  (This code was present before
      but not encapsualted in a fn).  This can now be used to create a source language
      specific parser for builtins.
      
      Along with this, the code creating HLSL intrinsic prototypes can now produce
      them in HLSL syntax, rather than GLSL syntax.  This relaxes certain prior
      restrictions at the parser level.  Lower layers (e.g, SPIR-V) may still have
      such restrictions, such as around Nx1 matrices: this code does not impact
      that.
      
      This PR also fleshes out matrix types for bools and ints, both of which were
      partially in place before.  This was easier than maintaining the restrictions
      in the HLSL prototype generator to avoid creating protoypes with those types.
      
      Many tests change because the result type from intrinsics moves from "global"
      to "temp".
      
      Several new tests are added for the new types.
  6. 15 Nov, 2016 1 commit
  7. 14 Nov, 2016 5 commits
  8. 13 Nov, 2016 1 commit
    • HLSL: allow promotion from 1-vector types to scalars, e.g, float<-float1 · d9cb832f
      steve-lunarg authored
      Previously, an error was thrown when assigning a float1 to a scalar float,
      or similar for other basic types.  This allows that.
      
      Also, this allows calling functions accepting scalars with float1 params,
      so for example sin(float1) will work.  This is a minor change in
      HlslParseContext::findFunction().
  9. 11 Nov, 2016 2 commits
  10. 09 Nov, 2016 1 commit
  11. 05 Nov, 2016 1 commit
    • Whole stack: Fix stale types in the AST linker object nodes, fixing #557. · d3f1122a
      John Kessenich authored
      Rationalizes the entire tracking of the linker object nodes, effecting
      GLSL, HLSL, and SPIR-V, to allow tracked objects to be fully edited before
      their type snapshot for linker objects.
      
      Should only effect things when the rest of the AST contained no reference to
      the symbol, because normal AST nodes were not stale. Also will only effect such
      objects when their types were edited.
  12. 01 Nov, 2016 7 commits
  13. 31 Oct, 2016 3 commits
    • Use std::atoi instead of std::stoi · e301f678
      David Neto authored
      Some Android cross cross-compilers don't have std::stoi.
      
      E.g. i686-linux-android-g++ from Android NDK r10e don't have std::stoi.
    • HLSL: Add min*{float,int,uint} types · 3226b083
      steve-lunarg authored
      These HLSL types are guaranteed to have at least the given number of bits, but may have more.
      
      min{16,10}float is mapped to EbtFloat at medium precision -> SPIRV RelaxedPrecision
      min{16,12}int and min16uint are mapped to mediump -> SPIR-V RelaxedPrecision
    • HLSL: implement numthreads for compute shaders · 1868b144
      steve-lunarg authored
      This PR adds handling of the numthreads attribute for compute shaders, as well as a general
      infrastructure for returning attribute values from acceptAttributes, which may be needed in other
      cases, e.g, unroll(x), or merely to know if some attribute without params was given.
      
      A map of enum values from TAttributeType to TIntermAggregate nodes is built and returned.  It
      can be queried with operator[] on the map.  In the future there may be a need to also handle
      strings (e.g, for patchconstantfunc), and those can be easily added into the class if needed.
      
      New test is in hlsl.numthreads.comp.
  14. 29 Oct, 2016 1 commit
  15. 28 Oct, 2016 2 commits