anv/sparse: reject all sample flags that non-sparse doesn't support
We call anv_get_image_format_properties() from anv_GetPhysicalDeviceSparseImageFormatProperties2() because we want to reject all images that we don't support for the non-sparse case. That function does not take sample counts as its input, it outputs a list of possible sample counts. In this patch we check the sample counts it outputs: if what the user is querying isn't even supported by non-sparse, reject it right away. That saves us from having to code in anv_sparse_image_check_support() cases that are coded elsewhere. Examples include: 1D images and compressed formats. This change affects a number of dEQP tests, including: - dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r4g4b4a4_unorm_pack16 - dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc2_srgb_block Without this patch, and with sparse multi-sampling enabled, this would hit the following assertion: anv_formats.c:1903: anv_GetPhysicalDeviceSparseImageFormatProperties2: Assertion `false' failed. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27306>
This commit is contained in:
@@ -1840,6 +1840,10 @@ void anv_GetPhysicalDeviceSparseImageFormatProperties2(
|
||||
&img_info, &img_props) != VK_SUCCESS)
|
||||
return;
|
||||
|
||||
if ((pFormatInfo->samples &
|
||||
img_props.imageFormatProperties.sampleCounts) == 0)
|
||||
return;
|
||||
|
||||
if (anv_sparse_image_check_support(physical_device,
|
||||
VK_IMAGE_CREATE_SPARSE_BINDING_BIT |
|
||||
VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
|
||||
|
||||
Reference in New Issue
Block a user