Difference between revisions of "GraphicTest"

From Free Pascal wiki
Line 49: Line 49:
 
|}
 
|}
  
'''Conclusion''' the faster method with a good video card:
+
=== Test 2 ===
  
1) OpenGL PBO
+
'''Hardware:''' AMD Turion X2 1,8 GHz, 2 GB RAM, HD2400
  
2) TBGRABitmap PaintBox
+
'''OS:''' Ubuntu 12.10, GNU/Linux kernel 3.5.0 i686, Qt4
  
 +
{| class="wikitable sortable"
 +
|-
 +
! Method !! FPS !! Frame duration [ms]
 +
|-
 +
|TBitmap.Canvas.Pixels || 3.2 || 312.8
 +
|-
 +
|TBitmap.Canvas.Pixels Update locking || 4.3 || 232.3
 +
|-
 +
|TLazIntfImage.Colors copy || 80.1 || 12.5
 +
|-
 +
|TLazIntfImage.Colors no copy || 85.1 || 11.7
 +
|-
 +
|TBitmap.RawImage.Data || 223.4 || 4.5
 +
|-
 +
|TBitmap.RawImage.Data PaintBox || 225.9 || 4.4
 +
|-
 +
|TBitmap.RawImage.Data Move || 276.9 || 3.6
 +
|-
 +
|TBGRABitmap PaintBox || 112.5 || 8.9
 +
|-
 +
|Dummy || 489.6 || 2
 +
|}
  
=== Test 2 ===
+
=== Test 3 ===
  
 
'''Hardware:''' Intel Celeron CPU 2.66 GHz, 1.50 GB RAM, NVIDIA GeForce 6200.
 
'''Hardware:''' Intel Celeron CPU 2.66 GHz, 1.50 GB RAM, NVIDIA GeForce 6200.

Revision as of 17:38, 25 November 2012

Introduction

GraphicTest is simple program which measure FPS of various direct drawing methods. Aim is to determine fastest method how to copy custom off screen bitmap to visible area on screen.

Listed benchmarks results are dependent on:

  • computer hardware
  • compiler optimizations
  • operating system
  • display color depth
  • used GUI toolkit
  • vertical sync and max FPS limit


In some methods it is necessary to do swapping B a R component of color in some platforms which results to better/worst test score.

Test 1

Hardware: AMD Turion X2 1,8 GHz, 2 GB RAM, HD2400

OS: Ubuntu 12.10, GNU/Linux kernel 3.5.0 i686, Gtk2

Method FPS Frame duration [ms]
TBitmap.Canvas.Pixels 1 1031.7
TBitmap.Canvas.Pixels Update locking 3.2 308.1
TLazIntfImage.Colors copy 54.3 18.4
TLazIntfImage.Colors no copy 64.4 15.5
TBitmap.RawImage.Data 102.2 9.8
TBitmap.RawImage.Data PaintBox 102.5 9.8
TBitmap.RawImage.Data Move 116 8.6
TBGRABitmap PaintBox 123.1 8.1
TGR32Image 68.5 14.6
OpenGL 56.7 17.6
OpenGL PBO 152.4 6.6
Dummy 38166.3 0

Test 2

Hardware: AMD Turion X2 1,8 GHz, 2 GB RAM, HD2400

OS: Ubuntu 12.10, GNU/Linux kernel 3.5.0 i686, Qt4

Method FPS Frame duration [ms]
TBitmap.Canvas.Pixels 3.2 312.8
TBitmap.Canvas.Pixels Update locking 4.3 232.3
TLazIntfImage.Colors copy 80.1 12.5
TLazIntfImage.Colors no copy 85.1 11.7
TBitmap.RawImage.Data 223.4 4.5
TBitmap.RawImage.Data PaintBox 225.9 4.4
TBitmap.RawImage.Data Move 276.9 3.6
TBGRABitmap PaintBox 112.5 8.9
Dummy 489.6 2

Test 3

Hardware: Intel Celeron CPU 2.66 GHz, 1.50 GB RAM, NVIDIA GeForce 6200.

OS: Windows 7 x86.

Method FPS Duration
TBitmap.Canvas.Pixels 1.44 694.82
TBitmap.Canvas.Pixels Update locking 7.81 128.07
TLazIntfImage.Colors copy 96.6 10.35
TLazIntfImage.Colors no copy 96.7 10.34
TBitmap.RawImage.Data 462 2.16
TBitmap.RawImage.Data PaintBox 482 2.07
TBGRABitmap PaintBox 369 2.70
OpenGL 60.2 16.61
OpenGL PBO 60.1 16.63

Conclusion the faster method (less duration in ms) with highest fps:

1) Bitmap.RawImage.Data PaintBox

2) TBitmap.RawImage.Data

3) TBGRABitmap PaintBox

Download

Application can be downloaded from svn repository:

svn checkout http://svn.zdechov.net/svn/PascalClassLibrary/GraphicTest/

See also