r300g: do not use fastfill with 16-bit zbuffers
authorMarek Olšák <maraeo@gmail.com>
Thu, 19 Aug 2010 20:18:40 +0000 (22:18 +0200)
committerMarek Olšák <maraeo@gmail.com>
Thu, 19 Aug 2010 21:30:26 +0000 (23:30 +0200)
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

index a471b7353bffc5a871f755c09ef1574fda8522c5..b2526d6e4141676f2ee30b11b751832c454e9df6 100644 (file)
@@ -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;