From fe57b1022108c8b2284b5995e767f9f9c875e70d Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Thu, 26 Sep 2024 15:43:28 +0300 Subject: [PATCH] zink: avoid host transfer usage with sparse It's not a requirement to support this for implementations. Also doesn't make much sense... Fixes KHR-GL46.sparse_texture_clamp_tests.SparseTextureClampLookupResidency on Anv with VK_EXT_host_image_copy enabled. Signed-off-by: Lionel Landwerlin Fixes: f24891269d ("zink: check/use suboptimal HIC during ici init") Reviewed-By: Mike Blumenkrantz Part-of: --- src/gallium/drivers/zink/ci/zink-lvp-fails.txt | 3 --- src/gallium/drivers/zink/zink_resource.c | 5 ++++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/zink/ci/zink-lvp-fails.txt b/src/gallium/drivers/zink/ci/zink-lvp-fails.txt index 6738f37a768..7a9a7ffa479 100644 --- a/src/gallium/drivers/zink/ci/zink-lvp-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-lvp-fails.txt @@ -135,6 +135,3 @@ spec@!opengl 1.0@gl-1.0-dlist-beginend,Crash spec@nv_texture_barrier@blending-in-shader,Crash spec@arb_viewport_array@display-list,Fail - -# passes locally -KHR-GL46.sparse_texture_tests.SparseTextureCommitment,Fail diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 17bb89d4835..4b13a3e8186 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -453,7 +453,10 @@ get_image_usage_for_feats(struct zink_screen *screen, VkFormatFeatureFlags2 feat if (bind & PIPE_BIND_STREAM_OUTPUT) usage |= VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; - if (screen->info.have_EXT_host_image_copy && feats & VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT) + /* Add host transfer if not sparse */ + if (!(templ->flags & PIPE_RESOURCE_FLAG_SPARSE) && + screen->info.have_EXT_host_image_copy && + feats & VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT) usage |= VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT; return usage;