compositor-wayland: Assign func pointers pre init
diff --git a/compositor/compositor-wayland.c b/compositor/compositor-wayland.c
index ed8a2ba..8a40137 100644
--- a/compositor/compositor-wayland.c
+++ b/compositor/compositor-wayland.c
@@ -530,6 +530,11 @@
 	if (wayland_compositor_init_egl(c) < 0)
 		return NULL;
 
+	c->base.destroy = wayland_destroy;
+	c->base.authenticate = wayland_authenticate;
+	c->base.present = wayland_compositor_present;
+	c->base.create_buffer = wlsc_drm_buffer_create;
+
 	/* Can't init base class until we have a current egl context */
 	if (wlsc_compositor_init(&c->base, display) < 0)
 		return NULL;
@@ -549,9 +554,5 @@
 	if (c->parent.wl_source == NULL)
 		return NULL;
 
-	c->base.destroy = wayland_destroy;
-	c->base.authenticate = wayland_authenticate;
-	c->base.present = wayland_compositor_present;
-
 	return &c->base;
 }