diff options
author | Chris Forbes <[email protected]> | 2013-12-01 11:44:39 +1300 |
---|---|---|
committer | Chris Forbes <[email protected]> | 2013-12-07 16:08:55 +1300 |
commit | b1604841c2407c336f1069844649e51a3d135115 (patch) | |
tree | dbc26ee717620232175f652625fef5db4618b07d /src/mesa/drivers/dri | |
parent | 6ca9a6f4d7f93277cbd958ded9786d13a9cdd675 (diff) |
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 <[email protected]>
Reviewed-by: Paul Berry <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri')
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 14 |
1 files 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: |