From 82408f81b43b2fbde567c9b30df47a5a7205f28c Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Sun, 16 Feb 2025 12:56:24 -0800 Subject: [PATCH] venus: support VK_KHR_shader_subgroup_rotate Signed-off-by: Yiwei Zhang Part-of: --- docs/features.txt | 2 +- src/virtio/vulkan/vn_physical_device.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index aa547dfd1f7..af10ebe67d1 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -522,7 +522,7 @@ Vulkan 1.4 -- all DONE: anv, lvp, nvk, radv/gfx8+, tu/a7xx+ VK_KHR_push_descriptor DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, vn) VK_KHR_shader_expect_assume DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) VK_KHR_shader_float_controls2 DONE (anv, lvp, nvk, radv, tu) - VK_KHR_shader_subgroup_rotate DONE (anv, lvp, nvk, radv, tu) + VK_KHR_shader_subgroup_rotate DONE (anv, lvp, nvk, radv, tu, vn) VK_KHR_vertex_attribute_divisor DONE (anv, lvp, nvk, panvk, radv, tu, v3dv, vn) VK_EXT_host_image_copy DONE (anv, lvp, nvk/Turing+, tu) VK_EXT_pipeline_protected_access DONE (anv/gfx12+) diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index 7bd9d4f4809..111f0b46de5 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -164,7 +164,8 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev) VkPhysicalDeviceIndexTypeUint8Features index_type_uint8; VkPhysicalDeviceLineRasterizationFeatures line_rasterization; VkPhysicalDeviceMaintenance5Features maintenance5; - VkPhysicalDeviceShaderExpectAssumeFeatures expect_assume; + VkPhysicalDeviceShaderExpectAssumeFeatures shader_expect_assume; + VkPhysicalDeviceShaderSubgroupRotateFeatures shader_subgroup_rotate; VkPhysicalDeviceVertexAttributeDivisorFeatures vertex_attribute_divisor; /* KHR */ @@ -273,7 +274,8 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev) VN_ADD_PNEXT_EXT(feats2, INDEX_TYPE_UINT8_FEATURES, local_feats.index_type_uint8, exts->KHR_index_type_uint8 || exts->EXT_index_type_uint8); VN_ADD_PNEXT_EXT(feats2, LINE_RASTERIZATION_FEATURES, local_feats.line_rasterization, exts->KHR_line_rasterization || exts->EXT_line_rasterization); VN_ADD_PNEXT_EXT(feats2, MAINTENANCE_5_FEATURES, local_feats.maintenance5, exts->KHR_maintenance5); - VN_ADD_PNEXT_EXT(feats2, SHADER_EXPECT_ASSUME_FEATURES, local_feats.expect_assume, exts->KHR_shader_expect_assume); + VN_ADD_PNEXT_EXT(feats2, SHADER_EXPECT_ASSUME_FEATURES, local_feats.shader_expect_assume, exts->KHR_shader_expect_assume); + VN_ADD_PNEXT_EXT(feats2, SHADER_SUBGROUP_ROTATE_FEATURES, local_feats.shader_subgroup_rotate, exts->KHR_shader_subgroup_rotate); VN_ADD_PNEXT_EXT(feats2, VERTEX_ATTRIBUTE_DIVISOR_FEATURES, local_feats.vertex_attribute_divisor, exts->KHR_vertex_attribute_divisor || exts->EXT_vertex_attribute_divisor); /* KHR */ @@ -1094,6 +1096,7 @@ vn_physical_device_get_passthrough_extensions( .KHR_maintenance5 = true, .KHR_push_descriptor = true, .KHR_shader_expect_assume = true, + .KHR_shader_subgroup_rotate = true, .KHR_vertex_attribute_divisor = true, /* KHR */