Nice move to put the logic in its own function!

Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com>

On Mon, 2019-04-08 at 09:39 -0700, Lepton Wu wrote:
> virgl render complains about "Illegal resource" when running
> dEQP-EGL.functional.color_clears.single_context.gles2.rgb888_window,
> the reason is that a zero bind value was given for temp resource.
> 
> Signed-off-by: Lepton Wu <lep...@chromium.org>
> ---
>  src/gallium/drivers/virgl/virgl_texture.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/src/gallium/drivers/virgl/virgl_texture.c
> b/src/gallium/drivers/virgl/virgl_texture.c
> index 231319899e0..12b05b52508 100644
> --- a/src/gallium/drivers/virgl/virgl_texture.c
> +++ b/src/gallium/drivers/virgl/virgl_texture.c
> @@ -60,12 +60,22 @@ static void virgl_copy_region_with_blit(struct
> pipe_context *pipe,
>        pipe->blit(pipe, &blit);
>     }
>  }
> +
> +static unsigned int temp_bind(unsigned int orig)
> +{
> +   if (orig & ~(PIPE_BIND_RENDER_TARGET | PIPE_BIND_DEPTH_STENCIL |
> +                PIPE_BIND_SAMPLER_VIEW))
> +      fprintf(stderr, "Waring, possibly unhandled bind: %x\n",
> orig);
> +   return orig & (PIPE_BIND_DEPTH_STENCIL |
> PIPE_BIND_RENDER_TARGET);
> +}
> +
>  static void virgl_init_temp_resource_from_box(struct pipe_resource
> *res,
>                                                struct pipe_resource
> *orig,
>                                                const struct pipe_box
> *box,
>                                                unsigned level,
> unsigned flags)
>  {
>     memset(res, 0, sizeof(*res));
> +   res->bind = temp_bind(orig->bind);
>     res->format = orig->format;
>     res->width0 = box->width;
>     res->height0 = box->height;

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to