summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2012-11-28 20:45:03 +0000
committerJosé Fonseca <[email protected]>2012-11-28 20:45:18 +0000
commit1cead8845b95643582903f054255d20b3de3e19a (patch)
treed8678d9b72483538d5e76e7ddc9301cfbaf6590a
parent547efc76df31a87a59ed1b6b5e935a1acf4728bf (diff)
llvmpipe: Implement logic ops for the AoS path.
It was forgotten in the previous patch series, but it is trivial to implement, based on the SoA path. This fixes glean logicOp failures.
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c b/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
index 8be0b974287..641c253bfe3 100644
--- a/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
+++ b/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
@@ -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;