platform/upstream/mesa.git
3 years agoradeonsi: add si_install_draw_wrapper
Pierre-Eric Pelloux-Prayer [Wed, 19 May 2021 15:11:57 +0000 (17:11 +0200)]
radeonsi: add si_install_draw_wrapper

This allows to implement custom draw_vbo code-path without
touching si_draw_vbo.

As an example, skipped all draw calls with an odd new_draws
could be done like this:

   void mywrapper(...) {
       if (new_draws % 2)
          return;
       return sctx->real_draw_vbo(...);
   }

   if (some_condition_is_met)
      si_install_draw_wrapper(sctx, mywrapper);

Instead of having to add the "if ()" condition inside si_draw_vbo.

Note that a single wrapper may be installed so care must be taken
to not override an existing wrapper.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10979>

3 years agoradeonsi: add _once suffix to depth_cleared_level_mask
Pierre-Eric Pelloux-Prayer [Fri, 7 May 2021 09:48:34 +0000 (11:48 +0200)]
radeonsi: add _once suffix to depth_cleared_level_mask

And add a new variable to disambiguate between "has been cleared once" and
"is cleared".

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10979>

3 years agogallium/u_threaded: merge draws faster by merging indexbuf unreferencing
Marek Olšák [Sun, 13 Jun 2021 16:13:50 +0000 (12:13 -0400)]
gallium/u_threaded: merge draws faster by merging indexbuf unreferencing

Instead of N times decrementing the index buffer refcount by 1, decrement
it by N once.

Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11349>

3 years agoturnip: Copy command buffers to deferred submit request
Hyunjun Ko [Tue, 8 Jun 2021 06:49:45 +0000 (06:49 +0000)]
turnip: Copy command buffers to deferred submit request

To make sure the index of global bo table in drm_msm_gem_submit_cmd is
valid at actual submit time.

v1. Move the entry_count calculation into the submit request creation
function.

Fixes: #4877
Fixes: 3f229e34 ("turnip: Implement VK_KHR_timeline_semaphore.")

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11260>

3 years agocrocus: fix scanout tiling so glamor/modesetting can work.
Dave Airlie [Mon, 14 Jun 2021 07:29:45 +0000 (17:29 +1000)]
crocus: fix scanout tiling so glamor/modesetting can work.

This fixes the scanout tiling to be like iris, with this X/glamor
can run.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11354>

3 years agocrocus: enable GL_EXT_memory_object feature on gen7
Dave Airlie [Mon, 14 Jun 2021 02:37:41 +0000 (12:37 +1000)]
crocus: enable GL_EXT_memory_object feature on gen7

This is enabled by enabling gallium's memobj capability.

Ports 05cf1e7f36cb5337aea3467c730bac1b80494730 from iris

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352>

3 years agocrocus: plumb device/driver UUID generators
Dave Airlie [Mon, 14 Jun 2021 03:25:57 +0000 (13:25 +1000)]
crocus: plumb device/driver UUID generators

Ports 456fa9b8385b14d6f2d4bea16e89bf280c4d5b3f from iris.

    Use the same generators as used in anv driver so both Vulkan and OpenGL
    drivers can share the same external memory objects.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352>

3 years agocrocus: hook up resource creation from memory object
Dave Airlie [Mon, 14 Jun 2021 02:34:45 +0000 (12:34 +1000)]
crocus: hook up resource creation from memory object

Port 772dc50d162f6ac99676ef5134607f0d0e6db21e from iris

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352>

3 years agocrocus: hook up memory object creation from handle
Dave Airlie [Mon, 14 Jun 2021 02:27:49 +0000 (12:27 +1000)]
crocus: hook up memory object creation from handle

Port cdb5a727644e9fd0195519f81ce34f79a99ae432 from iris

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352>

3 years agocrocus: Drop buffer support in resource_from_handle
Dave Airlie [Mon, 14 Jun 2021 02:03:43 +0000 (12:03 +1000)]
crocus: Drop buffer support in resource_from_handle

Port 9d503b36ca24e1747e99a034e05700ad80c0682c from iris

   The callers don't seem to pass targets of PIPE_BUFFER. Stop nesting an
   if-else block by dropping support for this target.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352>

3 years agocrocus: introduce main resource configuration helper.
Dave Airlie [Sun, 13 Jun 2021 23:43:40 +0000 (09:43 +1000)]
crocus: introduce main resource configuration helper.

Along the lines of what iris does.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352>

3 years agocrocus: Make iris_bo_import_dmabuf take a modifier
Dave Airlie [Mon, 14 Jun 2021 01:51:37 +0000 (11:51 +1000)]
crocus: Make iris_bo_import_dmabuf take a modifier

Port 493298528a82e2ab7cf3ce6aed187fe19730e3d0 from iris

    Replace the tiling parameter with a modifier parameter. I find it more
    straightforward to have this function figure out the tiling from the
    modifier than to have its caller do it.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352>

3 years agocrocus: Don't call SET_TILING for dmabuf imports
Dave Airlie [Mon, 14 Jun 2021 01:41:37 +0000 (11:41 +1000)]
crocus: Don't call SET_TILING for dmabuf imports

This is a port of c111e9099ceada50a2437e6e2e2a0f7cc6597448 from iris to
crocus.

    Calling SET_TILING on a DMA buffer with the gen12 CCS modifier can fail
    unnecessarily. The main surface in the BO is Y-tiled, but the CCS portion is
    linear and can have a stride that's not a multiple of 128B. Because SET_TILING
    is called on the CCS plane with I915_TILING_Y, the ioctl will sometimes reject
    the stride.

    SET_TILING was originally used in b6d45e7f748e9ff7e198391f5ce5d1253101fedb to
    fix an assertion failure in iris_resource_from_handle. Assigning the BO's
    tiling_mode field is sufficient to avoid the failure.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352>

