Open kjngineering opened 1 year ago
For reference, here is the same FBDev benchmark on 1.7.7 (no other changes).
# df_dok
(*) Direct/Thread: Started 'SigHandler' (108) [CRITICAL - OTHER/0] <8388608>...
~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.7.7 |~~~~~~~~~~~~~~~~~~~~~~~~~~
(c) 2012-2015 DirectFB integrated media GmbH
(c) 2001-2015 The world wide DirectFB Open Source Community
(c) 2000-2004 Convergence (integrated media) GmbH
----------------------------------------------------------------
(*) DirectFB/Core: Single Application Core. (2023-04-11 22:24)
(*) Direct/Memcpy: Using libc memcpy()
(*) Direct/Thread: Started 'Fusion Dispatch' (109) [MESSAGING - OTHER/0] <838860 8>...
(*) Direct/Thread: Started 'VT Switcher' (110) [CRITICAL - OTHER/0] <8388608>...
(*) Direct/Thread: Started 'VT Flusher' (111) [DEFAULT - OTHER/0] <8388608>...
(*) DirectFB/FBDev: Found 'sun4i-drmdrmfb' (ID 0) with frame buffer at 0x0000000 0, 1500k (MMIO 0x00000000, 0k)
(*) Direct/Thread: Started 'Keyboard Input' (112) [INPUT - OTHER/0] <8388608>...
(*) DirectFB/Input: Keyboard 0.9 (directfb.org)
(*) Direct/Thread: Started 'Hotplug with Linux Input' (113) [INPUT - OTHER/0] <8 388608>...
(*) DirectFB/Input: Hot-plug detection enabled with Linux Input Driver
(*) DirectFB/Graphics: Generic Software Rasterizer 0.7 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
(*) Direct/Thread: Started 'Genefx' (114) [DEFAULT - OTHER/0] <8388608>...
(*) FBDev/Mode: Setting 800x480 RGB32
(*) FBDev/Mode: Switched to 800x480 (virtual 800x480) at 32 bit (RGB32), pitch 3 200
(!) DirectFB/FBDev: Could not set gamma ramp --> Invalid argument
(*) Direct/Interface: Loaded 'PNG' implementation of 'IDirectFBImageProvider'.
(*) Direct/Interface: Loaded 'FT2' implementation of 'IDirectFBFont'.
(*) FBDev/Mode: Setting 800x480 RGB32
(*) FBDev/Mode: Switched to 800x480 (virtual 800x480) at 32 bit (RGB32), pitch 3 200
(!) DirectFB/FBDev: Could not set gamma ramp --> Invalid argument
(*) Direct/Interface: Loaded 'GIF' implementation of 'IDirectFBImageProvider'.
Benchmarking 256x256 on 800x464 RGB32 (32bit)...
Anti-aliased Text 3.036 secs ( 74.703 KChars/sec) [100.0%]
Anti-aliased Text (blend) 3.009 secs ( 21.535 KChars/sec) [100.0%]
Fill Rectangle 3.009 secs ( 217.799 MPixel/sec) [100.3%]
Fill Rectangle (blend) 3.917 secs ( 3.346 MPixel/sec) [100.2%]
Fill Rectangles [10] 3.256 secs ( 221.405 MPixel/sec) [100.0%]
Fill Rectangles [10] (blend) 19.595 secs ( 3.344 MPixel/sec) [100.0%]
Fill Triangles 3.009 secs ( 164.438 MPixel/sec) [100.3%]
Fill Triangles (blend) 3.941 secs ( 3.325 MPixel/sec) [100.0%]
Draw Rectangle 3.000 secs ( 24.300 KRects/sec) [100.0%]
Draw Rectangle (blend) 3.029 secs ( 2.112 KRects/sec) [100.0%]
Draw Lines [10] 3.008 secs ( 90.093 KLines/sec) [100.0%]
Draw Lines [10] (blend) 3.071 secs ( 10.094 KLines/sec) [100.0%]
Fill Spans 3.014 secs ( 191.345 MPixel/sec) [100.0%]
Fill Spans (blend) 3.941 secs ( 3.325 MPixel/sec) [100.0%]
Fill Trapezoids [10] 3.026 secs ( 194.918 MPixel/sec) [100.0%]
Blit 3.042 secs ( 107.718 MPixel/sec) [100.0%]
Blit 180 3.016 secs ( 89.090 MPixel/sec) [100.0%]
Blit colorkeyed 3.067 secs ( 76.925 MPixel/sec) [100.0%]
Blit destination colorkeyed 4.368 secs ( 4.501 MPixel/sec) [100.0%]
Blit with format conversion 3.245 secs ( 26.254 MPixel/sec) [100.0%]
Blit with colorizing 3.028 secs ( 15.150 MPixel/sec) [100.3%]
Blit from 32bit (blend) 3.753 secs ( 3.492 MPixel/sec) [100.0%]
Blit from 32bit (blend) with colorizing 4.990 secs ( 2.626 MPixel/sec) [100.0%]
Blit SrcOver (premultiplied source) 3.726 secs ( 7.035 MPixel/sec) [100.2%]
Blit SrcOver (premultiply source) 3.159 secs ( 18.671 MPixel/sec) [100.3%]
Stretch Blit 3.002 secs ( 105.281 MPixel/sec) [100.0%]
Stretch Blit colorkeyed 3.001 secs ( 66.318 MPixel/sec) [ 99.6%]
Blit performance and alpha seems to really struggle in DRM/KMS.
Fbdev is a huge performance increase on DirectFB(1.7)
Let me know if you would like any more tests run, I can build and test quite quickly now.
Also massive shoutout to @fifteenhex for the Buildroot packages for DFB2 - I would highly recommend switching to official sources and committing them to the buildroot repository.
Originally posted by @kjngineering in https://github.com/directfb2/DirectFB2/issues/108#issuecomment-1501274085