summaryrefslogtreecommitdiff
path: root/kde-plasma/kwin/files/kwin-5.18.5-mesa-21.patch
blob: dc87b40454838355b83892ad65956f419fde2b0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
From 2c76cc4784382b3df9b5413860d0793ea26cea31 Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Fri, 29 May 2020 16:01:27 +0300
Subject: [wayland] Fix misuse of EGL/eglmesaext.h

The recommended way to get all EGL extension defines is to include
EGL/eglext.h. EGL/eglmesaext.h is a private header that compositors
should not use.

BUG: 422131
---
 .../scenes/opengl/abstract_egl_backend.cpp         | 11 +---
 platformsupport/scenes/opengl/egl_dmabuf.cpp       | 41 +-----------
 platformsupport/scenes/opengl/kwineglext.h         | 76 ++++++++++++++++++++++
 3 files changed, 78 insertions(+), 50 deletions(-)
 create mode 100644 platformsupport/scenes/opengl/kwineglext.h

diff --git a/platformsupport/scenes/opengl/abstract_egl_backend.cpp b/platformsupport/scenes/opengl/abstract_egl_backend.cpp
index 532ec27..e160ef3 100644
--- a/platformsupport/scenes/opengl/abstract_egl_backend.cpp
+++ b/platformsupport/scenes/opengl/abstract_egl_backend.cpp
@@ -19,6 +19,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *********************************************************************/
 #include "abstract_egl_backend.h"
 #include "egl_dmabuf.h"
+#include "kwineglext.h"
 #include "texture.h"
 #include "composite.h"
 #include "egl_context_attribute_builder.h"
@@ -49,16 +50,6 @@ eglBindWaylandDisplayWL_func eglBindWaylandDisplayWL = nullptr;
 eglUnbindWaylandDisplayWL_func eglUnbindWaylandDisplayWL = nullptr;
 eglQueryWaylandBufferWL_func eglQueryWaylandBufferWL = nullptr;
 
-#ifndef EGL_WAYLAND_BUFFER_WL
-#define EGL_WAYLAND_BUFFER_WL                   0x31D5
-#endif
-#ifndef EGL_WAYLAND_PLANE_WL
-#define EGL_WAYLAND_PLANE_WL                    0x31D6
-#endif
-#ifndef EGL_WAYLAND_Y_INVERTED_WL
-#define EGL_WAYLAND_Y_INVERTED_WL               0x31DB
-#endif
-
 AbstractEglBackend::AbstractEglBackend()
     : QObject(nullptr)
     , OpenGLBackend()
diff --git a/platformsupport/scenes/opengl/egl_dmabuf.cpp b/platformsupport/scenes/opengl/egl_dmabuf.cpp
index 3f75bc7..753f15e 100644
--- a/platformsupport/scenes/opengl/egl_dmabuf.cpp
+++ b/platformsupport/scenes/opengl/egl_dmabuf.cpp
@@ -21,10 +21,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #include "egl_dmabuf.h"
 
 #include "drm_fourcc.h"
+#include "kwineglext.h"
 #include "../../../wayland_server.h"
 
 #include <unistd.h>
