kk: enable VK_KHR_workgroup_memory_explicit_layout

Reviewed-by: Aitor Camacho <aitor@lunarg.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38154>
This commit is contained in:
Arcady Goldmints-Orlov
2025-10-24 12:31:45 -04:00
committed by Marge Bot
parent aa9f937116
commit ef66fdf47c
4 changed files with 13 additions and 5 deletions
+1 -1
View File
@@ -584,7 +584,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_swapchain_mutable_format DONE (anv, hasvk, hk, kk, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_KHR_unified_image_layouts DONE (lvp, nvk, panvk, radv/gfx11+, tu)
VK_KHR_wayland_surface DONE (anv, dzn, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_workgroup_memory_explicit_layout DONE (anv, hk, lvp, nvk, hasvk, radv, tu, v3dv, vn)
VK_KHR_workgroup_memory_explicit_layout DONE (anv, hk, kk, lvp, nvk, hasvk, radv, tu, v3dv, vn)
VK_KHR_win32_keyed_mutex not started
VK_KHR_win32_surface DONE (dzn, lvp)
VK_KHR_xcb_surface DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, radv, tu, v3dv, vn)
+2
View File
@@ -853,6 +853,8 @@ memory_modes_to_msl(struct nir_to_msl_ctx *ctx, nir_variable_mode modes)
}
requires_or = true;
}
if (!requires_or)
P(ctx, "mem_flags::mem_none");
}
static uint32_t
@@ -126,6 +126,7 @@ kk_get_device_extensions(const struct kk_instance *instance,
.KHR_swapchain = true,
.KHR_swapchain_mutable_format = true,
#endif
.KHR_workgroup_memory_explicit_layout = true,
.EXT_external_memory_metal = true,
.EXT_mutable_descriptor_type = true,
@@ -271,6 +272,12 @@ kk_get_device_features(
/* VK_KHR_shader_relaxed_extended_instruction */
.shaderRelaxedExtendedInstruction = true,
/* VK_KHR_workgroup_memory_explicit_layout */
.workgroupMemoryExplicitLayout = true,
.workgroupMemoryExplicitLayoutScalarBlockLayout = true,
.workgroupMemoryExplicitLayout8BitAccess = true,
.workgroupMemoryExplicitLayout16BitAccess = true,
/* VK_EXT_shader_replicated_composites */
.shaderReplicatedComposites = true,
+3 -4
View File
@@ -483,10 +483,9 @@ kk_lower_nir(struct kk_device *dev, nir_shader *nir,
nir_lower_io_lower_64bit_to_32 |
nir_lower_io_use_interpolated_input_intrinsics);
if (!nir->info.shared_memory_explicit_layout) {
NIR_PASS(_, nir, nir_lower_vars_to_explicit_types, nir_var_mem_shared,
shared_var_info);
}
NIR_PASS(_, nir, nir_lower_vars_to_explicit_types, nir_var_mem_shared,
shared_var_info);
NIR_PASS(_, nir, nir_lower_explicit_io, nir_var_mem_shared,
nir_address_format_32bit_offset);