Mesa (softpipe-opt): softpipe: cope with nr_cbufs == 0

Keith Whitwell keithw at kemper.freedesktop.org
Mon Jul 27 11:13:34 UTC 2009


Module: Mesa
Branch: softpipe-opt
Commit: 1078844d18367b4259cd3b6a3a73e3cd72ea019f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1078844d18367b4259cd3b6a3a73e3cd72ea019f

Author: Keith Whitwell <keithw at vmware.com>
Date:   Mon Jul 27 11:23:51 2009 +0100

softpipe: cope with nr_cbufs == 0

Disable blend code when no color buffer

---

 src/gallium/drivers/softpipe/sp_quad_blend.c |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/softpipe/sp_quad_blend.c b/src/gallium/drivers/softpipe/sp_quad_blend.c
index e1f0e77..e243c63 100644
--- a/src/gallium/drivers/softpipe/sp_quad_blend.c
+++ b/src/gallium/drivers/softpipe/sp_quad_blend.c
@@ -924,6 +924,13 @@ single_output_color(struct quad_stage *qs,
    }
 }
 
+static void
+blend_noop(struct quad_stage *qs, 
+           struct quad_header *quads[],
+           unsigned nr)
+{
+}
+
 
 static void
 choose_blend_quad(struct quad_stage *qs, 
@@ -934,9 +941,12 @@ choose_blend_quad(struct quad_stage *qs,
    const struct pipe_blend_state *blend = softpipe->blend;
 
    qs->run = blend_fallback;
-
-   if (!softpipe->blend->logicop_enable &&
-       softpipe->blend->colormask == 0xf) 
+   
+   if (softpipe->framebuffer.nr_cbufs == 0) {
+      qs->run = blend_noop;
+   }
+   else if (!softpipe->blend->logicop_enable &&
+            softpipe->blend->colormask == 0xf) 
    {
       if (!blend->blend_enable) {
          qs->run = single_output_color;




More information about the mesa-commit mailing list