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
