panvk: expose vk1.1 on v10 hardware

Subgroup ops were the last bit missing

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32710>
This commit is contained in:
Erik Faye-Lund 2024-12-16 14:20:19 +01:00 committed by Marge Bot
parent ac05c2a2b8
commit 1a81bff6aa
4 changed files with 10 additions and 4 deletions

View file

@ -27,7 +27,7 @@ The following hardware is currently supported:
+--------------------+---------------+-----------+--------+--------+ +--------------------+---------------+-----------+--------+--------+
| G57 | Valhall (v9) | 3.1 | 3.1 | | | G57 | Valhall (v9) | 3.1 | 3.1 | |
+--------------------+---------------+-----------+--------+--------+ +--------------------+---------------+-----------+--------+--------+
| G310, G610 | Valhall (v10) | 3.1 | 3.1 | 1.0 | | G310, G610 | Valhall (v10) | 3.1 | 3.1 | 1.1 |
+--------------------+---------------+-----------+--------+--------+ +--------------------+---------------+-----------+--------+--------+
Other Midgard and Bifrost chips (e.g. G71) are not yet supported. Other Midgard and Bifrost chips (e.g. G71) are not yet supported.

View file

@ -428,7 +428,7 @@ we DO NOT WANT implementations of these extensions for Mesa.
Vulkan 1.0 -- all DONE: anv, dzn, lvp, nvk, panvk, radv, tu, v3dv, vn Vulkan 1.0 -- all DONE: anv, dzn, lvp, nvk, panvk, radv, tu, v3dv, vn
Vulkan 1.1 -- all DONE: anv, lvp, nvk, radv, tu, vn Vulkan 1.1 -- all DONE: anv, lvp, nvk, panvk/v10+, radv, tu, vn
VK_KHR_16bit_storage DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu/a650+, v3dv, vn) VK_KHR_16bit_storage DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu/a650+, v3dv, vn)
VK_KHR_bind_memory2 DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) VK_KHR_bind_memory2 DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)

View file

@ -34,3 +34,5 @@ shaderInt64 on panvk
imageCubeArray on panvk imageCubeArray on panvk
VK_KHR_depth_clamp_zero_one on RADV VK_KHR_depth_clamp_zero_one on RADV
VK_KHR_maintenance8 on radv VK_KHR_maintenance8 on radv
VK_KHR_shader_subgroup_rotate on panvk/v10+
Vulkan 1.1 on panvk/v10+

View file

@ -421,11 +421,15 @@ get_features(const struct panvk_physical_device *device,
} }
static uint32_t static uint32_t
get_vk_version() get_vk_version(unsigned arch)
{ {
const uint32_t version_override = vk_get_version_override(); const uint32_t version_override = vk_get_version_override();
if (version_override) if (version_override)
return version_override; return version_override;
if (arch >= 10)
return VK_MAKE_API_VERSION(0, 1, 1, VK_HEADER_VERSION);
return VK_MAKE_API_VERSION(0, 1, 0, VK_HEADER_VERSION); return VK_MAKE_API_VERSION(0, 1, 0, VK_HEADER_VERSION);
} }
@ -447,7 +451,7 @@ get_device_properties(const struct panvk_instance *instance,
assert(arch > 8 || device->kmod.props.max_threads_per_wg <= 1024); assert(arch > 8 || device->kmod.props.max_threads_per_wg <= 1024);
*properties = (struct vk_properties){ *properties = (struct vk_properties){
.apiVersion = get_vk_version(), .apiVersion = get_vk_version(arch),
.driverVersion = vk_get_driver_version(), .driverVersion = vk_get_driver_version(),
.vendorID = ARM_VENDOR_ID, .vendorID = ARM_VENDOR_ID,