panvk: We don't support linear filtering on integer formats
authorBoris Brezillon <boris.brezillon@collabora.com>
Fri, 3 Sep 2021 10:06:01 +0000 (12:06 +0200)
committerBoris Brezillon <boris.brezillon@collabora.com>
Fri, 10 Sep 2021 09:40:40 +0000 (11:40 +0200)
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12762>

src/panfrost/vulkan/panvk_formats.c

index b45b6af..3f299dc 100644 (file)
@@ -69,11 +69,15 @@ get_format_properties(struct panvk_physical_device *physical_device,
       tex |= VK_FORMAT_FEATURE_TRANSFER_SRC_BIT |
              VK_FORMAT_FEATURE_TRANSFER_DST_BIT |
              VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT |
-             VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT |
              VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT |
              VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT |
              VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT;
 
+      /* Integer formats only support nearest filtering */
+      if (!util_format_is_scaled(pfmt) &&
+          !util_format_is_pure_integer(pfmt))
+         tex |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT;
+
       buffer |= VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT;
 
       tex |= VK_FORMAT_FEATURE_BLIT_SRC_BIT;