-#include <EGL/eglmesaext.h>
 
 namespace KWin
 {
@@ -34,45 +34,6 @@ typedef EGLBoolean (*eglQueryDmaBufModifiersEXT_func) (EGLDisplay dpy, EGLint fo
 eglQueryDmaBufFormatsEXT_func eglQueryDmaBufFormatsEXT = nullptr;
 eglQueryDmaBufModifiersEXT_func eglQueryDmaBufModifiersEXT = nullptr;
 
-#ifndef EGL_EXT_image_dma_buf_import
-#define EGL_LINUX_DMA_BUF_EXT                     0x3270
-#define EGL_LINUX_DRM_FOURCC_EXT                  0x3271
-#define EGL_DMA_BUF_PLANE0_FD_EXT                 0x3272
-#define EGL_DMA_BUF_PLANE0_OFFSET_EXT             0x3273
-#define EGL_DMA_BUF_PLANE0_PITCH_EXT              0x3274
-#define EGL_DMA_BUF_PLANE1_FD_EXT                 0x3275
-#define EGL_DMA_BUF_PLANE1_OFFSET_EXT             0x3276
-#define EGL_DMA_BUF_PLANE1_PITCH_EXT              0x3277
-#define EGL_DMA_BUF_PLANE2_FD_EXT                 0x3278
-#define EGL_DMA_BUF_PLANE2_OFFSET_EXT             0x3279
-#define EGL_DMA_BUF_PLANE2_PITCH_EXT              0x327A
-#define EGL_YUV_COLOR_SPACE_HINT_EXT              0x327B
-#define EGL_SAMPLE_RANGE_HINT_EXT                 0x327C
-#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
-#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT   0x327E
-#define EGL_ITU_REC601_EXT                        0x327F
-#define EGL_ITU_REC709_EXT                        0x3280
-#define EGL_ITU_REC2020_EXT                       0x3281
-#define EGL_YUV_FULL_RANGE_EXT                    0x3282
-#define EGL_YUV_NARROW_RANGE_EXT                  0x3283
-#define EGL_YUV_CHROMA_SITING_0_EXT               0x3284
-#define EGL_YUV_CHROMA_SITING_0_5_EXT             0x3285
-#endif // EGL_EXT_image_dma_buf_import
-
-#ifndef EGL_EXT_image_dma_buf_import_modifiers
-#define EGL_DMA_BUF_PLANE3_FD_EXT                 0x3440
-#define EGL_DMA_BUF_PLANE3_OFFSET_EXT             0x3441
-#define EGL_DMA_BUF_PLANE3_PITCH_EXT              0x3442
-#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT        0x3443
-#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT        0x3444
-#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT        0x3445
-#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT        0x3446
-#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT        0x3447
-#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT        0x3448
-#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT        0x3449
-#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT        0x344A
-#endif // EGL_EXT_image_dma_buf_import_modifiers
-
 struct YuvPlane
 {
     int widthDivisor;
diff --git a/platformsupport/scenes/opengl/kwineglext.h b/platformsupport/scenes/opengl/kwineglext.h
new file mode 100644
index 0000000..834701b
--- /dev/null
+++ b/platformsupport/scenes/opengl/kwineglext.h
@@ -0,0 +1,76 @@
+/********************************************************************
+ KWin - the KDE window manager
+ This file is part of the KDE project.
+
+Copyright (C) 2018 Fredrik Höglund <fredrik@kde.org>
+Copyright (C) 2020 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*********************************************************************/
+
+#ifndef KWINEGLEXT_H
+#define KWINEGLEXT_H
+
+#include <EGL/eglext.h>
+
+#ifndef EGL_WL_bind_wayland_display
+#define EGL_WAYLAND_BUFFER_WL                     0x31D5
+#define EGL_WAYLAND_PLANE_WL                      0x31D6
+#define EGL_TEXTURE_Y_U_V_WL                      0x31D7
+#define EGL_TEXTURE_Y_UV_WL                       0x31D8
+#define EGL_TEXTURE_Y_XUXV_WL                     0x31D9
+#define EGL_TEXTURE_EXTERNAL_WL                   0x31DA
+#define EGL_WAYLAND_Y_INVERTED_WL                 0x31DB
+#endif // EGL_WL_bind_wayland_display
+
+#ifndef EGL_EXT_image_dma_buf_import
+#define EGL_LINUX_DMA_BUF_EXT                     0x3270
+#define EGL_LINUX_DRM_FOURCC_EXT                  0x3271
+#define EGL_DMA_BUF_PLANE0_FD_EXT                 0x3272
+#define EGL_DMA_BUF_PLANE0_OFFSET_EXT             0x3273
+#define EGL_DMA_BUF_PLANE0_PITCH_EXT              0x3274
+#define EGL_DMA_BUF_PLANE1_FD_EXT                 0x3275
+#define EGL_DMA_BUF_PLANE1_OFFSET_EXT             0x3276
+#define EGL_DMA_BUF_PLANE1_PITCH_EXT              0x3277
+#define EGL_DMA_BUF_PLANE2_FD_EXT                 0x3278
+#define EGL_DMA_BUF_PLANE2_OFFSET_EXT             0x3279
+#define EGL_DMA_BUF_PLANE2_PITCH_EXT              0x327A
+#define EGL_YUV_COLOR_SPACE_HINT_EXT              0x327B
+#define EGL_SAMPLE_RANGE_HINT_EXT                 0x327C
+#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
+#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT   0x327E
+#define EGL_ITU_REC601_EXT                        0x327F
+#define EGL_ITU_REC709_EXT                        0x3280
+#define EGL_ITU_REC2020_EXT                       0x3281
+#define EGL_YUV_FULL_RANGE_EXT                    0x3282
+#define EGL_YUV_NARROW_RANGE_EXT                  0x3283
+#define EGL_YUV_CHROMA_SITING_0_EXT               0x3284
+#define EGL_YUV_CHROMA_SITING_0_5_EXT             0x3285
+#endif // EGL_EXT_image_dma_buf_import
+
+#ifndef EGL_EXT_image_dma_buf_import_modifiers
+#define EGL_DMA_BUF_PLANE3_FD_EXT                 0x3440
+#define EGL_DMA_BUF_PLANE3_OFFSET_EXT             0x3441
+#define EGL_DMA_BUF_PLANE3_PITCH_EXT              0x3442
+#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT        0x3443
+#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT        0x3444
+#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT        0x3445
+#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT        0x3446
+#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT        0x3447
+#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT        0x3448
+#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT        0x3449
+#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT        0x344A
+#endif // EGL_EXT_image_dma_buf_import_modifiers
+
+#endif // KWINEGLEXT_H
-- 
cgit v1.1