Re: [common PATCH 9/9 v4] ppc: Fix alpha state checking on BE machines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

On Fri, Dec 11, 2015 at 2:13 PM, Christophe Fergeau <cfergeau@xxxxxxxxxx> wrote:
canvas_get_target_format() then has this code:

    if (source_has_alpha) {
        if (format == PIXMAN_x8r8g8b8) {
            format = PIXMAN_a8r8g8b8;
        }
    }

spice_surface_format_to_pixman(canvas::format) is not going to return
PIXMAN_b8g8r8x8 on big-endian, is the canvas in a8r8g8b8 format on BE too?
If yes, then this patch should be correct, if not, more work will be needed I'm afraid..

spice_surface_format_to_pixman(canvas->format) will always return LE order colors (ARGB, XRGB).
With that, this function will also always return LE order colors, and that is correct behavior.

What the patch does is that it ensures, that source_has_alpha is set correctly,
because surface_format can be both BE, or LE.

If it is BE we will always convert to LE (surface_format != wanted_format will always fail),
but we can also convert from alpha to non-alpha or vice versa.

If it is LE we will only convert, if the alpha needs to be converted
(surface_format != wanted_format will fail only when alpha is different)

Hope that answers your question.

--
Lukas Venhoda
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]