1 |
commit: ced1d784c29c3864cc65e987cedb65ebb9c57543 |
2 |
Author: Piotr Karbowski <slashbeast <AT> gentoo <DOT> org> |
3 |
AuthorDate: Tue Nov 30 22:22:23 2021 +0000 |
4 |
Commit: Piotr Karbowski <slashbeast <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Nov 30 22:23:32 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ced1d784 |
7 |
|
8 |
x11-drivers/xf86-video-ati: 19.1.0-r1: fix building with new xserver. |
9 |
|
10 |
Closes: https://bugs.gentoo.org/827872 |
11 |
Signed-off-by: Piotr Karbowski <slashbeast <AT> gentoo.org> |
12 |
|
13 |
...6-video-ati-19.1.0-xserver-21-build-fixes.patch | 368 +++++++++++++++++++++ |
14 |
.../xf86-video-ati/xf86-video-ati-19.1.0-r1.ebuild | 54 +++ |
15 |
2 files changed, 422 insertions(+) |
16 |
|
17 |
diff --git a/x11-drivers/xf86-video-ati/files/xf86-video-ati-19.1.0-xserver-21-build-fixes.patch b/x11-drivers/xf86-video-ati/files/xf86-video-ati-19.1.0-xserver-21-build-fixes.patch |
18 |
new file mode 100644 |
19 |
index 000000000000..6666e0af6916 |
20 |
--- /dev/null |
21 |
+++ b/x11-drivers/xf86-video-ati/files/xf86-video-ati-19.1.0-xserver-21-build-fixes.patch |
22 |
@@ -0,0 +1,368 @@ |
23 |
+From 8da3e4561ef82bb78c9a17b8cd8bf139b9cfd680 Mon Sep 17 00:00:00 2001 |
24 |
+From: Dave Airlie <airlied@××××××.com> |
25 |
+Date: Mon, 13 Jul 2020 09:11:28 +1000 |
26 |
+Subject: ati: cleanup terminology to use primary/secondary |
27 |
+ |
28 |
+The X server changed some API/ABIs here. |
29 |
+ |
30 |
+Based on amdgpu patch by Michel |
31 |
+--- |
32 |
+ man/radeon.man | 2 +- |
33 |
+ src/compat-api.h | 6 +++++ |
34 |
+ src/drmmode_display.c | 4 +-- |
35 |
+ src/evergreen_state.h | 2 +- |
36 |
+ src/r600_state.h | 2 +- |
37 |
+ src/radeon.h | 10 +++---- |
38 |
+ src/radeon_exa.c | 2 +- |
39 |
+ src/radeon_glamor.c | 2 +- |
40 |
+ src/radeon_kms.c | 74 +++++++++++++++++++++++++-------------------------- |
41 |
+ 9 files changed, 55 insertions(+), 49 deletions(-) |
42 |
+ |
43 |
+diff --git a/man/radeon.man b/man/radeon.man |
44 |
+index dcebf537..247dcdb7 100644 |
45 |
+--- a/man/radeon.man |
46 |
++++ b/man/radeon.man |
47 |
+@@ -290,7 +290,7 @@ on. If this option is set, the default value of the property is 'on' or 'off' |
48 |
+ accordingly. If this option isn't set, the default value of the property is |
49 |
+ .B auto, |
50 |
+ which means that TearFree is on for rotated outputs, outputs with RandR |
51 |
+-transforms applied and for RandR 1.4 slave outputs, otherwise off. |
52 |
++transforms applied and for RandR 1.4 secondary outputs, otherwise off. |
53 |
+ .TP |
54 |
+ .BI "Option \*qAccelMethod\*q \*q" "string" \*q |
55 |
+ Chooses between available acceleration architectures. Valid values are |
56 |
+diff --git a/src/compat-api.h b/src/compat-api.h |
57 |
+index f4e7524f..def6d3e4 100644 |
58 |
+--- a/src/compat-api.h |
59 |
++++ b/src/compat-api.h |
60 |
+@@ -34,4 +34,10 @@ |
61 |
+ #define BLOCKHANDLER_ARGS pScreen, pTimeout, pReadmask |
62 |
+ #endif |
63 |
+ |
64 |
++#if ABI_VIDEODRV_VERSION < SET_ABI_VERSION(25, 2) |
65 |
++#define current_primary current_master |
66 |
++#define primary_pixmap master_pixmap |
67 |
++#define secondary_dst slave_dst |
68 |
++#endif |
69 |
++ |
70 |
+ #endif |
71 |
+diff --git a/src/drmmode_display.c b/src/drmmode_display.c |
72 |
+index 72f96a0c..3099a729 100644 |
73 |
+--- a/src/drmmode_display.c |
74 |
++++ b/src/drmmode_display.c |
75 |
+@@ -720,7 +720,7 @@ drmmode_crtc_prime_scanout_update(xf86CrtcPtr crtc, DisplayModePtr mode, |
76 |
+ xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, |
77 |
+ ent) { |
78 |
+ if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) { |
79 |
+- dirty->slave_dst = |
80 |
++ dirty->secondary_dst = |
81 |
+ drmmode_crtc->scanout[scanout_id].pixmap; |
82 |
+ break; |
83 |
+ } |
84 |
+@@ -1356,7 +1356,7 @@ drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix) |
85 |
+ |
86 |
+ xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, ent) { |
87 |
+ if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) { |
88 |
+- PixmapStopDirtyTracking(dirty->src, dirty->slave_dst); |
89 |
++ PixmapStopDirtyTracking(dirty->src, dirty->secondary_dst); |
90 |
+ break; |
91 |
+ } |
92 |
+ } |
93 |
+diff --git a/src/evergreen_state.h b/src/evergreen_state.h |
94 |
+index 7e54e1c7..34ba87b6 100644 |
95 |
+--- a/src/evergreen_state.h |
96 |
++++ b/src/evergreen_state.h |
97 |
+@@ -350,7 +350,7 @@ extern void *RADEONEXACreatePixmap2(ScreenPtr pScreen, int width, int height, |
98 |
+ int *new_pitch); |
99 |
+ extern void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv); |
100 |
+ extern Bool RADEONEXAPixmapIsOffscreen(PixmapPtr pPix); |
101 |
+-extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **handle_p); |
102 |
++extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr secondary, void **handle_p); |
103 |
+ extern Bool RADEONEXASetSharedPixmapBacking(PixmapPtr ppix, void *handle); |
104 |
+ |
105 |
+ #endif |
106 |
+diff --git a/src/r600_state.h b/src/r600_state.h |
107 |
+index 34345996..567c3ca2 100644 |
108 |
+--- a/src/r600_state.h |
109 |
++++ b/src/r600_state.h |
110 |
+@@ -321,6 +321,6 @@ extern void *RADEONEXACreatePixmap2(ScreenPtr pScreen, int width, int height, |
111 |
+ int *new_pitch); |
112 |
+ extern void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv); |
113 |
+ extern Bool RADEONEXAPixmapIsOffscreen(PixmapPtr pPix); |
114 |
+-extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **handle_p); |
115 |
++extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr secondary, void **handle_p); |
116 |
+ extern Bool RADEONEXASetSharedPixmapBacking(PixmapPtr ppix, void *handle); |
117 |
+ #endif |
118 |
+diff --git a/src/radeon.h b/src/radeon.h |
119 |
+index e4a2ba66..68d7756a 100644 |
120 |
+--- a/src/radeon.h |
121 |
++++ b/src/radeon.h |
122 |
+@@ -182,18 +182,18 @@ typedef enum { |
123 |
+ |
124 |
+ |
125 |
+ static inline ScreenPtr |
126 |
+-radeon_master_screen(ScreenPtr screen) |
127 |
++radeon_primary_screen(ScreenPtr screen) |
128 |
+ { |
129 |
+- if (screen->current_master) |
130 |
+- return screen->current_master; |
131 |
++ if (screen->current_primary) |
132 |
++ return screen->current_primary; |
133 |
+ |
134 |
+ return screen; |
135 |
+ } |
136 |
+ |
137 |
+ static inline ScreenPtr |
138 |
+-radeon_dirty_master(PixmapDirtyUpdatePtr dirty) |
139 |
++radeon_dirty_primary(PixmapDirtyUpdatePtr dirty) |
140 |
+ { |
141 |
+- return radeon_master_screen(dirty->slave_dst->drawable.pScreen); |
142 |
++ return radeon_primary_screen(dirty->secondary_dst->drawable.pScreen); |
143 |
+ } |
144 |
+ |
145 |
+ static inline DrawablePtr |
146 |
+diff --git a/src/radeon_exa.c b/src/radeon_exa.c |
147 |
+index 268155ed..320ff992 100644 |
148 |
+--- a/src/radeon_exa.c |
149 |
++++ b/src/radeon_exa.c |
150 |
+@@ -282,7 +282,7 @@ void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv) |
151 |
+ free(driverPriv); |
152 |
+ } |
153 |
+ |
154 |
+-Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **fd_handle) |
155 |
++Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr seconndary, void **fd_handle) |
156 |
+ { |
157 |
+ struct radeon_exa_pixmap_priv *driver_priv = exaGetPixmapDriverPrivate(ppix); |
158 |
+ |
159 |
+diff --git a/src/radeon_glamor.c b/src/radeon_glamor.c |
160 |
+index f1098381..ccf99941 100644 |
161 |
+--- a/src/radeon_glamor.c |
162 |
++++ b/src/radeon_glamor.c |
163 |
+@@ -366,7 +366,7 @@ radeon_glamor_set_pixmap_bo(DrawablePtr drawable, PixmapPtr pixmap) |
164 |
+ |
165 |
+ |
166 |
+ static Bool |
167 |
+-radeon_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr slave, |
168 |
++radeon_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr secondary, |
169 |
+ void **handle_p) |
170 |
+ { |
171 |
+ ScreenPtr screen = pixmap->drawable.pScreen; |
172 |
+diff --git a/src/radeon_kms.c b/src/radeon_kms.c |
173 |
+index b3db7c41..62962d61 100644 |
174 |
+--- a/src/radeon_kms.c |
175 |
++++ b/src/radeon_kms.c |
176 |
+@@ -559,8 +559,8 @@ dirty_region(PixmapDirtyUpdatePtr dirty) |
177 |
+ if (dirty->rotation != RR_Rotate_0) { |
178 |
+ dstregion = transform_region(damageregion, |
179 |
+ &dirty->f_inverse, |
180 |
+- dirty->slave_dst->drawable.width, |
181 |
+- dirty->slave_dst->drawable.height); |
182 |
++ dirty->secondary_dst->drawable.width, |
183 |
++ dirty->secondary_dst->drawable.height); |
184 |
+ } else |
185 |
+ #endif |
186 |
+ { |
187 |
+@@ -568,7 +568,7 @@ dirty_region(PixmapDirtyUpdatePtr dirty) |
188 |
+ |
189 |
+ dstregion = RegionDuplicate(damageregion); |
190 |
+ RegionTranslate(dstregion, -dirty->x, -dirty->y); |
191 |
+- PixmapRegionInit(&pixregion, dirty->slave_dst); |
192 |
++ PixmapRegionInit(&pixregion, dirty->secondary_dst); |
193 |
+ RegionIntersect(dstregion, dstregion, &pixregion); |
194 |
+ RegionUninit(&pixregion); |
195 |
+ } |
196 |
+@@ -585,8 +585,8 @@ redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region) |
197 |
+ if (RegionNil(region)) |
198 |
+ goto out; |
199 |
+ |
200 |
+- if (dirty->slave_dst->master_pixmap) |
201 |
+- DamageRegionAppend(&dirty->slave_dst->drawable, region); |
202 |
++ if (dirty->secondary_dst->primary_pixmap) |
203 |
++ DamageRegionAppend(&dirty->secondary_dst->drawable, region); |
204 |
+ |
205 |
+ #ifdef HAS_DIRTYTRACKING_ROTATION |
206 |
+ PixmapSyncDirtyHelper(dirty); |
207 |
+@@ -595,8 +595,8 @@ redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region) |
208 |
+ #endif |
209 |
+ |
210 |
+ radeon_cs_flush_indirect(src_scrn); |
211 |
+- if (dirty->slave_dst->master_pixmap) |
212 |
+- DamageRegionProcessPending(&dirty->slave_dst->drawable); |
213 |
++ if (dirty->secondary_dst->primary_pixmap) |
214 |
++ DamageRegionProcessPending(&dirty->secondary_dst->drawable); |
215 |
+ |
216 |
+ out: |
217 |
+ DamageEmpty(dirty->damage); |
218 |
+@@ -613,12 +613,12 @@ radeon_prime_scanout_update_abort(xf86CrtcPtr crtc, void *event_data) |
219 |
+ void |
220 |
+ radeon_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty) |
221 |
+ { |
222 |
+- ScreenPtr master_screen = radeon_dirty_master(dirty); |
223 |
++ ScreenPtr primary_screen = radeon_dirty_primary(dirty); |
224 |
+ PixmapDirtyUpdatePtr ent; |
225 |
+ RegionPtr region; |
226 |
+ |
227 |
+- xorg_list_for_each_entry(ent, &master_screen->pixmap_dirty_list, ent) { |
228 |
+- if (!radeon_dirty_src_equals(dirty, ent->slave_dst)) |
229 |
++ xorg_list_for_each_entry(ent, &primary_screen->pixmap_dirty_list, ent) { |
230 |
++ if (!radeon_dirty_src_equals(dirty, ent->secondary_dst)) |
231 |
+ continue; |
232 |
+ |
233 |
+ region = dirty_region(ent); |
234 |
+@@ -631,45 +631,45 @@ radeon_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty) |
235 |
+ #if HAS_SYNC_SHARED_PIXMAP |
236 |
+ |
237 |
+ static Bool |
238 |
+-master_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
239 |
++primary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
240 |
+ { |
241 |
+- ScreenPtr master_screen = radeon_dirty_master(dirty); |
242 |
++ ScreenPtr primary_screen = radeon_dirty_primary(dirty); |
243 |
+ |
244 |
+- return !!master_screen->SyncSharedPixmap; |
245 |
++ return !!primary_screen->SyncSharedPixmap; |
246 |
+ } |
247 |
+ |
248 |
+ static Bool |
249 |
+-slave_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
250 |
++secondary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
251 |
+ { |
252 |
+- ScreenPtr slave_screen = dirty->slave_dst->drawable.pScreen; |
253 |
++ ScreenPtr secondary_screen = dirty->secondary_dst->drawable.pScreen; |
254 |
+ |
255 |
+- return !!slave_screen->SyncSharedPixmap; |
256 |
++ return !!secondary_screen->SyncSharedPixmap; |
257 |
+ } |
258 |
+ |
259 |
+ static void |
260 |
+ call_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty) |
261 |
+ { |
262 |
+- ScreenPtr master_screen = radeon_dirty_master(dirty); |
263 |
++ ScreenPtr primary_screen = radeon_dirty_primary(dirty); |
264 |
+ |
265 |
+- master_screen->SyncSharedPixmap(dirty); |
266 |
++ primary_screen->SyncSharedPixmap(dirty); |
267 |
+ } |
268 |
+ |
269 |
+ #else /* !HAS_SYNC_SHARED_PIXMAP */ |
270 |
+ |
271 |
+ static Bool |
272 |
+-master_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
273 |
++primary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
274 |
+ { |
275 |
+- ScrnInfoPtr master_scrn = xf86ScreenToScrn(radeon_dirty_master(dirty)); |
276 |
++ ScrnInfoPtr primary_scrn = xf86ScreenToScrn(radeon_dirty_primary(dirty)); |
277 |
+ |
278 |
+- return master_scrn->driverName == scrn->driverName; |
279 |
++ return primary_scrn->driverName == scrn->driverName; |
280 |
+ } |
281 |
+ |
282 |
+ static Bool |
283 |
+-slave_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
284 |
++secondary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
285 |
+ { |
286 |
+- ScrnInfoPtr slave_scrn = xf86ScreenToScrn(dirty->slave_dst->drawable.pScreen); |
287 |
++ ScrnInfoPtr secondary_scrn = xf86ScreenToScrn(dirty->secondary_dst->drawable.pScreen); |
288 |
+ |
289 |
+- return slave_scrn->driverName == scrn->driverName; |
290 |
++ return secondary_scrn->driverName == scrn->driverName; |
291 |
+ } |
292 |
+ |
293 |
+ static void |
294 |
+@@ -684,12 +684,12 @@ call_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty) |
295 |
+ static xf86CrtcPtr |
296 |
+ radeon_prime_dirty_to_crtc(PixmapDirtyUpdatePtr dirty) |
297 |
+ { |
298 |
+- ScreenPtr screen = dirty->slave_dst->drawable.pScreen; |
299 |
++ ScreenPtr screen = dirty->secondary_dst->drawable.pScreen; |
300 |
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen); |
301 |
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); |
302 |
+ int c; |
303 |
+ |
304 |
+- /* Find the CRTC which is scanning out from this slave pixmap */ |
305 |
++ /* Find the CRTC which is scanning out from this secondary pixmap */ |
306 |
+ for (c = 0; c < xf86_config->num_crtc; c++) { |
307 |
+ xf86CrtcPtr xf86_crtc = xf86_config->crtc[c]; |
308 |
+ drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private; |
309 |
+@@ -714,7 +714,7 @@ radeon_prime_scanout_do_update(xf86CrtcPtr crtc, unsigned scanout_id) |
310 |
+ if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) { |
311 |
+ RegionPtr region; |
312 |
+ |
313 |
+- if (master_has_sync_shared_pixmap(scrn, dirty)) |
314 |
++ if (primary_has_sync_shared_pixmap(scrn, dirty)) |
315 |
+ call_sync_shared_pixmap(dirty); |
316 |
+ |
317 |
+ region = dirty_region(dirty); |
318 |
+@@ -727,7 +727,7 @@ radeon_prime_scanout_do_update(xf86CrtcPtr crtc, unsigned scanout_id) |
319 |
+ radeon_cs_flush_indirect(scrn); |
320 |
+ RegionCopy(&drmmode_crtc->scanout_last_region, region); |
321 |
+ RegionTranslate(region, -crtc->x, -crtc->y); |
322 |
+- dirty->slave_dst = drmmode_crtc->scanout[scanout_id].pixmap; |
323 |
++ dirty->secondary_dst = drmmode_crtc->scanout[scanout_id].pixmap; |
324 |
+ } |
325 |
+ |
326 |
+ redisplay_dirty(dirty, region); |
327 |
+@@ -754,7 +754,7 @@ radeon_prime_scanout_update_handler(xf86CrtcPtr crtc, uint32_t frame, uint64_t u |
328 |
+ static void |
329 |
+ radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty) |
330 |
+ { |
331 |
+- ScreenPtr screen = dirty->slave_dst->drawable.pScreen; |
332 |
++ ScreenPtr screen = dirty->secondary_dst->drawable.pScreen; |
333 |
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen); |
334 |
+ RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); |
335 |
+ xf86CrtcPtr xf86_crtc = radeon_prime_dirty_to_crtc(dirty); |
336 |
+@@ -818,7 +818,7 @@ radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty) |
337 |
+ static void |
338 |
+ radeon_prime_scanout_flip(PixmapDirtyUpdatePtr ent) |
339 |
+ { |
340 |
+- ScreenPtr screen = ent->slave_dst->drawable.pScreen; |
341 |
++ ScreenPtr screen = ent->secondary_dst->drawable.pScreen; |
342 |
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen); |
343 |
+ RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); |
344 |
+ xf86CrtcPtr crtc = radeon_prime_dirty_to_crtc(ent); |
345 |
+@@ -893,11 +893,11 @@ radeon_dirty_update(ScrnInfoPtr scrn) |
346 |
+ if (screen->isGPU) { |
347 |
+ PixmapDirtyUpdatePtr region_ent = ent; |
348 |
+ |
349 |
+- if (master_has_sync_shared_pixmap(scrn, ent)) { |
350 |
+- ScreenPtr master_screen = radeon_dirty_master(ent); |
351 |
++ if (primary_has_sync_shared_pixmap(scrn, ent)) { |
352 |
++ ScreenPtr primary_screen = radeon_dirty_primary(ent); |
353 |
+ |
354 |
+- xorg_list_for_each_entry(region_ent, &master_screen->pixmap_dirty_list, ent) { |
355 |
+- if (radeon_dirty_src_equals(ent, region_ent->slave_dst)) |
356 |
++ xorg_list_for_each_entry(region_ent, &primary_screen->pixmap_dirty_list, ent) { |
357 |
++ if (radeon_dirty_src_equals(ent, region_ent->secondary_dst)) |
358 |
+ break; |
359 |
+ } |
360 |
+ } |
361 |
+@@ -921,7 +921,7 @@ radeon_dirty_update(ScrnInfoPtr scrn) |
362 |
+ |
363 |
+ RegionDestroy(region); |
364 |
+ } else { |
365 |
+- if (slave_has_sync_shared_pixmap(scrn, ent)) |
366 |
++ if (secondary_has_sync_shared_pixmap(scrn, ent)) |
367 |
+ continue; |
368 |
+ |
369 |
+ region = dirty_region(ent); |
370 |
+@@ -1216,7 +1216,7 @@ static void RADEONBlockHandler_KMS(BLOCKHANDLER_ARGS_DECL) |
371 |
+ (*pScreen->BlockHandler) (BLOCKHANDLER_ARGS); |
372 |
+ pScreen->BlockHandler = RADEONBlockHandler_KMS; |
373 |
+ |
374 |
+- if (!xf86ScreenToScrn(radeon_master_screen(pScreen))->vtSema) |
375 |
++ if (!xf86ScreenToScrn(radeon_primary_screen(pScreen))->vtSema) |
376 |
+ return; |
377 |
+ |
378 |
+ if (!pScreen->isGPU) |
379 |
+@@ -2584,7 +2584,7 @@ CARD32 cleanup_black_fb(OsTimerPtr timer, CARD32 now, pointer data) |
380 |
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); |
381 |
+ int c; |
382 |
+ |
383 |
+- if (xf86ScreenToScrn(radeon_master_screen(screen))->vtSema) |
384 |
++ if (xf86ScreenToScrn(radeon_primary_screen(screen))->vtSema) |
385 |
+ return 0; |
386 |
+ |
387 |
+ /* Unreference the all-black FB created by RADEONLeaveVT_KMS. After |
388 |
+-- |
389 |
+cgit v1.2.1 |
390 |
+ |
391 |
|
392 |
diff --git a/x11-drivers/xf86-video-ati/xf86-video-ati-19.1.0-r1.ebuild b/x11-drivers/xf86-video-ati/xf86-video-ati-19.1.0-r1.ebuild |
393 |
new file mode 100644 |
394 |
index 000000000000..37f523607eb2 |
395 |
--- /dev/null |
396 |
+++ b/x11-drivers/xf86-video-ati/xf86-video-ati-19.1.0-r1.ebuild |
397 |
@@ -0,0 +1,54 @@ |
398 |
+# Copyright 1999-2021 Gentoo Authors |
399 |
+# Distributed under the terms of the GNU General Public License v2 |
400 |
+ |
401 |
+EAPI=7 |
402 |
+ |
403 |
+XORG_DRI=always |
404 |
+inherit linux-info xorg-3 |
405 |
+ |
406 |
+if [[ ${PV} == 9999* ]]; then |
407 |
+ SRC_URI="" |
408 |
+else |
409 |
+ KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" |
410 |
+fi |
411 |
+ |
412 |
+DESCRIPTION="ATI video driver" |
413 |
+HOMEPAGE="https://www.x.org/wiki/ati/" |
414 |
+ |
415 |
+IUSE="udev" |
416 |
+ |
417 |
+RDEPEND=">=x11-libs/libdrm-2.4.89[video_cards_radeon] |
418 |
+ >=x11-libs/libpciaccess-0.8.0 |
419 |
+ x11-base/xorg-server[-minimal] |
420 |
+ udev? ( virtual/libudev:= )" |
421 |
+DEPEND="${RDEPEND} |
422 |
+ x11-base/xorg-proto" |
423 |
+ |
424 |
+PATCHES=( |
425 |
+ "${FILESDIR}"/${P}-Fix-link-failure-with-gcc-10.patch |
426 |
+ "${FILESDIR}"/${P}-xserver-21-build-fixes.patch |
427 |
+) |
428 |
+ |
429 |
+pkg_pretend() { |
430 |
+ if use kernel_linux; then |
431 |
+ if kernel_is -ge 3 9; then |
432 |
+ CONFIG_CHECK="~!DRM_RADEON_UMS ~!FB_RADEON" |
433 |
+ else |
434 |
+ CONFIG_CHECK="~DRM_RADEON_KMS ~!FB_RADEON" |
435 |
+ fi |
436 |
+ fi |
437 |
+ check_extra_config |
438 |
+} |
439 |
+ |
440 |
+pkg_setup() { |
441 |
+ linux-info_pkg_setup |
442 |
+ xorg-3_pkg_setup |
443 |
+} |
444 |
+ |
445 |
+src_configure() { |
446 |
+ local XORG_CONFIGURE_OPTIONS=( |
447 |
+ --enable-glamor |
448 |
+ $(use_enable udev) |
449 |
+ ) |
450 |
+ xorg-3_src_configure |
451 |
+} |