1. 22 Sep, 2016 1 commit
    • Flatten uniform arrays · e0b9debd
      steve-lunarg authored
      This checkin adds a --flatten-uniform-arrays option which can break
      uniform arrays of samplers, textures, or UBOs up into individual
      scalars named (e.g) myarray[0], myarray[1], etc.  These appear as
      individual linkage objects.
      
      Code notes:
      
      - shouldFlatten internally calls shouldFlattenIO, and shouldFlattenUniform,
        but is the only flattening query directly called.
      
      - flattenVariable will handle structs or arrays (but not yet arrayed structs;
        this is tested an an error is generated).
      
      - There's some error checking around unhandled situations.  E.g, flattening
        uniform arrays with initializer lists is not implemented.
      
      - This piggybacks on as much of the existing mechanism for struct flattening
        as it can.  E.g, it uses the same flattenMap, and the same
        flattenAccess() method.
      
      - handleAssign() has been generalized to cope with either structs or arrays.
      
      - Extended test infrastructure to test flattening ability.
  2. 21 Sep, 2016 3 commits
    • Merge pull request #514 from steve-lunarg/binding-map-3 · 6873f3d8
      John Kessenich authored
      HLSL: Add location offsets per resource type
    • HLSL: Add location offsets per resource type · 7f7c2ed7
      steve-lunarg authored
      This PR adds the ability to offset sampler, texture, and UBO bindings
      from provided base bindings, and to auto-number bindings that are not
      provided with explicit register numbers. The mechanism works as
      follows:
      
      - Offsets may be given on the command line for all stages, or
        individually for one or more single stages, in which case the
        offset will be auto-selected according to the stage being
        compiled. There is also an API to set them. The new command line
        options are --shift-sampler-binding, --shift-texture-binding, and
        --shift-UBO-binding.
      
      - Uniforms which are not given explicit bindings in the source code
        are auto-numbered if and only if they are in live code as
        determined by the algorithm used to build the reflection
        database, and the --auto-map-bindings option is given. This auto-numbering
        avoids using any binding slots which were explicitly provided in
        the code, whether or not that explicit use was live. E.g, "uniform
        Texture1D foo : register(t3);" with --shift-texture-binding 10 will
        reserve binding 13, whether or not foo is used in live code.
      
      - Shorter synonyms for the command line options are available.  See
        the --help output.
      
      The testing infrastructure is slightly extended to allow use of the
      binding offset API, and two new tests spv.register.(no)autoassign.frag are
      added for comparing the resulting SPIR-V.
  3. 20 Sep, 2016 5 commits
  4. 19 Sep, 2016 7 commits
  5. 17 Sep, 2016 3 commits
  6. 16 Sep, 2016 5 commits
  7. 14 Sep, 2016 1 commit
  8. 12 Sep, 2016 1 commit
  9. 11 Sep, 2016 1 commit
  10. 10 Sep, 2016 1 commit
  11. 09 Sep, 2016 8 commits
  12. 05 Sep, 2016 4 commits