New commits:
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=5759090f3fba9dafefc721befcb50e6db77057dd
commit 5759090f3fba9dafefc721befcb50e6db77057dd
Author: Denis Oliver Kropp <[email protected]>
Date: Sat Nov 19 20:21:04 2011 +0100
Core: Surface allocation object, avoid system calls when rendering!
Make CoreSurfaceAllocation a FusionObject.
Change ISurface::PreLockBuffer() to return a CoreSurfaceAllocation
instead of index.
Add ISurface::PreLockBuffer2() which does not take a buffer
object handle, but a buffer role. This avoids overhead and
makes locking the surface skirmish in slaves obsolete. The
output of the method is a CoreSurfaceAllocation object.
This new method is used by dfb_surface_lock_buffer(),
dfb_surface_read_buffer() and dfb_surface_write_buffer()
that no longer lock the surface skirmish, just an IPC call
and the call into the surface pool for the resulting allocation.
Replace dfb_surface_buffer_locks() by dfb_surface_allocation_locks().
Add dfb_surface_allocation_decouple() for deallocating and setting
surface and buffer pointers to NULL.
Use fusion_skirmish_init2() to make surface skirmish a plain mutex
in case of secure fusion, resulting in greater performance.
Begin with some stereo cleanups, adding dfb_surface_get_buffer2()
that also takes a DFBSurfaceStereoEye. In the end the eye selection
via dfb_surface_set_stereo_eye() will be gone. That state should
be local to IDirectFBSurface, CoreGraphicsState etc.
Sacrifice CSALF_ONEFORALL for clean and robust implementation.
Non-secure (using real skirmish with system calls):
Benchmarking 10x10 on 852x464 RGB32 (32bit)...
Anti-aliased Text 1.000 secs ( 2811.600
KChars/sec) [ 99.0%]
Anti-aliased Text (blend) 1.005 secs ( 437.014
KChars/sec) [100.0%]
Fill Rectangle 1.000 secs ( 69.560
MPixel/sec) [ 99.0%]
Fill Rectangle (blend) 1.000 secs ( 45.230
MPixel/sec) [100.0%]
Fill Rectangles [10] 1.000 secs ( 319.100
MPixel/sec) [ 99.0%]
Fill Rectangles [10] (blend) 1.000 secs ( 97.300
MPixel/sec) [ 99.0%]
Fill Triangles 1.000 secs ( 33.565
MPixel/sec) [100.0%]
Fill Triangles (blend) 1.000 secs ( 25.770
MPixel/sec) [ 99.0%]
Draw Rectangle 1.000 secs ( 648.600
KRects/sec) [ 99.0%]
Draw Rectangle (blend) 1.000 secs ( 455.300
KRects/sec) [ 99.0%]
Draw Lines [10] 1.000 secs ( 5541.000
KLines/sec) [100.0%]
Draw Lines [10] (blend) 1.000 secs ( 4359.000
KLines/sec) [ 99.0%]
Fill Spans 1.000 secs ( 60.900
MPixel/sec) [100.0%]
Fill Spans (blend) 1.000 secs ( 41.000
MPixel/sec) [100.0%]
Fill Trapezoids [10] 1.000 secs ( 229.500
MPixel/sec) [ 99.0%]
Blit 1.000 secs ( 38.400
MPixel/sec) [ 99.0%]
Blit 180 1.000 secs ( 38.810
MPixel/sec) [ 99.0%]
Blit colorkeyed 1.000 secs ( 38.050
MPixel/sec) [ 99.0%]
Blit destination colorkeyed 1.000 secs ( 38.740
MPixel/sec) [ 99.0%]
Blit with format conversion 1.000 secs ( 32.650
MPixel/sec) [ 99.0%]
Blit with colorizing 1.000 secs ( 30.980
MPixel/sec) [ 99.0%]
Blit from 32bit (blend) 1.000 secs ( 35.720
MPixel/sec) [ 99.0%]
Blit from 32bit (blend) with colorizing 1.000 secs ( 22.490
MPixel/sec) [ 99.0%]
Blit SrcOver (premultiplied source) 1.000 secs ( 35.940
MPixel/sec) [ 99.0%]
Blit SrcOver (premultiply source) 1.000 secs ( 35.140
MPixel/sec) [100.0%]
Stretch Blit 1.000 secs ( 1470.786
MPixel/sec) [ 98.0%]
Stretch Blit colorkeyed 1.000 secs ( 823.420
MPixel/sec) [ 99.0%]
Secure (using fake skirmish being a simple mutex):
Benchmarking 10x10 on 852x464 RGB32 (32bit)...
Anti-aliased Text 1.000 secs ( 3056.400
KChars/sec) [ 99.0%]
Anti-aliased Text (blend) 1.000 secs ( 453.600
KChars/sec) [100.0%]
Fill Rectangle 1.000 secs ( 102.280
MPixel/sec) [ 99.0%]
Fill Rectangle (blend) 1.000 secs ( 57.830
MPixel/sec) [ 99.0%]
Fill Rectangles [10] 1.000 secs ( 391.600
MPixel/sec) [ 99.0%]
Fill Rectangles [10] (blend) 1.000 secs ( 102.600
MPixel/sec) [100.0%]
Fill Triangles 1.000 secs ( 46.500
MPixel/sec) [ 99.0%]
Fill Triangles (blend) 1.000 secs ( 32.620
MPixel/sec) [ 99.0%]
Draw Rectangle 1.000 secs ( 924.700
KRects/sec) [100.0%]
Draw Rectangle (blend) 1.000 secs ( 586.000
KRects/sec) [ 99.0%]
Draw Lines [10] 1.000 secs ( 7528.000
KLines/sec) [ 99.0%]
Draw Lines [10] (blend) 1.000 secs ( 5342.000
KLines/sec) [ 99.0%]
Fill Spans 1.000 secs ( 84.630
MPixel/sec) [100.0%]
Fill Spans (blend) 1.000 secs ( 50.380
MPixel/sec) [ 99.0%]
Fill Trapezoids [10] 1.000 secs ( 254.700
MPixel/sec) [ 99.0%]
Blit 1.000 secs ( 57.480
MPixel/sec) [ 99.0%]
Blit 180 1.000 secs ( 58.010
MPixel/sec) [ 98.0%]
Blit colorkeyed 1.000 secs ( 56.730
MPixel/sec) [ 99.0%]
Blit destination colorkeyed 1.000 secs ( 57.300
MPixel/sec) [ 99.0%]
Blit with format conversion 1.000 secs ( 45.810
MPixel/sec) [100.0%]
Blit with colorizing 1.000 secs ( 43.410
MPixel/sec) [ 99.0%]
Blit from 32bit (blend) 1.000 secs ( 50.970
MPixel/sec) [ 99.0%]
Blit from 32bit (blend) with colorizing 1.000 secs ( 27.220
MPixel/sec) [ 99.0%]
Blit SrcOver (premultiplied source) 1.000 secs ( 52.560
MPixel/sec) [ 99.0%]
Blit SrcOver (premultiply source) 1.000 secs ( 49.300
MPixel/sec) [ 98.0%]
Stretch Blit 1.000 secs ( 1482.339
MPixel/sec) [ 99.0%]
Stretch Blit colorkeyed 1.000 secs ( 832.783
MPixel/sec) [ 99.0%]
Secure slave with accel1 branch:
Benchmarking 10x10 on 852x464 RGB32 (32bit)...
Anti-aliased Text 1.002 secs ( 3560.479
KChars/sec) [ 22.0%]
Anti-aliased Text (blend) 1.014 secs ( 457.988
KChars/sec) [ 3.9%]
Fill Rectangle 1.000 secs ( 132.680
MPixel/sec) [ 96.0%]
Fill Rectangle (blend) 1.001 secs ( 93.496
MPixel/sec) [ 67.0%]
Fill Rectangles [10] 1.001 secs ( 521.178
MPixel/sec) [ 43.0%]
Fill Rectangles [10] (blend) 1.005 secs ( 111.044
MPixel/sec) [ 14.0%]
Draw Lines [10] 1.000 secs ( 9755.000
KLines/sec) [ 95.0%]
Draw Lines [10] (blend) 1.000 secs ( 10185.000
KLines/sec) [ 95.0%]
Blit 1.000 secs ( 189.480
MPixel/sec) [ 96.0%]
Blit 180 1.000 secs ( 206.160
MPixel/sec) [ 96.0%]
Blit colorkeyed 1.000 secs ( 167.730
MPixel/sec) [ 96.0%]
Blit destination colorkeyed 1.000 secs ( 185.440
MPixel/sec) [ 97.0%]
Blit with format conversion 1.001 secs ( 96.123
MPixel/sec) [ 69.0%]
Blit with colorizing 1.000 secs ( 91.340
MPixel/sec) [ 85.0%]
Blit from 32bit (blend) 1.000 secs ( 160.560
MPixel/sec) [ 83.0%]
Blit from 32bit (blend) with colorizing 1.002 secs ( 43.003
MPixel/sec) [ 39.0%]
Blit SrcOver (premultiplied source) 1.000 secs ( 219.320
MPixel/sec) [ 94.0%]
Blit SrcOver (premultiply source) 1.000 secs ( 185.800
MPixel/sec) [ 75.0%]
src/core/CoreDFB_includes.h | 72 ++++++
src/core/CoreSurface.flux | 63 ++++-
src/core/CoreSurface_real.cpp | 134 +++++++++--
src/core/Makefile.am | 2 +
src/core/core.c | 56 ++++-
src/core/core.h | 6 +
src/core/surface.c | 263 +++++++++++++++-----
src/core/surface.h | 17 ++
src/core/surface_allocation.c | 536 +++++++++++++++++++++++++++++++++++++++
src/core/surface_allocation.h | 138 ++++++++++
src/core/surface_buffer.c | 436 +++-----------------------------
src/core/surface_buffer.h | 71 +-----
src/core/surface_pool.c | 126 ++--------
systems/devmem/surfacemanager.c | 2 +-
systems/fbdev/surfacemanager.c | 2 +-
systems/x11/surfacemanager.c | 2 +-
systems/x11/x11_surface_pool.c | 9 -
tools/dfbdump.c | 11 +-
18 files changed, 1268 insertions(+), 678 deletions(-)
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=e4f72312b47787087b8293e3135d1a6f64f95e93
commit e4f72312b47787087b8293e3135d1a6f64f95e93
Author: Denis Oliver Kropp <[email protected]>
Date: Sat Nov 19 20:08:45 2011 +0100
dfbtest_resize: Remove alloca() usage.
tests/dfbtest_resize.c | 10 ++++------
1 files changed, 4 insertions(+), 6 deletions(-)
_______________________________________________
directfb-cvs mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-cvs