wayland-drm: Drop the non-premul formats, use format codes from drm_fourcc.h
[mesa.git] / src / gallium / state_trackers / egl / wayland / native_shm.c
index 8a50915a9c6d9977d78df7a504a58db68f49834b..b76e5db33db734073792421032734dff243961af 100644 (file)
@@ -94,8 +94,8 @@ wayland_create_shm_buffer(struct wayland_display *display,
 
    switch (surface->color_format) {
    case PIPE_FORMAT_B8G8R8A8_UNORM:
-      /* assume premultiplied */
-      format = WL_SHM_FORMAT_PREMULTIPLIED_ARGB32;
+      format = (surface->premultiplied_alpha) ?
+         WL_SHM_FORMAT_PREMULTIPLIED_ARGB32 : WL_SHM_FORMAT_ARGB32;
       break;
    case PIPE_FORMAT_B8G8R8X8_UNORM:
       format = WL_SHM_FORMAT_XRGB32;
@@ -117,13 +117,10 @@ shm_handle_format(void *data, struct wl_shm *shm, uint32_t format)
 
    switch (format) {
    case WL_SHM_FORMAT_ARGB32:
-      shmdpy->base.formats |= HAS_ARGB32;
+      shmdpy->base.formats |= HAS_ARGB8888;
       break;
-   case WL_SHM_FORMAT_PREMULTIPLIED_ARGB32:
-      shmdpy->base.formats |= HAS_PREMUL_ARGB32;
-      break;
-   case WL_SHM_FORMAT_XRGB32:
-      shmdpy->base.formats |= HAS_XRGB32;
+   case WL_SHM_FORMAT_XRGB8888:
+      shmdpy->base.formats |= HAS_XRGB8888;
       break;
    }
 }