History log of /external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
04480a04b10524e156cb01d5f7bd8ec02fcc4a67 22-Dec-2016 Roland Scheidegger <sroland@vmware.com> llvmpipe: use alpha from already converted color if possible

For rgbx formats, there is no point in doing alpha conversion again (and
with different tranpose even, so llvm can't eliminate it).
Albeit it looks like there's some minimal changes needed in the blend code
(found by code inspection, no test seemed to complain) if we do this -
the blend factors are already sanitized if we have no destination alpha,
however for src_alpha_saturate it looks like it still might make a
difference (note that we forced has_alpha to true before for some formats
and nothing complained, but this seems safer).

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
fb523cb6ad3ffef22ab4b9cce9e53859c17c5739 16-Apr-2016 Marek Olšák <marek.olsak@amd.com> gallium: merge PIPE_SWIZZLE_* and UTIL_FORMAT_SWIZZLE_*

Use PIPE_SWIZZLE_* everywhere.
Use X/Y/Z/W/0/1 instead of RED, GREEN, BLUE, ALPHA, ZERO, ONE.
The new enum is called pipe_swizzle.

Acked-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
f4b3430a36ea88707f59ce147a140a1a559378c5 19-Mar-2014 Richard Sandiford <rsandifo@linux.vnet.ibm.com> llvmpipe: Tighten check for alpha-only formats

The AoS version of ld_build_blend_factor was assuming that if the first
channel was alpha, there were no rgb components.

Fixes glean/blendFunc on System z. No piglit regressions on x86_64.
The shortcut is still used in tests like spec/ARB_framebuffer_object/
fbo-alpha.

Signed-off-by: Richard Sandiford <rsandifo@linux.vnet.ibm.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
e57b98bad33b13ba02b11144709dd09af2ea8c95 18-Jul-2013 Roland Scheidegger <sroland@vmware.com> llvmpipe: fix blending with SRC_ALPHA_SATURATE with some formats without alpha

We were fixing up the blend factor to ZERO, however this only works correctly
with fixed point render buffers where the input values are clamped to 0/1
(because src_alpha_saturate is min(As, 1-Ad) so can be negative with unclamped
inputs). Haven't seen any failure anywhere due to that with fixed point SNORM
buffers (which clamp inputs to -1/1) but it should apply there as well (snorm
blending is rare, even opengl 4.3 doesn't require snorm rendertargets at all,
d3d10 requires them but they are not blendable).
Doesn't look like piglit hits this though (some internal testing hits the
float case at least). (With legacy OpenGL we could theoretically still use the
fixup to zero if the fragment color clamp is enabled, but we can't detect that
easily since we don't support native clamping hence it gets baked into the
shader.)

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Zack Rusin <zackr@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
8b8bca06dff5b30da1ac97d18cc0e91acb13d516 12-Feb-2013 Roland Scheidegger <sroland@vmware.com> llvmpipe: implement dual source blending

link up the fs outputs and blend inputs, and make sure the second blend source
is correctly loaded and converted (which is quite complex).
There's a slight refactoring of the monster generate_unswizzled_blend()
function where it makes sense to factor out alpha conversion (which needs
to run twice for dual source blend).
This passes piglit arb_blend_func_extended tests.

v2: remove new but ultimately not used function...

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
67906f91c9b924306d6bfec5d718b6225390205d 07-Feb-2013 Roland Scheidegger <sroland@vmware.com> llvmpipe: first steps of adding dual source blend support

