Move away from visuals and just use EGLConfigs or shm format tokens
diff --git a/compositor/compositor-wayland.c b/compositor/compositor-wayland.c
index 128ce11..9755c0a 100644
--- a/compositor/compositor-wayland.c
+++ b/compositor/compositor-wayland.c
@@ -46,7 +46,6 @@
 		struct wl_compositor *compositor;
 		struct wl_shell *shell;
 		struct wl_output *output;
-		struct wl_visual *visual;
 
 		struct {
 			int32_t x, y, width, height;
@@ -104,6 +103,7 @@
 		EGL_RED_SIZE, 1,
 		EGL_GREEN_SIZE, 1,
 		EGL_BLUE_SIZE, 1,
+		EGL_ALPHA_SIZE, 0,
 		EGL_DEPTH_SIZE, 1,
 		EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
 		EGL_NONE
@@ -257,8 +257,7 @@
 	wl_surface_set_user_data(output->parent.surface, output);
 
 	output->parent.egl_window =
-		wl_egl_window_create(output->parent.surface,
-				     width, height, c->parent.visual);
+		wl_egl_window_create(output->parent.surface, width, height);
 	if (!output->parent.egl_window) {
 		fprintf(stderr, "failure to create wl_egl_window\n");
 		goto cleanup_output;
@@ -463,25 +462,6 @@
 }
 
 static void
-compositor_handle_visual(void *data,
-			 struct wl_compositor *compositor,
-			 uint32_t id, uint32_t token)
-{
-	struct wayland_compositor *c = data;
-
-	switch (token) {
-	case WL_COMPOSITOR_VISUAL_ARGB32:
-		c->parent.visual = wl_display_bind(c->parent.display,
-						   id, &wl_visual_interface);
-		break;
-	}
-}
-
-static const struct wl_compositor_listener compositor_listener = {
-	compositor_handle_visual,
-};
-
-static void
 display_handle_global(struct wl_display *display, uint32_t id,
 		      const char *interface, uint32_t version, void *data)
 {
@@ -490,8 +470,6 @@
 	if (strcmp(interface, "wl_compositor") == 0) {
 		c->parent.compositor =
 			wl_display_bind(display, id, &wl_compositor_interface);
-		wl_compositor_add_listener(c->parent.compositor,
-					   &compositor_listener, c);
 	} else if (strcmp(interface, "wl_output") == 0) {
 		c->parent.output =
 			wl_display_bind(display, id, &wl_output_interface);