Commit 57e48f02 authored by Jonas Ådahl's avatar Jonas Ådahl Committed by Pekka Paalanen

Use linux-dmabuf protocol from wayland-protocols

Signed-off-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
Reviewed-by: default avatarMariusz Ceier <mceier+wayland@gmail.com>
Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
parent 496adb3b
......@@ -127,8 +127,8 @@ nodist_weston_SOURCES = \
protocol/presentation_timing-server-protocol.h \
protocol/scaler-protocol.c \
protocol/scaler-server-protocol.h \
protocol/linux-dmabuf-protocol.c \
protocol/linux-dmabuf-server-protocol.h
protocol/linux-dmabuf-unstable-v1-protocol.c \
protocol/linux-dmabuf-unstable-v1-server-protocol.h
BUILT_SOURCES += $(nodist_weston_SOURCES)
......@@ -533,11 +533,11 @@ nodist_weston_simple_dmabuf_SOURCES = \
protocol/xdg-shell-client-protocol.h \
protocol/fullscreen-shell-unstable-v1-protocol.c \
protocol/fullscreen-shell-unstable-v1-client-protocol.h \
protocol/linux-dmabuf-protocol.c \
protocol/linux-dmabuf-client-protocol.h
protocol/linux-dmabuf-unstable-v1-protocol.c \
protocol/linux-dmabuf-unstable-v1-client-protocol.h
weston_simple_dmabuf_CFLAGS = $(AM_CFLAGS) $(SIMPLE_DMABUF_CLIENT_CFLAGS)
weston_simple_dmabuf_LDADD = $(SIMPLE_DMABUF_CLIENT_LIBS) libshared.la
BUILT_SOURCES += protocol/linux-dmabuf-client-protocol.h
BUILT_SOURCES += protocol/linux-dmabuf-unstable-v1-client-protocol.h
endif
noinst_LTLIBRARIES += libtoytoolkit.la
......@@ -1351,8 +1351,7 @@ EXTRA_DIST += \
protocol/presentation_timing.xml \
protocol/scaler.xml \
protocol/ivi-application.xml \
protocol/ivi-hmi-controller.xml \
protocol/linux-dmabuf.xml
protocol/ivi-hmi-controller.xml
#
# manual test modules in tests subdirectory
......
......@@ -42,7 +42,7 @@
#include <wayland-client.h>
#include "xdg-shell-client-protocol.h"
#include "fullscreen-shell-unstable-v1-client-protocol.h"
#include "linux-dmabuf-client-protocol.h"
#include "linux-dmabuf-unstable-v1-client-protocol.h"
struct display {
struct wl_display *display;
......@@ -50,7 +50,7 @@ struct display {
struct wl_compositor *compositor;
struct xdg_shell *shell;
struct zwp_fullscreen_shell_v1 *fshell;
struct zlinux_dmabuf *dmabuf;
struct zwp_linux_dmabuf_v1 *dmabuf;
int xrgb8888_format_found;
};
......@@ -187,7 +187,7 @@ unmap_bo(struct buffer *my_buf)
static void
create_succeeded(void *data,
struct zlinux_buffer_params *params,
struct zwp_linux_buffer_params_v1 *params,
struct wl_buffer *new_buffer)
{
struct buffer *buffer = data;
......@@ -195,22 +195,22 @@ create_succeeded(void *data,
buffer->buffer = new_buffer;
wl_buffer_add_listener(buffer->buffer, &buffer_listener, buffer);
zlinux_buffer_params_destroy(params);
zwp_linux_buffer_params_v1_destroy(params);
}
static void
create_failed(void *data, struct zlinux_buffer_params *params)
create_failed(void *data, struct zwp_linux_buffer_params_v1 *params)
{
struct buffer *buffer = data;
buffer->buffer = NULL;
zlinux_buffer_params_destroy(params);
zwp_linux_buffer_params_v1_destroy(params);
fprintf(stderr, "Error: zlinux_buffer_params.create failed.\n");
fprintf(stderr, "Error: zwp_linux_buffer_params.create failed.\n");
}
static const struct zlinux_buffer_params_listener params_listener = {
static const struct zwp_linux_buffer_params_v1_listener params_listener = {
create_succeeded,
create_failed
};
......@@ -219,7 +219,7 @@ static int
create_dmabuf_buffer(struct display *display, struct buffer *buffer,
int width, int height)
{
struct zlinux_buffer_params *params;
struct zwp_linux_buffer_params_v1 *params;
uint64_t modifier;
uint32_t flags;
......@@ -259,20 +259,20 @@ create_dmabuf_buffer(struct display *display, struct buffer *buffer,
modifier = 0;
flags = 0;
params = zlinux_dmabuf_create_params(display->dmabuf);
zlinux_buffer_params_add(params,
buffer->dmabuf_fd,
0, /* plane_idx */
0, /* offset */
buffer->stride,
modifier >> 32,
modifier & 0xffffffff);
zlinux_buffer_params_add_listener(params, &params_listener, buffer);
zlinux_buffer_params_create(params,
buffer->width,
buffer->height,
DRM_FORMAT_XRGB8888,
flags);
params = zwp_linux_dmabuf_v1_create_params(display->dmabuf);
zwp_linux_buffer_params_v1_add(params,
buffer->dmabuf_fd,
0, /* plane_idx */
0, /* offset */
buffer->stride,
modifier >> 32,
modifier & 0xffffffff);
zwp_linux_buffer_params_v1_add_listener(params, &params_listener, buffer);
zwp_linux_buffer_params_v1_create(params,
buffer->width,
buffer->height,
DRM_FORMAT_XRGB8888,
flags);
/* params is destroyed by the event handlers */
......@@ -430,7 +430,7 @@ static const struct wl_callback_listener frame_listener = {
};
static void
dmabuf_format(void *data, struct zlinux_dmabuf *zlinux_dmabuf, uint32_t format)
dmabuf_format(void *data, struct zwp_linux_dmabuf_v1 *zwp_linux_dmabuf, uint32_t format)
{
struct display *d = data;
......@@ -438,7 +438,7 @@ dmabuf_format(void *data, struct zlinux_dmabuf *zlinux_dmabuf, uint32_t format)
d->xrgb8888_format_found = 1;
}
static const struct zlinux_dmabuf_listener dmabuf_listener = {
static const struct zwp_linux_dmabuf_v1_listener dmabuf_listener = {
dmabuf_format
};
......@@ -476,10 +476,10 @@ registry_handle_global(void *data, struct wl_registry *registry,
} else if (strcmp(interface, "zwp_fullscreen_shell_v1") == 0) {
d->fshell = wl_registry_bind(registry,
id, &zwp_fullscreen_shell_v1_interface, 1);
} else if (strcmp(interface, "zlinux_dmabuf") == 0) {
} else if (strcmp(interface, "zwp_linux_dmabuf_v1") == 0) {
d->dmabuf = wl_registry_bind(registry,
id, &zlinux_dmabuf_interface, 1);
zlinux_dmabuf_add_listener(d->dmabuf, &dmabuf_listener, d);
id, &zwp_linux_dmabuf_v1_interface, 1);
zwp_linux_dmabuf_v1_add_listener(d->dmabuf, &dmabuf_listener, d);
}
}
......@@ -515,7 +515,7 @@ create_display(void)
&registry_listener, display);
wl_display_roundtrip(display->display);
if (display->dmabuf == NULL) {
fprintf(stderr, "No zlinux_dmabuf global\n");
fprintf(stderr, "No zwp_linux_dmabuf global\n");
exit(1);
}
......@@ -533,7 +533,7 @@ static void
destroy_display(struct display *display)
{
if (display->dmabuf)
zlinux_dmabuf_destroy(display->dmabuf);
zwp_linux_dmabuf_v1_destroy(display->dmabuf);
if (display->shell)
xdg_shell_destroy(display->shell);
......
This diff is collapsed.
......@@ -41,7 +41,7 @@
#include "gl-renderer.h"
#include "vertex-clipping.h"
#include "linux-dmabuf.h"
#include "linux-dmabuf-server-protocol.h"
#include "linux-dmabuf-unstable-v1-server-protocol.h"
#include "shared/helpers.h"
#include "weston-egl-ext.h"
......@@ -1514,7 +1514,7 @@ gl_renderer_import_dmabuf(struct weston_compositor *ec,
}
/* reject all flags we do not recognize or handle */
if (dmabuf->flags & ~ZLINUX_BUFFER_PARAMS_FLAGS_Y_INVERT)
if (dmabuf->flags & ~ZWP_LINUX_BUFFER_PARAMS_V1_FLAGS_Y_INVERT)
return false;
image = import_dmabuf(gr, dmabuf);
......@@ -1563,7 +1563,7 @@ gl_renderer_attach_dmabuf(struct weston_surface *surface,
buffer->width = dmabuf->width;
buffer->height = dmabuf->height;
buffer->y_inverted =
!!(dmabuf->flags & ZLINUX_BUFFER_PARAMS_FLAGS_Y_INVERT);
!!(dmabuf->flags & ZWP_LINUX_BUFFER_PARAMS_V1_FLAGS_Y_INVERT);
for (i = 0; i < gs->num_images; i++)
egl_image_unref(gs->images[i]);
......
......@@ -28,7 +28,7 @@
#include "compositor.h"
#include "linux-dmabuf.h"
#include "linux-dmabuf-server-protocol.h"
#include "linux-dmabuf-unstable-v1-server-protocol.h"
static void
linux_dmabuf_buffer_destroy(struct linux_dmabuf_buffer *buffer)
......@@ -78,7 +78,7 @@ params_add(struct wl_client *client,
buffer = wl_resource_get_user_data(params_resource);
if (!buffer) {
wl_resource_post_error(params_resource,
ZLINUX_BUFFER_PARAMS_ERROR_ALREADY_USED,
ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_ALREADY_USED,
"params was already used to create a wl_buffer");
close(name_fd);
return;
......@@ -89,7 +89,7 @@ params_add(struct wl_client *client,
if (plane_idx >= MAX_DMABUF_PLANES) {
wl_resource_post_error(params_resource,
ZLINUX_BUFFER_PARAMS_ERROR_PLANE_IDX,
ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_PLANE_IDX,
"plane index %u is too high", plane_idx);
close(name_fd);
return;
......@@ -97,7 +97,7 @@ params_add(struct wl_client *client,
if (buffer->dmabuf_fd[plane_idx] != -1) {
wl_resource_post_error(params_resource,
ZLINUX_BUFFER_PARAMS_ERROR_PLANE_SET,
ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_PLANE_SET,
"a dmabuf has already been added for plane %u",
plane_idx);
close(name_fd);
......@@ -153,7 +153,7 @@ params_create(struct wl_client *client,
if (!buffer) {
wl_resource_post_error(params_resource,
ZLINUX_BUFFER_PARAMS_ERROR_ALREADY_USED,
ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_ALREADY_USED,
"params was already used to create a wl_buffer");
return;
}
......@@ -169,7 +169,7 @@ params_create(struct wl_client *client,
if (!buffer->n_planes) {
wl_resource_post_error(params_resource,
ZLINUX_BUFFER_PARAMS_ERROR_INCOMPLETE,
ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_INCOMPLETE,
"no dmabuf has been added to the params");
goto err_out;
}
......@@ -178,7 +178,7 @@ params_create(struct wl_client *client,
for (i = 0; i < buffer->n_planes; i++) {
if (buffer->dmabuf_fd[i] == -1) {
wl_resource_post_error(params_resource,
ZLINUX_BUFFER_PARAMS_ERROR_INCOMPLETE,
ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_INCOMPLETE,
"no dmabuf has been added for plane %i", i);
goto err_out;
}
......@@ -191,7 +191,7 @@ params_create(struct wl_client *client,
if (width < 1 || height < 1) {
wl_resource_post_error(params_resource,
ZLINUX_BUFFER_PARAMS_ERROR_INVALID_DIMENSIONS,
ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_INVALID_DIMENSIONS,
"invalid width %d or height %d", width, height);
goto err_out;
}
......@@ -201,7 +201,7 @@ params_create(struct wl_client *client,
if ((uint64_t) buffer->offset[i] + buffer->stride[i] > UINT32_MAX) {
wl_resource_post_error(params_resource,
ZLINUX_BUFFER_PARAMS_ERROR_OUT_OF_BOUNDS,
ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_OUT_OF_BOUNDS,
"size overflow for plane %i", i);
goto err_out;
}
......@@ -210,7 +210,7 @@ params_create(struct wl_client *client,
(uint64_t) buffer->offset[i] +
(uint64_t) buffer->stride[i] * height > UINT32_MAX) {
wl_resource_post_error(params_resource,
ZLINUX_BUFFER_PARAMS_ERROR_OUT_OF_BOUNDS,
ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_OUT_OF_BOUNDS,
"size overflow for plane %i", i);
goto err_out;
}
......@@ -223,7 +223,7 @@ params_create(struct wl_client *client,
if (buffer->offset[i] >= size) {
wl_resource_post_error(params_resource,
ZLINUX_BUFFER_PARAMS_ERROR_OUT_OF_BOUNDS,
ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_OUT_OF_BOUNDS,
"invalid offset %i for plane %i",
buffer->offset[i], i);
goto err_out;
......@@ -231,7 +231,7 @@ params_create(struct wl_client *client,
if (buffer->offset[i] + buffer->stride[i] > size) {
wl_resource_post_error(params_resource,
ZLINUX_BUFFER_PARAMS_ERROR_OUT_OF_BOUNDS,
ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_OUT_OF_BOUNDS,
"invalid stride %i for plane %i",
buffer->stride[i], i);
goto err_out;
......@@ -242,7 +242,7 @@ params_create(struct wl_client *client,
if (i == 0 &&
buffer->offset[i] + buffer->stride[i] * height > size) {
wl_resource_post_error(params_resource,
ZLINUX_BUFFER_PARAMS_ERROR_OUT_OF_BOUNDS,
ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_OUT_OF_BOUNDS,
"invalid buffer stride or height for plane %i", i);
goto err_out;
}
......@@ -269,8 +269,8 @@ params_create(struct wl_client *client,
&linux_dmabuf_buffer_implementation,
buffer, destroy_linux_dmabuf_wl_buffer);
zlinux_buffer_params_send_created(params_resource,
buffer->buffer_resource);
zwp_linux_buffer_params_v1_send_created(params_resource,
buffer->buffer_resource);
return;
......@@ -279,14 +279,14 @@ err_buffer:
buffer->user_data_destroy_func(buffer);
err_failed:
zlinux_buffer_params_send_failed(params_resource);
zwp_linux_buffer_params_v1_send_failed(params_resource);
err_out:
linux_dmabuf_buffer_destroy(buffer);
}
static const struct zlinux_buffer_params_interface
zlinux_buffer_params_implementation = {
static const struct zwp_linux_buffer_params_v1_interface
zwp_linux_buffer_params_implementation = {
params_destroy,
params_add,
params_create
......@@ -321,13 +321,13 @@ linux_dmabuf_create_params(struct wl_client *client,
buffer->compositor = compositor;
buffer->params_resource =
wl_resource_create(client,
&zlinux_buffer_params_interface,
&zwp_linux_buffer_params_v1_interface,
version, params_id);
if (!buffer->params_resource)
goto err_dealloc;
wl_resource_set_implementation(buffer->params_resource,
&zlinux_buffer_params_implementation,
&zwp_linux_buffer_params_implementation,
buffer, destroy_params);
return;
......@@ -411,7 +411,7 @@ linux_dmabuf_buffer_get_user_data(struct linux_dmabuf_buffer *buffer)
return buffer->user_data;
}
static const struct zlinux_dmabuf_interface linux_dmabuf_implementation = {
static const struct zwp_linux_dmabuf_v1_interface linux_dmabuf_implementation = {
linux_dmabuf_destroy,
linux_dmabuf_create_params
};
......@@ -423,7 +423,7 @@ bind_linux_dmabuf(struct wl_client *client,
struct weston_compositor *compositor = data;
struct wl_resource *resource;
resource = wl_resource_create(client, &zlinux_dmabuf_interface,
resource = wl_resource_create(client, &zwp_linux_dmabuf_v1_interface,
version, id);
if (resource == NULL) {
wl_client_post_no_memory(client);
......@@ -440,7 +440,7 @@ bind_linux_dmabuf(struct wl_client *client,
/** Advertise linux_dmabuf support
*
* Calling this initializes the zlinux_dmabuf protocol support, so that
* Calling this initializes the zwp_linux_dmabuf protocol support, so that
* the interface will be advertised to clients. Essentially it creates a
* global. Do not call this function multiple times in the compositor's
* lifetime. There is no way to deinit explicitly, globals will be reaped
......@@ -453,7 +453,7 @@ WL_EXPORT int
linux_dmabuf_setup(struct weston_compositor *compositor)
{
if (!wl_global_create(compositor->wl_display,
&zlinux_dmabuf_interface, 1,
&zwp_linux_dmabuf_v1_interface, 1,
compositor, bind_linux_dmabuf))
return -1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment