1. 09 Nov, 2017 1 commit
    • Add script to crank test shaders through spirv-val · 4ec680e1
      LoopDawg authored
      This script will crank a supplied set of glslang test shaders through the
      spirv-val tool, reporting on the results.
      
      There are some important things to note:
      
      * Like 'runtests', this must be invoked from the 'Test' subdirectory.
      
      * This is mostly useful on the hlsl.* tests, although it is not strictly
      limited to those.  The reason is that most of the glsl tests either contain
      validation error cases, and so fail to compile, or are not using a #version
      compatible with producing SPIR-V modules.
      
      * Some tests, such as negative tests, or most of the glsl tests, have
      intentional compilation errors.  This script treats that as OK.  Failures
      are successfully compiling shaders which proceed to fail spirv-val.
      
      * spirv-val is looked for in either the External directory, or if not
      found there, in a sibling directory of glslang, and if not found there
      either, in /usr/local/bin.
      
      * There are a bunch of command line options.  ./validate-shaders.sh --help
      will describe them.
      
      Some examples to try:
      
         ./validate-shaders.sh hlsl.*   # exercise all hlsl.* tests.
         ./validate-shaders.sh --terse hlsl.*  # same, but tersely.
      
         # dump validator results for problems in something.frag:
         ./validate-shaders.sh --quiet --dump-val something.frag
  2. 03 Nov, 2017 4 commits
  3. 02 Nov, 2017 4 commits
  4. 28 Oct, 2017 3 commits
  5. 27 Oct, 2017 4 commits
  6. 25 Oct, 2017 1 commit
  7. 24 Oct, 2017 4 commits
  8. 23 Oct, 2017 7 commits
  9. 22 Oct, 2017 1 commit
  10. 21 Oct, 2017 1 commit
  11. 20 Oct, 2017 5 commits
  12. 19 Oct, 2017 5 commits
    • Add per-descriptor-set IO mapping shift values. · 08a14422
      LoopDawg authored
      This PR adds the ability to provide per-descriptor-set IO mapping shift
      values.  If a particular binding does not land into a per-set value,
      then it falls back to the prior behavior (global shifts per resource class).
      
      Because there were already 6 copies of many different methods and internal
      variables and functions, and this PR would have added 6 more, a new API is
      introduced to cut down on replication and present a cleaner interface.
      For the global (non-set-specific) API, the old entry points still exist
      for backward compatibility, but are phrased internally in terms of the
      following.
      
          // Resource type for IO resolver
          enum TResourceType {
              EResSampler,
              EResTexture,
              EResImage,
              EResUbo,
              EResSsbo,
              EResUav,
              EResCount
          };
      
      Methods on TShader:
      
          void setShiftBinding(TResourceType res, unsigned int base);
          void setShiftBindingForSet(TResourceType res, unsigned int set, unsigned int base);
      
      The first method replaces the 6 prior entry points of various spellings, which
      exist now in depreciated form.  The second provides per-resource-set functionality.
      Both accept an enum from the list above.
      
      From the command line, the existing options can accept either a single shift value as
      before, or a series of 1 or more [set offset] pairs.  Both can be provided, as in:
      
          ... --stb 20 --stb 2 25 3 30 ...
      
      which will use the offset 20 for anything except descriptor set 2 (which uses 25) and
      3 (which uses 30).
    • GLSL: Make sampling operations have agnostic precision qualifiers for desktop. · f0e35bf0
      John Kessenich authored
      Desktop defaults to highp for samplers, but this should not apply to the built-in
      functions, so make it appy only to user declarations.
    • Merge pull request #1113 from xorgy/preprocessor-int-min-over-negative-one · 3112b568
      John Kessenich authored
      Preprocessor: Evaluate INT_MIN / -1 to 0.