venus: Enable VK_EXT_texel_buffer_alignment
authorChad Versace <chadversary@chromium.org>
Thu, 11 Aug 2022 00:39:24 +0000 (17:39 -0700)
committerMarge Bot <emma+marge@anholt.net>
Tue, 30 Aug 2022 08:09:55 +0000 (08:09 +0000)
The patch looks asymmetic because the extension was promoted to 1.3 but
not its feature struct.

Signed-off-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000>

docs/features.txt
src/virtio/vulkan/vn_physical_device.c
src/virtio/vulkan/vn_physical_device.h

index d59af31..d8e37a1 100644 (file)
@@ -492,7 +492,7 @@ Vulkan 1.3 -- all DONE: anv, radv, lvp
   VK_EXT_image_robustness                               DONE (anv, lvp, radv, tu, vn)
   VK_EXT_shader_demote_to_helper_invocation             DONE (anv, lvp, radv, tu, vn)
   VK_EXT_subgroup_size_control                          DONE (anv, lvp, radv, tu, vn)
-  VK_EXT_texel_buffer_alignment                         DONE (anv, lvp, radv, tu, v3dv)
+  VK_EXT_texel_buffer_alignment                         DONE (anv, lvp, radv, tu, v3dv, vn)
 
 Khronos extensions that are not part of any Vulkan version:
 
index 6014f7d..7f6d0bc 100644 (file)
@@ -182,6 +182,9 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
                        PROVOKING_VERTEX_FEATURES_EXT, features2);
    VN_ADD_EXT_TO_PNEXT(exts->EXT_robustness2, feats->robustness_2,
                        ROBUSTNESS_2_FEATURES_EXT, features2);
+   VN_ADD_EXT_TO_PNEXT(exts->EXT_texel_buffer_alignment,
+                       feats->texel_buffer_alignment,
+                       TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, features2);
    VN_ADD_EXT_TO_PNEXT(exts->EXT_transform_feedback,
                        feats->transform_feedback,
                        TRANSFORM_FEEDBACK_FEATURES_EXT, features2);
@@ -504,6 +507,9 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
    VN_ADD_EXT_TO_PNEXT(exts->EXT_subgroup_size_control,
                        props->subgroup_size_control,
                        SUBGROUP_SIZE_CONTROL_PROPERTIES, properties2);
+   VN_ADD_EXT_TO_PNEXT(exts->EXT_texel_buffer_alignment,
+                       props->texel_buffer_alignment,
+                       TEXEL_BUFFER_ALIGNMENT_PROPERTIES, properties2);
 
    /* EXT */
    VN_ADD_EXT_TO_PNEXT(
@@ -1071,6 +1077,7 @@ vn_physical_device_get_passthrough_extensions(
       .EXT_pipeline_creation_cache_control = true,
       .EXT_shader_demote_to_helper_invocation = true,
       .EXT_subgroup_size_control = true,
+      .EXT_texel_buffer_alignment = true,
       .EXT_texture_compression_astc_hdr = true,
 
       /* EXT */
@@ -1689,6 +1696,7 @@ vn_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
       CASE(SHADER_INTEGER_DOT_PRODUCT_FEATURES, shader_integer_dot_product);
       CASE(SHADER_TERMINATE_INVOCATION_FEATURES, shader_terminate_invocation);
       CASE(SUBGROUP_SIZE_CONTROL_FEATURES, subgroup_size_control);
+      CASE(TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, texel_buffer_alignment);
       CASE(TEXTURE_COMPRESSION_ASTC_HDR_FEATURES, texture_compression_astc_hdr);
       CASE(ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES, zero_initialize_workgroup_memory);
 
@@ -1746,6 +1754,7 @@ vn_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
       CASE(INLINE_UNIFORM_BLOCK_PROPERTIES, inline_uniform_block);
       CASE(SHADER_INTEGER_DOT_PRODUCT_PROPERTIES, shader_integer_dot_product);
       CASE(SUBGROUP_SIZE_CONTROL_PROPERTIES, subgroup_size_control);
+      CASE(TEXEL_BUFFER_ALIGNMENT_PROPERTIES, texel_buffer_alignment);
 
       /* EXT */
       CASE(CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, conservative_rasterization);
index bfe9334..9fedaa4 100644 (file)
@@ -54,6 +54,7 @@ struct vn_physical_device_features {
       primitive_topology_list_restart;
    VkPhysicalDeviceProvokingVertexFeaturesEXT provoking_vertex;
    VkPhysicalDeviceRobustness2FeaturesEXT robustness_2;
+   VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT texel_buffer_alignment;
    VkPhysicalDeviceTransformFeedbackFeaturesEXT transform_feedback;
    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT vertex_attribute_divisor;
 };
@@ -69,6 +70,7 @@ struct vn_physical_device_properties {
    VkPhysicalDeviceShaderIntegerDotProductProperties
       shader_integer_dot_product;
    VkPhysicalDeviceSubgroupSizeControlProperties subgroup_size_control;
+   VkPhysicalDeviceTexelBufferAlignmentProperties texel_buffer_alignment;
 
    /* EXT */
    VkPhysicalDeviceConservativeRasterizationPropertiesEXT