[Mesa-dev] [PATCH] panfrost: Take into account off-screen FBOs

Boris Brezillon boris.brezillon at collabora.com
Thu Jul 4 08:05:54 UTC 2019


On Thu,  4 Jul 2019 10:02:54 +0200
Tomeu Vizoso <tomeu.vizoso at collabora.com> wrote:

> In that case, ctx->pipe_framebuffer.cbufs[0] can be NULL.
> 
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>
> Cc: Boris Brezillon <boris.brezillon at collabora.com>

Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>

> 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 8de4f483435c..b89f8e66a877 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);
>          }



More information about the mesa-dev mailing list