1. 28 Mar, 2019 3 commits
  2. 27 Mar, 2019 2 commits
  3. 26 Mar, 2019 1 commit
  4. 25 Mar, 2019 2 commits
  5. 22 Mar, 2019 5 commits
  6. 20 Mar, 2019 2 commits
    • Jason Ekstrand's avatar
      intel/nir: Lower array-deref-of-vector UBO and SSBO loads · d3941aa8
      Jason Ekstrand authored
      This fixes a serious performance issue with DXVK:
      
      https://github.com/doitsujin/dxvk/issues/937
      
      This was caused by a recent change that to improve performance on RADV
      which back-fired on ANV and killed performance for some apps:
      
      https://github.com/doitsujin/dxvk/commit/e5a06d3f4a103a54cd4eb51970fedee405d1d698
      
      Throwing in this bit of lowering lets us come along and CSE those UBO
      loads (or copy-prop for SSBO load) and get one load where we previously
      would have gotten several.
      
      VkPipeline-db results on Kaby Lake:
      
          total instructions in shared programs: 5115361 -> 5073185 (-0.82%)
          instructions in affected programs: 1754333 -> 1712157 (-2.40%)
          helped: 5331
          HURT: 63
      
          total cycles in shared programs: 2544501169 -> 2481144545 (-2.49%)
          cycles in affected programs: 2531058653 -> 2467702029 (-2.50%)
          helped: 9202
          HURT: 4323
      
          total loops in shared programs: 3340 -> 3331 (-0.27%)
          loops in affected programs: 9 -> 0
          helped: 9
          HURT: 0
      
          total spills in shared programs: 3246 -> 3053 (-5.95%)
          spills in affected programs: 384 -> 191 (-50.26%)
          helped: 10
          HURT: 5
      
          total fills in shared programs: 4626 -> 4452 (-3.76%)
          fills in affected programs: 439 -> 265 (-39.64%)
          helped: 10
          HURT: 5
      
      All of the shaders with hurt spilling were in Rise of the Tomb Raider
      which also had shaders solidly helped in the spilling department.  Not
      shown in those results (because I've not had success dumping the
      shaders) is Witcher 3 where this reduces spilling and improves over-all
      perf by around 20-25%.  There were no shader-db changes.  Apparently,
      this just isn't a pattern that happens in OpenGL.
      Reviewed-by: 's avatarCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
      Cc: "19.0" mesa-stable@lists.freedesktop.org
      (cherry picked from commit d3386e73c5976ecec84821d17f05c2fd4b823880)
      Conflicts resolved by Dylan
      d3941aa8
    • Samuel Pitoiset's avatar
      radv: fix binding transform feedback buffers · 62b2aea3
      Samuel Pitoiset authored
      The mask should be accumulated if two calls are used for
      binding two buffers at different indexes. Otherwise, the
      driver only accounts for the last one.
      
      Noticed while glancing at this code.
      
      Cc: 18.3 19.0 <mesa-stable@lists.freedesktop.org>
      Signed-off-by: 's avatarSamuel Pitoiset <samuel.pitoiset@gmail.com>
      Reviewed-by: 's avatarBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
      (cherry picked from commit 4fa61273a8c8809a9ca0a1473b5e361aa5715ae0)
      62b2aea3
  7. 19 Mar, 2019 5 commits
    • Andres Gomez's avatar
      Revert "glsl: relax input->output validation for SSO programs" · 062d464c
      Andres Gomez authored
      This reverts commit 1aa5738e.
      
      This patch incorrectly asumed that for SSOs no inner interface
      matching check was needed.
      
      From the ARB_separate_shader_objects spec v.25:
      
        " With separable program objects, interfaces between shader stages
          may involve the outputs from one program object and the inputs
          from a second program object.  For such interfaces, it is not
          possible to detect mismatches at link time, because the programs
          are linked separately.  When each such program is linked, all
          inputs or outputs interfacing with another program stage are
          treated as active.  The linker will generate an executable that
          assumes the presence of a compatible program on the other side of
          the interface.  If a mismatch between programs occurs, no GL error
          will be generated, but some or all of the inputs on the interface
          will be undefined."
      
      This completes the fix from commit:
      3be05dd2679 ("glsl/linker: don't fail non static used inputs without matching outputs")
      
      Fixes: 1aa5738e ("glsl: relax input->output validation for SSO programs")
      Cc: Tapani Pälli <tapani.palli@intel.com>
      Cc: Timothy Arceri <tarceri@itsqueeze.com>
      Cc: Ilia Mirkin <imirkin@alum.mit.edu>
      Cc: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
      Cc: Ian Romanick <ian.d.romanick@intel.com>
      Signed-off-by: 's avatarAndres Gomez <agomez@igalia.com>
      Reviewed-by: 's avatarTimothy Arceri <tarceri@itsqueeze.com>
      (cherry picked from commit ab28dca0334746d1d6cb3f1b18550e3cbfb41d77)
      062d464c
    • Andres Gomez's avatar
      glsl/linker: simplify xfb_offset vs xfb_stride overflow check · 33d33185
      Andres Gomez authored
      Current implementation uses a complicated calculation which relies in
      an implicit conversion to check the integral part of 2 division
      results.
      
      However, the calculation actually checks that the xfb_offset is
      smaller or a multiplier of the xfb_stride. For example, while this is
      expected to fail, it actually succeeds:
      
        "
      
          ...
      
          layout(xfb_buffer = 2, xfb_stride = 12) out block3 {
            layout(xfb_offset = 0) vec3 c;
            layout(xfb_offset = 12) vec3 d; // ERROR, requires stride of 24
          };
      
          ...
      
        "
      
      Fixes: 2fab85aa ("glsl: add xfb_stride link time validation")
      Cc: Timothy Arceri <tarceri@itsqueeze.com>
      Signed-off-by: 's avatarAndres Gomez <agomez@igalia.com>
      Reviewed-by: 's avatarTimothy Arceri <tarceri@itsqueeze.com>
      (cherry picked from commit 422882e78f2cf0ab69ff4a58f3c9465fcb5fef0d)
      33d33185
    • Andres Gomez's avatar
      glsl/linker: don't fail non static used inputs without matching outputs · 068e9a8f
      Andres Gomez authored
      If there is no Static Use of an input variable, the linker shouldn't
      fail whenever there is no defined matching output variable in the
      previous stage.
      
      From page 47 (page 51 of the PDF) of the GLSL 4.60 v.5 spec:
      
        " Only the input variables that are statically read need to be
          written by the previous stage; it is allowed to have superfluous
          declarations of input variables."
      
      Now, we complete this exception whenever the input variable has an
      explicit location. Previously, 18004c33 ("glsl: fail when a
      shader's input var has not an equivalent out var in previous") took
      care of the cases in which the input variable didn't have an explicit
      location.
      
      v2: do the location based interface matching check regardless on
          whether it is a separable program or not (Ilia).
      
      Fixes: 1aa5738e ("glsl: relax input->output validation for SSO programs")
      Cc: Timothy Arceri <tarceri@itsqueeze.com>
      Cc: Iago Toral Quiroga <itoral@igalia.com>
      Cc: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
      Cc: Tapani Pälli <tapani.palli@intel.com>
      Cc: Ian Romanick <ian.d.romanick@intel.com>
      Cc: Ilia Mirkin <imirkin@alum.mit.edu>
      Signed-off-by: 's avatarAndres Gomez <agomez@igalia.com>
      Reviewed-by: 's avatarTimothy Arceri <tarceri@itsqueeze.com>
      (cherry picked from commit 3be05dd2679b2525ff80bac715d6ea097295c9ea)
      068e9a8f
    • Andres Gomez's avatar
      glsl: correctly validate component layout qualifier for dvec{3,4} · 1b471271
      Andres Gomez authored
      From page 62 (page 68 of the PDF) of the GLSL 4.50 v.7 spec:
      
        " A dvec3 or dvec4 can only be declared without specifying a
          component."
      
      Therefore, using the "component" qualifier with a dvec3 or dvec4
      should result in a compiling error.
      
      v2: enhance the error message (Timothy).
      
      Fixes: 94438578 ("glsl: validate and store component layout qualifier in GLSL IR")
      Cc: Timothy Arceri <tarceri@itsqueeze.com>
      Cc: Kenneth Graunke <kenneth@whitecape.org>
      Signed-off-by: 's avatarAndres Gomez <agomez@igalia.com>
      Reviewed-by: 's avatarTimothy Arceri <tarceri@itsqueeze.com>
      (cherry picked from commit a96093136bddfe17661f1de54228fe4b5618ba8a)
      1b471271
    • Bas Nieuwenhuizen's avatar
      radv: Use correct image view comparison for fast clears. · da17740e
      Bas Nieuwenhuizen authored
      The if is actually returning true on success, enabling fast clears, so we
      need to have the test succeed when the iview dimensions are right.
      
      Fixes: d5400a5e "radv: provide a helper for comparing an image extents."
      Reviewed-by: 's avatarDave Airlie <airlied@redhat.com>
      (cherry picked from commit a777c3d7cb0a89f6c63a637e6db32cc1bf33b54c)
      da17740e
  8. 18 Mar, 2019 5 commits
  9. 15 Mar, 2019 1 commit
    • Mark Janes's avatar
      mesa: properly report the length of truncated log messages · 6c7f03bb
      Mark Janes authored
      _mesa_log_msg must provide the length of the string passed into the
      KHR_debug api.  When the string formatted by _mesa_gl_vdebugf exceeds
      MAX_DEBUG_MESSAGE_LENGTH, the length is incorrectly set to the number
      of characters that would have been written if enough space had been
      available.
      
      Fixes: 30256805
             ("mesa: Add support for GL_ARB_debug_output with dynamic ID allocation.")
      Reviewed-by: 's avatarErik Faye-Lund <erik.faye-lund@collabora.com>
      (cherry picked from commit eb1a869a5d19bfd8a0d4099afd58f180997e4663)
      6c7f03bb
  10. 14 Mar, 2019 8 commits
  11. 13 Mar, 2019 6 commits