From b9801a3c08183f1bc7d7c5129eadf06d22fef1b1 Mon Sep 17 00:00:00 2001 From: Mohamed Ahmed Date: Thu, 10 Aug 2023 19:44:01 +0300 Subject: [PATCH] nvk: Enable SEPARATE_RECONSTRUCTION_FILTER_BIT for multi-planar formats only Part-of: --- src/nouveau/vulkan/nvk_image.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/nouveau/vulkan/nvk_image.c b/src/nouveau/vulkan/nvk_image.c index 90ebbae..60be1a7 100644 --- a/src/nouveau/vulkan/nvk_image.c +++ b/src/nouveau/vulkan/nvk_image.c @@ -112,11 +112,17 @@ nvk_get_image_format_features(struct nvk_physical_device *pdev, /* These are supported on all YCbCr formats */ features |= VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT | - VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT | - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT; - - if (ycbcr_info->n_planes > 1) - features |= VK_FORMAT_FEATURE_DISJOINT_BIT; + VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT; + + if (ycbcr_info->n_planes > 1) { + /* DISJOINT_BIT implies that each plane has its own separate binding, + * while SEPARATE_RECONSTRUCTION_FILTER_BIT implies that luma and chroma + * each have their own, separate filters, so these two bits make sense + * for multi-planar formats only. + */ + features |= VK_FORMAT_FEATURE_DISJOINT_BIT | + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT; + } if (cosited_chroma) features |= VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT; -- 2.7.4