platform/upstream/mesa.git
9 months agotu/msm: Fix timeline semaphore support
Rob Clark [Thu, 2 Nov 2023 14:29:23 +0000 (07:29 -0700)]
tu/msm: Fix timeline semaphore support

Fixes: daefc6e2a40b ("turnip: prep work for timeline semaphore support")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25981>
(cherry picked from commit 79b907f9412971b8f6316e1de757a2c3cfdbc603)

9 months agoradv: skip radv_remove_varyings for mesh shaders
Rhys Perry [Wed, 11 Oct 2023 13:46:20 +0000 (14:46 +0100)]
radv: skip radv_remove_varyings for mesh shaders

Fixes compilation of a Talos Principle 2 shader.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Fixes: 9fa9782c1790 ("radv: stop compiling a noop FS when the application doesn't provide a FS")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25659>
(cherry picked from commit 0a418561dab43a41f21ab209367f88c2ed9eb4a5)

9 months agoradv: call lower_array_deref_of_vec before lower_io_arrays_to_elements
Rhys Perry [Wed, 11 Oct 2023 13:43:03 +0000 (14:43 +0100)]
radv: call lower_array_deref_of_vec before lower_io_arrays_to_elements

nir_lower_io_arrays_to_elements does not support array derefs of vectors,
even when nir_deref_instr_is_known_out_of_bounds is fixed.

They can occur with mesh shaders.

Found by inspection.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25659>
(cherry picked from commit ed12be533e2673b08e958be32fbe5d6af2737fbc)

9 months agonir: add deref follower builder for casts.
Faith Ekstrand [Wed, 1 Nov 2023 20:38:35 +0000 (15:38 -0500)]
nir: add deref follower builder for casts.

This fixes intel_clc builds with llvm 17 on gfx125_bvh_build_DFS_DFS
where it dies in the lower indirect derefs pass.

Co-authored-by: Dave Airlie <airlied@redhat.com>
Fixes: 4a4e1757381c ("nir: Support deref instructions in lower_var_copies")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25536>
(cherry picked from commit 6388896985da7495ad0968322491953894d29637)

9 months agor600: Add callbacks for get_driver_uuid and get_device_uuid
Gert Wollny [Wed, 25 Oct 2023 20:30:37 +0000 (22:30 +0200)]
r600: Add callbacks for get_driver_uuid and get_device_uuid

v2: Evaluate driver ID dynamically (Adam Jackson)
v3: Align the stars (Triang3l)
v4: include "r600" in driver ID for UUID evaluation (Triang3l)
v5: remove unused local variable

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10040
CC: mesa-stable
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25895>
(cherry picked from commit 3ab51c7ebd1e7a65bd928b6142423123c7552927)

9 months agorusticl: Show an error message if the version of bindgen can't be detected
LingMan [Sat, 4 Nov 2023 11:51:51 +0000 (12:51 +0100)]
rusticl: Show an error message if the version of bindgen can't be detected

bindgen 0.69.0 broke the `--version` switch, resulting in misleading errors about requiring at
least bindgen 0.62 or about unexpected arguments.

Ideally the build system would fetch the correct bindgen version automatically like cargo does.
Until then, provide a hopefully more helpful error message to the user.

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26046>
(cherry picked from commit 1f1ec1c6bcc2a32a3c1df8c2cc7a2f4e7139b7ec)

9 months agorusticl: Show an error message if the build is attempted with an outdated bindgen...
LingMan [Tue, 24 Oct 2023 03:47:06 +0000 (05:47 +0200)]
rusticl: Show an error message if the build is attempted with an outdated bindgen version

Ideally the build system would fetch the correct bindgen version automatically like cargo does.
Until then, provide an error message that is hopefully more helpful than whatever cryptic error the
build runs into otherwise.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9457
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10029
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25859>
(cherry picked from commit 1cc26e8b6657b5097995470ced9ae9cc7b6f01b9)

9 months ago.pick_status.json: Update to 1f1ec1c6bcc2a32a3c1df8c2cc7a2f4e7139b7ec
Eric Engestrom [Sat, 4 Nov 2023 14:09:43 +0000 (14:09 +0000)]
.pick_status.json: Update to 1f1ec1c6bcc2a32a3c1df8c2cc7a2f4e7139b7ec

9 months agoVERSION: bump for 23.3.0-rc2
Eric Engestrom [Wed, 1 Nov 2023 17:27:10 +0000 (17:27 +0000)]
VERSION: bump for 23.3.0-rc2

9 months agoradv: emit COMPUTE_PIPELINESTAT_ENABLE for CS invocations on ACE
Samuel Pitoiset [Mon, 30 Oct 2023 13:04:38 +0000 (14:04 +0100)]
radv: emit COMPUTE_PIPELINESTAT_ENABLE for CS invocations on ACE

This register seems needed to enable compute shader shader invocations
on GFX7. On GFX8+ it's working fine without emitting this register but
I think it doesn't hurt.

This fixes dEQP-VK.query_pool.statistics_query.*_cq on GFX7.

Fixes: a9945216ba2 ("radv: fix COMPUTE_SHADER_INVOCATIONS query on compute queue")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25957>
(cherry picked from commit 17daa08dff0cf9479b27ed7402de61336607ec10)

9 months agoradv: fix compute shader invocations query on compute queue on GFX6
Samuel Pitoiset [Mon, 30 Oct 2023 11:50:56 +0000 (12:50 +0100)]
radv: fix compute shader invocations query on compute queue on GFX6

Looks like GFX6 always writes the number of compute shader invocations
at offset 0 when used on compute queue.

This fixes dEQP-VK.query_pool.statistics_query.*_cq on GFX6.

