+ if (!reply) {
+ _eglError(EGL_BAD_ACCESS, __func__);
+ return EGL_FALSE;
+ }
+
+ *ust = ((EGLuint64KHR) reply->ust_hi << 32) | reply->ust_lo;
+ *msc = ((EGLuint64KHR) reply->msc_hi << 32) | reply->msc_lo;
+ *sbc = ((EGLuint64KHR) reply->sbc_hi << 32) | reply->sbc_lo;
+ free(reply);
+
+ return EGL_TRUE;
+}
+
+static struct dri2_egl_display_vtbl dri2_x11_swrast_display_vtbl = {
+ .authenticate = NULL,
+ .create_window_surface = dri2_x11_create_window_surface,
+ .create_pixmap_surface = dri2_x11_create_pixmap_surface,
+ .create_pbuffer_surface = dri2_x11_create_pbuffer_surface,
+ .destroy_surface = dri2_x11_destroy_surface,
+ .create_image = dri2_fallback_create_image_khr,
+ .swap_interval = dri2_fallback_swap_interval,
+ .swap_buffers = dri2_x11_swap_buffers,
+ .swap_buffers_region = dri2_fallback_swap_buffers_region,
+ .post_sub_buffer = dri2_fallback_post_sub_buffer,
+ .copy_buffers = dri2_x11_copy_buffers,
+ .query_buffer_age = dri2_fallback_query_buffer_age,
+ .create_wayland_buffer_from_image = dri2_fallback_create_wayland_buffer_from_image,
+ .get_sync_values = dri2_fallback_get_sync_values,
+};
+
+static struct dri2_egl_display_vtbl dri2_x11_display_vtbl = {
+ .authenticate = dri2_x11_authenticate,
+ .create_window_surface = dri2_x11_create_window_surface,
+ .create_pixmap_surface = dri2_x11_create_pixmap_surface,
+ .create_pbuffer_surface = dri2_x11_create_pbuffer_surface,
+ .destroy_surface = dri2_x11_destroy_surface,
+ .create_image = dri2_x11_create_image_khr,
+ .swap_interval = dri2_x11_swap_interval,
+ .swap_buffers = dri2_x11_swap_buffers,
+ .swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage,
+ .swap_buffers_region = dri2_x11_swap_buffers_region,
+ .post_sub_buffer = dri2_x11_post_sub_buffer,
+ .copy_buffers = dri2_x11_copy_buffers,
+ .query_buffer_age = dri2_fallback_query_buffer_age,
+ .create_wayland_buffer_from_image = dri2_fallback_create_wayland_buffer_from_image,
+ .get_sync_values = dri2_x11_get_sync_values,
+};
+
+static EGLBoolean
+dri2_initialize_x11_swrast(_EGLDriver *drv, _EGLDisplay *disp)
+{
+ struct dri2_egl_display *dri2_dpy;