<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Mar 28, 2017 at 9:15 AM, Chad Versace <span dir="ltr"><<a href="mailto:chadversary@chromium.org" target="_blank">chadversary@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Sat 25 Mar 2017, Jason Ekstrand wrote:<br>
><br>
><br>
> On March 24, 2017 7:29:05 PM Chad Versace <<a href="mailto:chadversary@chromium.org">chadversary@chromium.org</a>> wrote:<br>
><br>
> > Validate that isl_surf::row_pitch fits in the below bitfields,<br>
> > if applicable based on isl_surf::usage.<br>
> ><br>
> >     RENDER_SURFACE_STATE::<wbr>SurfacePitch<br>
> >     RENDER_SURFACE_STATE::<wbr>AuxiliarySurfacePitch<br>
> >     3DSTATE_DEPTH_BUFFER::<wbr>SurfacePitch<br>
> >     3DSTATE_HIER_DEPTH_BUFFER::<wbr>SurfacePitch<br>
> ><br>
> > v2:<br>
> >   -Add a Makefile dependency on generated header genX_bits.h.<br>
> > v3:<br>
> >   - Test ISL_SURF_USAGE_STORAGE_BIT too. [for jekstrand]<br>
> >   - Drop explicity dependency on generated header. [for emil]<br>
> > v4:<br>
> >   - Rebase for new gen_bits_header.py script.<br>
> >   - Replace gen_10x with gen_device_info*.<br>
> > ---<br>
> >  src/intel/isl/isl.c | 71 ++++++++++++++++++++++++++++++<wbr>++++++++++++++++++-----<br>
> >  1 file changed, 65 insertions(+), 6 deletions(-)<br>
> ><br>
> > diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c<br>
> > index 81f40b6a6fb..4777113de84 100644<br>
<br>
<br>
<br>
</span><span class="">> > +   if (dim_layout == ISL_DIM_LAYOUT_GEN9_1D) {<br>
> > +      /* SurfacePitch is ignored for this layout.How should we validate it? */<br>
> > +      isl_finishme("validate row pitch for ISL_DIM_LAYOUT_GEN9_1D");<br>
><br>
> We validate qpitch if anything.  But the regular pitch isn't just ignored,<br>
> it's meaningless.  I think we can drop the finishme.<br>
<br>
</span>Done.<br>
<span class=""><br>
> > +   if (((surf_info->usage & ISL_SURF_USAGE_RENDER_TARGET_<wbr>BIT) ||<br>
> > +        (surf_info->usage & ISL_SURF_USAGE_TEXTURE_BIT) ||<br>
> > +        (surf_info->usage & ISL_SURF_USAGE_STORAGE_BIT)) &&<br>
> > +       !pitch_in_range(row_pitch,<br>
> > RENDER_SURFACE_STATE_<wbr>SurfacePitch_bits(dev->info)))<br>
> > +      return false;<br>
><br>
> You know... "(thing & foo) || (thing & bar)" is equivalent to "thing & (foo<br>
> | bar)".  Not that you need to change but sometimes its a but nicer.<br>
<br>
</span>I know :). I think my style looks nicer, and the compiler should emit<br>
the same code. But I changed it to use '|' locally so that it matches<br>
the style in other Intel code.<span class=""><br></span></blockquote><div><br></div><div>I don't really care all that much.  In my brain one is a "does it have this bit or does it have this bit or does it have that bit" vs. "does it have one of these bits".  It really doesn't matter...<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
> > +<br>
> > +   if (((surf_info->usage & ISL_SURF_USAGE_CCS_BIT) ||<br>
> > +        (surf_info->usage & ISL_SURF_USAGE_MCS_BIT)) &&<br>
> > +       !pitch_in_range(row_pitch_<wbr>tiles,<br>
> > RENDER_SURFACE_STATE_<wbr>AuxiliarySurfacePitch_bits(<wbr>dev->info)))<br>
> > +      return false;<br>
> > +<br>
> > +   if ((surf_info->usage & ISL_SURF_USAGE_DEPTH_BIT) &&<br>
> > +       !pitch_in_range(row_pitch,<br>
> > _3DSTATE_DEPTH_BUFFER_<wbr>SurfacePitch_bits(dev->info)))<br>
> > +      return false;<br>
> > +<br>
> > +   if ((surf_info->usage & ISL_SURF_USAGE_HIZ_BIT) &&<br>
> > +       !pitch_in_range(row_pitch,<br>
> > _3DSTATE_HIER_DEPTH_BUFFER_<wbr>SurfacePitch_bits(dev->info)))<br>
><br>
> On gen8+, if the surface has the TEXTURE bit set we should check it against<br>
> AuxiliarySurfacePitch as well.<br>
<br>
</span>Good catch.<br>
<br>
I've already test the branch as-is, so I hesitate to add this fixup. It<br>
can come as an immediate follow-up patch.<br>
</blockquote></div><br></div><div class="gmail_extra">That's fine.<br></div></div>