Fixes: a9945216ba2 ("radv: fix COMPUTE_SHADER_INVOCATIONS query on compute queue")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25957>
(cherry picked from commit 9a0a77cb53d0d31c7a090d06ac905d69e9c1131c)

9 months ago.pick_status.json: Update to faed5d647f2416bb0ce3a9d33a3955169c70dc52
Eric Engestrom [Wed, 1 Nov 2023 14:52:52 +0000 (14:52 +0000)]
.pick_status.json: Update to faed5d647f2416bb0ce3a9d33a3955169c70dc52

9 months agoradv: bind the non-dynamic graphics state from the pipeline unconditionally
Samuel Pitoiset [Mon, 30 Oct 2023 14:26:15 +0000 (15:26 +0100)]
radv: bind the non-dynamic graphics state from the pipeline unconditionally

The following sequence is valid (although weird) but many other drivers
(including RADV) were broken:
    - bind pipeline with some static state
    - set state command for that static state (to a bad value)
    - bind the same pipeline again
    - draw

Fixes new dEQP-VK.dynamic_state.*.double_static_bind.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25954>
(cherry picked from commit e4a1bc70dd739ca8addddc940af08312b038e288)

9 months agorusticl/mesa/screen: do not derefence the entire pipe_screen struct
Karol Herbst [Fri, 27 Oct 2023 21:27:15 +0000 (23:27 +0200)]
rusticl/mesa/screen: do not derefence the entire pipe_screen struct

Apparently the dereferences made tsan report data races on the pipe_screen
object.

Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25944>
(cherry picked from commit f7830240acc43280154dacd0ab075dcaa0051da8)

9 months ago.pick_status.json: Update to e4a1bc70dd739ca8addddc940af08312b038e288
Eric Engestrom [Wed, 1 Nov 2023 12:48:13 +0000 (12:48 +0000)]
.pick_status.json: Update to e4a1bc70dd739ca8addddc940af08312b038e288

9 months agovenus: switch to unconditionally deferred query feedback
Juston Li [Tue, 26 Sep 2023 23:36:58 +0000 (16:36 -0700)]
venus: switch to unconditionally deferred query feedback

All commands that make queries available have feedback cmds batched
and stored during recording. At submission time, for each batch
(SubmitInfo) these feedback cmds are recorded in a cmd buffer that is
appended after the last original cmd buffer (but before
semaphore/fence feedback).

Query reset cmds are deferred as well and also remove any prior feedback
cmds for queries its resetting within the batch.

Cc: 23.3 <mesa-stable>
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25413>
(cherry picked from commit 5b24ab91e43a54b4f4081db52ebf6653b97e72bb)

9 months agovenus: append query feedback at submission time
Juston Li [Tue, 26 Sep 2023 23:29:17 +0000 (16:29 -0700)]
venus: append query feedback at submission time

Cc: 23.3 <mesa-stable>
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25413>
(cherry picked from commit 7fbf608f2dac486b23030d3b48dd10bb453d9eb8)

9 months agovenus: track/recycle appended query feedback cmds
Juston Li [Tue, 26 Sep 2023 23:04:18 +0000 (16:04 -0700)]
venus: track/recycle appended query feedback cmds

Link the query feedback cmd lifecycle to a cmd in the batch so that when
that last cmd gets reset/freed, we assert its safe to reset the query
feedback cmd. The cmd is then placed on the free list for reuse.

Some edge cases if the the last cmd is simultaneous or gets resubmitted.

Cc: 23.3 <mesa-stable>
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25413>
(cherry picked from commit d2a626787e559dad9105243be9e5043c9230853c)

9 months agovenus: support deferred query feedback recording
Juston Li [Tue, 26 Sep 2023 22:09:54 +0000 (15:09 -0700)]
venus: support deferred query feedback recording

Add function to alloc a cmd buffer and record all the deferred query
feedback cmds into it at submission time.

Cc: 23.3 <mesa-stable>
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25413>
(cherry picked from commit 6dcf033dc30e52c1557999bf7588cf0e1c5dcc8c)

9 months agovenus: refactor out common cmd feedback functions
Juston Li [Tue, 26 Sep 2023 22:34:56 +0000 (15:34 -0700)]
venus: refactor out common cmd feedback functions

defered query feedback cmds have similaries with timeline semaphore
feedback so refactor out some common functions for reuse

Cc: 23.3 <mesa-stable>
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25413>
(cherry picked from commit 99807b3db65e107fc35f9419979600fcec7b8230)

9 months agovenus: add helper function to get cmd handle
Juston Li [Tue, 26 Sep 2023 22:24:17 +0000 (15:24 -0700)]
venus: add helper function to get cmd handle

rename previous vn_get_cmd_handle as that was getting cmd
handles from the temp storage cmd_handle buffer.

Cc: 23.3 <mesa-stable>
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25413>
(cherry picked from commit 2ea6f935ce554c5a1666648a284406db8edc3cc7)

9 months agoanv: fix corner case of mutable descriptor pool creation
Lionel Landwerlin [Mon, 30 Oct 2023 15:57:32 +0000 (17:57 +0200)]
anv: fix corner case of mutable descriptor pool creation

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 63e91148b7 ("anv: Enable VK_VALVE_mutable_descriptor_type")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10065
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25958>
(cherry picked from commit cdca0b2ce4d603d4f5914d7a1e37923a6a959541)

9 months ago.pick_status.json: Update to 4cdd094ae1e97d857a6b9dbc291d7bbe6ea266ac
Eric Engestrom [Tue, 31 Oct 2023 14:33:11 +0000 (14:33 +0000)]
.pick_status.json: Update to 4cdd094ae1e97d857a6b9dbc291d7bbe6ea266ac

