diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c index 7cb4bad160b..3579f899263 100644 --- a/src/intel/vulkan/anv_formats.c +++ b/src/intel/vulkan/anv_formats.c @@ -669,11 +669,13 @@ anv_get_image_format_features2(const struct anv_physical_device *physical_device VK_FORMAT_FEATURE_2_BLIT_SRC_BIT | VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT | 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_HOST_IMAGE_TRANSFER_BIT_EXT; } else if (vk_tiling == VK_IMAGE_TILING_LINEAR) { /* Images used for transfers */ flags |= 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_HOST_IMAGE_TRANSFER_BIT_EXT; } return flags; } @@ -765,6 +767,8 @@ anv_get_image_format_features2(const struct anv_physical_device *physical_device * compressed format to an uncompressed one. * * We handle modifier tilings further down in this function. + * + * TODO: check if we could enable HOST copies in that non emulated case. */ if (vk_tiling == VK_IMAGE_TILING_LINEAR && isl_format_get_layout(plane_format.isl_format)->txc == ISL_TXC_ASTC) diff --git a/src/intel/vulkan/anv_physical_device.c b/src/intel/vulkan/anv_physical_device.c index 0d5116ec5ee..f683225134b 100644 --- a/src/intel/vulkan/anv_physical_device.c +++ b/src/intel/vulkan/anv_physical_device.c @@ -310,7 +310,7 @@ get_device_extensions(const struct anv_physical_device *device, VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR, .EXT_graphics_pipeline_library = !(device->instance->debug & ANV_DEBUG_NO_GPL), .EXT_hdr_metadata = true, - .EXT_host_image_copy = !device->emu_astc_ldr, + .EXT_host_image_copy = true, .EXT_host_query_reset = true, .EXT_image_2d_view_of_3d = true, /* Because of Xe2 PAT selected compression and the Vulkan spec