Am 10.08.2015 um 07:03 schrieb Jason Ekstrand:
> This better ensures that the src_bits == dst_bits case gets optimized away.
> ---
> src/mesa/main/format_utils.h | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/main/format_utils.h b/src/mesa/main/format_utils.h
> index 00ec777..65314e6 100644
> --- a/src/mesa/main/format_utils.h
> +++ b/src/mesa/main/format_utils.h
> @@ -99,7 +99,7 @@ _mesa_unorm_to_unorm(unsigned x, unsigned src_bits,
> unsigned dst_bits)
> {
> if (src_bits < dst_bits) {
> return EXTEND_NORMALIZED_INT(x, src_bits, dst_bits);
> - } else {
> + } else if (src_bits > dst_bits) {
> unsigned src_half = (1 << (src_bits - 1)) - 1;
>
> if (src_bits + dst_bits > sizeof(x) * 8) {
> @@ -109,6 +109,8 @@ _mesa_unorm_to_unorm(unsigned x, unsigned src_bits,
> unsigned dst_bits)
> } else {
> return (x * MAX_UINT(dst_bits) + src_half) / MAX_UINT(src_bits);
> }
> + } else {
> + return x;
> }
> }
>
> @@ -151,8 +153,10 @@ _mesa_snorm_to_snorm(int x, unsigned src_bits, unsigned
> dst_bits)
> return -MAX_INT(dst_bits);
> else if (src_bits < dst_bits)
> return EXTEND_NORMALIZED_INT(x, src_bits - 1, dst_bits - 1);
> - else
> + else if (src_bits > dst_bits)
> return x >> (src_bits - dst_bits);
> + else
> + return x;
> }
>
> static inline unsigned
>
Reviewed-by: Roland Scheidegger <[email protected]>
(I don't care either way for the snorm case).
Roland
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev