Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
CrypticRage opened this issue Sep 21, 2018 · 3 comments
Open

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

CrypticRage opened this issue Sep 21, 2018 · 3 comments

Comments

@CrypticRage
Copy link

CrypticRage commented Sep 21, 2018

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

@thopiekar
Copy link
Member

Hey Erik,

I never ran the driver without X, but you can find your library in the tizen package:
image

Additionally, I can recommend reading Intel's documentation. I guess it is the best source for all the knowlegde you need and still can get.

@CrypticRage
Copy link
Author

Thanks for the info. I gave up and shoved the old Xserver in the image. :)

@mirh
Copy link

mirh commented Nov 21, 2019

https://lore.kernel.org/patchwork/cover/1149321/ mentions weston?
It's scheduled to be pulled with drm-misc for 5.5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants