panfrost: Use first_tiler to check if tiling is needed
authorIcecream95 <ixn@disroot.org>
Mon, 31 May 2021 11:20:33 +0000 (23:20 +1200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 1 Jun 2021 13:27:54 +0000 (13:27 +0000)
If there is a preload job needing tiling, but no other jobs, then
first_tiler will be set but not tiler_dep.

Fixes faults when two depth-only (stencil is reloaded) clears are done
in a row.

panfrost ffa30000.gpu: Unhandled Page fault in AS1 at VA 0x0000000044870000
               Reason: TODO
               raw fault status: 0x49002C1
               decoded fault status: SLAVE FAULT
               exception type 0xC1: TRANSLATION_FAULT_LEVEL1
               access type 0x2: READ
               source id 0x490
panfrost ffa30000.gpu: gpu sched timeout, js=0, config=0x3301, status=0x8, head=0x608a300, tail=0x608a300, sched_job=f5b0862d

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11104>

src/panfrost/lib/pan_scoreboard.c

index 2a77798..3fb87c8 100644 (file)
@@ -195,7 +195,7 @@ panfrost_scoreboard_initialize_tiler(struct pan_pool *pool,
                 mali_ptr polygon_list)
 {
         /* Check if we even need tiling */
-        if (pan_is_bifrost(pool->dev) || !scoreboard->tiler_dep)
+        if (pan_is_bifrost(pool->dev) || !scoreboard->first_tiler)
                 return;
 
         /* Okay, we do. Let's generate it. We'll need the job's polygon list