diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 84654175cc0..8cb5a326598 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1007,7 +1007,7 @@ dri2_display_destroy(_EGLDisplay *disp) } struct dri2_egl_display * -dri2_display_create(void) +dri2_display_create(_EGLDisplay *disp) { struct dri2_egl_display *dri2_dpy = calloc(1, sizeof *dri2_dpy); if (!dri2_dpy) { @@ -1018,6 +1018,7 @@ dri2_display_create(void) dri2_dpy->fd_render_gpu = -1; dri2_dpy->fd_display_gpu = -1; dri2_dpy->multibuffers_available = true; + disp->DriverData = (void *)dri2_dpy; return dri2_dpy; } diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h index d3c1868fd14..3f3505d3dd2 100644 --- a/src/egl/drivers/dri2/egl_dri2.h +++ b/src/egl/drivers/dri2/egl_dri2.h @@ -612,7 +612,7 @@ void dri2_display_destroy(_EGLDisplay *disp); struct dri2_egl_display * -dri2_display_create(void); +dri2_display_create(_EGLDisplay *disp); EGLBoolean dri2_init_surface(_EGLSurface *surf, _EGLDisplay *disp, EGLint type, diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c index bbb414957c3..f78be206190 100644 --- a/src/egl/drivers/dri2/platform_android.c +++ b/src/egl/drivers/dri2/platform_android.c @@ -1184,7 +1184,7 @@ dri2_initialize_android(_EGLDisplay *disp) struct dri2_egl_display *dri2_dpy; const char *err; - dri2_dpy = dri2_display_create(); + dri2_dpy = dri2_display_create(disp); if (!dri2_dpy) return _eglError(EGL_BAD_ALLOC, "eglInitialize"); @@ -1196,7 +1196,6 @@ dri2_initialize_android(_EGLDisplay *disp) bool force_pure_swrast = debug_get_bool_option("MESA_ANDROID_NO_KMS_SWRAST", false); - disp->DriverData = (void *)dri2_dpy; if (!force_pure_swrast) device_opened = droid_open_device(disp, disp->Options.ForceSoftware); diff --git a/src/egl/drivers/dri2/platform_device.c b/src/egl/drivers/dri2/platform_device.c index f3224cfe968..497d2eac661 100644 --- a/src/egl/drivers/dri2/platform_device.c +++ b/src/egl/drivers/dri2/platform_device.c @@ -336,14 +336,13 @@ EGLBoolean dri2_initialize_device(_EGLDisplay *disp) { const char *err; - struct dri2_egl_display *dri2_dpy = dri2_display_create(); + struct dri2_egl_display *dri2_dpy = dri2_display_create(disp); if (!dri2_dpy) return EGL_FALSE; /* Extension requires a PlatformDisplay - the EGLDevice. */ disp->Device = disp->PlatformDisplay; - disp->DriverData = (void *)dri2_dpy; err = "DRI2: failed to load driver"; if (_eglDeviceSupports(disp->Device, _EGL_DEVICE_DRM)) { if (!device_probe_device(disp)) diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c index 813e5d332cb..493a2a8319f 100644 --- a/src/egl/drivers/dri2/platform_drm.c +++ b/src/egl/drivers/dri2/platform_drm.c @@ -560,12 +560,10 @@ dri2_initialize_drm(_EGLDisplay *disp) { struct gbm_device *gbm; const char *err; - struct dri2_egl_display *dri2_dpy = dri2_display_create(); + struct dri2_egl_display *dri2_dpy = dri2_display_create(disp); if (!dri2_dpy) return EGL_FALSE; - disp->DriverData = (void *)dri2_dpy; - gbm = disp->PlatformDisplay; if (gbm == NULL) { if (disp->Device) { diff --git a/src/egl/drivers/dri2/platform_surfaceless.c b/src/egl/drivers/dri2/platform_surfaceless.c index e627b07114f..b20b006c388 100644 --- a/src/egl/drivers/dri2/platform_surfaceless.c +++ b/src/egl/drivers/dri2/platform_surfaceless.c @@ -361,12 +361,10 @@ dri2_initialize_surfaceless(_EGLDisplay *disp) { const char *err; bool driver_loaded = false; - struct dri2_egl_display *dri2_dpy = dri2_display_create(); + struct dri2_egl_display *dri2_dpy = dri2_display_create(disp); if (!dri2_dpy) return EGL_FALSE; - disp->DriverData = (void *)dri2_dpy; - /* When ForceSoftware is false, we try the HW driver. When ForceSoftware * is true, we try kms_swrast and swrast in order. */ diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index e59325e4d81..0eb493c467f 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -2242,12 +2242,10 @@ dri2_initialize_wayland_drm_extensions(struct dri2_egl_display *dri2_dpy) static EGLBoolean dri2_initialize_wayland_drm(_EGLDisplay *disp) { - struct dri2_egl_display *dri2_dpy = dri2_display_create(); + struct dri2_egl_display *dri2_dpy = dri2_display_create(disp); if (!dri2_dpy) return EGL_FALSE; - disp->DriverData = (void *)dri2_dpy; - if (dri2_wl_formats_init(&dri2_dpy->formats) < 0) goto cleanup; @@ -2993,12 +2991,10 @@ static const __DRIextension *kopper_swrast_loader_extensions[] = { static EGLBoolean dri2_initialize_wayland_swrast(_EGLDisplay *disp) { - struct dri2_egl_display *dri2_dpy = dri2_display_create(); + struct dri2_egl_display *dri2_dpy = dri2_display_create(disp); if (!dri2_dpy) return EGL_FALSE; - disp->DriverData = (void *)dri2_dpy; - if (dri2_wl_formats_init(&dri2_dpy->formats) < 0) goto cleanup; diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c index 5e10d7ab74c..8a145ad57d8 100644 --- a/src/egl/drivers/dri2/platform_x11.c +++ b/src/egl/drivers/dri2/platform_x11.c @@ -1654,7 +1654,6 @@ dri2_get_xcb_connection(_EGLDisplay *disp, struct dri2_egl_display *dri2_dpy) int screen; const char *msg; - disp->DriverData = (void *)dri2_dpy; if (disp->PlatformDisplay == NULL) { dri2_dpy->conn = xcb_connect(NULL, &screen); dri2_dpy->own_device = true; @@ -1765,7 +1764,7 @@ dri2_x11_check_multibuffers(_EGLDisplay *disp) static EGLBoolean dri2_initialize_x11_swrast(_EGLDisplay *disp) { - struct dri2_egl_display *dri2_dpy = dri2_display_create(); + struct dri2_egl_display *dri2_dpy = dri2_display_create(disp); if (!dri2_dpy) return EGL_FALSE; @@ -1858,7 +1857,7 @@ static const __DRIextension *dri3_image_loader_extensions[] = { static enum dri2_egl_driver_fail dri2_initialize_x11_dri3(_EGLDisplay *disp) { - struct dri2_egl_display *dri2_dpy = dri2_display_create(); + struct dri2_egl_display *dri2_dpy = dri2_display_create(disp); enum dri2_egl_driver_fail status = DRI2_EGL_DRIVER_FAILED; if (!dri2_dpy) return DRI2_EGL_DRIVER_FAILED; @@ -1958,7 +1957,7 @@ static const __DRIextension *dri2_loader_extensions[] = { static EGLBoolean dri2_initialize_x11_dri2(_EGLDisplay *disp) { - struct dri2_egl_display *dri2_dpy = dri2_display_create(); + struct dri2_egl_display *dri2_dpy = dri2_display_create(disp); if (!dri2_dpy) return EGL_FALSE;