Skip to content

GL ES 2.0, GBM, and EGL without XServer #54

Description

@CrypticRage

Hey All:

I'm doing maintenance work on an embedded system with an Atom Z530 in it. A few years ago I put together a new system image and BSP for the device based on Yocto 1.8 (dizzy). I had to take the reference BSP that Intel created for a previous version of Yocto (danny) and basically make it work in dizzy. This was mostly driven by a need for hardware accelerated 3D graphics (OpenGL ES 2.0, specifically). By the time dizzy came around, Intel had abandoned the EMGD driver in their yocto layer and recommended the mainline gma500 driver (which, of course, has no hw 3D support).

I'm trying to get a new BSP working for Yocto 2.1 (krogoth), which uses a 4.4.26-based linux kernel. The source code for the EMGD drm kernel driver that you guys are maintaining here compiles and loads as a module just fine. There's one catch...I'd really like to ditch XServer, but the test app I'm trying to run is failing. Here's the rendering path:

qt5-opengles2-test (simple Qt test app)
Qt 5.6.3 (EGL backend based on libgbm)
libemgdPVR2D_GBMWSEGL.so.1.5.15.3226 (included with the Meego_Wayland user space driver)
libgbm.so.1.5.15.3226 (included with the Meego_Wayland user space driver)
libEMGD2d.so.1.5.15.3226 (included with the Meego_Wayland user space driver)
libemgdsrv_um.so.1.5.15.3226 (included with the Meego_Wayland user space driver)
libdrm.so.2 (user space drm library)
emgd-drm kernel driver

This is the error I'm getting when I run the test app:

emgd_dc.c --> [EMGD] GetDCBufferAddr() HAL not configured.

I did a bit of debugging and found that the dispatch table for the rendering context is empty, so the following test passes:

context->dispatch.gmm_get_page_list == NULL

Do you guys know of any way to get ES 2.0 running with EMGD WITHOUT using XServer?
Is X required to init the HAL?
Can I add the HAL init code to the module_init() function manually?

The funny thing is I thought about using Wayland, but the rendering path for Wayland seems to depend on a library that isn't even included in the Meego_Wayland driver:

libemgdPVR2D_WAYLANDWSEGL.so.1.5.15.3226:
linux-gate.so.1
libEMGD2d.so
libwayland-client.so.0
libwayland-egl.so.1
libwayland-emgd.so.1 ==> this is nowhere :)
libdl.so.2
libc.so.6
/lib/ld-linux.so.2

Thanks very much for the help. :)
-Erik

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions