i965: Don't try to create aux buffer for non-msrt aux-buffer
authorTopi Pohjolainen <topi.pohjolainen@intel.com>
Mon, 7 Dec 2015 09:56:05 +0000 (11:56 +0200)
committerTopi Pohjolainen <topi.pohjolainen@intel.com>
Sat, 13 Feb 2016 07:28:41 +0000 (09:28 +0200)
In addition to simply calling miptree_create() the higher level
call intel_miptree_create() also considers if the buffer should
be associated with an auxiliary buffer based on the given format.

Here we are allocating an auxiliary buffer which in turn has such
format that would mislead intel_miptree_create_layout() later on
to try to associate the auxiliary buffer with an auxiliary buffer.
To prevent this the actual buffer creation logic was split out
into its own function. Lets invoke that instead.

v2 (Ben): Do not signal msaa layout with explicit argument but
          using layout_flags instead.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
src/mesa/drivers/dri/i965/intel_mipmap_tree.c

index 5646c5efec9d3a50b8bbbdf49d889d3901d865a1..5f739d9cac575744f606b1028cf099f77cfffb27 100644 (file)
@@ -1541,16 +1541,16 @@ intel_miptree_alloc_non_msrt_mcs(struct brw_context *brw,
    if (brw->gen >= 8) {
       layout_flags |= MIPTREE_LAYOUT_FORCE_HALIGN16;
    }
-   mt->mcs_mt = intel_miptree_create(brw,
-                                     mt->target,
-                                     format,
-                                     mt->first_level,
-                                     mt->last_level,
-                                     mcs_width,
-                                     mcs_height,
-                                     mt->logical_depth0,
-                                     0 /* num_samples */,
-                                     layout_flags);
+   mt->mcs_mt = miptree_create(brw,
+                               mt->target,
+                               format,
+                               mt->first_level,
+                               mt->last_level,
+                               mcs_width,
+                               mcs_height,
+                               mt->logical_depth0,
+                               0 /* num_samples */,
+                               layout_flags);
 
    return mt->mcs_mt;
 }