Mesa (master): Revert "st/egl: add premultiplied alpha support to wayland"

Chia-I Wu olv at kemper.freedesktop.org
Thu Sep 8 08:05:56 UTC 2011


Module: Mesa
Branch: master
Commit: 93a96abe16068fa3ca8a1eb8d1c34195bffdc470
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=93a96abe16068fa3ca8a1eb8d1c34195bffdc470

Author: Chia-I Wu <olv at lunarg.com>
Date:   Thu Sep  8 16:05:22 2011 +0800

Revert "st/egl: add premultiplied alpha support to wayland"

This reverts commit 23aa978a9d76a48f4b93e9a8911ec50c0e5d94ab.

---

 .../state_trackers/egl/wayland/native_drm.c        |    8 ++------
 .../state_trackers/egl/wayland/native_shm.c        |    6 +-----
 .../state_trackers/egl/wayland/native_wayland.c    |   18 ------------------
 .../state_trackers/egl/wayland/native_wayland.h    |    3 ---
 4 files changed, 3 insertions(+), 32 deletions(-)

diff --git a/src/gallium/state_trackers/egl/wayland/native_drm.c b/src/gallium/state_trackers/egl/wayland/native_drm.c
index e177e7c..facab32 100644
--- a/src/gallium/state_trackers/egl/wayland/native_drm.c
+++ b/src/gallium/state_trackers/egl/wayland/native_drm.c
@@ -114,8 +114,8 @@ wayland_create_drm_buffer(struct wayland_display *display,
 
    switch (surface->color_format) {
    case PIPE_FORMAT_B8G8R8A8_UNORM:
-      format = (surface->premultiplied_alpha) ?
-         WL_DRM_FORMAT_PREMULTIPLIED_ARGB32 : WL_DRM_FORMAT_ARGB32;
+      /* assume premultiplied */
+      format = WL_DRM_FORMAT_PREMULTIPLIED_ARGB32;
       break;
    case PIPE_FORMAT_B8G8R8X8_UNORM:
       format = WL_DRM_FORMAT_XRGB32;
@@ -255,10 +255,6 @@ wayland_drm_display_init_screen(struct native_display *ndpy)
    if (!wayland_drm_display_add_configs(drmdpy))
       return FALSE;
 
-   /* check that premultiplied alpha is supported for all formats with alpha */
-   if (!drmdpy->argb32 || drmdpy->argb32_pre)
-      drmdpy->base.param_premultiplied_alpha = TRUE;
-
    drmdpy->base.base.screen =
       drmdpy->event_handler->new_drm_screen(&drmdpy->base.base,
                                             NULL, drmdpy->fd);
diff --git a/src/gallium/state_trackers/egl/wayland/native_shm.c b/src/gallium/state_trackers/egl/wayland/native_shm.c
index e2d2437..5882e74 100644
--- a/src/gallium/state_trackers/egl/wayland/native_shm.c
+++ b/src/gallium/state_trackers/egl/wayland/native_shm.c
@@ -95,8 +95,7 @@ wayland_create_shm_buffer(struct wayland_display *display,
 
    switch (surface->color_format) {
    case PIPE_FORMAT_B8G8R8A8_UNORM:
-      format = (surface->premultiplied_alpha) ?
-         WL_SHM_FORMAT_PREMULTIPLIED_ARGB32 : WL_SHM_FORMAT_ARGB32;
+      format = WL_SHM_FORMAT_PREMULTIPLIED_ARGB32;
       break;
    case PIPE_FORMAT_B8G8R8X8_UNORM:
       format = WL_SHM_FORMAT_XRGB32;
@@ -166,9 +165,6 @@ wayland_shm_display_init_screen(struct native_display *ndpy)
    if (!wayland_shm_display_add_configs(shmdpy))
       return FALSE;
 
-   /* assume all formats are supported */
-   shmdpy->base.param_premultiplied_alpha = TRUE;
-
    winsys = wayland_create_sw_winsys(shmdpy->base.dpy);
    if (!winsys)
       return FALSE;
diff --git a/src/gallium/state_trackers/egl/wayland/native_wayland.c b/src/gallium/state_trackers/egl/wayland/native_wayland.c
index b2dab8f..14cc908 100644
--- a/src/gallium/state_trackers/egl/wayland/native_wayland.c
+++ b/src/gallium/state_trackers/egl/wayland/native_wayland.c
@@ -60,13 +60,9 @@ static int
 wayland_display_get_param(struct native_display *ndpy,
                           enum native_param_type param)
 {
-   struct wayland_display *display = wayland_display(ndpy);
    int val;
 
    switch (param) {
-   case NATIVE_PARAM_PREMULTIPLIED_ALPHA:
-      val = display->param_premultiplied_alpha;
-      break;
    case NATIVE_PARAM_USE_NATIVE_BUFFER:
    case NATIVE_PARAM_PRESERVE_BUFFER:
    case NATIVE_PARAM_MAX_SWAP_INTERVAL:
@@ -287,20 +283,6 @@ wayland_surface_present(struct native_surface *nsurf,
    if (ctrl->preserve || ctrl->swap_interval)
       return FALSE;
 
-   /* force buffers to be re-created if they will be presented differently */
-   if (surface->premultiplied_alpha != ctrl->premultiplied_alpha) {
-      enum wayland_buffer_type buffer;
-
-      for (buffer = 0; buffer < WL_BUFFER_COUNT; ++buffer) {
-         if (surface->buffer[buffer]) {
-            wl_buffer_destroy(surface->buffer[buffer]);
-            surface->buffer[buffer] = NULL;
-         }
-      }
-
-      surface->premultiplied_alpha = ctrl->premultiplied_alpha;
-   }
-
    switch (ctrl->natt) {
    case NATIVE_ATTACHMENT_FRONT_LEFT:
       ret = TRUE;
diff --git a/src/gallium/state_trackers/egl/wayland/native_wayland.h b/src/gallium/state_trackers/egl/wayland/native_wayland.h
index 6cf98a8..93e670b 100644
--- a/src/gallium/state_trackers/egl/wayland/native_wayland.h
+++ b/src/gallium/state_trackers/egl/wayland/native_wayland.h
@@ -44,8 +44,6 @@ struct wayland_display {
 
    struct wayland_config *configs;
    int num_configs;
-   /* true if all formats with alpha support premultiplied alpha */
-   boolean param_premultiplied_alpha;
 
    struct wl_buffer *(*create_buffer)(struct wayland_display *display,
                                       struct wayland_surface *surface,
@@ -81,7 +79,6 @@ struct wayland_surface {
    unsigned int attachment_mask;
 
    boolean block_swap_buffers;
-   boolean premultiplied_alpha;
 };
 
 struct wayland_config {




More information about the mesa-commit mailing list