summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_bld_blend_soa.c
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2009-08-18 13:30:04 +0100
committerJosé Fonseca <jfonseca@vmware.com>2009-08-29 09:21:34 +0100
commit4a414d8f876031ffd299e8e0417da1ea7bf9b96b (patch)
treeacf1c74186eca2480d3b87704bd33c3cc871ef56 /src/gallium/drivers/llvmpipe/lp_bld_blend_soa.c
parent3014919211b361817c5365f7cbb8d2ef8ca61234 (diff)
llvmpipe: Code generate logic ops.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_bld_blend_soa.c')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_blend_soa.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_bld_blend_soa.c b/src/gallium/drivers/llvmpipe/lp_bld_blend_soa.c
index 37253a6ba2..1e8a035d78 100644
--- a/src/gallium/drivers/llvmpipe/lp_bld_blend_soa.c
+++ b/src/gallium/drivers/llvmpipe/lp_bld_blend_soa.c
@@ -178,7 +178,14 @@ lp_build_blend_soa(LLVMBuilderRef builder,
for (i = 0; i < 4; ++i) {
if (blend->colormask & (1 << i)) {
- if (blend->blend_enable) {
+ if (blend->logicop_enable) {
+ if(!type.floating) {
+ res[i] = lp_build_logicop(builder, blend->logicop_func, src[i], dst[i]);
+ }
+ else
+ res[i] = dst[i];
+ }
+ else if (blend->blend_enable) {
unsigned src_factor = i < 3 ? blend->rgb_src_factor : blend->alpha_src_factor;
unsigned dst_factor = i < 3 ? blend->rgb_dst_factor : blend->alpha_dst_factor;
unsigned func = i < 3 ? blend->rgb_func : blend->alpha_func;