Commit graph

63692 commits

Author SHA1 Message Date
Alyssa Rosenzweig
69e6606bf9 asahi: reduce transfer map flushing with staging blits
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
7c86e6c05c asahi: fix data valid tracking
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
386bd7fb97 asahi: set data_valid on first draw
otherwise we need to flush to read it safely which is ridiculous.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
b46e8fb4fe asahi: drop custom mipmap generate
mipmap gen is now significantly faster with the default :~)

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
2feea36b37 asahi: allow multiple compute dispatches in a batch
glmark2 terrain 50% faster. yes, really.

requires setting more barriers to fix flakes.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
10e528a495 asahi: fix get_batch with compute batches
we'll be able to switch between compute and gfx queues soon, handle that instead
of assert failing.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
b8f737937f asahi: add and use batch_is_compute helper
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
9063da53d8 asahi: add compute blitter
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
1c60ced65b asahi: fix image_mask with unbind num trailing
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
54ea408742 asahi: allow compressed image stores in blits
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
c54502ebe0 asahi: respect last_block
for blit shaders.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
c1636ba56c asahi: implement arrays as 2d for internal images
reduces blit shader variants.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
799f568dcc asahi: don't format convert with staging blits
this is supposed to be a copy

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
611fcfc5ca asahi: do not use compression blits for uncompressed levels
pointless, it's much faster to just twiddle on the cpu. use the helpers to
detect compression per-level the right way.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
2728995f12 asahi: fix eMRT + background load interaction
for when some render targets are spilled only. prevents regression in
KHR-GLES31.core.draw_buffers_indexed.color_masks

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963>
2024-01-10 08:44:37 -04:00
Pavel Ondračka
0610891c7c r300/ci: add piglit job
Runs the gpu tests, runtime is around 25 minutes. Contrary to dEQP which
is quite stable with the disabled HiZ, piglit flakes a lot more, but
the flakes seems mostly limited to tex-miplevel-selection.

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26931>
2024-01-10 12:28:12 +01:00
Pavel Ondračka
67ad1142cf r300/ci: switch to b2c v0.9.11
New version shoudl provide more info about downloads and hopefully
help in debugging some random timeouts.

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26966>
2024-01-10 09:50:08 +00:00
Pavel Ondračka
fc89790254 r300/ci: add missing kernel url quotes
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26966>
2024-01-10 09:50:08 +00:00
Marek Olšák
68418db212 winsys/amdgpu: remove amdgpu_bo_sparse::gpu_address, use amdgpu_va_get_start_addr
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26914>
2024-01-10 08:41:42 +00:00
Marek Olšák
d05e029ff0 winsys/amdgpu: remove amdgpu_bo_real::gpu_address, use amdgpu_va_get_start_addr
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26914>
2024-01-10 08:41:42 +00:00
Tapani Pälli
afc7203539 iris: use workaround framework for Wa_22018402687
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/26925>
2024-01-10 08:26:41 +00:00
Teng, Jin Chung
db5ddf1c2e d3d12: Decode - Adding more supported resolution
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26944>
2024-01-09 17:03:44 +00:00
Mike Blumenkrantz
ec656e1984 lavapipe: maint6
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26881>
2024-01-09 15:24:12 +00:00
Mike Blumenkrantz
89a7ee7393 lavapipe: maint6 descriptor stuff
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26881>
2024-01-09 15:24:12 +00:00
Italo Nicola
a60c52e5f8 panfrost: expose support for EXT_copy_image
This was held back by the issue fixed in the previous patch. Let's
enable it again!

There's a bunch of failures due to a bug in Piglit, where undefined
behavior gets invoked. Let's just mark them as expected failures for now
and move on.

Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24942>
2024-01-09 09:21:29 +00:00
Italo Nicola
17a62ff993 panfrost: legalize afbc before blitting
If we legalize AFBC late, we end up in a situation while we might need
to do a blit while inside a previous blit operation, but u_blitter
state isn't saved recursively, and that leads to crashes.

