[Mesa-dev] [PATCH] radeonsi: copy *8_SNORM bits exactly in resource_copy_region

Michel Dänzer michel at daenzer.net
Thu Jul 30 20:27:23 PDT 2015


On 31.07.2015 01:29, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
> 
> Disabling the FP16 mode didn't help.
> 
> If needed, we can use this trick for blits too, but not for scaled blits.
> 
> + 4 piglits
> ---
>  src/gallium/drivers/radeonsi/si_blit.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c
> index c892623..61ca2a8 100644
> --- a/src/gallium/drivers/radeonsi/si_blit.c
> +++ b/src/gallium/drivers/radeonsi/si_blit.c
> @@ -522,7 +522,9 @@ void si_resource_copy_region(struct pipe_context *ctx,
>  		src_box = &sbox;
>  
>  		src_force_level = src_level;
> -	} else if (!util_blitter_is_copy_supported(sctx->blitter, dst, src)) {
> +	} else if (!util_blitter_is_copy_supported(sctx->blitter, dst, src) ||
> +		   /* also *8_SNORM has precision issues, use UNORM instead */
> +		   util_format_is_snorm(src->format)) {
>  		if (util_format_is_subsampled_422(src->format)) {
>  			src_templ.format = PIPE_FORMAT_R8G8B8A8_UINT;
>  			dst_templ.format = PIPE_FORMAT_R8G8B8A8_UINT;
> 

Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the mesa-dev mailing list