From d57c4eb7c983979a8f153e54b2d7c2cdb7423e00 Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Mon, 11 Feb 2013 16:26:28 +0100 Subject: [PATCH] docs: remove pixman comments We now provide an experimental pixman backend. It still suffers from the same problems but that cannot be fixed easily. Check it out if you want it. Disabled by default, though. Signed-off-by: David Herrmann --- docs/pixman.txt | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 docs/pixman.txt diff --git a/docs/pixman.txt b/docs/pixman.txt deleted file mode 100644 index e42e9d1..0000000 --- a/docs/pixman.txt +++ /dev/null @@ -1,47 +0,0 @@ -= Pixman accelerated Rendering = - -Several people recommended using pixman for 2D blitting to improve performance -as pixman has assembler-accelerated backends. However, pixman does not provide -the functions we need. -Most rendering operations we need, do alpha compositing with a foreground and -background color. With pixman we would have to do something like: - - pixman_image_t *pdst = pixman_image_create_bits( - PIXMAN_x8r8g8b8, - width, - height, - (uint32_t*)dst, - rb->stride); - pixman_image_t *pmsk = pixman_image_create_bits( - PIXMAN_a8, - width, - height, - (uint32_t*)src, - req->buf->stride); - - pixman_color_t fcol = { 0xffff, 0xffff, 0xffff, 0xffff }; - pixman_image_t *psrc = pixman_image_create_solid_fill( - &fcol); - - uint32_t bcol = (req->br << 16) | (req->bg << 8) | req->bb; - pixman_fill((void*)dst, rb->stride / 4, 32, 0, 0, - width, height, bcol); - - pixman_image_composite(PIXMAN_OP_OVER, - psrc, pmsk, pdst, - 0, 0, 0, 0, 0, 0, - width, height); - -That is, we create pixman-images for the destination and the mask. We could -save them in the video-display and glyph objects so there is actually no need -to allocate them dynamically. However, the solid color object can be any RGB -value and thus it must be allocated for every blit. This is way too heavy and -pixman should really provide a way to create solid images easier. Preferably -without any function call. -But the bigger problem is actually that we have to copy data twice. We need to -first call pixman_fill() and then pixman_image_composite() to get the -behavior we want. This totally kills performance. - -Profiling pixman_image_composite(), we see that it definitely is better than -our unoptimized blitters, but we need to add a function which does both -operations at once to pixman to get a decent performance.