This patch solves this issue by splitting panfrost_blit into two
functions and legalizing AFBC early.

Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24942>
2024-01-09 09:21:29 +00:00
Italo Nicola
c6a7d0ead2 panfrost: fix untracked dependency when converting resource modifier
Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24942>
2024-01-09 09:21:29 +00:00
Sergi Blanch Torne
5cee5578f7 Revert "ci: disable Collabora's LAVA lab for maintance"
This reverts commit 11b707de0e

Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26900>
2024-01-09 07:54:30 +01:00
Karol Herbst
6024bbed3c rusticl/llvm: do not include spirv-tools/linker.hpp
This was left by mistake as we do not cache the linked output.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10404
Fixes: 299f949775 ("rusticl/meson: generate bindings for LLVM")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26943>
2024-01-09 05:12:53 +00:00
Marek Olšák
f09384f4c3 gallium/u_threaded: keep it enabled even if the CPU count is 1
radeonsi without TC fails tests.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26584>
2024-01-08 22:56:41 +00:00
Marek Olšák
b448fb8b8f gallium/u_threaded: remove unused param from tc_bind_buffer/add_to_buffer_list
the tc parameter is unused

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26584>
2024-01-08 22:56:41 +00:00
Marek Olšák
6327302ec2 gallium/u_threaded: use a dummy end call to indicate the end of the batch
instead of using the last pointer. This is simpler.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26584>
2024-01-08 22:56:41 +00:00
Marek Olšák
a3a6f6855e mesa,u_threaded_context: add a fast path for glDrawElements calling TC directly
mesa/main/draw.c calls threaded_context to add a draw call, but the caller
fills it manually.

This way we don't have to fill pipe_draw_info in a local variable and later
copy it to tc_batch. tc_batch is filled from draw.c directly.

It also eliminates a few conditional jumps thanks to assumptions we can make
in DrawElements but not tc_draw_vbo.

This decreases the overhead of the GL frontend thread by 1.1%, which has
CPU usage of 26%, so it decreases the overhead for that thread by 4.2%.
(1.1 / 26)

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26584>
2024-01-08 22:56:41 +00:00
Marek Olšák
e04055b90e gallium/u_threaded_context: use function table to jump to different draw impls
Instead of a series of if-else statements, use a function table containing
all the draw variants, which is indexed by:
    [is_indirect * 8 + index_size_and_has_user_indices * 4 +
     is_multi_draw * 2 + non_zero_draw_id]

This decreases the overhead of tc_draw_vbo by 0.7% (from 4% to 3.3%)
for the GL frontend thread in VP2020/Catia1, which has CPU usage of 26%,
so it decreases the overhead for that thread by 2.7%. (0.7 / 26)

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26584>
2024-01-08 22:56:41 +00:00
Mike Blumenkrantz
03f049f497 zink: always force flushes when originating from api frontend
flags=0 is used for e.g., glFenceSync, which apps use to insert sync points
to determine when all prior work has completed. eliding these flushes into no-ops
is fine for all scenarios except when the last op was a present, in which
case the no-op (previous) fence will not sync as expected for the present and
graphical artifacts will result

in the future, this may be changed back to the previous behavior if/when presentation
gains timeline semaphore capabilities by providing the last timeline id
as a fence instead of the last batch

fixes #10386

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26935>
2024-01-08 22:37:10 +00:00
Sil Vilerino
311d653df9 d3d12: Fix AV1 Encode - log2 rounding for tile_info section
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26853>
2024-01-08 19:47:52 +00:00
Corentin Noël
0541a57517 virgl: Assert build_id_note before dereferencing it
Fix defect reported by Coverity Scan.

Dereference null return value

If the function actually returns a null value, a null pointer dereference will occur.

CID: 1492763

Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26924>
2024-01-08 17:44:42 +00:00
Leo Liu
9eac06521a gallium/vl: match YUYV/UYVY swizzle with change of color channels
Update the sampler views with the color channels, that fixes the issue
caused by: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20815

