panfrost: Fix T6XX Support
authorArnaud Patard <arnaud.patard@rtp-net.org>
Tue, 23 Jul 2019 13:42:00 +0000 (06:42 -0700)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tue, 23 Jul 2019 15:04:42 +0000 (08:04 -0700)
While testing kmscube with mesa master, it turns out that kmscube is not
working anymore. After bisecting, commit
5a7688fdecd76c7d9cd87f6f6c93eb32870a2146 is the culprit. A short trial
and error session allowed to find the removed bit of code making kmscube
working again.

This patch adds it back.

Fixes: 5a7688fde ("panfrost: Use 64-bit descriptors globally")
v2: Add comment pointing out this is magic. [Alyssa, trivial]

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/gallium/drivers/panfrost/pan_context.c

index 20da92a230be56f4104d9322f89425fa7b9a33bd..2f19113e703da14c0f6d29531dbae6a469024498 100644 (file)
@@ -453,7 +453,15 @@ panfrost_default_shader_backend(struct panfrost_context *ctx)
                 .unknown2_4 = MALI_NO_MSAA | 0x4e0,
         };
 
-        /* unknown2_4 has 0x10 bit set on 32-bit T6XX */
+        /* unknown2_4 has 0x10 bit set on T6XX. We don't know why this is
+         * required (independent of 32-bit/64-bit descriptors), or why it's not
+         * used on later GPU revisions. Otherwise, all shader jobs fault on
+         * these earlier chips (perhaps this is a chicken bit of some kind).
+         * More investigation is needed. */
+
+       if (ctx->is_t6xx) {
+               shader.unknown2_4 |= 0x10;
+       }
 
         struct pipe_stencil_state default_stencil = {
                 .enabled = 0,