Mesa (master): r600g: enable fast depth clear for array textures and cubemaps

Marek Olšák mareko at kemper.freedesktop.org
Mon Sep 1 19:24:47 UTC 2014


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Wed Aug 20 14:36:53 2014 +0200

r600g: enable fast depth clear for array textures and cubemaps

I have a piglit test that hits this.

Acked-by: Michel Dänzer <michel.daenzer at amd.com>

---

 src/gallium/drivers/r600/r600_blit.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index a3cfdae..0f43839 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -429,7 +429,8 @@ static void r600_clear(struct pipe_context *ctx, unsigned buffers,
 		 */
 		/* Only use htile for first level */
 		if (rtex->htile_buffer && !level &&
-		    util_max_layer(&rtex->resource.b.b, level) == 0) {
+                   fb->zsbuf->u.tex.first_layer == 0 &&
+                   fb->zsbuf->u.tex.last_layer == util_max_layer(&rtex->resource.b.b, level)) {
 			if (rtex->depth_clear_value != depth) {
 				rtex->depth_clear_value = depth;
 				rctx->db_state.atom.dirty = true;




More information about the mesa-commit mailing list