On Tue, May 7, 2013 at 3:49 PM, Pohjolainen, Topi <topi.pohjolai...@intel.com> wrote: > On Mon, May 06, 2013 at 02:23:52PM -0700, Chad Versace wrote: >> Emit EGL_BAD_CONTEXT if the user passes a context to >> eglCreateImageKHR(type=EGL_ANDROID_image_native_buffer). >> >> From the EGL_ANDROID_image_native_buffer spec: >> * If <target> is EGL_NATIVE_BUFFER_ANDROID and <ctx> is not >> EGL_NO_CONTEXT, the error EGL_BAD_CONTEXT is generated. >> >> Note: This is a candidate for the stable branches. >> CC: Tapani Pälli <tapani.pa...@intel.com> >> Signed-off-by: Chad Versace <chad.vers...@linux.intel.com> >> --- >> src/egl/drivers/dri2/platform_android.c | 16 ++++++++++++++-- >> 1 file changed, 14 insertions(+), 2 deletions(-) >> >> diff --git a/src/egl/drivers/dri2/platform_android.c >> b/src/egl/drivers/dri2/platform_android.c >> index cee4035..ed50907 100644 >> --- a/src/egl/drivers/dri2/platform_android.c >> +++ b/src/egl/drivers/dri2/platform_android.c >> @@ -337,7 +337,7 @@ droid_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, >> _EGLSurface *draw) >> } >> >> static _EGLImage * >> -dri2_create_image_android_native_buffer(_EGLDisplay *disp, >> +dri2_create_image_android_native_buffer(_EGLDisplay *disp, _EGLContext *ctx, >> struct ANativeWindowBuffer *buf) >> { >> struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); >> @@ -346,6 +346,18 @@ dri2_create_image_android_native_buffer(_EGLDisplay >> *disp, >> uint32_t offsets[3], strides[3], handles[3], tmp; >> EGLint format; >> >> + if (ctx != NULL) { > > I did a similar check for the 'EGL_LINUX_DMA_BUF_EXT'. Technically > 'eglapi.c::eglCreateImageKhr()' does a lookup of the context via > '_eglLookupContext()' and does a "translation" of 'EGL_NO_CONTEXT' also (from > NULL to NULL). Hence I chose to do the check there. But would it be better for > me to do it also in the driver side as the target is valid only for linux > platforms anyway? I will suggest do the check in the driver for the moment. eglapi.[ch] should be generated ultimately, IMHO, and adding extension-specific there will make the switch harder.
>> + /* From the EGL_ANDROID_image_native_buffer spec: >> + * >> + * * If <target> is EGL_NATIVE_BUFFER_ANDROID and <ctx> is not >> + * EGL_NO_CONTEXT, the error EGL_BAD_CONTEXT is generated. >> + */ >> + _eglError(EGL_BAD_CONTEXT, "eglCreateEGLImageKHR: for " >> + "EGL_NATIVE_BUFFER_ANDROID, the context must be " >> + "EGL_NO_CONTEXT"); >> + return NULL; >> + } >> + >> if (!buf || buf->common.magic != ANDROID_NATIVE_BUFFER_MAGIC || >> buf->common.version != sizeof(*buf)) { >> _eglError(EGL_BAD_PARAMETER, "eglCreateEGLImageKHR"); >> @@ -479,7 +491,7 @@ droid_create_image_khr(_EGLDriver *drv, _EGLDisplay >> *disp, >> { >> switch (target) { >> case EGL_NATIVE_BUFFER_ANDROID: >> - return dri2_create_image_android_native_buffer(disp, >> + return dri2_create_image_android_native_buffer(disp, ctx, >> (struct ANativeWindowBuffer *) buffer); >> default: >> return dri2_create_image_khr(drv, disp, ctx, target, buffer, >> attr_list); >> -- >> 1.8.1.4 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev -- o...@lunarg.com _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev