<div dir="ltr"><div>Thanks for the sandy bridge doc link.  With all of the extra MBZ removed, this patch is<br><br></div><div>Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 17, 2016 at 11:39 AM, Lionel Landwerlin <span dir="ltr"><<a href="mailto:llandwerlin@gmail.com" target="_blank">llandwerlin@gmail.com</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 Mon, 2016-10-17 at 10:56 -0700, Jason Ekstrand wrote:<br>
><br>
><br>
> On Mon, Oct 17, 2016 at 8:46 AM, Lionel Landwerlin <llandwerlin@gmail<br>
> .com> wrote:<br>
> > Signed-off-by: Lionel Landwerlin <<a href="mailto:lionel.g.landwerlin@intel.com">lionel.g.landwerlin@intel.com</a><wbr>><br>
> > ---<br>
> >  src/intel/genxml/gen6.xml  | 32 ++++++++++++++++++++++++++++++<wbr>++<br>
> >  src/intel/genxml/gen7.xml  | 12 ++++++++++++<br>
> >  src/intel/genxml/gen75.xml | 40<br>
> > ++++++++++++++++++++++++++++++<wbr>++++++++++<br>
> >  src/intel/genxml/gen8.xml  | 12 ++++++++++++<br>
> >  src/intel/genxml/gen9.xml  | 12 ++++++++++++<br>
> >  5 files changed, 108 insertions(+)<br>
> ><br>
> > diff --git a/src/intel/genxml/gen6.xml b/src/intel/genxml/gen6.xml<br>
> > index 211716b..7ba8954 100644<br>
> > --- a/src/intel/genxml/gen6.xml<br>
> > +++ b/src/intel/genxml/gen6.xml<br>
> > @@ -372,6 +372,38 @@<br>
> >      <field name="MOCS" start="176" end="179" type="uint"/><br>
> >    </struct><br>
> ><br>
> > +  <struct name="SAMPLER_BORDER_COLOR_<wbr>STATE" length="12"><br>
> > +    <field name="Border Color Unorm Red" start="0" end="7"<br>
> > type="uint"/><br>
> > +    <field name="Border Color Unorm Green" start="8" end="15"<br>
> > type="uint"/><br>
> > +    <field name="Border Color Unorm Blue" start="16" end="23"<br>
> > type="uint"/><br>
> > +    <field name="Border Color Unorm Alpha" start="24" end="31"<br>
> > type="uint"/><br>
> > +<br>
> > +    <field name="Border Color Float Red" start="32" end="63"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Green" start="64" end="95"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Blue" start="96" end="127"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Alpha" start="128" end="159"<br>
> > type="float"/><br>
> > +<br>
> > +    <field name="Border Color Float16 Red" start="160" end="175"<br>
> > type="uint"/><br>
> > +    <field name="Border Color Float16 Green" start="176" end="191"<br>
> > type="uint"/><br>
> > +    <field name="Border Color Float16 Blue" start="192" end="207"<br>
> > type="uint"/><br>
> > +    <field name="Border Color Float16 Alpha" start="208" end="223"<br>
> > type="uint"/><br>
> > +<br>
> > +    <field name="Border Color Unorm16 Red" start="224" end="239"<br>
> > type="uint"/><br>
> > +    <field name="Border Color Unorm16 Green" start="240" end="255"<br>
> > type="uint"/><br>
> > +    <field name="Border Color Unorm16 Blue" start="256" end="271"<br>
> > type="uint"/><br>
> > +    <field name="Border Color Unorm16 Alpha" start="272" end="287"<br>
> > type="uint"/><br>
> > +<br>
> > +    <field name="Border Color Snorm16 Red" start="288" end="303"<br>
> > type="int"/><br>
> > +    <field name="Border Color Snorm16 Green" start="304" end="319"<br>
> > type="int"/><br>
> > +    <field name="Border Color Snorm16 Blue" start="320" end="335"<br>
> > type="int"/><br>
> > +    <field name="Border Color Snorm16 Alpha" start="336" end="351"<br>
> > type="int"/><br>
> > +<br>
> > +    <field name="Border Color Snorm8 Red" start="352" end="359"<br>
> > type="int"/><br>
> > +    <field name="Border Color Snorm8 Green" start="360" end="367"<br>
> > type="int"/><br>
> > +    <field name="Border Color Snorm8 Blue" start="368" end="375"<br>
> > type="int"/><br>
> > +    <field name="Border Color Snorm8 Alpha" start="376" end="383"<br>
> > type="int"/><br>
> > +  </struct><br>
><br>
> Are there docs for this anywhere or did you just pull it out of the<br>
> gen6 GL code?<br>
><br>
 <br>