9 months agotu: Fix reading of stale (V)PC_PRIMITIVE_CNTL_0
Danylo Piliaiev [Thu, 26 Oct 2023 15:11:30 +0000 (17:11 +0200)]
tu: Fix reading of stale (V)PC_PRIMITIVE_CNTL_0

PC_PRIMITIVE_CNTL_0 is not set in a draw state and may be changed
by 3d blits, so we have to re-emit it a the start of a renderpass.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9941

Fixes: 7be8d0f7f490ea58c89798efca7e45b84dc395da
("tu: Use common dirty tracking for PC_PRIMITIVE_CNTL_0")

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25918>
(cherry picked from commit cdbb8b541266b1095c9565eef6d115adac73c1aa)

9 months agoradv: fix a synchronization issue with primitives generated query on RDNA1-2
Samuel Pitoiset [Tue, 3 Oct 2023 15:34:06 +0000 (17:34 +0200)]
radv: fix a synchronization issue with primitives generated query on RDNA1-2

Only RDNA1-2 are affected because RADV needs to handle the legacy vs
NGG path for this query, and the NGG results are stored with 2 extra
64-bit values.

Fixes flakes with
dEQP-VK.transform_feedback.primitives_generated_query.* since VKCTS
1.3.7.0.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25862>
(cherry picked from commit 7d96fe853e1b007293054645caf54ade77a77c90)

9 months agov3d,v3dv: fix MMU error from hardware prefetch after ldunifa
Iago Toral Quiroga [Mon, 16 Oct 2023 14:38:31 +0000 (16:38 +0200)]
v3d,v3dv: fix MMU error from hardware prefetch after ldunifa

ldunifa works exactly the same as ldunif: the hw will prefetch the
next 4 bytes after a read, so if a buffer is exactly a multiple of
a page size and a shader uses ldunifa to read exactly the last 4 bytes
the prefetch will read out of bounds and spam the error on the kernel
log. Avoid that by allocating extra bytes in this scenario.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25752>
(cherry picked from commit 82bef62c17c79b298601fd565ce558c5282a88b7)

9 months agozink: deallocate global_bindings array
Karol Herbst [Fri, 27 Oct 2023 13:53:19 +0000 (15:53 +0200)]
zink: deallocate global_bindings array

Fixes: a6e9e0f0d77 ("zink: add set_global_binding")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25937>
(cherry picked from commit 2f34a1db5883a2e5178371d8295f711bd754a1e1)

9 months agorusticl/mesa: pass PIPE_BIND_LINEAR in resource_create_texture_from_user
Karol Herbst [Wed, 25 Oct 2023 21:17:22 +0000 (23:17 +0200)]
rusticl/mesa: pass PIPE_BIND_LINEAR in resource_create_texture_from_user

Host pointer allocations are all linear laid out, so just tell the drivers
in case they don't assume this implicitly.

Fixes: 71a9af49107 ("rusticl/mem: support read/write/copy ops for images")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25937>
(cherry picked from commit 7f08036abc5dd361b2161660f2f7efce8df86056)

9 months agoradeonsi: initialize perfetto in the right place
Marek Olšák [Fri, 20 Oct 2023 21:54:34 +0000 (17:54 -0400)]
radeonsi: initialize perfetto in the right place

Compute contexts don't execute the second half of the function.

Fixes: a164e147e91 - radeonsi: Add perfetto support in radeonsi
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10043

Tested-by: Mike Lothian <mike@fireburn.co.uk>
Tested-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25873>
(cherry picked from commit 276b9b13cf4d073c8a6faa18f41952d2f826679d)

9 months agoanv: Fix leak when compiling internal kernels
Caio Oliveira [Thu, 26 Oct 2023 22:10:36 +0000 (15:10 -0700)]
anv: Fix leak when compiling internal kernels

Cc: mesa-stable
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25928>
(cherry picked from commit 9d73bfc9cdd127a52d07bf8b60e66c5a9495890e)

9 months agozink: check for cbuf0 writes before setting A2C
Mike Blumenkrantz [Thu, 26 Oct 2023 15:34:26 +0000 (11:34 -0400)]
zink: check for cbuf0 writes before setting A2C

VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08919 requires
a cbuf0 write for A2C to be active

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25938>
(cherry picked from commit 736577871b939573af400e4e64ebfe18863d49af)

9 months agoradv: correctly return oom from the device when failing to create a cs
Mike Blumenkrantz [Thu, 26 Oct 2023 19:50:06 +0000 (15:50 -0400)]
radv: correctly return oom from the device when failing to create a cs

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25927>
(cherry picked from commit c4283e32e3e8d96987358620aa43483a79eea08b)

9 months agozink: add more locking for compute pipelines
Mike Blumenkrantz [Thu, 26 Oct 2023 20:22:27 +0000 (16:22 -0400)]
zink: add more locking for compute pipelines

if multiple contexts are accessing this all at once then this needs
more locking to avoid unsynchronized cache access

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25929>
(cherry picked from commit f8909e7d55e86c7db55f4b9482f94c993f5e2529)

9 months agorusticl/queue: Only take a weak ref to the last Event
Karol Herbst [Thu, 26 Oct 2023 16:50:37 +0000 (18:50 +0200)]
rusticl/queue: Only take a weak ref to the last Event

This resolves a memory leak when the application drops its last reference
to the queue, but never waits explicitly.

The problem was, that the queue was refed by QueueState::last and that ref
only gets dropped on a blocking wait. This is problematic as non user
Event objects also hold a ref on the Queue they are created on, therefore
causing a cyclic ref relation.

