mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 10:40:11 +01:00
egl: Lock the display in _eglCreateSync's callers
Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
parent
58338c6b65
commit
9a992038e7
1 changed files with 8 additions and 6 deletions
|
|
@ -1384,11 +1384,10 @@ eglDestroyImage(EGLDisplay dpy, EGLImage image)
|
|||
|
||||
|
||||
static EGLSync
|
||||
_eglCreateSync(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list,
|
||||
_eglCreateSync(_EGLDisplay *disp, EGLenum type, const EGLint *attrib_list,
|
||||
const EGLAttrib *attrib_list64, EGLBoolean is64,
|
||||
EGLenum invalid_type_error)
|
||||
{
|
||||
_EGLDisplay *disp = _eglLockDisplay(dpy);
|
||||
_EGLContext *ctx = _eglGetCurrentContext();
|
||||
_EGLDriver *drv;
|
||||
_EGLSync *sync;
|
||||
|
|
@ -1400,7 +1399,7 @@ _eglCreateSync(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list,
|
|||
RETURN_EGL_EVAL(disp, EGL_NO_SYNC_KHR);
|
||||
|
||||
/* return an error if the client API doesn't support GL_OES_EGL_sync */
|
||||
if (!ctx || ctx->Resource.Display != dpy ||
|
||||
if (!ctx || ctx->Resource.Display != disp ||
|
||||
ctx->ClientAPI != EGL_OPENGL_ES_API)
|
||||
RETURN_EGL_ERROR(disp, EGL_BAD_MATCH, EGL_NO_SYNC_KHR);
|
||||
|
||||
|
|
@ -1431,7 +1430,8 @@ _eglCreateSync(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list,
|
|||
static EGLSync EGLAPIENTRY
|
||||
eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list)
|
||||
{
|
||||
return _eglCreateSync(dpy, type, attrib_list, NULL, EGL_FALSE,
|
||||
_EGLDisplay *disp = _eglLockDisplay(dpy);
|
||||
return _eglCreateSync(disp, type, attrib_list, NULL, EGL_FALSE,
|
||||
EGL_BAD_ATTRIBUTE);
|
||||
}
|
||||
|
||||
|
|
@ -1439,7 +1439,8 @@ eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list)
|
|||
static EGLSync EGLAPIENTRY
|
||||
eglCreateSync64KHR(EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list)
|
||||
{
|
||||
return _eglCreateSync(dpy, type, NULL, attrib_list, EGL_TRUE,
|
||||
_EGLDisplay *disp = _eglLockDisplay(dpy);
|
||||
return _eglCreateSync(disp, type, NULL, attrib_list, EGL_TRUE,
|
||||
EGL_BAD_ATTRIBUTE);
|
||||
}
|
||||
|
||||
|
|
@ -1447,7 +1448,8 @@ eglCreateSync64KHR(EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list)
|
|||
EGLSync EGLAPIENTRY
|
||||
eglCreateSync(EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list)
|
||||
{
|
||||
return _eglCreateSync(dpy, type, NULL, attrib_list, EGL_TRUE,
|
||||
_EGLDisplay *disp = _eglLockDisplay(dpy);
|
||||
return _eglCreateSync(disp, type, NULL, attrib_list, EGL_TRUE,
|
||||
EGL_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue