[Mesa-dev] [PATCH 1/5] genxml: Fix parsing of address fields in groups.

Lionel Landwerlin lionel.g.landwerlin at intel.com
Tue May 30 22:31:21 UTC 2017


Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

On 20/05/17 08:24, Kenneth Graunke wrote:
> For example,
>
>      <group count="4" start="64" size="64">
>        <field name="Pointer" start="5" end="63" type="address"/>
>      </group>
>
> used to generate:
>
>     const uint64_t v2_address =
>        __gen_combine_address(data, &dw[2], values->Pointer, 0);
>     ...
>     const uint64_t v4_address =
>        __gen_combine_address(data, &dw[4], values->Pointer, 0);
>     ...
>
> but now generates code with proper subscripts:
>
>     const uint64_t v2_address =
>        __gen_combine_address(data, &dw[2], values->Pointer[0], 0);
>     ...
>     const uint64_t v4_address =
>        __gen_combine_address(data, &dw[4], values->Pointer[1], 0);
>     ...
> ---
>   src/intel/genxml/gen_pack_header.py | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/intel/genxml/gen_pack_header.py b/src/intel/genxml/gen_pack_header.py
> index 020dbe40a60..fefbc9aeccb 100644
> --- a/src/intel/genxml/gen_pack_header.py
> +++ b/src/intel/genxml/gen_pack_header.py
> @@ -467,13 +467,13 @@ class Group(object):
>   
>               if dw.size == 32:
>                   if dw.address:
> -                    print("   dw[%d] = __gen_combine_address(data, &dw[%d], values->%s, %s);" % (index, index, dw.address.name, v))
> +                    print("   dw[%d] = __gen_combine_address(data, &dw[%d], values->%s, %s);" % (index, index, dw.address.name + field.dim, v))
>                   continue
>   
>               if dw.address:
>                   v_address = "v%d_address" % index
>                   print("   const uint64_t %s =\n      __gen_combine_address(data, &dw[%d], values->%s, %s);" %
> -                      (v_address, index, dw.address.name, v))
> +                      (v_address, index, dw.address.name + field.dim, v))
>                   v = v_address
>   
>               print("   dw[%d] = %s;" % (index, v))




More information about the mesa-dev mailing list