panfrost: Split bit out of format.unk3
authorTomeu Vizoso <tomeu.vizoso@collabora.com>
Fri, 24 Apr 2020 09:30:03 +0000 (11:30 +0200)
committerTomeu Vizoso <tomeu.vizoso@collabora.com>
Fri, 1 May 2020 14:51:36 +0000 (16:51 +0200)
On Bifrost traces, we can observe that this bit is always enabled.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4832>

src/gallium/drivers/panfrost/pan_mfbd.c
src/panfrost/include/panfrost-job.h
src/panfrost/pandecode/decode.c

index 562a05ff2dfdb8f4fd5f3634943166f9f902964a..2c011fda0029f070a1542df396c6a744b9e3e6b8 100644 (file)
@@ -31,6 +31,9 @@
 static struct mali_rt_format
 panfrost_mfbd_format(struct pipe_surface *surf)
 {
+        struct panfrost_device *dev = pan_device(surf->context->screen);
+        bool is_bifrost = dev->quirks & IS_BIFROST;
+
         /* Explode details on the format */
 
         const struct util_format_description *desc =
@@ -48,6 +51,7 @@ panfrost_mfbd_format(struct pipe_surface *surf)
                 .unk2 = 0x1,
                 .nr_channels = MALI_POSITIVE(desc->nr_channels),
                 .unk3 = 0x4,
+                .unk4 = is_bifrost,
                 .flags = 0x8,
                 .swizzle = panfrost_translate_swizzle_4(swizzle),
                 .no_preload = true
index d3a538ab53ad7f64fb52c702db4812720c325eab..827f9287d4f70c60f286a36bc159d1c6c2e844ac 100644 (file)
@@ -1637,7 +1637,8 @@ struct mali_rt_format {
 
         unsigned nr_channels : 2; /* MALI_POSITIVE */
 
-        unsigned unk3 : 5;
+        unsigned unk3 : 4;
+        unsigned unk4 : 1;
         enum mali_block_format block : 2;
         unsigned flags : 4;
 
index 48b179ab69e977553d65ead5230e4322a9825cf3..743abc00d137a7e3f245efb61eaab70931e8e5eb 100644 (file)
@@ -991,6 +991,7 @@ pandecode_rt_format(struct mali_rt_format format)
         pandecode_prop("unk1 = 0x%" PRIx32, format.unk1);
         pandecode_prop("unk2 = 0x%" PRIx32, format.unk2);
         pandecode_prop("unk3 = 0x%" PRIx32, format.unk3);
+        pandecode_prop("unk4 = 0x%" PRIx32, format.unk4);
 
         pandecode_prop("block = %s", pandecode_block_format(format.block));