<p dir="ltr"></p>
<p dir="ltr">On Sep 7, 2016 10:24 AM, "Topi Pohjolainen" <<a href="mailto:topi.pohjolainen@gmail.com">topi.pohjolainen@gmail.com</a>> wrote:<br>
><br>
> Signed-off-by: Topi Pohjolainen <<a href="mailto:topi.pohjolainen@intel.com">topi.pohjolainen@intel.com</a>><br>
> ---<br>
>  src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 34 ++++++++++++++++++++++++<br>
>  1 file changed, 34 insertions(+)<br>
><br>
> diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c<br>
> index 054c5c8..7bd4a97 100644<br>
> --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c<br>
> +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c<br>
> @@ -439,6 +439,38 @@ brw_find_matching_rb(const struct gl_framebuffer *fb,<br>
>  }<br>
><br>
>  static bool</p>
<p dir="ltr">Needs to also be inline so that release builds won't complain about an unused static function.  Other than that, looks fine to me.</p>
<p dir="ltr">Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>></p>
<p dir="ltr">> +brw_texture_view_sane(const struct brw_context *brw,<br>
> +                      const struct intel_mipmap_tree *mt, unsigned format)<br>
> +{<br>
> +   /* There are special cases only for lossless compression. */<br>
> +   if (!intel_miptree_is_lossless_compressed(brw, mt))<br>
> +      return true;<br>
> +<br>
> +   if (isl_format_supports_lossless_compression(brw->intelScreen->devinfo,<br>
> +                                                format))<br>
> +      return true;<br>
> +<br>
> +   /* Logic elsewhere needs to take care to resolve the color buffer prior<br>
> +    * to sampling it as non-compressed.<br>
> +    */<br>
> +   if (mt->fast_clear_state != INTEL_FAST_CLEAR_STATE_RESOLVED)<br>
> +      return false;<br>
> +<br>
> +   const struct gl_framebuffer *fb = brw->ctx.DrawBuffer;<br>
> +   const unsigned rb_index = brw_find_matching_rb(fb, mt);<br>
> +<br>
> +   if (rb_index == fb->_NumColorDrawBuffers)<br>
> +      return true;<br>
> +<br>
> +   /* Underlying surface is compressed but it is sampled using a format that<br>
> +    * the sampling engine doesn't support as compressed. Compression must be<br>
> +    * disabled for both sampling engine and data port in case the same surface<br>
> +    * is used also as render target.<br>
> +    */<br>
> +   return brw->draw_aux_buffer_disabled[rb_index];<br>
> +}<br>
> +<br>
> +static bool<br>
>  brw_disable_aux_surface(const struct brw_context *brw,<br>
>                          const struct intel_mipmap_tree *mt)<br>
>  {<br>
> @@ -588,6 +620,8 @@ brw_update_texture_surface(struct gl_context *ctx,<br>
>            obj->Target == GL_TEXTURE_CUBE_MAP_ARRAY)<br>
>           view.usage |= ISL_SURF_USAGE_CUBE_BIT;<br>
><br>
> +      assert(brw_texture_view_sane(brw, mt, format));<br>
> +<br>
>        const int flags =<br>
>           brw_disable_aux_surface(brw, mt) ? INTEL_AUX_BUFFER_DISABLED : 0;<br>
>        brw_emit_surface_state(brw, mt, flags, mt->target, view,<br>
> --<br>
> 2.5.5<br>
><br>
> _______________________________________________<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">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br></p>