directfb2 / DirectFB2

Core DirectFB library
GNU Lesser General Public License v2.1
132 stars 15 forks source link

Purpose/state of DirectFB2-gles2 on embedded boards with GLES 2.0 GPU support #148

Open octopus-russell opened 2 months ago

octopus-russell commented 2 months ago

Hi, I'm trying to determine if DirectFB2-gles2 can be used as a pure GPU accelerated OpenGL ES 2.0 backend for DirectFB2's functionality. From what I've read in other comments, there is a software Open GL ES implementation but I'm not sure why that would be - surely it should just use the MESA GLES driver?

caramelli commented 2 months ago

Rendering is done with a system module (for example, 2 generic system modules are provided in the DirectFB2 source tree, one based on the legacy framebuffer interface, the other based on the modern DRM/KMS interface).

If a chipset for hardware accelerated graphics operations is available on a platform, a system module can be combined with a GFX driver module to perform graphics operations in hardware.

This is typically the case on boards with a 3D GPU (which nowadays can generally be used with an EGL implementation supporting GBM): the DirectFB2-eglgbm system module combined with the DirectFB2-gles2 GFX driver provides excellent performance with the df_andi and df_dok examples.

What 3D GPU do you have on your board? With which OpenGL ES implementation? Mesa?

Note: be careful not to confuse hardware acceleration with the DirectFB2-gles2 GFX driver described above and rendering OpenGL scenes in a DirectFB surface.

octopus-russell commented 2 months ago

Thanks for the clarification and information. The board in question uses the Rockchip RK3568 soc - which has a OpenGL ES 3.2 compliant GPU supported by mesa drivers I believe.

matalama80td3l commented 1 month ago

If a chipset for hardware accelerated graphics operations is available on a platform, a system module can be combined with a GFX driver module to perform graphics operations in hardware.

I have a qcom mobile device and for some reason I can't get a useable panel driver to run mainline linux. So I can only have some graphics supports through simple framebuffer. In this case, can I get some GPU hardware acceleration if I try directfb2?

caramelli commented 1 month ago

Before trying to run DirectFB2 with GPU support, you need to make sure that you can render graphics correctly on the GPU via EGL and OpenGL ES.

For example, you can try yagears: yagears2 -b egl-drm -e glesv2

Note that I plan to add GPU hardware acceleration with Vulkan and Direct-to-Display (D2D WSI): DirectFB2-vulkan (empty for now)