X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=docs%2Fegl.html;h=6f4028f756acfdef34ed4bcfb45b5a067a034445;hb=0934bd44602625733f937c3daa36c136ba1f47c6;hp=e77c2359dc1f8f04c2e901f13900f79df0809d56;hpb=c46c551c56f78c6bf9e63524c89478695fc4f525;p=mesa.git diff --git a/docs/egl.html b/docs/egl.html index e77c2359dc1..6f4028f756a 100644 --- a/docs/egl.html +++ b/docs/egl.html @@ -2,24 +2,24 @@ - Mesa EGL + EGL
-

The Mesa 3D Graphics Library

+ The Mesa 3D Graphics Library
-

Mesa EGL

+

EGL

The current version of EGL in Mesa implements EGL 1.4. More information about EGL can be found at - -http://www.khronos.org/egl/.

+ +https://www.khronos.org/egl/.

The Mesa's implementation of EGL uses a driver architecture. The main library (libEGL) is window system neutral. It provides the EGL @@ -33,18 +33,21 @@ directly dispatched to the drivers.

  1. -

    Run configure with the desired client APIs and enable -the driver for your hardware. For example

    +

    Configure your build with the desired client APIs and enable +the driver for your hardware. For example:

    -  $ ./configure --enable-gles1 --enable-gles2 \
    -                --with-dri-drivers=... \
    -                --with-gallium-drivers=...
    +$ meson configure \
    +        -D egl=true \
    +        -D gles1=true \
    +        -D gles2=true \
    +        -D dri-drivers=... \
    +        -D gallium-drivers=...
     

    The main library and OpenGL is enabled by default. The first two options above enables OpenGL ES 1.x and 2.x. The last two -options enables the listed classic and and Gallium drivers respectively.

    +options enables the listed classic and Gallium drivers respectively.

  2. @@ -61,7 +64,7 @@ or more EGL drivers.

    time

    -
    --enable-egl
    +
    -D egl=true

    By default, EGL is enabled. When disabled, the main library and the drivers @@ -69,33 +72,26 @@ will not be built.

    -
    --with-egl-driver-dir
    -
    - -

    The directory EGL drivers should be installed to. If not specified, EGL -drivers will be installed to ${libdir}/egl.

    - -
    - -
    --with-egl-platforms
    +
    -D platforms=...

    List the platforms (window systems) to support. Its argument is a comma -separated string such as --with-egl-platforms=x11,drm. It decides +separated string such as -D platforms=x11,drm. It decides the platforms a driver may support. The first listed platform is also used by -the main library to decide the native platform: the platform the EGL native -types such as EGLNativeDisplayType or -EGLNativeWindowType defined for.

    +the main library to decide the native platform.

    The available platforms are x11, drm, -fbdev, and gdi. The gdi platform can -only be built with SCons. Unless for special needs, the build system should +wayland, surfaceless, android, +and haiku. +The android platform can either be built as a system +component, part of AOSP, using Android.mk files, or +cross-compiled using appropriate options. +Unless for special needs, the build system should select the right platforms automatically.

    -
    --enable-gles1
    -
    --enable-gles2
    +
    -D gles1=true and -D gles2=true

    These options enable OpenGL ES support in OpenGL. The result is one big @@ -103,7 +99,7 @@ internal library that supports multiple APIs.

    -
    --enable-shared-glapi
    +
    -D shared-glapi=true

    By default, libGL has its own copy of libglapi. @@ -112,13 +108,6 @@ is required if applications mix OpenGL and OpenGL ES.

    -
    --enable-openvg
    -
    - -

    OpenVG must be explicitly enabled by this option.

    - -
    -

    Use EGL

    @@ -134,44 +123,13 @@ mesa/demos repository.

    runtime

    -
    EGL_DRIVERS_PATH
    -
    - -

    By default, the main library will look for drivers in the directory where -the drivers are installed to. This variable specifies a list of -colon-separated directories where the main library will look for drivers, in -addition to the default directory. This variable is ignored for setuid/setgid -binaries.

    - -

    This variable is usually set to test an uninstalled build. For example, one -may set

    - -
    -  $ export LD_LIBRARY_PATH=$mesa/lib
    -  $ export EGL_DRIVERS_PATH=$mesa/lib/egl
    -
    - -

    to test a build without installation

    - -
    - -
    EGL_DRIVER
    -
    - -

    This variable specifies a full path to or the name of an EGL driver. It -forces the specified EGL driver to be loaded. It comes in handy when one wants -to test a specific driver. This variable is ignored for setuid/setgid -binaries.

    - -
    -
    EGL_PLATFORM

    This variable specifies the native platform. The valid values are the same -as those for --with-egl-platforms. When the variable is not set, +as those for -D platforms=.... When the variable is not set, the main library uses the first platform listed in ---with-egl-platforms as the native platform.

    +-D platforms=... as the native platform.

    Extensions like EGL_MESA_drm_display define new functions to create displays for non-native platforms. These extensions are usually used by @@ -187,14 +145,6 @@ probably required only for some of the demos found in mesa/demo repository.

    values are: debug, info, warning, and fatal.

    -
    - -
    EGL_SOFTWARE
    -
    - -

    For drivers that support both hardware and software rendering, setting this -variable to true forces the use of software rendering.

    -
    @@ -211,39 +161,17 @@ the X server directly using (XCB-)DRI2 protocol.

    This driver can share DRI drivers with libGL.

    - -
    egl_gallium
    -
    - -

    This driver is based on Gallium3D. It supports all rendering APIs and -hardware supported by Gallium3D. It is the only driver that supports OpenVG. -The supported platforms are X11, DRM, FBDEV, and GDI.

    - -

    This driver comes with its own hardware drivers -(pipe_<hw>) and client API modules -(st_<api>).

    - -
    +

    Packaging

    The ABI between the main library and its drivers are not stable. Nor is -there a plan to stabilize it at the moment. Of the EGL drivers, -egl_gallium has its own hardware drivers and client API modules. -They are considered internal to egl_gallium and there is also no -stable ABI between them. These should be kept in mind when packaging for -distribution.

    - -

    Generally, egl_dri2 is preferred over egl_gallium -when the system already has DRI drivers. As egl_gallium is loaded -before egl_dri2 when both are available, egl_gallium -is disabled by default.

    +there a plan to stabilize it at the moment.

    Developers

    -

    The sources of the main library and the classic drivers can be found at -src/egl/. The sources of the egl state tracker can -be found at src/gallium/state_trackers/egl/.

    +

    The sources of the main library and drivers can be found at +src/egl/.

    Lifetime of Display Resources