panfrost: Split up batches with many jobs

If there are too many jobs in a batch, split it. Although the GPU
theoretically supports 65536 jobs in a batch, set the threshold lower
to avoid GPU timeouts.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8130>
This commit is contained in:
Icecream95
2020-12-16 22:57:22 +13:00
committed by Marge Bot
parent 720a2d8f29
commit e541aa76e2

View File

@@ -493,6 +493,11 @@ panfrost_draw_vbo(
/* Now that we have a guaranteed terminating path, find the job. */
struct panfrost_batch *batch = panfrost_get_batch_for_fbo(ctx);
/* Don't add too many jobs to a single batch */
if (batch->scoreboard.job_index > 10000)
batch = panfrost_get_fresh_batch_for_fbo(ctx);
panfrost_batch_set_requirements(batch);
/* Take into account a negative bias */