xref: /aosp_15_r20/external/libva/va/wayland/va_backend_wayland.h (revision 54e60f844a168e9a219354de272cd517ee8cd4b7)
1*54e60f84SAndroid Build Coastguard Worker /*
2*54e60f84SAndroid Build Coastguard Worker  * va_backend_wayland.h - VA driver implementation hooks for Wayland
3*54e60f84SAndroid Build Coastguard Worker  *
4*54e60f84SAndroid Build Coastguard Worker  * Copyright (c) 2012 Intel Corporation. All Rights Reserved.
5*54e60f84SAndroid Build Coastguard Worker  *
6*54e60f84SAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a
7*54e60f84SAndroid Build Coastguard Worker  * copy of this software and associated documentation files (the
8*54e60f84SAndroid Build Coastguard Worker  * "Software"), to deal in the Software without restriction, including
9*54e60f84SAndroid Build Coastguard Worker  * without limitation the rights to use, copy, modify, merge, publish,
10*54e60f84SAndroid Build Coastguard Worker  * distribute, sub license, and/or sell copies of the Software, and to
11*54e60f84SAndroid Build Coastguard Worker  * permit persons to whom the Software is furnished to do so, subject to
12*54e60f84SAndroid Build Coastguard Worker  * the following conditions:
13*54e60f84SAndroid Build Coastguard Worker  *
14*54e60f84SAndroid Build Coastguard Worker  * The above copyright notice and this permission notice (including the
15*54e60f84SAndroid Build Coastguard Worker  * next paragraph) shall be included in all copies or substantial portions
16*54e60f84SAndroid Build Coastguard Worker  * of the Software.
17*54e60f84SAndroid Build Coastguard Worker  *
18*54e60f84SAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19*54e60f84SAndroid Build Coastguard Worker  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20*54e60f84SAndroid Build Coastguard Worker  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21*54e60f84SAndroid Build Coastguard Worker  * IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS BE LIABLE FOR
22*54e60f84SAndroid Build Coastguard Worker  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23*54e60f84SAndroid Build Coastguard Worker  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24*54e60f84SAndroid Build Coastguard Worker  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25*54e60f84SAndroid Build Coastguard Worker  */
26*54e60f84SAndroid Build Coastguard Worker 
27*54e60f84SAndroid Build Coastguard Worker #ifndef VA_BACKEND_WAYLAND_H
28*54e60f84SAndroid Build Coastguard Worker #define VA_BACKEND_WAYLAND_H
29*54e60f84SAndroid Build Coastguard Worker 
30*54e60f84SAndroid Build Coastguard Worker #include <va/va.h>
31*54e60f84SAndroid Build Coastguard Worker #include <wayland-client.h>
32*54e60f84SAndroid Build Coastguard Worker 
33*54e60f84SAndroid Build Coastguard Worker /** \brief VA/Wayland API version. */
34*54e60f84SAndroid Build Coastguard Worker #define VA_WAYLAND_API_VERSION  (0x574c4400) /* WLD0 */
35*54e60f84SAndroid Build Coastguard Worker 
36*54e60f84SAndroid Build Coastguard Worker /* Forward declarations */
37*54e60f84SAndroid Build Coastguard Worker struct VADriverContext;
38*54e60f84SAndroid Build Coastguard Worker 
39*54e60f84SAndroid Build Coastguard Worker /** \brief VA/Wayland implementation hooks. */
40*54e60f84SAndroid Build Coastguard Worker struct VADriverVTableWayland {
41*54e60f84SAndroid Build Coastguard Worker     /**
42*54e60f84SAndroid Build Coastguard Worker      * \brief Interface version.
43*54e60f84SAndroid Build Coastguard Worker      *
44*54e60f84SAndroid Build Coastguard Worker      * Implementations shall set this field to \ref VA_WAYLAND_API_VERSION.
45*54e60f84SAndroid Build Coastguard Worker      */
46*54e60f84SAndroid Build Coastguard Worker     unsigned int version;
47*54e60f84SAndroid Build Coastguard Worker 
48*54e60f84SAndroid Build Coastguard Worker     /** \brief Hook to return Wayland buffer associated with the VA surface. */
49*54e60f84SAndroid Build Coastguard Worker     VAStatus(*vaGetSurfaceBufferWl)(
50*54e60f84SAndroid Build Coastguard Worker         struct VADriverContext *ctx,
51*54e60f84SAndroid Build Coastguard Worker         VASurfaceID             surface,
52*54e60f84SAndroid Build Coastguard Worker         unsigned int            flags,
53*54e60f84SAndroid Build Coastguard Worker         struct wl_buffer      **out_buffer
54*54e60f84SAndroid Build Coastguard Worker     );
55*54e60f84SAndroid Build Coastguard Worker 
56*54e60f84SAndroid Build Coastguard Worker     /** \brief Hook to return Wayland buffer associated with the VA image. */
57*54e60f84SAndroid Build Coastguard Worker     VAStatus(*vaGetImageBufferWl)(
58*54e60f84SAndroid Build Coastguard Worker         struct VADriverContext *ctx,
59*54e60f84SAndroid Build Coastguard Worker         VAImageID               image,
60*54e60f84SAndroid Build Coastguard Worker         unsigned int            flags,
61*54e60f84SAndroid Build Coastguard Worker         struct wl_buffer      **out_buffer
62*54e60f84SAndroid Build Coastguard Worker     );
63*54e60f84SAndroid Build Coastguard Worker 
64*54e60f84SAndroid Build Coastguard Worker     /** \brief Indicate whether buffer sharing with prime fd is supported. */
65*54e60f84SAndroid Build Coastguard Worker     unsigned int has_prime_sharing;
66*54e60f84SAndroid Build Coastguard Worker 
67*54e60f84SAndroid Build Coastguard Worker     /**
68*54e60f84SAndroid Build Coastguard Worker      * Pointer to an implementation of struct wl_interface
69*54e60f84SAndroid Build Coastguard Worker      *
70*54e60f84SAndroid Build Coastguard Worker      * It is set by libva-wayland when a context is created, then the backend
71*54e60f84SAndroid Build Coastguard Worker      * driver may reuse it.
72*54e60f84SAndroid Build Coastguard Worker      */
73*54e60f84SAndroid Build Coastguard Worker     const void *wl_interface;
74*54e60f84SAndroid Build Coastguard Worker 
75*54e60f84SAndroid Build Coastguard Worker     /** \brief Reserved bytes for future use, must be zero */
76*54e60f84SAndroid Build Coastguard Worker     unsigned long reserved[7];
77*54e60f84SAndroid Build Coastguard Worker };
78*54e60f84SAndroid Build Coastguard Worker 
79*54e60f84SAndroid Build Coastguard Worker #endif /* VA_BACKEND_WAYLAND_H */
80