In order to resolve it, just use a weak reference. A failure of upgrading
the Weak ref is not an issue as in this case we'd only wait on an already
destroyed or processed event. The worker thread already makes sure
everything stays in sync.

Fixes: 5b3ff7e3f3d ("rusticl/queue: overhaul of the queue+event handling")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: @LingMan <18294-LingMan@users.noreply.gitlab.freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25926>
(cherry picked from commit 9a3af6e1d8a88ff5c919d33966e97168fe780a86)

9 months agoradv: fix buffers in vkGetDescriptorEXT with size not aligned to 4
Karol Herbst [Sun, 22 Oct 2023 19:50:35 +0000 (21:50 +0200)]
radv: fix buffers in vkGetDescriptorEXT with size not aligned to 4

The range alignment didn't happen through GetDescriptorEXT as it called
write_buffer_descriptor directly. So simply move the align
from write_buffer_descriptor_impl into write_buffer_descriptor.

Fixes: 46e0c77582d ("radv: implement VK_EXT_descriptor_buffer")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837>
(cherry picked from commit 1c619b668d69c66521d1da8edd97e518d6d61857)

9 months agozink: lower fisnormal as it requires the Kernel Cap
Karol Herbst [Sun, 22 Oct 2023 14:49:42 +0000 (16:49 +0200)]
zink: lower fisnormal as it requires the Kernel Cap

I didn't check if it's a valid vulkan SPIR-V opcode and turns out it isn't

Fixes: 82eed326f47 ("zink: support more nir opcodes")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837>
(cherry picked from commit 01b6ccccc6af3111da4466d083335ed5f0646a5e)

9 months agorusticl/mem: properly set pipe_image_view::access
Karol Herbst [Mon, 23 Oct 2023 17:17:16 +0000 (19:17 +0200)]
rusticl/mem: properly set pipe_image_view::access

Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837>
(cherry picked from commit abd8ef84ff4034a8f159f4743dc025dbfde8b837)

9 months agorusticl/device: restrict param_max_size further
Karol Herbst [Tue, 24 Oct 2023 19:28:02 +0000 (21:28 +0200)]
rusticl/device: restrict param_max_size further

It's kinda pointless to have it too big, it also causes weird shaders to
be generated and causes stack overflows in `nir_opt_gcm`.

Nothing needs big values here anyway.

Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837>
(cherry picked from commit 694001eef70e220c709523cd71aad4b7b7c6c8db)

9 months agorusticl/device: restrict image_buffer_size
Karol Herbst [Sun, 22 Oct 2023 14:53:54 +0000 (16:53 +0200)]
rusticl/device: restrict image_buffer_size

It's pointless to advertise more than CL_DEVICE_MAX_MEM_ALLOC_SIZE and
also the CTS tests against this.

Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837>
(cherry picked from commit 9b6ac56d72d6d74cfe85ed9caff663f841dd6def)

9 months agomesa/st/texture: match width+height for texture downloads of cube textures
Mike Blumenkrantz [Thu, 26 Oct 2023 16:36:14 +0000 (12:36 -0400)]
mesa/st/texture: match width+height for texture downloads of cube textures

some drivers require this

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914>
(cherry picked from commit ee1039877c14b9671e08342585bd0e2f4a6decb6)

9 months agozink: unset explicit_xfb_buffer for non-xfb shaders
Mike Blumenkrantz [Thu, 26 Oct 2023 16:05:16 +0000 (12:05 -0400)]
zink: unset explicit_xfb_buffer for non-xfb shaders

this catches duplicated xfb when generated geometry shaders are used

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914>
(cherry picked from commit df74ea771782966009def93339d0f4a1d94d12a1)

9 months agoaux/u_transfer_helper: set rendertarget bind for msaa staging resource
Mike Blumenkrantz [Thu, 26 Oct 2023 15:54:40 +0000 (11:54 -0400)]
aux/u_transfer_helper: set rendertarget bind for msaa staging resource

this matches other resources created with staging blit-like mechanics

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914>
(cherry picked from commit 87e3720b66aeef08351dc578863360c587514d53)

9 months agozink: only emit xfb execution mode for last vertex stage
Mike Blumenkrantz [Thu, 26 Oct 2023 15:33:47 +0000 (11:33 -0400)]
zink: only emit xfb execution mode for last vertex stage

this is otherwise illegal

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914>
(cherry picked from commit 694ebe8c7228aa5a2c427cd33b0d6fdf3360174d)

9 months agozink: clamp resolve extents to src/dst geometry
Mike Blumenkrantz [Thu, 26 Oct 2023 15:32:11 +0000 (11:32 -0400)]
zink: clamp resolve extents to src/dst geometry

exceeding src/dst extents is illegal

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914>
(cherry picked from commit e8b2680045b68334f3c82fada27a4edfe83bad22)

9 months agozink: always set VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT for usermem
Mike Blumenkrantz [Thu, 26 Oct 2023 15:00:57 +0000 (11:00 -0400)]
zink: always set VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT for usermem

required by spec

backport-to: 23.3

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914>
(cherry picked from commit 009d4a5fda58d5bb4c642fe711e19cb91c4bc1f4)

9 months agozink: emit SpvCapabilitySampleRateShading with SampleId
Mike Blumenkrantz [Thu, 26 Oct 2023 15:00:41 +0000 (11:00 -0400)]
zink: emit SpvCapabilitySampleRateShading with SampleId

required by spec

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914>
(cherry picked from commit 7035b5a8e858ca4c4773baefdd62bf19e7e3ffe6)

9 months agonir/lower_bit_size: Fix subgroup lowering for floats
Faith Ekstrand [Thu, 26 Oct 2023 13:01:15 +0000 (08:01 -0500)]
nir/lower_bit_size: Fix subgroup lowering for floats

