Mesa (main): panvk: Don't use panfrost_get_default_swizzle() on v7+

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Oct 4 12:32:31 UTC 2021


Module: Mesa
Branch: main
Commit: 4692baacfb374245853678dbe5e7d3c16062ac62
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4692baacfb374245853678dbe5e7d3c16062ac62

Author: Boris Brezillon <boris.brezillon at collabora.com>
Date:   Thu Sep 30 10:52:07 2021 +0200

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 <boris.brezillon at collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13136>

---

 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)



More information about the mesa-commit mailing list