diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 4a02838..3337e4a 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -1094,10 +1094,10 @@ dri2_create_image_wayland_wl_buffer(_EGLDisplay *disp, _EGLContext *ctx,
attrs.Height = buffer->height;
switch (wayland_drm_buffer_get_format(buffer)) {
- case WL_DRM_FORMAT_ARGB8888:
+ case WL_BUFFER_FORMAT_ARGB8888:
format = __DRI_IMAGE_FORMAT_ARGB8888;
break;
- case WL_DRM_FORMAT_XRGB8888:
+ case WL_BUFFER_FORMAT_XRGB8888:
format = __DRI_IMAGE_FORMAT_XRGB8888;
break;
default:
@@ -1272,10 +1272,10 @@ dri2_wl_reference_buffer(void *user_data, uint32_t name,
int dri_format;
switch (format) {
- case WL_DRM_FORMAT_ARGB8888:
+ case WL_BUFFER_FORMAT_ARGB8888:
dri_format =__DRI_IMAGE_FORMAT_ARGB8888;
break;
- case WL_DRM_FORMAT_XRGB8888:
+ case WL_BUFFER_FORMAT_XRGB8888:
dri_format = __DRI_IMAGE_FORMAT_XRGB8888;
break;
default:
diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index d291f0f..372da41 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -107,9 +107,9 @@ dri2_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
dri2_surf->block_swap_buffers = EGL_FALSE;
if (conf->AlphaSize == 0)
- dri2_surf->format = WL_DRM_FORMAT_XRGB8888;
+ dri2_surf->format = WL_BUFFER_FORMAT_XRGB8888;
else
- dri2_surf->format = WL_DRM_FORMAT_ARGB8888;
+ dri2_surf->format = WL_BUFFER_FORMAT_ARGB8888;
switch (type) {
case EGL_WINDOW_BIT:
@@ -666,7 +666,7 @@ dri2_create_image_khr_pixmap(_EGLDisplay *disp, _EGLContext *ctx,
wl_egl_pixmap->width,
wl_egl_pixmap->height,
dri2_buf->dri_buffer->pitch,
- WL_DRM_FORMAT_ARGB8888);
+ WL_BUFFER_FORMAT_ARGB8888);
wl_attr_list[1] = wl_egl_pixmap->width;
wl_attr_list[3] = wl_egl_pixmap->height;
@@ -767,15 +767,16 @@ drm_handle_device(void *data, struct wl_drm *drm, const char *device)
}
static void
-drm_handle_format(void *data, struct wl_drm *drm, uint32_t format)
+drm_handle_format(void *data, struct wl_drm *drm,
+ uint32_t format, uint32_t flags)
{
struct dri2_egl_display *dri2_dpy = data;
switch (format) {
- case WL_DRM_FORMAT_ARGB8888:
+ case WL_BUFFER_FORMAT_ARGB8888:
dri2_dpy->formats |= HAS_ARGB8888;
break;
- case WL_DRM_FORMAT_XRGB8888:
+ case WL_BUFFER_FORMAT_XRGB8888:
dri2_dpy->formats |= HAS_XRGB8888;
break;
}
diff --git a/src/egl/wayland/wayland-drm/protocol/wayland-drm.xml b/src/egl/wayland/wayland-drm/protocol/wayland-drm.xml
index 89fd8f0..306f13a 100644
--- a/src/egl/wayland/wayland-drm/protocol/wayland-drm.xml
+++ b/src/egl/wayland/wayland-drm/protocol/wayland-drm.xml
@@ -36,70 +36,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/egl/wayland/wayland-drm/wayland-drm.c b/src/egl/wayland/wayland-drm/wayland-drm.c
index 5f831b3..e35a3d9 100644
--- a/src/egl/wayland/wayland-drm/wayland-drm.c
+++ b/src/egl/wayland/wayland-drm/wayland-drm.c
@@ -59,7 +59,6 @@ struct wl_drm {
struct wl_drm_buffer {
struct wl_buffer buffer;
struct wl_drm *drm;
- uint32_t format;
void *driver_buffer;
};
@@ -103,14 +102,14 @@ const static struct wl_buffer_interface drm_buffer_interface = {
static void
drm_create_buffer(struct wl_client *client, struct wl_resource *resource,
uint32_t id, uint32_t name, int32_t width, int32_t height,
- uint32_t stride, uint32_t format)
+ int32_t stride, uint32_t format)
{
struct wl_drm *drm = resource->data;
struct wl_drm_buffer *buffer;
switch (format) {
- case WL_DRM_FORMAT_ARGB8888:
- case WL_DRM_FORMAT_XRGB8888:
+ case WL_BUFFER_FORMAT_ARGB8888:
+ case WL_BUFFER_FORMAT_XRGB8888:
break;
default:
wl_resource_post_error(resource,
@@ -128,7 +127,7 @@ drm_create_buffer(struct wl_client *client, struct wl_resource *resource,
buffer->drm = drm;
buffer->buffer.width = width;
buffer->buffer.height = height;
- buffer->format = format;
+ buffer->buffer.format = format;
buffer->driver_buffer =
drm->callbacks->reference_buffer(drm->user_data, name,
@@ -155,6 +154,17 @@ drm_create_buffer(struct wl_client *client, struct wl_resource *resource,
}
static void
+drm_create_planer_buffer(struct wl_client *client,
+ struct wl_resource *resource,
+ uint32_t id, uint32_t name,
+ int32_t width, int32_t height, uint32_t format,
+ int32_t offset0, int32_t stride0,
+ int32_t offset1, int32_t stride1,
+ int32_t offset2, int32_t stride2)
+{
+}
+
+static void
drm_authenticate(struct wl_client *client,
struct wl_resource *resource, uint32_t id)
{
@@ -170,7 +180,8 @@ drm_authenticate(struct wl_client *client,
const static struct wl_drm_interface drm_interface = {
drm_authenticate,
- drm_create_buffer
+ drm_create_buffer,
+ drm_create_planer_buffer
};
static void
@@ -181,11 +192,9 @@ bind_drm(struct wl_client *client, void *data, uint32_t version, uint32_t id)
resource = wl_client_add_object(client, &wl_drm_interface,
&drm_interface, id, data);
- wl_resource_post_event(resource, WL_DRM_DEVICE, drm->device_name);
- wl_resource_post_event(resource, WL_DRM_FORMAT,
- WL_DRM_FORMAT_ARGB8888);
- wl_resource_post_event(resource, WL_DRM_FORMAT,
- WL_DRM_FORMAT_XRGB8888);
+ wl_drm_send_device(resource, drm->device_name);
+ wl_drm_send_format(resource, WL_BUFFER_FORMAT_ARGB8888, 0);
+ wl_drm_send_format(resource, WL_BUFFER_FORMAT_XRGB8888, 0);
}
struct wl_drm *
@@ -228,7 +237,7 @@ wayland_drm_buffer_get_format(struct wl_buffer *buffer_base)
{
struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) buffer_base;
- return buffer->format;
+ return buffer->buffer.format;
}
void *
diff --git a/src/gallium/state_trackers/egl/common/native_wayland_drm_bufmgr_helper.c b/src/gallium/state_trackers/egl/common/native_wayland_drm_bufmgr_helper.c
index 80b3f22..934750e 100644
--- a/src/gallium/state_trackers/egl/common/native_wayland_drm_bufmgr_helper.c
+++ b/src/gallium/state_trackers/egl/common/native_wayland_drm_bufmgr_helper.c
@@ -23,10 +23,10 @@ egl_g3d_wl_drm_helper_reference_buffer(void *user_data, uint32_t name,
enum pipe_format pf;
switch (format) {
- case WL_DRM_FORMAT_ARGB8888:
+ case WL_BUFFER_FORMAT_ARGB8888:
pf = PIPE_FORMAT_B8G8R8A8_UNORM;
break;
- case WL_DRM_FORMAT_XRGB8888:
+ case WL_BUFFER_FORMAT_XRGB8888:
pf = PIPE_FORMAT_B8G8R8X8_UNORM;
break;
default:
diff --git a/src/gallium/state_trackers/egl/wayland/native_drm.c b/src/gallium/state_trackers/egl/wayland/native_drm.c
index e3bd628..6acf11b 100644
--- a/src/gallium/state_trackers/egl/wayland/native_drm.c
+++ b/src/gallium/state_trackers/egl/wayland/native_drm.c
@@ -109,10 +109,10 @@ wayland_create_drm_buffer(struct wayland_display *display,
switch (surface->color_format) {
case PIPE_FORMAT_B8G8R8A8_UNORM:
- format = WL_DRM_FORMAT_ARGB8888;
+ format = WL_BUFFER_FORMAT_ARGB8888;
break;
case PIPE_FORMAT_B8G8R8X8_UNORM:
- format = WL_DRM_FORMAT_XRGB8888;
+ format = WL_BUFFER_FORMAT_XRGB8888;
break;
default:
return NULL;
@@ -158,10 +158,10 @@ drm_handle_format(void *data, struct wl_drm *drm, uint32_t format)
struct wayland_drm_display *drmdpy = data;
switch (format) {
- case WL_DRM_FORMAT_ARGB8888:
+ case WL_BUFFEr_FORMAT_ARGB8888:
drmdpy->base.formats |= HAS_ARGB8888;
break;
- case WL_DRM_FORMAT_XRGB8888:
+ case WL_BUFFER_FORMAT_XRGB8888:
drmdpy->base.formats |= HAS_XRGB8888;
break;
}