[Mesa-dev] [PATCH 01/14] nir: Add explicitly sized types

Samuel Iglesias Gonsálvez siglesias at igalia.com
Fri Mar 11 07:33:20 UTC 2016


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256



On 11/03/16 01:08, Jason Ekstrand wrote:
> On Thu, Mar 10, 2016 at 4:00 PM, Connor Abbott
> <cwabbott0 at gmail.com> wrote:
> 
>> On Mon, Mar 7, 2016 at 3:45 AM, Samuel Iglesias Gonsálvez 
>> <siglesias at igalia.com> wrote:
>>> From: Jason Ekstrand <jason.ekstrand at intel.com>
>>> 
>>> v2: Fix size/type mask to properly handle 8-bit types.
>>> 
>>> Signed-off-by: Juan A. Suarez Romero <jasuarez at igalia.com> --- 
>>> src/compiler/nir/nir.h | 17 ++++++++++++++++- 1 file changed,
>>> 16 insertions(+), 1 deletion(-)
>>> 
>>> diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h 
>>> index cccb3a4..659e98c 100644 --- a/src/compiler/nir/nir.h +++
>>> b/src/compiler/nir/nir.h @@ -605,9 +605,24 @@ typedef enum { 
>>> nir_type_float, nir_type_int, nir_type_uint, -   nir_type_bool 
>>> +   nir_type_bool, +   nir_type_bool32 =    32 |
>>> nir_type_bool, +   nir_type_int8 =      8  | nir_type_int, +
>>> nir_type_int16 =     16 | nir_type_int, +   nir_type_int32 =
>>> 32 | nir_type_int, +   nir_type_int64 =     64 | nir_type_int, 
>>> +   nir_type_uint8 =     8  | nir_type_uint, +
>>> nir_type_uint16 =    16 | nir_type_uint, +   nir_type_uint32 =
>>> 32 | nir_type_uint, +   nir_type_uint64 =    64 |
>>> nir_type_uint, +   nir_type_float16 =   16 | nir_type_float, +
>>> nir_type_float32 =   32 | nir_type_float, +   nir_type_float64
>>> =   64 | nir_type_float, } nir_alu_type;
>>> 
>>> +#define NIR_ALU_TYPE_SIZE_MASK 0xfffffff8 +#define
>>> NIR_ALU_TYPE_BASE_TYPE_MASK 0x00000007
>> 
>> So I'm not really the one to be reviewing this series (after all,
>> I wrote most of it :) ) but one thing that I never quite liked,
>> and didn't get around to fixing, is how we use these raw
>> constants all over the place. Perhaps we could make things more
>> readable by adding nir_get_sized_type(), nir_get_unsized_type(),
>> and nir_type_size() helpers and then use those instead of
>> or-ing/and-ing things together everywhere.
>> 
> 
> Agreed.
> 
> 

Agreed. We saw it too but, as this is used in a lot in the fp64 patches,
we were thinking on apply one patch at the end of the fp64 series adding
those helper functions (maybe just macros like NIR_GET_UNSIZED_TYPE and
NIR_GET_TYPE_SIZE) and adapting the users of the mask.

However, we can add them here and modify the rest of fp64 patches if
you prefer it.

Sam

>> 
>>> + typedef enum { NIR_OP_IS_COMMUTATIVE = (1 << 0), 
>>> NIR_OP_IS_ASSOCIATIVE = (1 << 1), -- 2.7.0
>>> 
>>> _______________________________________________ mesa-dev
>>> mailing list mesa-dev at lists.freedesktop.org 
>>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>> _______________________________________________ mesa-dev mailing
>> list mesa-dev at lists.freedesktop.org 
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>> 
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJW4nTAAAoJEH/0ujLxfcNDQmcP/3PDBMxX+z91XQ0wSY7QMuu8
I4BVir0n1J3g05S8Yid+z61vCOMNdDB9xmUCJmV1Jv+YuS4SB5GaluHj9jFBPgvj
YQtT5SnoGC1tBEViAPa+nNRwxF+fxh8xLKG+OQ2IXqDMAdIsx5V772Ea8/anClhi
q4d8Fw93URPubBKTTh8IMt/dOa0oN3L0Cka7062bLl27+Y2Ml8MyPVLEQPBI2WP8
ayMicIDco2ldRS3u/jteGc6R4GI9Ef8gIsSVyEYPKUYgNmVkun5LMJjpjbh2PXBB
VaManLcCdv6Yf2GP9ehQjTp4rr0GLl2rcAaftt0pD7MN1ZzQlFp/opyIQpzFe+Ny
hqzzvbn8wh/W4goKbfir6HpasaPC56AamTnHZ9zJVhaUIPjan/oSSRHRoK9kswib
rpnj5WDQN9KKnuY89Pxoo/w8aesgyektLiFbsXQx7jbNVxKOdrvKwnhSjSQs0sUG
C+e/2oLSMiH2VLnYT7iJoinD8IlQXgmYBo/IZvFgtcOfZdJRgSssrWQclfagv8MR
dzNLUTR5sS6/GG+4nTuD14uGaswuToCRCNiq2CDnemFXMdtgkIkztj8dwZd8u9hY
kP5UQKoW6KU+0fFf8PQez2YCFX/dxLXtRyP8uP+V5ZUh1y+Qv4TDwYacl/VG8Hlt
kx7+UXIC4g/vUS5ONfP0
=6z48
-----END PGP SIGNATURE-----


More information about the mesa-dev mailing list