3 years agoci: remove unzip from several containers that don't use it at all
Andres Gomez [Tue, 1 Jun 2021 10:37:54 +0000 (13:37 +0300)]
ci: remove unzip from several containers that don't use it at all

Signed-off-by: Andres Gomez <agomez@igalia.com>
Acked-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11110>

3 years agogallium/u_threaded: use tc_drop_resource_reference in call_draw_single_drawid
Marek Olšák [Sun, 6 Jun 2021 17:35:51 +0000 (13:35 -0400)]
gallium/u_threaded: use tc_drop_resource_reference in call_draw_single_drawid

Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11335>

3 years agogallium/u_threaded: clear valid buffer range only if it's not bound for write
Marek Olšák [Thu, 20 May 2021 09:05:01 +0000 (05:05 -0400)]
gallium/u_threaded: clear valid buffer range only if it's not bound for write

We can't invalidate the range if a buffer is bound for write because we
would need to add the range that is bound, which we don't track.

This fixes buffer mappings incorrectly promoted to unsynchronized because
the valid range was cleared while the buffers were bound for write.

It also clears the valid range if the invalidation is allowed but skipped.

Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11335>

3 years agogallium/u_threaded: don't update valid_buffer_range for read-only shader buffers
Marek Olšák [Sat, 12 Jun 2021 00:18:28 +0000 (20:18 -0400)]
gallium/u_threaded: don't update valid_buffer_range for read-only shader buffers

Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11335>

3 years agoutil/prim_restart: use more direct conversion for restart index
Mike Blumenkrantz [Mon, 14 Jun 2021 19:20:58 +0000 (15:20 -0400)]
util/prim_restart: use more direct conversion for restart index

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11363>

3 years agoaux/tc: pass rebind count and rebind bitmask with replace_buffer_storage func
Mike Blumenkrantz [Wed, 2 Jun 2021 19:43:43 +0000 (15:43 -0400)]
aux/tc: pass rebind count and rebind bitmask with replace_buffer_storage func

tc already calculates all the rebinding that needs to be done on a given
context, so (some of) this info can be passed on to drivers to enable
optimizations

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11245>

3 years agozink: Fix win32 build
Michel Zou [Mon, 14 Jun 2021 08:14:32 +0000 (10:14 +0200)]
zink: Fix win32 build

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11338>

3 years agozink: Drop useless zink_dispatch_table
Michel Zou [Sun, 13 Jun 2021 17:36:53 +0000 (19:36 +0200)]
zink: Drop useless zink_dispatch_table

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11338>

3 years agoci/piglit: Skip glx_arb_sync_control@timing.* on all systems.
Emma Anholt [Fri, 11 Jun 2021 21:40:06 +0000 (14:40 -0700)]
ci/piglit: Skip glx_arb_sync_control@timing.* on all systems.

The test involves timestamping to figure out how long a swap actually
takes, but if anything ends up rescheduling the process you can end up
spuriously failing.  I could easily reproduce flakiness by just running a
loop accessing the filesystem in parallel with a loop running the test.
So, it's certainly not usable on a CI system with other piglit tests
running in parallel, and we don't want to run it if it's going to just
produce flake noise.

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333>

3 years agoci/piglit: Move the WGL skip to a common skips file.
Emma Anholt [Fri, 11 Jun 2021 21:21:06 +0000 (14:21 -0700)]
ci/piglit: Move the WGL skip to a common skips file.

This will also give us a central place to handle known CI issues for
piglit.

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333>

3 years agoci/deqp: Skip dEQP-VK.wsi.display.get_display_plane_capabilities
Emma Anholt [Fri, 11 Jun 2021 21:14:54 +0000 (14:14 -0700)]
ci/deqp: Skip dEQP-VK.wsi.display.get_display_plane_capabilities

The flakiness of this test is due to CI running deqp in parallel, rather
than exposing any underlying driver issue.  Just skip it in CI until we
come up with a reasonable way to handle tests to be run in isolation
during a deqp-runner run (likely as part of
https://gitlab.freedesktop.org/anholt/deqp-runner/-/issues/7).

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333>

3 years agoci: Add a flakes IRC channel for llvmpipe/softpipe.
Emma Anholt [Fri, 11 Jun 2021 21:11:22 +0000 (14:11 -0700)]
ci: Add a flakes IRC channel for llvmpipe/softpipe.

I'll watch this for deqp flake reports so we can stay on top of them (and
maybe expire those ancient softpipe annotations at some point).

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333>

3 years agoci/softpipe: Move the flake to the flakes list.
Emma Anholt [Fri, 11 Jun 2021 21:10:14 +0000 (14:10 -0700)]
ci/softpipe: Move the flake to the flakes list.

These flake annotations in the skips list predated having flakes support.

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333>

3 years agoci/deqp: Skip flush_finish on all CI jobs.
Emma Anholt [Fri, 11 Jun 2021 21:03:37 +0000 (14:03 -0700)]
ci/deqp: Skip flush_finish on all CI jobs.

They're too slow to run in CI even on non-tiled renderers, they don't
block conformance (unless you crash), and provide unreliable warning
results unless you isolate them from other activity on the system.

This means that the following jobs now skip these tests:

- deqp-iris-*
- deqp-llvmpipe (you know, the one mentioned in the comment!)
- deqp-virgl-gl
- deqp-zink-lvp

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333>

