summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/panfrost/pan_job.c
diff options
context:
space:
mode:
authorRohan Garg <[email protected]>2019-06-05 17:49:14 +0200
committerAlyssa Rosenzweig <[email protected]>2019-06-18 09:52:20 -0700
commitbfca21b622dfd2fcfe32494339aea9061070c7e5 (patch)
tree9e95c77145ba4d81f4d8adb97a5979ce4139f868 /src/gallium/drivers/panfrost/pan_job.c
parentdebb85d1ecccaad237261906186a2612f951a9b8 (diff)
panfrost: Figure out job requirements in pan_job.c
Requirements for a job should be figured out in pan_job.c v2: [Alyssa] Fix early return Reviewed-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/gallium/drivers/panfrost/pan_job.c')
-rw-r--r--src/gallium/drivers/panfrost/pan_job.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c
index 333c9f1f147..a7fc5f975cf 100644
--- a/src/gallium/drivers/panfrost/pan_job.c
+++ b/src/gallium/drivers/panfrost/pan_job.c
@@ -89,6 +89,7 @@ panfrost_get_job(struct panfrost_context *ctx,
memcpy(&job->key, &key, sizeof(key));
_mesa_hash_table_insert(ctx->jobs, &job->key, job);
+ panfrost_job_set_requirements(ctx, job);
return job;
}
@@ -165,6 +166,17 @@ panfrost_job_submit(struct panfrost_context *ctx, struct panfrost_job *job)
}
void
+panfrost_job_set_requirements(struct panfrost_context *ctx,
+ struct panfrost_job *job)
+{
+ if (ctx->rasterizer && ctx->rasterizer->base.multisample)
+ job->requirements |= PAN_REQ_MSAA;
+
+ if (ctx->depth_stencil && ctx->depth_stencil->depth.writemask)
+ job->requirements |= PAN_REQ_DEPTH_WRITE;
+}
+
+void
panfrost_flush_jobs_reading_resource(struct panfrost_context *panfrost,
struct pipe_resource *prsc)
{