Commit graph

214060 commits

Author SHA1 Message Date
Yiwei Zhang
13e9bc2ff9 venus: allow timeline semaphore feedback to suspend and resume
Similar idea with fence feedback, but a bit tricky in the resume
condition. See comments for details.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38049>
2025-10-25 00:02:59 +00:00
Yiwei Zhang
ecb385f088 venus: rename async_wait_mtx to counter_mtx
The lock scope will be extended to support semaphore feedback suspend
and resume later. So give it a general name.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38049>
2025-10-25 00:02:59 +00:00
Yiwei Zhang
b187c1ab92 venus: update sfb cmd lookup to follow ffb
Now sfb cmd can be VK_NULL_HANDLE on incompatible queues. Avoid passing
that to set cmd, and explicitly assert below.

Test: dEQP-VK.synchronization2.basic.timeline_semaphore.multi_queue can
properly assert on the driver side when assert is enabled.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38049>
2025-10-25 00:02:59 +00:00
Yiwei Zhang
2c08e6d8bb venus: allow fence feedback to suspend and resume
Previously, we either have to filter out incompatible queue or disable
fence feedback. Now we track whether the queue can do feedback, and will
mark the fence feedback not pollable if the fence is submitted on an
incompatible queue.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38049>
2025-10-25 00:02:59 +00:00
Yiwei Zhang
30b41c2b57 venus: add vn_queue_family_can_feedback helper
No behavior change. This is to prepare for better feedback
compatibility support.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38049>
2025-10-25 00:02:59 +00:00
Marek Olšák
dd4df28ef2 radeonsi: mostly fix NGG streamout overflow queries when XFB is disabled
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
When XFB was disabled, we were incrementing primitives_generated but not
primitives_emitted, which caused the overflow query to return true, but
it should have returned false because XFB was disabled.

This disables counting primitives_generated when there is no
primitives_generated query. When both primitives_generated and the overflow
query are enabled simultaneously and XFB is disabled, it will be incorrect
again, but that had been equally incorrect with the non-NGG codepath too,
just not discovered because of the lack of tests.

This commit just changes NGG streamout queries to behave the same as legacy.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37849>
2025-10-24 22:58:17 +00:00
Marek Olšák
02db1fbe82 radeonsi: cosmetic changes for queries
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37849>
2025-10-24 22:58:17 +00:00
Marek Olšák
6651781731 radeonsi: allow queries to return more than UINT32_MAX
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37849>
2025-10-24 22:58:16 +00:00
Marek Olšák
956868b06a radeonsi: return false from si_update_ngg early on gfx11+
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37849>
2025-10-24 22:58:16 +00:00
Marek Olšák
d9408eec59 radeonsi: rename num_active_shader_queries -> streamout.num_ngg_queries
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37849>
2025-10-24 22:58:16 +00:00
Marek Olšák
cec9402542 radeonsi: rename si_get_strmout_en -> si_get_streamout_enable_state
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37849>
2025-10-24 22:58:16 +00:00
Mary Guillemard
fb4010e641 asahi: Update CI expectations
Signed-off-by: Mary Guillemard <mary@mary.zone>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38060>
2025-10-24 22:41:53 +00:00
Mary Guillemard
d37ba302d0 hk: Allocate the temp tile buffer in copy_image_to_image_cpu
We may require a bigger more than 16KiB to handle the image copy.
We now always allocate a buffer to handle it properly fixing the
remaining failures on VKCTS 1.4.4.0 for HIC.

Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38060>
2025-10-24 22:41:53 +00:00
Mary Guillemard
887f06a966 hk: Make width and height per block in HIC
We were assuming that every formats used for HIC had a block widgh and
height of 1x1.

