1. 11 Apr, 2019 5 commits
  2. 10 Apr, 2019 1 commit
  3. 09 Apr, 2019 2 commits
  4. 08 Apr, 2019 1 commit
  5. 05 Apr, 2019 2 commits
    • Eric Anholt's avatar
      v3d: Don't try to use the TFU blit path if a scissor is enabled. · 73bc3248
      Eric Anholt authored
      We'll need to do a render-based blit for scissors, since the TFU (as seen
      in this conditional) can only update a whole surface.
      
      Fixes: 976ea90b ("v3d: Add support for using the TFU to do some blits.")
      Fixes piglit fbo-scissor-blit.
      
      (cherry picked from commit 4c70f276bc043f5d1a7647b8fbbb41100e051e69)
      73bc3248
    • Eric Anholt's avatar
      v3d: Bump the maximum texture size to 4k for V3D 4.x. · d1f4c969
      Eric Anholt authored
      4.1 and 4.2 both have the same 16k limit, but it I'm seeing GPU hangs in
      the CTS at 8k and 16k.  4k at least lets us get one 4k display working.
      
      Cc: mesa-stable@lists.freedesktop.org
      (cherry picked from commit 62360e92ec97d59389330a5aeb070416523da774)
      d1f4c969
  6. 02 Apr, 2019 1 commit
  7. 01 Apr, 2019 3 commits
  8. 29 Mar, 2019 2 commits
  9. 28 Mar, 2019 5 commits
  10. 27 Mar, 2019 4 commits
  11. 26 Mar, 2019 1 commit
  12. 25 Mar, 2019 2 commits
  13. 22 Mar, 2019 5 commits
  14. 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
  15. 19 Mar, 2019 4 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