From 06991d87bedaaba5dde65027caa6fb49325b754e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Thu, 19 Aug 2010 22:18:40 +0200 Subject: [PATCH] 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 file changed, 4 insertions(+) diff --git a/src/gallium/drivers/r300/r300_hyperz.c b/src/gallium/drivers/r300/r300_hyperz.c index a471b7353bf..b2526d6e414 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; -- 2.30.2