egl/dri2: check if the EGL API is valid before adding it to ClientAPIs
In the rather unlikely case that the API is considered invalid, don't add it to the (supported) ClientAPIs bitmask. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Tomasz Figa <tfiga@chromium.org> --- Strictly speaking we only need this in the Android case for OpenGL. Adding it everywhere doesn't hurt us since the compiler will const propagate and optimise/remove these.
This commit is contained in:
committed by
Emil Velikov
parent
4472b6e469
commit
03eaa6c596
@@ -593,13 +593,13 @@ dri2_setup_screen(_EGLDisplay *disp)
|
||||
}
|
||||
|
||||
disp->ClientAPIs = 0;
|
||||
if (api_mask & (1 <<__DRI_API_OPENGL))
|
||||
if ((api_mask & (1 <<__DRI_API_OPENGL)) && _eglIsApiValid(EGL_OPENGL_API))
|
||||
disp->ClientAPIs |= EGL_OPENGL_BIT;
|
||||
if (api_mask & (1 <<__DRI_API_GLES))
|
||||
if ((api_mask & (1 << __DRI_API_GLES)) && _eglIsApiValid(EGL_OPENGL_ES_API))
|
||||
disp->ClientAPIs |= EGL_OPENGL_ES_BIT;
|
||||
if (api_mask & (1 << __DRI_API_GLES2))
|
||||
if ((api_mask & (1 << __DRI_API_GLES2)) && _eglIsApiValid(EGL_OPENGL_ES_API))
|
||||
disp->ClientAPIs |= EGL_OPENGL_ES2_BIT;
|
||||
if (api_mask & (1 << __DRI_API_GLES3))
|
||||
if ((api_mask & (1 << __DRI_API_GLES3)) && _eglIsApiValid(EGL_OPENGL_ES_API))
|
||||
disp->ClientAPIs |= EGL_OPENGL_ES3_BIT_KHR;
|
||||
|
||||
assert(dri2_dpy->image_driver || dri2_dpy->dri2 || dri2_dpy->swrast);
|
||||
|
||||
Reference in New Issue
Block a user