[virglrenderer-devel] [PATCH v2 0/7] vrend: Take format swizzles into account when blitting with GL

Alexandros Frantzis alexandros.frantzis at collabora.com
Mon Apr 23 15:45:55 UTC 2018


Currently, format swizzles are not used by the GL blitter. Formats that
need some kind of swizzle (e.g., emulated alpha, formats with X
components) are implemented with special cases and shaders.

This patchset adds more general support for both source and destination
swizzles when blitting with GL, removing special cases in the process.

Patches (1) to (3) prepare the virgl formats descriptions to accept
swizzles and also implement the infrastructure required to properly
support swizzles in the blitter.

Patch (4) fixes the blitter to properly support out-of-bounds blits,
preventing regressions when formats with swizzles use the GL blitter in
upcoming commits.

Patches (5) to (7) take advantage of the new swizzle infrastructure to
improve support for some virgl formats.

Changes in v2:
  - In the blit destination shader use 1.0f (instead of 0.0f) for
    unused alpha values.
  - Fix blitter to support out-of-bounds blits.
  - Remove some magic numbers, replacing them with constants.

Alexandros Frantzis (7):
  vrend: Add swizzle to format descriptions
  vrend: Use source swizzle when blitting with GL
  vrend: Use destination swizzle when creating blit shaders
  vrend: Properly handle out-of-bounds blits when blitting with GL
  vrend: Use red with swizzle for luminance formats
  vrend: Use red/green with swizzle for luminance/alpha formats
  vrend: Use RGB1 swizzle for formats with "don't care" components

 src/vrend_blitter.c  | 307 +++++++++++++++++++++----------------------
 src/vrend_blitter.h  |  28 +---
 src/vrend_formats.c  | 283 ++++++++++++++++++++-------------------
 src/vrend_renderer.c |  18 ++-
 src/vrend_renderer.h |   3 +-
 5 files changed, 317 insertions(+), 322 deletions(-)

-- 
2.17.0



More information about the virglrenderer-devel mailing list