Module: Mesa Branch: master Commit: 12f790f7dac469909a30fa6d882a2790207df9a2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=12f790f7dac469909a30fa6d882a2790207df9a2
Author: Boris Brezillon <[email protected]> Date: Tue Oct 1 20:12:12 2019 +0200 panfrost: Add the shader BO to the batch in patch_shader_state() We know a shader will be used by a batch when panfrost_patch_shader_state() is called, so let's add the shader BO at that time. Suggested-by: Alyssa Rosenzweig <[email protected]> Signed-off-by: Boris Brezillon <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> --- src/gallium/drivers/panfrost/pan_context.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index 1b8558c1c2c..ba32564b6e0 100644 --- a/src/gallium/drivers/panfrost/pan_context.c +++ b/src/gallium/drivers/panfrost/pan_context.c @@ -842,12 +842,15 @@ panfrost_patch_shader_state( unsigned ubo_count = panfrost_ubo_count(ctx, stage); ss->tripipe->midgard1.uniform_buffer_count = ubo_count; + struct panfrost_batch *batch = panfrost_get_batch_for_fbo(ctx); + + /* Add the shader BO to the batch. */ + panfrost_batch_add_bo(batch, ss->bo); + /* We can't reuse over frames; that's not safe. The descriptor must be * transient uploaded */ if (should_upload) { - struct panfrost_batch *batch = panfrost_get_batch_for_fbo(ctx); - return panfrost_upload_transient(batch, ss->tripipe, sizeof(struct mali_shader_meta)); } @@ -936,8 +939,6 @@ panfrost_emit_for_draw(struct panfrost_context *ctx, bool with_vertex_data) panfrost_patch_shader_state(ctx, variant, PIPE_SHADER_FRAGMENT, false); - panfrost_batch_add_bo(batch, variant->bo); - #define COPY(name) ctx->fragment_shader_core.name = variant->tripipe->name COPY(shader); @@ -1121,8 +1122,6 @@ 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); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
