匿名
未登录
登录
百问网嵌入式Linux wiki
搜索
查看“EGL backends”的源代码
来自百问网嵌入式Linux wiki
名字空间
页面
讨论
更多
更多
页面选项
Read
查看源代码
历史
←
EGL backends
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{ReviewsComments|PCO (W803) : please avoid "br"}} {{ReviewsComments|PCO (W803) : maybe improve the summary by simply adding the names of possible backends}} The EGL backend is the EGL low level interface to define how buffer will be allocated and how display will be done.<br> ==Supported backends== To be integrated into OpenSTLinux, GPU software stack should supports '''DRM/GBM''' and '''Wayland''' backends.<br> The GPU userland library dynamically selects the currently running EGL backend according to the information given by the application thanks to the support of the '''eglGetPlatformDisplayEXT''' extension: * EGL_PLATFORM_GBM_KHR (selects DRM backend based on GBM) => choice made by weston compositor * EGL_PLATFORM_WAYLAND_KHR (selects Wayland backend) => choice made by a wayland client application {{Info | Only one of the DRM backend and Wayland backends runs at a time}} ==EGL focus== {{ReviewsComments|PCO (W803) : please add a legend for colors, use the official template maybe}} [[File:egl-focus.png|center|800px]] ==DRM/GBM backend== '''DRM/GBM backend''' is based on the Graphic Buffer Management interfaced ('''GBM''') to handle buffer/surface creation. <br> '''GBM''' is itself based on dmabuf DRM/KMS allocator (using DRM_IOCTL_MODE_CREATE_DUMB). <br> The application need to set the display mode using the KMS mode setting of the DRM/KMS protocol and then should drop the DRM master token.<br> So that, the '''DRM/GBM backend''' could take the DRM master token and perform EGL rendering directly on the the display selected set by the KMS mode setting (done by the application). ==Wayland backend== The '''Wayland backend''' implements Wayland EGL extensions: * eglBindWaylandDisplayWL * eglUnbindWaylandDisplayWL * eglQueryWaylandBufferWL * support of EGL_WAYLAND_BUFFER_WL in eglCreateKHRImage interface. The '''wayland backend''' is used by the egl wayland clients (means application that want to display EGL surface in a wayland windows). <br> This back end is responsible of allocating output buffer for the GL rendering but it is up to wayland client protocol to display it. <br> The Wayland client uses a wl_display (recovered by wl_display_connect) to initialize EGL. <br> __egl_swap_buffer uses the attached/commit/flush wayland API to display the result in a wayland window. {{ReviewsComments|PCO (W803) : explanations are pretty complex, we can discuss about what we should explain and what is too complex}} ==Wayland/Weston EGL architecture== {{ReviewsComments|PCO (W803) : please add a legend for colors, use the official template maybe}} [[File:egl_wayland_weston_architecture.png|center|800px]] Wayland/Weston uses both DRM and Wayland backends. <br> *'''Weston compositor''' (through the gl-renderer) relies on the '''DRM backend''' (EGL_PLATFORM_GBM_KHR) to render surfaces that could not be assigned to a plane. ** DMABUF native buffers are rendered using egl_image_create in EGL_LINUX_DMA_BUF_EXT mode (texture 0-copy path) ** Wayland buffers (wl_buffer) issued by an EGL wayland application are rendered using egl_image_create in EGL_WAYLAND_BUFFER_WL mode (texture 0-copy path. ** SHM buffers are rendered using the glImage2D interface (low performance because texture is copied) *'''EGL Wayland applications''' rely on the '''Wayland backend''' (EGL_PLATFORM_WAYLAND_KHR) to render their 3D EGL animation/UI into a wl_surface that will be then commit to weston compositor <noinclude> [[Category:GPU]] </noinclude>
该页面使用的模板:
模板:Info
(
查看源代码
)
模板:ReviewsComments
(
查看源代码
)
模板:STDarkBlue
(
查看源代码
)
返回至
EGL backends
。
导航
导航
WIKI首页
官方店铺
资料下载
交流社区
所有页面
所有产品
MPU-Linux开发板
MCU-单片机开发板
Linux开发系列视频
单片机开发系列视频
所有模块配件
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志