Mesa (master): radeonsi: Use htile_buffer for depth only when there is no stencil.

Marek Olšák mareko at kemper.freedesktop.org
Sun Dec 22 01:25:49 UTC 2013


Module: Mesa
Branch: master
Commit: 2efe7927d38983029784825fc4897e9b77aa237e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2efe7927d38983029784825fc4897e9b77aa237e

Author: Andreas Hartmetz <ahartmetz at gmail.com>
Date:   Sat Dec 21 21:11:37 2013 +0100

radeonsi: Use htile_buffer for depth only when there is no stencil.

Signed-off-by: Marek Olšák <marek.olsak at amd.com>

---

 src/gallium/drivers/radeonsi/si_state.c |    8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 8705d16..49b9bb5 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -1819,6 +1819,8 @@ static void si_db(struct r600_context *rctx, struct si_pm4_state *pm4,
 	/* HiZ aka depth buffer htile */
 	/* use htile only for first level */
 	if (rtex->htile_buffer && !level) {
+		const struct util_format_description *fmt_desc;
+
 		z_info |= S_028040_TILE_SURFACE_ENABLE(1);
 
 		/* This is optimal for the clear value of 1.0 and using
@@ -1827,6 +1829,12 @@ static void si_db(struct r600_context *rctx, struct si_pm4_state *pm4,
 		 * clearing. */
 		z_info |= S_028040_ZRANGE_PRECISION(1);
 
+		fmt_desc = util_format_description(rtex->resource.b.b.format);
+		if (!util_format_has_stencil(fmt_desc)) {
+			/* Use all of the htile_buffer for depth */
+			s_info |= S_028044_TILE_STENCIL_DISABLE(1);
+		}
+
 		uint64_t va = r600_resource_va(&rctx->screen->b.b, &rtex->htile_buffer->b.b);
 		db_htile_data_base = va >> 8;
 		db_htile_surface = S_028ABC_FULL_CACHE(1);




More information about the mesa-commit mailing list