1. 21 Oct, 2016 3 commits
  2. 19 Oct, 2016 3 commits
  3. 18 Oct, 2016 1 commit
    • HLSL: Fix unary and binary operator type conversion issues · e5921f13
      steve-lunarg authored
      This fixes defects as follows:
      
      1. handleLvalue could be called on a non-L-value, and it shouldn't be.
      
      2. HLSL allows unary negation on non-bool values.  TUnaryOperator::promote
         can now promote other types (e.g, int, float) to bool for this op.
      
      3. HLSL allows binary logical operations (&&, ||) on arbitrary types, similar
         (2).
      
      4. HLSL allows mod operation on arbitrary types, which will be promoted.
         E.g, int % float -> float % float.
  4. 16 Oct, 2016 8 commits
  5. 15 Oct, 2016 4 commits
  6. 14 Oct, 2016 1 commit
  7. 13 Oct, 2016 14 commits
  8. 12 Oct, 2016 6 commits
    • HLSL: phase 2e: introduce lower level addBinaryNode/UnaryNode fns · b3da8a9c
      steve-lunarg authored
      - hlsl.struct.frag variable changed to static, assignment replacd.
      
      - Created new low level functions addBinaryNode and addUnaryNode.  These are
        used by higher level functions such as addAssignment, and do not do any
        argument promotion or conversion of any sort.
      
      - Two functions above are now used in RWTexture lvalue conversions.  Also,
        other direction creations of unary or binary nodes now use them, e.g, addIndex.
        This cleans up some existing code.
      
      - removed handling of EOpVectorTimesScalar from promote()
      
      - removed comment from ParseHelper.cpp
    • HLSL: phase 2d: minor cleanup, & allow operator[] on non-rw textures · 07830e80
      steve-lunarg authored
      Improve comments.
      A few tweaked lines allow [] on non-rw tx.  Add test case for this.
      Improve VectorTimesScalar handling.
    • HLSL: phase 2c: use lValueErrorCheck in HLSL FE · 0de16da2
      steve-lunarg authored
      This commit splits lValueErrorCheck into machine dependent and independent
      parts.  The GLSL form in TParseContext inherits from and invokes the
      machine dependent part in TParseContextBase.  The base form checks language
      independent things.  This split does not change the set of errors tested
      for: the test results are identical.
      
      The new base class interface is now used from the HLSL FE to test lvalues.
      There was one test diff due to this, where the test was writing to a uniform.
      It still does the same indirections, but does not attempt a uniform write.
    • HLSL: phase 2b: add l-value operator[] for RWTexture/RWBuffer · 90707966
      steve-lunarg authored
      This commit adds l-value support for RW texture and buffer objects.
      Supported are:
      
      - pre and post inc/decrement
      - function out parameters
      - op-assignments, such as *=, +-, etc.
      - result values from op-assignments.  e.g, val=(MyRwTex[loc] *= 2);
      
      Not supported are:
      - Function inout parameters
      - multiple post-inc/decrement operators.  E.g, MyRWTex[loc]++++;
    • HLSL: phase 2a: add r-value operator[] for RWTexture/RWBuffer · 6b43d274
      steve-lunarg authored
      This commit adds r-value support for RW textures and buffers.
      Supported is:
      
      - Function in parameter conversions
      - conversion of rvalue use to imageLoad
    • Merge pull request #546 from yavn/OpImageQueryLod-with-SampledImage · e3aa654c
      John Kessenich authored
      SPV: Use SampledImage with OpImageQueryLod