<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 10, 2016 at 11:18 PM, Kenneth Graunke <span dir="ltr"><<a href="mailto:kenneth@whitecape.org" target="_blank">kenneth@whitecape.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Wednesday, August 10, 2016 2:22:29 PM PDT Jason Ekstrand wrote:<br>
> On Tue, Aug 9, 2016 at 4:52 PM, Sirisha Gandikota <<br>
> <a href="mailto:sirisha.gandikota@intel.com">sirisha.gandikota@intel.com</a>> wrote:<br>
><br>
> > From: Sirisha Gandikota <<a href="mailto:Sirisha.Gandikota@intel.com">Sirisha.Gandikota@intel.com</a>><br>
> ><br>
> > Several fixes have been added as part of this as listed below:<br>
> ><br>
> > 1) Fix the mask and add disassembler handling for STATE_DS, STATE_HS<br>
> > as the mask returned wrong values of the fields.<br>
> ><br>
> > 2) Fix the GEN_TYPE_ADDRESS/GEN_TYPE_<wbr>OFFSET decoding - the address/<br>
> > offset were handled the same way as the other fields and that gives<br>
> > the wrong values for the address/offset.<br>
> ><br>
> > 3) Decode nested/recurssive structures - Many packets contain nested<br>
> > structures, ex: 3DSATE_SO_BUFFER, STATE_BASE_ADDRESS, etc contain MOC<br>
> > structures. Previously, the aubinator printed 1 if there was a MOC<br>
> > structure. Now we decode the entire structure and print out its fields.<br>
> ><br>
> > 4) Print out the DWord address along with its hex value - For a better<br>
> > clarity of information, it is helpful to print both the address and<br>
> > hex value of the DWord along with the DWord count. Since the DWord0<br>
> > contains the instruction code and the instruction length, it is<br>
> > unnecessary to print the decoded values for DWord0. This information<br>
> > is already available from the DWord hex value.<br>
> ><br>
> > 5) Decode the <group> and the corresponding fields in the group- The<br>
> > <group> tag can have fields of several types including structures. A<br>
> > group can contain one or more number of fields and this has be correctly<br>
> > decoded. Previously, aubinator did not decode the groups or the<br>
> > fields/structures inside them. Now we decode the <group> in the<br>
> > instructions and structures where the fields in it repeat for any number<br>
> > of times specified.<br>
> ><br>
><br>
> One comment for now: Usually, when making a bunch of changes like this, we<br>
> try and split each functional change into its own patch. That way it's<br>
> more clear what's going on. This is brand new code, so a couple giant<br>
> patches may be ok, but having it split up would be nicer. :) Git has some<br>
> tools that make this less painful than it might look and I'm available to<br>
> help if you'd like.<br>
><br>
> I'll try and get around to actually playing with it soon.<br>
> --Jason<br>
<br>
</div></div>Sirisha asked me whether she should split things up, or squash everything<br>
together. I suggested that she may as well squash everything together<br>
for the initial import (but obviously any future changes should follow<br>
the normal procedure).<br>
<br>
My reasoning was:<br>
<br>
- There was already one giant commit from Kristian importing most of<br>
the tool (patch 1 here). I didn't think it was worth time trying<br>
to split that out into an artificial history. And...when developing<br>
a tool from scratch...what parts go where?<br>
<br>
- I figured reviewing the tool as a whole would be easier than a series<br>
of patches that gave an incomplete picture.<br>
<br>
- There's nothing to bisect across or anything that might regress.<br>
<br>
But I did think it was important to preserve authorship information,<br>
so both Kristian and Sirisha got proper credit for their work.<br></blockquote><div><br></div><div>That's fine. I don't care *that* much either way. <br></div></div><br></div></div>