This is wrong for compressed formats like BC5, ASTC, ect.

Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38060>
2025-10-24 22:41:53 +00:00
Konstantin Seurer
95a89f7b33 radv: Report smaller bvh sizes when possible
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37830>
2025-10-24 21:17:10 +00:00
Konstantin Seurer
7809af5e46 radv: Always use compact bvh encoding
The compact encoding will make it possible to allocate less space for
internal nodes

Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37830>
2025-10-24 21:17:10 +00:00
Alejandro Piñeiro
5d70bf3c98 mesa/st: add a warning if can't set SoftFP64
Without this warning, if a driver try to use the
nir_lower_fp64_full_software option, would get a crash without any
message pointing that the problem is that doesn't fulfill the
requirements of current mesa fp64 sw implementation.

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Marek Ol¨ák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38025>
2025-10-24 20:52:36 +00:00
Silvio Vilerino
53bcab0288 d3d12: Video Encode - Flush the pipe context async while submitting encode
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:58 +00:00
Silvio Vilerino
8be89cf426 d3d12: Video Encode - Remove redundant buffer barriers
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:58 +00:00
Silvio Vilerino
eea34f5950 d3d12: Video Encode - Remove unnecessary resource waits and syncs since we sync batch fence
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:58 +00:00
Silvio Vilerino
8fdaac83a9 d3d12: Remove redundant d3d12_promote_to_permanent_residency overload
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:57 +00:00
Silvio Vilerino
7e1982a7eb d3d12: Use EnqueueMakeResident with GPU Wait for video permanent residency promotions
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:56 +00:00
Silvio Vilerino
ca3ba3f924 mediafoundation: Remove unused AllocatePipeResourceFromAllocator
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:56 +00:00
Silvio Vilerino
e873beb33c mediafoundation: Cleanup MaxL1References variables
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:56 +00:00
Silvio Vilerino
4b75fcac47 mediafoundation: Optimize STL usage in reference_frames_tracker_hevc.cpp
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:56 +00:00
Silvio Vilerino
2b34f30e00 mediafoundation: encode.cpp: Remove redundant lock() and memset()
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:55 +00:00
Silvio Vilerino
9b97a2ef93 mediafoundation: Fix width/height typo in alignment calculation
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:55 +00:00
Silvio Vilerino
a1f602e17f d3d12: Fix d3d12_promote_to_permanent_residency always making resident
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:55 +00:00
Silvio Vilerino
31c9874891 d3d12: d3d12_video_encoder_references_manager_hevc remove double resize() and add reserve() to cached vectors
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:54 +00:00
Silvio Vilerino
ed53936308 d3d12_video_encoder_nalu_writer_h264: Reuse per frame scratch allocations
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:54 +00:00
Silvio Vilerino
900cdf3a7c d3d12_video_encoder_nalu_writer_hevc: Reuse per frame scratch allocations
Reviewed-by: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:54 +00:00
Pohsiang (John) Hsu
80da774734 mediafoundation: fix sporadic build failure with u_inlines.h not found on test target
Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38057>
2025-10-24 19:45:54 +00:00
Sagar Ghuge
006085e676 anv: Call brw_nir_lower_rt_intrinsics_pre_trace lowering pass
Call this pass before nir_lower_shader_calls().

Fixes: d39e443e ("anv: add infrastructure for common vk_pipeline")
Cc: mesa-stable
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38041>
2025-10-24 19:07:58 +00:00
Alyssa Rosenzweig
b824ef83ab util/dynarray: infer type in append
Most of the time, we can infer the type to append in
util_dynarray_append using __typeof__, which is standardized in C23 and
support in Jesse's MSMSVCV. This patch drops the type argument most of
the time, making util_dynarray a little more ergonomic to use.

This is done in four steps.

First, rename util_dynarray_append -> util_dynarray_append_typed

    bash -c "find . -type f -exec sed -i -e 's/util_dynarray_append(/util_dynarray_append_typed(/g' \{} \;"

Then, add a new append that infers the type. This is much more ergonomic
for what you want most of the time.

Next, use type-inferred append as much as possible, via Coccinelle
patch (plus manual fixup):

    @@
    expression dynarray, element;
    type type;
    @@

    -util_dynarray_append_typed(dynarray, type, element);
    +util_dynarray_append(dynarray, element);

