panfrost: Add the tiler heap to fragment jobs

In some cases the GPU reads from the tiler heap in fragment jobs, so
always add it to GPU jobs.

Fixes faults in many applications that use multiple windows
(e.g. Firefox, plasmashell).

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4157
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8773>
(cherry picked from commit 4fec6c9448)
This commit is contained in:
Icecream95 2021-01-29 12:48:56 +13:00 committed by Dylan Baker
parent 5f2c793c81
commit cdebbc1846
2 changed files with 4 additions and 4 deletions

View file

@ -1390,7 +1390,7 @@
"description": "panfrost: Add the tiler heap to fragment jobs",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": null
},

View file

@ -978,9 +978,9 @@ panfrost_batch_submit_ioctl(struct panfrost_batch *batch,
panfrost_pool_get_bo_handles(&batch->invisible_pool, bo_handles + submit.bo_handle_count);
submit.bo_handle_count += panfrost_pool_num_bos(&batch->invisible_pool);
/* Used by all tiler jobs (XXX: skip for compute-only) */
if (!(reqs & PANFROST_JD_REQ_FS))
bo_handles[submit.bo_handle_count++] = dev->tiler_heap->gem_handle;
/* Used by all tiler jobs, and occasionally by fragment jobs.
* (XXX: skip for compute-only) */
bo_handles[submit.bo_handle_count++] = dev->tiler_heap->gem_handle;
submit.bo_handles = (u64) (uintptr_t) bo_handles;
ret = drmIoctl(dev->fd, DRM_IOCTL_PANFROST_SUBMIT, &submit);