Wow!

Would this make it for the 1.6 release?

-Ilyes

On Wed, Nov 16, 2011 at 11:08 AM, Denis Oliver Kropp <d...@directfb.org> wrote:
> FYI
>
> -------- Original Message --------
> Subject: {DirectFB} Core: Experimental gfxcard.c replacement code with huge
>     optimization
> Date: 13 Nov 2011 14:07:05 +0100
> From: d...@directfb.org
> To: directfb-...@directfb.org
>
> New branch 'accel1' available with the following commits:
> http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=92c15f0612c55df9b95a83fb0d19804e4718fa48
> commit 92c15f0612c55df9b95a83fb0d19804e4718fa48
> Author: Denis Oliver Kropp <d...@directfb.org>
> Date:   Mon Oct 31 23:44:07 2011 +0100
>
>    Core: Experimental gfxcard.c replacement code with huge optimization
>
>    This implementation does not lock/unlock buffers for each operation,
>    but does a lazy state and lock management. If one calls SetColor and
>    FillRectangles in a row it will only call SetState() of the driver,
>    no unlock/lock of buffers etc.
>
>    To achieve this there's a new dispatch cleanup handler added that
>    is called before the next read() from Fusion device, to unlock the
>    currently locked buffers and exit the currently active state.
>
>    There's still a lot of code to move from gfxcard.c, the actual rendering,
>    but maybe it's worth to think about a rework to support all kinds of
>    cases with/without hardware matrix/clipping, different primitives etc.
>
>    The performance boost is awesome, up to 20x for some tests I ran.
>
>    Here are a few results:
>
>    Benchmarking 100x100 on 852x464 RGB32 (32bit)...
>
>    Anti-aliased Text                              3.001 secs ( 3637.187
> KChars/sec) [ 19.6%]
>    Anti-aliased Text (blend)                      3.015 secs (  489.552
> KChars/sec) [  4.9%]
>    Fill Rectangle                                 3.003 secs ( 3303.030
> MPixel/sec) [ 24.0%]
>    Fill Rectangle (blend)                         3.066 secs (  181.343
> MPixel/sec) [  1.6%]
>    Fill Rectangles [10]                           3.018 secs ( 3479.125
> MPixel/sec) [  4.6%]
>    Fill Rectangles [10] (blend)                   3.351 secs (  182.035
> MPixel/sec) [  0.2%]
>    Blit                                           3.005 secs ( 3346.422
> MPixel/sec) [ 16.3%]
>    Blit 180                                       3.014 secs ( 1379.230
> MPixel/sec) [  7.9%]
>    Blit colorkeyed                                3.015 secs ( 1271.973
> MPixel/sec) [  7.3%]
>    Blit destination colorkeyed                    3.012 secs ( 1403.054
> MPixel/sec) [  7.9%]
>    Blit with format conversion                    3.059 secs (  322.000
> MPixel/sec) [  1.9%]
>    Blit with colorizing                           3.061 secs (  189.807
> MPixel/sec) [  1.9%]
>    Blit from 32bit (blend)                        3.059 secs (  323.635
> MPixel/sec) [  1.9%]
>    Blit from 32bit (blend) with colorizing        3.126 secs (   86.372
> MPixel/sec) [  0.9%]
>    Blit SrcOver (premultiplied source)            3.037 secs (  526.506
> MPixel/sec) [  3.3%]
>    Blit SrcOver (premultiply source)              3.035 secs (  548.599
> MPixel/sec) [  3.3%]
>
>    Compared to the old code:
>
>    Benchmarking 100x100 on 852x464 RGB32 (32bit)...
>
>    Anti-aliased Text                              3.009 secs (  926.021
> KChars/sec) [ 18.0%]
>    Anti-aliased Text (blend)                      3.015 secs (  427.462
> KChars/sec) [  4.9%]
>    Fill Rectangle                                 3.010 secs (  655.813
> MPixel/sec) [ 40.5%]
>    Fill Rectangle (blend)                         3.069 secs (  171.391
> MPixel/sec) [  2.2%]
>    Fill Rectangles [10]                           3.019 secs ( 3093.739
> MPixel/sec) [  5.6%]
>    Fill Rectangles [10] (blend)                   3.326 secs (  180.396
> MPixel/sec) [  0.3%]
>    Blit                                           3.037 secs (  466.249
> MPixel/sec) [  6.6%]
>    Blit 180                                       3.051 secs (  406.751
> MPixel/sec) [  5.5%]
>    Blit colorkeyed                                3.046 secs (  397.570
> MPixel/sec) [  5.2%]
>    Blit destination colorkeyed                    3.030 secs (  571.287
> MPixel/sec) [  8.2%]
>    Blit with format conversion                    3.079 secs (  220.850
> MPixel/sec) [  2.2%]
>    Blit with colorizing                           3.072 secs (  131.510
> MPixel/sec) [  2.2%]
>    Blit from 32bit (blend)                        3.097 secs (  188.246
> MPixel/sec) [  2.2%]
>    Blit from 32bit (blend) with colorizing        3.136 secs (   77.487
> MPixel/sec) [  0.9%]
>    Blit SrcOver (premultiplied source)            3.078 secs (  253.411
> MPixel/sec) [  2.9%]
>    Blit SrcOver (premultiply source)              3.068 secs (  265.319
> MPixel/sec) [  2.9%]
>
>    Compared to new code, but running as master (new mechanism leverages
> async FusionCalls):
>
>    Benchmarking 100x100 on 852x464 RGB32 (32bit)...
>
>    Anti-aliased Text                              3.000 secs ( 1582.800
> KChars/sec) [ 99.3%]
>    Anti-aliased Text (blend)                      3.003 secs (  402.797
> KChars/sec) [ 99.6%]
>    Fill Rectangle                                 3.000 secs ( 1978.000
> MPixel/sec) [ 99.6%]
>    Fill Rectangle (blend)                         3.001 secs (  172.609
> MPixel/sec) [ 99.6%]
>    Fill Rectangles [10]                           3.002 secs ( 3214.523
> MPixel/sec) [ 99.6%]
>    Fill Rectangles [10] (blend)                   3.049 secs (  180.387
> MPixel/sec) [ 99.6%]
>    Blit                                           3.001 secs (  522.159
> MPixel/sec) [ 99.3%]
>    Blit 180                                       3.000 secs (  424.333
> MPixel/sec) [ 99.6%]
>    Blit colorkeyed                                3.002 secs (  413.724
> MPixel/sec) [ 99.3%]
>    Blit destination colorkeyed                    3.001 secs (  615.794
> MPixel/sec) [ 99.3%]
>    Blit with format conversion                    3.000 secs (  225.333
> MPixel/sec) [ 99.6%]
>    Blit with colorizing                           3.003 secs (  143.856
> MPixel/sec) [ 99.6%]
>    Blit from 32bit (blend)                        3.002 secs (  207.861
> MPixel/sec) [ 99.3%]
>    Blit from 32bit (blend) with colorizing        3.006 secs (   74.184
> MPixel/sec) [ 99.6%]
>    Blit SrcOver (premultiplied source)            3.001 secs (  274.908
> MPixel/sec) [ 99.0%]
>    Blit SrcOver (premultiply source)              3.000 secs (  286.333
> MPixel/sec) [ 99.6%]
>
>    YES, it is slower than as a slave, as master does not go via FusionCall!
>
>  lib/fusion/fusion.c                 |   68 +++++
>  lib/fusion/fusion.h                 |   19 ++
>  lib/fusion/fusion_internal.h        |    2 +
>  src/core/CoreGraphicsState_real.cpp |  465
> +++++++++++++++++++++++++++++++++-
>  src/core/gfxcard.c                  |    2 +-
>  src/core/graphics_state.h           |   18 +-
>  src/core/state.h                    |    6 +-
>  src/gfx/clip.h                      |    2 +-
>  src/gfx/generic/generic.c           |  197 +++++++++++-----
>  src/gfx/generic/generic.h           |    3 +-
>  10 files changed, 704 insertions(+), 78 deletions(-)
>
> http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=364bbdb150032eed9d69e5a0acfdd6f976a38770
> commit 364bbdb150032eed9d69e5a0acfdd6f976a38770
> Author: Denis Oliver Kropp <d...@directfb.org>
> Date:   Sun Nov 13 13:49:45 2011 +0100
>
>    Core: Use new "queue" property for rendering and state setting methods.
>
>    Except surface setters because of out of order execution with references
>    being dropped right after blitting from but before flushing.
>
>  src/core/CoreGraphicsState.flux |   24 ++++++++++++++++++++++++
>  1 files changed, 24 insertions(+), 0 deletions(-)
>
> _______________________________________________
> directfb-cvs mailing list
> directfb-...@directfb.org
> http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-cvs
>
> _______________________________________________
> directfb-dev mailing list
> directfb-dev@directfb.org
> http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
>
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to