<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jul 19, 2016 at 4:12 PM, Nanley Chery <span dir="ltr"><<a href="mailto:nanleychery@gmail.com" target="_blank">nanleychery@gmail.com</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 Fri, Jul 01, 2016 at 04:08:49PM -0700, Jason Ekstrand wrote:<br>
> In all three cases, we start with width and height taken from<br>
> isl_surf::phys_slice0_extent_sa which is already in samples.  There is no<br>
> need to do the conversion and doing so gives us an incorrect value.<br>
<br>
</span>Thanks for noticing this bug! I think this patch is missing one<br>
necessary change. The level width and height must be adjusted<br>
for the sample count.<br>
<br>
Here's an example that demonstrates the post-patch issue:<br>
 * User creates a 2x1px 4xIMS image<br>
 * Level 0 is 4x2sa (2x1px)<br>
 * Level 1 is 2x1sa (1x1px) but should be 2x2sa<br></blockquote><div><br></div><div>I thought this was an issue the first time through too.  But then chad reminded me that there is no mipmapped multisampling<br><br></div><div>--Jason<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
- Nanley<br>
<div><div class="h5"><br>
> ---<br>
>  src/intel/isl/isl.c | 20 --------------------<br>
>  1 file changed, 20 deletions(-)<br>
><br>
> diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c<br>
> index 404cfc1..be3adfc 100644<br>
> --- a/src/intel/isl/isl.c<br>
> +++ b/src/intel/isl/isl.c<br>
> @@ -610,18 +610,6 @@ isl_calc_phys_slice0_extent_sa_gen4_2d(<br>
>        uint32_t W = isl_minify(W0, l);<br>
>        uint32_t H = isl_minify(H0, l);<br>
><br>
> -      if (msaa_layout == ISL_MSAA_LAYOUT_INTERLEAVED) {<br>
> -         /* From the Broadwell PRM >> Volume 5: Memory Views >> Computing Mip Level<br>
> -          * Sizes (p133):<br>
> -          *<br>
> -          *    If the surface is multisampled and it is a depth or stencil<br>
> -          *    surface or Multisampled Surface StorageFormat in<br>
> -          *    SURFACE_STATE is MSFMT_DEPTH_STENCIL, W_L and H_L must be<br>
> -          *    adjusted as follows before proceeding: [...]<br>
> -          */<br>
> -         isl_msaa_interleaved_scale_px_to_sa(info->samples, &W, &H);<br>
> -      }<br>
> -<br>
>        uint32_t w = isl_align_npot(W, image_align_sa->w);<br>
>        uint32_t h = isl_align_npot(H, image_align_sa->h);<br>
><br>
> @@ -1285,17 +1273,9 @@ get_image_offset_sa_gen4_2d(const struct isl_surf *surf,<br>
>     for (uint32_t l = 0; l < level; ++l) {<br>
>        if (l == 1) {<br>
>           uint32_t W = isl_minify(W0, l);<br>
> -<br>
> -         if (surf->msaa_layout == ISL_MSAA_LAYOUT_INTERLEAVED)<br>
> -            isl_msaa_interleaved_scale_px_to_sa(surf->samples, &W, NULL);<br>
> -<br>
>           x += isl_align_npot(W, image_align_sa.w);<br>
>        } else {<br>
>           uint32_t H = isl_minify(H0, l);<br>
> -<br>
> -         if (surf->msaa_layout == ISL_MSAA_LAYOUT_INTERLEAVED)<br>
> -            isl_msaa_interleaved_scale_px_to_sa(surf->samples, NULL, &H);<br>
> -<br>
>           y += isl_align_npot(H, image_align_sa.h);<br>
>        }<br>
>     }<br>
> --<br>
> 2.5.0.400.gff86faf<br>
><br>
</div></div>> _______________________________________________<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/mailman/listinfo/mesa-dev</a><br>
</blockquote></div><br></div></div>