[Mesa-dev] [PATCH 1/1] radeon: Don't check DCC on pipe buffers
Nicolai Hähnle
nhaehnle at gmail.com
Tue Sep 13 09:31:27 UTC 2016
What's the path via which r600_create_surface_custom is called with a
buffer instead of a texture?
If that happens, the assignment of surface->level_info is also incorrect...
Cheers,
Nicolai
On 13.09.2016 03:23, Jan Vesely wrote:
> Fixes segfaults in EG compute since:
> commit 21de3be8e62b2b093569a99550e6356ed2f106b4
> radeonsi: fix texture format reinterpretation with DCC
>
> Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
> ---
> src/gallium/drivers/radeon/r600_texture.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c
> index 41fd94b..d3a498f 100644
> --- a/src/gallium/drivers/radeon/r600_texture.c
> +++ b/src/gallium/drivers/radeon/r600_texture.c
> @@ -1788,9 +1788,10 @@ struct pipe_surface *r600_create_surface_custom(struct pipe_context *pipe,
> surface->base.u = templ->u;
> surface->level_info = &rtex->surface.level[templ->u.tex.level];
>
> - vi_dcc_disable_if_incompatible_format(rctx, texture,
> - templ->u.tex.level,
> - templ->format);
> + if (texture->target != PIPE_BUFFER)
> + vi_dcc_disable_if_incompatible_format(rctx, texture,
> + templ->u.tex.level,
> + templ->format);
>
> return &surface->base;
> }
>
More information about the mesa-dev
mailing list