tu: Support transfer commands for R64 formats
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

CTS tests that require transfer commands:
   dEQP-VK.robustness.*r64*
   dEQP-VK.api.image_clearing.*.r64*
   dEQP-VK.image.extend_operands_spirv1p4.r64_*
   dEQP-VK.image.nontemporal_operand.r64_*
   dEQP-VK.image.queue_transfer.*.r64_

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39932>
This commit is contained in:
Danylo Piliaiev 2026-04-11 14:02:11 +02:00 committed by Marge Bot
parent 5b87bbfad3
commit 9e56c7bd8f
2 changed files with 13 additions and 2 deletions

View file

@ -2005,6 +2005,10 @@ copy_format(VkFormat vk_format, VkImageAspectFlags aspect_mask)
vk_format_get_ycbcr_info(vk_format))
return tu_aspects_to_plane(vk_format, aspect_mask);
if (vk_format == VK_FORMAT_R64_SINT || vk_format == VK_FORMAT_R64_UINT) {
return PIPE_FORMAT_R32G32_UINT;
}
/* Otherwise, simply return the pipe_format */
return format;
}
@ -3964,6 +3968,9 @@ clear_image_event_blit(struct tu_cmd_buffer *cmd,
}
enum pipe_format format = vk_format_to_pipe_format(vk_format);
if (format == PIPE_FORMAT_R64_SINT || format == PIPE_FORMAT_R64_UINT) {
format = PIPE_FORMAT_R32G32_UINT;
}
if (image->layout[0].depth0 > 1) {
assert(layer_count == 1);

View file

@ -144,12 +144,16 @@ tu_physical_device_get_format_properties(
physical_device->info->props.has_64b_image_atomics) {
assert(!(supported_vtx || supported_color || supported_tex));
optimal = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT |
VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT;
VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT |
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT |
VK_FORMAT_FEATURE_TRANSFER_DST_BIT;
out_properties->linearTilingFeatures = optimal;
out_properties->optimalTilingFeatures = optimal;
out_properties->bufferFeatures =
VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT |
VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT;
VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT |
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT |
VK_FORMAT_FEATURE_TRANSFER_DST_BIT;
return;
}