Today, FMSoft announces the availability of MiniGUI 5.0.0, and also updates the graphics stack of HybridOS.

HybridOS uses MiniGUI as the underlying windowing system. The following chart shows the graphics stack of HybridOS:

  -----------------------------------------------
 |           MiniGUI/HybridOS Apps               |
 |-----------------------------------------------|
 |           |         (Graphics Stack)          |
 |           |              ---------------------|
 |           |              | hiMesa             |
 |           | hiCairo      |  ------------------|
 |           | MiniGUI      |  | EGL for MiniGUI |
 | C++ libs  | hiDRMDrivers |  | GL, GLES, VG    |
 | C libs    | libDRM       |  | GPU drivers     |
 |-----------------------------------------------|
 |  Linux Kernel                                 |
 |            -----------------------------------|
 |           |        DRI and DRI Drivers        |
  -----------------------------------------------

As shown in the chart above, the HybridOS graphics stack consists of the following software:

  • libDRM provides some user land APIs for Linux Direct Rendering Infrastructure.
  • hiDRMDrivers contains the drivers (user land drivers, not kernel drivers) for MiniGUI DRM engine. The drivers implement the basic hardware accelerated 2D graphics operations of various GPUs for MiniGUI.
  • hiMesa is the Mesa derivative for HybridOS, while Mesa is the open source implementation of OpenGL and other graphics APIs, including OpenGL ES (versions 1, 2, 3), OpenCL, OpenMAX, and Vulkan. It contains the following components:
    • The implementation of OpenGL, OpenGL ES (v1, 2, 3), and other graphics APIs.
    • The EGL implementation for MiniGUI platform.
    • The graphics drivers for various GPUs and a software driver called swrast.
  • hiCairo is the Cairo derivative for HybridOS. We provide support for MiniGUI backend in hiCairo.

he above code repository is released under the FMSoftCN account on GitHub (note to use minigui-backend branch), and the existing licenses of these open source software are inherited. For example, hiCairo continues to use LGPL /MPL, hiMesa continues to use MIT license, etc.

The sample code for the above components has been released in HybridOS's main repository. It is worth mentioning that after fully utilizing the GPU, the rendering speed of the Mesa classic gears application on MiniGUI is 10x faster than the implementation on X11.

These open source components are an indispensable infrastructure for HybridOS, but for the development team, the work done is at least similar to the work of a bricklayer. Things that really belong to the core technology of HybridOS will be released in April 2020. However, the chip vendors can act now and add support for each chip to the HybridOS's graphics infrastructure in order to obtain better graphics performance than competitors in the future.

If you want to write a DRM engine driver for your GPU or SoC, you can refer to the following document:

https://gitlab.fmsoft.cn/VincentWei/minigui-docs/blob/master/supplementary-docs/Writing-DRM-Engine-Driver-for-Your-GPU.md

The following document gives you the details about the usage of the graphics stack of HybridOS:

https://gitlab.fmsoft.cn/VincentWei/minigui-docs/blob/master/programming-guide/MiniGUIProgGuidePart3Chapter05.md


Loading Conversation