i965: Add aux_buf variable to simplify code.
In a follow up patch, we make use of clear_color_bo, which is in mt->mcs_buf or mt->hiz_buf. To avoid duplicating more code that does the same thing on both aux buffers, just use aux_buf already. v5: Add aux_buf to brw_wm_surface_state too. v6: Drop aux_surf and use aux_buf->surf instead (Jason). Signed-off-by: Rafael Antognolli <rafael.antognolli@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
8735c86ce0
commit
5449f942f2
|
@ -154,11 +154,11 @@ blorp_surf_for_miptree(struct brw_context *brw,
|
|||
.aux_usage = aux_usage,
|
||||
};
|
||||
|
||||
struct isl_surf *aux_surf = NULL;
|
||||
struct intel_miptree_aux_buffer *aux_buf = NULL;
|
||||
if (mt->mcs_buf)
|
||||
aux_surf = &mt->mcs_buf->surf;
|
||||
aux_buf = mt->mcs_buf;
|
||||
else if (mt->hiz_buf)
|
||||
aux_surf = &mt->hiz_buf->surf;
|
||||
aux_buf = mt->hiz_buf;
|
||||
|
||||
if (mt->format == MESA_FORMAT_S_UINT8 && is_render_target &&
|
||||
devinfo->gen <= 7)
|
||||
|
@ -174,22 +174,14 @@ blorp_surf_for_miptree(struct brw_context *brw,
|
|||
*/
|
||||
surf->clear_color = mt->fast_clear_color;
|
||||
|
||||
surf->aux_surf = aux_surf;
|
||||
surf->aux_surf = &aux_buf->surf;
|
||||
surf->aux_addr = (struct blorp_address) {
|
||||
.reloc_flags = is_render_target ? EXEC_OBJECT_WRITE : 0,
|
||||
.mocs = surf->addr.mocs,
|
||||
};
|
||||
|
||||
if (mt->mcs_buf) {
|
||||
surf->aux_addr.buffer = mt->mcs_buf->bo;
|
||||
surf->aux_addr.offset = mt->mcs_buf->offset;
|
||||
} else {
|
||||
assert(mt->hiz_buf);
|
||||
assert(surf->aux_usage == ISL_AUX_USAGE_HIZ);
|
||||
|
||||
surf->aux_addr.buffer = mt->hiz_buf->bo;
|
||||
surf->aux_addr.offset = mt->hiz_buf->offset;
|
||||
}
|
||||
surf->aux_addr.buffer = aux_buf->bo;
|
||||
surf->aux_addr.offset = aux_buf->offset;
|
||||
} else {
|
||||
surf->aux_addr = (struct blorp_address) {
|
||||
.buffer = NULL,
|
||||
|
|
|
@ -152,22 +152,19 @@ brw_emit_surface_state(struct brw_context *brw,
|
|||
|
||||
union isl_color_value clear_color = { .u32 = { 0, 0, 0, 0 } };
|
||||
|
||||
struct brw_bo *aux_bo;
|
||||
struct brw_bo *aux_bo = NULL;
|
||||
struct isl_surf *aux_surf = NULL;
|
||||
uint64_t aux_offset = 0;
|
||||
struct intel_miptree_aux_buffer *aux_buf = NULL;
|
||||
switch (aux_usage) {
|
||||
case ISL_AUX_USAGE_MCS:
|
||||
case ISL_AUX_USAGE_CCS_D:
|
||||
case ISL_AUX_USAGE_CCS_E:
|
||||
aux_surf = &mt->mcs_buf->surf;
|
||||
aux_bo = mt->mcs_buf->bo;
|
||||
aux_offset = mt->mcs_buf->offset;
|
||||
aux_buf = mt->mcs_buf;
|
||||
break;
|
||||
|
||||
case ISL_AUX_USAGE_HIZ:
|
||||
aux_surf = &mt->hiz_buf->surf;
|
||||
aux_bo = mt->hiz_buf->bo;
|
||||
aux_offset = 0;
|
||||
aux_buf = mt->hiz_buf;
|
||||
break;
|
||||
|
||||
case ISL_AUX_USAGE_NONE:
|
||||
|
@ -175,6 +172,10 @@ brw_emit_surface_state(struct brw_context *brw,
|
|||
}
|
||||
|
||||
if (aux_usage != ISL_AUX_USAGE_NONE) {
|
||||
aux_surf = &aux_buf->surf;
|
||||
aux_bo = aux_buf->bo;
|
||||
aux_offset = aux_buf->offset;
|
||||
|
||||
/* We only really need a clear color if we also have an auxiliary
|
||||
* surface. Without one, it does nothing.
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue