[Mesa-dev] [PATCH] softpipe: fix texture view crashes

Brian Paul brianp at vmware.com
Wed Mar 20 14:55:29 UTC 2019


On 03/19/2019 09:13 PM, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
> 
> I noticed we crashed piglit arb_texture_view-rendering-formats
> when run on softpipe.
> 
> This fixes the clear tiles to use the surface format not the
> underlying storage format.
> 
> This fixes a bunch of srgb piglits as well.
> ---
>   src/gallium/drivers/softpipe/sp_tile_cache.c | 11 ++++++-----
>   1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/src/gallium/drivers/softpipe/sp_tile_cache.c b/src/gallium/drivers/softpipe/sp_tile_cache.c
> index 351736ee421..998939bdf30 100644
> --- a/src/gallium/drivers/softpipe/sp_tile_cache.c
> +++ b/src/gallium/drivers/softpipe/sp_tile_cache.c
> @@ -373,17 +373,18 @@ sp_tile_cache_flush_clear(struct softpipe_tile_cache *tc, int layer)
>                  if (util_format_is_pure_uint(tc->surface->format)) {
>                     pipe_put_tile_ui_format(pt, tc->transfer_map[layer],
>                                             x, y, TILE_SIZE, TILE_SIZE,
> -                                          pt->resource->format,
> +                                          tc->surface->format,
>                                             (unsigned *) tc->tile->data.colorui128);
>                  } else if (util_format_is_pure_sint(tc->surface->format)) {
>                     pipe_put_tile_i_format(pt, tc->transfer_map[layer],
>                                            x, y, TILE_SIZE, TILE_SIZE,
> -                                         pt->resource->format,
> +                                         tc->surface->format,
>                                            (int *) tc->tile->data.colori128);
>                  } else {
> -                  pipe_put_tile_rgba(pt, tc->transfer_map[layer],
> -                                     x, y, TILE_SIZE, TILE_SIZE,
> -                                     (float *) tc->tile->data.color);
> +                  pipe_put_tile_rgba_format(pt, tc->transfer_map[layer],
> +                                            x, y, TILE_SIZE, TILE_SIZE,
> +                                            tc->surface->format,
> +                                            (float *) tc->tile->data.color);
>                  }
>               }
>               numCleared++;
> 

Reviewed-by: Brian Paul <brianp at vmware.com>


More information about the mesa-dev mailing list