Commit Graph

191407 Commits

Author SHA1 Message Date
Hyunjun Ko 314de7af06 anv: Initial support for VP9 decoding
Helped from: Stéphane Cerveau <scerveau@igalia.com>
- Fix crash when segmentation is unavailable
- Set 8x8 to minCodedExtent
- Fix typo for GOLDEN and ALTREF scale factor

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35485>
2025-06-13 04:51:51 +00:00
Hyunjun Ko 0689e3d873 anv: add default vp9 tables from FFMpeg and intel-vaapi-driver
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35485>
2025-06-13 04:51:51 +00:00
Hyunjun Ko 213ca2ac9a intel/genxml: fix HCP_VP9 commands
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35485>
2025-06-13 04:51:51 +00:00
Olivia Lee 0034fec71d panvk: implement VK_EXT_depth_clip_control
Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35224>
2025-06-13 02:19:21 +00:00
Olivia Lee 1d21ea9f9a panvk: refactor depth range logic
Preparation for VK_EXT_depth_clip_control.

Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35224>
2025-06-13 02:19:21 +00:00
Olivia Lee f44a824541 panvk: advertise VK_KHR_depth_clamp_zero_one
This matches our existing behavior on both JM and CSF, where when
depthClamp is disabled, we clamp to [0,1].

Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35224>
2025-06-13 02:19:20 +00:00
Timothy Arceri 1f2568ae31 mesa: get correct src address for transferOps
When texstore_rgba() takes the path that doesn't handle
transferOps it was correctly calling _mesa_image_address()
to apply any pixel store unpack setting to the starting src
address. This was missing from the transferOps path so we add it
in this patch.

Fixes: 4b249d2eed ("mesa: Handle transferOps in texstore_rgba")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10314

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35481>
2025-06-12 23:33:27 +00:00
Emma Anholt 59a5e042b2 ci/tu: Add a frequent a618 flake I've noticed.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35262>
2025-06-12 22:01:35 +00:00
Emma Anholt fde529a55e ir3: Enable nir_opt_acquire_release_barriers.
Fossil results for a730:

Totals from 6 (0.01% of 49975) affected shaders:
Instrs: 4068 -> 4028 (-0.98%)
CodeSize: 5794 -> 5674 (-2.07%)
NOPs: 1991 -> 1973 (-0.90%)
(ss): 256 -> 234 (-8.59%)
(sy): 158 -> 136 (-13.92%)
(sy)-stall: 2705 -> 1780 (-34.20%)
Cat0: 2221 -> 2203 (-0.81%)
Cat7: 207 -> 185 (-10.63%)

Affects Danylo's d3d fossils.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35262>
2025-06-12 22:01:35 +00:00
Emma Anholt 5bd6fd5c10 ir3: Enable nir_opt_combine_barriers.
From my fossils db:

Totals from 42 (0.08% of 49975) affected shaders:
Instrs: 108929 -> 108046 (-0.81%)
CodeSize: 182346 -> 179498 (-1.56%)
NOPs: 22106 -> 21916 (-0.86%)
(ss): 5458 -> 4765 (-12.70%)
(sy): 2987 -> 2294 (-23.20%)
Cat0: 24293 -> 24103 (-0.78%)
Cat7: 3939 -> 3246 (-17.59%)

Affected fossils include Danylo's d3d traces, gfxbench, and Sascha Willems's
computenbody.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35262>
2025-06-12 22:01:35 +00:00
Christian Gmeiner 0c1d5e4114 ir2: Remove NIR_PASS_V usage
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35478>
2025-06-12 21:46:53 +00:00
Christian Gmeiner 29f2566542 st/mesa: Remove NIR_PASS_V usage
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35480>
2025-06-12 21:23:17 +00:00
Christian Gmeiner 8519cd2a0d zink: Don't use deprecated NIR_PASS_V macro anymore
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35463>
2025-06-12 22:35:54 +02:00
Christian Gmeiner 70eb306119 zink: fixup_io_locations: Preserve all metadata
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35463>
2025-06-12 22:35:52 +02:00
Christian Gmeiner b30b87c096 nir/inline_uniforms: Convert to use nir_shader_intrinsics_pass(..)
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35463>
2025-06-12 22:35:48 +02:00
Marek Olšák fa2e7c3dfd nir: return progress from nir_group_loads, nir_inline_uniforms
so that NIR_PASS is usable

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:37 +00:00
Marek Olšák 0cbcb72869 nir/opt_vectorize_io: work around a 16-bit IO bug for RADV
If nir_opt_vectorize_io isn't called, 16-bit IO is broken.
This is a workaround to keep RADV working and consume incorrect NIR
while other drivers consume correct NIR.

