Caterina Shablia
2cac1389e5
panvk: enable shaderInt8, VK_KHR_8bit_storage and VK_KHR_shader_float16_int8
...
We already could handle int8 load/stores and arithmetic.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32361 >
2024-12-02 20:58:23 +00:00
Caterina Shablia
d9ce6b266f
panvk: implement vkGetDeviceImageMemoryRequirements
...
Vulkan runtime doesn't layer vkGetImageMemoryRequirements2
on top of vkGetDeviceImageMemoryRequirements, as that would
require initializing a full image, which is expensive on
certain drivers such as NVK, so it's up to us to implement
both functions.
In our implementation of vkGetDeviceImageMemoryRequirements,
we initialize a slimmed down image and then forward everything
to vkGetImageMemoryRequirements2.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32361 >
2024-12-02 20:58:23 +00:00
Caterina Shablia
110f5edf7a
panvk: add panvk_image_init helper
...
This factors out the initialization of panvk_image, so we can reuse the
logic for computing requirements without crating an actual VkImage
object first.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32361 >
2024-12-02 20:58:23 +00:00
Constantine Shablia
dbdaefb6ed
panvk: never require dedicated allocation for images
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32361 >
2024-12-02 20:58:23 +00:00
Constantine Shablia
ed64fa034b
panvk: never prefer or require dedicated allocation for buffers
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32361 >
2024-12-02 20:58:23 +00:00
Constantine Shablia
ef120460e7
panvk: replace vkGetBufferMemoryRequirements2 with vkGetDeviceBufferMemoryRequirements
...
Mesa's Vulkan runtime will implement the former in terms of the
latter for us.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32361 >
2024-12-02 20:58:22 +00:00
Rebecca Mckeever
07b8ce4351
panvk: Support D32_S8 as a multiplanar format
...
This format was already supported on Bifrost as a single
plane format. Valhall doesn't support this interleaved D32_S8,
so we add support for multiplanar D32_S8 and move Bifrost to
this layout too, as it's more memory efficient than the
interleaved layout.
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32275 >
2024-12-02 20:18:43 +00:00
Boris Brezillon
cc2cb69e2e
pan/texture: Pass pan_image_section_info around
...
Pass pan_image_section_info around instead of passing each field
of the struct separately.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32275 >
2024-12-02 20:18:43 +00:00
Boris Brezillon
0dfb28cebc
pan/texture: Stop passing a layout to panfrost_emit_plane()
...
The layout can be extracted from the iview and plane_index arguments.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32275 >
2024-12-02 20:18:43 +00:00
Boris Brezillon
d731abb17a
pan/texture: s/index/plane_index/ in panfrost_emit_plane()
...
Index is vague as it could refer to the array index too. Let's clarify
the situation by renaming the argument plane_index.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32275 >
2024-12-02 20:18:43 +00:00
Boris Brezillon
3cf2658a9a
pan/texture: Stop passing the view format around
...
The format is never adjusted, and can thus be extracted from the view.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32275 >
2024-12-02 20:18:43 +00:00
Boris Brezillon
726dec5abd
pan/texture: Move the plane info retrieval logic to a helper function
...
This allows us to properly split the multiplanar and single plane cases
in panfrost_emit_surface(), which makes the code easier to follow.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32275 >
2024-12-02 20:18:43 +00:00
Rebecca Mckeever
a8ed53881e
pan/desc: Add a pan_image_view_get_s_plane() helper and use it
...
The depth and stencil planes might be different. Let's add a specific
helper to retrieve the stencil plane. We keep using
pan_image_view_get_zs_plane() for the depth plane, because it's
guaranteed to always be on the first plane.
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32275 >
2024-12-02 20:18:43 +00:00
Rebecca Mckeever
c9b4030f33
pan/desc: Pass an image to pan_force_clean_write_rt()
...
Pass an image to pan_force_clean_write_rt() so we can easily
support the multiplanar depth-stencil case, and rename the
function pan_force_clean_write_on() to avoid the confusion.
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32275 >
2024-12-02 20:18:43 +00:00
Rebecca Mckeever
878a7d6de0
pan/texture: Accept holes in the pan_image_view::planes array
...
We are about to add multiplanar depth/stencil support. A stencil
only view of a multiplanar d32_s8 format will have NULL depth plane
(plane0), so we need to prepare the texture logic to deal with that.
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32275 >
2024-12-02 20:18:43 +00:00
Rebecca Mckeever
5df95a97f1
pan/texture: s/pan_image_view_get_rt_image/pan_image_view_get_color_plane/
...
Pick a name that's consistent with pan_image_view_get_plane().
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32275 >
2024-12-02 20:18:43 +00:00
Rebecca Mckeever
c0140148f1
pan/texture: s/pan_image_view_get_zs_image/pan_image_view_get_zs_plane/
...
Pick a name that's consistent with pan_image_view_get_plane().
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32275 >
2024-12-02 20:18:43 +00:00
Eric R. Smith
a0dd108b8a
panfrost: convert resources before binding them to images
...
pan_resource_modifier_convert can use a blit to convert images
from AFBC. If we call this from panfrost_set_shader_images then
we end up crashing due to using an inconsistent set of images.
Fix this by doing the AFBC/AFRC conversion before the image
bindings.
This fixes a crash in piglit oes_egl_image_external_essl3 tests.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30243 >
2024-12-02 19:49:58 +00:00
Eric R. Smith
fc3cfaa4aa
panfrost: add a perf warning when resources need to be converted
...
This is a minor debugging aid.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30243 >
2024-12-02 19:49:58 +00:00
Alyssa Rosenzweig
56acdca86d
hk: claim 1.4
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:47 +00:00
Alyssa Rosenzweig
3f5086016b
hk: implement timestamps
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:47 +00:00
Alyssa Rosenzweig
55cd987de2
asahi: fix agxdecode memory mapping
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:47 +00:00
Asahi Lina
fbb38a30a6
asahi: Add timestamp buffer ops
...
TODO: virt support (needs virglrenderer changes & virt ABI break)
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Asahi Lina
6697fb26ed
asahi: UAPI update to add support for user timestamp buffers
...
Signed-off-by: Asahi Lina <lina@asahilina.net >
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
751bd986fb
asahi: add =bodump debug help
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
8caddd2ca1
asahi: fix agx_batch_add_bo
...
when we have exactly POT BOs. fixes crash in portal 2. oh lord.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
f34cd9e966
asahi: add more asserts around bo add
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
f98971e776
asahi,hk: mmap BO on first use
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
e7b3dcb9f7
asahi: label individual pools
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
09c8520293
asahi: fix u_blitter related leaks
...
see also 689f38b2b4 ("panfrost: fix refcnt imbalance related to blitter")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
d49f0786c8
asahi: fix page size alignment
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
59b0dd7c64
asahi: drop dead
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Asahi Lina
07e836b932
asahi: Fix agx_gpu_time_to_ns & implement DRM_ASAHI_GET_TIME
...
agx_gpu_time_to_ns() was broken since it was overflowing the u64
timestamp after just ~10 minutes. Fix that by automatically computing a
reduced conversion fraction, and add support for DRM_ASAHI_GET_TIME
where supported (replacing the CPU timer hack).
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Asahi Lina
925eca02c4
asahi: UAPI update to add GET_TIME & cleanup
...
Also fix editor config for this file & disable clang-format, to make
syncing with the kernel easier.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
d894941895
hk,asahi,libagx: unify a bit of code
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
b41b7e6bc8
asahi: don't leak rodata
...
needs a bigger refactor but that's not a right now problem.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
1ac82c8d24
asahi: drop dead pool stuff
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
fe92abf82b
agx: reduce preamble/main alignment
...
this was overkill.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
91ce434103
agx: disable bounds check optimization
...
fixes Fallout 4. needs more investigation when we have better debug tooling.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
2b3b0cd339
hk: clarify bounds check calculations
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
4d4f82b739
hk: implement hack for layered no attachments
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
4386150ab3
hk: fix z bias perf regression
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
57447cbb82
hk: fix incorrect index size translate
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
be8a24f3b2
asahi: crash on fault
...
now that we have soft fault we don't need this w/a to pass cts, and this will
help us with avoiding flakes in other places.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Alyssa Rosenzweig
ecd94113ca
libagx: increase wg size for query copy
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32434 >
2024-12-02 19:26:46 +00:00
Simon Ser
105fcb9cfd
dri: revert INVALID modifier special-casing
...
Commit 361f362258 ("dri: Unify createImage and createImageWithModifiers")
has introduced new behavior for drivers which don't support explicit
format modifiers. Before this commit, INVALID was not special-cased
and any call to dri_create_image() with one or more modifiers returned
NULL. After this commit, INVALID gained a special meaning: it indicates
that the implicit modifier is accepted by the caller. This is surprising
and is an API break.
This causes further API breaks: for instance, before this commit a BO
created via gbm_bo_create_with_modifiers() was guaranteed to always
return a non-INVALID modifier in gbm_bo_get_modifier().
This is inconsistent with gbm_dri_surface_create(): that function
treats INVALID as a bad entry in the modifier list, and fails if
it's the only acceptable modifier.
Additionally, drivers don't special-case INVALID and just ignore it
if they see it in a modifier list. This causes more inconsistencies.
For instance, let's say that a library user passes the modifier list
{ INVALID, FOO } to GBM. If a driver supports explicit modifiers and
doesn't support FOO for scanout, it'll return NULL. If a driver
doesn't support explicit modifiers, the current logic would return
a non-NULL BO with an INVALID modifier. This discrepency makes it
harder to reason about the system: half of the API ignores INVALID,
while the other half assumes INVALID indicates an implicit modifier.
To fix these issues, revert to the behavior before the commit, and
require use of the dedicated API without supplying any modifier for
implicit modifiers.
Signed-off-by: Simon Ser <contact@emersion.fr >
Fixes: 361f362258 ("dri: Unify createImage and createImageWithModifiers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32396 >
2024-12-02 18:42:59 +00:00
Connor Abbott
1b42bc76da
ir3: Fix reload_live_out() in shared RA
...
We never split live ranges, so we don't need to store the location of
each live value when recording live outs, but the physreg assigned to a
register will still be clobbered when we reload it so we have to record
the original physreg and then make sure to use it when reloading the
live out.
We probably never encountered a case where we needed to reload live outs
in a loop before, but after enabling clustered subgroup reductions
dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_{i,u}64vec4_requiredsubgroupsize
hits this case and fails in RA validation without this fix.
Fixes: fa22b0901a ("ir3/ra: Add specialized shared register RA/spilling")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32435 >
2024-12-02 18:06:18 +00:00
Faith Ekstrand
173171f73e
nvk: Advertise Vulkan 1.4
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32433 >
2024-12-02 17:22:49 +00:00
Faith Ekstrand
dbf4424d07
nvk: Add new Vulkan 1.4 features and properties
...
These are the features and properties that don't already exist in
extensions.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32433 >
2024-12-02 17:22:49 +00:00
Faith Ekstrand
f9e993dfaf
nvk: No-op implement VK_KHR_global_priority
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32433 >
2024-12-02 17:22:49 +00:00