compositor: Create outputs before initializing GLES2 state

This way we can just use the first weston_output EGLSurface to make a
context current.
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index cbb3253..d310194 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -88,9 +88,6 @@
 	uint32_t connector_allocator;
 	struct tty *tty;
 
-	struct gbm_surface *dummy_surface;
-	EGLSurface dummy_egl_surface;
-
 	/* we need these parameters in order to not fail drmModeAddFB2()
 	 * due to out of bounds dimensions, and then mistakenly set
 	 * sprites_are_broken:
@@ -1112,30 +1109,6 @@
 		return -1;
 	}
 
-	ec->dummy_surface = gbm_surface_create(ec->gbm, 10, 10,
-					       GBM_FORMAT_XRGB8888,
-					       GBM_BO_USE_RENDERING);
-	if (!ec->dummy_surface) {
-		weston_log("failed to create dummy gbm surface\n");
-		return -1;
-	}
-
-	ec->dummy_egl_surface =
-		eglCreateWindowSurface(ec->base.egl_display,
-				       ec->base.egl_config,
-				       ec->dummy_surface,
-				       NULL);
-	if (ec->dummy_egl_surface == EGL_NO_SURFACE) {
-		weston_log("failed to create egl surface\n");
-		return -1;
-	}
-
-	if (!eglMakeCurrent(ec->base.egl_display, ec->dummy_egl_surface,
-			    ec->dummy_egl_surface, ec->base.egl_context)) {
-		weston_log("failed to make context current\n");
-		return -1;
-	}
-
 	return 0;
 }
 
@@ -2265,9 +2238,6 @@
 
 	ec->prev_state = WESTON_COMPOSITOR_ACTIVE;
 
-	if (gles2_renderer_init(&ec->base) < 0)
-		goto err_egl;
-
 	for (key = KEY_F1; key < KEY_F9; key++)
 		weston_compositor_add_key_binding(&ec->base, key,
 						  MODIFIER_CTRL | MODIFIER_ALT,
@@ -2281,6 +2251,9 @@
 		goto err_sprite;
 	}
 
+	if (gles2_renderer_init(&ec->base) < 0)
+		goto err_egl;
+
 	path = NULL;
 
 	evdev_input_create(&ec->base, ec->udev, seat);
@@ -2319,14 +2292,14 @@
 	wl_event_source_remove(ec->drm_source);
 	wl_list_for_each_safe(weston_seat, next, &ec->base.seat_list, link)
 		evdev_input_destroy(weston_seat);
-err_sprite:
-	destroy_sprites(ec);
 err_egl:
 	eglMakeCurrent(ec->base.egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE,
 		       EGL_NO_CONTEXT);
 	eglTerminate(ec->base.egl_display);
 	eglReleaseThread();
 	gbm_device_destroy(ec->gbm);
+err_sprite:
+	destroy_sprites(ec);
 err_udev_dev:
 	udev_device_unref(drm_device);
 err_udev_enum: