From 4692baacfb374245853678dbe5e7d3c16062ac62 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Thu, 30 Sep 2021 10:52:07 +0200 Subject: [PATCH] panvk: Don't use panfrost_get_default_swizzle() on v7+ This helper produces invalid component order values on v7. Use the MALI_RGB_COMPONENT_ORDER_xxx definitions instead. Signed-off-by: Boris Brezillon Reviewed-by: Tomeu Vizoso Part-of: --- src/panfrost/vulkan/panvk_vX_cs.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/panfrost/vulkan/panvk_vX_cs.c b/src/panfrost/vulkan/panvk_vX_cs.c index 22e7d24bc0c..521648d91d1 100644 --- a/src/panfrost/vulkan/panvk_vX_cs.c +++ b/src/panfrost/vulkan/panvk_vX_cs.c @@ -110,10 +110,19 @@ panvk_varying_hw_format(const struct panvk_device *dev, switch (loc) { case VARYING_SLOT_PNTC: case VARYING_SLOT_PSIZ: +#if PAN_ARCH <= 6 return (MALI_R16F << 12) | panfrost_get_default_swizzle(1); +#else + return (MALI_R16F << 12) | MALI_RGB_COMPONENT_ORDER_R000; +#endif case VARYING_SLOT_POS: +#if PAN_ARCH <= 6 return ((fs ? MALI_RGBA32F : MALI_SNAP_4) << 12) | panfrost_get_default_swizzle(4); +#else + return ((fs ? MALI_RGBA32F : MALI_SNAP_4) << 12) | + MALI_RGB_COMPONENT_ORDER_RGBA; +#endif default: assert(!panvk_varying_is_builtin(stage, loc)); if (varyings->varying[loc].format != PIPE_FORMAT_NONE)