From: Rohan Garg Date: Wed, 5 Jun 2019 14:20:59 +0000 (+0200) Subject: panfrost: Initial implementation of panfrost_job_submit X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0f43a2ae8afe217efaff9c0436388323a5f0d7b7;p=mesa.git panfrost: Initial implementation of panfrost_job_submit Start fleshing out panfrost_job v2: [Alyssa: Remove unused variable, warning introduced] Reviewed-by: Alyssa Rosenzweig --- diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index ed19fa17645..9b6ab41373d 100644 --- a/src/gallium/drivers/panfrost/pan_context.c +++ b/src/gallium/drivers/panfrost/pan_context.c @@ -1473,13 +1473,9 @@ panfrost_submit_frame(struct panfrost_context *ctx, bool flush_immediate, struct pipe_context *gallium = (struct pipe_context *) ctx; struct panfrost_screen *screen = pan_screen(gallium->screen); - /* Edge case if screen is cleared and nothing else */ - bool has_draws = ctx->draw_count > 0; - #ifndef DRY_RUN - bool is_scanout = panfrost_is_scanout(ctx); - screen->driver->submit_vs_fs_job(ctx, has_draws, is_scanout); + panfrost_job_submit(ctx, job); /* If visual, we can stall a frame */ diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c index 6e913ac3374..1e09760871c 100644 --- a/src/gallium/drivers/panfrost/pan_job.c +++ b/src/gallium/drivers/panfrost/pan_job.c @@ -140,6 +140,26 @@ panfrost_flush_jobs_writing_resource(struct panfrost_context *panfrost, /* TODO stub */ } +void +panfrost_job_submit(struct panfrost_context *ctx, struct panfrost_job *job) +{ + struct pipe_context *gallium = (struct pipe_context *) ctx; + struct panfrost_screen *screen = pan_screen(gallium->screen); + int ret; + + bool has_draws = ctx->draw_count > 0; + bool is_scanout = panfrost_is_scanout(ctx); + + if (!job) + return; + + ret = screen->driver->submit_vs_fs_job(ctx, has_draws, is_scanout); + + if (ret) + fprintf(stderr, "panfrost_job_submit failed: %d\n", ret); + +} + void panfrost_flush_jobs_reading_resource(struct panfrost_context *panfrost, struct pipe_resource *prsc) diff --git a/src/gallium/drivers/panfrost/pan_job.h b/src/gallium/drivers/panfrost/pan_job.h index 1b28084c599..afc9ac4e58f 100644 --- a/src/gallium/drivers/panfrost/pan_job.h +++ b/src/gallium/drivers/panfrost/pan_job.h @@ -88,4 +88,6 @@ void panfrost_flush_jobs_reading_resource(struct panfrost_context *panfrost, struct pipe_resource *prsc); +void +panfrost_job_submit(struct panfrost_context *ctx, struct panfrost_job *job); #endif