summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoris Brezillon <[email protected]>2019-09-14 17:32:02 +0200
committerBoris Brezillon <[email protected]>2019-09-18 10:27:09 +0200
commitc16fb1f48dc349b0eb54bf12aab13a113fb2f29e (patch)
tree70b83086c1eb0e713ffdcfef7fd7056ce61fccf6
parenta94d0280652d534d379111e1bf164450079510cf (diff)
panfrost: Add missing panfrost_batch_add_bo() calls
Some BOs are used by batches but never explicitly added to the BO set. This is currently not a problem because we wait for the execution of a batch to be finished before releasing a BO, but we will soon relax this rule. Signed-off-by: Boris Brezillon <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]>
-rw-r--r--src/gallium/drivers/panfrost/pan_context.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
index a063c16ab01..06a12662dd3 100644
--- a/src/gallium/drivers/panfrost/pan_context.c
+++ b/src/gallium/drivers/panfrost/pan_context.c
@@ -794,11 +794,12 @@ panfrost_map_constant_buffer_gpu(
{
struct pipe_constant_buffer *cb = &buf->cb[index];
struct panfrost_resource *rsrc = pan_resource(cb->buffer);
+ struct panfrost_batch *batch = panfrost_get_batch_for_fbo(ctx);
if (rsrc) {
+ panfrost_batch_add_bo(batch, rsrc->bo);
return rsrc->bo->gpu;
} else if (cb->user_buffer) {
- struct panfrost_batch *batch = panfrost_get_batch_for_fbo(ctx);
return panfrost_upload_transient(batch, cb->user_buffer, cb->buffer_size);
} else {
unreachable("No constant buffer");
@@ -1113,6 +1114,8 @@ panfrost_emit_for_draw(struct panfrost_context *ctx, bool with_vertex_data)
struct panfrost_shader_state *ss = &all->variants[all->active_variant];
+ panfrost_batch_add_bo(batch, ss->bo);
+
/* Uniforms are implicitly UBO #0 */
bool has_uniforms = buf->enabled_mask & (1 << 0);