diff --git a/src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt b/src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt index 1e1f856a0c0..8b8b34e3f26 100644 --- a/src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt @@ -686,8 +686,7 @@ spec@arb_gpu_shader_fp64@execution@arb_gpu_shader_fp64-vs-getuniformdv,Crash spec@arb_fragment_layer_viewport@layer-no-gs,Fail -# anv_sparse_calc_image_format_properties: Assertion `is_standard || is_known_nonstandard_format' failed -KHR-GL46.sparse_texture_tests.SparseTextureAllocation,Crash +# sparse_backing_alloc: Assertion `bo->u.sparse.num_backing_pages < DIV_ROUND_UP(bo->base.size, ZINK_SPARSE_BUFFER_PAGE_SIZE)' failed KHR-GL46.sparse_texture_tests.SparseTextureCommitment,Crash # Assertion `size % ZINK_SPARSE_BUFFER_PAGE_SIZE == 0 || offset + size == bo->base.size' failed. diff --git a/src/intel/vulkan/anv_sparse.c b/src/intel/vulkan/anv_sparse.c index 53002a7cdc2..180cf7e2c5d 100644 --- a/src/intel/vulkan/anv_sparse.c +++ b/src/intel/vulkan/anv_sparse.c @@ -812,6 +812,13 @@ anv_sparse_calc_image_format_properties(struct anv_physical_device *pdevice, if (pdevice->info.verx10 >= 125 && isl_format_is_yuv(surf->format)) is_known_nonstandard_format = true; + /* The standard block shapes (and by extension, the tiling formats they + * require) are simply incompatible with getting a 2D view of a 3D + * image. + */ + if (surf->usage & ISL_SURF_USAGE_2D_3D_COMPATIBLE_BIT) + is_known_nonstandard_format = true; + is_standard = granularity.width == std_shape.width && granularity.height == std_shape.height && granularity.depth == std_shape.depth;