Hopefully this will be removed ASAP.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:37 +00:00
Marek Olšák 6e9e9c9f0c nir: add shader_info::prev_stage_has_xfb
We will use it to skip lowering mediump IO to 16 bits if the previous
shader has XFB and mediump XFB doesn't work.

Drivers can decide not to lower mediump IO to 16 bits if nir->xfb_info
!= NULL for the pre-rast stage and if nir->info.prev_stage_has_xfb is
true for the FS stage. That way, drivers can lower mediump to 16 bits
for all cases except XFB.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:37 +00:00
Marek Olšák ebbcec76b0 glsl/spirv: link XFB before prelink_lowering
Hopefully this doesn't break it (we may even lack tests), but we need to
know in prelink_lowering whether XFB is enabled or not.

The next commit that adds shader_info::prev_stage_uses_xfb depends on this.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:37 +00:00
Marek Olšák b636e5ca66 nir: add nir_clear_mediump_io_flag
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:36 +00:00
Marek Olšák 13005d5e4e nir/xfb_info: don't merge incompatible XFB outputs to fix mediump
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:36 +00:00
Marek Olšák 118c0e6991 nir/opt_vectorize_io: fix vectorizing 16-bit XFB
Tested with mediump.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:36 +00:00
Marek Olšák caddd67b8c nir/opt_vectorize_io: don't vectorize 16-bit IO to vec8 - it's illegal
NIR represents low bits of 16-bit IO as a separate vec4, and high bits as
another separate vec4. There is no representation that allows vec8.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:35 +00:00
Marek Olšák 1f80ff5550 nir/opt_vectorize_io: convert bool merge_low_high_16_to_32 to an enum
refactoring for the next commit

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:35 +00:00
Marek Olšák 6270136b7d nir/opt_varyings: set prev_stage/next_stage if they are NONE and validate them
Doing it here ensures that any linked shader will have the correct values
there.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:34 +00:00
Marek Olšák e3d122ed7b nir/opt_varyings: completely exclude mediump from type changes
It broke mediump XFB, which needs the correct type for the up-conversion.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:34 +00:00
Marek Olšák cf26760218 glsl: set prev/next_stage according to the new definition
Keep MESA_SHADER_NONE if there is no previous/next shader.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:34 +00:00
Marek Olšák aba7b0831c nir: add shader_info::prev_stage
When lowering mediump to 16 bits, this will allow drivers to enable
the lowering only for certain pairs of stages, e.g. a driver can lower
mediump for VS->FS, but not GS->FS.

This could also be useful for other things.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35315>
2025-06-12 19:35:33 +00:00
Eric Engestrom 3649f28771 lavapipe/ci: add missing VKD3D_PROTON_TAG
Fixes: 2b7ddc7d71 ("ci/vkd3d: Use structured tagging for vkd3d-proton")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35498>
2025-06-12 19:13:56 +00:00
Eric Engestrom a07cd0e255 turnip/ci: add missing VKD3D_PROTON_TAG
Fixes: 2b7ddc7d71 ("ci/vkd3d: Use structured tagging for vkd3d-proton")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35498>
2025-06-12 19:13:56 +00:00
Eric Engestrom 03c73bdc35 nvk/ci: add missing VKD3D_PROTON_TAG
Fixes: 2b7ddc7d71 ("ci/vkd3d: Use structured tagging for vkd3d-proton")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35498>
2025-06-12 19:13:56 +00:00
LingMan 1853886023 rusticl: Initialize NIR option structs with default values
Eases NIR maintenance since adding new members no longer requires touching rusticl.

The one const `nir_remove_dead_variables_options` has been duplicated as two local variables because
`default()` cannot be called from const contexts, yet.

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35497>
2025-06-12 18:52:25 +00:00
Jonathan Gray 68be3b7159 util: fix OpenBSD/powerpc64 build
use defined(HAVE_ELF_AUX_INFO) as HAVE_ELF_AUX_INFO is not defined to a value
avoids 'error: expected value in expression' on powerpc64

