thayama / libgbm Goto Github PK
View Code? Open in Web Editor NEWlibgbm for KMS BO
libgbm for KMS BO
This is the gbm frontend used by (for example) weston compositor to load the GLES stack, and retrieve the backing buffer objects behind an eglImage (created with EGL_WAYLAND_BUFFER_WL), etc. The frontend is really just a backend loader and shim. The backend library must be provided by the GLES implementation. To get wayland up and running on your GLES stack: 1) implement gbm backend 2) implement EGL_WL_bind_wayland_display extension (including EGL_WAYLAND_BUFFER_WL eglCreateImageKHR target for compositor-drm it looks like we also need EGL_KHR_surfaceless_gles2 extension.. ---- <robclark> hmm, I don't suppose there is any extension description for EGL_KHR_surfaceless_gles2 ? <pq> robclark, it should simply mean you can eglMakeCurrent with NULL surface, but a real context. ---- 3) implement wayland-egl (must provide wayland-egl.pc) 4) ??? 5) PROFIT!! need this in your eglext.h: ------------------- #ifndef EGL_WL_bind_wayland_display #define EGL_WL_bind_wayland_display 1 #define EGL_WAYLAND_BUFFER_WL 0x31D5 /* eglCreateImageKHR target */ struct wl_display; #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display); EGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display); #endif typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display); typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display); #endif -------------------
The convention for distros is to normally install only versioned libraries (/usr/lib/libgm.so.1.0.0
and /usr/lib/libgbm.so.1
linking to it). /usr/lib/libgbm.so
is provided as a symlink to the libgbm.so.1.0.0
only if the libgm-dev package is installed. On a target machine this is normally not installed.
In backend.c, libgbm tries to load libgm_kms.so
. To match this convention, it should load libgbm_kms.so.1
instead.
This issue was seen and investigated in Yocto. It may vary depending on how you are using the libgbm and wayland_kms components.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.