3 years agoci/deqp: Drop stress/perf skips lists.
Emma Anholt [Fri, 11 Jun 2021 20:53:51 +0000 (13:53 -0700)]
ci/deqp: Drop stress/perf skips lists.

The mustpass doesn't have any tests matching these, so no need to
skip. These tests only show up if you run without using a mustpass list.

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333>

3 years agoci: bump x86_test-base tag
Andres Gomez [Mon, 14 Jun 2021 13:20:07 +0000 (16:20 +0300)]
ci: bump x86_test-base tag

When adding crosvm to the x86_test-gl building deqp-runner was also
mistakenly introduced. deqp-runner is already included in the
x86_test-base image.

Additionally, when bumping the deqp-runner version, only the
x86_test-gl tag was updated.

Now, we remove the unnecessary build from x86_test-gl and bump the tag
for the x86_test-base image.

v2:
  - Bump x86_test-gl, not x86_test-vk (Tomeu).
v3: add in fixes for duplicated lines in lvp xfails (Anholt)

Fixes: dc9cd18f522 ("ci: Build Crosvm in our container")
Fixes: 53826932db5 ("ci: Update piglit and deqp/piglit-runner.")
Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: Martin Peres <martin.peres@mupuf.org>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11359>

3 years agoci: Disable Xorg's screensaver entirely.
Emma Anholt [Sat, 12 Jun 2021 00:07:31 +0000 (17:07 -0700)]
ci: Disable Xorg's screensaver entirely.

The screensaver kicks in at 10 minutes and obscures the screen,
independent of dpms.  This causes piglit tests to get flaky (swaps start
taking a whole second, and swapbuffersmsc-divisor-zero times out at
exactly the wrong time) and slow if the run takes longer than 10 minutes.

Hopefully with this we'll see some piglit glx flakes go away forever, it
did seem to for this test locally.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11334>

3 years agofreedreno/drm-shim: keep GEM buffers page-aligned
Alexander Monakov [Fri, 11 Jun 2021 20:56:17 +0000 (23:56 +0300)]
freedreno/drm-shim: keep GEM buffers page-aligned

Trying to run turnip under drm-shim reveals that pretended device
offsets are not sufficiently aligned, failing this assert in tu_pipeline.c:

   /* emit program binary & private memory layout
    * binary_iova should be aligned to 1 instrlen unit (128 bytes)
    */

   assert((binary_iova & 0x7f) == 0);

Round up BO size to 4096 in msm_ioctl_gem_new to avoid this (the kernel
aligns to page size).

Signed-off-by: Alexander Monakov <amonakov@ispras.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11331>

3 years agofreedreno/drm-shim: pretend to offer DRM 1.6.0
Alexander Monakov [Fri, 11 Jun 2021 20:29:57 +0000 (23:29 +0300)]
freedreno/drm-shim: pretend to offer DRM 1.6.0

turnip's DRM device interface requires version 1.6 (for SYNCOBJ).
To unblock use of turnip over drm-shim, raise shim's version to 1.6.
This allows to see shader disassembly, while submission fails with

DRM_SHIM: unhandled core DRM ioctl 0xC4 (0xc01064c4)
TU: error: DRM_IOCTL_SYNCOBJ_RESET failure: Invalid argument

Signed-off-by: Alexander Monakov <amonakov@ispras.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11331>

3 years agoaco/lower_phis: don't allocate unused temporary ids
Rhys Perry [Wed, 9 Jun 2021 19:10:51 +0000 (20:10 +0100)]
aco/lower_phis: don't allocate unused temporary ids

The excessive number of temporary IDs caused #4872's live-out sets to be
extremely large and expensive to iterate.

With this change, #4872's shader is much faster to compile and uses much
less memory.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4872
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11300>

3 years agoaco/lower_phis: fix undef_operands initialization with >32 predecessors
Rhys Perry [Thu, 10 Jun 2021 10:23:56 +0000 (11:23 +0100)]
aco/lower_phis: fix undef_operands initialization with >32 predecessors

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11300>

3 years agoradv: fix dynamic rasterizer discard enable state
Samuel Pitoiset [Tue, 8 Jun 2021 14:18:20 +0000 (16:18 +0200)]
radv: fix dynamic rasterizer discard enable state

If a pipeline enables rasterizerDiscardEnable statically we have to
properly initialize the value, otherwise it won't be updated when a
new pipeline is bound.

Fixes few dEQP-VK.pipeline.extended_dynamic_state.*disable_raster.

Fixes: dd19bf9d7dd ("radv: implement dynamic rasterizer discard enable")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11242>

3 years agoaco: move VMEM instructions below descriptor loads
Rhys Perry [Fri, 27 Nov 2020 16:37:07 +0000 (16:37 +0000)]
aco: move VMEM instructions below descriptor loads

This is to prevent sequences like:
   a = descriptor_load()
   vmem(a)
   b = descriptor_load()
   vmem(b)
and instead create:
   a = descriptor_load()
   b = descriptor_load()
   vmem(a)
   vmem(b)

