summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2012-11-28 20:45:03 +0000
committerJosé Fonseca <jfonseca@vmware.com>2012-11-28 20:45:18 +0000
commit1cead8845b95643582903f054255d20b3de3e19a (patch)
treed8678d9b72483538d5e76e7ddc9301cfbaf6590a /src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
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.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c')
-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;