tu: Trivially implement VK_EXT_texel_buffer_alignment

The previous alignment of 64 bytes, which we got from the blob,
indicates that single-texel alignment isn't supported. So just do a
trivial no-op implementation that returns the same alignment as before.
This matches what newer blobs that expose this extension do.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15427>
This commit is contained in:
Connor Abbott 2022-03-17 13:21:38 +01:00 committed by Marge Bot
parent 177b54ebe9
commit 3d04c43576
2 changed files with 9 additions and 4 deletions

View file

@ -490,7 +490,7 @@ Vulkan 1.3 -- all DONE: anv, radv
VK_EXT_image_robustness DONE (anv, radv, tu) VK_EXT_image_robustness DONE (anv, radv, tu)
VK_EXT_shader_demote_to_helper_invocation DONE (anv, radv, tu) VK_EXT_shader_demote_to_helper_invocation DONE (anv, radv, tu)
VK_EXT_subgroup_size_control DONE (anv, radv, tu) VK_EXT_subgroup_size_control DONE (anv, radv, tu)
VK_EXT_texel_buffer_alignment DONE (anv, radv) VK_EXT_texel_buffer_alignment DONE (anv, radv, tu)
Khronos extensions that are not part of any Vulkan version: Khronos extensions that are not part of any Vulkan version:

View file

@ -825,6 +825,12 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
features->depthClipControl = true; features->depthClipControl = true;
break; break;
} }
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *features =
(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)ext;
features->texelBufferAlignment = true;
break;
}
default: default:
break; break;
@ -1020,10 +1026,9 @@ tu_get_physical_device_properties_1_3(struct tu_physical_device *pdevice,
p->integerDotProductAccumulatingSaturating64BitSignedAccelerated = false; p->integerDotProductAccumulatingSaturating64BitSignedAccelerated = false;
p->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = false; p->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = false;
/* VK_EXT_texel_buffer_alignment is not implemented */ p->storageTexelBufferOffsetAlignmentBytes = 64;
p->storageTexelBufferOffsetAlignmentBytes = 0;
p->storageTexelBufferOffsetSingleTexelAlignment = false; p->storageTexelBufferOffsetSingleTexelAlignment = false;
p->uniformTexelBufferOffsetAlignmentBytes = 0; p->uniformTexelBufferOffsetAlignmentBytes = 64;
p->uniformTexelBufferOffsetSingleTexelAlignment = false; p->uniformTexelBufferOffsetSingleTexelAlignment = false;
/* TODO: find out the limit */ /* TODO: find out the limit */