Mesa (master): r300g: do not use fastfill with 16-bit zbuffers

Marek Olšák mareko at kemper.freedesktop.org
Thu Aug 19 21:38:56 UTC 2010


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

Author: Marek Olšák <maraeo at gmail.com>
Date:   Thu Aug 19 22:18:40 2010 +0200

r300g: do not use fastfill with 16-bit zbuffers

To my knowledge, there is no way to flush zmask and thus write the clear
value.

This fixes zbuffer reads, among other things.

---

 src/gallium/drivers/r300/r300_hyperz.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_hyperz.c b/src/gallium/drivers/r300/r300_hyperz.c
index a471b73..b2526d6 100644
--- a/src/gallium/drivers/r300/r300_hyperz.c
+++ b/src/gallium/drivers/r300/r300_hyperz.c
@@ -357,6 +357,10 @@ void r300_zmask_alloc_block(struct r300_context *r300, struct r300_surface *surf
         tex->desc.b.b.target != PIPE_TEXTURE_2D)
         return;
 
+    /* Cannot flush zmask of 16-bit zbuffers. */
+    if (util_format_get_blocksizebits(tex->desc.b.b.format) == 16)
+        return;
+
     if (tex->zmask_mem[level])
         return;
 




More information about the mesa-commit mailing list