This fulfills a requirement for clients that want to utilize same
code path for images with external formats (VK_FORMAT_UNDEFINED) and
"regular" RGBA images where format is known. This is similar to how
OES_EGL_image_external works.

To support this, we allow color conversion samplers for non-YUV
formats but skip setting up conversion when format does not have
can_ycbcr flag set.

Signed-off-by: Tapani Pälli <tapani.pa...@intel.com>
---
 src/intel/vulkan/genX_state.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/intel/vulkan/genX_state.c b/src/intel/vulkan/genX_state.c
index 42800a2581e..9b579d3118c 100644
--- a/src/intel/vulkan/genX_state.c
+++ b/src/intel/vulkan/genX_state.c
@@ -337,8 +337,11 @@ VkResult genX(CreateSampler)(
          if (conversion == NULL)
             break;
 
-         sampler->n_planes = conversion->format->n_planes;
-         sampler->conversion = conversion;
+         /* Setup conversion only if format is YUV format. */
+         if (conversion && conversion->format->can_ycbcr) {
+            sampler->n_planes = conversion->format->n_planes;
+            sampler->conversion = conversion;
+         }
          break;
       }
 #if GEN_GEN >= 9
-- 
2.17.2

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to