diff options
author | José Fonseca <jfonseca@vmware.com> | 2009-08-18 13:30:04 +0100 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2009-08-29 09:21:34 +0100 |
commit | 4a414d8f876031ffd299e8e0417da1ea7bf9b96b (patch) | |
tree | acf1c74186eca2480d3b87704bd33c3cc871ef56 /src/gallium/drivers/llvmpipe/lp_bld_blend_soa.c | |
parent | 3014919211b361817c5365f7cbb8d2ef8ca61234 (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.c | 9 |
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; |