r600g: Original R600 does not support per-MRT blends
authorAlex Deucher <alexdeucher@gmail.com>
Mon, 14 Mar 2011 21:47:21 +0000 (17:47 -0400)
committerAlex Deucher <alexdeucher@gmail.com>
Mon, 14 Mar 2011 21:47:21 +0000 (17:47 -0400)
Only rv6xx+ support them.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
src/gallium/drivers/r600/r600_pipe.c

index 8303b7224ac68503a0719e570f70b99e74fc7846..0e28bda6eb62779d68e472f1ddf691b3c446d874 100644 (file)
@@ -280,19 +280,28 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_BLEND_EQUATION_SEPARATE:
        case PIPE_CAP_SM3:
        case PIPE_CAP_TEXTURE_SWIZZLE:
-       case PIPE_CAP_INDEP_BLEND_ENABLE:
        case PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE:
        case PIPE_CAP_DEPTH_CLAMP:
        case PIPE_CAP_SHADER_STENCIL_EXPORT:
        case PIPE_CAP_TGSI_INSTANCEID:
        case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR:
                return 1;
+       case PIPE_CAP_INDEP_BLEND_ENABLE:
+               /* R600 doesn't support per-MRT blends */
+               if (family == CHIP_R600)
+                       return 0;
+               else
+                       return 1;
 
        /* Unsupported features (boolean caps). */
        case PIPE_CAP_STREAM_OUTPUT:
        case PIPE_CAP_PRIMITIVE_RESTART:
        case PIPE_CAP_INDEP_BLEND_FUNC: /* FIXME allow this */
-               return 0;
+               /* R600 doesn't support per-MRT blends */
+               if (family == CHIP_R600)
+                       return 0;
+               else
+                       return 0;
 
        case PIPE_CAP_ARRAY_TEXTURES:
                /* fix once the CS checker upstream is fixed */