llvmpipe: Implement logic ops for the AoS path.
authorJosé Fonseca <jfonseca@vmware.com>
Wed, 28 Nov 2012 20:45:03 +0000 (20:45 +0000)
committerJosé Fonseca <jfonseca@vmware.com>
Wed, 28 Nov 2012 20:45:18 +0000 (20:45 +0000)
It was forgotten in the previous patch series, but it is trivial to
implement, based on the SoA path.

This fixes glean logicOp failures.

src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c

index 8be0b97428774869b81792eeee8a0fcc604a14e6..641c253bfe32f83192acd1ebc3f72d0ba1a6e5d7 100644 (file)
@@ -318,7 +318,14 @@ lp_build_blend_aos(struct gallivm_state *gallivm,
       }
    }
 
-   if (!state->blend_enable) {
+   if (blend->logicop_enable) {
+      if(!type.floating) {
+         result = lp_build_logicop(gallivm->builder, blend->logicop_func, src, dst);
+      }
+      else {
+         result = src;
+      }
+   } else if (!state->blend_enable) {
       result = src;
    } else {
       boolean rgb_alpha_same = (state->rgb_src_factor == state->rgb_dst_factor && state->alpha_src_factor == state->alpha_dst_factor) || nr_channels == 1;