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

Connor Abbott cwabbott0 at gmail.com
Sat Mar 12 16:26:53 UTC 2016


On Fri, Mar 11, 2016 at 2:33 AM, Samuel Iglesias Gonsálvez
<siglesias at igalia.com> wrote:
> -----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.

I should probably mention, in general we tend to prefer inline
functions over macros where possible since it's clearer what their
argument types and return type are and they tend to integrate better
with gdb.

>
> 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