Hello!

I played a bit with different kernel-framebuffer drivers on linux. My
video card (Radeon 9600) is supported by both radeonfb and vesafb. I
tried radeonfb (new version, as it is in Linux-2.6.9) and vesafb-tng [1]
(new version, in gentoo-dev-sources) which supports higher resolutions
and on-the-fly video mode switching.

I did some benchmarking with df_dok (@ 1024x768) using the latest
CVS-version:


32 Bit:

Radeonfb:

Benchmarking with 256x256 in 24bit mode... (32bit)

Anti-aliased Text                  3.051 secs (  30.678 KChars/sec)
Anti-aliased Text (blend)          3.057 secs (  15.309 KChars/sec)
Fill Rectangles                    3.086 secs (  57.338 MPixel/sec)
Fill Rectangles (blend)            4.292 secs (   1.526 MPixel/sec)
Fill Triangles                     3.030 secs (  57.316 MPixel/sec)
Fill Triangles (blend)             4.278 secs (   1.531 MPixel/sec)
Draw Rectangles                    3.002 secs (  24.183 KRects/sec)
Draw Rectangles (blend)            3.034 secs (   1.087 KRects/sec)
Draw Lines                         3.004 secs ( 105.525 KLines/sec)
Draw Lines (blend)                 3.029 secs (   5.612 KLines/sec)
Fill Spans                         3.088 secs (  57.301 MPixel/sec)
Fill Spans (blend)                 4.295 secs (   1.525 MPixel/sec)
Blit                               3.091 secs (  57.245 MPixel/sec)
Blit colorkeyed                    3.032 secs (  69.167 MPixel/sec)
Blit destination colorkeyed        4.143 secs (   1.581 MPixel/sec)
Blit with format conversion        3.089 secs (  57.283 MPixel/sec)
Blit from 32bit (alphachannel b.)  4.342 secs (   1.509 MPixel/sec)
Stretch Blit                       3.527 secs (  57.601 MPixel/sec)
Stretch Blit colorkeyed            3.579 secs (  69.370 MPixel/sec)

Vesafb:

Benchmarking with 256x256 in 24bit mode... (32bit)

Anti-aliased Text                 3.078 secs (   31.578 KChars/sec)
Anti-aliased Text (blend)         3.015 secs (   15.522 KChars/sec)
Fill Rectangles                   3.086 secs (   57.338 MPixel/sec)
Fill Rectangles (blend)           4.261 secs (    1.538 MPixel/sec)
Fill Triangles                    3.030 secs (   57.316 MPixel/sec)
Fill Triangles (blend)            4.242 secs (    1.544 MPixel/sec)
Draw Rectangles                   3.001 secs (   24.191 KRects/sec)
Draw Rectangles (blend)           3.046 secs (    1.116 KRects/sec)
Draw Lines                        3.006 secs (  105.788 KLines/sec)
Draw Lines (blend)                3.100 secs (    5.806 KLines/sec)
Fill Spans                        3.089 secs (   57.283 MPixel/sec)
Fill Spans (blend)                4.262 secs (    1.537 MPixel/sec)
Blit                              3.091 secs (   57.245 MPixel/sec)
Blit colorkeyed                   3.029 secs (   69.235 MPixel/sec)
Blit destination colorkeyed       4.100 secs (    1.598 MPixel/sec)
Blit with format conversion       3.089 secs (   57.283 MPixel/sec)
Blit from 32bit (alphachannel B.) 4.309 secs (    1.520 MPixel/sec)
Stretch Blit                      3.526 secs (   57.617 MPixel/sec)
Stretch Blit colorkeyed           3.578 secs (   69.389 MPixel/sec)


24 Bit:

radeonfb 24 bit corrupts my screen on booting...

vesafb:

Benchmarking with 256x256 in 24bit mode... (24bit)

Anti-aliased Text                 3.229 secs (   12.263 KChars/sec)
Anti-aliased Text (blend)         3.030 secs (    5.940 KChars/sec)
Fill Rectangles                   3.010 secs (   76.204 MPixel/sec)
Fill Rectangles (blend)          12.061 secs (    0.543 MPixel/sec)
Fill Triangles                    3.029 secs (   75.726 MPixel/sec)
Fill Triangles (blend)            5.990 secs (    0.547 MPixel/sec)
Draw Rectangles                   3.003 secs (   20.546 KRects/sec)
Draw Rectangles (blend)           3.193 secs (    0.469 KRects/sec)
Draw Lines                        3.006 secs (   86.161 KLines/sec)
Draw Lines (blend)                3.037 secs (    2.634 KLines/sec)
Fill Spans                        3.009 secs (   76.229 MPixel/sec)
Fill Spans (blend)               12.061 secs (    0.543 MPixel/sec)
Blit                              3.026 secs (   75.801 MPixel/sec)
Blit colorkeyed                   3.000 secs (   83.012 MPixel/sec)
Blit destination colorkeyed       3.000 secs ( 46406.041 MPixel/sec)
Blit with format conversion       3.013 secs (   76.128 MPixel/sec)
Blit from 32bit (alphachannel b.) 12.110 secs (    0.541 MPixel/sec)
Stretch Blit                      3.238 secs (   76.675 MPixel/sec)
Stretch Blit colorkeyed           3.436 secs (   72.257 MPixel/sec)


"Blit destination colorkeyed" is very high here. I did it two times to
ensure that this is not a temporary error - but the values are the same.
Alpha-channel operations are noticable slower here...

But in fact both framebuffer drivers seems to behave equal.

The latest "stable"  version shows different results:

Benchmarking with 256x256 in 24bit mode... (24bit)

Anti-aliased Text              3.208 secs (   14.588 KChars/sec)
Anti-aliased Text (blend)      3.062 secs (    5.878 KChars/sec)
Fill Rectangles                3.006 secs (  263.800 MPixel/sec)
Fill Rectangles (blend)       12.029 secs (    0.544 MPixel/sec)
Fill Triangles                 3.002 secs (  200.843 MPixel/sec)
Fill Triangles (blend)         5.975 secs (    0.548 MPixel/sec)
Draw Rectangles                3.001 secs (   29.523 KRects/sec)
Draw Rectangles (blend)        3.010 secs (    0.465 KRects/sec)
Draw Lines                     3.004 secs (  121.504 KLines/sec)
Draw Lines (blend)             3.055 secs (    2.618 KLines/sec)
Fill Spans                     3.004 secs (  261.794 MPixel/sec)
Fill Spans (blend)            12.030 secs (    0.544 MPixel/sec)
Blit                           3.018 secs (  230.179 MPixel/sec)
Blit colorkeyed                3.066 secs (   94.050 MPixel/sec)
Blit destination colorkeyed    3.000 secs ( 40859.511 MPixel/sec)
Blit with format conversion    3.009 secs (   89.297 MPixel/sec)
Blit from 32bit (alphachanne) 12.083 secs (    0.542 MPixel/sec)
Stretch Blit                   3.010 secs (  161.931 MPixel/sec)
Stretch Blit colorkeyed        3.376 secs (   73.541 MPixel/sec)

The CVS-version seems to be slower... but it was optimized the same way
(-O3 -march=athlon-xp)

What framebuffer driver do you recommend? Is it possible to use
hardware-acceleration with both drivers?

Thanks a lot,

ciao

Olaf

[1] http://dev.gentoo.org/~spock/projects/vesafb-tng/

Some system data:

********* directfbrc *******
mode=1024x768
hardware

My system:

Athlon-XP 2500 @ nforce2 with 512 MB DDR-RAM






Reply via email to