kk: Support VK_KHR_shader_untyped_pointers
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

With memcpy lowering and fix for infinite optimize loop on 4x16 packs,
passes `dEQP-VK.spirv_assembly.instruction.compute.untyped_pointers.*`.

Reviewed-by: Aitor Camacho <aitor@lunarg.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41695>
This commit is contained in:
squidbus 2026-05-19 21:53:44 -07:00 committed by Marge Bot
parent 8ee23ece2b
commit 2d6ad3cba1
4 changed files with 7 additions and 1 deletions

View file

@ -586,7 +586,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_shader_quad_control DONE (anv, hk, lvp, nvk, panvk/v10+, radv, vn)
VK_KHR_shader_relaxed_extended_instruction DONE (anv, hasvk, hk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, hk, kk, nvk, panvk/v10+, radv, tu, vn)
VK_KHR_shader_untyped_pointers DONE (anv, nvk, panvk/v9+, radv, vn)
VK_KHR_shader_untyped_pointers DONE (anv, kk, nvk, panvk/v9+, radv, vn)
VK_KHR_shared_presentable_image not started
VK_KHR_surface DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_surface_maintenance1 DONE (anv, hk, lvp, nvk, panvk, radv, tu, v3dv, vn)

View file

@ -2035,6 +2035,7 @@ msl_preprocess_nir(struct nir_shader *nir)
NIR_PASS(_, nir, nir_opt_combine_barriers, NULL, NULL);
NIR_PASS(_, nir, nir_lower_var_copies);
NIR_PASS(_, nir, nir_split_var_copies);
NIR_PASS(_, nir, nir_lower_memcpy);
NIR_PASS(_, nir, nir_split_array_vars,
nir_var_function_temp | nir_var_shader_in | nir_var_shader_out);

View file

@ -99,6 +99,7 @@ static const nir_shader_compiler_options kk_nir_options = {
.lower_pack_64_2x32_split = true,
.lower_unpack_64_2x32_split = true,
.lower_pack_64_2x32 = true,
.lower_pack_64_4x16 = true,
.lower_pack_half_2x16 = true,
.lower_pack_split = true,
.lower_unpack_half_2x16 = true,

View file

@ -146,6 +146,7 @@ kk_get_device_extensions(const struct kk_instance *instance,
.KHR_shader_maximal_reconvergence = true,
.KHR_shader_relaxed_extended_instruction = true,
.KHR_shader_subgroup_uniform_control_flow = true,
.KHR_shader_untyped_pointers = true,
#ifdef KK_USE_WSI_PLATFORM
.KHR_swapchain = true,
.KHR_swapchain_mutable_format = true,
@ -352,6 +353,9 @@ kk_get_device_features(
/* VK_KHR_shader_relaxed_extended_instruction */
.shaderRelaxedExtendedInstruction = true,
/* VK_KHR_shader_untyped_pointers */
.shaderUntypedPointers = true,
/* VK_KHR_unified_image_layouts */
.unifiedImageLayouts = true,
.unifiedImageLayoutsVideo = false,