This adds support of the additional blending factors to the blend function
itself, and also enables testing of it in lp_test_blend (which passes).
Still need to add the glue code of linking fs shader outputs to blend inputs
in llvmpipe, and probably need to add special handling if destination doesn't
include alpha (which lp_test_blend doesn't test).

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
48b01e6a1003d997778df8d36f7004ab1f1be629 06-Feb-2013 Brian Paul <brianp@vmware.com> llvmpipe: remove extraneous const qualifier
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
8c84a82383fe56bc1a8977ce42de36f71ffc108e 13-Jan-2013 Roland Scheidegger <sroland@vmware.com> llvmpipe: fix using wrong format with MRT in blend code

We were passing in the rt index however this was always 0 for non-independent
blend case. (The format was only actually used to decide if the color mask
covered all channels so this went unnoticed and was discovered by accident.)
Additionally, there was a second problem because we do fixups in the key based
on color buffer format we cannot use non-independent blend anyway as the fixed
up values would never get used.
So always turn non-independent blending into independent.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
1cead8845b95643582903f054255d20b3de3e19a 28-Nov-2012 José Fonseca <jfonseca@vmware.com> 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.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
fa1b481c09b14e01eca1b3db8e0854033f6dee3d 13-Sep-2012 James Benton <jbenton@vmware.com> llvmpipe: Unswizzled rendering.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
1d3789bccbbcc814fd7b339e9f5b5631e30d9f0e 11-Jul-2012 James Benton <jbenton@vmware.com> gallivm: Updated lp_build_const_mask_aos to input number of channels.

Also updated lp_build_const_mask_aos_swizzled to reflect this.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
8684ffc141ed024ab1d42fcba31d8517288fac40 03-Jul-2012 James Benton <jbenton@vmware.com> llvmpipe: Unified common code between AoS and SoA blending.

Added a new file lp_bld_blend.c for the common code.
Merged and added some simple optimisations.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
c23fd547c060c4137eab0f878a1028c5903384eb 25-Apr-2012 James Benton <jbenton@vmware.com> gallivm: Added lp_build_const_mask_aos_swizzled

Allows the creation of const aos masks which have the mask swizzled
to match the correct format.

Updated existing mask creation code to use the swizzled version where
necessary (tgsi register masks and llvmpipe aos blending).

Signed-off-by: José Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
16b081f1b0acf3158423c9fbed69c85807ce5276 19-Apr-2012 James Benton <jbenton@vmware.com> llvmpipe: add masking support to aos blend

Signed-off-by: José Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
0b0f4628d6fb8276a9f1c336a785a838b602bca8 18-Apr-2012 James Benton <jbenton@vmware.com> llvmpipe: Added support for color masks in AoS blending.

Signed-off-by: José Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
efc82aef35a2aac5d2ed9774f6d28f2626796416 01-Dec-2010 Brian Paul <brianp@vmware.com> gallivm/llvmpipe: squash merge of the llvm-context branch

This branch defines a gallivm_state structure which contains the
LLVMBuilderRef, LLVMContextRef, etc. All data structures built with
this object can be periodically freed during a "garbage collection"
operation.

The gallivm_state object has to be passed to most of the builder
functions where LLVMBuilderRef used to be used.

Conflicts:
src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
src/gallium/drivers/llvmpipe/lp_state_setup.c
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
9a8e9f4595b66ea094b293da1afcded8f06ab3d6 22-Sep-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Special case complementary and identify blend factors in SoA.

One multiplication instead of two.

Also fix floating point random number generation and verification.

TODO: Do the same for AoS blending.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
34ea50f6720d6aca970613da560a1f25f5b5772c 02-Sep-2010 José Fonseca <jfonseca@vmware.com> gallivm: s/lp_build_broadcast_aos/lp_build_swizzle_scalar_aos/

More accurate description of this function purpose.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
6ed726b8fc6210a41fe325591e1428d19f419108 02-Sep-2010 José Fonseca <jfonseca@vmware.com> gallivm: Pass condition masks as an unsigned bitmask.

Much more convenient than boolean arrays.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
83ced5a918fd597fe2cb2991ff9732920354718c 01-Jul-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Remove lp_build_swizzle2_aos().

Unnecessary special case.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
f795735f4251d5f7842ee9e09994641c5c46d25d 11-May-2010 Brian Paul <brianp@vmware.com> llvmpipe: fix up indexing of blend/colormask state for render targets
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
bd34f61a7a84b039b1c9d4aafbdb8f7656c8dd11 11-May-2010 Brian Paul <brianp@vmware.com> llvmpipe: add, update, rewrap comments
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
23a2166bc5e4ceb3576736c3b0ce2b62dd241b3c 16-Apr-2010 Brian Paul <brianp@vmware.com> llvmpipe: remove unneeded break stmt
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
d75129dd13c2aac4053340487b87127420449ee8 16-Apr-2010 Brian Paul <brianp@vmware.com> gallivm/llvmpipe: move lp_bld_blend* files to llvmpipe/ directory
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
c61bf363937f40624a5632745630d4f2b9907082 09-Feb-2010 Zack Rusin <zackr@vmware.com> llvmpipe: export the tgsi translation code to a common layer

the llvmpipe tgsi translation is a lot more complete than what was in
gallivm so replacing the latter with the former. this is needed since
the draw llvm paths will use the same code. effectively the proven
llvmpipe code becomes gallivm.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
38f6f23fcf37247fd709d1c612d08bfa9b124e69 02-Feb-2010 José Fonseca <jfonseca@vmware.com> gallium: Make pipe_atomic a regular int32_t.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
04cb5dfb1e0968300204980b08748a140e5e7918 20-Jan-2010 Roland Scheidegger <sroland@vmware.com> llvmpipe: adapt to per-rendertarget blend changes
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
0bfc579bd435b4d0c258258440866840c473f681 03-Jan-2010 Vinson Lee <vlee@vmware.com> llvmpipe: Remove comma at end of enumerator list.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
b4835ea03d64261da5a892f9590c9977b06920e8 14-Sep-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Make lp_type a regular union.

Union not worth the hassle of violating C99 or adding a name to
the structure.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
5811ed87d732101ab8cfbd087bc99d8c6c963f30 22-Aug-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Add a bunch of comments.

Description/rationale/to-do items, while I still remember them...
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
5999ebfb69a47fa12d1f534871ea01a3f889f62f 18-Aug-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Debug helper function to name llvm intermediate values.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
09a7b011acb3957725bb7e1bc4125f0939a295e7 17-Aug-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Move lp_build_select to lp_bld_logic.[ch].
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
29d94a9cbb7858cc8b0cfb05c0bb66f56a6acfa5 10-Aug-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Code generate color masking.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
e7fc21434d2c5a9177a427950be5029ff4db43ee 09-Aug-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Handle disabled blending too.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
2529ed5616b1b152766a3355444260b88184cd6e 09-Aug-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: SoA blending.

Throughput seems to be 4x higher.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c