When emitting the bin size, take into account per-view bin merging we
may have done that expands the size of the bin in GMEM by reusing the
right eye data for the left eye.
This fixes resolves getting clipped by the smaller bin size when using
the resolve engine. Before now we weren't using the resolve engine with
FDM, and for now we only do the merging when GMEM is enabled, so it
wasn't an issue.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39868>
With subsampled images we need access to the immutable samplers, even
though it's already been written when creating the descriptor set.
Previously we only kept a pointer to them in the template in the push
descriptor case where we needed to write them together with the image.
Refactor the descriptor template path to be more like the normal path
and always save the immutable samplers.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39868>
As of now we always emit resolves during the subpass when they happen,
so we can just use that subpass's viewMask. But that won't work for
subsampled images, where we need to insert metadata and aprons for any
view resolved to after the renderpass is finished. Collect all the
resolve views for use with subsampled images.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39868>
This doesn't actually emit any commands, it just dirties state to be
emitted later. In a resuming render pass, we can't rely on an earlier
suspending pass to actually have a draw call and emit the dirty state,
so we have to dirty these anyway. And it also sets fdm_enabled, which we
forgot to do with resuming render passes. Rename it to
tu_renderpass_begin() since it doesn't actually emit anything, and call
it for resuming render passes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39868>
With subsampled images, we will have to do a global pass over all of the
tiles in the framebuffer in order to determine the coordinates of the
subsampled image, we have to know the bin merging state, and we have to
remember what we chose so that we can emit the table of bin positions.
Create an array of tile configs for all tiles, and move all FDM-related
calculation to tu_calc_tile_config().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39868>
With most Vulkan engines doing multithreaded compiles, NIR_DEBUG=print has
been a frustrating racy mess. Take a lock when we're doing per-pass
printing, so that the output is coherent. This unfortunately
single-threads the compiler process itself in that case, but when you're
NIR_DEBUG=printing, that's probably not a big deal.
An assert is introduced to make sure that nobody nests NIR_PASS() in a way
that would break printing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40126>
These PCI IDs were added to the drm xe driver in the
be07d8f707e41cb694c4a56364978c30683a687d patch of the
drm-xe-next-2026-03-02 tag. (With require_force_probe set in the xe
driver.)
Ref: be07d8f707e4 ("drm/xe/nvlp: Add NVL-P platform definition")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40231>
Rework:
* Jordan: Update intel_dev_info.c::print_base_devinfo() to add new
stage_names
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40231>
MSAA cbufs are not expected to be shared, although the Zink-private
ZINK_BIND_DMABUF will leak from the main color buffer resource, and
enforce linear buffer on MSAA buffers (which is usually nonsense).
Change the list for bind flags to preserve for MSAS cbufs to be a
allowlist instead of a denylist to prevent dangling private flags.
Fixes MSAA color buffer allocation failure on Zink w/o Kopper.
Suggested-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40155>
Trivial promotion alias of VK_EXT_mutable_descriptor_type which is
already supported on v9+.
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40254>
When __DRI_IMAGE_ATTRIB_NUM_PLANES falls back to the resource-handle
path, it currently derives the count from the texture chain. That can
report 1 for multi-plane imported formats when planes share one BO/FD.
Prefer the imported fourcc mapping when available and return
util_format_get_num_planes(map->pipe_format). Keep the texture-chain
fallback for images without a fourcc mapping.
This makes eglExportDMABUFImageQueryMESA report the expected plane
count for formats such as NV12/P010/P012/P016/YUV420/YVU420.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40066>
Memory backing objects can be freed before the object is destroyed. We
don't want to access the anv_bo pointer to read the address back :
1. unsafe
2. the address can change after reuse
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: d6eb6c58c7 ("anv: Enable support for VK_EXT_device_address_binding_report")
Acked-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40255>
Having deleted_key be a reserved key probably wasn't useful, because it's
not a constant: it's (uintptr_t)&deleted_key_value.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40196>
I don't know if the old code would have never used UINT32_MAX as a key,
which is going to become invalid for _mesa_hash_table_create_u32_keys.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40196>
I think the old code could have used UINT32_MAX as a key, which is going
to become invalid for _mesa_hash_table_create_u32_keys.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40196>
Replace manual string parsing for V3DV_ENABLE_PIPELINE_CACHE
in instance creation with parse_debug_string and a dedicated
debug_control table.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40202>
Note: when the data source is first registered, no counters are enabled
yet so `driver->enabled_counters` actually cannot be used.
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40233>
This address is delivered on Gfx12.5+ in compute/mesh/task shaders
from the command stream instruction.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40174>
Will be useful to retain the base offset added in 0e9453291c ("brw:
improve push constant loading using base offsets") once we move push
constant data loading into NIR.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40174>