</div></div>Yes, there are but indeed not in the PRMs.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> > +<br>
> >    <struct name="SAMPLER_STATE" length="4"><br>
> >      <field name="Sampler Disable" start="31" end="31"<br>
> > type="bool"/><br>
> >      <field name="Texture Border Color Mode" start="29" end="29"<br>
> > type="uint"><br>
> > diff --git a/src/intel/genxml/gen7.xml b/src/intel/genxml/gen7.xml<br>
> > index eabb244..a950603 100644<br>
> > --- a/src/intel/genxml/gen7.xml<br>
> > +++ b/src/intel/genxml/gen7.xml<br>
> > @@ -428,6 +428,18 @@<br>
> >      <field name="Resource Min LOD" start="224" end="235"<br>
> > type="u4.8"/><br>
> >    </struct><br>
> ><br>
> > +  <struct name="SAMPLER_BORDER_COLOR_<wbr>STATE" length="4"><br>
> > +    <field name="Border Color Unorm Red" start="0" end="7"<br>
> > type="uint"/><br>
> > +    <field name="Border Color Unorm Green" start="8" end="15"<br>
> > type="uint"/><br>
> > +    <field name="Border Color Unorm Blue" start="16" end="23"<br>
> > type="uint"/><br>
> > +    <field name="Border Color Unorm Alpha" start="24" end="31"<br>
> > type="uint"/><br>
> > +<br>
> > +    <field name="Border Color Float Red" start="0" end="31"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Green" start="32" end="63"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Blue" start="64" end="95"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Alpha" start="96" end="127"<br>
> > type="float"/><br>
> > +  </struct><br>
> > +<br>
> >    <struct name="SAMPLER_STATE" length="4"><br>
> >      <field name="Sampler Disable" start="31" end="31"<br>
> > type="bool"/><br>
> >      <field name="Texture Border Color Mode" start="29" end="29"<br>
> > type="uint"><br>
> > diff --git a/src/intel/genxml/gen75.xml<br>
> > b/src/intel/genxml/gen75.xml<br>
> > index 27a12cb..42f66cb 100644<br>
> > --- a/src/intel/genxml/gen75.xml<br>
> > +++ b/src/intel/genxml/gen75.xml<br>
> > @@ -438,6 +438,46 @@<br>
> >      <field name="Resource Min LOD" start="224" end="235"<br>
> > type="u4.8"/><br>
> >    </struct><br>
> ><br>
> > +  <struct name="SAMPLER_BORDER_COLOR_<wbr>STATE" length="20"><br>
> > +    <field name="Border Color Float Red" start="0" end="31"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Green" start="32" end="63"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Blue" start="64" end="95"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Alpha" start="96" end="127"<br>
> > type="float"/><br>
> > +<br>
> > +    <field name="Reserved1 MBZ" start="128" end="159"<br>
> > type="uint"/><br>
> > +    <field name="Reserved2 MBZ" start="160" end="191"<br>
> > type="uint"/><br>
> > +    <field name="Reserved3 MBZ" start="192" end="223"<br>
> > type="uint"/><br>
> > +    <field name="Reserved4 MBZ" start="224" end="255"<br>
> > type="uint"/><br>
> > +    <field name="Reserved5 MBZ" start="256" end="287"<br>
> > type="uint"/><br>
> > +    <field name="Reserved6 MBZ" start="288" end="319"<br>
> > type="uint"/><br>
> > +    <field name="Reserved7 MBZ" start="320" end="351"<br>
> > type="uint"/><br>
> > +    <field name="Reserved8 MBZ" start="352" end="383"<br>
> > type="uint"/><br>
> > +    <field name="Reserved9 MBZ" start="384" end="415"<br>
> > type="uint"/><br>
> > +    <field name="Reserved10 MBZ" start="416" end="447"<br>
> > type="uint"/><br>
> > +    <field name="Reserved11 MBZ" start="448" end="479"<br>
> > type="uint"/><br>
> > +    <field name="Reserved12 MBZ" start="480" end="511"<br>
> > type="uint"/><br>
><br>
> In the rest of the XML, MBZ fields simply don't exist.  The packing<br>
> functions will automatically zero anything that doesn't have data in<br>
> it.  I'm not sure if that's true for whole dwords but if it's not, we<br>
> should fix that.  In other words, I believe the correct solution is<br>
> to just delete these and let "Border Color 8bit Red" start super-late<br>
> in the packet.<br>
>  <br>
> > +<br>
> > +    <field name="Border Color 8bit Red" start="512" end="519"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 8bit Green" start="520" end="527"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 8bit Blue" start="528" end="535"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 8bit Alpha" start="536" end="543"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 8bit Reserved1 MBZ" start="544"<br>
> > end="575" type="uint"/><br>
> > +    <field name="Border Color 8bit Reserved2 MBZ" start="576"<br>
> > end="607" type="uint"/><br>
> > +    <field name="Border Color 8bit Reserved3 MBZ" start="608"<br>
> > end="639" type="uint"/><br>
><br>
> These can go as well<br>
>  <br>
> > +<br>
> > +    <field name="Border Color 16bit Red" start="512" end="527"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 16bit Green" start="528" end="543"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 16bit Reserved1 MBZ" start="544"<br>
> > end="575" type="uint"/><br>
><br>
> and this<br>
>  <br>
> > +    <field name="Border Color 16bit Blue" start="576" end="591"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 16bit Alpha" start="592" end="607"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 16bit Reserved2 MBZ" start="608"<br>
> > end="639" type="uint"/><br>
><br>
> and this<br>
>  <br>
> > +<br>
> > +    <field name="Border Color 32bit Red" start="512" end="543"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 32bit Green" start="544" end="575"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 32bit Blue" start="576" end="607"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 32bit Alpha" start="608" end="639"<br>
> > type="uint"/><br>
> > +  </struct><br>
> > +<br>
> >    <struct name="SAMPLER_STATE" length="4"><br>
> >      <field name="Sampler Disable" start="31" end="31"<br>
> > type="bool"/><br>
> >      <field name="Texture Border Color Mode" start="29" end="29"<br>
> > type="uint"><br>
> > diff --git a/src/intel/genxml/gen8.xml b/src/intel/genxml/gen8.xml<br>
> > index ee62614..a281f01 100644<br>
> > --- a/src/intel/genxml/gen8.xml<br>
> > +++ b/src/intel/genxml/gen8.xml<br>
> > @@ -358,6 +358,18 @@<br>
> >      <field name="Filter Coefficient" start="0" end="7"<br>
> > type="s1.6"/><br>
> >    </struct><br>
> ><br>
> > +  <struct name="SAMPLER_BORDER_COLOR_<wbr>STATE" length="4"><br>
> > +    <field name="Border Color Float Red" start="0" end="31"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Green" start="32" end="63"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Blue" start="64" end="95"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Alpha" start="96" end="127"<br>
> > type="float"/><br>
> > +<br>
> > +    <field name="Border Color 32bit Red" start="0" end="31"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 32bit Green" start="32" end="63"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 32bit Blue" start="64" end="95"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 32bit Alpha" start="96" end="127"<br>
> > type="uint"/><br>
> > +  </struct><br>
> > +<br>
> >    <struct name="SAMPLER_STATE" length="4"><br>
> >      <field name="Sampler Disable" start="31" end="31"<br>
> > type="bool"/><br>
> >      <field name="Texture Border Color Mode" start="29" end="29"<br>
> > type="uint"><br>
> > diff --git a/src/intel/genxml/gen9.xml b/src/intel/genxml/gen9.xml<br>
> > index 9c81c5a..665b61f 100644<br>
> > --- a/src/intel/genxml/gen9.xml<br>
> > +++ b/src/intel/genxml/gen9.xml<br>
> > @@ -382,6 +382,18 @@<br>
> >      <field name="Filter Coefficient" start="0" end="7"<br>
> > type="s1.6"/><br>
> >    </struct><br>
> ><br>
> > +  <struct name="SAMPLER_BORDER_COLOR_<wbr>STATE" length="4"><br>
> > +    <field name="Border Color Float Red" start="0" end="31"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Green" start="32" end="63"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Blue" start="64" end="95"<br>
> > type="float"/><br>
> > +    <field name="Border Color Float Alpha" start="96" end="127"<br>
> > type="float"/><br>
> > +<br>
> > +    <field name="Border Color 32bit Red" start="0" end="31"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 32bit Green" start="32" end="63"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 32bit Blue" start="64" end="95"<br>
> > type="uint"/><br>
> > +    <field name="Border Color 32bit Alpha" start="96" end="127"<br>
> > type="uint"/><br>
> > +  </struct><br>
> > +<br>
> >    <struct name="SAMPLER_STATE" length="4"><br>
> >      <field name="Sampler Disable" start="31" end="31"<br>
> > type="bool"/><br>
> >      <field name="Texture Border Color Mode" start="29" end="29"<br>
> > type="uint"><br>
> > --<br>
> > 2.9.3<br>
> ><br>
> > ______________________________<wbr>_________________<br>
> > mesa-dev mailing list<br>
> > <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> > <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
> ><br>
><br>
><br>
</div></div></blockquote></div><br></div>