Using u2u is always correct for integers, including signed integers,
because we're doing a down-cast.  It's wrong for floats, though.

Fixes: f95665cfebbd ("nir/lower_bit_size: Add support for lowering subgroup ops")
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25894>
(cherry picked from commit 5979e74177eb3013ca7e78867295e9a015e6c8ed)

9 months agozink: add copy box locking
Mike Blumenkrantz [Thu, 26 Oct 2023 17:15:57 +0000 (13:15 -0400)]
zink: add copy box locking

this can technically be accessed by multiple threads, so ensure
access is serialized

backport-to: 23.3

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25924>
(cherry picked from commit 782481c429100ebc8df68ca54e4f34722eced1c8)

9 months agomeson: Add gallium-drivers=all option
Alyssa Rosenzweig [Wed, 25 Oct 2023 12:46:30 +0000 (08:46 -0400)]
meson: Add gallium-drivers=all option

Again, useful to lint common code changes and for our macbook-wielding rel
manager <3

Omits i915g due to dependency hell, everything else builds on fedora asahi.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Cc: mesa-stable
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25882>
(cherry picked from commit ef4aa24a15a7a84b6deda058f710e5f4c52e3984)

9 months agomeson: Add vulkan-drivers=all option
Alyssa Rosenzweig [Wed, 25 Oct 2023 12:41:55 +0000 (08:41 -0400)]
meson: Add vulkan-drivers=all option

To build-test everything, helpful to check common code changes before pounding
CI.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Cc: mesa-stable
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25882>
(cherry picked from commit b70e948886976d2fb17b3191c9116c1babe25810)

9 months agocrocus: Support building on non-Intel
Alyssa Rosenzweig [Wed, 25 Oct 2023 12:38:10 +0000 (08:38 -0400)]
crocus: Support building on non-Intel

Ditto.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Cc: mesa-stable
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25882>
(cherry picked from commit 2552ac360d25e6e5f52c0877228540aeb012c858)

9 months agohasvk: Support builiding on non-Intel
Alyssa Rosenzweig [Wed, 25 Oct 2023 12:37:32 +0000 (08:37 -0400)]
hasvk: Support builiding on non-Intel

Should help Eric build test releases on their MacBook :-)

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Cc: mesa-stable
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25882>
(cherry picked from commit c8192c1c93ec4a988c14c038f7efcf2343c1f62a)

9 months agod3d12: d3d12_video_buffer_create_impl - Fix resource importing
Sil Vilerino [Thu, 26 Oct 2023 12:24:53 +0000 (08:24 -0400)]
d3d12: d3d12_video_buffer_create_impl - Fix resource importing

Only align resource dimensions on creation, not when importing existing D3D resource object.
Otherwise importing the resource fails since the resource descriptor does not match the aligned
dimensions passed in the template.

Fixes: 62fded5e4f8 ("d3d12: Allocate d3d12_video_buffer with higher alignment for compatibility")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25913>
(cherry picked from commit dfb95160266e1be49edc08863c4c760c3f774f9a)

9 months agonir/split_vars: Don't split arrays of cooperative matrix types
Ian Romanick [Tue, 24 Oct 2023 20:09:13 +0000 (13:09 -0700)]
nir/split_vars: Don't split arrays of cooperative matrix types

glsl_type_is_vector_or_scalar would more accruately be called "can be an
r-value that isn't an array, structure, or matrix. This optimization
pass really shouldn't do anything to cooperative matrices. These
matrices will eventually be lowered to something else (dependent on the
backend), and that thing may (or may not) be handled by this or another
pass.

Fixes: 2d0f4f2c17b ("compiler/types: Add support for Cooperative Matrix types")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25871>
(cherry picked from commit 18d8a96a00a1666fcf202ae89aee6344d295687e)

9 months agomesa/bufferobj: ensure that very large width+offset are always rejected
Corentin Noël [Thu, 26 Oct 2023 10:11:16 +0000 (12:11 +0200)]
mesa/bufferobj: ensure that very large width+offset are always rejected

In the case width+offset is triggering an integer overflow, the checks in place
are not working as the comparison will fail.

Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25909>
(cherry picked from commit e95c9b0515b85f65e00d47a152a881cc232a0d92)

9 months agoac/gpu_info: remove bogus assertion about number of COMPUTE/SDMA queues
Samuel Pitoiset [Wed, 25 Oct 2023 08:22:46 +0000 (10:22 +0200)]
ac/gpu_info: remove bogus assertion about number of COMPUTE/SDMA queues

For example, my polaris10 GPU now returns 3 compute queues.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25876>
(cherry picked from commit 4f8a2253875fdb677beb85c91ecb033cbf231fc7)

9 months agoanv/meson: add missing dependency on the interface header
Lionel Landwerlin [Thu, 26 Oct 2023 09:07:00 +0000 (12:07 +0300)]
anv/meson: add missing dependency on the interface header

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: db335d9b73 ("anv: factor out host/gpu internal shaders interfaces")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25905>
(cherry picked from commit ce5472137fb57348da59c32944e4b126a8ae795c)

9 months agozink: don't block large vram allocations
Mike Blumenkrantz [Wed, 25 Oct 2023 17:32:22 +0000 (13:32 -0400)]
zink: don't block large vram allocations

I think this was masking some other problem that has long since been fixed

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25893>
(cherry picked from commit ac6139ad73f55595cb089d848d080f8e84689c34)

9 months agontt: lower indirect tesslevels in ntt
Neha Bhende [Tue, 17 Oct 2023 22:58:23 +0000 (15:58 -0700)]
ntt: lower indirect tesslevels in ntt

