Module: Mesa Branch: main Commit: 9b70096f5e9ab7be23abc9154c3fb83b710ccd6b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9b70096f5e9ab7be23abc9154c3fb83b710ccd6b
Author: Simon Ser <cont...@emersion.fr> Date: Wed Nov 15 12:56:35 2023 +0100 egl: move dri2_setup_device() after dri2_setup_extensions() dri2_setup_device() will depend on the extensions being set up in the next commit. None of the code in-between depends on disp->Device AFAIU. Signed-off-by: Simon Ser <cont...@emersion.fr> Reviewed-by: Iago Toral Quiroga <ito...@igalia.com> Reviewed-by: Leandro Ribeiro <leandro.ribe...@collabora.com> Tested-by: Iago Toral Quiroga <ito...@igalia.com> Tested-by: Alejandro PiƱeiro <apinhe...@igalia.com> Backport-to: 23.3 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26205> --- src/egl/drivers/dri2/platform_android.c | 8 ++++---- src/egl/drivers/dri2/platform_drm.c | 10 +++++----- src/egl/drivers/dri2/platform_wayland.c | 20 ++++++++++---------- src/egl/drivers/dri2/platform_x11.c | 30 +++++++++++++++--------------- 4 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c index 476f4cca73c..4fb5621edf8 100644 --- a/src/egl/drivers/dri2/platform_android.c +++ b/src/egl/drivers/dri2/platform_android.c @@ -1504,13 +1504,13 @@ dri2_initialize_android(_EGLDisplay *disp) dri2_dpy->fd_display_gpu = dri2_dpy->fd_render_gpu; - if (!dri2_setup_device(disp, false)) { - err = "DRI2: failed to setup EGLDevice"; + if (!dri2_setup_extensions(disp)) { + err = "DRI2: failed to setup extensions"; goto cleanup; } - if (!dri2_setup_extensions(disp)) { - err = "DRI2: failed to setup extensions"; + if (!dri2_setup_device(disp, false)) { + err = "DRI2: failed to setup EGLDevice"; goto cleanup; } diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c index 2f15ee7a47a..9ae16f384e2 100644 --- a/src/egl/drivers/dri2/platform_drm.c +++ b/src/egl/drivers/dri2/platform_drm.c @@ -639,11 +639,6 @@ dri2_initialize_drm(_EGLDisplay *disp) goto cleanup; } - if (!dri2_setup_device(disp, dri2_dpy->gbm_dri->software)) { - err = "DRI2: failed to setup EGLDevice"; - goto cleanup; - } - dri2_dpy->driver_name = strdup(dri2_dpy->gbm_dri->driver_name); if (!dri2_load_driver_dri3(disp)) { @@ -677,6 +672,11 @@ dri2_initialize_drm(_EGLDisplay *disp) goto cleanup; } + if (!dri2_setup_device(disp, dri2_dpy->gbm_dri->software)) { + err = "DRI2: failed to setup EGLDevice"; + goto cleanup; + } + dri2_setup_screen(disp); if (!drm_add_configs_for_visuals(disp)) { diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index ea54c5434cc..b86328f3603 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -2204,11 +2204,6 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp) loader_get_user_preferred_fd(&dri2_dpy->fd_render_gpu, &dri2_dpy->fd_display_gpu); - if (!dri2_setup_device(disp, false)) { - _eglError(EGL_NOT_INITIALIZED, "DRI2: failed to setup EGLDevice"); - goto cleanup; - } - if (dri2_dpy->fd_render_gpu != dri2_dpy->fd_display_gpu) { free(dri2_dpy->device_name); dri2_dpy->device_name = @@ -2245,6 +2240,11 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp) if (!dri2_setup_extensions(disp)) goto cleanup; + if (!dri2_setup_device(disp, false)) { + _eglError(EGL_NOT_INITIALIZED, "DRI2: failed to setup EGLDevice"); + goto cleanup; + } + dri2_setup_screen(disp); dri2_wl_setup_swap_interval(disp); @@ -2771,11 +2771,6 @@ dri2_initialize_wayland_swrast(_EGLDisplay *disp) if (disp->Options.Zink) dri2_initialize_wayland_drm_extensions(dri2_dpy); - if (!dri2_setup_device(disp, true)) { - _eglError(EGL_NOT_INITIALIZED, "DRI2: failed to setup EGLDevice"); - goto cleanup; - } - dri2_dpy->driver_name = strdup(disp->Options.Zink ? "zink" : "swrast"); if (!dri2_load_driver_swrast(disp)) goto cleanup; @@ -2788,6 +2783,11 @@ dri2_initialize_wayland_swrast(_EGLDisplay *disp) if (!dri2_setup_extensions(disp)) goto cleanup; + if (!dri2_setup_device(disp, true)) { + _eglError(EGL_NOT_INITIALIZED, "DRI2: failed to setup EGLDevice"); + goto cleanup; + } + dri2_setup_screen(disp); dri2_wl_setup_swap_interval(disp); diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c index c6d88d03e28..6af987ed7ad 100644 --- a/src/egl/drivers/dri2/platform_x11.c +++ b/src/egl/drivers/dri2/platform_x11.c @@ -1512,11 +1512,6 @@ dri2_initialize_x11_swrast(_EGLDisplay *disp) if (!dri2_get_xcb_connection(disp, dri2_dpy)) goto cleanup; - if (!dri2_setup_device(disp, true)) { - _eglError(EGL_NOT_INITIALIZED, "DRI2: failed to setup EGLDevice"); - goto cleanup; - } - /* * Every hardware driver_name is set using strdup. Doing the same in * here will allow is to simply free the memory at dri2_terminate(). @@ -1536,6 +1531,11 @@ dri2_initialize_x11_swrast(_EGLDisplay *disp) if (!dri2_setup_extensions(disp)) goto cleanup; + if (!dri2_setup_device(disp, true)) { + _eglError(EGL_NOT_INITIALIZED, "DRI2: failed to setup EGLDevice"); + goto cleanup; + } + dri2_setup_screen(disp); if (disp->Options.Zink) { @@ -1602,11 +1602,6 @@ dri2_initialize_x11_dri3(_EGLDisplay *disp) if (!dri3_x11_connect(dri2_dpy)) goto cleanup; - if (!dri2_setup_device(disp, false)) { - _eglError(EGL_NOT_INITIALIZED, "DRI2: failed to setup EGLDevice"); - goto cleanup; - } - if (!dri2_load_driver_dri3(disp)) goto cleanup; @@ -1621,6 +1616,11 @@ dri2_initialize_x11_dri3(_EGLDisplay *disp) if (!dri2_setup_extensions(disp)) goto cleanup; + if (!dri2_setup_device(disp, false)) { + _eglError(EGL_NOT_INITIALIZED, "DRI2: failed to setup EGLDevice"); + goto cleanup; + } + dri2_setup_screen(disp); dri2_x11_setup_swap_interval(disp); @@ -1707,11 +1707,6 @@ dri2_initialize_x11_dri2(_EGLDisplay *disp) if (!dri2_x11_connect(dri2_dpy)) goto cleanup; - if (!dri2_setup_device(disp, false)) { - _eglError(EGL_NOT_INITIALIZED, "DRI2: failed to setup EGLDevice"); - goto cleanup; - } - if (!dri2_load_driver(disp)) goto cleanup; @@ -1729,6 +1724,11 @@ dri2_initialize_x11_dri2(_EGLDisplay *disp) if (!dri2_setup_extensions(disp)) goto cleanup; + if (!dri2_setup_device(disp, false)) { + _eglError(EGL_NOT_INITIALIZED, "DRI2: failed to setup EGLDevice"); + goto cleanup; + } + dri2_setup_screen(disp); dri2_x11_setup_swap_interval(disp);