tu: Expose VK_KHR_workgroup_memory_explicit_layout
It's all done for us in NIR. Signed-off-by: Valentine Burley <valentine.burley@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29346>
This commit is contained in:

committed by
Marge Bot

parent
07c6459cd8
commit
10c64ee63a
@@ -551,7 +551,7 @@ Khronos extensions that are not part of any Vulkan version:
|
||||
VK_KHR_swapchain_mutable_format DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
||||
VK_KHR_vertex_attribute_divisor DONE (anv, nvk, radv, tu, v3dv)
|
||||
VK_KHR_wayland_surface DONE (anv, dzn, lvp, nvk, panvk, radv, tu, v3dv, vn)
|
||||
VK_KHR_workgroup_memory_explicit_layout DONE (anv, nvk, hasvk, radv, v3dv)
|
||||
VK_KHR_workgroup_memory_explicit_layout DONE (anv, nvk, hasvk, radv, tu, v3dv)
|
||||
VK_KHR_win32_keyed_mutex not started
|
||||
VK_KHR_win32_surface DONE (dzn, lvp)
|
||||
VK_KHR_xcb_surface DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn)
|
||||
|
@@ -222,6 +222,7 @@ get_device_extensions(const struct tu_physical_device *device,
|
||||
.KHR_variable_pointers = true,
|
||||
.KHR_vertex_attribute_divisor = true,
|
||||
.KHR_vulkan_memory_model = true,
|
||||
.KHR_workgroup_memory_explicit_layout = true,
|
||||
.KHR_zero_initialize_workgroup_memory = true,
|
||||
|
||||
.EXT_4444_formats = true,
|
||||
@@ -493,6 +494,12 @@ tu_get_features(struct tu_physical_device *pdevice,
|
||||
features->vertexAttributeInstanceRateDivisor = true;
|
||||
features->vertexAttributeInstanceRateZeroDivisor = true;
|
||||
|
||||
/* VK_KHR_workgroup_memory_explicit_layout */
|
||||
features->workgroupMemoryExplicitLayout = true;
|
||||
features->workgroupMemoryExplicitLayoutScalarBlockLayout = true;
|
||||
features->workgroupMemoryExplicitLayout8BitAccess = true;
|
||||
features->workgroupMemoryExplicitLayout16BitAccess = true;
|
||||
|
||||
/* VK_EXT_4444_formats */
|
||||
features->formatA4R4G4B4 = true;
|
||||
features->formatA4B4G4R4 = true;
|
||||
|
@@ -2409,8 +2409,10 @@ tu_shader_create(struct tu_device *dev,
|
||||
nir_address_format_64bit_global);
|
||||
|
||||
if (nir->info.stage == MESA_SHADER_COMPUTE) {
|
||||
NIR_PASS_V(nir, nir_lower_vars_to_explicit_types,
|
||||
nir_var_mem_shared, shared_type_info);
|
||||
if (!nir->info.shared_memory_explicit_layout) {
|
||||
NIR_PASS_V(nir, nir_lower_vars_to_explicit_types,
|
||||
nir_var_mem_shared, shared_type_info);
|
||||
}
|
||||
NIR_PASS_V(nir, nir_lower_explicit_io,
|
||||
nir_var_mem_shared,
|
||||
nir_address_format_32bit_offset);
|
||||
|
Reference in New Issue
Block a user