[Mesa-dev] [PATCH 0/2] Disable the EGL state tracker for Linux/DRI builds

Kristian Høgsberg krh at bitplanet.net
Wed Nov 5 10:38:23 PST 2014


On Wed, Nov 5, 2014 at 2:43 AM, Marek Olšák <maraeo at gmail.com> wrote:
> On Wed, Nov 5, 2014 at 9:02 AM, Michel Dänzer <michel at daenzer.net> wrote:
>> On 05.11.2014 07:42, Marek Olšák wrote:
>>>
>>> Hi everybody,
>>>
>>> I'm about to address this long-standing issue: The EGL state tracker is
>>> redundant. It duplicates what st/dri does and it also duplicates what
>>> the common loader egl_dri2 does, which is used by all classic drivers
>>> and even works better with gallium drivers.
>>>
>>> Let's compare EGL extensions for both backends:
>>>
>>> st/egl:
>>> EGL version string: 1.4 (Gallium)
>>> EGL client APIs: OpenGL OpenGL_ES OpenGL_ES2 OpenVG
>>> EGL extensions string:
>>>      EGL_WL_bind_wayland_display EGL_KHR_image_base EGL_KHR_image_pixmap
>>>      EGL_KHR_image EGL_KHR_reusable_sync EGL_KHR_fence_sync
>>>      EGL_KHR_surfaceless_context EGL_NOK_swap_region
>>>      EGL_NV_post_sub_buffer
>>>
>>> egl_dri2:
>>> EGL version string: 1.4 (DRI2)
>>> EGL client APIs: OpenGL OpenGL_ES OpenGL_ES2 OpenGL_ES3
>>> EGL extensions string:
>>>      EGL_MESA_drm_image EGL_MESA_configless_context EGL_KHR_image_base
>>>      EGL_KHR_image_pixmap EGL_KHR_image EGL_KHR_gl_texture_2D_image
>>>      EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image
>>>      EGL_KHR_surfaceless_context EGL_KHR_create_context
>>>      EGL_NOK_swap_region EGL_NOK_texture_from_pixmap
>>>      EGL_CHROMIUM_sync_control EGL_EXT_image_dma_buf_import
>>>      EGL_NV_post_sub_buffer
>>>
>>> egl_dri2 also supports MSAA on the window framebuffer (through st/dri).
>>> It's really obvious which one is better.
>>
>>
>> No argument there.
>>
>>
>>> - OpenVG - It has never taken off. If people want this on Linux, it should
>>> use egl_dri2 and st/dri, like OpenGL does.
>>
>>
>> The problem is doing so would probably be a lot of work, so this creates a
>> huge barrier for somebody who wants to play with OpenVG.
>>
>> How about keeping egl_gallium but only using it if EGL_DRIVER=egl_gallium is
>> specified explicitly? (I assume automatically using egl_gallium for OpenVG
>> isn't possible due to the way EGL works)
>
> Another alternative is to use a library which implements OpenVG on top
> of OpenGL. For example:
> - http://sourceforge.net/projects/shivavg/
> - https://github.com/micahpearlman/MonkVG

For anybody who just wants to play with OpenVG this should be
sufficient and, I expect, as useful and the gallium state tracker.  If
OpenVG suddenly takes off, we can revisit doing a more native driver
for it.

Marek, thanks for picking this up, I fully support getting rid of this,

Acked-by: Kristian Høgsberg <krh at bitplanet.net>


More information about the mesa-dev mailing list