Tessellation shader which are using indirect
addressing for tesslevels e.g
  gl_TessLevelOuter[gl_InvocationID] = tessLevelOuter;
are crashing because gl_TessLevelOuter is now a
compact array variable and nir expects a constant
array index into the compact array variable.

This patch handles such cases.

This fixes MR 21940
Fixes: 84006587d7e5 ("glsl: Delete the lower_tess_level pass.")

Tested with glretrace

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25773>
(cherry picked from commit 8cfb46e27dfb12acdb1a00f7687a43899d770cca)

9 months agointel/fs: fix dynamic interpolation mode selection
Lionel Landwerlin [Mon, 23 Oct 2023 14:42:35 +0000 (17:42 +0300)]
intel/fs: fix dynamic interpolation mode selection

We can end up in situation where we are dispatched with a multisample
framebuffer but not at per-sample. In this case we would request the
at_sample value with the wrong message configuration.

Relying on the BRW_WM_MSAA_FLAG_MULTISAMPLE_FBO flag superseeds
BRW_WM_MSAA_FLAG_PERSAMPLE_DISPATCH.

Fixes piglit tests :

spec@arb_gpu_shader5@arb_gpu_shader5-interpolateatsample*

With Zink on Anv

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 68027bd38e ("intel/fs: implement dynamic interpolation mode for dynamic persample shaders")
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25854>
(cherry picked from commit 439b0e86884eba55a4c25add9fe2763af1782b9f)

9 months ago.pick_status.json: Update to e64a97694ac9dc97f65e1a8e91a5c9789109fd2c
Eric Engestrom [Mon, 30 Oct 2023 15:46:58 +0000 (15:46 +0000)]
.pick_status.json: Update to e64a97694ac9dc97f65e1a8e91a5c9789109fd2c

9 months agoVERSION: bump for rc1
Eric Engestrom [Wed, 25 Oct 2023 20:29:33 +0000 (21:29 +0100)]
VERSION: bump for rc1

9 months agoanv: fix uninitialized use of compute initialization batch
Lionel Landwerlin [Wed, 25 Oct 2023 17:09:13 +0000 (20:09 +0300)]
anv: fix uninitialized use of compute initialization batch

We sometimes fail initialization.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 09d12e6727 ("anv: Add support for I915_ENGINE_CLASS_COMPUTE in init_device_state()")
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25891>

9 months agov3dv: fix confusing nomenclature about DRM nodes
Iago Toral Quiroga [Mon, 16 Oct 2023 08:52:01 +0000 (10:52 +0200)]
v3dv: fix confusing nomenclature about DRM nodes

We have been using drm_render_device to refer to the render device and
drm_primary_device to refer to the display device, but that is confusing
because the render device also has a primary node (for legacy reasons),
so don't use primary to refer to the display device.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Acked-by: Erico Nunes <nunes.erico@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25748>

9 months agoci: skip implicit modifier piglits for zink
Mike Blumenkrantz [Wed, 25 Oct 2023 12:40:58 +0000 (08:40 -0400)]
ci: skip implicit modifier piglits for zink

these may work coincidentally but not uniformly

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

9 months agozink: delete some dead modifier handling
Mike Blumenkrantz [Tue, 19 Sep 2023 14:42:35 +0000 (10:42 -0400)]
zink: delete some dead modifier handling

this is no longer hit

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

9 months agozink: blow up broken xservers more reliably
Mike Blumenkrantz [Tue, 19 Sep 2023 17:00:03 +0000 (13:00 -0400)]
zink: blow up broken xservers more reliably

only certain drivers can successfully run an xserver with implicit modifier
handling, and the rest will have broken rendering

until such time that a vk extension emerges to handle this more widely,
break this interop for drivers where it's already broken

fixes #9819

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

9 months agozink: use weston for anv ci
Mike Blumenkrantz [Mon, 23 Oct 2023 13:41:43 +0000 (09:41 -0400)]
zink: use weston for anv ci

gotta get those juicy modifiers

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

9 months agoutil: skip zero-sized SHA1Update
Rhys Perry [Wed, 27 Sep 2023 14:55:25 +0000 (15:55 +0100)]
util: skip zero-sized SHA1Update

Fixes UBSan error:
src/util/sha1/sha1.c:140:8: runtime error: null pointer passed as argument 2, which is declared to never be null

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25853>

9 months agonir/lower_shader_calls: skip zero-sized qsort
Rhys Perry [Wed, 27 Sep 2023 13:23:09 +0000 (14:23 +0100)]
nir/lower_shader_calls: skip zero-sized qsort

Fixes UBSan:
src/compiler/nir/nir_lower_shader_calls.c:1681:7: runtime error: null pointer passed as argument 1, which is declared to never be null

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25853>

9 months agonir/serialize: fix signed integer overflow
Rhys Perry [Wed, 27 Sep 2023 13:01:21 +0000 (14:01 +0100)]
nir/serialize: fix signed integer overflow

Fixes UBSan error:
src/compiler/nir/nir_serialize.c:1277:70: runtime error: left shift of 524287 by 13 places cannot be represented in type 'int'

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25853>

9 months agonir/trivialize_registers: Handle obscure load hazard
Alyssa Rosenzweig [Tue, 24 Oct 2023 10:54:17 +0000 (06:54 -0400)]
nir/trivialize_registers: Handle obscure load hazard

