On Mon, Feb 26, 2018 at 3:10 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote:
> This patch would be much easier to review if the commit message had an > example of the change. > > On Wed, Feb 21, 2018 at 1:45 PM, Rafael Antognolli < > rafael.antogno...@intel.com> wrote: > >> Some instructions contain fields that are either an address or a value >> of some type based on the content of other fields, such as clear color >> values vs address. That works fine if these fields are in the less >> significant dword, the lower 32 bits of the address, because they get >> OR'ed with the address. But if they are in the higher 32 bits, they get >> discarded. >> >> On Gen10 we have fields that share space with the higher 16 bits of the >> address too. This commit makes sure those fields don't get discarded. >> >> Signed-off-by: Rafael Antognolli <rafael.antogno...@intel.com> >> --- >> src/intel/genxml/gen_pack_header.py | 9 +++++++-- >> 1 file changed, 7 insertions(+), 2 deletions(-) >> >> diff --git a/src/intel/genxml/gen_pack_header.py >> b/src/intel/genxml/gen_pack_header.py >> index e6cea8646ff..e81695e2aea 100644 >> --- a/src/intel/genxml/gen_pack_header.py >> +++ b/src/intel/genxml/gen_pack_header.py >> @@ -486,11 +486,16 @@ class Group(object): >> 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 + field.dim, >> v)) >> - v = v_address >> - >> + if len(dw.fields) > address_count: >> + print(" dw[%d] = %s;" % (index, v_address)) >> + print(" dw[%d] = (%s >> 32) | (%s >> 32);" % >> (index + 1, v_address, v)) >> + continue >> + else: >> + v = v_address >> > This code is gross but that's not your fault. I've been playing with it for an hour or so and haven't come up with anything better. Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> > print(" dw[%d] = %s;" % (index, v)) >> print(" dw[%d] = %s >> 32;" % (index + 1, v)) >> >> + >> class Value(object): >> def __init__(self, attrs): >> self.name = safe_name(attrs["name"]) >> -- >> 2.14.3 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev >> > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev