[Mesa-dev] [PATCH 10/26] python: Use explicit integer divisions

Dylan Baker dylan at pnwbakers.com
Thu Jul 5 16:04:06 UTC 2018


How about using future division (ala from __future__ import division), which
makes division behave like python 3 division,

So that

>>> 32 / 4
8.0

>>> 32 // 4
8

(I'm really a fan of python 3's explicit integer and float division operators)

Quoting Mathieu Bridon (2018-07-05 06:17:41)
> In Python 2, divisions return an integer:
> 
>     >>> 32 / 4
>     8
> 
> In Python 3 though, they return floats:
> 
>     >>> 32 / 4
>     8.0
> 
> Explicitly converting to integers make the scripts compatible with both
> Python 2 and 3.
> 
> Signed-off-by: Mathieu Bridon <bochecha at daitauha.fr>
> ---
>  src/gallium/auxiliary/util/u_format_pack.py  | 2 +-
>  src/gallium/auxiliary/util/u_format_parse.py | 4 ++--
>  src/mapi/glapi/gen/glX_proto_send.py         | 2 +-
>  src/mesa/main/format_info.py                 | 2 +-
>  src/mesa/main/format_pack.py                 | 6 +++---
>  src/mesa/main/format_unpack.py               | 6 +++---
>  6 files changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py
> index 7a952a48b3..1cfd85fb7f 100644
> --- a/src/gallium/auxiliary/util/u_format_pack.py
> +++ b/src/gallium/auxiliary/util/u_format_pack.py
> @@ -240,7 +240,7 @@ def value_to_native(type, value):
>              return truncate_mantissa(value, 23)
>          return value
>      if type.type == FIXED:
> -        return int(value * (1 << (type.size/2)))
> +        return int(value * (1 << int(type.size/2)))
>      if not type.norm:
>          return int(value)
>      if type.type == UNSIGNED:
> diff --git a/src/gallium/auxiliary/util/u_format_parse.py b/src/gallium/auxiliary/util/u_format_parse.py
> index c0456f6d15..315c771081 100644
> --- a/src/gallium/auxiliary/util/u_format_parse.py
> +++ b/src/gallium/auxiliary/util/u_format_parse.py
> @@ -76,7 +76,7 @@ class Channel:
>          if self.type == FLOAT:
>              return VERY_LARGE
>          if self.type == FIXED:
> -            return (1 << (self.size/2)) - 1
> +            return (1 << int(self.size/2)) - 1
>          if self.norm:
>              return 1
>          if self.type == UNSIGNED:
> @@ -90,7 +90,7 @@ class Channel:
>          if self.type == FLOAT:
>              return -VERY_LARGE
>          if self.type == FIXED:
> -            return -(1 << (self.size/2))
> +            return -(1 << int(self.size/2))
>          if self.type == UNSIGNED:
>              return 0
>          if self.norm:
> diff --git a/src/mapi/glapi/gen/glX_proto_send.py b/src/mapi/glapi/gen/glX_proto_send.py
> index a920ecc012..28f8a0d67b 100644
> --- a/src/mapi/glapi/gen/glX_proto_send.py
> +++ b/src/mapi/glapi/gen/glX_proto_send.py
> @@ -809,7 +809,7 @@ generic_%u_byte( GLint rop, const void * ptr )
>                      # Dividing by the array size (1 for
>                      # non-arrays) gives us this.
>  
> -                    s = p.size() / p.get_element_count()
> +                    s = int(p.size() / p.get_element_count())
>                      print("       %s __glXReadReply(dpy, %s, %s, %s);" % (return_str, s, p.name, aa))
>                      got_reply = 1
>  
> diff --git a/src/mesa/main/format_info.py b/src/mesa/main/format_info.py
> index bbecaa2451..285bf13e1b 100644
> --- a/src/mesa/main/format_info.py
> +++ b/src/mesa/main/format_info.py
> @@ -198,7 +198,7 @@ for fmat in formats:
>        chan = fmat.array_element()
>        norm = chan.norm or chan.type == parser.FLOAT
>        print('      .ArrayFormat = MESA_ARRAY_FORMAT({0}),'.format(', '.join([
> -         str(chan.size / 8),
> +         str(int(chan.size / 8)),
>           str(int(chan.sign)),
>           str(int(chan.type == parser.FLOAT)),
>           str(int(norm)),
> diff --git a/src/mesa/main/format_pack.py b/src/mesa/main/format_pack.py
> index d3c8d24acd..3b69580a93 100644
> --- a/src/mesa/main/format_pack.py
> +++ b/src/mesa/main/format_pack.py
> @@ -356,7 +356,7 @@ _mesa_pack_ubyte_rgba_row(mesa_format format, GLuint n,
>     case ${f.name}:
>        for (i = 0; i < n; ++i) {
>           pack_ubyte_${f.short_name()}(src[i], d);
> -         d += ${f.block_size() / 8};
> +         d += ${int(f.block_size() / 8)};
>        }
>        break;
>  %endfor
> @@ -388,7 +388,7 @@ _mesa_pack_uint_rgba_row(mesa_format format, GLuint n,
>     case ${f.name}:
>        for (i = 0; i < n; ++i) {
>           pack_uint_${f.short_name()}(src[i], d);
> -         d += ${f.block_size() / 8};
> +         d += ${int(f.block_size() / 8)};
>        }
>        break;
>  %endfor
> @@ -418,7 +418,7 @@ _mesa_pack_float_rgba_row(mesa_format format, GLuint n,
>     case ${f.name}:
>        for (i = 0; i < n; ++i) {
>           pack_float_${f.short_name()}(src[i], d);
> -         d += ${f.block_size() / 8};
> +         d += ${int(f.block_size() / 8)};
>        }
>        break;
>  %endfor
> diff --git a/src/mesa/main/format_unpack.py b/src/mesa/main/format_unpack.py
> index 286c08e621..feddaed5cd 100644
> --- a/src/mesa/main/format_unpack.py
> +++ b/src/mesa/main/format_unpack.py
> @@ -322,7 +322,7 @@ _mesa_unpack_rgba_row(mesa_format format, GLuint n,
>     case ${f.name}:
>        for (i = 0; i < n; ++i) {
>           unpack_float_${f.short_name()}(s, dst[i]);
> -         s += ${f.block_size() / 8};
> +         s += ${int(f.block_size() / 8)};
>        }
>        break;
>  %endfor
> @@ -355,7 +355,7 @@ _mesa_unpack_ubyte_rgba_row(mesa_format format, GLuint n,
>     case ${f.name}:
>        for (i = 0; i < n; ++i) {
>           unpack_ubyte_${f.short_name()}(s, dst[i]);
> -         s += ${f.block_size() / 8};
> +         s += ${int(f.block_size() / 8)};
>        }
>        break;
>  %endfor
> @@ -397,7 +397,7 @@ _mesa_unpack_uint_rgba_row(mesa_format format, GLuint n,
>     case ${f.name}:
>        for (i = 0; i < n; ++i) {
>           unpack_int_${f.short_name()}(s, dst[i]);
> -         s += ${f.block_size() / 8};
> +         s += ${int(f.block_size() / 8)};
>        }
>        break;
>  %endfor
> -- 
> 2.17.1
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180705/ff929180/attachment.sig>


More information about the mesa-dev mailing list