X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=docs%2Fegl.html;h=6f4028f756acfdef34ed4bcfb45b5a067a034445;hb=387176829bcef7058ff2be8f175295e9f80008e5;hp=33e9187ce7f9f1288fc61e2e6abfed635f6784ed;hpb=72e30991559017c16d48569e612dbc0970e3b9ca;p=mesa.git diff --git a/docs/egl.html b/docs/egl.html index 33e9187ce7f..6f4028f756a 100644 --- a/docs/egl.html +++ b/docs/egl.html @@ -1,17 +1,25 @@ - - -Mesa EGL + + + + + EGL + + + - +
+ 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 @@ -25,16 +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-gles2 --enable-openvg --enable-gallium-nouveau
    +$ 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 option above -enables OpenGL ES 2.x. The second option enables -OpenVG.

    +

    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 Gallium drivers respectively.

  2. @@ -42,76 +55,60 @@ enables OpenGL ES 2.x. The second option enables

In the given example, it will build and install libEGL, -libGL, libGLESv1_CM, libGLESv2, -libOpenVG, and one or more EGL drivers.

+libGL, libGLESv1_CM, libGLESv2, and one +or more EGL drivers.

Configure Options

There are several options that control the build of EGL at configuration time

- +

Use EGL

@@ -125,69 +122,37 @@ mesa/demos repository.

There are several environment variables that control the behavior of EGL at runtime

- + +

EGL Drivers

- + +

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 -may either be disabled with --disable-gallium-egl or packaged -separately.

+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 suggested way to learn to write a EGL driver is to see how other drivers -are written. egl_glx should be a good reference. It works in any -environment that has GLX support, and it is simpler than most drivers.

+

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

Lifetime of Display Resources

@@ -250,8 +180,8 @@ longer than the display that creates them.

In EGL, when a display is terminated through eglTerminate, all display resources should be destroyed. Similarly, when a thread is released -throught eglReleaseThread, all current display resources should be -released. Another way to destory or release resources is through functions +through eglReleaseThread, all current display resources should be +released. Another way to destroy or release resources is through functions such as eglDestroySurface or eglMakeCurrent.

When a resource that is current to some thread is destroyed, the resource @@ -317,17 +247,6 @@ not be called with the sample display at the same time. If a driver has access to an EGLDisplay without going through the EGL APIs, the driver should as well lock the display before using it. -

TODOs

- - - +