From: Boris Brezillon Date: Thu, 5 Sep 2019 19:41:27 +0000 (+0200) Subject: panfrost: Pass a batch to panfrost_drm_submit_vs_fs_batch() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=beb18c6172a505770d959f9fcb01d126011d12bc;p=mesa.git panfrost: Pass a batch to panfrost_drm_submit_vs_fs_batch() Given the function name it makes more sense to pass it a job batch directly. Signed-off-by: Boris Brezillon Reviewed-by: Daniel Stone Reviewed-by: Alyssa Rosenzweig --- diff --git a/src/gallium/drivers/panfrost/pan_drm.c b/src/gallium/drivers/panfrost/pan_drm.c index 75fc5a726b1..768d9602eee 100644 --- a/src/gallium/drivers/panfrost/pan_drm.c +++ b/src/gallium/drivers/panfrost/pan_drm.c @@ -248,12 +248,12 @@ panfrost_drm_export_bo(struct panfrost_screen *screen, const struct panfrost_bo } static int -panfrost_drm_submit_batch(struct panfrost_context *ctx, u64 first_job_desc, +panfrost_drm_submit_batch(struct panfrost_batch *batch, u64 first_job_desc, int reqs) { + struct panfrost_context *ctx = batch->ctx; struct pipe_context *gallium = (struct pipe_context *) ctx; struct panfrost_screen *screen = pan_screen(gallium->screen); - struct panfrost_batch *batch = panfrost_get_batch_for_fbo(ctx); struct drm_panfrost_submit submit = {0,}; int *bo_handles, ret; @@ -293,23 +293,22 @@ panfrost_drm_submit_batch(struct panfrost_context *ctx, u64 first_job_desc, } int -panfrost_drm_submit_vs_fs_batch(struct panfrost_context *ctx, bool has_draws) +panfrost_drm_submit_vs_fs_batch(struct panfrost_batch *batch, bool has_draws) { + struct panfrost_context *ctx = batch->ctx; int ret = 0; - struct panfrost_batch *batch = panfrost_get_batch_for_fbo(ctx); - panfrost_batch_add_bo(batch, ctx->scratchpad.bo); panfrost_batch_add_bo(batch, ctx->tiler_heap.bo); panfrost_batch_add_bo(batch, batch->polygon_list); if (batch->first_job.gpu) { - ret = panfrost_drm_submit_batch(ctx, batch->first_job.gpu, 0); + ret = panfrost_drm_submit_batch(batch, batch->first_job.gpu, 0); assert(!ret); } if (batch->first_tiler.gpu || batch->clear) { - ret = panfrost_drm_submit_batch(ctx, + ret = panfrost_drm_submit_batch(batch, panfrost_fragment_job(ctx, has_draws), PANFROST_JD_REQ_FS); assert(!ret); diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c index a019c2adf69..f136ccb97fc 100644 --- a/src/gallium/drivers/panfrost/pan_job.c +++ b/src/gallium/drivers/panfrost/pan_job.c @@ -211,7 +211,7 @@ panfrost_batch_submit(struct panfrost_context *ctx, struct panfrost_batch *batch bool has_draws = batch->last_job.gpu; - ret = panfrost_drm_submit_vs_fs_batch(ctx, has_draws); + ret = panfrost_drm_submit_vs_fs_batch(batch, has_draws); if (ret) fprintf(stderr, "panfrost_batch_submit failed: %d\n", ret); diff --git a/src/gallium/drivers/panfrost/pan_screen.h b/src/gallium/drivers/panfrost/pan_screen.h index 3017b9c154f..11cbb72075a 100644 --- a/src/gallium/drivers/panfrost/pan_screen.h +++ b/src/gallium/drivers/panfrost/pan_screen.h @@ -39,6 +39,7 @@ #include #include "pan_allocate.h" +struct panfrost_batch; struct panfrost_context; struct panfrost_resource; struct panfrost_screen; @@ -163,7 +164,7 @@ panfrost_drm_import_bo(struct panfrost_screen *screen, int fd); int panfrost_drm_export_bo(struct panfrost_screen *screen, const struct panfrost_bo *bo); int -panfrost_drm_submit_vs_fs_batch(struct panfrost_context *ctx, bool has_draws); +panfrost_drm_submit_vs_fs_batch(struct panfrost_batch *batch, bool has_draws); void panfrost_drm_force_flush_fragment(struct panfrost_context *ctx, struct pipe_fence_handle **fence);