bgrabitmap / bgracontrols

🆗 BGRA Controls is a set of graphical UI elements that you can use with Lazarus LCL applications.
https://bgrabitmap.github.io/bgracontrols/
189 stars 32 forks source link

BGRAGraphicControl performance issue #40

Closed MaartenJB closed 5 years ago

MaartenJB commented 5 years ago

Hi,

I've got a problem with the performance of the TBGRAGraphicControl. When I do a redraw of the screen it seems to be 5 times slower then the redraw of the TBGRAVirtualScreen. On my computer with the form maximized, the VirtualScreen runs at 50 fps and the GraphicControl only 10 fps.

I've attached a test project to show the performance of both the TBGRAGraphicControl and the TBGRAVirtualScreen. speed_test_bgra_2.zip

I'm probably missing something here, but can't figure out why there's such a difference.

Thanks, Maarten

circular17 commented 5 years ago

On my computer with Wine, I get 67 FPS for TBGRAVirtualScreen and 30 FPS for TBGRAGraphicControl. On Linux I get around 30 FPS for both. I would say normally TBGRAVirtualScreen is faster because it is opaque (no background, no alpha channel). Though I am surprised by a drop to 10 FPS only.

MaartenJB commented 5 years ago

I run it maximized on a monitor with the resolution of 1920x1200 with an i7 core processor on Fedora Core 27 64bit . I tried to set ColorOpacity to 255, but that did not make any difference. When I draw directly to the TForm canvas, I get 47 fps.

lainz commented 5 years ago

And what about all the components, most of our components are graphic control based, they are slower than the custom control based ones too?

lainz commented 5 years ago

On my 2011 Mac is the opposite, it works at 30 fps maximized with bgragraphiccontrol and with bgravirtualscreen it drops to 16 fps maximized.

lainz commented 5 years ago

I close this, nothing can be done in BGRA side, is the LCL not BGRABitmap drawing routines.