panfrost: Identify layer_stride
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tue, 30 Jun 2020 20:21:18 +0000 (16:21 -0400)
committerMarge Bot <eric+marge@anholt.net>
Tue, 7 Jul 2020 01:13:39 +0000 (01:13 +0000)
For MSAA.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>

src/panfrost/include/panfrost-job.h
src/panfrost/pandecode/decode.c

index f58776a709ed74f78d0c583cb85bc89fc1360f7a..50159c3eb103fa15b6b8d6a1098685555f4a7b9f 100644 (file)
@@ -1738,8 +1738,8 @@ struct mali_render_target {
         mali_ptr framebuffer;
 
         u32 zero2 : 4;
-        u32 framebuffer_stride : 28; // in units of bytes
-        u32 zero3;
+        u32 framebuffer_stride : 28; // in units of bytes, row to next
+        u32 layer_stride; /* For multisample rendering */
 
         u32 clear_color_1; // RGBA8888 from glClear, actually used by hardware
         u32 clear_color_2; // always equal, but unclear function?
index ea50020c0218a3829c9a44a18e182d0e3b7eb973..37f384eff582d266da714624d14141e1b2927cb3 100644 (file)
@@ -1088,6 +1088,9 @@ pandecode_render_target(uint64_t gpu_va, unsigned job_no, const struct mali_fram
                 MEMORY_PROP(rt, framebuffer);
                 pandecode_prop("framebuffer_stride = %d", rt->framebuffer_stride);
 
+                if (rt->layer_stride)
+                        pandecode_prop("layer_stride = %d", rt->layer_stride);
+
                 if (rt->clear_color_1 | rt->clear_color_2 | rt->clear_color_3 | rt->clear_color_4) {
                         pandecode_prop("clear_color_1 = 0x%" PRIx32, rt->clear_color_1);
                         pandecode_prop("clear_color_2 = 0x%" PRIx32, rt->clear_color_2);
@@ -1095,11 +1098,10 @@ pandecode_render_target(uint64_t gpu_va, unsigned job_no, const struct mali_fram
                         pandecode_prop("clear_color_4 = 0x%" PRIx32, rt->clear_color_4);
                 }
 
-                if (rt->zero1 || rt->zero2 || rt->zero3) {
+                if (rt->zero1 || rt->zero2) {
                         pandecode_msg("XXX: render target zeros tripped\n");
                         pandecode_prop("zero1 = 0x%" PRIx64, rt->zero1);
                         pandecode_prop("zero2 = 0x%" PRIx32, rt->zero2);
-                        pandecode_prop("zero3 = 0x%" PRIx32, rt->zero3);
                 }
 
                 pandecode_indent--;