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 currently return any error information. Reviewed-by: Brian Paul <brianp@vmware.com>tags/i965-primitive-restart-v2
@@ -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"); |