diff --git a/src/nouveau/vulkan/nvk_image.c b/src/nouveau/vulkan/nvk_image.c index a4905e9d493..d753c1312b1 100644 --- a/src/nouveau/vulkan/nvk_image.c +++ b/src/nouveau/vulkan/nvk_image.c @@ -109,6 +109,16 @@ nvk_get_image_plane_format_features(const struct nvk_physical_device *pdev, features |= VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT; if (!vk_format_is_depth_or_stencil(vk_format)) features |= VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT; + + /* The copy engine handles depth and stencil just fine */ + if (vk_format_has_depth(vk_format)) { + features |= VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_COMPUTE_QUEUE_BIT_KHR | + VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_TRANSFER_QUEUE_BIT_KHR; + } + if (vk_format_has_stencil(vk_format)) { + features |= VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_COMPUTE_QUEUE_BIT_KHR | + VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_TRANSFER_QUEUE_BIT_KHR; + } } return features;