Somebody less tired than me would add a unit test for this. Offending snippet:

        32    %58 = @load_reg (%55) (base=0, legacy_fabs=0, legacy_fneg=0)
        32    %57 = @load_reg (%55) (base=0, legacy_fabs=0, legacy_fneg=0)
        32    %21 = iadd %57, %15 (0x1)
                    @store_reg (%21, %55) (base=0, wrmask=x, legacy_fsat=0)
        32    %56 = @load_reg (%55) (base=0, legacy_fabs=0, legacy_fneg=0)
        32    %22 = i2f32 %56
        32    %23 = load_const (0x41000000 = 8.000000)
        32    %24 = fdiv %22, %23 (8.000000)
        32    %90 = mov %24
                    @store_reg_indirect (%90, %78, %58) (base=0, wrmask=x, legacy_fsat=0)

Closes: #10031
Fixes: d313eba94ef ("nir: Add pass for trivializing register access")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reported-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25865>

9 months agodocs/features: remove empty lines confusing mesamatrix
Karol Herbst [Wed, 25 Oct 2023 13:16:14 +0000 (15:16 +0200)]
docs/features: remove empty lines confusing mesamatrix

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25886>

9 months agoradv: report the last GPUVM fault when a device lost is detected
Samuel Pitoiset [Tue, 10 Oct 2023 08:44:00 +0000 (10:44 +0200)]
radv: report the last GPUVM fault when a device lost is detected

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23238>

9 months agoradv: query and report the last GPUVM fault with RADV_DEBUG=hang
Samuel Pitoiset [Tue, 10 Oct 2023 08:43:38 +0000 (10:43 +0200)]
radv: query and report the last GPUVM fault with RADV_DEBUG=hang

Tested with a small use-after-free Vulkan test. It's pretty basic
for now but I think I will add status decoding support to report
more useful information.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23238>

9 months agoradv/amdgpu: add support quering the last GPUVM fault
Samuel Pitoiset [Tue, 10 Oct 2023 08:43:21 +0000 (10:43 +0200)]
radv/amdgpu: add support quering the last GPUVM fault

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23238>

9 months agoamd: add has_gpuvm_fault_query
Samuel Pitoiset [Thu, 25 May 2023 13:04:56 +0000 (15:04 +0200)]
amd: add has_gpuvm_fault_query

Whether the kernel allows to query the last GPUVM fault.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23238>

9 months agoamd: update amdgpu_drm.h
Samuel Pitoiset [Tue, 10 Oct 2023 08:37:16 +0000 (10:37 +0200)]
amd: update amdgpu_drm.h

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23238>

9 months agoradv: remove outdated RADV_DEBUG=vmfaults support
Samuel Pitoiset [Tue, 24 Oct 2023 07:29:41 +0000 (09:29 +0200)]
radv: remove outdated RADV_DEBUG=vmfaults support

It's been a very long time since this was useless because dmesg
required sudo access for a while.

This will be replaced by the new GPUVM fault interface which allows
to query from the kernel directly instead of trying to parse dmesg.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23238>

9 months agozink: Fix SyntaxWarning in zink_extensions script
Seppo Yli-Olli [Wed, 25 Oct 2023 11:55:47 +0000 (11:55 +0000)]
zink: Fix SyntaxWarning in zink_extensions script

Fix regex pattern in zink_extensions to use proper escaping. While the original
code works, it relies on Python ignoring incorrect syntax and fallbacking to
passing through the escape. Current behaviour results in SyntaxWarning
whenever the code is used.

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

9 months agopanfrost: Add env variable for max AFBC packing ratio
Louis-Francis Ratté-Boulianne [Thu, 21 Sep 2023 15:19:23 +0000 (11:19 -0400)]
panfrost: Add env variable for max AFBC packing ratio

Add `PAN_MAX_AFBC_PACKING_RATIO` variable. If the ratio (size of the
packed resource) / (size of the sparse resource) * 100 is above that
value, we don't care about packing it.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Add some debug utility methods for resources
Louis-Francis Ratté-Boulianne [Fri, 1 Sep 2023 17:34:28 +0000 (13:34 -0400)]
panfrost: Add some debug utility methods for resources

Add a method to dump a specific superblock given its index (header
and few first bytes from the body) and a method to dump a resource
to a ppm file.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Add debug flag to force packing of AFBC textures on upload
Louis-Francis Ratté-Boulianne [Fri, 1 Sep 2023 17:31:19 +0000 (13:31 -0400)]
panfrost: Add debug flag to force packing of AFBC textures on upload

Add `forcepack` flag that will force conversion to AFBC-packed right
after a texture is uploaded when possible. We only pack 2D resources
larger than 32x32 as of now.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Don't force constant modifier after converting
Louis-Francis Ratté-Boulianne [Fri, 1 Sep 2023 15:26:02 +0000 (11:26 -0400)]
panfrost: Don't force constant modifier after converting

After converting a texture from one modifier to another, there is
no reason to force the modifier to stay constant afterwards. Set
back `modifier_constant` to false because it is changed by
`resource_setup` as it is causing issues when implementing AFBC
packing.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Legalize resource when attaching to a batch
Louis-Francis Ratté-Boulianne [Fri, 1 Sep 2023 15:22:05 +0000 (11:22 -0400)]
panfrost: Legalize resource when attaching to a batch

Make sure we don't convert the texture for nothing by only
legalizing when creating a batch instead of on surface creation.
Also, to avoid recursive blit, we need to legalize the destination
resource before blitting.

Finally, make sure the resource has a sparse memory layout if
AFBC compressed. The GPU doesn't support rendering to a AFBC-packed
texture.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Add support for AFBC packing
Louis-Francis Ratté-Boulianne [Fri, 1 Sep 2023 03:33:45 +0000 (23:33 -0400)]
panfrost: Add support for AFBC packing

