r300g: fix corruption when nr_cbufs==0 and multiwrites enabled
authorMarek Olšák <maraeo@gmail.com>
Thu, 6 Jan 2011 18:02:12 +0000 (19:02 +0100)
committerMarek Olšák <maraeo@gmail.com>
Thu, 6 Jan 2011 18:05:31 +0000 (19:05 +0100)
https://bugs.freedesktop.org/show_bug.cgi?id=32634

src/gallium/drivers/r300/r300_emit.c

index e1a3714aac7bcf3be6e9acbe9d86f86730926890..f5e9f73837498b33fb0942c69743803ea606b686 100644 (file)
@@ -380,7 +380,8 @@ void r300_emit_fb_state(struct r300_context* r300, unsigned size, void* state)
     if (r300->screen->caps.is_r500) {
         rb3d_cctl = R300_RB3D_CCTL_INDEPENDENT_COLORFORMAT_ENABLE_ENABLE;
     }
-    if (r300_fragment_shader_writes_all(r300_fs(r300))) {
+    if (fb->nr_cbufs &&
+        r300_fragment_shader_writes_all(r300_fs(r300))) {
         rb3d_cctl |= R300_RB3D_CCTL_NUM_MULTIWRITES(fb->nr_cbufs);
     }