[Mesa-dev] [RFC-PATCH 00/11] add support for GL_OES_EGL_image_external

Ian Romanick idr at freedesktop.org
Mon Oct 31 14:27:30 PDT 2011


On 10/31/2011 07:16 AM, Jakob Bornecrantz wrote:
> ----- Original Message -----
>> From: Chia-I Wu<olv at lunarg.com>
>>
>> Hi,
>>
>> This patch series adds support for the OpenGL ES specific
>> GL_OES_EGL_image_external extension[1].  It is enabled in st/mesa.
>>
>> The extension adds a new texture target, GL_TEXTURE_EXTERNAL_OES.  It
>> can only be specified with an EGLImage.  Calling gl*Tex*Image* to
>> manipulate an external texture will result in GL_INVALID_ENUM.
>> Because of the restrictions, it allows formats that are not otherwise
>> supported to be sampled from.
>>
>> The extension is written with YUV formats in mind.  It describes two
>> possible ways to to support them.  One is to insert extra
>> instructions to the shaders to let GPU perform the necessary color
>> conversions on the fly.  The other is to allocate an internal storage
>> to perform the conversions when the EGLImage is specified.  Neither
>> is supported for this series.  It effectively makes the
>> implementation a subset of GL_OES_EGL_image function-wise.
>>
>> Later, I plan to adopt the latter, also easier, approach to support
>> NV21 and YV12 formats[2] (for Android, but haven't started).  The
>> changes will be limitied to the winsys code.  The idea is that the
>> pixel format of an EGLImage is winsys dependent.  There are too
>> many formats, well defined or not, to be enumerated in pipe_format
>> or gl_format.
>>
>> This series is tested with piglit quick.tests on i965 and llvmpipe
>> without regressions.  I am unfamiliar with more than a couple of
>> areas touched by this series.  Comments are appreciated.
>
> Cool stuff! How hard would it be to add this to Desktop GL? I'm
> guessing it is slightly more involved then changing patch 06 and 11 to
> enable the it for Desktop GL?

We're really not supposed to do that.  The big problem is that the 
extension specification only documents how this extension interacts with 
functionality that exists in OpenGL ES.  As you're aware, there's a 
giant pile of functionality in desktop OpenGL that was removed from 
OpenGL ES.  A lot of that removed functionality could have interactions 
that are now undefined.

> Took a quick look at it and it looks good, but I don't dare give it a
> RB so you can have my
> Acked-by: Jakob Bornecrantz<jakob at vmware.com>
>
> Cheers, Jakob.


More information about the mesa-dev mailing list