pan/decode: Fix helper invocations when tracing
authorIcecream95 <ixn@keemail.me>
Sat, 20 Jun 2020 05:54:19 +0000 (17:54 +1200)
committerMarge Bot <eric+marge@anholt.net>
Mon, 22 Jun 2020 12:15:05 +0000 (12:15 +0000)
midgard1.flags_lo was being changed when tracing, causing helper
invocations to be disabled.

This was found by using mprotect to make BOs read only in
pandecode_fetch_gpu_mem.

Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5573>

src/panfrost/pandecode/decode.c

index 76352173b933d2dcfb2dfcb4503f6b8c6df13e58..1774bedafefcbf358a6aa944f4568e81a1f3e83a 100644 (file)
@@ -2616,7 +2616,6 @@ pandecode_vertex_tiler_postfix_pre(
                         pandecode_log_cont(",\n");
                 } else {
                         bool helpers = s->midgard1.flags_lo & MALI_HELPER_INVOCATIONS;
-                        s->midgard1.flags_lo &= ~MALI_HELPER_INVOCATIONS;
 
                         if (helpers != info.helper_invocations) {
                                 pandecode_msg("XXX: expected helpers %u but got %u\n",
@@ -2624,7 +2623,8 @@ pandecode_vertex_tiler_postfix_pre(
                         }
 
                         pandecode_log(".midgard1.flags_lo = ");
-                        pandecode_log_decoded_flags(shader_midgard1_flag_lo_info, s->midgard1.flags_lo);
+                        pandecode_log_decoded_flags(shader_midgard1_flag_lo_info,
+                                                    s->midgard1.flags_lo & ~MALI_HELPER_INVOCATIONS);
                         pandecode_log_cont(",\n");
 
                         pandecode_log(".midgard1.flags_hi = ");