fossil-db (GFX10.3):
Totals from 114521 (78.30% of 146267) affected shaders:
VGPRs: 4540352 -> 4540216 (-0.00%); split: -0.03%, +0.02%
CodeSize: 289864228 -> 289114652 (-0.26%); split: -0.29%, +0.03%
MaxWaves: 2940234 -> 2940338 (+0.00%); split: +0.00%, -0.00%
Instrs: 55112418 -> 54919910 (-0.35%); split: -0.38%, +0.03%
Latency: 956528393 -> 954682011 (-0.19%); split: -0.24%, +0.05%
InvThroughput: 229280830 -> 229238107 (-0.02%); split: -0.04%, +0.02%
VClause: 1141832 -> 1139002 (-0.25%); split: -0.63%, +0.38%
SClause: 2357840 -> 2225008 (-5.63%); split: -6.01%, +0.38%
Copies: 3316040 -> 3331519 (+0.47%); split: -0.31%, +0.77%
Branches: 1187212 -> 1186919 (-0.02%); split: -0.03%, +0.01%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6489>

3 years agoaco: don't move descriptor loads below buffer loads
Rhys Perry [Fri, 27 Nov 2020 17:26:46 +0000 (17:26 +0000)]
aco: don't move descriptor loads below buffer loads

fossil-db (GFX10.3):
Totals from 52870 (36.15% of 146267) affected shaders:
VGPRs: 2109936 -> 2110056 (+0.01%); split: -0.01%, +0.01%
CodeSize: 134898056 -> 134812748 (-0.06%); split: -0.08%, +0.02%
MaxWaves: 1347354 -> 1347346 (-0.00%)
Instrs: 25598063 -> 25575415 (-0.09%); split: -0.11%, +0.02%
Latency: 432491613 -> 432047723 (-0.10%); split: -0.12%, +0.02%
InvThroughput: 90940977 -> 90927545 (-0.01%); split: -0.03%, +0.01%
VClause: 570039 -> 570019 (-0.00%); split: -0.05%, +0.04%
SClause: 1145076 -> 1139040 (-0.53%); split: -0.60%, +0.07%
Copies: 1513949 -> 1513102 (-0.06%); split: -0.32%, +0.26%
Branches: 524279 -> 524275 (-0.00%); split: -0.03%, +0.03%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6489>

3 years agoaco/ra: use adjust_max_used_regs() in compact_relocate_vars()
Rhys Perry [Mon, 14 Jun 2021 13:45:22 +0000 (14:45 +0100)]
aco/ra: use adjust_max_used_regs() in compact_relocate_vars()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6489>

3 years agoradv/winsys: remove useless errno.h includes
Samuel Pitoiset [Wed, 9 Jun 2021 14:10:59 +0000 (16:10 +0200)]
radv/winsys: remove useless errno.h includes

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11269>

3 years agoradv/winsys: adjust some error messages
Samuel Pitoiset [Wed, 9 Jun 2021 14:09:32 +0000 (16:09 +0200)]
radv/winsys: adjust some error messages

Report the return code from libdrm instead of errno. While we are at it,
fix the function name in radv_amdgpu_wait_timeline_syncobj().

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11269>

3 years agogallium/va: Add support for PRIME_2 import.
Bas Nieuwenhuizen [Mon, 2 Nov 2020 01:09:11 +0000 (02:09 +0100)]
gallium/va: Add support for PRIME_2 import.

That way we can actually import surfaces with modifiers & metadata
planes.

Tested with patches for ffmpeg to use this with kmsgrab & modifiers.

For AMD & multiplanar formats we always have 1 format plane = 1
memory plane, even with modifiers.

Intel (non Gallium) does have 1 format plane is 2 memory planes
for some modifiers with NV12. Currently with Gallium we don't really
have info about layer/plane ordering so this manually orders things
so that they align with Intel.

This shouldn't impact other drivers as without modifiers with metadata
planes this should give equivalent behavior to the old import path.

Reviewed-and-Tested-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10815>

3 years agogallium/vl: Use format plane count for sampler view creation.
Bas Nieuwenhuizen [Sun, 1 Nov 2020 23:16:29 +0000 (00:16 +0100)]
gallium/vl: Use format plane count for sampler view creation.

Extra memory planes don't need a sampler.

Reviewed-and-Tested-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10815>

3 years agoradv: Allow DCC images to be compressed with foreign queues.
Bas Nieuwenhuizen [Fri, 14 May 2021 12:08:12 +0000 (14:08 +0200)]
radv: Allow DCC images to be compressed with foreign queues.

Otherwise we would always decompress when transitioning to the
foreign queue.

Fixes: 8b9033ad0a0 ("radv: Support DCC modifiers fully.")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10802>

3 years agoradv: Actually return correct value for read-only DCC compressedness.
Bas Nieuwenhuizen [Fri, 14 May 2021 12:04:11 +0000 (14:04 +0200)]
radv: Actually return correct value for read-only DCC compressedness.

Most stuff that depends on the value wouldn't be triggered anyway but
...

Fixes: b5ecf0748a5 ("radv: Ensure we never decompress or FCE read-only textures.")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10802>

3 years agoradv: Don't skip barriers that only change queues.
Bas Nieuwenhuizen [Fri, 14 May 2021 11:57:11 +0000 (13:57 +0200)]
radv: Don't skip barriers that only change queues.

We depend on the queue mask for some decisions ...

CC: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10802>

3 years agoaco: adjust the condition for expanding vertex fetch data format
Rhys Perry [Fri, 12 Feb 2021 10:49:03 +0000 (10:49 +0000)]
aco: adjust the condition for expanding vertex fetch data format

Instead of avoiding out-of-bounds access, avoid creating a load larger
than the original attribute. This should work just as well, since the only
situations expending a load helped was because we shrunk it first.

Also fixes a bug where a 3 component load (4 components with the first
component skipped) would be incorrectly expanded to 4 components because
the stride check would never be performed. Maybe we should avoid skipping
the first component in some situations, but I'm not sure if it's worth
the VGPR cost.

