diff options
author | José Fonseca <[email protected]> | 2012-11-28 20:45:03 +0000 |
---|---|---|
committer | José Fonseca <[email protected]> | 2012-11-28 20:45:18 +0000 |
commit | 1cead8845b95643582903f054255d20b3de3e19a (patch) | |
tree | d8678d9b72483538d5e76e7ddc9301cfbaf6590a /src | |
parent | 547efc76df31a87a59ed1b6b5e935a1acf4728bf (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')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c | 9 |
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; |