From a34cb719cd9cb4f0c5b78be80b80ab0ae22464a6 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Mon, 3 Dec 2018 15:13:40 +0100 Subject: Add support for RGBA128F and RGB96F formats. IGT wants to add support for planes with a bit depth >10, which requires a higher precision format than we have currently. I'm using RGBA as format, because of its existence in OpenGL. With the new formats we can directly convert our bytes to half float, or multiply a colro vector with a matrix to go to the Y'CbCr colorspace. This requires pixman 0.36.0, so bump the version requirement. Signed-off-by: Maarten Lankhorst Reviewed-by: Bryce Harrington --- perf/micro/fill-clip.c | 2 ++ perf/micro/pixel.c | 2 ++ 2 files changed, 4 insertions(+) (limited to 'perf') diff --git a/perf/micro/fill-clip.c b/perf/micro/fill-clip.c index 2d014aca8..f9802705f 100644 --- a/perf/micro/fill-clip.c +++ b/perf/micro/fill-clip.c @@ -92,6 +92,8 @@ direct (cairo_t *cr, int width, int height, int loops) case CAIRO_FORMAT_RGB24: case CAIRO_FORMAT_RGB30: case CAIRO_FORMAT_ARGB32: bpp = 32; break; + case CAIRO_FORMAT_RGB96F: bpp = 96; break; + case CAIRO_FORMAT_RGBA128F: bpp = 128; break; } cairo_perf_timer_start (); diff --git a/perf/micro/pixel.c b/perf/micro/pixel.c index b600b5170..85a42e442 100644 --- a/perf/micro/pixel.c +++ b/perf/micro/pixel.c @@ -51,6 +51,8 @@ pixel_direct (cairo_t *cr, int width, int height, int loops) case CAIRO_FORMAT_RGB24: case CAIRO_FORMAT_RGB30: case CAIRO_FORMAT_ARGB32: bpp = 32; break; + case CAIRO_FORMAT_RGB96F: bpp = 96; break; + case CAIRO_FORMAT_RGBA128F: bpp = 128; break; } cairo_perf_timer_start (); -- cgit v1.2.1