summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Antognolli <rafael.antognolli@intel.com>2018-03-05 11:25:12 -0800
committerRafael Antognolli <rafael.antognolli@intel.com>2018-03-29 09:25:35 -0700
commit4a6bca9788d79cad22012810d0dd76977fb75deb (patch)
tree121e0e1cae4f83ce19c88e234e8e810fb88c9a4e
parentdb15e3d858d9a8f5c7f2d9ddc70d6905ae0ce2dc (diff)
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. Signed-off-by: Rafael Antognolli <rafael.antognolli@intel.com>
-rw-r--r--src/mesa/drivers/dri/i965/brw_blorp.c19
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_surface_state.c15
2 files changed, 15 insertions, 19 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_blorp.c b/src/mesa/drivers/dri/i965/brw_blorp.c
index 44064fc0cf..a097759830 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp.c
+++ b/src/mesa/drivers/dri/i965/brw_blorp.c
@@ -155,10 +155,13 @@ blorp_surf_for_miptree(struct brw_context *brw,
};
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;
+
+ aux_surf = &aux_buf->surf;
if (mt->format == MESA_FORMAT_S_UINT8 && is_render_target &&
devinfo->gen <= 7)
@@ -180,16 +183,8 @@ blorp_surf_for_miptree(struct brw_context *brw,
.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,
diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index caa92d7d87..ea85591640 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -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.
*/