Skip to content
Snippets Groups Projects
  1. Sep 15, 2017
  2. Sep 14, 2017
    • LoopDawg's avatar
      HLSL: handle split InputPatch templat type in patch constant functions · 4a145dbf
      LoopDawg authored
      InputPatch parameters to patch constant functions were not using the
      internal (temporary) variable type.  That could cause validation errors
      if the input patch had a mixture of builtins and user qualified members.
      
      This uses the entry point's internal form.
      
      There is currently a limitation: if an InputPatch is used in a PCF,
      it must also have appeared in the main entry point's parameter list.
      That is not a limitation of HLSL.  Currently that situation is detected
      and an "implemented" error results.  The limitation can be addressed,
      but isn't yet in the current form of the PR.
      4a145dbf
    • LoopDawg's avatar
      HLSL: allow mixed user & builtin members in hull shader output structure · a5d86164
      LoopDawg authored
      Hull shaders have an implicitly arrayed output.  This is handled by creating an arrayed form of the
      provided output type, and writing to the element of it indexed by InvocationID.
      
      The implicit indirection into that array was causing some troubles when copying to a split
      structure.  handleAssign was able to handle simple symbol lvalues, but not an lvalue composed
      of an indirection into an array.
      a5d86164
  3. Sep 13, 2017
  4. Sep 12, 2017
  5. Sep 11, 2017
  6. Sep 09, 2017
  7. Sep 08, 2017
  8. Sep 07, 2017
  9. Sep 06, 2017
    • LoopDawg's avatar
      Fix lvalue check in SPIR-V generation · 76117921
      LoopDawg authored
      There were several locations in TGlslangToSpvTraverser::handleUserFunctionCall testing for
      whether a fn argument should be in the lvalue or rvalue array.  They must get the same
      result for indexing sanity, but had slightly different logic.
      
      They're now forced into the same test.
      76117921
  10. Sep 01, 2017
  11. Aug 31, 2017
    • Rex Xu's avatar
      Fix issues of GL_ARB_viewport_layer_array · 2a305f65
      Rex Xu authored
      2a305f65
    • John Kessenich's avatar
      Merge pull request #1037 from LoopDawg/clip-cull-geom · 75e057f9
      John Kessenich authored
      HLSL: add geometry stage support for clip/cull distance
      75e057f9
    • LoopDawg's avatar
      HLSL: add geometry stage support for clip/cull distance · 5e5b12e9
      LoopDawg authored
      Changes:
      
      (1) Allow clip/cull builtins as both input and output in the same shader stage.  Previously,
      not enough data was tracked to handle this.
      
      (2) Handle the extra array dimension in GS inputs.  The synthesized external variable can
      now be created with the extra array dimension if needed, and the form conversion code is
      able to handle it as well.
      
      For example, both of these GS inputs would result in the same synthesized external type:
      
          triangle in float4 clip[3] : SV_ClipDistance
      
          triangle in float2 clip[3][2] : SV_ClipDistance
      
      In the second case, the inner array dimension packs with the 2-vector of floats into an array[4],
      which there is an array[3] of due to the triangle geometry.
      5e5b12e9
  12. Aug 29, 2017
  13. Aug 28, 2017
  14. Aug 26, 2017
  15. Aug 25, 2017
  16. Aug 24, 2017
    • John Kessenich's avatar
      Merge pull request #1028 from LoopDawg/clip-cull-input · 1f312f90
      John Kessenich authored
      HLSL: handle clip and cull distance input builtin type conversion
      1f312f90
    • LoopDawg's avatar
      HLSL: handle clip and cull distance input builtin type conversion · e2cda3c2
      LoopDawg authored
      HLSL allows a range of types for clip and cull distances.  There are
      three dimensions, including arrayness, vectorness, and semantic ID.
      SPIR-V requires clip and cull distance be a single array of floats in
      all cases.
      
      This code provides input side conversion between the SPIR-V form and
      the HLSL form.  (Output conversion was added in PR #947 and #997).
      
      This PR extends HlslParseContext::assignClipCullDistance to cope with
      the input side conversion.  Not as much changed as appears: there was
      also a lot of renaming to reflect the fact that the code now handles
      either direction.
      
      Currently, non-{frag,vert} stages are not handled, and are explicitly
      rejected.
      
      Fixes #1026.
      e2cda3c2
    • John Kessenich's avatar
      Merge pull request #1029 from amdrexu/feature2 · fc343694
      John Kessenich authored
      Implement extension GL_AMD_shader_image_load_store_lod
      fc343694
Loading