fossil-db (vega10):
Totals from 583 (0.39% of 149974) affected shaders:
CodeSize: 1496848 -> 1500868 (+0.27%); split: -0.03%, +0.30%
Instrs: 286155 -> 286575 (+0.15%); split: -0.07%, +0.22%
Latency: 2947101 -> 2946865 (-0.01%); split: -0.23%, +0.22%
InvThroughput: 797396 -> 797127 (-0.03%); split: -0.08%, +0.04%

fossil-db (polaris10):
Totals from 583 (0.39% of 151365) affected shaders:
SGPRs: 38880 -> 39216 (+0.86%)
VGPRs: 24440 -> 24356 (-0.34%)
CodeSize: 1506808 -> 1510876 (+0.27%); split: -0.01%, +0.28%
Instrs: 288735 -> 289167 (+0.15%); split: -0.06%, +0.21%
Latency: 2963263 -> 2961884 (-0.05%); split: -0.24%, +0.19%
InvThroughput: 802351 -> 801665 (-0.09%); split: -0.12%, +0.04%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9007>

3 years agoradv,aco: use all attributes in a binding to obtain an alignment for fetch
Rhys Perry [Fri, 12 Feb 2021 10:48:58 +0000 (10:48 +0000)]
radv,aco: use all attributes in a binding to obtain an alignment for fetch

Instead of assuming scalar alignment for an attribute, we can use the
required alignment of other attributes in a binding to expect a higher
one.

This uses the alignment of all attributes in the pipeline, not just the
ones loaded. This can create slightly better code, but could break
pipelines which relied on unused (and unaligned) attributes no being
loaded. I don't think such pipelines are allowed by the spec.

