lavapipe: Add VK_KHR_copy_memory_indirect formats

Add VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR

tested with
dEQP-VK.api.copy_and_blit.copy_memory_indirect*
dEQP-VK.api.copy_and_blit.core.memory_to_depthstencil_indirect*
dEQP-VK.api.copy_and_blit.core.memory_to_image_indirect*
dEQP-VK.api.copy_and_blit.copy_commands2.image_to_buffer.2d_images.mip*indirect

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13989
Signed-off-by: spencer-lunarg <spencer@lunarg.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38339>
This commit is contained in:
spencer-lunarg
2025-11-09 13:40:59 -05:00
parent c00b66fa71
commit 744a961e15

View File

@@ -87,7 +87,8 @@ lvp_physical_device_get_format_properties(struct lvp_physical_device *physical_d
VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT |
VK_FORMAT_FEATURE_2_BLIT_SRC_BIT | VK_FORMAT_FEATURE_2_BLIT_DST_BIT |
VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT |
VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT);
VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT |
VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR);
if (lvp_is_filter_minmax_format_supported(format))
out_properties->optimalTilingFeatures |=
@@ -104,7 +105,8 @@ lvp_physical_device_get_format_properties(struct lvp_physical_device *physical_d
VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT |
VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT |
VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT |
VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT);
VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT |
VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR);
}
out_properties->linearTilingFeatures = features;
out_properties->optimalTilingFeatures = features;
@@ -189,7 +191,8 @@ lvp_physical_device_get_format_properties(struct lvp_physical_device *physical_d
if (features && buffer_features != VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT) {
features |= (VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT |
VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT);
VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT |
VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR);
}
if (pformat == PIPE_FORMAT_B5G6R5_UNORM) {
features |= (VK_FORMAT_FEATURE_2_BLIT_SRC_BIT |