It fixes the case:
`gst-launch-1.0 -v -v filesrc location=file.jpg ! jpegparse ! vaapijpegdec ! imagefreeze ! vaapisink`

Fixes: dc2119bf3f ("util/format: Fix wrong colors when importing YUYV and UYVY")
Cc: mesa-stable

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Sathishkumar S <sathishkumar.sundararaju@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26911>
2024-01-08 17:05:57 +00:00
Pavel Ondračka
8b5cdc5fa5 ci: add r300 RV530 dEQP gles2 CI job
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26823>
2024-01-08 16:19:20 +00:00
Pavel Ondračka
000a8cbb65 r300: fix memory leaks in compiler tests
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26823>
2024-01-08 16:19:20 +00:00
Marek Olšák
a84729d368 radeonsi/ci: add gfx11 flakes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643>
2024-01-06 20:55:30 +00:00
Marek Olšák
205646cd77 winsys/amdgpu: simplify code using amdgpu_cs_context::chunk_ib
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643>
2024-01-06 20:55:30 +00:00
Marek Olšák
44df9517cd winsys/amdgpu: don't use amdgpu_fence::ctx for fence dependencies
The only remaining use of ctx is amdgpu_fence_is_syncobj.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643>
2024-01-06 20:55:30 +00:00
Marek Olšák
7ccdcae4b5 winsys/amdgpu: use pipe_reference for amdgpu_ctx refcounting
this is the standard utility for refcounting

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643>
2024-01-06 20:55:30 +00:00
Marek Olšák
33980355d4 winsys/amdgpu: implement explicit fence dependencies as sequence numbers
This eliminates redundant fence dependencies if BOs add the same ones.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643>
2024-01-06 20:55:30 +00:00
Marek Olšák
6d7a76595d winsys/amdgpu: remove dependency_flags parameter from cs_add_fence_dependency
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643>
2024-01-06 20:55:30 +00:00
Marek Olšák
6ac0b4ef05 winsys/amdgpu: rename amdgpu_bo_real::lock to map_lock
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643>
2024-01-06 20:55:30 +00:00
Marek Olšák
1e2c02d76b winsys/amdgpu: rename amdgpu_bo_sparse::lock -> commit_lock
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643>
2024-01-06 20:55:30 +00:00
Marek Olšák
e1261c77b5 winsys/amdgpu: rename amdgpu_winsys_bo::bo -> bo_handle
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643>
2024-01-06 20:55:30 +00:00
Marek Olšák
4d486888ee winsys/amdgpu: rewrite BO fence tracking by adding a new queue fence system
This decreases the time spent in amdgpu_cs_submit_ib from 15.4% to 8.3%
in VP2020/Catia1, which is a decrease of CPU load for that thread by 46%.
Overall, it increases performance by a small number in CPU-bound benchmarks.
The biggest improvement I have seen is VP2020/Catia2, where it increases
FPS by 12%.

It no longer stores pipe_fence_handle references inside amdgpu_winsys_bo.

The idea is to have a global fixed list of queues (only 1 queue per IP
for now) where each queue generates its own sequence numbers (generated
by the winsys, not the kernel). Each queue also has a ring of fences.
The sequence numbers are used as indices into the ring of fences, which
is how sequence numbers are converted to fences.

With that, each BO only has to keep a list of sequence numbers, 1 for each
queue. The maximum number of queues is set to 6. Since the system can
handle integer wraparounds of sequence numbers correctly, we only need
16-bit sequence numbers in BOs to have accurate busyness tracking. Thus,
each BO uses only 12 bytes to represent all its fences for all queues.
There is also a 1-byte bitmask saying which sequence numbers are
initialized.

amdgpu_winsys.h contains the complete description. It has several
limitations that exist to minimize the memory footprint and updating of
BO fences.

Acked-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643>
2024-01-06 20:55:30 +00:00