fossil-db (Sienna Cichlid):
Totals from 44350 (30.32% of 146267) affected shaders:
VGPRs: 1694464 -> 1700616 (+0.36%); split: -0.08%, +0.44%
CodeSize: 60207184 -> 58093836 (-3.51%); split: -3.51%, +0.00%
MaxWaves: 1175998 -> 1174948 (-0.09%); split: +0.02%, -0.11%
Instrs: 11763444 -> 11458952 (-2.59%); split: -2.60%, +0.01%
Latency: 70679612 -> 67062215 (-5.12%); split: -5.27%, +0.15%
InvThroughput: 11482495 -> 11362911 (-1.04%); split: -1.20%, +0.16%
VClause: 359459 -> 343248 (-4.51%); split: -6.36%, +1.85%
SClause: 422404 -> 419229 (-0.75%); split: -1.17%, +0.42%
Copies: 754384 -> 764368 (+1.32%); split: -1.74%, +3.06%
Branches: 197472 -> 197474 (+0.00%); split: -0.03%, +0.03%
PreVGPRs: 1215348 -> 1215503 (+0.01%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9007>

3 years agoRevert "ci: Disable the iris APL jobs"
Tomeu Vizoso [Mon, 14 Jun 2021 07:35:56 +0000 (09:35 +0200)]
Revert "ci: Disable the iris APL jobs"

This reverts commit 209c82977572dc73cc5c022be3949e1600fba05e.

They are stable now.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11355>

3 years agov3dv: handle Vulkan 1.1 feature and property queries
Iago Toral Quiroga [Thu, 10 Jun 2021 11:17:45 +0000 (13:17 +0200)]
v3dv: handle Vulkan 1.1 feature and property queries

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11316>

3 years agoturnip: add missing VKAPI_ATTR/CALL
Hyunjun Ko [Mon, 7 Jun 2021 04:59:32 +0000 (04:59 +0000)]
turnip: add missing VKAPI_ATTR/CALL

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11099>

3 years agoci: add crocus to the build tests
Dave Airlie [Wed, 2 Jun 2021 19:52:40 +0000 (05:52 +1000)]
ci: add crocus to the build tests

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Acked-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11146>

3 years agocrocus: initial gallium driver for Intel gfx 4-7
Dave Airlie [Tue, 1 Jun 2021 03:14:51 +0000 (13:14 +1000)]
crocus: initial gallium driver for Intel gfx 4-7

This is a gallium driver for the Intel gfx 4-7 GPUs.

It was initially cloned from the iris driver by Ilia Mirkin,
then I ported over large reams of code from i965 until it worked.

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11146>

3 years agointel/compiler: add flag to indicate edge flags vertex input is last
Dave Airlie [Tue, 8 Jun 2021 05:04:42 +0000 (15:04 +1000)]
intel/compiler: add flag to indicate edge flags vertex input is last

965 and the mesa st disagree on how vertex elements are ordered when
edgeflags are involved. 965 wants them in gl_vert_attrib order,
but gallium supplies the edgeflag as the last vertex element regardless.

This adds a flag which is enabled for gen4/5 to denote that the
edgeflag is at the end. When we reap 965 later we can resolve this
better.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11146>

3 years agointel: reorder base program key.
Dave Airlie [Wed, 2 Jun 2021 02:24:37 +0000 (12:24 +1000)]
intel: reorder base program key.

This gets hashed a lot, this reduces the size of this, and the other
keys by a small amount

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11146>

3 years agointel/decode: handle gen4/5 WM state fragment shaders
Dave Airlie [Wed, 9 Jun 2021 21:01:21 +0000 (07:01 +1000)]
intel/decode: handle gen4/5 WM state fragment shaders

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11146>

3 years agost/mesa: also disable other int textures
Dave Airlie [Tue, 30 Mar 2021 03:44:34 +0000 (13:44 +1000)]
st/mesa: also disable other int textures

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11146>

3 years agofreedreno/a6xx: Improve UBWC demotion logic
Rob Clark [Sat, 12 Jun 2021 19:29:14 +0000 (12:29 -0700)]
freedreno/a6xx: Improve UBWC demotion logic

Sampler/image/surface views with different component sizes also need to
force demotion to uncompressed, as the UBWC metadata is not compatible.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11343>

3 years agofreedreno/a6xx: Handle non-UBWC surface views
Rob Clark [Sat, 12 Jun 2021 18:41:47 +0000 (11:41 -0700)]
freedreno/a6xx: Handle non-UBWC surface views

Similar to sampler views and shader images, if we get a surface view
with a non-UBWC compatible format while the underlying resource is UBWC,
we need to demote to uncompressed.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11343>

3 years agofreedreno/a6xx: Fix r16_snorm blits
Rob Clark [Sat, 12 Jun 2021 17:00:15 +0000 (10:00 -0700)]
freedreno/a6xx: Fix r16_snorm blits

The .NORM bit doesn't seem to do what we think or want.. tu also doesn't
set it, and things seem to work out better when we don't.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11343>

3 years agofreedreno/ci: Sort a630 piglit xfails
Rob Clark [Sat, 12 Jun 2021 17:45:12 +0000 (10:45 -0700)]
freedreno/ci: Sort a630 piglit xfails

Next patches fixes a bunch.. it will be easier to not update the xfails
by hand.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11343>

3 years agozink: move extension function verification to when it is used
Hoe Hao Cheng [Fri, 11 Jun 2021 16:36:32 +0000 (00:36 +0800)]
zink: move extension function verification to when it is used

Some vulkan functions are not loaded when the corresponding features are
not enabled, but the verifier checks for *all* functions, so make the
verifier more forgiving and use a stub to catch when we actually use a
function that is not loaded.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11328>

3 years agoanv: fix Android WSI VkFence
Yiwei Zhang [Sat, 12 Jun 2021 23:35:19 +0000 (23:35 +0000)]
anv: fix Android WSI VkFence

Fix an obvious one-liner bug.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11344>

3 years agonv50: use the no-mipmap texture type for 2d ms views
Ilia Mirkin [Thu, 10 Jun 2021 04:20:04 +0000 (00:20 -0400)]
nv50: use the no-mipmap texture type for 2d ms views

There are size restrictions on 2D images which can't accommodate the
*full* 2D MSAA image. There's no way to make it work for 2D MSAA Array
images, but at least for the non-array variants, we can use the
no-mipmap variant which has a larger maximum size.

Fixes dEQP-GLES31.functional.shaders.builtin_functions.texture_size.*2d

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11285>

3 years agovenus: add support for external semaphores on Android
Chia-I Wu [Tue, 8 Jun 2021 19:46:22 +0000 (12:46 -0700)]
venus: add support for external semaphores on Android

This is a hack.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11253>

3 years agovenus: add support for external fence on Android
Chia-I Wu [Tue, 8 Jun 2021 17:54:49 +0000 (10:54 -0700)]
venus: add support for external fence on Android

This is a hack.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11253>

3 years agovenus: update venus-protocol headers
Chia-I Wu [Tue, 8 Jun 2021 19:40:02 +0000 (12:40 -0700)]
venus: update venus-protocol headers

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11253>

3 years agovenus: simplify vn_renderer_sync creation
Chia-I Wu [Tue, 8 Jun 2021 18:43:28 +0000 (11:43 -0700)]
venus: simplify vn_renderer_sync creation

Remove the ability to init/release repeatedly.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11253>

3 years agovenus: move vn_renderer_sync_ops to vn_renderer
Chia-I Wu [Tue, 8 Jun 2021 18:18:04 +0000 (11:18 -0700)]
venus: move vn_renderer_sync_ops to vn_renderer

To follow vn_renderer_{shmem,bo}_ops.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11253>

3 years agoci/iris: Enable piglit testing on AML-Y.
Emma Anholt [Fri, 4 Jun 2021 17:36:02 +0000 (10:36 -0700)]
ci/iris: Enable piglit testing on AML-Y.

We use AML-Y since it's pretty fast and we have a bunch of boards running.
In exchange, to keep the farm from getting too busy, we disable
deqp-gles3/31 jobs by default, since the other gens get us pretty good
coverage.

Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11193>

3 years agoaux/cso: set flatshade_first onto vbuf when binding rasterizer
Mike Blumenkrantz [Fri, 21 May 2021 10:50:01 +0000 (06:50 -0400)]
aux/cso: set flatshade_first onto vbuf when binding rasterizer

ensure this value is always updated

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10964>

3 years agoutil/vbuf: add flatshade_first to vbuf context and api
Mike Blumenkrantz [Fri, 21 May 2021 10:29:54 +0000 (06:29 -0400)]
util/vbuf: add flatshade_first to vbuf context and api

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10964>

3 years agoutil/primconvert: add function for setting flatshade_first
Mike Blumenkrantz [Fri, 21 May 2021 10:28:33 +0000 (06:28 -0400)]
util/primconvert: add function for setting flatshade_first

this is the value that needs to be set, not the actual rasterizer state

original function preserved to avoid driver changes

Acked-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10964>

3 years agoaux/cso: store flatshade_first state from rasterizer
Mike Blumenkrantz [Fri, 21 May 2021 09:26:51 +0000 (05:26 -0400)]
aux/cso: store flatshade_first state from rasterizer

this is necessary for handling index rewriting

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10964>

3 years agoi965: Use nir_lower_passthrough_edgeflags
Jason Ekstrand [Fri, 11 Jun 2021 03:53:26 +0000 (22:53 -0500)]
i965: Use nir_lower_passthrough_edgeflags

Now that there's a common NIR pass, there's no point in us doing this in
the back-end anymore.  In order to use this pass in i965, we do have to
make one tiny change.  Gallium runs the pass after assigning input and
output locations and so needs the pass to respect those locations and
num_inputs.  i965, however, runs it before any location assignment or
I/O lowering so we don't care.  We do, however, need the pass to succeed
with num_inputs == 0 because we set that later.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11313>

3 years agonir/edgeflags: update outputs written when lowering edge flags.
Dave Airlie [Tue, 8 Jun 2021 02:58:18 +0000 (12:58 +1000)]
nir/edgeflags: update outputs written when lowering edge flags.

In theory you can rerun the info gather pass, but in practice that
doesn't always end well. Be consistent inside this pass and update the
info.

While we're here, change the inputs read to use VERT_BIT_EDGEFLAG.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11313>

3 years agointel/isl: Use a 4D physical total extent for size calculations
Jason Ekstrand [Wed, 21 Feb 2018 18:08:31 +0000 (10:08 -0800)]
intel/isl: Use a 4D physical total extent for size calculations

With Yf and Ys tiling, everything is actually four dimensional because
we can have multiple depth or multisampled array slices in the same
tile.  This commit just enhances the calculations so they can handle it.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11330>

3 years agointel/isl: Make tile logical extents four dimensional
Jason Ekstrand [Wed, 21 Feb 2018 17:37:01 +0000 (09:37 -0800)]
intel/isl: Make tile logical extents four dimensional

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11330>

3 years agointel/isl: Make the offset helpers four dimensional
Jason Ekstrand [Wed, 21 Feb 2018 10:53:14 +0000 (02:53 -0800)]
intel/isl: Make the offset helpers four dimensional

We need to do this in order to handle Yf and Ys tiling because they use
a four-dimensional tile instead of laying everything out in two
dimensions.

v2 (Jason Ekstrand):
 - Update functions added since v1:
    - isl_surf_get_image_range_B_tile
    - blorp_can_hiz_clear_depth
    - get_image_offset_el

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com> (v1)
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11330>

3 years agointel/blorp: Use isl_surf_get_image_offset_B_tile_el in ccs_ambiguate
Jason Ekstrand [Wed, 21 Feb 2018 10:23:52 +0000 (02:23 -0800)]
intel/blorp: Use isl_surf_get_image_offset_B_tile_el in ccs_ambiguate

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11330>

3 years agointel/isl: Add a isl_surf_get_image_offset_B_tile_el helper
Jason Ekstrand [Wed, 21 Feb 2018 10:22:41 +0000 (02:22 -0800)]
intel/isl: Add a isl_surf_get_image_offset_B_tile_el helper

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11330>

3 years agoci/fastboot: Consistently restart the run on intermittent conditions.
Emma Anholt [Thu, 10 Jun 2021 20:48:45 +0000 (13:48 -0700)]
ci/fastboot: Consistently restart the run on intermittent conditions.

Not currently on my list of intermittent issues, but let's be
resilient hopefully.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11308>

3 years agoci/fastboot: Add a serial timeout to catch fastboot prompt failure.
Emma Anholt [Thu, 10 Jun 2021 20:42:35 +0000 (13:42 -0700)]
ci/fastboot: Add a serial timeout to catch fastboot prompt failure.

The a530s will occasionally fail to make it to the fastboot prompt,
with no other deltas between a working log and a log stalled waiting
for that line to show up.

So, add a serial timeout (like the rpi boards do for similar reasons),
and on timeout restart the run.  We actually restart the whole serial
watching process, because the SerialBuffer finishes itself on timeout.
This should also help with the intermittent issue we've had where a
power cycle causes the python serial module to throw an exception.

Tested with the gitlab-disabled db820c that never makes it to the
fastboot prompt (I think it's one where we need a longer micro cable
to connect it!) and saw successful boot looping to retry.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11308>

3 years agovenus: document the darkest corner of venus
Chia-I Wu [Tue, 8 Jun 2021 23:56:13 +0000 (16:56 -0700)]
venus: document the darkest corner of venus

The "Optional Requirements" section is fine.  The
"VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT" section details how venus goes
out-of-spec and becomes illegal.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11277>

3 years agozink: fix typo that's definitely not at all embarrassing or anything like that
Mike Blumenkrantz [Wed, 9 Jun 2021 21:28:30 +0000 (17:28 -0400)]
zink: fix typo that's definitely not at all embarrassing or anything like that

and also adjust some formatting to pad out the diff and really make sure nobody
notices that anything was ever amiss here

Fixes: 787412b7eb8 ("zink: break out region overlap testing function into helper")

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11279>

3 years agolavapipe: use cso caching
Mike Blumenkrantz [Thu, 10 Jun 2021 20:51:39 +0000 (16:51 -0400)]
lavapipe: use cso caching

really this only needs cso_cache api, but it's cumbersome to redo all
the hashing and state creation, so just use the whole context

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11071>

3 years agoaux/cso: split cso_destroy_context into unbind and a destroy functions
Mike Blumenkrantz [Fri, 4 Jun 2021 13:18:02 +0000 (09:18 -0400)]
aux/cso: split cso_destroy_context into unbind and a destroy functions

this makes the unbind function reusable

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11071>

3 years agoaux/cso: add flag to disable vbuf
Mike Blumenkrantz [Thu, 27 May 2021 15:19:38 +0000 (11:19 -0400)]
aux/cso: add flag to disable vbuf

it may be known in advance that vbuf shouldn't be used, so allow users
to skip this in case caps would otherwise enable it

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11071>

3 years agozink: clamp PIPE_CAP_MAX_VIEWPORTS to PIPE_MAX_VIEWPORTS
Mike Blumenkrantz [Fri, 11 Jun 2021 15:01:46 +0000 (11:01 -0400)]
zink: clamp PIPE_CAP_MAX_VIEWPORTS to PIPE_MAX_VIEWPORTS

this is all we need

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11322>

3 years agozink: do not fail when EXT_calibrated_timestamps is unavailable
Hoe Hao Cheng [Fri, 11 Jun 2021 04:36:00 +0000 (12:36 +0800)]
zink: do not fail when EXT_calibrated_timestamps is unavailable

Fixes: 039078fe ("zink: slight refactor of load_device_extensions()")

Acked-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11314>

3 years agozink: use scissor region for discarding clears during blit
Mike Blumenkrantz [Thu, 10 Jun 2021 19:52:18 +0000 (15:52 -0400)]
zink: use scissor region for discarding clears during blit

ensure that clears aren't being mistakenly discarded or applied due to
scissor region being ignored and full surface geometry being used

Fixes: a8e047e8f4a ("zink: discard pending clears during blit/copy if we'll overwrite the data")

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11307>

3 years agoci/lava: Avoid tee as it ruins exit status
Daniel Stone [Thu, 10 Jun 2021 23:13:30 +0000 (00:13 +0100)]
ci/lava: Avoid tee as it ruins exit status

I was today years old when I learned this about classic composable UNIX
tools:
    ~/mesa/mesa lava-submitter-overlay * % bash
    [daniels@strictly mesa]$ set -e
    [daniels@strictly mesa]$ false | tee
    [daniels@strictly mesa]$ echo $?
    0

Use tail rather than tee, so it doesn't hide our exit status.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309>

3 years agoci/lava: Dump and artifact YAML again
Daniel Stone [Thu, 10 Jun 2021 23:09:45 +0000 (00:09 +0100)]
ci/lava: Dump and artifact YAML again

Now it's safe to do so without leaking JWTs, dump the generated YAML to
make it easier to reproduce things.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309>

3 years agoci/lava: Disable stdout/stderr buffering
Daniel Stone [Thu, 10 Jun 2021 22:59:56 +0000 (23:59 +0100)]
ci/lava: Disable stdout/stderr buffering

Frequency of writes is unlikely to be a performance bottleneck, and
given the number of steps in between execution and the user, less
buffering is gooder.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309>

3 years agoci/lava: Add explicit fatal-error handler
Daniel Stone [Thu, 10 Jun 2021 22:45:07 +0000 (23:45 +0100)]
ci/lava: Add explicit fatal-error handler

Truth is relative in 2021, and Python's duck-typing means truthiness
isn't what you think it is. Use an explicit fatal-error handler to make
sure we crash out hard on failure, rather than hoping sys.exit() behaves
like you think it does, because it doesn't.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309>

3 years agoci/lava: Remove unused arguments
Daniel Stone [Thu, 10 Jun 2021 22:13:46 +0000 (23:13 +0100)]
ci/lava: Remove unused arguments

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309>

3 years agoci/lava: Generate job name from lava-submit.sh
Daniel Stone [Thu, 10 Jun 2021 22:19:08 +0000 (23:19 +0100)]
ci/lava: Generate job name from lava-submit.sh

Just use the CI job name rather than open-coding the parameters.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309>

3 years agoci/panfrost: Remove useless variable
Daniel Stone [Thu, 10 Jun 2021 18:23:16 +0000 (19:23 +0100)]
ci/panfrost: Remove useless variable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309>

3 years agoci/lava: Use per-job rootfs overlay for environment
Daniel Stone [Thu, 10 Jun 2021 16:00:32 +0000 (17:00 +0100)]
ci/lava: Use per-job rootfs overlay for environment

Trying to get arbitrary strings suitably quoted for shell, embedded in a
YAML file, processed by Python templating, is like seven bad ideas all
embedded into one big can of bees.

Reuse the same script we use for bare-metal to generate the environment,
tar that up into a per-job overlay which is added to the
inter-pipeline-reusable rootfs built by the container jobs and the
intra-pipeline-reusable overlay built by the build jobs.

@anholt wrote a chunk of this - replacing the $ENV_VARS GitLab CI
variable with a Python loop across the POSIX job environment - in
!11192, but this still had YAML quoting nightmares, and was more
needless duplication between LAVA and bare-metal.

The diff is large and annoying, but is mostly a sed job to get
ENV_VARS="FOO=bar BAZ=quux" into FOO: bar\nBAZ: quux.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Co-authored-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309>

3 years agoci: Use JOB_ARTIFACTS_BASE for Piglit fails
Daniel Stone [Thu, 10 Jun 2021 15:35:03 +0000 (16:35 +0100)]
ci: Use JOB_ARTIFACTS_BASE for Piglit fails

It's not Piglit-specific per se, it's just another per-job artifact
upload which needs to be made visible through MinIO.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309>

3 years agoci: Add JOB_ARTIFACTS_BASE variable
Daniel Stone [Thu, 10 Jun 2021 15:29:39 +0000 (16:29 +0100)]
ci: Add JOB_ARTIFACTS_BASE variable

Used for both LAVA (uploading results to MinIO because we don't yet have
non-ephemeral NFS storage) and Piglit (for the Tracie dashboard).

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309>