diff options
author | Tom Hochstein <tom.hochstein@nxp.com> | 2018-08-01 18:13:23 -0500 |
---|---|---|
committer | Tom Hochstein <tom.hochstein@nxp.com> | 2018-09-07 17:05:17 -0500 |
commit | 977228f071cc1ca3a8cd19fdcd08b740cbc4446e (patch) | |
tree | a18b9cabf73a47b08081a141e2e685cb9d73c5de /recipes-graphics | |
parent | d48643e7826674b2fed265464904272b50698f8d (diff) | |
download | meta-freescale-977228f071cc1ca3a8cd19fdcd08b740cbc4446e.tar.gz |
wayland-protocols: Add HDR10 metadata and alpha compositing protocols
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Diffstat (limited to 'recipes-graphics')
3 files changed, 331 insertions, 1 deletions
diff --git a/recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch b/recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch new file mode 100644 index 00000000..10dc2198 --- /dev/null +++ b/recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch | |||
@@ -0,0 +1,195 @@ | |||
1 | From b4be5e338be2301f83f4dfdc0cbb740f0a783464 Mon Sep 17 00:00:00 2001 | ||
2 | From: Haihua Hu <jared.hu@nxp.com> | ||
3 | Date: Thu, 14 Jun 2018 13:54:08 +0800 | ||
4 | Subject: [PATCH 1/2] unstable: Add alpha-compositing protocol | ||
5 | |||
6 | It's based on the Chromium Wayland protocol of the same name ([1]) | ||
7 | and Alexandros's modified version ([2])with a few changes | ||
8 | made to the blending_equation enumeration. | ||
9 | |||
10 | Add one more blending_equation "src_alpha / src_alpha" | ||
11 | |||
12 | [1] https://chromium.googlesource.com/chromium/src/+/master/third_party/wayland-protocols/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml | ||
13 | [2] https://lists.freedesktop.org/archives/wayland-devel/2017-August/034741.html | ||
14 | |||
15 | Upstream-Status: Inappropriate [i.MX specific] | ||
16 | |||
17 | Signed-off-by: Haihua Hu <jared.hu@nxp.com> | ||
18 | --- | ||
19 | Makefile.am | 1 + | ||
20 | unstable/alpha-compositing/README | 6 + | ||
21 | .../alpha-compositing-unstable-v1.xml | 136 +++++++++++++++++++++ | ||
22 | 3 files changed, 143 insertions(+) | ||
23 | create mode 100644 unstable/alpha-compositing/README | ||
24 | create mode 100644 unstable/alpha-compositing/alpha-compositing-unstable-v1.xml | ||
25 | |||
26 | diff --git a/Makefile.am b/Makefile.am | ||
27 | index 4b9a901..e6c44ec 100644 | ||
28 | --- a/Makefile.am | ||
29 | +++ b/Makefile.am | ||
30 | @@ -17,6 +17,7 @@ unstable_protocols = \ | ||
31 | unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml \ | ||
32 | unstable/xdg-output/xdg-output-unstable-v1.xml \ | ||
33 | unstable/input-timestamps/input-timestamps-unstable-v1.xml \ | ||
34 | + unstable/alpha-compositing/alpha-compositing-unstable-v1.xml \ | ||
35 | $(NULL) | ||
36 | |||
37 | stable_protocols = \ | ||
38 | diff --git a/unstable/alpha-compositing/README b/unstable/alpha-compositing/README | ||
39 | new file mode 100644 | ||
40 | index 0000000..d874156 | ||
41 | --- /dev/null | ||
42 | +++ b/unstable/alpha-compositing/README | ||
43 | @@ -0,0 +1,6 @@ | ||
44 | +Alpha compositing protocol | ||
45 | + | ||
46 | +Maintainers: | ||
47 | +David Reveman <reveman at chromium.org> | ||
48 | +Alexandros Frantzis <alexandros.frantzis at collabora.com> | ||
49 | +Jared Hu <Jared Hu at nxp.com> | ||
50 | diff --git a/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml b/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml | ||
51 | new file mode 100644 | ||
52 | index 0000000..0844b3f | ||
53 | --- /dev/null | ||
54 | +++ b/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml | ||
55 | @@ -0,0 +1,136 @@ | ||
56 | +<?xml version="1.0" encoding="UTF-8"?> | ||
57 | +<protocol name="alpha_compositing_unstable_v1"> | ||
58 | + | ||
59 | + <copyright> | ||
60 | + Copyright 2016 The Chromium Authors. | ||
61 | + Copyright 2017 Collabora Ltd | ||
62 | + Copyright 2018 NXP | ||
63 | + | ||
64 | + Permission is hereby granted, free of charge, to any person obtaining a | ||
65 | + copy of this software and associated documentation files (the "Software"), | ||
66 | + to deal in the Software without restriction, including without limitation | ||
67 | + the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
68 | + and/or sell copies of the Software, and to permit persons to whom the | ||
69 | + Software is furnished to do so, subject to the following conditions: | ||
70 | + | ||
71 | + The above copyright notice and this permission notice (including the next | ||
72 | + paragraph) shall be included in all copies or substantial portions of the | ||
73 | + Software. | ||
74 | + | ||
75 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
76 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
77 | + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
78 | + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
79 | + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
80 | + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
81 | + DEALINGS IN THE SOFTWARE. | ||
82 | + </copyright> | ||
83 | + | ||
84 | + <description summary="Protocol for more advanced compositing and blending"> | ||
85 | + This protocol specifies a set of interfaces used to control the alpha | ||
86 | + compositing and blending of surface contents. | ||
87 | + | ||
88 | + Warning! The protocol described in this file is experimental and backward | ||
89 | + incompatible changes may be made. Backward compatible changes may be added | ||
90 | + together with the corresponding interface version bump. Backward | ||
91 | + incompatible changes are done by bumping the version number in the protocol | ||
92 | + and interface names and resetting the interface version. Once the protocol | ||
93 | + is to be declared stable, the 'z' prefix and the version number in the | ||
94 | + protocol and interface names are removed and the interface version number is | ||
95 | + reset. | ||
96 | + </description> | ||
97 | + | ||
98 | + <interface name="zwp_alpha_compositing_v1" version="1"> | ||
99 | + <description summary="alpha_compositing"> | ||
100 | + The global interface exposing compositing and blending capabilities is | ||
101 | + used to instantiate an interface extension for a wl_surface object. | ||
102 | + This extended interface will then allow the client to specify the | ||
103 | + blending equation and alpha value used for compositing the wl_surface. | ||
104 | + </description> | ||
105 | + | ||
106 | + <request name="destroy" type="destructor"> | ||
107 | + <description summary="unbind from the blending interface"> | ||
108 | + Informs the server that the client will not be using this | ||
109 | + protocol object anymore. This does not affect any other objects, | ||
110 | + blending objects included. | ||
111 | + </description> | ||
112 | + </request> | ||
113 | + | ||
114 | + <enum name="error"> | ||
115 | + <entry name="blending_exists" value="0" | ||
116 | + summary="the surface already has a blending object associated"/> | ||
117 | + </enum> | ||
118 | + | ||
119 | + <request name="get_blending"> | ||
120 | + <description summary="extend surface interface for blending"> | ||
121 | + Instantiate an interface extension for the given wl_surface to | ||
122 | + provide surface blending. If the given wl_surface already has | ||
123 | + a blending object associated, the blending_exists protocol error | ||
124 | + is raised. | ||
125 | + </description> | ||
126 | + | ||
127 | + <arg name="id" type="new_id" interface="zwp_blending_v1" | ||
128 | + summary="the new blending interface id"/> | ||
129 | + <arg name="surface" type="object" interface="wl_surface" | ||
130 | + summary="the surface"/> | ||
131 | + </request> | ||
132 | + </interface> | ||
133 | + | ||
134 | + <interface name="zwp_blending_v1" version="1"> | ||
135 | + <description summary="blending interface to a wl_surface"> | ||
136 | + An additional interface to a wl_surface object, which allows the | ||
137 | + client to specify the blending equation used for compositing and | ||
138 | + an alpha value applied to the whole surface. | ||
139 | + | ||
140 | + When the blending object is created its blending equation is | ||
141 | + 'none' and its alpha is 1.0, i.e., it's inactive by default. Clients | ||
142 | + can activate it by setting the blending equation and alpha value. | ||
143 | + | ||
144 | + If the wl_surface associated with the blending object is destroyed, | ||
145 | + the blending object becomes inert. | ||
146 | + | ||
147 | + If the blending object is destroyed, the blending state is removed | ||
148 | + from the wl_surface. The change will be applied on the next | ||
149 | + wl_surface.commit. | ||
150 | + </description> | ||
151 | + | ||
152 | + <request name="destroy" type="destructor"> | ||
153 | + <description summary="remove blending from the surface"> | ||
154 | + The associated wl_surface's blending state is removed. | ||
155 | + The change is applied on the next wl_surface.commit. | ||
156 | + </description> | ||
157 | + </request> | ||
158 | + | ||
159 | + <enum name="blending_equation"> | ||
160 | + <description summary="different blending equations for compositing"> | ||
161 | + Blending equations that can be used when compositing a surface. | ||
162 | + </description> | ||
163 | + <entry name="none" value="0" summary="blending object is inactive"/> | ||
164 | + <entry name="opaque" value="1" summary="(one, zero)"/> | ||
165 | + <entry name="premultiplied" value="2" summary="(one, one_minus_src_alpha)"/> | ||
166 | + <entry name="straight" value="3" summary="(src_alpha, one_minus_src_alpha)" /> | ||
167 | + <entry name="fromsource" value="4" summary="(src_alpha, src_alpha)" /> | ||
168 | + </enum> | ||
169 | + | ||
170 | + <request name="set_blending"> | ||
171 | + <description summary="set the blending equation"> | ||
172 | + Set the blending equation for compositing the wl_surface. | ||
173 | + | ||
174 | + The blending equation state is double-buffered state, | ||
175 | + and will be applied on the next wl_surface.commit. | ||
176 | + </description> | ||
177 | + <arg name="equation" type="uint" summary="the new blending equation"/> | ||
178 | + </request> | ||
179 | + | ||
180 | + <request name="set_alpha"> | ||
181 | + <description summary="set the alpha value"> | ||
182 | + Set the alpha value applied to the whole surface for compositing. | ||
183 | + | ||
184 | + The alpha value state is double-buffered state, | ||
185 | + and will be applied on the next wl_surface.commit. | ||
186 | + </description> | ||
187 | + <arg name="value" type="fixed" summary="the new alpha value"/> | ||
188 | + </request> | ||
189 | + </interface> | ||
190 | + | ||
191 | +</protocol> | ||
192 | \ No newline at end of file | ||
193 | -- | ||
194 | 2.7.4 | ||
195 | |||
diff --git a/recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch b/recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch new file mode 100644 index 00000000..654e8b09 --- /dev/null +++ b/recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch | |||
@@ -0,0 +1,134 @@ | |||
1 | From 54e847c10a75ec7bd6fbb8fbdd700d085145cdce Mon Sep 17 00:00:00 2001 | ||
2 | From: Haihua Hu <jared.hu@nxp.com> | ||
3 | Date: Tue, 26 Jun 2018 15:30:18 +0800 | ||
4 | Subject: [PATCH 2/2] unstable: Add hdr10-metadata protocol | ||
5 | |||
6 | this protocol is used to support hdr10 video playback. | ||
7 | HDR10 metadata is passed to compositor via this interface | ||
8 | |||
9 | Upstream-Status: Inappropriate [i.MX specific] | ||
10 | |||
11 | Signed-off-by: Haihua Hu <jared.hu@nxp.com> | ||
12 | --- | ||
13 | Makefile.am | 1 + | ||
14 | unstable/hdr10-metadata/README | 4 ++ | ||
15 | .../hdr10-metadata/hdr10-metadata-unstable-v1.xml | 84 ++++++++++++++++++++++ | ||
16 | 3 files changed, 89 insertions(+) | ||
17 | create mode 100644 unstable/hdr10-metadata/README | ||
18 | create mode 100644 unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml | ||
19 | |||
20 | diff --git a/Makefile.am b/Makefile.am | ||
21 | index e6c44ec..b8206c7 100644 | ||
22 | --- a/Makefile.am | ||
23 | +++ b/Makefile.am | ||
24 | @@ -18,6 +18,7 @@ unstable_protocols = \ | ||
25 | unstable/xdg-output/xdg-output-unstable-v1.xml \ | ||
26 | unstable/input-timestamps/input-timestamps-unstable-v1.xml \ | ||
27 | unstable/alpha-compositing/alpha-compositing-unstable-v1.xml \ | ||
28 | + unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml \ | ||
29 | $(NULL) | ||
30 | |||
31 | stable_protocols = \ | ||
32 | diff --git a/unstable/hdr10-metadata/README b/unstable/hdr10-metadata/README | ||
33 | new file mode 100644 | ||
34 | index 0000000..58a82f8 | ||
35 | --- /dev/null | ||
36 | +++ b/unstable/hdr10-metadata/README | ||
37 | @@ -0,0 +1,4 @@ | ||
38 | +hdr10 metadata protocol | ||
39 | + | ||
40 | +Maintainers: | ||
41 | +Jared Hu <Jared Hu at nxp.com> | ||
42 | diff --git a/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml b/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml | ||
43 | new file mode 100644 | ||
44 | index 0000000..5b1bac4 | ||
45 | --- /dev/null | ||
46 | +++ b/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml | ||
47 | @@ -0,0 +1,84 @@ | ||
48 | +<?xml version="1.0" encoding="UTF-8"?> | ||
49 | +<protocol name="hdr10_metadata_unstable_v1"> | ||
50 | + | ||
51 | + <copyright> | ||
52 | + Copyright 2018 NXP | ||
53 | + | ||
54 | + Permission is hereby granted, free of charge, to any person obtaining a | ||
55 | + copy of this software and associated documentation files (the "Software"), | ||
56 | + to deal in the Software without restriction, including without limitation | ||
57 | + the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
58 | + and/or sell copies of the Software, and to permit persons to whom the | ||
59 | + Software is furnished to do so, subject to the following conditions: | ||
60 | + | ||
61 | + The above copyright notice and this permission notice (including the next | ||
62 | + paragraph) shall be included in all copies or substantial portions of the | ||
63 | + Software. | ||
64 | + | ||
65 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
66 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
67 | + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
68 | + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
69 | + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
70 | + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
71 | + DEALINGS IN THE SOFTWARE. | ||
72 | + </copyright> | ||
73 | + | ||
74 | + <description summary="Protocol for sending hdr10 metadata to compositor"> | ||
75 | + This protocol specifies a set of interfaces used to set and control | ||
76 | + hdr10 metadata of video contents. | ||
77 | + | ||
78 | + Warning! The protocol described in this file is experimental and backward | ||
79 | + incompatible changes may be made. Backward compatible changes may be added | ||
80 | + together with the corresponding interface version bump. Backward | ||
81 | + incompatible changes are done by bumping the version number in the protocol | ||
82 | + and interface names and resetting the interface version. Once the protocol | ||
83 | + is to be declared stable, the 'z' prefix and the version number in the | ||
84 | + protocol and interface names are removed and the interface version number is | ||
85 | + reset. | ||
86 | + </description> | ||
87 | + | ||
88 | + <interface name="zwp_hdr10_metadata_v1" version="1"> | ||
89 | + <description summary="hdr10_metadata"> | ||
90 | + The global interface exposing hdr10 metadata capabilities is | ||
91 | + used to instantiate an interface extension for compositor. | ||
92 | + This extended interface will then allow the client to pass hdr10 metadata | ||
93 | + to compositor and send to display driver if supported. | ||
94 | + </description> | ||
95 | + | ||
96 | + <request name="destroy" type="destructor"> | ||
97 | + <description summary="unbind from the hdr10 metadata interface"> | ||
98 | + Informs the server that the client will not be using this | ||
99 | + protocol object anymore. This does not affect any other objects. | ||
100 | + </description> | ||
101 | + </request> | ||
102 | + | ||
103 | + <enum name="error"> | ||
104 | + <entry name="sending_meta_error" value="0" | ||
105 | + summary="error occurs when compositor handle metadata"/> | ||
106 | + </enum> | ||
107 | + | ||
108 | + <request name="set_metadata"> | ||
109 | + <description summary="interface of setting and controling hdr10 metadata"> | ||
110 | + client can use this interface pass hdr10 metadata to server. Server need | ||
111 | + use the recived metadata to enable hdr mode. | ||
112 | + </description> | ||
113 | + | ||
114 | + <arg name="eotf" type="uint" summary="supported eotf"/> | ||
115 | + <arg name="type" type="uint" summary="supported type"/> | ||
116 | + <arg name="display_primaries_red" type="uint" | ||
117 | + summary="display primaries of red, high 16bits for x, and low 16bits for y"/> | ||
118 | + <arg name="display_primaries_green" type="uint" | ||
119 | + summary="display primaries of green, high 16bits for x, and low 16bits for y"/> | ||
120 | + <arg name="display_primaries_blue" type="uint" | ||
121 | + summary="display primaries of blue, high 16bits for x, and low 16bits for y"/> | ||
122 | + <arg name="white_point" type="uint" | ||
123 | + summary="white point, high 16bits for x, and low 16bits for blue"/> | ||
124 | + <arg name="mastering_display_luminance" type="uint" | ||
125 | + summary="max and min mastering display luminance, high 16 bits for max, and low 16 bits for min"/> | ||
126 | + <arg name="max_cll" type="uint" summary="max content light level"/> | ||
127 | + <arg name="max_fall" type="uint" summary="max frame average light level"/> | ||
128 | + </request> | ||
129 | + </interface> | ||
130 | + | ||
131 | +</protocol> | ||
132 | -- | ||
133 | 2.7.4 | ||
134 | |||
diff --git a/recipes-graphics/wayland/wayland-protocols_1.13.imx.bb b/recipes-graphics/wayland/wayland-protocols_1.13.imx.bb index 1ef1ee14..ef8fd730 100644 --- a/recipes-graphics/wayland/wayland-protocols_1.13.imx.bb +++ b/recipes-graphics/wayland/wayland-protocols_1.13.imx.bb | |||
@@ -10,7 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \ | |||
10 | file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" | 10 | file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" |
11 | 11 | ||
12 | SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ | 12 | SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ |
13 | " | 13 | file://0001-unstable-Add-alpha-compositing-protocol.patch \ |
14 | file://0002-unstable-Add-hdr10-metadata-protocol.patch" | ||
14 | SRC_URI[md5sum] = "29312149dafcd4a0e739ba94995a574d" | 15 | SRC_URI[md5sum] = "29312149dafcd4a0e739ba94995a574d" |
15 | SRC_URI[sha256sum] = "0758bc8008d5332f431b2a84fea7de64d971ce270ed208206a098ff2ebc68f38" | 16 | SRC_URI[sha256sum] = "0758bc8008d5332f431b2a84fea7de64d971ce270ed208206a098ff2ebc68f38" |
16 | 17 | ||