From: Kenneth Graunke Date: Mon, 15 May 2017 23:53:25 +0000 (-0700) Subject: genxml: Fix parsing of address fields in groups. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=df2d55ba57dec857e4fb36ba3d9ec86aa3a46cd5;p=mesa.git genxml: Fix parsing of address fields in groups. For example, 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); ... Reviewed-by: Lionel Landwerlin --- 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))