llvmpipe: Handle disabled blending too.
authorJosé Fonseca <jfonseca@vmware.com>
Sun, 9 Aug 2009 21:59:52 +0000 (22:59 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sat, 29 Aug 2009 08:21:27 +0000 (09:21 +0100)
src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
src/gallium/drivers/llvmpipe/lp_bld_blend_soa.c
src/gallium/drivers/llvmpipe/lp_test_blend.c

index e4a57af94c71cdc292217ae5b787e856a20ec9dd..a9ea2f4986daf78a67e69d2f86118dd0774f854b 100644 (file)
@@ -302,6 +302,9 @@ lp_build_blend_aos(LLVMBuilderRef builder,
    LLVMValueRef src_term;
    LLVMValueRef dst_term;
 
+   if(!blend->blend_enable)
+      return src;
+
    /* It makes no sense to blend unless values are normalized */
    assert(type.norm);
 
index 1ef1718cfda75fe745f49cecf24c1bdc43294798..44c5a516e439b363293f3304c7034adb905d5b86 100644 (file)
@@ -167,6 +167,15 @@ lp_build_blend_soa(LLVMBuilderRef builder,
    struct lp_build_blend_soa_context bld;
    unsigned i, j;
 
+   if(!blend->blend_enable) {
+      for (i = 0; i < 4; ++i)
+         res[i] = src[i];
+      return;
+   }
+
+   /* It makes no sense to blend unless values are normalized */
+   assert(type.norm);
+
    /* Setup build context */
    memset(&bld, 0, sizeof bld);
    lp_build_context_init(&bld.base, builder, type);
index 8bf5508bd4e25d054e8d81c6689a5f4636f3641b..5a09df5306ffb6156408c70e6295d72e92693ea0 100644 (file)
@@ -766,7 +766,7 @@ blend_funcs[] = {
 
 const union lp_type blend_types[] = {
    /* float, fixed,  sign,  norm, width, len */
-   {{  TRUE, FALSE,  TRUE,  TRUE,    32,   4 }}, /* f32 x 4 */
+   {{  TRUE, FALSE, FALSE,  TRUE,    32,   4 }}, /* f32 x 4 */
    {{ FALSE, FALSE, FALSE,  TRUE,     8,  16 }}, /* u8n x 16 */
 };