diff options
author | Marek Olšák <[email protected]> | 2015-07-30 17:38:44 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2015-07-31 16:49:17 +0200 |
commit | 30509788641a413742098f21a4ee0087b1f86e18 (patch) | |
tree | 58fb1f904204206d960304c401eb626d9bb1bcb5 /src/gallium/drivers/radeonsi | |
parent | 64d3130994bde98b0be44a5c54511e376b6d994e (diff) |
radeonsi: copy *8_SNORM bits exactly in resource_copy_region
Disabling the FP16 mode didn't help.
If needed, we can use this trick for blits too, but not for scaled blits.
+ 4 piglits
Reviewed-by: Michel Dänzer <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_blit.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index c8926238940..61ca2a82195 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; |