When the GPU is converting a texture from linear/tiled to compressed
AFBC, it uses a sparse memory layout. That means that the
superblocks are stored starting at intervals equal to the size of an
uncompressed superblock. When memory usage needs to be optimized, it
is possible to pack the resource by trimming each superblock as much
as possible. The GPU will still be able to read from these packed
textures, but won't be able to write directly to them. If the
layout is AFBC-tiled, the packing process will also de-tile as
tiled+packed is not supported by Mali GPUs.

No new modifier flag has been added as the absence of the
`AFBC_FORMAT_MOD_SPARSE` flag means the resource will be packed.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Add method to get size of AFBC superblocks valid data
Louis-Francis Ratté-Boulianne [Mon, 11 Sep 2023 06:52:16 +0000 (02:52 -0400)]
panfrost: Add method to get size of AFBC superblocks valid data

The compute shader is going through all the AFBC header blocks and
calculating the size of valid data by summing up the subblock
sizes (and taking into account solid color, uncompressed mode and
copy blocks). The result is written into the given buffer (array
of `pan_afbc_block_info`).

The size is rounded up to the alignment parameter directly in the
shader.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Add infrastructure for internal AFBC compute shaders
Louis-Francis Ratté-Boulianne [Sat, 7 Oct 2023 01:19:45 +0000 (21:19 -0400)]
panfrost: Add infrastructure for internal AFBC compute shaders

A few compute shaders are needed to support AFBC-packing. Here is
just the boilerplate to create, compile and retrieve the shaders.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Split out internal of `panfrost_launch_grid`
Louis-Francis Ratté-Boulianne [Sat, 7 Oct 2023 01:19:10 +0000 (21:19 -0400)]
panfrost: Split out internal of `panfrost_launch_grid`

For an upcoming feature (AFBC packing), we're gonna run internal
compute shaders on resources. This commit just split the internal
of `panfrost_launch_grid` so we can run the shader on a given
batch.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Make panfrost_resource_create_with_modifier public
Louis-Francis Ratté-Boulianne [Thu, 31 Aug 2023 16:18:46 +0000 (12:18 -0400)]
panfrost: Make panfrost_resource_create_with_modifier public

It allows creating a resource when we already know which modifier
we're gonna use.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Add panfrost_batch_write_bo
Louis-Francis Ratté-Boulianne [Thu, 31 Aug 2023 15:47:48 +0000 (11:47 -0400)]
panfrost: Add panfrost_batch_write_bo

Needed when writing to a BO from a compute shader when the BO isn't
assigned to a resource yet.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Precalculate stride and nr of blocks for AFBC layouts
Louis-Francis Ratté-Boulianne [Thu, 31 Aug 2023 15:33:39 +0000 (11:33 -0400)]
panfrost: Precalculate stride and nr of blocks for AFBC layouts

For AFBC packing, we will need to have the stride of the resource
in terms of superblocks and the total number of blocks. It is
easier to pre-calculate once when initializing the resource layout.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Add method to get size of AFBC subblocks
Louis-Francis Ratté-Boulianne [Thu, 31 Aug 2023 15:31:42 +0000 (11:31 -0400)]
panfrost: Add method to get size of AFBC subblocks

Each AFBC superblock is subdivised into subblocks that are
compressed individually. For all formats that we currently support,
the subblocks are 4x4 pixels.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Add methods to determine slice and body alignment
Louis-Francis Ratté-Boulianne [Thu, 31 Aug 2023 15:19:45 +0000 (11:19 -0400)]
panfrost: Add methods to determine slice and body alignment

Those methods are needed to have the same alignment everywhere
without hard-coding the values

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agopanfrost: Fix error in comment
Louis-Francis Ratté-Boulianne [Thu, 31 Aug 2023 15:17:45 +0000 (11:17 -0400)]
panfrost: Fix error in comment

"linear" -> "tiled"

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25012>

9 months agoegl: fix leaking drmDevicePtr in _eglFindDevice
Tapani Pälli [Mon, 23 Oct 2023 05:01:31 +0000 (08:01 +0300)]
egl: fix leaking drmDevicePtr in _eglFindDevice

Fixes: 3a9e1014e13 ("egl: Rename _eglAddDevice() to _eglFindDevice()")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25524>

9 months agoanv: fixup 32bit build of internal shaders
Lionel Landwerlin [Tue, 24 Oct 2023 20:06:01 +0000 (23:06 +0300)]
anv: fixup 32bit build of internal shaders

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 11b4c23d19 ("anv: add ring buffer mode to generated draw optimization")
Fixes: db335d9b73 ("anv: factor out host/gpu internal shaders interfaces")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10037
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25870>

9 months agoetnaviv: Don't leak disk_cache
Christian Gmeiner [Wed, 25 Oct 2023 08:10:41 +0000 (10:10 +0200)]
etnaviv: Don't leak disk_cache

Fixes: 77af1ca690f ("etnaviv: add disk cache")
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Tomeu Vizoso <tomeu@tomeuvizoso.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25877>

9 months agoci: Bump PyYAML to 6.0.1
Christian Gmeiner [Wed, 25 Oct 2023 08:35:47 +0000 (10:35 +0200)]
ci: Bump PyYAML to 6.0.1

Fixes an issue I am seeing on Fedora 39. For more details
about the upstream fix see https://github.com/yaml/pyyaml/pull/702

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25878>

9 months agointel/dev: expand existing fix for all gfx12 with small EU count
Tapani Pälli [Mon, 23 Oct 2023 11:47:58 +0000 (14:47 +0300)]
intel/dev: expand existing fix for all gfx12 with small EU count

Commit 7db1b94e07f added a fix for ADL-N but this issue has been
reproduced also on RPL-S and is likely common with all gfx12 variants
with a small EU count.

cc: mesa-stable

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25861>