Skip to content
  • Carlos Garnacho's avatar
    cogl: Prefer swizzling to convert BGRA buffers · 1705a26f
    Carlos Garnacho authored
    If the GL implementation/hw supports the GL_*_texture_swizzle extension,
    pretend that BGRA textures shall contain RGBA data, and let the flipping
    happen when the texture will be used in the rendering pipeline.
    
    This avoids rather expensive format conversions when forcing BGRA buffers
    into RGBA textures, which happens rather often with WL_SHM_FORMAT_ARGB8888
    buffers (like gtk+ uses) in little-endian machines.
    
    In intel/mesa/wayland, the performance improvement is rather noticeable,
    CPU% as seen by top decreases from 45-50% to 25-30% when running
    gtk+/tests/scrolling-performance with a cairo renderer.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=779234
    1705a26f