1. 18 Nov, 2015 3 commits
    • D3D11: Fix varying packing with structs. · 55c25d0c
      Jamie Madill authored
      Previously we would try to pass an entire struct through HLSL's
      shader interface. Instead, split this off as if each field was
      its own variable, which seems to be spec compliant (see ESSL 3.10).
      
      In the future we may want to fix register packing to use specific
      components of float4/int4/uint4 HLSL registers. This could also fix
      the remaining bugs in the SM3 packing.
      
      TEST=dEQP-GLES3.functional.shaders.linkage.varying.*
      BUG=angleproject:910
      BUG=angleproject:1202
      
      Change-Id: I1fd8b4505abc39bd2385ed5c088c316d55d0bc2c
      Reviewed-on: https://chromium-review.googlesource.com/311242Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Tested-by: 's avatarJamie Madill <jmadill@chromium.org>
    • D3D: Rework varying packing code. · 9fc3682c
      Jamie Madill authored
      In D3D we pack varyings by making a register map, and using the
      recommended GLSL ES algorithm to reserve register space. We use
      this map to assign row and column slots to each varying and then
      produce a semantic index value.
      
      The existing scheme had a number of bugs, and was failing several
      angle_end2end_tests. The new design cleans up the code somewhat
      and uses a different counting scheme for the semantic indexes:
      just sort the varyings in packing order and use a simple
      incrementing semantic index per varying. In SM4+, the HLSL compiler
      sorts and packs the varyings correctly itself, and in SM3, handle
      the cases we don't support by returning an error instead of a D3D
      compiler link error.
      
      Also refactor how we store varying information for TF Feedback/
      StreamOut. Only store the necessary D3D information, instead of
      extra information like the name and type.
      
      This fixes several tests in GLSLTest/*. This also will allow us to
      fix interpolation qualifier packing and the structure packing in
      HLSL, which seems to work differently than the rest of the varying
      types.
      
      BUG=angleproject:1202
      TEST=bots,dEQP-GLES3.functional.transform_feedback.*
      
      Change-Id: Ie5bfbb4f71d8bf97f39115fc46d2e61b131df639
      Reviewed-on: https://chromium-review.googlesource.com/311241Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Tested-by: 's avatarJamie Madill <jmadill@chromium.org>
    • ProgramD3D: Move some common code into a Metadata class. · e39a3f0a
      Jamie Madill authored
      This metadata class captures some of our commonly referenced but also
      complex flats into a shared place. We can then re-use them in the
      semantic code, the DynamicHLSL linking code, and the program code.
      
      Refactoring patch only.
      
      BUG=angleproject:1202
      
      Change-Id: I8b6088cfa5488c5173a6f06c15abab5a4ead4cb8
      Reviewed-on: https://chromium-review.googlesource.com/311700
      Tryjob-Request: Jamie Madill <jmadill@chromium.org>
      Tested-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
  2. 17 Nov, 2015 3 commits
  3. 13 Nov, 2015 7 commits
  4. 12 Nov, 2015 7 commits
  5. 11 Nov, 2015 3 commits
  6. 10 Nov, 2015 4 commits
  7. 09 Nov, 2015 5 commits
  8. 06 Nov, 2015 8 commits