From b1604841c2407c336f1069844649e51a3d135115 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Sun, 1 Dec 2013 11:44:39 +1300 Subject: [PATCH] i965/Gen7: Move decision to allocate MCS surface into intel_mipmap_create This gives us correct behavior for both renderbuffers (which previously worked) and multisample textures (which would never get an MCS surface allocated, even if CMS layout was selected) Signed-off-by: Chris Forbes Reviewed-by: Paul Berry Reviewed-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c index c3e75e5d8a3..c0f067370f4 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -611,6 +611,14 @@ intel_miptree_create(struct brw_context *brw, return NULL; } + + if (mt->msaa_layout == INTEL_MSAA_LAYOUT_CMS) { + if (!intel_miptree_alloc_mcs(brw, mt, num_samples)) { + intel_miptree_release(&mt); + return NULL; + } + } + /* If this miptree is capable of supporting fast color clears, set * mcs_state appropriately to ensure that fast clears will occur. * Allocation of the MCS miptree will be deferred until the first fast @@ -829,12 +837,6 @@ intel_miptree_create_for_renderbuffer(struct brw_context *brw, goto fail; } - if (mt->msaa_layout == INTEL_MSAA_LAYOUT_CMS) { - ok = intel_miptree_alloc_mcs(brw, mt, num_samples); - if (!ok) - goto fail; - } - return mt; fail: -- 2.30.2