Fixes: 67333c2632 ("util: Support elf_aux_info() on OpenBSD arm and ppc")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35422>
2025-06-12 16:49:23 +00:00
Jason Macnak 3bf5347436 gfxstream: Fix strict aliasing violations in VkDecoder
Test: cvd create --gpu_mode=gfxstream_guest_angle_host_swiftshader

Reviewed-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: Marcin Radomski <dextero@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35494>
2025-06-12 08:48:23 -07:00
Bo Hu f3e9f0e9a6 gfxstream: update codegen for vkQueueFlushCommandsGOOGLE
This method requires removal of obsolete recording

Reviewed-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: Marcin Radomski <dextero@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35494>
2025-06-12 08:48:23 -07:00
Karol Herbst ee1fe1a1e5 rusticl: implement cl_khr_spirv_queries
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35439>
2025-06-12 12:41:48 +00:00
Karol Herbst 3b2af3006e rusticl/device: refactor Device::new
Adding a DeviceBase type will allow us to do pass in a proper spirv_caps
object into SPIRVBin::get_lib_clc. Should also make device creation more
flexible.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35439>
2025-06-12 12:41:48 +00:00
Lionel Landwerlin d0608425f4 anv: handle REMAINING_LAYERS with 3D images & maintenance9
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 9a1485ec5c ("anv: missing bit from maintenance9")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35487>
2025-06-12 11:34:33 +00:00
Tapani Pälli 58c4b31d31 anv: small cleanup, remove unused helper function
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/35450>
2025-06-12 11:15:21 +00:00
Erik Faye-Lund b58dd5508e panfrost/ci: add new half-float fails
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35451>
2025-06-12 08:56:21 +00:00
Erik Faye-Lund 53c3943f4c panfrost/ci: fix sorting of fails
These were mostly sorted, but not quite. Let's fix that up, so it's
easier to add new fails in the right place.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35451>
2025-06-12 08:56:21 +00:00
Lars-Ivar Hesselberg Simonsen 5d0465a253 panvk: Skip barrier QFOT if src_qfi equals dst_qfi
Do not perform a queue family ownership transfer during memory barriers
if srcQueueFamilyIndex equals dstQueueFamilyIndex, as the Vulkan spec
mandates that this should only happen if the two values are unequal.

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Fixes: 715d6e740a ("panvk: improve VK_QUEUE_FAMILY_EXTERNAL support")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35458>
2025-06-12 08:12:23 +00:00
Peyton Lee 75736aa494 amd/gmlib: remove the executable bit
remove the executable bit for all files.

Signed-off-by: Peyton Lee <peytolee@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35361>
2025-06-12 07:44:27 +00:00
Peyton Lee fd1930b035 amd: add vpe_version
vpe_version describes which generation of vpe capabilities a chip has.

Signed-off-by: Peyton Lee <peytolee@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35361>
2025-06-12 07:44:27 +00:00
Peyton Lee 548b026297 radeonsi/vpe: correct capability
should return the capability that hardware can support

Signed-off-by: Peyton Lee <peytolee@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35361>
2025-06-12 07:44:27 +00:00
Peyton Lee ce3c1b018a radeonsi/vpe: remove background color
remove un-used background color value

Signed-off-by: Peyton Lee <peytolee@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35361>
2025-06-12 07:44:27 +00:00
Peyton Lee 47163fa8d3 radeonsi/vpe: enhance scaling quality
add support for lanczos coefficients
which enhaces the quality of scaling down

Signed-off-by: Peyton Lee <peytolee@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35361>
2025-06-12 07:44:26 +00:00
Pierre-Eric Pelloux-Prayer 75f596d909 radeonsi: fix attribute_pos_prim_ring handling
Apply the same logic as the other rings.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35452>
2025-06-12 07:23:33 +00:00
Lionel Landwerlin 9a1485ec5c anv: missing bit from maintenance9
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 595889018a ("anv: implement VK_KHR_maintenance9")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35467>
2025-06-12 09:14:20 +03:00
Jianxun Zhang a9aad4565f anv: Enable compression on CCS modifiers (xe2)
Don't report compressed memory type in the case of Xe2 modifiers
as the Vulkan spec requires identical memory types behind the
VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT.

Instead, we require dedicated allocation to get the right
compressed memory in allocation stage. The BMG modifier also
requires scanout flag to set. Refer to comments.

Thanks for the help from:
Nanley Chery <nanley.g.chery@intel.com>
Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Kenneth Graunke <kenneth@whitecape.org>
and other people not listed.

Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34567>
2025-06-12 04:07:12 +00:00