From 0cc02c9ea6198d498d8cebad524c3875d2d692f0 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Thu, 4 Jul 2019 09:59:30 +0200 Subject: [PATCH] panfrost: Take into account off-screen FBOs In that case, ctx->pipe_framebuffer.cbufs[0] can be NULL. Signed-off-by: Tomeu Vizoso Cc: Boris Brezillon Fixes: 5375d009be18 ("panfrost: Pass referenced BOs to the SUBMIT ioctls") --- src/gallium/drivers/panfrost/pan_drm.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_drm.c b/src/gallium/drivers/panfrost/pan_drm.c index 8de4f483435..b89f8e66a87 100644 --- a/src/gallium/drivers/panfrost/pan_drm.c +++ b/src/gallium/drivers/panfrost/pan_drm.c @@ -238,7 +238,6 @@ panfrost_drm_submit_job(struct panfrost_context *ctx, u64 job_desc, int reqs) int panfrost_drm_submit_vs_fs_job(struct panfrost_context *ctx, bool has_draws, bool is_scanout) { - struct pipe_surface *surf = ctx->pipe_framebuffer.cbufs[0]; int ret; struct panfrost_job *job = panfrost_get_job_for_fbo(ctx); @@ -256,9 +255,12 @@ panfrost_drm_submit_vs_fs_job(struct panfrost_context *ctx, bool has_draws, bool } if (job->first_tiler.gpu || job->clear) { - struct panfrost_resource *res = pan_resource(surf->texture); - assert(res->bo); - panfrost_job_add_bo(job, res->bo); + struct pipe_surface *surf = ctx->pipe_framebuffer.cbufs[0]; + if (surf) { + struct panfrost_resource *res = pan_resource(surf->texture); + assert(res->bo); + panfrost_job_add_bo(job, res->bo); + } ret = panfrost_drm_submit_job(ctx, panfrost_fragment_job(ctx, has_draws), PANFROST_JD_REQ_FS); assert(!ret); } -- 2.30.2