[Mesa-dev] [PATCH] mesa: reject immutable textures in glEGLImageTargetTexture2DOES()

Brian Paul brian.e.paul at gmail.com
Mon Apr 30 06:47:30 PDT 2012


On Sun, Apr 29, 2012 at 9:08 AM, nobled <nobled at dreamwidth.org> wrote:
> GL_ARB_texture_storage says:
>
>    The commands eglBindTexImage, wglBindTexImageARB, glXBindTexImageEXT or
>    EGLImageTargetTexture2DOES are not permitted on an immutable-format
>    texture.
>    They will generate the following errors:
>      - EGLImageTargetTexture2DOES: INVALID_OPERATION
>      - eglBindTexImage: EGL_BAD_MATCH
>      - wglBindTexImage: ERROR_INVALID_OPERATION
>      - glXBindTexImageEXT: BadMatch
>
> Fixing the EGL and GLX cases requires extending the DRI interface,
> since setTexBuffer2 doesn't return any error information.
> ---
>  src/mesa/main/teximage.c |    7 +++++++
>  1 files changed, 7 insertions(+), 0 deletions(-)
>
> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
> index 2348646..50095d2 100644
> --- a/src/mesa/main/teximage.c
> +++ b/src/mesa/main/teximage.c
> @@ -2692,6 +2692,13 @@ _mesa_EGLImageTargetTexture2DOES (GLenum
> target, GLeglImageOES image)
>    texObj = _mesa_get_current_tex_object(ctx, target);
>    _mesa_lock_texture(ctx, texObj);
>
> +   if (texObj->Immutable) {
> +      _mesa_error(ctx, GL_INVALID_OPERATION,
> +                 "glEGLImageTargetTexture2D(texture is immutable)");
> +      _mesa_unlock_texture(ctx, texObj);
> +      return;
> +   }
> +
>    texImage = _mesa_get_tex_image(ctx, texObj, target, 0);
>    if (!texImage) {
>       _mesa_error(ctx, GL_OUT_OF_MEMORY, "glEGLImageTargetTexture2D");

Reviewed-by: Brian Paul <brianp at vmware.com>


More information about the mesa-dev mailing list