Finally, hand fixup cases that Coccinelle missed or incorrectly
translated, of which there were several because we can't used the
untyped append with a literal (since the sizeof won't do what you want).

All four steps are squashed to produce a single patch changing every
util_dynarray_append call site in tree to either drop a type parameter
(if possible) or insert a _typed suffix (if we can't infer). As such,
the final patch is best reviewed by hand even though it was
tool-assisted.

No Long Linguine Meals were involved in the making of this patch.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38038>
2025-10-24 18:32:07 +00:00
Alyssa Rosenzweig
07f98f330a util: require typeof support
It is in C23 and Jesse reports that his MSMSVCV has it.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Acked-by: Jesse Natalie <jenatali@microsoft.com> [over IRC]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38038>
2025-10-24 18:32:07 +00:00
Caio Oliveira
a8449171d3 iris: Enable GL_KHR_shader_subgroup_* extensions for Gfx >= 9 when possible
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
For platforms that don't have native float64 support, skip the
arithmetic and clustered ops.  While they would work, the lowering
for float64 for those increase significantly the shader for some
of those operations.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35844>
2025-10-24 16:41:29 +00:00
Caio Oliveira
4f628c9e8c brw: Consolidate late lowering of int64 operations
Instead of doing selectively and with different supporting passes, just
run the complete set (special algebraic before and cleanup optimizations
after) at the end of brw_postprocess_nir_opts().

No changes to fossil-db on ICL, TGL, ACM and BMG.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35844>
2025-10-24 16:41:29 +00:00
Samuel Pitoiset
4c2207e76b spirv: Update the JSON and headers
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38042>
2025-10-24 16:00:55 +00:00
Samuel Pitoiset
a5ee985d52 vulkan: exclude non-existant Shader64BitIndexingEXT SPIR-V capability
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38042>
2025-10-24 16:00:55 +00:00
Samuel Pitoiset
61c71733c8 vulkan: update spec to 1.4.330
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38042>
2025-10-24 16:00:55 +00:00
Faith Ekstrand
13199c37c1 zink: Disable building the zink_check_requirements tool for now
The vulkan header update is going to break it.  We'll re-enable as soon
as LunarG does a header update in Vulkan-profiles.  Until then, I've
filed a tracker issue:

https://gitlab.freedesktop.org/mesa/mesa/-/issues/14176

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38042>
2025-10-24 16:00:55 +00:00
Mary Guillemard
64131475a8 hk: Remove unused allocation in queue_submit
Unused and leaking memory, found with address sanitizer.

Fixes: c64a2bbff5 ("asahi: port to stable uAPI")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38054>
2025-10-24 15:44:03 +00:00
Mary Guillemard
7e636d52f1 hk: Disable 1x in sampleLocationsSampleCounts
We don't support it, everyone dropped support for that, let's not expose it.

Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38054>
2025-10-24 15:44:03 +00:00
Mary Guillemard
8447b99f61 hk: Fix maxVariableDescriptorCount with inline uniform block
Same problem as NVK on VKCTS 1.4.4.0

Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38054>
2025-10-24 15:44:03 +00:00
Dylan Baker
a5b9f428f9 intel/compiler/brw: Add assert that we don't have a negative value
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Coverity notices that `nir_get_io_index_src_number` could return -1, and
that we use it to index an array. It cannot understand that -1 only
happens for unhandled enum values, but all of these are handled. Add an
assert to help it out.

CID: 1667234
Fixes: 37a9c5411f ("brw: serialize messages on Gfx12.x if required")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38007>
2025-10-24 15:13:10 +00:00
Dylan Baker
83c52f75d0 intel/compiler/brw: fix potential unsigned overflow
Coverity notices that if `util_last_bit()` returns 0, and we subtract 1,
then the unsigned will overflow before being converted. We could cast to
eliminate that error, but the entire optimization function would do
nothing if tex->required_params == 0 (the way that we would get here),
so let's just not do work if we know we don't need to *and* avoid this
overflow.

CID: 1667241
Fixes: efcba73b49 ("brw: switch to new sampler payload description scheme")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38009>
2025-10-24 07:52:09 -07:00
Faith Ekstrand
fd55e874ed panvk: Enable the disk cache
Assuming disk I/O isn't painfully slow compared to running the whole
compiler (OS file system caching should help), this should massively
reduce the number of shaders compiled.

Acked-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38019>
2025-10-24 13:52:57 +00:00
Faith Ekstrand
9912c9a842 panvk: Use the build SHA for the pipeline/binary cache UUIDs
This way we get the same cache UUIDs for identical sources and build
environments, even if they're built at different times.

Acked-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38019>
2025-10-24 13:52:57 +00:00
Faith Ekstrand
4f8327188b panvk: Add an in-memory shader cache
This one just hangs out and prevents unnecessary duplicate compilation.
We set .weak_ref = true so it doesn't actually hold references forever.
It just hangs onto any shaders that exist in some VkPipeline or VkShader
somewhere.  But if an app compiles a pipeline it already has, it will
let us avoid a duplicate compile, even if the app doesn't provide a
pipeline cache.

Acked-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38019>
2025-10-24 13:52:55 +00:00
Faith Ekstrand
64ad337036 panvk/shader: Use the right copy size for deserializing dynamic UBOs/SSBOs
Fixes: 563823c9ca ("panvk: Implement vk_shader")
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38019>
2025-10-24 13:52:55 +00:00