glamor: Add support for CA rendering in a single pass.

It's been on the list to add dual source blending support to avoid the
two pass componentAlpha code.  Radeon has done this for a while in
EXA, so let's add support to bring glamor up to using it.

This adds dual blend to both render and composite glyphs paths.

Initial results show close to doubling of speed of x11perf -rgb10text.

v2: Fix breakage of all of CA acceleration for systems without
    GL_ARB_blend_func_extended.  Add CA support for all the ops we
    support in non-CA mode when blend_func_extended is present.  Clean
    up some comments and formatting.  (changes by anholt)

Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Dave Airlie 2016-01-12 18:13:46 +10:00 • committed by Eric Anholt
commit e7308b6c77
6 changed files with 118 additions and 32 deletions

View file

@ -43,6 +43,7 @@ typedef enum {
glamor_program_alpha_normal,
glamor_program_alpha_ca_first,
glamor_program_alpha_ca_second,
glamor_program_alpha_dual_blend,
glamor_program_alpha_count
} glamor_program_alpha;