panfrost: Take into account off-screen FBOs

In that case, ctx->pipe_framebuffer.cbufs[0] can be NULL.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Cc: Boris Brezillon <boris.brezillon@collabora.com>
Fixes: 5375d009be ("panfrost: Pass referenced BOs to the SUBMIT ioctls")
This commit is contained in:
Tomeu Vizoso 2019-07-04 09:59:30 +02:00
parent f39a7fd627
commit 0cc02c9ea6

View file

@ -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);
}