i965/miptree: Call alloc_aux in create_for_bo
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 2 Aug 2017 18:07:36 +0000 (11:07 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 7 Aug 2017 16:31:11 +0000 (09:31 -0700)
Originally, I had moved it to the caller to make some things easier when
adding the CCS modifier.  However, this broke DRI2 because
intel_process_dri2_buffer calls intel_miptree_create_for_bo but never
calls intel_miptree_alloc_aux.  Also, in hindsight, it should be pretty
easy to make the CCS modifier stuff work even if create_for_bo allocates
the CCS when DISABLE_AUX is not set.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Cc: "17.2" <mesa-stable@lists.freedesktop.org>
src/mesa/drivers/dri/i965/intel_mipmap_tree.c

index 149e632877cb9bc535da69ed045213980f23b228..237f580fac9b0ce8d1a124bd19b7076efac669c1 100644 (file)
@@ -839,9 +839,15 @@ intel_miptree_create_for_bo(struct brw_context *brw,
    mt->bo = bo;
    mt->offset = offset;
 
-   if (!(layout_flags & MIPTREE_LAYOUT_DISABLE_AUX))
+   if (!(layout_flags & MIPTREE_LAYOUT_DISABLE_AUX)) {
       intel_miptree_choose_aux_usage(brw, mt);
 
+      if (!intel_miptree_alloc_aux(brw, mt)) {
+         intel_miptree_release(&mt);
+         return NULL;
+      }
+   }
+
    return mt;
 }
 
@@ -978,11 +984,6 @@ intel_miptree_create_for_dri_image(struct brw_context *brw,
    if (is_winsys_image)
       image->bo->cache_coherent = false;
 
-   if (!intel_miptree_alloc_aux(brw, mt)) {
-      intel_miptree_release(&mt);
-      return NULL;
-   }
-
    return mt;
 }