v3dv: implement VK_EXT_texel_buffer_alignment

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18291>
This commit is contained in:
Iago Toral Quiroga
2022-08-29 10:22:31 +02:00
parent 2daa14f182
commit ee62a4c751
2 changed files with 18 additions and 1 deletions

View File

@@ -491,7 +491,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)
VK_EXT_texel_buffer_alignment DONE (anv, lvp, radv, tu)
VK_EXT_texel_buffer_alignment DONE (anv, lvp, radv, tu, v3dv)
Khronos extensions that are not part of any Vulkan version:

View File

@@ -176,6 +176,7 @@ get_device_extensions(const struct v3dv_physical_device *device,
.EXT_private_data = true,
.EXT_provoking_vertex = true,
.EXT_separate_stencil_usage = true,
.EXT_texel_buffer_alignment = true,
.EXT_vertex_attribute_divisor = true,
#ifdef ANDROID
.ANDROID_native_buffer = true,
@@ -1328,6 +1329,13 @@ v3dv_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *features =
(void *) ext;
features->texelBufferAlignment = true;
break;
}
default:
v3dv_debug_ignored_stype(ext->sType);
break;
@@ -1715,6 +1723,15 @@ v3dv_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
* never provide this extension.
*/
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT: {
VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT *props =
(VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT *)ext;
props->storageTexelBufferOffsetAlignmentBytes = V3D_TMU_TEXEL_ALIGN;
props->storageTexelBufferOffsetSingleTexelAlignment = false;
props->uniformTexelBufferOffsetAlignmentBytes = V3D_TMU_TEXEL_ALIGN;
props->uniformTexelBufferOffsetSingleTexelAlignment = false;
break;
}
default:
v3dv_debug_ignored_stype(ext->sType);
break;