On Wed, Jan 04, 2017 at 06:36:05PM -0800, Ben Widawsky wrote: > On 17-01-04 10:41:58, Topi Pohjolainen Topi Pohjolainen wrote: > > On Mon, Jan 02, 2017 at 06:37:22PM -0800, Ben Widawsky wrote: > > > v2: Try to keep the assert as recommended by Topi. This requires > > > modifying the num_samples check to be <= 1 because internally created > > > buffers set num_samples = 0. > > > > > > Cc: Topi Pohjolainen <topi.pohjolai...@intel.com> > > > Signed-off-by: Ben Widawsky <b...@bwidawsk.net> > > > Acked-by: Daniel Stone <dani...@collabora.com> > > > --- > > > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 16 +++++++++------- > > > 1 file changed, 9 insertions(+), 7 deletions(-) > > > > > > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > > index 749d346386..6c34b302e1 100644 > > > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > > @@ -157,7 +157,7 @@ intel_miptree_supports_non_msrt_fast_clear(struct > > > brw_context *brw, > > > if (mt->aux_disable & INTEL_AUX_DISABLE_MCS) > > > return false; > > > > > > - if (mt->is_scanout) > > > + if (mt->is_scanout && mt->msaa_layout != INTEL_MSAA_LAYOUT_CMS) > > > return false; > > > > > > /* This function applies only to non-multisampled render targets. */ > > > @@ -526,8 +526,12 @@ intel_miptree_create_layout(struct brw_context *brw, > > > layout_flags |= MIPTREE_LAYOUT_FORCE_HALIGN16; > > > } else { > > > const UNUSED bool is_lossless_compressed_aux = > > > - brw->gen >= 9 && num_samples == 1 && > > > - mt->format == MESA_FORMAT_R_UINT32; > > > + brw->gen >= 9 && > > > + /* Is lossless compressed texture */ > > > + ((num_samples == 1 && mt->format == MESA_FORMAT_R_UINT32) || > > > + /* Is lossless compressed scanout */ > > > > Does MIPTREE_LAYOUT_FOR_SCANOUT find its way here? > > > > Yes? How would you like it, assert? I think it should be fine to add this.
I was about to suggest this instead: const UNUSED bool is_lossless_compressed_tex_aux = num_samples == 1 && mt->format == MESA_FORMAT_R_UINT32; const UNUSED bool is_lossless_compressed_scanout_aux = (layout_flags & MIPTREE_LAYOUT_FOR_SCANOUT) && num_samples == 0 && (mt->format == MESA_FORMAT_B8G8R8X8_UNORM || mt->format == MESA_FORMAT_R8G8B8X8_UNORM); const UNUSED bool is_lossless_compressed_aux = brw->gen >= 9 && (is_lossless_compressed_tex_aux || is_lossless_compressed_scanout_aux); But then I realized that this already existing is_lossless_compressed_aux logic is dead code. We don't currently allocate miptree for mcs_buf at all. So would you mind adding a small patch removing the existing before adding the scanout assert? Sorry for the churn :( > > > > + (num_samples == 0 && (mt->format == MESA_FORMAT_B8G8R8X8_UNORM > > > || > > > + mt->format == > > > MESA_FORMAT_R8G8B8X8_UNORM))); > > > > > > /* For now, nothing else has this requirement */ > > > assert(is_lossless_compressed_aux || > > > @@ -752,11 +756,9 @@ intel_miptree_create(struct brw_context *brw, > > > * resolves. > > > */ > > > const bool lossless_compression_disabled = INTEL_DEBUG & > > > DEBUG_NO_RBC; > > > - assert(!mt->is_scanout); > > > const bool is_lossless_compressed = > > > unlikely(!lossless_compression_disabled) && > > > - brw->gen >= 9 && !mt->is_scanout && > > > - intel_miptree_supports_lossless_compressed(brw, mt); > > > + brw->gen >= 9 && > > > intel_miptree_supports_lossless_compressed(brw, mt); > > > > > > if (is_lossless_compressed) { > > > intel_miptree_alloc_non_msrt_mcs(brw, mt, > > > is_lossless_compressed); > > > @@ -1058,7 +1060,7 @@ intel_miptree_release(struct intel_mipmap_tree **mt) > > > intel_miptree_release(&(*mt)->stencil_mt); > > > intel_miptree_release(&(*mt)->r8stencil_mt); > > > intel_miptree_hiz_buffer_free((*mt)->hiz_buf); > > > - if ((*mt)->mcs_buf && !(*mt)->is_scanout) { > > > + if ((*mt)->mcs_buf) { > > > drm_intel_bo_unreference((*mt)->mcs_buf->bo); > > > free((*mt)->mcs_buf); > > > } > > > -- > > > 2.11.0 > > > > > > _______________________________________________ > > > mesa-dev mailing list > > > mesa-dev@lists.freedesktop.org > > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev