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 <chrisf@ijw.co.nz> Reviewed-by: Paul Berry <stereotype441@gmail.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
6ca9a6f4d7
commit
b1604841c2
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue