Mesa (master): r300g: Dual-source blending isn't possible, period.

Corbin Simpson csimpson at kemper.freedesktop.org
Sat Jan 30 20:37:08 UTC 2010


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

Author: Corbin Simpson <MostAwesomeDude at gmail.com>
Date:   Sat Jan 30 12:03:20 2010 -0800

r300g: Dual-source blending isn't possible, period.

---

 src/gallium/drivers/r300/r300_screen.c        |    1 -
 src/gallium/drivers/r300/r300_state_inlines.h |   14 +++++++++-----
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c
index 7df3ad0..ae3155c 100644
--- a/src/gallium/drivers/r300/r300_screen.c
+++ b/src/gallium/drivers/r300/r300_screen.c
@@ -114,7 +114,6 @@ static int r300_get_param(struct pipe_screen* pscreen, int param)
              */
             return 1;
         case PIPE_CAP_DUAL_SOURCE_BLEND:
-            /* XXX need to figure out how to do it */
             return 0;
         case PIPE_CAP_ANISOTROPIC_FILTER:
             return 1;
diff --git a/src/gallium/drivers/r300/r300_state_inlines.h b/src/gallium/drivers/r300/r300_state_inlines.h
index faa0494..5df6815 100644
--- a/src/gallium/drivers/r300/r300_state_inlines.h
+++ b/src/gallium/drivers/r300/r300_state_inlines.h
@@ -81,9 +81,6 @@ static INLINE uint32_t r300_translate_blend_factor(int blend_fact)
             return R300_BLEND_GL_CONST_COLOR;
         case PIPE_BLENDFACTOR_CONST_ALPHA:
             return R300_BLEND_GL_CONST_ALPHA;
-        /* XXX WTF are these?
-        case PIPE_BLENDFACTOR_SRC1_COLOR:
-        case PIPE_BLENDFACTOR_SRC1_ALPHA: */
         case PIPE_BLENDFACTOR_ZERO:
             return R300_BLEND_GL_ZERO;
         case PIPE_BLENDFACTOR_INV_SRC_COLOR:
@@ -98,9 +95,16 @@ static INLINE uint32_t r300_translate_blend_factor(int blend_fact)
             return R300_BLEND_GL_ONE_MINUS_CONST_COLOR;
         case PIPE_BLENDFACTOR_INV_CONST_ALPHA:
             return R300_BLEND_GL_ONE_MINUS_CONST_ALPHA;
-        /* XXX see above
+
+        case PIPE_BLENDFACTOR_SRC1_COLOR:
+        case PIPE_BLENDFACTOR_SRC1_ALPHA:
         case PIPE_BLENDFACTOR_INV_SRC1_COLOR:
-        case PIPE_BLENDFACTOR_INV_SRC1_ALPHA: */
+        case PIPE_BLENDFACTOR_INV_SRC1_ALPHA:
+            debug_printf("r300: Implementation error: "
+                "Bad blend factor %d not supported!\n", blend_fact);
+            assert(0);
+            break;
+
         default:
             debug_printf("r300: Unknown blend factor %d\n", blend_fact);
             assert(0);




More information about the mesa-commit mailing list