A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.
1 commit 6197bea02eec072c19aa5365962e89949e674099 2 Author: Peter Hutterer <peter.hutterer@who-t.net> 3 Date: Wed Oct 25 11:05:28 2023 +1000 4 5 xserver 21.1.9 6 7 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 8 9 commit 3e290b3c7c3018acf1f08979d014fe3941c94f84 10 Author: Peter Hutterer <peter.hutterer@who-t.net> 11 Date: Thu Oct 5 12:19:45 2023 +1000 12 13 mi: reset the PointerWindows reference on screen switch 14 15 PointerWindows[] keeps a reference to the last window our sprite 16 entered - changes are usually handled by CheckMotion(). 17 18 If we switch between screens via XWarpPointer our 19 dev->spriteInfo->sprite->win is set to the new screen's root window. 20 If there's another window at the cursor location CheckMotion() will 21 trigger the right enter/leave events later. If there is not, it skips 22 that process and we never trigger LeaveWindow() - PointerWindows[] for 23 the device still refers to the previous window. 24 25 If that window is destroyed we have a dangling reference that will 26 eventually cause a use-after-free bug when checking the window hierarchy 27 later. 28 29 To trigger this, we require: 30 - two protocol screens 31 - XWarpPointer to the other screen's root window 32 - XDestroyWindow before entering any other window 33 34 This is a niche bug so we hack around it by making sure we reset the 35 PointerWindows[] entry so we cannot have a dangling pointer. This 36 doesn't handle Enter/Leave events correctly but the previous code didn't 37 either. 38 39 CVE-2023-5380, ZDI-CAN-21608 40 41 This vulnerability was discovered by: 42 Sri working with Trend Micro Zero Day Initiative 43 44 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 45 Reviewed-by: Adam Jackson <ajax@redhat.com> 46 (cherry picked from commit 564ccf2ce9616620456102727acb8b0256b7bbd7) 47 48 commit f2922f6ffa871b0d549878303ca09bc53cdadcf8 49 Author: Peter Hutterer <peter.hutterer@who-t.net> 50 Date: Tue Oct 3 11:53:05 2023 +1000 51 52 Xi/randr: fix handling of PropModeAppend/Prepend 53 54 The handling of appending/prepending properties was incorrect, with at 55 least two bugs: the property length was set to the length of the new 56 part only, i.e. appending or prepending N elements to a property with P 57 existing elements always resulted in the property having N elements 58 instead of N + P. 59 60 Second, when pre-pending a value to a property, the offset for the old 61 values was incorrect, leaving the new property with potentially 62 uninitalized values and/or resulting in OOB memory writes. 63 For example, prepending a 3 element value to a 5 element property would 64 result in this 8 value array: 65 [N, N, N, ?, ?, P, P, P ] P, P 66 ^OOB write 67 68 The XI2 code is a copy/paste of the RandR code, so the bug exists in 69 both. 70 71 CVE-2023-5367, ZDI-CAN-22153 72 73 This vulnerability was discovered by: 74 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 75 76 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 77 (cherry picked from commit 541ab2ecd41d4d8689e71855d93e492bc554719a) 78 79 commit 2c33ee9f1d6da648a5176795608eb3138ef46e49 80 Author: Sam James <sam@gentoo.org> 81 Date: Wed Aug 2 12:33:19 2023 +0100 82 83 Switch to libbsd-overlay 84 85 This is more portable than libbsd as everything Just Works, even on BSD systems, 86 and is the recommended method of consuming libbsd nowadays. 87 88 It also helpfully lets things work with glibc-provided functions for new 89 enough glibc. 90 91 [For the 21.1.x backport, take inspiration from @alanc's commit to libxdmcp 92 at https://gitlab.freedesktop.org/xorg/lib/libxdmcp/-/commit/c01da8ebd0969efd15388ce999e121127cc46f67.] 93 94 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/973 95 Co-authored-by: Guillem Jover <guillem@hadrons.org> 96 (cherry picked from commit 94945a52746ee2612c6cd394692f49e2ed5fc56b) 97 Signed-off-by: Sam James <sam@gentoo.org> 98 99 commit b98fc07d3442a289c6bef82df50dd0a2d01de71a 100 Author: Adam Jackson <ajax@redhat.com> 101 Date: Thu Feb 2 12:26:27 2023 -0500 102 103 present: Send a PresentConfigureNotify event for destroyed windows 104 105 This enables fixing a deadlock case on the client side, where the client 106 ends up blocked waiting for a Present event that will never come because 107 the window was destroyed. The new PresentWindowDestroyed flag allows the 108 client to avoid blocking indefinitely. 109 110 Signed-off-by: Adam Jackson <ajax@redhat.com> 111 See-also: https://gitlab.freedesktop.org/mesa/mesa/-/issues/116 112 See-also: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6685 113 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 114 (cherry picked from commit 462b06033e66a32308d940eb5fc47f5e4c914dc0) 115 116 commit 7c791b15504cc86a929acaa88161f012cdbba59f 117 Author: Olivier Fourdan <ofourdan@redhat.com> 118 Date: Wed Mar 29 13:58:30 2023 +0200 119 120 xserver 21.1.8 121 122 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 123 124 commit fb51d5dd53b02422ea3b6f36bd017488d41f472d 125 Author: Olivier Fourdan <ofourdan@redhat.com> 126 Date: Mon Mar 13 11:08:47 2023 +0100 127 128 composite: Fix use-after-free of the COW 129 130 ZDI-CAN-19866/CVE-2023-1393 131 132 If a client explicitly destroys the compositor overlay window (aka COW), 133 we would leave a dangling pointer to that window in the CompScreen 134 structure, which will trigger a use-after-free later. 135 136 Make sure to clear the CompScreen pointer to the COW when the latter gets 137 destroyed explicitly by the client. 138 139 This vulnerability was discovered by: 140 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 141 142 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 143 Reviewed-by: Adam Jackson <ajax@redhat.com> 144 (cherry picked from commit 26ef545b3502f61ca722a7a3373507e88ef64110) 145 146 commit 6bed5cfd515b9634ecf73fb884e4ec3388e8b7eb 147 Author: Benno Schulenberg <bensberg@telfort.nl> 148 Date: Mon Mar 27 20:03:56 2023 +0200 149 150 xkbUtils: use existing symbol names instead of deleted deprecated ones 151 152 Symbols `XK_Cyrillic_DZHE` and `XK_Serbian_DZE` were pure synonyms. 153 154 (cherry picked from commit 6153c71cfb4698f1a416266564ecc748e4a25f2c) 155 156 commit af9111ac7fa399a5a33fbfa145060e1850f41e0e 157 Author: Peter Hutterer <peter.hutterer@who-t.net> 158 Date: Tue Feb 7 10:30:37 2023 +1000 159 160 xserver 21.1.7 161 162 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 163 164 commit 9ca7d3f61a88ae6cf47fdf139b6215d745db976b 165 Author: Peter Hutterer <peter.hutterer@who-t.net> 166 Date: Wed Jan 25 11:41:40 2023 +1000 167 168 Xi: fix potential use-after-free in DeepCopyPointerClasses 169 170 CVE-2023-0494, ZDI-CAN-19596 171 172 This vulnerability was discovered by: 173 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 174 175 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 176 (cherry picked from commit 0ba6d8c37071131a49790243cdac55392ecf71ec) 177 178 commit 4b925d388f76764dcb02dfd1cd7276262dcd7d74 179 Author: Mike Gorse <mgorse@suse.com> 180 Date: Wed Jan 25 02:02:48 2023 +0000 181 182 dix: Use CopyPartialInternalEvent in EnqueueEvent 183 184 The event might be a DeviceEvent allocated on the stack, in 185 AccessXKeyboardEvent for instance. Fixes out-of-bounds read. 186 187 Signed-off-by: Mike Gorse <mgorse@suse.com> 188 (cherry picked from commit 2ef5ef57bd37a8bec2ac454053b283c6f87c3b40) 189 190 commit 44d6c82ac82a78d904a6d47387ac363d9699b891 191 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 192 Date: Wed Jan 18 10:38:41 2023 -0800 193 194 darwin: Implement DetermineClientCmd for macOS 195 196 Withoug a proper implementation of DetermineClientCmd, clients that 197 connect via an ssh tunnel are miscategorized as local. This results 198 in failures when we try to use SCM_RIGHTS (eg: in MIT-SHM). 199 200 Fixes: https://github.com/XQuartz/XQuartz/issues/314 201 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 202 (cherry picked from commit 0ea9b595891f2f31915538192961f3404d9ca699) 203 204 commit 1317083fbc407dc9dbb04ba5b98187b75222a16f 205 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 206 Date: Wed Jan 18 12:19:05 2023 -0800 207 208 os: Use LOCAL_PEERPID from sys/un.h if it is available to detemine the pid when falling back on getpeereids() 209 210 This provides a way to determine the pid of a peer connection on 211 systems like darwin that do not support getpeerucred() nor 212 SO_PEERCRED. 213 214 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 215 (cherry picked from commit 8a4ab2287398773a4868c220662d93bf84ec6241) 216 217 commit a6c49106cef36e84eb11d64e325465250b7678be 218 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 219 Date: Wed Jan 18 12:02:54 2023 -0800 220 221 os: Update GetLocalClientCreds to prefer getpeerucred() or SO_PEERCRED over getpeereid() 222 223 GetLocalClientCreds() was preferring getpeereid() above other implementations. 224 225 getpeereid(), however, only returns the effective uid and gid of the peer, 226 leaving the pid unset. When this happens, we are unable to use the pid to 227 determine the peer's command line arguments and incorrectly treat ssh-tunneled 228 traffic as local. 229 230 To address this, we now prioritize getpeerucred() or SO_PEERCRED as those two 231 implementations will return the pid in addition to uid and gid. 232 233 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 234 (cherry picked from commit 165d5c1260edcb998c5cf31d3969723c7452aa7f) 235 236 commit a220f53cb81248d06fb6f044c102c6ab8bffe2d5 237 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 238 Date: Wed Jan 18 10:44:27 2023 -0800 239 240 os: Update AllocNewConnection() debug logging to include whether or not the client is local 241 242 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 243 (cherry picked from commit 2577291f010e07173d0fc8b310ac355928f8ed7d) 244 245 commit 07f9689507eee11bdbc2828ac1319fbde91ad27c 246 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 247 Date: Sun Nov 27 22:25:49 2022 -0800 248 249 Revert "meson: Don't build COMPOSITE for XQuartz" 250 251 This will allow us to remove build-time conditionalization on COMPOSITE 252 while still allowing XQuartz to disable it and use ROOTLESS. 253 254 This reverts commit 5f2d652377995c0c0c3cf07463b5018450661d13 255 256 (cherry picked from commit 66e7b7349dffda6fef51ed029fdc91b787ca4c08) 257 258 commit 8ea43dd8bf8f8f2cb82a2a1f2c004ee873e7810d 259 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 260 Date: Sun Nov 27 22:23:43 2022 -0800 261 262 xquartz: Disable COMPOSITE at runtime 263 264 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 265 (cherry picked from commit 2567388a2957cef526df1b7efb2684aa74feb641) 266 267 commit aa0d8d440c39beb276cd26723d822728ce394e01 268 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 269 Date: Tue Jan 17 07:33:19 2023 -0800 270 271 xquartz: Update the about box copyright to 2023 272 273 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 274 (cherry picked from commit 15077090d371a2679d274c5d129a3102762d18ec) 275 276 commit 8feba178f8b73b983033c197c384c580a6397a41 277 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 278 Date: Sat Jan 14 23:33:59 2023 -0800 279 280 xquartz: Fix building with autoconf 281 282 Regressed-in: 5d302c378d9d21b34db2434425b766ac4f05de89 283 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 284 285 commit c8ef9e38187e00dbaf956893f987e15e8f42f61c 286 Author: Olivier Fourdan <ofourdan@redhat.com> 287 Date: Tue Jul 12 14:44:48 2022 +0200 288 289 dix: Fix overzealous caching of ResourceClientBits() 290 291 Commit c7311654 cached the value of ResourceClientBits(), but that value 292 depends on the `MaxClients` value set either from the command line or 293 from the configuration file. 294 295 For the latter, a call to ResourceClientBits() is issued before the 296 configuration file is read, meaning that the cached value is from the 297 default, not from the maximum number of clients set in the configuration 298 file. 299 300 That obviously causes all sort of issues, including memory corruption 301 and crashes of the Xserver when reaching the default limit value. 302 303 To avoid that issue, also keep the LimitClient value, and recompute the 304 ilog2() value if that changes, as on startup when the value is set from 305 the the xorg.conf ServerFlags section. 306 307 v2: Drop the `cache == 0` test 308 Rename cache vars 309 310 Fixes: c7311654 - dix: cache ResourceClientBits() value 311 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1310 312 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 313 Reviewed-by: Adam Jackson <ajax@redhat.com> 314 (cherry picked from commit 2efa6d659508346358a1ef27b2393e18843f66a3) 315 316 commit a0216de2367429788be4ef430026ada215106ff5 317 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 318 Date: Wed Dec 14 23:45:13 2022 -0800 319 320 rootless: Add additional debug logging to help triage XQuartz fb/rootless/damage crashes 321 322 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 323 (cherry picked from commit 07ed1a623a4b36cdb741a322008ba53d913dc765) 324 325 commit 264272f3d76e4f1e50d984640c57de77aca9ba37 326 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 327 Date: Wed Dec 14 17:07:46 2022 -0800 328 329 xquartz: Use xorg_backtrace() instead of rolling our own for debugging 330 331 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 332 (cherry picked from commit d1a9a50792110683ae3f993eeeffeee79cf9cbce) 333 334 commit 20f380c6d93be3ef561251584163d1fe1ae2d966 335 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 336 Date: Wed Dec 21 01:18:11 2022 -0800 337 338 xquartz: Ignore SIGPIPE at process launch 339 340 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 341 (cherry picked from commit 9a66690eaf67c19b90e07f39b16436d34b59e27a) 342 343 commit 59b6fc88ed9f4b22397a568c2483e4c558856ffa 344 Author: Olivier Fourdan <ofourdan@redhat.com> 345 Date: Mon Dec 19 10:46:20 2022 +0100 346 347 xserver 21.1.6 348 349 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 350 351 commit b7760d41c177983c2f2fca2ebdb8105628291720 352 Author: Peter Hutterer <peter.hutterer@who-t.net> 353 Date: Mon Dec 19 10:06:45 2022 +1000 354 355 Xext: fix invalid event type mask in XTestSwapFakeInput 356 357 In commit b320ca0 the mask was inadvertently changed from octal 0177 to 358 hexadecimal 0x177. 359 360 Fixes commit b320ca0ffe4c0c872eeb3a93d9bde21f765c7c63 361 Xtest: disallow GenericEvents in XTestSwapFakeInput 362 363 Found by Stuart Cassoff 364 365 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 366 (cherry picked from commit bb1711b7fba42f2a0c7d1c09beee241a1b2bcc30) 367 368 commit 69ab3bcaa0f6a5adef6ec19161eb856a4744b32c 369 Author: Peter Hutterer <peter.hutterer@who-t.net> 370 Date: Wed Jul 13 11:23:09 2022 +1000 371 372 xkb: fix some possible memleaks in XkbGetKbdByName 373 374 GetComponentByName returns an allocated string, so let's free that if we 375 fail somewhere. 376 377 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 378 (cherry picked from commit 18f91b950e22c2a342a4fbc55e9ddf7534a707d2) 379 380 commit 5dbb2b52cfeab212b5c9b7e344692a6384efdc4c 381 Author: Peter Hutterer <peter.hutterer@who-t.net> 382 Date: Tue Jul 5 12:06:20 2022 +1000 383 384 xkb: proof GetCountedString against request length attacks 385 386 GetCountedString did a check for the whole string to be within the 387 request buffer but not for the initial 2 bytes that contain the length 388 field. A swapped client could send a malformed request to trigger a 389 swaps() on those bytes, writing into random memory. 390 391 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 392 (cherry picked from commit 11beef0b7f1ed290348e45618e5fa0d2bffcb72e) 393 394 commit becf9d51c33a21e7700b18bb2324f466bb966de5 395 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 396 Date: Wed Dec 14 00:13:34 2022 -0800 397 398 xquartz: Fix some formatting 399 400 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 401 402 commit 61d18bed664769b1d94ea1320e27f71560a01af2 403 Author: John D Pell <John+git@gaelicWizard.net> 404 Date: Tue Jul 13 23:46:28 2021 -0700 405 406 XQuartz: stub: Call LSOpenApplication instead of fork()/exec() 407 408 Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 409 410 commit f292fbfaac0c653ee49bbb24deb3add2b5da602f 411 Author: Peter Hutterer <peter.hutterer@who-t.net> 412 Date: Wed Dec 14 11:34:41 2022 +1000 413 414 xserver 21.1.5 415 416 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 417 418 commit e860bbce4fdb169e84033529331ae2666e679de7 419 Author: Peter Hutterer <peter.hutterer@who-t.net> 420 Date: Mon Dec 5 15:55:54 2022 +1000 421 422 xkb: reset the radio_groups pointer to NULL after freeing it 423 424 Unlike other elements of the keymap, this pointer was freed but not 425 reset. On a subsequent XkbGetKbdByName request, the server may access 426 already freed memory. 427 428 CVE-2022-4283, ZDI-CAN-19530 429 430 This vulnerability was discovered by: 431 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 432 433 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 434 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 435 (cherry picked from commit ccdd431cd8f1cabae9d744f0514b6533c438908c) 436 437 commit 8a1fa008b2f90abce6cabb27d9bc2ed76d07b678 438 Author: Peter Hutterer <peter.hutterer@who-t.net> 439 Date: Tue Nov 29 13:26:57 2022 +1000 440 441 Xi: avoid integer truncation in length check of ProcXIChangeProperty 442 443 This fixes an OOB read and the resulting information disclosure. 444 445 Length calculation for the request was clipped to a 32-bit integer. With 446 the correct stuff->num_items value the expected request size was 447 truncated, passing the REQUEST_FIXED_SIZE check. 448 449 The server then proceeded with reading at least stuff->num_items bytes 450 (depending on stuff->format) from the request and stuffing whatever it 451 finds into the property. In the process it would also allocate at least 452 stuff->num_items bytes, i.e. 4GB. 453 454 The same bug exists in ProcChangeProperty and ProcXChangeDeviceProperty, 455 so let's fix that too. 456 457 CVE-2022-46344, ZDI-CAN 19405 458 459 This vulnerability was discovered by: 460 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 461 462 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 463 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 464 (cherry picked from commit 8f454b793e1f13c99872c15f0eed1d7f3b823fe8) 465 466 commit 40f431de8a76f737c68ae659fee8472583f15e49 467 Author: Peter Hutterer <peter.hutterer@who-t.net> 468 Date: Tue Nov 29 13:24:00 2022 +1000 469 470 Xi: return an error from XI property changes if verification failed 471 472 Both ProcXChangeDeviceProperty and ProcXIChangeProperty checked the 473 property for validity but didn't actually return the potential error. 474 475 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 476 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 477 (cherry picked from commit b8a84cb0f2807b07ab70ca9915fcdee21301b8ca) 478 479 commit d6c7de9eadca980c8ce3b3b7752b67bfa95e6f31 480 Author: Peter Hutterer <peter.hutterer@who-t.net> 481 Date: Tue Nov 29 14:53:07 2022 +1000 482 483 Xext: free the screen saver resource when replacing it 484 485 This fixes a use-after-free bug: 486 487 When a client first calls ScreenSaverSetAttributes(), a struct 488 ScreenSaverAttrRec is allocated and added to the client's 489 resources. 490 491 When the same client calls ScreenSaverSetAttributes() again, a new 492 struct ScreenSaverAttrRec is allocated, replacing the old struct. The 493 old struct was freed but not removed from the clients resources. 494 495 Later, when the client is destroyed the resource system invokes 496 ScreenSaverFreeAttr and attempts to clean up the already freed struct. 497 498 Fix this by letting the resource system free the old attrs instead. 499 500 CVE-2022-46343, ZDI-CAN 19404 501 502 This vulnerability was discovered by: 503 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 504 505 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 506 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 507 (cherry picked from commit 842ca3ccef100ce010d1d8f5f6d6cc1915055900) 508 509 commit 67927cc41f452228188bbe2aa34a9ee4a9ce0c6b 510 Author: Peter Hutterer <peter.hutterer@who-t.net> 511 Date: Wed Nov 30 11:20:40 2022 +1000 512 513 Xext: free the XvRTVideoNotify when turning off from the same client 514 515 This fixes a use-after-free bug: 516 517 When a client first calls XvdiSelectVideoNotify() on a drawable with a 518 TRUE onoff argument, a struct XvVideoNotifyRec is allocated. This struct 519 is added twice to the resources: 520 - as the drawable's XvRTVideoNotifyList. This happens only once per 521 drawable, subsequent calls append to this list. 522 - as the client's XvRTVideoNotify. This happens for every client. 523 524 The struct keeps the ClientPtr around once it has been added for a 525 client. The idea, presumably, is that if the client disconnects we can remove 526 all structs from the drawable's list that match the client (by resetting 527 the ClientPtr to NULL), but if the drawable is destroyed we can remove 528 and free the whole list. 529 530 However, if the same client then calls XvdiSelectVideoNotify() on the 531 same drawable with a FALSE onoff argument, only the ClientPtr on the 532 existing struct was set to NULL. The struct itself remained in the 533 client's resources. 534 535 If the drawable is now destroyed, the resource system invokes 536 XvdiDestroyVideoNotifyList which frees the whole list for this drawable 537 - including our struct. This function however does not free the resource 538 for the client since our ClientPtr is NULL. 539 540 Later, when the client is destroyed and the resource system invokes 541 XvdiDestroyVideoNotify, we unconditionally set the ClientPtr to NULL. On 542 a struct that has been freed previously. This is generally frowned upon. 543 544 Fix this by calling FreeResource() on the second call instead of merely 545 setting the ClientPtr to NULL. This removes the struct from the client 546 resources (but not from the list), ensuring that it won't be accessed 547 again when the client quits. 548 549 Note that the assignment tpn->client = NULL; is superfluous since the 550 XvdiDestroyVideoNotify function will do this anyway. But it's left for 551 clarity and to match a similar invocation in XvdiSelectPortNotify. 552 553 CVE-2022-46342, ZDI-CAN 19400 554 555 This vulnerability was discovered by: 556 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 557 558 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 559 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 560 (cherry picked from commit b79f32b57cc0c1186b2899bce7cf89f7b325161b) 561 562 commit a6c0d7b142e762a6b9934a23e060ea91ff5afcea 563 Author: Peter Hutterer <peter.hutterer@who-t.net> 564 Date: Tue Nov 29 13:55:32 2022 +1000 565 566 Xi: disallow passive grabs with a detail > 255 567 568 The XKB protocol effectively prevents us from ever using keycodes above 569 255. For buttons it's theoretically possible but realistically too niche 570 to worry about. For all other passive grabs, the detail must be zero 571 anyway. 572 573 This fixes an OOB write: 574 575 ProcXIPassiveUngrabDevice() calls DeletePassiveGrabFromList with a 576 temporary grab struct which contains tempGrab->detail.exact = stuff->detail. 577 For matching existing grabs, DeleteDetailFromMask is called with the 578 stuff->detail value. This function creates a new mask with the one bit 579 representing stuff->detail cleared. 580 581 However, the array size for the new mask is 8 * sizeof(CARD32) bits, 582 thus any detail above 255 results in an OOB array write. 583 584 CVE-2022-46341, ZDI-CAN 19381 585 586 This vulnerability was discovered by: 587 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 588 589 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 590 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 591 (cherry picked from commit 51eb63b0ee1509c6c6b8922b0e4aa037faa6f78b) 592 593 commit 936d34bdff4c479ccd0405fc221ff8e4c6c7014d 594 Author: Peter Hutterer <peter.hutterer@who-t.net> 595 Date: Tue Nov 29 12:55:45 2022 +1000 596 597 Xtest: disallow GenericEvents in XTestSwapFakeInput 598 599 XTestSwapFakeInput assumes all events in this request are 600 sizeof(xEvent) and iterates through these in 32-byte increments. 601 However, a GenericEvent may be of arbitrary length longer than 32 bytes, 602 so any GenericEvent in this list would result in subsequent events to be 603 misparsed. 604 605 Additional, the swapped event is written into a stack-allocated struct 606 xEvent (size 32 bytes). For any GenericEvent longer than 32 bytes, 607 swapping the event may thus smash the stack like an avocado on toast. 608 609 Catch this case early and return BadValue for any GenericEvent. 610 Which is what would happen in unswapped setups anyway since XTest 611 doesn't support GenericEvent. 612 613 CVE-2022-46340, ZDI-CAN 19265 614 615 This vulnerability was discovered by: 616 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 617 618 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 619 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 620 (cherry picked from commit b320ca0ffe4c0c872eeb3a93d9bde21f765c7c63) 621 622 commit 5f2d652377995c0c0c3cf07463b5018450661d13 623 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 624 Date: Sun Nov 27 15:04:13 2022 -0800 625 626 meson: Don't build COMPOSITE for XQuartz 627 628 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 629 (cherry picked from commit 9c0373366988cc0b909ba31e61c43cc46e054b40) 630 631 commit 3dee0aac2c0ed4538880b65ee528e4633d103592 632 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 633 Date: Thu Nov 24 10:58:26 2022 -0800 634 635 xquartz: Move default applications list outside of the main executable 636 637 This will allow side-wide customization. 638 639 Fixes: https://github.com/XQuartz/XQuartz/issues/274 640 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 641 (cherry picked from commit e654de80ed560c480efc072d876808b1d78da052) 642 643 commit 5d302c378d9d21b34db2434425b766ac4f05de89 644 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 645 Date: Thu Nov 24 11:04:08 2022 -0800 646 647 xquartz: Remove unused macro (X11LIBDIR) 648 649 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 650 (cherry picked from commit 3dbd809c0e2d8da4191dd4a3fd4abdd14be0d838) 651 652 commit 6bf62381d0a1fb54226a10f9d0e6b03aff12f3aa 653 Author: Povilas Kanapickas <povilas@radix.lt> 654 Date: Tue Jul 12 16:09:23 2022 +0300 655 656 xserver 21.1.4 657 658 commit 06b23cccb1166fcccc2f5fe7259b3ef9e1d0f32e 659 Author: Peter Hutterer <peter.hutterer@who-t.net> 660 Date: Tue Jul 5 11:11:06 2022 +1000 661 662 xkb: add request length validation for XkbSetGeometry 663 664 No validation of the various fields on that report were done, so a 665 malicious client could send a short request that claims it had N 666 sections, or rows, or keys, and the server would process the request for 667 N sections, running out of bounds of the actual request data. 668 669 Fix this by adding size checks to ensure our data is valid. 670 671 ZDI-CAN 16062, CVE-2022-2319. 672 673 This vulnerability was discovered by: 674 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 675 676 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 677 (cherry picked from commit 6907b6ea2b4ce949cb07271f5b678d5966d9df42) 678 679 commit e3a530540f2f13739b0233ec51d7a3985a7ec4be 680 Author: Peter Hutterer <peter.hutterer@who-t.net> 681 Date: Tue Jul 5 09:50:41 2022 +1000 682 683 xkb: swap XkbSetDeviceInfo and XkbSetDeviceInfoCheck 684 685 XKB often uses a FooCheck and Foo function pair, the former is supposed 686 to check all values in the request and error out on BadLength, 687 BadValue, etc. The latter is then called once we're confident the values 688 are good (they may still fail on an individual device, but that's a 689 different topic). 690 691 In the case of XkbSetDeviceInfo, those functions were incorrectly 692 named, with XkbSetDeviceInfo ending up as the checker function and 693 XkbSetDeviceInfoCheck as the setter function. As a result, the setter 694 function was called before the checker function, accessing request 695 data and modifying device state before we ensured that the data is 696 valid. 697 698 In particular, the setter function relied on values being already 699 byte-swapped. This in turn could lead to potential OOB memory access. 700 701 Fix this by correctly naming the functions and moving the length checks 702 over to the checker function. These were added in 87c64fc5b0 to the 703 wrong function, probably due to the incorrect naming. 704 705 Fixes ZDI-CAN 16070, CVE-2022-2320. 706 707 This vulnerability was discovered by: 708 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 709 710 Introduced in c06e27b2f6fd9f7b9f827623a48876a225264132 711 712 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 713 (cherry picked from commit dd8caf39e9e15d8f302e54045dd08d8ebf1025dc) 714 715 commit e75840565775dc95b848b366aeed44066a9d8a28 716 Author: Peter Hutterer <peter.hutterer@who-t.net> 717 Date: Tue Jul 5 12:40:47 2022 +1000 718 719 xkb: switch to array index loops to moving pointers 720 721 Most similar loops here use a pointer that advances with each loop 722 iteration, let's do the same here for consistency. 723 724 No functional changes. 725 726 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 727 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 728 (cherry picked from commit f1070c01d616c5f21f939d5ebc533738779451ac) 729 730 commit f3d9c6ff12b5a8a1a9f316b096d5573060747ff9 731 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 732 Date: Mon Jul 4 14:16:43 2022 -0700 733 734 xquartz: Add missing files to distribution tarball 735 736 Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1346 737 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 738 739 commit 147c17fc786c268ec51dc0f0655e69f6493f7ef2 740 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 741 Date: Sat Jul 2 14:15:50 2022 -0700 742 743 XQuartz: Improve type safety for X11Controller's application menu editor 744 745 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 746 (cherry picked from commit 4cfdc5af31ae8282903d0f65cff858330b9f9d1a) 747 748 commit 9e2fc7e2484be7c577ee5baf3765734beef9adc2 749 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 750 Date: Sat Jul 2 14:17:18 2022 -0700 751 752 xquartz: Fix a possible crash when editing the Application menu due to mutaing immutable arrays 753 754 Crashing on exception: -[__NSCFArray replaceObjectAtIndex:withObject:]: mutating method sent to immutable object 755 756 Application Specific Backtrace 0: 757 0 CoreFoundation 0x00007ff80d2c5e9b __exceptionPreprocess + 242 758 1 libobjc.A.dylib 0x00007ff80d027e48 objc_exception_throw + 48 759 2 CoreFoundation 0x00007ff80d38167b _CFThrowFormattedException + 194 760 3 CoreFoundation 0x00007ff80d382a25 -[__NSCFArray removeObjectAtIndex:].cold.1 + 0 761 4 CoreFoundation 0x00007ff80d2e6c0b -[__NSCFArray replaceObjectAtIndex:withObject:] + 119 762 5 X11.bin 0x00000001003180f9 -[X11Controller tableView:setObjectValue:forTableColumn:row:] + 169 763 764 Fixes: https://github.com/XQuartz/XQuartz/issues/267 765 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 766 (cherry picked from commit dfd057996b26420309c324ec844a5ba6dd07eda3) 767 768 commit 86ace20398a6c559e89213622538134b72e448b1 769 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 770 Date: Fri Jul 1 14:26:06 2022 -0700 771 772 xquartz: Use correct defines when building to support Sparkle updates 773 774 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 775 (cherry picked from commit aa636b97c66343b25e508b9c73d8505e8c11b1d9) 776 777 commit 855b96a85bc0711460a2542573a9a3959d1bfefa 778 Author: Povilas Kanapickas <povilas@radix.lt> 779 Date: Sun Dec 19 16:51:39 2021 +0200 780 781 xfree86: Fix event data alignment in inputtest driver 782 783 This fixes address sanitizer errors when running unit tests. The 784 additional copying may reduce performance by a small amount, but we 785 don't care about that because this driver is used for testing only. 786 787 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 788 (cherry picked from commit 7d2014e7d523e10623203582b9f573303750f087) 789 790 commit 9d05ee10c231edacc69b342677ae8c3cc32f97e5 791 Author: Povilas Kanapickas <povilas@radix.lt> 792 Date: Sun Jan 16 10:42:15 2022 +0200 793 794 dix: Don't send touch end to clients that do async grab without touches 795 796 GTK3 menu widget creates a selection for touch and other events and 797 after receiving touch events creates an async grab that excludes touch 798 events. Unfortunately it relies on X server not sending the touch end 799 event in order to function properly. Sending touch end event will cause 800 it to think that the initiating touch ended and when it actually ends, 801 the ButtonRelease event will make it think that the menu should be 802 closed. As a result, the menu will be open only for the duration of the 803 touch making it useless. 804 805 This commit reverts f682e0563f736ed2c2c612ed575e05b6e3db945e. 806 807 Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1255 808 809 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 810 (cherry picked from commit 43e934a19f644cddedae73602e86429c9dc5074a) 811 812 commit b713e717c34d539486f661c03a0f1b35b3208d21 813 Author: Povilas Kanapickas <povilas@radix.lt> 814 Date: Sun Jan 23 22:18:52 2022 +0200 815 816 dix: Correctly save replayed event into GrabInfoRec 817 818 When processing events we operate on InternalEvent pointers. They may 819 actually refer to a an instance of DeviceEvent, GestureEvent or any 820 other event that comprises the InternalEvent union. This works well in 821 practice because we always look into event type before doing anything, 822 except in the case of copying the event. 823 824 *dst_event = *src_event would copy whole InternalEvent event and would 825 cause out of bounds read in case the pointed to event was not 826 InternalEvent but e.g. DeviceEvent. 827 828 This regression has been introduced in 829 23a8b62d34344575f9df9d057fb74bfefa94a77b. 830 831 Fixes https://gitlab.freedesktop.org/xorg/xserver/-/issues/1261 832 833 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 834 (cherry picked from commit 6ef5c05728f8b18170fbc8415d7502495a08670b) 835 836 commit cd3d21d8c44a35c22b7eca61a58bb5620b116102 837 Author: Samuel Thibault <samuel.thibault@ens-lyon.org> 838 Date: Wed Jan 26 00:05:55 2022 +0100 839 840 xkb: fix XkbSetMap when changing a keysym without changing a keytype 841 842 As the comment says: 843 844 "symsPerKey/mapWidths must be filled regardless of client-side flags" 845 846 so we always have to call CheckKeyTypes which will notably fill mapWidths 847 and nTypes. That is needed for CheckKeySyms to work since it checks the 848 width. Without it, any request with XkbKeySymsMask but not 849 XkbKeyTypesMask will fail because of the missing width information, for 850 instance this: 851 852 XkbDescPtr xkb; 853 if (!(xkb = XkbGetMap (dpy, XkbKeyTypesMask|XkbKeySymsMask, XkbUseCoreKbd))) { 854 fprintf (stderr, "ERROR getting map\n"); 855 exit(1); 856 } 857 XFlush (dpy); 858 XSync (dpy, False); 859 860 XkbMapChangesRec changes = { .changed = 0 }; 861 int oneGroupType[XkbNumKbdGroups] = { XkbOneLevelIndex }; 862 863 if (XkbChangeTypesOfKey(xkb, keycode, 1, XkbGroup1Mask, oneGroupType, &changes)) { 864 fprintf(stderr, "ERROR changing type of key\n"); 865 exit(1); 866 } 867 XkbKeySymEntry(xkb,keycode,0,0) = keysym; 868 869 if (!XkbChangeMap(dpy,xkb,&changes)) { 870 fprintf(stderr, "ERROR changing map\n"); 871 exit(1); 872 } 873 874 XkbFreeKeyboard (xkb, 0, TRUE); 875 XFlush (dpy); 876 XSync (dpy, False); 877 878 This had being going under the radar since about ever until commit 879 de940e06f8733d87bbb857aef85d830053442cfe ("xkb: fix key type index check 880 in _XkbSetMapChecks") fixed checking the values of kt_index, which was 881 previously erroneously ignoring errors and ignoring all other checks, just 882 because nTypes was not set, precisely because CheckKeyTypes was not called. 883 884 Note: yes, CheckKeyTypes is meant to be callable without XkbKeyTypesMask, it 885 does properly check for that and just fills nTypes and mapWidths in that 886 case. 887 888 Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> 889 (cherry picked from commit 0217cc6e0cf5013366105a90f5f91ccc4bab5425) 890 891 commit f575524314e9f20a1ff639f6bd65386cdbd083f4 892 Author: Povilas Kanapickas <povilas@radix.lt> 893 Date: Thu Feb 3 20:04:52 2022 +0200 894 895 Revert "os: Try to discover the current seat with the XDG_SEAT var first" 896 897 This reverts commit b27eaa72837eebe80adfe6c257a71a6b9eaf66ee. 898 899 commit 419fbf639d8f53d39449c157a9554bd5482ed64f 900 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 901 Date: Sun Jun 26 10:31:54 2022 -0700 902 903 XQuartz: Add TCC reason keys to Info.plist 904 905 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 906 (cherry picked from commit 9ce7264889e36fddbdf6bac332225ad6f628ad5d) 907 908 commit 66ac50090dd191f1b16daf338ca3b46d9147fbbd 909 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 910 Date: Sun Jun 26 02:40:20 2022 -0700 911 912 XQuartz: Build the bundle trampoline when using meson 913 914 This brings the change for e1fdc856aedfcb4788011415930a0c6861df5123 into meson based builds 915 916 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 917 (cherry picked from commit b00cf4aef881e00533f995c141c3586749cd7ca1) 918 919 commit 033d93a021e86dd5ce9b2b3a1554a72c7031a7f2 920 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 921 Date: Mon Jun 20 17:08:53 2022 -0700 922 923 meson: Support building Xnest and Xorg on darwin 924 925 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 926 (cherry picked from commit ef8101560eefd6160df6d4b57ddb65ea2328c441) 927 928 commit 433f53a1a08390a038176b7c1207512cf1dd3f44 929 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 930 Date: Mon Jun 20 20:19:06 2022 -0700 931 932 tests: Fix build failure from missing micmap.c 933 934 FAILED: test/tests 935 clang -o test/tests test/tests.p/.._mi_miinitext.c.o test/tests.p/fixes.c.o test/tests.p/input.c.o test/tests.p/list.c.o test/tests.p/misc.c.o test/tests.p/signal-logging.c.o test/tests.p/string.c.o test/tests.p/test_xkb.c.o test/tests.p/tests-common.c.o test/tests.p/tests.c.o test/tests.p/touch.c.o test/tests.p/xfree86.c.o test/tests.p/xtest.c.o test/tests.p/hashtabletest.c.o -Wl,-dead_strip_dylibs -Wl,-headerpad_max_install_names -Wl,-undefined,error -fvisibility=hidden -O0 -g3 -gdwarf-2 -mmacosx-version-min=10.9 -Werror=unguarded-availability-new -Werror=format -Werror=objc-method-access -Werror=incompatible-pointer-types -F/Applications/Utilities/XQuartz.app/Contents/Frameworks -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.13.sdk -arch x86_64 -O0 -g3 -gdwarf-2 -mmacosx-version-min=10.9 -Werror=unguarded-availability-new -Werror=format -Werror=objc-method-access -Werror=incompatible-pointer-types -F/Applications/Utilities/XQuartz.app/Contents/Frameworks -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.13.sdk -arch x86_64 -Wl,-rpath,/opt/X11/lib mi/liblibxserver_mi.a dix/liblibxserver_dix.a composite/liblibxserver_composite.a damageext/liblibxserver_damageext.a dbe/liblibxserver_dbe.a randr/liblibxserver_randr.a miext/damage/liblibxserver_miext_damage.a render/liblibxserver_render.a present/liblibxserver_present.a Xext/liblibxserver_xext.a miext/sync/liblibxserver_miext_sync.a xfixes/liblibxserver_xfixes.a Xi/liblibxserver_xi.a xkb/liblibxserver_xkb.a record/liblibxserver_record.a os/liblibxserver_os.a os/liblibxlibc.a glx/liblibglxvnd.a hw/xfree86/common/libxorg_common.a hw/xfree86/loader/libxorg_loader.a hw/xfree86/ddc/libxorg_ddc.a hw/xfree86/xkb/libxorg_xkb.a hw/xfree86/i2c/libxorg_i2c.a hw/xfree86/modes/libxorg_modes.a hw/xfree86/os-support/libxorg_os_support.a hw/xfree86/parser/libxorg_parser.a hw/xfree86/ramdac/libxorg_ramdac.a fb/liblibxserver_fb.a Xext/liblibxserver_xext_vidmode.a dix/liblibxserver_main.a config/liblibxserver_config.a /opt/X11/lib/libpixman-1.dylib /opt/X11/lib/libxcvt.dylib /opt/X11/lib/libxkbfile.dylib /opt/X11/lib/libXfont2.dylib /opt/X11/lib/libXdmcp.dylib -lm /opt/X11/lib/libxshmfence.dylib -ldl -lpthread /opt/X11/lib/libXau.dylib /opt/X11/lib/libGL.dylib 936 Undefined symbols for architecture x86_64: 937 "_micmapScrPrivateKeyRec", referenced from: 938 _DGAInstallCmap in libxorg_common.a(xf86DGA.c.o) 939 _xf86HandleColormaps in libxorg_common.a(xf86cmap.c.o) 940 _CMapInstallColormap in libxorg_common.a(xf86cmap.c.o) 941 _CMapEnterVT in libxorg_common.a(xf86cmap.c.o) 942 _CMapSwitchMode in libxorg_common.a(xf86cmap.c.o) 943 _CMapSetDGAMode in libxorg_common.a(xf86cmap.c.o) 944 _CMapChangeGamma in libxorg_common.a(xf86cmap.c.o) 945 ... 946 ld: symbol(s) not found for architecture x86_64 947 948 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 949 (cherry picked from commit 6645ff59069d603806d749e8af73893cf88d2c06) 950 951 commit 3868f364728ae0cc35621bbfdd36bfa2e3f09fda 952 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 953 Date: Mon Jun 20 20:05:46 2022 -0700 954 955 xf86-input-inputtest: Fix build on systems without SOCK_NONBLOCK 956 957 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 958 (cherry picked from commit 707f23dab8787b4154011186206dc9964e2ebc11) 959 960 commit afcaaac96767d773422512e755e5ad3691a0627c 961 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 962 Date: Mon Jun 20 19:51:39 2022 -0700 963 964 print_edid: Fix a format string error 965 966 ../hw/xfree86/ddc/print_edid.c:511:20: error: format specifies type 'unsigned short' but the argument has type 'int' [-Werror,-Wformat] 967 det_mon->type - DS_VENDOR); 968 ^~~~~~~~~~~~~~~~~~~~~~~~~ 969 970 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 971 (cherry picked from commit 199b8c0853c92ce19a589186f326621477401b74) 972 973 commit 6bb98fc62ddf8b0dd90f7b0b45978a0d0425ed5a 974 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 975 Date: Tue Jun 21 11:46:14 2022 -0700 976 977 xquartz: Update autotools-based builds of XQuartz to account for recent changes 978 979 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 980 981 commit 4ea6f661edbbd84b3f2b308675bd2aa848b53746 982 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 983 Date: Mon Jun 20 20:32:26 2022 -0700 984 985 Revert "meson: Bump requirement to meson-0.50.0" 986 987 This bump is causing issues with our CI. Sorry about that. 988 989 This reverts commit a6a20a7c40f86b5586286aaa614e6b64a5987d82 990 991 (cherry picked from commit 8cd0397e5b4c1f0e0add1fea67f82b811214bf3e) 992 993 commit a6a20a7c40f86b5586286aaa614e6b64a5987d82 994 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 995 Date: Sun Jun 19 23:06:40 2022 -0700 996 997 meson: Provide options to set CFBundleVersion and CFBundleVersionString in XQuartz 998 999 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1000 (cherry picked from commit 4f5999826aa478ba5f138e74cfccdf3b854c8e54) 1001 1002 commit 37285e6252ce3afca5bc205121f83271548dfca9 1003 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1004 Date: Sun Jun 19 19:56:26 2022 -0700 1005 1006 xquartz: Update copyright for 2022 1007 1008 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1009 (cherry picked from commit b12f5dc62d964d0279e1fa9403259cfd8e491285) 1010 1011 commit 96e7b55c5d6898a6715b62d5e01581617d218997 1012 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1013 Date: Sun Jun 19 19:55:44 2022 -0700 1014 1015 xquartz: Update Sparkle configuration to use SUPublicEDKey 1016 1017 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1018 (cherry picked from commit 1d90bef30c4dfe13dd5e70fea606a02380cbcee6) 1019 1020 commit 6465263be8ae98283f8e99a3e95d04e786386040 1021 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1022 Date: Sun Jun 19 22:18:16 2022 -0700 1023 1024 meson: Bump requirement to meson-0.50.0 1025 1026 WARNING: Project specifies a minimum meson_version '>= 0.47.0' but uses features which were added in newer versions: 1027 * 0.50.0: {'install arg in configure_file'} 1028 1029 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1030 (cherry picked from commit 0a27f96d1d0e474b308be982fa7069d3ae0d9892) 1031 1032 commit e48acd9c40c09b7c66a7bfc6650afc216ba78cca 1033 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1034 Date: Thu Jun 16 00:10:26 2022 -0700 1035 1036 XQuartz: Ensure scroll events are delivered to a single window (not both X11 and AppKit) 1037 1038 Fixes: https://github.com/XQuartz/XQuartz/issues/130 1039 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1040 (cherry picked from commit 4532b696c644cb7f21e96cf76d3e6b21ccc0e309) 1041 1042 commit 140d9a0f75194d4079d5cd1e4ad4683c6f47683e 1043 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1044 Date: Sat Feb 20 14:21:01 2021 -0800 1045 1046 xquartz: Fold spaces related preferences into NSUserDefaults+XQuartzDefaults 1047 1048 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1049 (cherry picked from commit f40610e0b4f2b4ae54ef6bbff756cb4a60e17e3b) 1050 1051 commit 03ec5b132f0b3e07f9340faaacaa2455717fd8d1 1052 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1053 Date: Sat Feb 20 14:00:14 2021 -0800 1054 1055 xquartz pbproxy: Adopt NSUserDefaults+XQuartzDefaults for preferences 1056 1057 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1058 (cherry picked from commit 6134c73aebc3f928639e8f802be49ec8ecc17e66) 1059 1060 commit 6df6178bb917f596ec2f61a3aabf99eea620b6ec 1061 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1062 Date: Fri Feb 19 22:49:11 2021 -0800 1063 1064 xquartz: Create a separate category for organizing user preferences 1065 1066 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1067 (cherry picked from commit 963ba6d9adf578ec8d7ed12ae22dece76b895172) 1068 1069 commit c6c1cba397ffa203123a8a6690dee728089e7325 1070 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1071 Date: Sat Sep 10 22:32:56 2016 -0700 1072 1073 os/connection: Improve abstraction for launchd secure sockets 1074 1075 This changes away from hard-coding the /tmp/launch-* path to now 1076 supporting a generic <absolute path to unix socket>[.<screen>] 1077 format for $DISPLAY. 1078 1079 cf-libxcb: d978a4f69b30b630f28d07f1003cf290284d24d8 1080 1081 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1082 CC: Adam Jackson <ajax@kemper.freedesktop.org> 1083 (cherry picked from commit 83d0d911069d502232d719882cd1c5cd090defa1) 1084 1085 commit 663af2f17eec2cc064f3d1e25e00fb840c441964 1086 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1087 Date: Sun Jun 12 22:06:01 2022 -0700 1088 1089 X11Application: Ensure TIS operations are done on the main thread 1090 1091 Fixes: https://github.com/XQuartz/XQuartz/issues/205 1092 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1093 (cherry picked from commit b1afcecc61d841f95e786e4f4f84184f91d149f1) 1094 1095 commit bd3564cf377deace41b359740331d84e3086e916 1096 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1097 Date: Fri Apr 23 02:15:30 2021 -0700 1098 1099 rootless: Dead code removal (ROOTLESS_REDISPLAY_DELAY is already defined) 1100 1101 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 1102 (cherry picked from commit c11b55f3c0c64645bca964aece825de0bdd92b1f) 1103 1104 commit 53173fdab492f0f638f6616fcf01af0b9ea6338d 1105 Author: Olivier Fourdan <ofourdan@redhat.com> 1106 Date: Thu Jan 20 10:20:38 2022 +0100 1107 1108 render: Fix build with gcc 12 1109 1110 The xserver fails to compile with the latest gcc 12: 1111 1112 render/picture.c: In function ‘CreateSolidPicture’: 1113 render/picture.c:874:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[16]’ [-Werror=array-bounds] 1114 874 | pPicture->pSourcePict->type = SourcePictTypeSolidFill; 1115 | ^~ 1116 render/picture.c:868:45: note: object of size 16 allocated by ‘malloc’ 1117 868 | pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictSolidFill)); 1118 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1119 render/picture.c: In function ‘CreateLinearGradientPicture’: 1120 render/picture.c:906:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[32]’ [-Werror=array-bounds] 1121 906 | pPicture->pSourcePict->linear.type = SourcePictTypeLinear; 1122 | ^~ 1123 render/picture.c:899:45: note: object of size 32 allocated by ‘malloc’ 1124 899 | pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictLinearGradient)); 1125 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1126 render/picture.c: In function ‘CreateConicalGradientPicture’: 1127 render/picture.c:989:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[32]’ [-Werror=array-bounds] 1128 989 | pPicture->pSourcePict->conical.type = SourcePictTypeConical; 1129 | ^~ 1130 render/picture.c:982:45: note: object of size 32 allocated by ‘malloc’ 1131 982 | pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictConicalGradient)); 1132 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1133 cc1: some warnings being treated as errors 1134 ninja: build stopped: subcommand failed. 1135 1136 This is because gcc 12 has become stricter and raises a warning now. 1137 1138 Fix the warning/error by allocating enough memory to store the union 1139 struct. 1140 1141 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 1142 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 1143 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1256 1144 (cherry picked from commit c6b0dcb82d4db07a2f32c09a8c09c85a5f57248e) 1145 1146 commit 69774044716039fa70655b3bc6dd6a4ff4535cfd 1147 Author: Błażej Szczygieł <spaz16@wp.pl> 1148 Date: Thu Jan 13 00:47:27 2022 +0100 1149 1150 present: Check for NULL to prevent crash 1151 1152 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1275 1153 Signed-off-by: Błażej Szczygieł <spaz16@wp.pl> 1154 Tested-by: Aaron Plattner <aplattner@nvidia.com> 1155 (cherry picked from commit 22d5818851967408bb7c903cb345b7ca8766094c) 1156 1157 commit 85397cc2efe8fa73461cd21afe700829b2eca768 1158 Author: Povilas Kanapickas <povilas@radix.lt> 1159 Date: Mon Jan 3 00:23:30 2022 +0200 1160 1161 xserver 21.1.3 1162 1163 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 1164 1165 commit 001feb6692b77254db6a4906a82fa1bdadfd7b85 1166 Author: Adam Jackson <ajax@redhat.com> 1167 Date: Tue Oct 26 11:46:37 2021 -0400 1168 1169 glx/dri: Filter out fbconfigs that don't have a supported pixmap format 1170 1171 For depth 30 in particular it's not uncommon for the DDX to not have 1172 a configured pixmap format. Since the client expects to back both 1173 GLXPixmaps and GLXPbuffers with X Pixmaps, trying to use an x2rgb10 1174 fbconfig would fail along various paths to CreatePixmap. Filter these 1175 fbconfigs out so the client can't ask for something that we know won't 1176 work. 1177 1178 (cherry picked from commit f6c070a1ac05801c52ae60efb7dc4b3142653b7d) 1179 1180 commit 66890ca569291a53ea9cdc6ec19070173e522260 1181 Author: Jocelyn Falempe <jfalempe@redhat.com> 1182 Date: Fri Dec 17 10:18:25 2021 +0100 1183 1184 xf86/logind: fix missing call to vtenter if the platform device is not paused 1185 1186 If there is one platform device, which is not paused nor resumed, 1187 systemd_logind_vtenter() will never get called. 1188 This break suspend/resume, and switching to VT on system with Nvidia 1189 proprietary driver. 1190 This is a regression introduced by f5bd039633fa83 1191 1192 So now call systemd_logind_vtenter() if there are no paused 1193 platform devices. 1194 1195 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1271 1196 Fixes: f5bd0396 - xf86/logind: fix call systemd_logind_vtenter after receiving drm device resume 1197 1198 Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> 1199 Tested-by: Olivier Fourdan <ofourdan@redhat.com> 1200 Reviewed-by: Hans de Goede <hdegoede@redhat.com> 1201 1202 commit fec0e2501b424ec6cfbf4c7983727acfafea0ccb 1203 Author: Jocelyn Falempe <jfalempe@redhat.com> 1204 Date: Thu Dec 16 15:46:43 2021 +0100 1205 1206 xf86/logind: Fix compilation error when built without logind/platform bus 1207 1208 This was introduced by commit 8eb1396d 1209 1210 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1269 1211 Fixes: da9d012a9 - xf86/logind: Fix drm_drop_master before vt_reldisp 1212 1213 Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> 1214 Reviewed-by: Hans de Goede <hdegoede@redhat.com> 1215 1216 commit 8223a9d6d9ed2b9a4c1e6373f6ab854fdbda9ead 1217 Author: Matthieu Herrb <matthieu@herrb.eu> 1218 Date: Tue Nov 16 23:38:46 2021 +0100 1219 1220 Convert more funcs to use InternalEvent. 1221 1222 This fixes a crash when a DeviceEvent struct converted to 1223 InteralEvent was beeing copied as InternalEvent (and thus 1224 causing out of bounds reads) in ActivateGrabNoDelivery() 1225 in events.c: 3876 *grabinfo->sync.event = *real_event; 1226 1227 Possible fix for https://gitlab.freedesktop.org/xorg/xserver/-/issues/1253 1228 1229 Signed-off-by: Matthieu Herrb <matthieu@herrb.eu> 1230 (cherry picked from commit 5b8817a019845e1066c373022133985a0e2d718f) 1231 1232 commit b27eaa72837eebe80adfe6c257a71a6b9eaf66ee 1233 Author: nerdopolis <bluescreen_avenger@verizon.net> 1234 Date: Fri Oct 8 18:15:29 2021 -0400 1235 1236 os: Try to discover the current seat with the XDG_SEAT var first 1237 1238 (cherry picked from commit ca1dfdc9aa4b548de624d3a9af5147a998ba3d79) 1239 1240 commit 9852b29380673484aea25771a3e812c8e8a40393 1241 Author: Povilas Kanapickas <povilas@radix.lt> 1242 Date: Wed Dec 15 15:46:09 2021 +0200 1243 1244 xserver 21.1.2 1245 1246 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 1247 1248 commit 9fe2991075aca3321d59d03f3e45faca6cb718b8 1249 Author: Sam James <sam@gentoo.org> 1250 Date: Wed Dec 15 10:41:22 2021 +0200 1251 1252 hw/xfree86: fix sbus build for SPARC 1253 1254 Initially reported downstream in Gentoo. Manifests with errors like: 1255 ``` 1256 gnu/bin/ld: hw/xfree86/common/libxorg_common.a(xf86fbBus.c.o): in function `xf86ClaimFbSlot': 1257 xf86fbBus.c:(.text+0x20): undefined reference to `sbusSlotClaimed' 1258 /usr/lib/gcc/sparc-unknown-linux-gnu/11.2.0/../../../../sparc-unknown-linux-gnu/bin/ld: xf86fbBus.c:(.text+0x2c): undefined reference to `sbusSlotClaimed' 1259 ``` 1260 1261 While we use the headers in meson.build, we don't reference xf86sbusBus.c 1262 which defines the missing symbols like sbusSlotClaimed. 1263 1264 Bug: https://bugs.gentoo.org/828513 1265 Signed-off-by: Sam James <sam@gentoo.org> 1266 (cherry picked from commit 6c1a1fcc4bff90546ebc954f428c6df97005ea50) 1267 1268 commit 0b67785cd13e65d37416f75ab938bdc49cf4732f 1269 Author: Povilas Kanapickas <povilas@radix.lt> 1270 Date: Wed Dec 15 10:41:21 2021 +0200 1271 1272 render: Fix out of bounds access in SProcRenderCompositeGlyphs() 1273 1274 ZDI-CAN-14192, CVE-2021-4008 1275 1276 This vulnerability was discovered and the fix was suggested by: 1277 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 1278 1279 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 1280 (cherry picked from commit ebce7e2d80e7c80e1dda60f2f0bc886f1106ba60) 1281 1282 commit 7209982d2a89f2e27d2f83f8952e9512be813aa4 1283 Author: Povilas Kanapickas <povilas@radix.lt> 1284 Date: Wed Dec 15 10:41:20 2021 +0200 1285 1286 Xext: Fix out of bounds access in SProcScreenSaverSuspend() 1287 1288 ZDI-CAN-14951, CVE-2021-4010 1289 1290 This vulnerability was discovered and the fix was suggested by: 1291 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 1292 1293 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 1294 (cherry picked from commit 6c4c53010772e3cb4cb8acd54950c8eec9c00d21) 1295 1296 commit 6f09e7d3913a8188e32062f5e196bebb06bab140 1297 Author: Povilas Kanapickas <povilas@radix.lt> 1298 Date: Wed Dec 15 10:41:19 2021 +0200 1299 1300 xfixes: Fix out of bounds access in *ProcXFixesCreatePointerBarrier() 1301 1302 ZDI-CAN-14950, CVE-2021-4009 1303 1304 This vulnerability was discovered and the fix was suggested by: 1305 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 1306 1307 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 1308 (cherry picked from commit b5196750099ae6ae582e1f46bd0a6dad29550e02) 1309 1310 commit a82d523edb30e5856adca9f258ac716108c71f19 1311 Author: Povilas Kanapickas <povilas@radix.lt> 1312 Date: Wed Dec 15 10:41:18 2021 +0200 1313 1314 record: Fix out of bounds access in SwapCreateRegister() 1315 1316 ZDI-CAN-14952, CVE-2021-4011 1317 1318 This vulnerability was discovered and the fix was suggested by: 1319 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 1320 1321 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 1322 (cherry picked from commit e56f61c79fc3cee26d83cda0f84ae56d5979f768) 1323 1324 commit a39218d99c6961dda0142d9956eb7404a37d9bd2 1325 Author: Matthieu Herrb <matthieu@herrb.eu> 1326 Date: Wed Dec 15 10:41:17 2021 +0200 1327 1328 remove the PRE_RELEASE message. 1329 1330 With the new numbering scheme, XORG_VERISON_SNAP doesn't mean 1331 a pre-release version anymore. 1332 1333 Signed-off-by: Matthieu Herrb <matthieu@herrb.eu> 1334 (cherry picked from commit 4de9666b6d3c86660d728ddfc13d88700e5ff20d) 1335 1336 commit fc2eb7e8cc19a41e034f2f4286af58f8b4825d65 1337 Author: Matt Turner <mattst88@gmail.com> 1338 Date: Tue Dec 7 21:39:58 2021 -0800 1339 1340 test: #undef NDEBUG so assert is not compiled away 1341 1342 (cherry picked from commit d189102c783653a10931051175de24277a157331) 1343 1344 commit 7caf29ca6607ddf4c19a81d19c0f4acc6deb8936 1345 Author: Povilas Kanapickas <povilas@radix.lt> 1346 Date: Sat Nov 13 16:42:36 2021 +0200 1347 1348 meson: Correctly set DDXOSVERRORF and DDXBEFORERESET on xwin 1349 1350 This worked with autotools, but not meson build system. 1351 1352 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 1353 (cherry picked from commit 04c93b98e9e4593aa2e6701bb08f5e27c3544d8a) 1354 1355 commit 101791f80fdefea738421a414177899db7c76e83 1356 Author: Jonathan Gray <jsg@jsg.id.au> 1357 Date: Fri Dec 3 19:17:18 2021 +1100 1358 1359 glamor: fix free of uninitialised pointers 1360 1361 Attempting to run fvwm on a x61/965gm with xserver 1.21.1 with the 1362 modesetting driver on OpenBSD/amd64 would cause the xserver to 1363 reliably crash. 1364 1365 I tracked this down to the free() calls introduced in 1366 2906ee5e4a722138cccb3265a615da7705a52589 1367 (d1ca47e1242b51c79cec7287f52c36c8e494706b in branch). 1368 1369 clang also warns about this: 1370 glamor_program.c:296:13: warning: variable 'vs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 1371 glamor_program.c:290:9: warning: variable 'vs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 1372 glamor_program.c:288:9: warning: variable 'vs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 1373 glamor_program.c:277:13: warning: variable 'vs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 1374 glamor_program.c:296:13: warning: variable 'fs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 1375 glamor_program.c:290:9: warning: variable 'fs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 1376 glamor_program.c:288:9: warning: variable 'fs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 1377 glamor_program.c:277:13: warning: variable 'fs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 1378 1379 Signed-off-by: Jonathan Gray <jsg@jsg.id.au> 1380 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 1381 Fixes: 2906ee5e4 ("glamor: Fix leak in glamor_build_program()") 1382 (cherry picked from commit 5ac6319776b13f96a2b336da4b35237618a5b001) 1383 1384 commit 2c6989f81e62bac05a583c39fa09a06172d1ece5 1385 Author: Peter Hutterer <peter.hutterer@who-t.net> 1386 Date: Thu Dec 2 10:41:03 2021 +1000 1387 1388 xkb: fix XkbSetMap check for the keytypes count 1389 1390 The previous if/else condition resulted in us always setting the key 1391 type count to the current number of key types. Split this up correctly. 1392 1393 Regression introduced in de940e06f8733d87bbb857aef85d830053442cfe 1394 1395 Fixes #1249 1396 1397 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 1398 (cherry picked from commit be16bd8543f80ad2933ec9c37f082617c7084165) 1399 1400 commit 49444ce9f7ad34fff6ff94a9db95337f4bfd7b03 1401 Author: Povilas Kanapickas <povilas@radix.lt> 1402 Date: Sat Nov 13 17:23:54 2021 +0200 1403 1404 Revert "hw/xfree86: Propagate physical dimensions from DRM connector" 1405 1406 Quite a lot of applications currently expect the screen DPI exposed by 1407 the X server to be 96 even when the real display DPI is different. 1408 Additionally, currently Xwayland completely ignores any hardware 1409 information and sets the DPI to 96. Accordingly the new behavior, even 1410 if it fixes a bug, should not be enabled automatically to all users. 1411 1412 A better solution would be to make the default DPI stay as is and enable 1413 the correct behavior with a command line option (maybe -dpi auto, or 1414 similar). For now let's just revert the bug fix. 1415 1416 This reverts commit 05b3c681ea2f478c0cb941c2f8279919cf78de6d. 1417 1418 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 1419 (cherry picked from commit 35af1299e73483eaf93d913a960e1d1738bc7de6) 1420 1421 commit 6f11b3c803898e0effe6ade2ae951f5758936152 1422 Author: Dave Airlie <airlied@redhat.com> 1423 Date: Thu Nov 11 06:35:19 2021 +1000 1424 1425 dri2: add crocus to the list of va_gl users 1426 1427 (cherry picked from commit a7b0a7fabd137183cc42a5edb15697e354c4450c) 1428 1429 commit 8eb1396d3ecfd2bf968105a99759ae9445bdf768 1430 Author: Jocelyn Falempe <jfalempe@redhat.com> 1431 Date: Thu Nov 18 14:51:21 2021 +0100 1432 1433 xf86/logind: Fix drm_drop_master before vt_reldisp 1434 1435 When switching to VT, the ioctl DRM_DROP_MASTER must be done before 1436 the ioctl VT_RELDISP. Otherwise the kernel can't change the modesetting 1437 reliably, and this leads to the console not showing up in some cases, like 1438 after unplugging a docking station with a DP or HDMI monitor. 1439 1440 Before doing the VT_RELDISP, send a dbus message to logind, to 1441 pause the drm device, so logind will do the ioctl DRM_DROP_MASTER. 1442 1443 With this patch, it changes the order logind will send the resume 1444 event, and drm will be sent last instead of first. 1445 so there is a also fix to call systemd_logind_vtenter() at the right time. 1446 1447 Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> 1448 Reviewed-by: Hans de Goede <hdegoede@redhat.com> 1449 (cherry picked from commit da9d012a9c760896941769d4127e3cfb1a7a9f03) 1450 1451 commit 6834f977a5eadbc3289f27b2bb83997132a39fdd 1452 Author: Jocelyn Falempe <jfalempe@redhat.com> 1453 Date: Thu Nov 18 14:45:42 2021 +0100 1454 1455 xf86/logind: fix call systemd_logind_vtenter after receiving drm device resume 1456 1457 logind send the resume event for input devices and drm device, 1458 in any order. if we call vt_enter before logind resume the drm device, 1459 it leads to a driver error, because logind has not done the 1460 DRM_IOCTL_SET_MASTER on it. 1461 1462 Keep the old workaround to make sure we call systemd_logind_vtenter at 1463 least once if there are no platform device 1464 1465 Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> 1466 Reviewed-by: Hans de Goede <hdegoede@redhat.com> 1467 (cherry picked from commit f5bd039633fa8360a10bd2aabb0111571f6275b0) 1468 1469 commit 0ed7b1224ef17ff3d27e791e03e0d98dd6373c8a 1470 Author: nerdopolis <bluescreen_avenger@verizon.net> 1471 Date: Fri Oct 8 21:51:43 2021 -0400 1472 1473 xfree86: On Linux, while only seat0 can have TTYs, don't assmume all seat0s have TTYs 1474 1475 (cherry picked from commit b8c12aac651d626c5120e6e8e18b42e7528caf43) 1476 1477 commit 6b997fb74e5c9473ee3989fca8d592a3a0d16067 1478 Author: Povilas Kanapickas <povilas@radix.lt> 1479 Date: Sun Nov 7 01:33:56 2021 +0200 1480 1481 xserver 21.1.1 1482 1483 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 1484 1485 commit 70a0c48ff3bb7e3392035ef333cc5c8453508f33 1486 Author: Povilas Kanapickas <povilas@radix.lt> 1487 Date: Sat Nov 6 20:09:48 2021 +0200 1488 1489 Makefile.am: Add missing meson build files to release tarball 1490 1491 commit db0da823f55734baf4c1e4de680e7091f33aac17 1492 Author: Matthieu Herrb <matthieu.herrb@laas.fr> 1493 Date: Sun Oct 31 11:28:28 2021 +0100 1494 1495 Make xf86CompatOutput() return NULL when there are no privates 1496 1497 Some drivers (mach64 w/o DRI for instance) don't initialize privates. 1498 1499 Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr> 1500 (cherry picked from commit 80eeff3ebac772e25c9107199989e677457dbe06) 1501 1502 commit fdb266ff814f6abb6ce006ecbac5ba78a92cdbca 1503 Author: Jon Turney <jon.turney@dronecode.org.uk> 1504 Date: Tue Nov 2 14:04:08 2021 +0000 1505 1506 s/__/@/ in inputtestdrv manpage 1507 1508 Update manpage subsitution style for 2e497bf8 1509 1510 (cherry picked from commit 0099412ea4347b02e61ea21946f309f2535cc07b) 1511 1512 commit 27a0ee32ccef8d621aaa758c804fc9a5ceeb5a56 1513 Author: Povilas Kanapickas <povilas@radix.lt> 1514 Date: Wed Oct 27 13:36:45 2021 +0300 1515 1516 xserver 21.1 1517 1518 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 1519 1520 commit d4944ceda1727180bbee1c582b4ac0796c2748cc 1521 Author: Mario Kleiner <mario.kleiner.de@gmail.com> 1522 Date: Mon Oct 18 08:14:04 2021 +0200 1523 1524 Fix RandR leasing for more than 1 simultaneously active lease. 1525 1526 Due to a switched order of parameters in the xorg_list_add() 1527 call inside ProcRRCreateLease(), adding a new lease for RandR 1528 output leasing does not actually add the new RRLeasePtr lease 1529 record to the list of existing leases for a X-Screen, but instead 1530 replaces the existing list with a new list that has the new lease 1531 as the only element, and probably leaks a bit of memory. 1532 1533 Therefore the server "forgets" all active leases for a screen, 1534 except for the last added lease. If multiple leases are created 1535 in a session, then destruction of all leases but the last one 1536 will fail in many cases, e.g., during server shutdown in 1537 RRCloseScreen(), or resource destruction, e.g., in 1538 RRCrtcDestroyResource(). 1539 1540 Most importantly, it fails if a client simply close(fd)'es the 1541 DRM master descriptor to release a lease, quits, gets killed or 1542 crashes. In this case the kernel will destroy the lease and shut 1543 down the display output, then send a lease event via udev to the 1544 ddx, which e.g., in the modesetting-ddx will trigger a call to 1545 drmmode_validate_leases(). 1546 1547 That function is supposed to detect the released lease and tell 1548 the server to terminate the lease on the server side as well, 1549 via xf86CrtcLeaseTerminated(), but this doesn't happen for all 1550 the leases the server has forgotten. The end result is a dead 1551 video output, as the server won't reinitialize the crtc's 1552 corresponding to the terminated but forgotten lease. 1553 1554 This bug was observed when using the amdvlk AMD OSS Vulkan 1555 driver and trying to lease multiple VKDisplay's, and also 1556 under Mesa radv, as both Mesa Vulkan/WSI/Display and amdvlk 1557 terminate leases by simply close()ing the lease fd, not by 1558 sending explicit RandR protocol requests to free leases. 1559 1560 Leasing worked, but ending a session with multiple active 1561 leases ended in a lot of unpleasant darkness. 1562 1563 Fixing the wrong argument order to xorg_list_add() fixes the 1564 problem. Tested on single-X-Screen and dual-X-Screen setups, 1565 with one, two or three active leases. 1566 1567 Please merge this for the upcoming server 21.1 branch. 1568 Merging into server 1.20 would also make a lot of sense. 1569 1570 Fixes: e4e3447603b5fd3a38a92c3f972396d1f81168ad 1571 Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> 1572 Cc: Keith Packard <keithp@keithp.com> 1573 (cherry picked from commit f467f85ca1f780d5c7cf3c20888e399708d761ac) 1574 1575 commit e59faa4b8cc5aaa19474a5e7ca3a99d08006f8c5 1576 Author: Povilas Kanapickas <povilas@radix.lt> 1577 Date: Thu Oct 14 17:33:40 2021 +0300 1578 1579 xserver 21.1 RC 2 1580 1581 commit 3fb94f3c5ca73f15a78dbc6904380b9b9e402bf4 1582 Author: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk> 1583 Date: Fri Jul 23 09:23:45 2021 +0100 1584 1585 dix/privates.c: Avoid undefined behaviour after realloc() 1586 1587 Adding the offset between the realloc result and the old allocation to 1588 update pointers into the new allocation is undefined behaviour: the 1589 old pointers are no longer valid after realloc() according to the C 1590 standard. While this works on almost all architectures and compilers, 1591 it causes problems on architectures that track pointer bounds (e.g. 1592 CHERI or Arm's Morello): the DevPrivateKey pointers will still have the 1593 bounds of the previous allocation and therefore any dereference will 1594 result in a run-time trap. 1595 1596 I found this due to a crash (dereferencing an invalid capability) while 1597 trying to run `XVnc` on a CHERI-RISC-V system. With this commit I can 1598 successfully connect to the XVnc instance running inside a QEMU with a 1599 VNC viewer on my host. 1600 1601 This also changes the check whether the allocation was moved to use 1602 uintptr_t instead of a pointer since according to the C standard: 1603 "The value of a pointer becomes indeterminate when the object it 1604 points to (or just past) reaches the end of its lifetime." Casting to an 1605 integer type avoids this undefined behaviour. 1606 1607 Signed-off-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk> 1608 (cherry picked from commit f9f705bf3cf0d169d54a70f235cc99e106dbda43) 1609 1610 commit b89fdd523e2c9e9b0cdf37b263833c4b0a8868b8 1611 Author: nerdopolis <rbos@rbos> 1612 Date: Thu Sep 30 08:51:18 2021 -0400 1613 1614 xf86: Accept devices with the 'simpledrm' driver. 1615 1616 SimpleDRM 'devices' are a fallback device, and do not have a busid 1617 so they are getting skipped. This will allow simpledrm to work 1618 with the modesetting driver 1619 1620 (cherry picked from commit b9218fadf3c09d83566549279d68886d8258f79c) 1621 1622 commit fbc690ccaf12d6536951d0ba403dfbb92c7c4115 1623 Author: Mario Kleiner <mario.kleiner.de@gmail.com> 1624 Date: Fri Oct 1 09:47:41 2021 +0200 1625 1626 modesetting: Consider RandR primary output for selectioh of sync crtc. 1627 1628 The "sync crtc" is the crtc used to drive the display timing of a 1629 drawable under DRI2 and DRI3/Present. If a drawable intersects 1630 multiple video outputs, then normally the crtc is chosen which has 1631 the largest intersection area with the drawable. 1632 1633 If multiple outputs / crtc's have exacty the same intersection 1634 area then the crtc chosen was simply the first one with maximum 1635 intersection. Iow. the choice was random, depending on plugging 1636 order of displays. 1637 1638 This adds the ability to choose a preferred output in such a tie 1639 situation. The RandR output marked as "primary output" is chosen 1640 on such a tie. 1641 1642 This new behaviour and its implementation is consistent with other 1643 video ddx drivers. See amdgpu-ddx, ati-ddx and nouveau-ddx for 1644 reference. This commit is a straightforward port from amdgpu-ddx. 1645 1646 Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> 1647 (cherry picked from commit 4b75e65766a9ef3a26d4c1c9d7af9fc6d1d7be5b) 1648 1649 commit 22f4ff1026eeffc566f87453d7f1f70dc23ad4e0 1650 Author: Mario Kleiner <mario.kleiner.de@gmail.com> 1651 Date: Fri Oct 1 08:49:10 2021 +0200 1652 1653 modesetting: Handle mixed VRR and non-VRR display setups better. 1654 1655 In a setup with both VRR capable and non-VRR capable displays, 1656 it was so far inconsistent if the driver would allow use of 1657 VRR support or not, as "is_connector_vrr_capable" was set to 1658 whatever the capabilities of the last added drm output were. 1659 Iow. the plugging order of monitors determined the outcome. 1660 1661 Fix this: Now if at least one display is VRR capable, the driver 1662 will treat an X-Screen as capable for VRR, plugging order no 1663 longer matters. 1664 1665 Tested with a dual-display setup with one VRR monitor and one 1666 non-VRR monitor. This is also beneficial with the new Option 1667 "AsyncFlipSecondaries". 1668 1669 When we are at it, also add some so far missing description of 1670 the "VariableRefresh" driver option, copied from amdgpu-ddx. 1671 1672 Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> 1673 (cherry picked from commit 017ce263376aa64a495c4d71a140a24b1dff7054) 1674 1675 commit 0d0986bf3b924ccb26e4bc6a8c06aed41f238683 1676 Author: Mario Kleiner <mario.kleiner.de@gmail.com> 1677 Date: Fri Oct 1 07:42:01 2021 +0200 1678 1679 modesetting: Enable GAMMA_LUT for lut's with up to 4096 slots. 1680 1681 A lut size of 4096 slots has been verified to work correctly, 1682 as tested with amdgpu-kms. Intel Tigerlake Gen12 hw has a very 1683 large GAMMA_LUT size of 262145 slots, but also issues with its 1684 current GAMMA_LUT implementation, as of Linux 5.14. 1685 1686 Therefore we keep GAMMA_LUT off for large lut's. This currently 1687 excludes Intel Icelake, Tigerlake and later. 1688 1689 This can be overriden via the "UseGammaLUT" boolean xorg.conf option 1690 to force use of GAMMA_LUT on or off. 1691 1692 See following link for the Tigerlake situation: 1693 https://gitlab.freedesktop.org/drm/intel/-/issues/3916#note_1085315 1694 1695 Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> 1696 (cherry picked from commit 66e5a5bb12c58413a4d71781c5a7f63f675bfe55) 1697 1698 commit bc1327e6de82da560c97f66c9c196d9bbd2d24be 1699 Author: Ray Strode <rstrode@redhat.com> 1700 Date: Mon Oct 4 14:27:54 2021 -0400 1701 1702 xkb: Drop check for XkbSetMapResizeTypes 1703 1704 Commit 446ff2d3177087b8173fa779fa5b77a2a128988b added checks to 1705 prevalidate the size of incoming SetMap requests. 1706 1707 That commit checks for the XkbSetMapResizeTypes flag to be set before 1708 allowing key types data to be processed. 1709 1710 key types data can be changed or even just sent wholesale unchanged 1711 without the number of key types changing, however. The check for 1712 XkbSetMapResizeTypes rejects those legitimate requests. In particular, 1713 XkbChangeMap never sets XkbSetMapResizeTypes and so always fails now 1714 any time XkbKeyTypesMask is in the changed mask. 1715 1716 This commit drops the check for XkbSetMapResizeTypes in flags when 1717 prevalidating the request length. 1718 1719 (cherry picked from commit 8b7f4d3259e8b7d1eb3d8a83e8852989e869596a) 1720 1721 commit b87536682c185b6a825525d01e95e264018c0997 1722 Author: Mario Kleiner <mario.kleiner.de@gmail.com> 1723 Date: Tue Sep 14 07:52:33 2021 +0200 1724 1725 Revert "modesetting: Only use GAMMA_LUT if its size is 1024" 1726 1727 This reverts commit 617f591fc44e24413e1f91017d16734999bbbac1. 1728 1729 The problem described in that commit exists, but the two 1730 preceeding commits with improvements to the servers RandR 1731 code should avoid the mentioned problems while allowing the 1732 use of GAMMA_LUT's instead of legacy gamma lut. 1733 1734 Use of legacy gamma lut's is not a good fix, because it will reduce 1735 color output precision of gpu's with more than 1024 GAMMA_LUT 1736 slots, e.g., AMD, ARM MALI and KOMEDA with 4096 slot luts, 1737 and some Mediathek parts with 512 slot luts. On KOMEDA, legacy 1738 lut's are completely unsupported by the kms driver, so gamma 1739 correction gets disabled. 1740 1741 The situation is especially bad on Intel Icelake and later: 1742 Use of legacy gamma tables will cause the kms driver to switch 1743 to hardware legacy lut's with 256 slots, 8 bit wide, without 1744 interpolation. This way color output precision is restricted to 1745 8 bpc and any deep color / HDR output (10 bpc, fp16, fixed point 16) 1746 becomes impossible. The latest Intel gen gpu's would have worse 1747 color precision than parts which are more than 10 years old. 1748 1749 Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> 1750 (cherry picked from commit 545fa90cbf37a4c18f013dabc9f3bfb8310a5a98) 1751 1752 commit 473a48660fc8a326312df2d5925017ce8152c7db 1753 Author: Mario Kleiner <mario.kleiner.de@gmail.com> 1754 Date: Tue Sep 14 07:51:46 2021 +0200 1755 1756 xfree86: Let xf86RandR12CrtcComputeGamma() deal with non-power-of-2 sizes. 1757 1758 The assumption in the upsampling code was that the crtc->gamma_size 1759 size of the crtc's gamma table is a power of two. This is true for 1760 almost all current driver + gpu combos at least on Linux, with typical 1761 sizes of 256, 512, 1024 or 4096 slots. 1762 1763 However, Intel Gen-11 Icelake and later are outliers, as their gamma 1764 table has 2^18 + 1 slots, very big and not a power of two! 1765 1766 Try to make upsampling behave at least reasonable: Replicate the 1767 last gamma value to fill up remaining crtc->gamma_red/green/blue 1768 slots, which would normally stay uninitialized. This is important, 1769 because while the intel display driver does not actually use all 1770 2^18+1 values passed as part of a GAMMA_LUT, it does need the 1771 very last slot, which would not get initialized by the old code. 1772 1773 This should hopefully create reasonable behaviour with Icelake+ 1774 but is untested on the actual Intel hw due to lack of suitable 1775 hw. 1776 1777 Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> 1778 (cherry picked from commit 7326e131df3d1373dd796d9e2d931e81a3536bad) 1779 1780 commit b33f487a7ca276e11214eb45b87aab970ca43d79 1781 Author: Mario Kleiner <mario.kleiner.de@gmail.com> 1782 Date: Tue Sep 14 07:40:49 2021 +0200 1783 1784 xfree86: Avoid crash in xf86RandR12CrtcSetGamma() memcpy path. 1785 1786 If randrp->palette_size is zero, the memcpy() path can read past the 1787 end of the randr_crtc's gammaRed/Green/Blue tables if the hw crtc's 1788 gamma_size is greater than the randr_crtc's gammaSize. 1789 1790 Avoid this by clamping the to-be-copied size to the smaller of both 1791 sizes. 1792 1793 Note that during regular server startup, the memcpy() path is only 1794 taken initially twice, but then a suitable palette is created for 1795 use during a session. Therefore during an actual running X-Session, 1796 the xf86RandR12CrtcComputeGamma() will be used, which makes sure that 1797 data is properly up- or down-sampled for mismatching source and 1798 target crtc gamma sizes. 1799 1800 This should avoid reading past randr_crtc gamma memory for gpu's 1801 with big crtc->gamma_size, e.g., AMD/MALI/KOMEDA 4096 slots, or 1802 Intel Icelake and later with 262145 slots. 1803 1804 Tested against modesetting-ddx and amdgpu-ddx under screen color 1805 depth 24 (8 bpc) and 30 (10 bpc) to make sure that clamping happens 1806 properly. 1807 1808 This is an alternative fix for the one attempted in commit 1809 617f591fc44e24413e1f91017d16734999bbbac1. 1810 1811 Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> 1812 (cherry picked from commit 966f567432e91762382db09129f8fb4e2e434437) 1813 1814 commit d1ca47e1242b51c79cec7287f52c36c8e494706b 1815 Author: Olivier Fourdan <ofourdan@redhat.com> 1816 Date: Tue Sep 14 16:32:45 2021 +0200 1817 1818 glamor: Fix leak in glamor_build_program() 1819 1820 Fix the possible leak of `vs_prog_string` and `fs_prog_string` in case 1821 of failure, as reported by covscan. 1822 1823 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 1824 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 1825 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 1826 (cherry picked from commit 2906ee5e4a722138cccb3265a615da7705a52589) 1827 1828 commit d00e7dfc9da165810a578fa0910475686e1fa51c 1829 Author: Povilas Kanapickas <povilas@radix.lt> 1830 Date: Tue Sep 21 23:35:42 2021 +0300 1831 1832 xserver 21.1 RC 1 1833 1834 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 1835 1836 commit 4ee66f574a70948ca90a5db94dd666a389a5ff3e 1837 Author: Povilas Kanapickas <povilas@radix.lt> 1838 Date: Wed Sep 15 21:49:17 2021 +0300 1839 1840 Drop XWayland DDX 1841 1842 commit 72c5d153c920d769802ed73a1b9bfd0d32e7c178 1843 Author: Aaron Plattner <aplattner@nvidia.com> 1844 Date: Fri Sep 10 11:02:00 2021 -0700 1845 1846 xfree86: NUL-terminate strings in hwEnableIO 1847 1848 The Linux version of xf86EnableIO calls a helper function called hwEnableIO(). 1849 Except on Alpha, this function reads /proc/ioports looking for the 'keyboard' 1850 and 'timer' ports, extracts the port ranges, and enables access to them. It does 1851 this by reading 4 bytes from the string for the start port number and 4 bytes 1852 for the last port number, passing those to atoi(). However, it doesn't add a 1853 fifth byte for a NUL terminator, so some implementations of atoi() read past the 1854 end of this string, triggering an AddressSanitizer error: 1855 1856 ==1383==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fff71fd5b74 at pc 0x7fe1be0de3e0 bp 0x7fff71fd5ae0 sp 0x7fff71fd5288 1857 READ of size 5 at 0x7fff71fd5b74 thread T0 1858 #0 0x7fe1be0de3df in __interceptor_atoi /build/gcc/src/gcc/libsanitizer/asan/asan_interceptors.cpp:520 1859 #1 0x564971adcc45 in hwEnableIO ../hw/xfree86/os-support/linux/lnx_video.c:138 1860 #2 0x564971adce87 in xf86EnableIO ../hw/xfree86/os-support/linux/lnx_video.c:174 1861 #3 0x5649719f6a30 in InitOutput ../hw/xfree86/common/xf86Init.c:439 1862 #4 0x564971585924 in dix_main ../dix/main.c:190 1863 #5 0x564971b6246e in main ../dix/stubmain.c:34 1864 #6 0x7fe1bdab6b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24) 1865 #7 0x564971490e9d in _start (/home/aaron/git/x/xserver/build.asan/hw/xfree86/Xorg+0xb2e9d) 1866 1867 Address 0x7fff71fd5b74 is located in stack of thread T0 at offset 100 in frame 1868 #0 0x564971adc96a in hwEnableIO ../hw/xfree86/os-support/linux/lnx_video.c:118 1869 1870 This frame has 3 object(s): 1871 [32, 40) 'n' (line 120) 1872 [64, 72) 'buf' (line 122) 1873 [96, 100) 'target' (line 122) <== Memory access at offset 100 overflows this variable 1874 HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork 1875 (longjmp and C++ exceptions *are* supported) 1876 SUMMARY: AddressSanitizer: stack-buffer-overflow /build/gcc/src/gcc/libsanitizer/asan/asan_interceptors.cpp:520 in __interceptor_atoi 1877 Shadow bytes around the buggy address: 1878 0x10006e3f2b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1879 0x10006e3f2b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1880 0x10006e3f2b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1881 0x10006e3f2b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1882 0x10006e3f2b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1883 =>0x10006e3f2b60: 00 00 f1 f1 f1 f1 00 f2 f2 f2 00 f2 f2 f2[04]f3 1884 0x10006e3f2b70: f3 f3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1885 0x10006e3f2b80: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 1886 0x10006e3f2b90: f1 f1 f8 f2 00 f2 f2 f2 f8 f3 f3 f3 00 00 00 00 1887 0x10006e3f2ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 1888 0x10006e3f2bb0: f1 f1 00 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 1889 Shadow byte legend (one shadow byte represents 8 application bytes): 1890 Addressable: 00 1891 Partially addressable: 01 02 03 04 05 06 07 1892 Heap left redzone: fa 1893 Freed heap region: fd 1894 Stack left redzone: f1 1895 Stack mid redzone: f2 1896 Stack right redzone: f3 1897 Stack after return: f5 1898 Stack use after scope: f8 1899 Global redzone: f9 1900 Global init order: f6 1901 Poisoned by user: f7 1902 Container overflow: fc 1903 Array cookie: ac 1904 Intra object redzone: bb 1905 ASan internal: fe 1906 Left alloca redzone: ca 1907 Right alloca redzone: cb 1908 Shadow gap: cc 1909 ==1383==ABORTING 1910 1911 Fix this by NUL-terminating the string. 1912 1913 Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1193#note_1053306 1914 Signed-off-by: Aaron Plattner <aplattner@nvidia.com> 1915 1916 commit 617f591fc44e24413e1f91017d16734999bbbac1 1917 Author: Aaron Plattner <aplattner@nvidia.com> 1918 Date: Thu Sep 9 15:29:50 2021 -0700 1919 1920 modesetting: Only use GAMMA_LUT if its size is 1024 1921 1922 GAMMA_LUT sizes other than 1024 cause a crash during startup if the memcpy() 1923 calls in xf86RandR12CrtcSetGamma() read past the end of the legacy X11 / 1924 XVidMode gamma ramp. 1925 1926 This is a problem on Intel ICL / GEN11 platforms because they report a GAMMA_LUT 1927 size of 262145. Since it's not clear that the modesetting driver will generate a 1928 proper gamma ramp at that size even if xf86RandR12CrtcSetGamma() is fixed, just 1929 disable use of GAMMA_LUT for sizes other than 1024 for now. This will cause the 1930 modesetting driver to disable the CTM property and fall back to the legacy gamma 1931 LUT. 1932 1933 Signed-off-by: Aaron Plattner <aplattner@nvidia.com> 1934 Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1193 1935 Tested-by: Mark Herbert 1936 1937 commit e59e24c8779de65db87b8c07bc3f2abb479be082 1938 Author: Povilas Kanapickas <povilas@radix.lt> 1939 Date: Mon Sep 6 22:41:32 2021 +0300 1940 1941 glamor: Fix handling of 1-bit pixmaps 1942 1943 Since 8702c938b33b9ec180d64754eb922515c7c4a98b the pixmap formats are 1944 handled in a single place. In the process of conversion the difference 1945 between pixmap formats that can be uploaded and those that can be 1946 rendered on GL side has been lost. This affects only 1-bit pixmaps: as 1947 they aren't supported on GL, but can be converted to a R8 or A8 format 1948 for rendering (see glamor_get_tex_format_type_from_pictformat()). 1949 1950 To work around this we add a separate flag that specifies whether the 1951 format actually supports rendering in GL, convert all checks to use this 1952 flag and then add 1-bit pixmap formats that don't support rendering in 1953 GL. 1954 1955 Fixes: 8702c938b33b9ec180d64754eb922515c7c4a98b 1956 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1210 1957 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 1958 Tested-by: Olivier Fourdan <ofourdan@redhat.com> 1959 Reviewed-by: Adam Jackson <ajax@redhat.com> 1960 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 1961 1962 commit 68f01c0f02ece4f6efe9ce18be81244246a1e114 1963 Author: Mario Kleiner <mario.kleiner.de@gmail.com> 1964 Date: Mon Aug 30 05:42:04 2021 +0200 1965 1966 modesetting: Add option for non-vsynced flips for "secondary" outputs. 1967 1968 Whenever an unredirected fullscreen window uses pageflipping for a 1969 DRI3/Present PresentPixmap() operation and the X-Screen has more than 1970 one active output, multiple crtc's need to execute pageflips. Only 1971 after the last flip has completed can the PresentPixmap operation 1972 as a whole complete. 1973 1974 If a sync_flip is requested for the present, then the current 1975 implementation will synchronize each pageflip to the vblank of 1976 its associated crtc. This provides tear-free image presentation 1977 across all outputs, but introduces a different artifact, if not 1978 all outputs run at the same refresh rate with perfect synchrony: 1979 The slowest output throttles the presentation rate, and present 1980 completion is delayed to flip completion of the "latest" output 1981 to complete. This means degraded performance, e.g., a dual-display 1982 setup with a 144 Hz monitor and a 60 Hz monitor will always be 1983 throttled to at most 60 fps. It also means non-constant present 1984 rate if refresh cycles drift against each other, creating complex 1985 "beat patterns", tremors, stutters and periodic slowdowns - quite 1986 irritating! 1987 1988 Such a scenario will be especially annoying if one uses multiple 1989 outputs in "mirror mode" aka "clone mode". One output will usually 1990 be the "production output" with the highest quality and fastest 1991 display attached, whereas a secondary mirror output just has a 1992 cheaper display for monitoring attached. Users care about perfect 1993 and perfectly timed tear-free presentation on the "production output", 1994 but cares less about quality on the secondary "mirror output". They 1995 are willing to trade quality on secondary outputs away in exchange 1996 for better presentation timing on the "production output". 1997 1998 One example use case for such production + monitoring displays are 1999 neuroscience / medical science applications where one high quality 2000 display device is used to present visual animations to test subjects 2001 or patients in a fMRI scanner room (production display), whereas 2002 an operator monitors the same visual animations from a control room 2003 on a lower quality display. Presentation timing needs to be perfect, 2004 and animations high-speed and tear-free for the production display, 2005 whereas quality and timing don't matter for the monitoring display. 2006 2007 This commit gives users the option to choose such a trade-off as 2008 opt-in: 2009 2010 It adds a new boolean option "AsyncFlipSecondaries" to the device section 2011 of xorg.conf. If this option is specified as true, then DRI3 pageflip 2012 behaviour changes as follows: 2013 2014 1. The "reference crtc" for a windows PresentPixmap operation does a 2015 vblank synced flip, or a DRM_MODE_PAGE_FLIP_ASYNC non-synchronized 2016 flip, as requested by the caller, just as in the past. Typically 2017 flips will be requested to be vblank synchronized for tear-free 2018 presentation. The "reference crtc" is the one chosen by the caller 2019 to drive presentation timing (as specified by PresentPixmap()'s 2020 "target_msc", "divisor", "remainder" parameters and implemented by 2021 vblank events) and to deliver Present completion timestamps (msc 2022 and ust) extracted from its pageflip completion event. 2023 2024 2. All other crtc's, which also page-flip in a multi-display configuration, 2025 will try to flip with DRM_MODE_PAGE_FLIP_ASYNC, ie. immediately and 2026 not synchronized to vblank. This allows the PresentPixmap operation 2027 to complete with little delay compared to a single-display present, 2028 especially if the different crtc's run at different video refresh 2029 rates or their refresh cycles are not perfectly synchronized, but 2030 drift against each other. The downside is potential tearing artifacts 2031 on all outputs apart from the one of the "reference crtc". 2032 2033 Successfully tested on a AMD gpu with single-display, dual-display and 2034 triple-display setups, and with single-X-Screen as well as dual-X-Screen 2035 "ZaphodHeads" configurations. 2036 2037 Please consider merging this commit for the upcoming server 1.21 branch. 2038 2039 Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> 2040 2041 commit 1fd5dec11bbb85e87f70a39f1c1b59af95a7feaf 2042 Author: Ignacio Casal Quinteiro <qignacio@amazon.com> 2043 Date: Tue Sep 7 16:58:10 2021 +0200 2044 2045 touchevents: set the screen pointer after checking the device is enabled 2046 2047 If the device is disabled the sprite is NULL so we get a seg fault 2048 2049 commit b3b81c8c2090cd49410960a021baf0d27fdd2ab3 2050 Author: Povilas Kanapickas <povilas@radix.lt> 2051 Date: Fri Sep 3 14:33:15 2021 +0300 2052 2053 Drop DMX DDX 2054 2055 It turns out xdmx currently crashes when any client attempts to use GL 2056 and it has been in such state for about 14 years. There was a patch to 2057 fix the problem [1] 4 years ago, but it never got merged. The last 2058 activity on any bugs referring to xdmx has been more than 4 years ago. 2059 2060 Given such situation, I find it unlikely that anyone is still using xdmx 2061 and just having the code is a drain of resources. 2062 2063 [1]: https://lists.x.org/archives/xorg-devel/2017-June/053919.html 2064 2065 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 2066 2067 commit 8f8ebf870b55c9875b7cfd8ef69c1df02d589b4a 2068 Author: Mario Kleiner <mario.kleiner.de@gmail.com> 2069 Date: Sat Aug 28 02:27:20 2021 +0200 2070 2071 modesetting: Allow Present flips with mismatched stride on atomic drivers. 2072 2073 When using DRI3+Present with PRIME render offload, sometimes there is 2074 a mismatch between the stride of the to-be-presented Pixmap and the 2075 frontbuffer. The current code would reject a pageflip present in this 2076 case if atomic modesetting is not enabled, ie. always, as atomic 2077 modesetting is disabled by default due to brokeness in the current 2078 modesetting-ddx. 2079 2080 Fullscreen presents without page flipping however trigger the copy 2081 path as fallback, which causes not only unreliable presentation timing 2082 and degraded performance, but also massive tearing artifacts due to 2083 rendering to the framebuffer without any hardware sync to vblank. 2084 Tearing is extra awful on modesetting-ddx because glamor afaics seems 2085 to use drawing of a textured triangle strip for the copy implementation, 2086 not a dedicated blitter engine. The rasterization pattern creates extra 2087 awful tearing artifacts. 2088 2089 We can do better: According to a tip from Michel Daenzer (thanks!), 2090 at least atomic modesetting capable kms drivers should be able to 2091 reliably change scanout stride during a pageflip, even if atomic 2092 modesetting is not actually enabled for the modesetting client. 2093 2094 This commit adds detection logic to find out if the underlying kms 2095 driver is atomic_modeset_capable, and if so, it no longer rejects 2096 page flip presents on mismatched stride between new Pixmap and 2097 frontbuffer. 2098 2099 We (ab)use a call to drmSetClientCap(ms->fd, DRM_CLIENT_CAP_ATOMIC, 0); 2100 for this purpose. The call itself has no practical effect, as it 2101 requests disabling atomic mode, although atomic mode is disabled by 2102 default. However, the return value of drmSetClientCap() tells us if the 2103 underlying kms driver is atomic modesetting capable: An atomic driver 2104 will return 0 for success. A legacy non-atomic driver will return a 2105 non-zero error code, either -EINVAL for early atomic Linux versions 2106 4.0 - 4.19 (or for non-atomic Linux 3.x and earlier), or -EOPNOTSUPP 2107 for Linux 4.20 and later. 2108 2109 Testing on a MacBookPro 2017 with Intel Kabylake display server gpu + 2110 AMD Polaris11 as prime renderoffload gpu, X-Server master + Mesa 21.0.3 2111 show improvement from unbearable tearing to perfect, despite a stride 2112 mismatch between display gpu and Pixmap of 11776 Bytes vs. 11520 2113 Bytes. That this is correct behaviour was also confirmed by comparing the 2114 behaviour and .check_flip implementation of the patched modesetting-ddx 2115 against the current intel-ddx SNA Present implementation. 2116 2117 Please consider merging this patch before the server-1.21 branch point. 2118 This patch could also be cherry-picked into the server 1.20 branch to 2119 fix the same limitation. 2120 2121 Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> 2122 2123 commit 7d34b1f2b7c612c3171e0b9758b5fc094bc33f63 2124 Author: Simon Ser <contact@emersion.fr> 2125 Date: Fri Jun 18 11:04:45 2021 +0200 2126 2127 xwayland: add -noTouchPointerEmulation 2128 2129 In some scenarios, the Wayland compositor might have more knowledge 2130 than the X11 server and may be able to perform pointer emulation for 2131 touch events better. Add a command-line switch to allow compositors 2132 to turn Xwayland pointer emulation off. 2133 2134 Signed-off-by: Simon Ser <contact@emersion.fr> 2135 2136 commit 7c63c582a17b206a33b57a70dd61e7919a6ef9fe 2137 Author: Mario Kleiner <mario.kleiner.de@gmail.com> 2138 Date: Thu Aug 26 17:06:49 2021 +0200 2139 2140 Revert "glamor: Enable modifier support for xfree86 too" 2141 2142 This reverts commit 9b8999411033c9473cd68e92e4690a91aecf5b95. 2143 2144 Turns out that defaulting glamor_egl->dmabuf_capable = TRUE 2145 breaks kms page-flipping on various Mesa+Linux/DRM-KMS+hardware 2146 combos, resulting in broken presentation timing, degraded performance 2147 and awful tearing. E.g., my testing shows that X-Server master + 2148 Mesa 21.2 + Linux 5.3 on Intel Kabylake has broken pageflipping. 2149 Similar behaviour was observed in the past on RaspberryPi 4/400 2150 with VideoCore-6 by myself and others, and iirc by myself on some 2151 AMD gpu's, although my memories of the latter are a bit dim. 2152 2153 Cfe. https://gitlab.freedesktop.org/mesa/mesa/-/issues/3601 and 2154 possibly https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/254 2155 for related problems. 2156 2157 The reason for pageflip failure on the modesetting-ddx under 2158 DRI3/Present seems to be the following sequence: 2159 2160 1. Atomic modesetting for the modesetting-ddx is broken and therefore 2161 both disabled by default in the modesetting-ddx itself and also 2162 force-disabled by the Linux kernel since quite a while. If the kernel 2163 detects drmSetClientCap(fd, DRM_CLIENT_CAP_ATOMIC, 1); from the 2164 X-Server, it will reject the request, as a countermeasure to all the 2165 past and current brokeness. 2166 2167 2. Without DRM_CLIENT_CAP_ATOMIC we don't get the implied universal 2168 planes support (DRM_CLIENT_CAP_UNIVERSAL_PLANES). 2169 2170 3. Without DRM_CLIENT_CAP_UNIVERSAL_PLANES, drmModeGetPlaneResources() 2171 will only return overlay planes, but not primary- or cursor planes. 2172 2173 4. As modesetting-ddx drmmode_crtc_create_planes() function can only 2174 operate on primary planes, but can't get any from drmModeGetPlaneResources(), 2175 the drmmode_crtc_create_planes() mostly turns into a no-op, never 2176 executes populate_format_modifiers() and therefore the Linux kernels 2177 DRM-KMS driver is not ever queried for the list of scanout/pageflip 2178 capable DRM format modifiers. Iow. the drmmode_crtc->formats[i].modifiers 2179 list stays empty with zero drmmode_crtc->formats[i].num_modifiers. 2180 2181 5. The list from step 4 provides the format+modifiers for intersection 2182 which would get returned by the X-Servers DRI3 backend as response to 2183 a xcb_dri3_get_supported_modifiers_window_modifiers() request. Given 2184 an empty list was returned in step 4, this will lead to return of an 2185 empty modifiers list by xcb_dri3_get_supported_modifiers_window_modifiers(). 2186 2187 6. Both Mesa's DRI3/Present OpenGL backbuffer allocation logic and iirc 2188 Mesa/Vulkan/WSI/X11's swapchain image allocation logic use the list 2189 from xcb_dri3_get_supported_modifiers_window_modifiers() for format+ 2190 modifier selection for scanout/pageflip capable buffers. Cfe. Mesa's 2191 dri3_alloc_render_buffer() function. 2192 2193 Due to the empty list, the Mesa code falls back to the format+modifiers 2194 reported by xcb_dri3_get_supported_modifiers_screen_modifiers() 2195 instead. This list contains all modifiers reported by GLAMOR as 2196 result of glamor_get_formats() and glamor_get_modifiers(), which 2197 in turn are query results from Mesa eglQueryDmaBufFormatsEXT() 2198 and eglQueryDmaBufModifiersEXT(). Iow. all format+modifiers which 2199 are supported for rendering are considered for the OpenGL backbuffers 2200 and Vulkan swapchain buffers. 2201 2202 7. Depending on kms driver + gpu combo and Mesa version, such buffers 2203 are often not direct-scanout / pageflip capable, and so pageflipping 2204 can't be used for DRI3/Present of fullscreen windows. Whenever the 2205 system has to fallback to copies instead of pageflips, the results 2206 are broken presentation timing, degraded performance and quite 2207 horrible tearing, as the current DRI3/Present implementation does not 2208 perform any hardware synchronization of copy presents to the start 2209 of vblank or similar. 2210 2211 By defaulting glamor_egl->dmabuf_capable = FALSE instead, as the server 2212 1.20 branch does, we avoid this failure: 2213 2214 1. glamor_get_modifiers() turns into a no-op and returns false, not 2215 reporting any supported dmabuf modifiers to the servers DRI3 code, 2216 ie. the servers cache_formats_and_modifiers() function can't retrieve 2217 and cache any format+modifiers. Therefore the servers DRI3 code now 2218 also reports an empty format+modifiers list when Mesa does a 2219 xcb_dri3_get_supported_modifiers_screen_modifiers() query. 2220 2221 2. Mesa's buffer allocation code therefore falls back to using the old 2222 DRI image extensions createImage() function to allocate buffers 2223 with use flags __DRI_IMAGE_USE_SCANOUT | __DRI_IMAGE_USE_BACKBUFFER 2224 and our OpenGL backbuffers / Vulkan swapchain images get allocated 2225 in a direct-scanout / pageflip capable format. Pageflipping works, 2226 timing and performance is good, presentation is tear-free. 2227 2228 Please consider merging this for branching the X-Server 1.21 branch. 2229 2230 Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> 2231 2232 commit c5a9287dcf8d77ab104d56ac27ad6b1ff957fdfb 2233 Author: Jon Turney <jon.turney@dronecode.org.uk> 2234 Date: Wed May 12 16:51:26 2021 +0100 2235 2236 Don't underlink inputtest on targets which require complete linkage 2237 2238 Don't underlink inputtest on targets which require complete linkage 2239 (e.g. when building for PE/COFF) 2240 2241 commit d68b50ec032fe4f02bde817abfd30328ec96a11c 2242 Author: Jon Turney <jon.turney@dronecode.org.uk> 2243 Date: Sat Jul 10 17:38:01 2021 +0100 2244 2245 Fix compilation with windows.h from latest w32api 2246 2247 misc.h has complex logic (checking MAXSHORT is undefined etc.) 2248 controlling if it includes assert.h or not. 2249 2250 Including windows.h from w32api 9.0.0 now trips over that, causing 2251 assert.h to not be included, causing various errors, e.g. 2252 2253 In file included from ../include/cursor.h:53, 2254 from ../include/dix.h:54, 2255 from ../os/osdep.h:139, 2256 from ../hw/xwin/winauth.c:40: 2257 ../include/privates.h: In function ‘dixGetPrivateAddr’: 2258 ../include/privates.h:121:5: error: implicit declaration of function ‘assert’ [-Werror=implicit-function-declaration] 2259 2260 Fix this by IWYU in privates.h 2261 2262 commit ab86be0ed9233d6683daf00d359c562b12e137c8 2263 Author: Mario Kleiner <mario.kleiner.de@gmail.com> 2264 Date: Fri Aug 27 19:27:29 2021 +0200 2265 2266 modesetting: Fix VRR window property handling. 2267 2268 A misplaced error check can cause this failure scenario, and does 2269 so reliably as tested on Ubuntu 21.04 with KDE Plasma 5 desktop 2270 within the first few seconds of login session startup, rendering 2271 VRR under modesetting-ddx unusable: 2272 2273 1. Some X11 client application changes some window property. 2274 2275 2. ms_change_property() is called as part of the property change 2276 handling call chain (client->requestVector[X_ChangeProperty]). 2277 It removes itself temporarily from the call chain - or so it 2278 thinks, hooking up saved_change_property instead. 2279 2280 3. ret = saved_change_property(client) is called and fails 2281 temporarily for some non-critical reason. 2282 2283 4. The misplaced error check returns early (error abort), without 2284 first restoring ms_change_property() as initial X_ChangeProperty 2285 handler in the call chain again. 2286 2287 -> Now ms_change_property() has removed itself permanently from the 2288 property handler call chain for the remainder of the X session 2289 and VRR property changes on windows are no longer handled, ie. 2290 VRR no longer gets enabled/disabled in response to window VRR 2291 property changes. 2292 2293 Place the error check at the proper place, just as it is correctly 2294 done by amdgpu-ddx, and in modesetting-ddx ms_delete_property() 2295 function. 2296 2297 Verified to fix VRR handling with an AMD gpu under KDE desktop 2298 session. 2299 2300 Please consider merging before branching the server 1.21 branch. 2301 2302 Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> 2303 2304 commit 18d3131f9a332096825c09106a931c427246ddb7 2305 Author: Povilas Kanapickas <povilas@radix.lt> 2306 Date: Thu Aug 5 22:43:54 2021 +0300 2307 2308 meson: Implement developer documentation build 2309 2310 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 2311 2312 commit 722da1c62caad961ce09fc226daf84465f4b7a7e 2313 Author: Povilas Kanapickas <povilas@radix.lt> 2314 Date: Fri Aug 6 15:21:53 2021 +0300 2315 2316 meson: Add option to disable libdrm support 2317 2318 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 2319 2320 commit 1f720dc9a319bb66e2f5f28568614e81aa9e9e4d 2321 Author: Adam Jackson <ajax@redhat.com> 2322 Date: Tue Aug 17 16:06:57 2021 -0400 2323 2324 dmx: Fix some redeclaration warnings from gcc 11 2325 2326 Of the form: 2327 2328 ../hw/dmx/config/xdmxconfig.c:68:26: warning: redundant redeclaration of ‘dmxConfigEntry’ [-Wredundant-decls] 2329 68 | extern DMXConfigEntryPtr dmxConfigEntry; 2330 | ^~~~~~~~~~~~~~ 2331 2332 commit b49f0f9b323d66056aa9cd88f9ca1a124037bf32 2333 Author: Adam Jackson <ajax@redhat.com> 2334 Date: Tue Aug 17 16:04:40 2021 -0400 2335 2336 xkb: Silence a warning from gcc 11 2337 2338 I get this: 2339 2340 In function ‘TryCopyStr’, 2341 inlined from ‘CopyISOLockArgs’ at ../xkb/xkbtext.c:875:9: 2342 ../xkb/xkbtext.c:720:13: warning: ‘tbuf’ may be used uninitialized [-Wmaybe-uninitialized] 2343 720 | strcat(to, from); 2344 | ^~~~~~~~~~~~~~~~ 2345 ../xkb/xkbtext.c: In function ‘CopyISOLockArgs’: 2346 <built-in>: note: by argument 1 of type ‘const char *’ to ‘__builtin_strlen’ declared here 2347 ../xkb/xkbtext.c:871:10: note: ‘tbuf’ declared here 2348 871 | char tbuf[64]; 2349 | ^~~~ 2350 2351 Just initialize tbuf so it definitely works. 2352 2353 commit c1138d8ec8d029de54261e355c0e5da0b001044a 2354 Author: Adam Jackson <ajax@redhat.com> 2355 Date: Fri Jul 9 15:30:16 2021 -0400 2356 2357 xinput: Silence a warning from gcc 11 2358 2359 [45/388] Compiling C object Xi/liblibxserver_xi.a.p/xichangehierarchy.c.o 2360 ../Xi/xichangehierarchy.c:61:32: warning: argument 1 of type ‘int[256]’ with mismatched bound [-Warray-parameter=] 2361 61 | XISendDeviceHierarchyEvent(int flags[MAXDEVICES]) 2362 | ~~~~^~~~~~~~~~~~~~~~~ 2363 In file included from ../Xi/xichangehierarchy.c:54: 2364 ../Xi/xichangehierarchy.h:42:37: note: previously declared as ‘int[]’ 2365 42 | void XISendDeviceHierarchyEvent(int flags[]); 2366 | ~~~~^~~~~~~ 2367 2368 commit f3a98334e6a56858853f3894b0f48ee040741410 2369 Author: Adam Jackson <ajax@redhat.com> 2370 Date: Fri Jul 9 15:26:47 2021 -0400 2371 2372 selinux: Stop using security_context_t 2373 2374 This is apparently deprecated now and is and was always just char *. 2375 2376 commit 6f63873da55de33e51c1f6849a65501e380f19bc 2377 Author: Simon Ser <contact@emersion.fr> 2378 Date: Mon Jul 5 15:30:16 2021 +0200 2379 2380 xwayland: fix xdg_output leak 2381 2382 The xdg_output wasn't cleaned up when destroying the xwl_output. 2383 2384 Signed-off-by: Simon Ser <contact@emersion.fr> 2385 2386 commit 659260a0b7c1cef6060bd62a83deb03e3fa472b1 2387 Author: Demi Marie Obenour <demi@invisiblethingslab.com> 2388 Date: Fri Aug 6 13:23:08 2021 -0400 2389 2390 More missing version checks in SProcs 2391 2392 The bug in XFixes was also found in GenericEvent and Damage. 2393 2394 commit e4dabe8d9395d60699aa9831626920adaa847680 2395 Author: Roman Gilg <subdiff@gmail.com> 2396 Date: Sat Aug 7 14:15:07 2021 +0200 2397 2398 Remove build-only include from public header 2399 2400 The dix-config.h file is not installed, but dix.h is. The include makes the 2401 compilation of external drivers fail (for example the libinput driver). 2402 2403 The Xserver compilation also works without the include, so just remove it. 2404 2405 Signed-off-by: Roman Gilg <subdiff@gmail.com> 2406 2407 commit 31fb35a7afc782e857bf60e524e7d966dbcd2551 2408 Author: Demi Marie Obenour <demi@invisiblethingslab.com> 2409 Date: Tue Jul 20 22:58:42 2021 -0400 2410 2411 XFixes: add version check for byteswapped clients 2412 2413 The version check for byteswapped clients was missing. 2414 2415 commit 7eba412072afdc9d27896410872e40364a8010bf 2416 Author: Olivier Fourdan <ofourdan@redhat.com> 2417 Date: Fri Mar 26 15:48:23 2021 +0100 2418 2419 xfree86: Move xf86CVTMode() function 2420 2421 The xf86CVTMode() was implemented in a standalone source file because it 2422 was being used for both the xfree86 API and the standalone cvt utility. 2423 2424 Now that the cvt utility is removed (as part of libxcvt) we can move the 2425 small xf86CVTMode() function with the rest of the xf86Modes sources. 2426 2427 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1142 2428 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 2429 Reviewed-by: Matt Turner <mattst88@gmail.com> 2430 2431 commit f2781e95369583259991cd3add6f90f33be32171 2432 Author: Olivier Fourdan <ofourdan@redhat.com> 2433 Date: Thu Mar 25 10:27:31 2021 +0100 2434 2435 xfree86/cvt: Drop cvt utility 2436 2437 The cvt utility is now replaced by the standalone version found in 2438 libxcvt, no need to build the one in xfree86 anymore. 2439 2440 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1142 2441 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 2442 Reviewed-by: Matt Turner <mattst88@gmail.com> 2443 2444 commit f788289bdcc4f04bd2fb62552df1c8c1ae0aea45 2445 Author: Olivier Fourdan <ofourdan@redhat.com> 2446 Date: Thu Mar 25 10:19:55 2021 +0100 2447 2448 xfree86: Use libxcvt 2449 2450 Replace the local implementation of the VESA CVT standard timing 2451 modelines generator with the one from libxct to avoid code duplication. 2452 2453 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1142 2454 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 2455 Reviewed-by: Matt Turner <mattst88@gmail.com> 2456 2457 commit 6ea2c001f9d23c91113b937fb99053e262d21df6 2458 Author: Olivier Fourdan <ofourdan@redhat.com> 2459 Date: Thu Mar 25 10:17:49 2021 +0100 2460 2461 xwayland: Use libxcvt 2462 2463 Xwayland is using a copy of the CVT generator found in Xorg. 2464 2465 Rather than duplicating the code within the xserver tree, use the 2466 libxcvt implementation instead. 2467 2468 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1142 2469 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 2470 Reviewed-by: Matt Turner <mattst88@gmail.com> 2471 2472 commit a4ab57cb748674823744a8ef5a0b416ee553efe8 2473 Author: Olivier Fourdan <ofourdan@redhat.com> 2474 Date: Thu Mar 25 10:16:31 2021 +0100 2475 2476 build: Add dependency on libxcvt 2477 2478 libxcvt is a library providing a standalone version of the X server 2479 implementation of the VESA CVT standard timing modelines generator. 2480 2481 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1142 2482 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 2483 Reviewed-by: Matt Turner <mattst88@gmail.com> 2484 2485 commit 84897891e5e7eb44068cda22284dca70c6cfd1a2 2486 Author: Olivier Fourdan <ofourdan@redhat.com> 2487 Date: Fri Jul 9 15:11:51 2021 +0200 2488 2489 ci: Install libxcvt from git 2490 2491 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 2492 2493 commit 5c2592cbb19f996c4bb87bca4e4e46ab911d4bec 2494 Author: Demi Marie Obenour <demi@invisiblethingslab.com> 2495 Date: Tue Jul 20 22:37:26 2021 -0400 2496 2497 Add do-while loops to DIX macros 2498 2499 This ensures they will behave properly in conditionals and always 2500 require a trailing semicolon. 2501 2502 commit d83c84bd9dc7fbd3588ce70b0c8bf0f63ed29ff3 2503 Author: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk> 2504 Date: Fri Jul 23 09:24:50 2021 +0100 2505 2506 Mark the dixChangeWindowProperty() value argument as const 2507 2508 It is copied using memcpy() and not modified so we can add const. This 2509 fixes a -Wincompatible-pointer-types-discards-qualifiers compiler warning 2510 that was failing a -Werror XVnc build for me. 2511 2512 Signed-off-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk> 2513 2514 commit fb5322ce2819260c07e06ab22b47df0a5d19f07d 2515 Author: Zoltán Böszörményi <zboszor@gmail.com> 2516 Date: Thu Jul 8 06:14:21 2021 +0200 2517 2518 glamoregl: Initialize glamor on the main device 2519 2520 This allows e.g. an UDL device (driven by llvmpipe) to be automatically 2521 set up with GPU acceleration via reverse PRIME. 2522 2523 The result is e.g.: 2524 2525 # DISPLAY=:0.2 xrandr --listproviders 2526 Providers: number : 2 2527 Provider 0: id: 0xec cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 1 outputs: 1 associated providers: 1 name:modesetting 2528 Provider 1: id: 0x12c cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 1 name:Intel 2529 2530 Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com> 2531 2532 commit f08bc32f5abc23ea715c15e8e86150434cc99e4f 2533 Author: Zoltán Böszörményi <zboszor@gmail.com> 2534 Date: Thu Jul 8 06:13:24 2021 +0200 2535 2536 xf86: Assign GPUs to screens according to configuration 2537 2538 If there is an explicit configuration, assign the RandR provider 2539 of the GPUDevice to the screen it was specified for. 2540 2541 If there is no configuration (default case) the screen number is 2542 still 0 so it doesn't change behaviour. 2543 2544 The result is e.g: 2545 2546 # DISPLAY=:0.2 xrandr --listproviders 2547 Providers: number : 2 2548 Provider 0: id: 0xd2 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting 2549 Provider 1: id: 0xfd cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 0 name:Intel 2550 2551 Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com> 2552 2553 commit cd567415cc5645f8cdc78e85e8887e5cce76e6d7 2554 Author: Zoltán Böszörményi <zboszor@gmail.com> 2555 Date: Thu Jul 8 06:09:44 2021 +0200 2556 2557 xf86: Extract screen configuration matching into its own function 2558 2559 Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com> 2560 2561 commit 16571b8926a5a7ba5a1885b36a16857addbe8f41 2562 Author: Boris-Barboris <ismailsiege@gmail.com> 2563 Date: Tue Jun 22 00:51:08 2021 +0300 2564 2565 Don't hardcode fps for fake screen 2566 2567 Currently, when main hardware screen is powered-off, 2568 X server initializes fake screen's timer with 2569 1 second update interval. 2570 2571 Streaming software like Nomachine or Vnc, as well as 2572 desktop input automation suffers from it, since it 2573 will forever be stuck on 1 fps until the display is 2574 turned back on. 2575 2576 This commit adds command line option -fakescreenfps <int> 2577 that allows the user to change the default fake screen 2578 timer. 2579 2580 Signed-off-by: Baranin Alexander <ismailsiege@gmail.com> 2581 2582 commit 8836b9d243444031b6396d39d345f2f83b5fa6a9 2583 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 2584 Date: Thu Jul 22 13:12:05 2021 +0200 2585 2586 modesetting: unflip not possible when glamor is not set 2587 2588 This is fixing crashes of xfce when running under qemu 2589 2590 commit d6c02ffd9c910637f6b3b7249507998e9e45f93c 2591 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 2592 Date: Mon Jul 19 14:25:28 2021 +0200 2593 2594 present: fallback get_crtc to return crtc belonging to screen with present extension 2595 2596 Since crtc can belong to secondary output that may not have present 2597 extension enabled we should fallback to first enabled crtc or fake crtc. 2598 2599 Fix for issue xorg/xserver#1195 2600 2601 commit f6f2f203bcde47c334836191982d77bbbbbf533c 2602 Author: Michel Dänzer <mdaenzer@redhat.com> 2603 Date: Thu May 20 19:00:10 2021 +0200 2604 2605 present: Drop flip_idler member from present_vblank_rec 2606 2607 It's redundant with the pixmap member of struct xwl_present_event. 2608 2609 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2610 2611 commit 212cfbcf68d279f2b3494e79fe8e3fbaabeba77c 2612 Author: Michel Dänzer <mdaenzer@redhat.com> 2613 Date: Wed May 12 15:25:51 2021 +0200 2614 2615 xwayland/present: Use present_vblank_ptr instead of xwl_present_event* 2616 2617 Where the latter isn't really needed. 2618 2619 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2620 2621 commit fe8c7855f3a85f156c792a3f18a175138407054b 2622 Author: Michel Dänzer <mdaenzer@redhat.com> 2623 Date: Wed May 12 12:51:32 2021 +0200 2624 2625 xwayland/present: Fold xwl_present_release_event into _free_event 2626 2627 The only difference was unhooking from the vblank.event_queue list, 2628 which is already done by xwl_present_flip_notify_vblank in 2629 xwl_present_msc_bump. 2630 2631 commit 31d2ebca77fcabec81194ae6dcd724c699b1b513 2632 Author: Michel Dänzer <mdaenzer@redhat.com> 2633 Date: Mon May 10 18:33:43 2021 +0200 2634 2635 xwayland/present: Drop target_msc member from struct xwl_present_event 2636 2637 Use present_vblank_rec::exec_msc instead. 2638 2639 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2640 2641 commit 495ec596640e26b6995c93eedc922d2702ad64ad 2642 Author: Michel Dänzer <mdaenzer@redhat.com> 2643 Date: Mon May 10 19:04:07 2021 +0200 2644 2645 xwayland/present: Drop pending member from struct xwl_present_event 2646 2647 We are handling two cases here: the active flip or the pending flip. 2648 2649 For the pending flip (event->pending == TRUE), we called 2650 xwl_present_release_pixmap. 2651 2652 For the active flip (event->pending == FALSE), we called 2653 xwl_present_release_event. However, xwl_present_flip_notify_vblank 2654 already unhooked event->vblank.event_queue. So this was effectively the 2655 same as calling xwl_present_release_pixmap. 2656 2657 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2658 2659 commit f73340445fe1da9ae9bc3197eb2ef41589aa2a4e 2660 Author: Michel Dänzer <mdaenzer@redhat.com> 2661 Date: Fri May 7 18:16:23 2021 +0200 2662 2663 xwayland/present: Drop list member from struct xwl_present_event 2664 2665 Use present_vblank_rec::event_queue instead. 2666 2667 The changes in xwl_present_execute shouldn't really be needed, since 2668 we should never hit queue_vblank in present_execute_wait. But let's be 2669 safe rather than sorry, plus this simplifies the code. 2670 2671 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2672 2673 commit aac31d2758d4e84774b633ec108d18f0bad6ef64 2674 Author: Michel Dänzer <mdaenzer@redhat.com> 2675 Date: Fri May 7 17:58:27 2021 +0200 2676 2677 xwayland/present: Drop exec_queue member from struct xwl_present_window 2678 2679 Doesn't serve any purpose anymore. 2680 2681 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2682 2683 commit f8c086b2145d1c9364e9b43ff4d796791d8af169 2684 Author: Michel Dänzer <mdaenzer@redhat.com> 2685 Date: Fri May 7 17:55:13 2021 +0200 2686 2687 xwayland/present: Fold xwl_present_event_notify into its caller 2688 2689 Can just call xwl_present_execute directly. 2690 2691 This allows dropping the window member from struct xwl_present_window as 2692 well. 2693 2694 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2695 2696 commit c30f3d08acb01a41df0fe7176f237137f3039480 2697 Author: Michel Dänzer <mdaenzer@redhat.com> 2698 Date: Fri May 7 17:49:07 2021 +0200 2699 2700 xwayland/present: Use exec_queue for deferring completion events 2701 2702 We clear the vblank->pixmap field, so next time xwl_present_execute 2703 falls through to present_execute_post. 2704 2705 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2706 2707 commit 4503c8d9ea7df5bda470501e638a730d91d718c9 2708 Author: Michel Dänzer <mdaenzer@redhat.com> 2709 Date: Fri May 7 12:56:30 2021 +0200 2710 2711 xwayland/present: Fold xwl_present_idle_notify into its caller 2712 2713 Allows simplification by avoiding indirection. 2714 2715 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2716 2717 commit b2a06e0700fa48c1e77fc687e6af39a4bb7c2ceb 2718 Author: Michel Dänzer <mdaenzer@redhat.com> 2719 Date: Fri May 7 12:34:49 2021 +0200 2720 2721 xwayland/present: Drop sync_flip member of struct xwl_present_window 2722 2723 The same information can be determined from the flip queue. 2724 2725 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2726 2727 commit fc53e3c536b5a338c595b5724c7d0b4734e45871 2728 Author: Michel Dänzer <mdaenzer@redhat.com> 2729 Date: Thu May 6 18:42:46 2021 +0200 2730 2731 xwaland/present: Drop flip_pending member of struct xwl_present_window 2732 2733 Use the first element of the flip_queue list for the same purpose. 2734 2735 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2736 2737 commit c592c66625d964e8ed1f3fcfc01a245e4c8a8015 2738 Author: Michel Dänzer <mdaenzer@redhat.com> 2739 Date: Fri May 7 12:21:44 2021 +0200 2740 2741 xwayland/present: Fold xwl_present_flip_notify into its callers 2742 2743 No need for them to be separate anymore. 2744 2745 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2746 2747 commit 42301760802ea1cbe3698797c2bfb3a91ee02430 2748 Author: Michel Dänzer <mdaenzer@redhat.com> 2749 Date: Fri Apr 23 12:59:55 2021 +0200 2750 2751 xwayland/present: Embed present_vblank_rec in xwl_present_event 2752 2753 This allows for various simplifications. 2754 2755 Use the pointer to the struct memory as the event ID. In contrast to 2756 the SCMD code for Xorg (where pending DRM events cannot be cancelled), 2757 this is safe here, because we can destroy pending Wayland callbacks. So 2758 we can't get a callback with a stale pointer to freed memory. 2759 2760 Remove xwl_present_window::release_list in favour of 2761 present_vblank_rec::window_list. 2762 2763 Remove xwl_present_event::xwl_present_window in favour of 2764 present_vblank_rec::window. 2765 2766 xwl_present_free_event is never called for a NULL pointer anymore, no 2767 need to check. 2768 2769 v2: 2770 * Restore DestroyWindow wrapping order to make sure 2771 present_destroy_window doesn't call xwl_present_abort_vblank. 2772 2773 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2774 2775 commit 61cc5d96ed281a082d8dd414506dea0084e446fd 2776 Author: Michel Dänzer <mdaenzer@redhat.com> 2777 Date: Wed May 5 15:02:25 2021 +0200 2778 2779 present: Refactor present_vblank_init helper ouf of _vblank_create 2780 2781 Allows embedding into another struct. 2782 2783 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2784 2785 commit 35f173ddb606f9fbac7957e427fe28a377204cfe 2786 Author: Michel Dänzer <mdaenzer@redhat.com> 2787 Date: Thu Apr 29 18:44:04 2021 +0200 2788 2789 xwayland/present: Drop abort member of struct xwl_present_event 2790 2791 We can call xwl_present_free_event unconditionally from 2792 xwl_present_abort_vblank, since the sync_callback is already destroyed 2793 in xwl_present_cleanup. 2794 2795 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2796 2797 commit 0517460301cbf9c6ed3020ef1dd0cd1df94ea178 2798 Author: Michel Dänzer <mdaenzer@redhat.com> 2799 Date: Tue May 11 12:56:53 2021 +0200 2800 2801 xwayland/present: Simplify calls to Xwayland-private functions 2802 2803 Change parameter types to what's really needed, or just fold the 2804 function into its only caller. 2805 2806 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2807 2808 commit 490248ea70d3fe923446e17312880ae63590d45c 2809 Author: Michel Dänzer <mdaenzer@redhat.com> 2810 Date: Mon Apr 19 12:59:56 2021 +0200 2811 2812 xwayland/present: Rename present_wnmd_* functions to xwl_present_* 2813 2814 The WNMD indirection is gone. 2815 2816 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2817 2818 commit 0c0cbbc7cb4fa917a2b33494efb6dc03e5de9051 2819 Author: Michel Dänzer <mdaenzer@redhat.com> 2820 Date: Wed Apr 21 17:15:27 2021 +0200 2821 2822 present: Remove present_wnmd_info_rec 2823 2824 Doesn't serve any purpose anymore. 2825 2826 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2827 2828 commit 561c63d0f13a8c6379ed05338172570f93dbce37 2829 Author: Michel Dänzer <mdaenzer@redhat.com> 2830 Date: Mon Apr 19 18:41:59 2021 +0200 2831 2832 xwayland/present: Merge present_wnmd_flips_stop & xwl_present_flips_stop 2833 2834 Just use the latter instead of the former elsewhere. No need for them 2835 to be separate anymore. 2836 2837 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2838 2839 commit a67f16fde1ff094c3ec4fffe8a7269b30c7b8668 2840 Author: Michel Dänzer <mdaenzer@redhat.com> 2841 Date: Mon Apr 19 18:53:36 2021 +0200 2842 2843 xwayland/present: Fold present_wnmd_get_ust_msc into its callers 2844 2845 Just use xwl_present_get_ust_msc directly. No need for the indirection 2846 anymore. 2847 2848 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2849 2850 commit 080c1ca3f57b4226f34624b0cd2171ffbbc2be4f 2851 Author: Michel Dänzer <mdaenzer@redhat.com> 2852 Date: Mon Apr 19 18:46:23 2021 +0200 2853 2854 xwayland/present: Fold present_wnmd_queue_vblank into its callers 2855 2856 Just use xwl_present_queue_vblank directly. No need for the indirection 2857 anymore. 2858 2859 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2860 2861 commit c22887bc7a83e9b8ad112aadaec069b0366fc38e 2862 Author: Michel Dänzer <mdaenzer@redhat.com> 2863 Date: Mon Apr 19 18:51:06 2021 +0200 2864 2865 xwayland/present: Fold present_wnmd_get_crtc into present_wnmd_pixmap 2866 2867 And use xwl_present_get_crtc directly. 2868 2869 No need for them to be separate anymore. 2870 2871 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2872 2873 commit cb35ff596ec4e4fc6a4e96d55e280cdf399791e1 2874 Author: Michel Dänzer <mdaenzer@redhat.com> 2875 Date: Mon Apr 19 18:34:07 2021 +0200 2876 2877 xwayland/present: Fold present_wnmd_check_flip into its callers 2878 2879 Mainly into xwl_present_check_flip, and call that from 2880 present_wnmd_check_flip_window. 2881 2882 No need for them to be separate anymore. 2883 2884 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2885 2886 commit 7b78cf6b3ae386b9df2483692041dfa38a91bedb 2887 Author: Michel Dänzer <mdaenzer@redhat.com> 2888 Date: Mon Apr 19 18:26:55 2021 +0200 2889 2890 xwayland/present: Simplify query_capabilities 2891 2892 No need for the WNMD indirection anymore. 2893 2894 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2895 2896 commit 244403ec8718d782d57a830ece9357a75a0dd70b 2897 Author: Michel Dänzer <mdaenzer@redhat.com> 2898 Date: Mon Apr 19 18:01:52 2021 +0200 2899 2900 xwayland/present: Fold present_wnmd_abort_vblank into its only caller 2901 2902 No need for them to be separate anymore. 2903 2904 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2905 2906 commit f7adbc2166b7a4662cbd69507d8cbac11034c87e 2907 Author: Michel Dänzer <mdaenzer@redhat.com> 2908 Date: Mon Apr 19 18:06:22 2021 +0200 2909 2910 xwayland/present: Drop present_wnmd_flush in favour of xwl_present_flush 2911 2912 No need for the indirection anymore. 2913 2914 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2915 2916 commit 7fd114365d694360540bc46cd615aa47373be0a8 2917 Author: Michel Dänzer <mdaenzer@redhat.com> 2918 Date: Mon Apr 19 19:02:32 2021 +0200 2919 2920 xwayland/present: Fold present_wnmd_flip into present_wnmd_execute 2921 2922 No need for the indirection anymore. 2923 2924 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2925 2926 commit 2e1dcd731f98a8beceee699cc57b7082f98916c4 2927 Author: Michel Dänzer <mdaenzer@redhat.com> 2928 Date: Tue Apr 20 19:01:12 2021 +0200 2929 2930 xwayland/present: Fold present_wnmd_screen_init into xwl_present_init 2931 2932 No need for them to be separate anymore. 2933 2934 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2935 2936 commit b6419359b6b11ec659f59cc74075fcf049591425 2937 Author: Michel Dänzer <mdaenzer@redhat.com> 2938 Date: Wed Apr 21 12:50:02 2021 +0200 2939 2940 present: Move present_wnmd.c contents to hw/xwayland/xwayland-present.c 2941 2942 This will allow eliminating indirections and making the Xwayland Present 2943 code more efficient and easier to follow. 2944 2945 While this technically changes the Xorg video driver ABI, I don't know 2946 of any drivers using the dropped present_wnmd_* symbols, and I doubt a 2947 Xorg driver could make use of them as is anyway. 2948 2949 (As a bonus, Xorg no longer links any Xwayland specific Present code) 2950 2951 v2: 2952 * Wrap DestroyWindow before initializing Present, so that 2953 present_destroy_window runs before xwl_present_cleanup. Avoids crash 2954 due to present_destroy_window calling xwl_present_* functions when 2955 xwl_present_window was already freed. (Olivier Fourdan) 2956 2957 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2958 2959 commit c35a716b02921e2fcae5fe89295a99c6dd5dec8c 2960 Author: Michel Dänzer <mdaenzer@redhat.com> 2961 Date: Fri Apr 16 18:45:39 2021 +0200 2962 2963 present: Fold wnmd_init_mode_hooks into wnmd_screen_init 2964 2965 Preparation for moving WNMD code to hw/xwayland. No functional change 2966 intended. 2967 2968 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2969 2970 commit 10bdd87fe49cbd9b4c4b584024d663b928d3f1be 2971 Author: Michel Dänzer <mdaenzer@redhat.com> 2972 Date: Fri Apr 16 18:43:48 2021 +0200 2973 2974 present: Move present_wnmd_screen_init to present_wnmd.c 2975 2976 Now all WNMD code is in present_wnmd.c. 2977 2978 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2979 2980 commit b6d54b0f5d2fb3dc8a4b2812bfee94112c332256 2981 Author: Michel Dänzer <mdaenzer@redhat.com> 2982 Date: Wed Apr 21 17:01:36 2021 +0200 2983 2984 present: Dispatch clear_window_flip via present_screen_priv hook 2985 2986 Eliminates special cases in present_destroy_window. 2987 2988 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2989 2990 commit 93666ebe37a9c8d64b814c7af6b895f89ca5ff88 2991 Author: Michel Dänzer <mdaenzer@redhat.com> 2992 Date: Wed Apr 21 18:39:36 2021 +0200 2993 2994 present: Remove create_event_id hook 2995 2996 Each present_vblank_create caller generates and sets the ID afterwards. 2997 2998 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 2999 3000 commit 44f705a5b6b4f79682c5e649eb718a193e01ec47 3001 Author: Michel Dänzer <mdaenzer@redhat.com> 3002 Date: Mon Apr 19 18:19:30 2021 +0200 3003 3004 present: Pass capabilities to present_vblank_create by value 3005 3006 Preparation for moving WNMD code to hw/xwayland. No functional change 3007 intended. 3008 3009 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 3010 3011 commit 86e645bcfaea63bc3f91e4ccbbc19569929b92c3 3012 Author: Michel Dänzer <mdaenzer@redhat.com> 3013 Date: Fri Jul 2 12:41:34 2021 +0200 3014 3015 xwayland/eglstream: Drop xwl_eglstream_set_window_pixmap 3016 3017 Not sure why we'd need to abandon a pending stream for a pixmap just 3018 because it's no longer a window pixmap. Let's try not to. 3019 3020 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 3021 3022 commit ba8763c27b2ebc91850abfcaf32ae972e80142e7 3023 Author: Michel Dänzer <mdaenzer@redhat.com> 3024 Date: Fri Jul 2 12:57:21 2021 +0200 3025 3026 xwayland/eglstream: Consolidate pending_cb destruction 3027 3028 Into a new xwl_eglstream_destroy_pending_stream helper. 3029 3030 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 3031 3032 commit 204f10c29e0f323e7829ecf48e0f002be96e194d 3033 Author: Michel Dänzer <mdaenzer@redhat.com> 3034 Date: Wed Jul 7 18:53:35 2021 +0200 3035 3036 xwayland: Call RRTellChanged if the RandR configuration may have changed 3037 3038 This makes sure RandR events are sent to interested clients as needed. 3039 This was happening implicitly in some cases, but not in others, e.g. if 3040 the root window size didn't change. 3041 3042 If this were to call RRTellChanged more often than necessary in some 3043 cases, that should be harmless, as it only sends events if something 3044 has actually changed since last time. 3045 3046 Should fix https://bugzilla.redhat.com/show_bug.cgi?id=1979892 . 3047 3048 v2: 3049 * Call RRTellChanged at the very end of update_screen_size, just in 3050 case. 3051 3052 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 3053 3054 commit a6d178b6af4bb4cd7ba28299c3ddd9d90bcbaaa5 3055 Author: Michel Dänzer <mdaenzer@redhat.com> 3056 Date: Wed Jul 7 18:51:02 2021 +0200 3057 3058 randr: Bail from RRTellChanged if there's no root window yet 3059 3060 This can happen if RRTellChanged is called during initialization. 3061 3062 Continuing in that case makes no sense conceptually: 3063 3064 * Any event sent over the wire requires a corresponding window. 3065 * No root window probably means there can't be any clients which could 3066 receive the events. 3067 3068 In practice, it would result in a crash down the road due to 3069 dereferencing the NULL ScreenRec::root pointer. 3070 3071 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 3072 3073 commit 7e20c8b7b8357eb8986f89e85be22ab1c29f2ca4 3074 Author: Matt Turner <mattst88@gmail.com> 3075 Date: Thu Jul 8 12:15:13 2021 -0700 3076 3077 Build xz tarballs instead of bzip2 3078 3079 Signed-off-by: Matt Turner <mattst88@gmail.com> 3080 3081 commit a9552868697cae02e37e67ae774a072885f202f8 3082 Author: Dave Airlie <airlied@redhat.com> 3083 Date: Thu Jul 1 06:48:55 2021 +1000 3084 3085 glamor: add EXT_gpu_shader4 support 3086 3087 This enables a number of the GLSL 1.30 paths on GPUs that have 3088 EXT_gpu_shader4 but don't have GLSL 1.30 exposed. 3089 3090 (Intel gen4/5 mainly) 3091 3092 Reviewed-by: Adam Jackson <ajax@redhat.com> 3093 3094 commit a2f5b917f511fca1c9b1501495664e2f63c2e1b0 3095 Author: Dave Airlie <airlied@redhat.com> 3096 Date: Fri Jul 2 04:52:23 2021 +1000 3097 3098 glamor: add glamor_glsl_has_ints wrapper 3099 3100 This should make adding gpu shader4 support cleaner 3101 3102 Reviewed-by: Adam Jackson <ajax@redhat.com> 3103 3104 commit b4f55712da4d7294bfeb6cffc45b572fd999d800 3105 Author: Povilas Kanapickas <povilas@radix.lt> 3106 Date: Mon Jul 5 21:40:55 2021 +0300 3107 3108 xserver 21.0.99.1 3109 3110 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3111 3112 commit b67e514dbb59bffc23b75d47ca7f24e96c4aeb05 3113 Author: Povilas Kanapickas <povilas@radix.lt> 3114 Date: Sat Jun 26 09:44:39 2021 +0300 3115 3116 meson: Fix warnings when reading back and checking feature flags 3117 3118 Meson does not like comparing things of different types which is a 3119 problem when reading back values of feature flags as they may contain 3120 either false (bool) or 1 (string). 3121 3122 Since there is a strong reason why we use false when the feature does 3123 not exist, we work around this issue by always converting the returned 3124 value to int via to_int(). 3125 3126 Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1190 3127 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3128 3129 commit b2a0de4f072fdcc0fb20a0853f7edaf714add9d9 3130 Author: Adam Jackson <ajax@redhat.com> 3131 Date: Tue Jun 22 12:39:56 2021 -0400 3132 3133 xfixes: Allow the client to upgrade the fixes protocol version 3134 3135 If you say FixesQueryVersion twice we remember whatever the second 3136 version number was. With just libXfixes this isn't an issue because the 3137 request is hidden in extension setup, but libxcb-xfixes doesn't do that 3138 for you, which means the second one can _lower_ the requested fixes 3139 version, disabling requests that the client thought it had enabled. 3140 3141 Paper over this by allowing the version number to be raised but not 3142 lowered. Also go ahead and delete the minor version number from the 3143 client state since xfixes doesn't have minor versions (yet, anyway). 3144 3145 commit 7d509b6f342d9732b567dc4efa867ea24919853b 3146 Author: Olivier Fourdan <ofourdan@redhat.com> 3147 Date: Fri Apr 30 09:56:05 2021 +0200 3148 3149 xwayland/eglstream: Remove stream validity 3150 3151 To avoid an EGL stream in the wrong state, if the window pixmap changed 3152 before the stream was connected, we would still keep the pending stream 3153 but mark it as invalid. Once the callback is received, the pending would 3154 be simply discarded. 3155 3156 But all of this is actually to avoid a bug in egl-wayland, there should 3157 not be any problem with Xwayland destroying an EGL stream while the 3158 compositor is still using it. 3159 3160 With that bug now fixed in egl-wayland 1.1.7, we can safely drop all 3161 that logic from Xwayland EGLstream backend. 3162 3163 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3164 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 3165 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1189 3166 3167 commit 2be9f795bc15012dc912f595003e01bb6aa66f54 3168 Author: Olivier Fourdan <ofourdan@redhat.com> 3169 Date: Wed Jun 23 11:35:17 2021 +0200 3170 3171 xwayland/eglstream: Keep pending stream if the pixmap didn't change 3172 3173 If the pixmap does not actually change in set_window_pixmap(), there is 3174 no need to invalidate the pending stream, if there's one. 3175 3176 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3177 Suggested-by: Michel Dänzer <mdaenzer@redhat.com> 3178 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 3179 3180 commit 2531ee02450e3be3549daa09407557c3addeba02 3181 Author: orbea <orbea@riseup.net> 3182 Date: Wed Jun 23 05:50:21 2021 -0700 3183 3184 hw/dmx/config: Link directly with libdmxconfig.a 3185 3186 When building xserver with slibtool (https://dev.midipix.org/cross/slibtool) 3187 the build will fail. 3188 3189 /usr/bin/ld: cannot find -ldmxconfig 3190 3191 This is because xserver creates libdmxconfig.a internally and then links with 3192 the linker flag -ldmxconfig. However according to automake documentation the 3193 -lfoo linker flags should only be used for external dependencies and all 3194 internal libraries should be linked with the libtool archive file (.la) or 3195 the static archive (.a) when the former is not available. 3196 3197 GNU libtool is far more permissive and happens to silently obscure this issue 3198 while slibtool fails because it instead sees '-L./.libs -ldmxconfig'. 3199 3200 commit 2f53d1cf7304574a516f6868822307648bc35333 3201 Author: Povilas Kanapickas <povilas@radix.lt> 3202 Date: Wed Apr 7 18:22:05 2021 +0300 3203 3204 config: Fix platform busid parsing when there is no ID_PATH prop 3205 3206 On at least Lenovo Thinkpad E585 udev does not have ID_PATH property for 3207 the drm node (see 3208 https://gitlab.freedesktop.org/xorg/xserver/-/issues/993). While this is 3209 likely udev bug, this causes the device to be not recognized as 3210 attribs->busid is NULL, which causes platform_find_pci_info to be not 3211 called and corresponding xf86_platform_devices[i]->pdev to be NULL. 3212 3213 At this moment pdev being NULL will cause a crash, but this is a 3214 different bug. 3215 3216 Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/993 3217 Fixes: 0816e8fc linux: Make platform device probe less fragile 3218 Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com> 3219 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3220 3221 commit d4b38e111946b934d0f8438dc295dd9f7316318c 3222 Author: Olivier Certner <olce.freedesktop@certner.fr> 3223 Date: Tue Feb 9 10:49:00 2021 +0100 3224 3225 os: Properly report failure to link lock file 3226 3227 Stop assuming that a failure to link always means that the file indeed 3228 exists. In case of other failure (e.g., permissions), the user would get an 3229 inconsistent "Can't read lock file" message. 3230 3231 Signed-off-by: Olivier Certner <olce.freedesktop@certner.fr> 3232 3233 commit d66b7ec12986efd4f32fcc84cdaacbd04ec98ccb 3234 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 3235 Date: Wed Jun 23 15:26:23 2021 +0200 3236 3237 xfree86: Fix out of array bound access to xf86Entities 3238 3239 Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 3240 3241 commit 0d93bbfa2cfacbb73741f8bed0e32fa1a656b928 3242 Author: Povilas Kanapickas <povilas@radix.lt> 3243 Date: Fri Mar 26 00:51:02 2021 +0200 3244 3245 xfree86: Fix potentially NULL reference to platform device's PCI device 3246 3247 xf86_platform_devices[i].pdev may be NULL in cases we fail to parse the 3248 busid in config_udev_odev_setup_attribs() (see also [1], [2]) such as 3249 when udev does not give use ID_PATH. This in turn leads to 3250 platform_find_pci_info() being not called and pdev being NULL. 3251 3252 [1]: https://gitlab.freedesktop.org/xorg/xserver/-/issues/993 3253 [2]: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1076 3254 3255 Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com> 3256 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3257 3258 commit 303763941f9941e2e215a3c978b72de495478033 3259 Author: Povilas Kanapickas <povilas@radix.lt> 3260 Date: Fri Mar 26 00:51:01 2021 +0200 3261 3262 xfree86: Consistently check for reference to primaryBus pci_device 3263 3264 This is the only place where we don't check whether 3265 primaryBus.id.plat->pdev is not NULL before accessing its members. 3266 3267 It may be NULL in cases we fail to parse the busid in 3268 config_udev_odev_setup_attribs() (see also [1], [2]) such as when udev 3269 does not give use ID_PATH. This in turn leads to 3270 platform_find_pci_info() being not called and pdev being NULL in one of 3271 the items within the xf86_platform_devices array. For this to cause a 3272 crash we only need it to become the primaryBus device. 3273 3274 [1]: https://gitlab.freedesktop.org/xorg/xserver/-/issues/993 3275 [2]: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1076 3276 3277 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3278 3279 commit b9722d39cd619ac55c2cfbb5644eabb84ff57f1b 3280 Author: Povilas Kanapickas <povilas@radix.lt> 3281 Date: Thu Jun 17 18:00:50 2021 +0300 3282 3283 configure.ac: Switch project version to 20.x.y style 3284 3285 Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com> 3286 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3287 3288 commit ef89b6648e2a806237a6d2fa598e1b9c83f128b4 3289 Author: Zoltán Böszörményi <zboszor@pr.hu> 3290 Date: Mon Jun 21 12:12:41 2021 +0200 3291 3292 xfree86: Fix NULL pointer dereference crash 3293 3294 screenp->displays[count] (passed to configDisplay() in 3295 configScreen()) is NULL if there is no Virtual setting 3296 in the configuration. 3297 3298 Fixes: f8a6be04d0c7e6a99824ff888ad6c010960c5c21 ("xfree86: Change 3299 displays array to pointers array to fix invalid pointer issues 3300 after table reallocation") 3301 3302 Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com> 3303 3304 commit aad61e8e03311eb8bae4f7db59e65634733eadc2 3305 Author: Olivier Fourdan <ofourdan@redhat.com> 3306 Date: Fri Jun 18 14:52:55 2021 +0200 3307 3308 glx: Fix use after free in MakeCurrent 3309 3310 The fix from commit c468d34c7 - "glx: Set ContextTag for all contexts" 3311 is actually incomplete, it correctly sets the context tag for direct 3312 contexts as well, but would fail to mark the context's currentClient. 3313 3314 As a result, when the context is destroyed, it would be freed 3315 immediately rather than being just scheduled for deletion, even though 3316 it is still current for some client. leading to a use-after-free. 3317 3318 Make sure to also set the context's currentClient for direct contexts as 3319 well, not just indirect ones. 3320 3321 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3322 Fixes: c468d34c7 - "glx: Set ContextTag for all contexts" 3323 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1186 3324 Reviewed-by: Adam Jackson <ajax@redhat.com> 3325 3326 commit 021b3c2f778e718338f232b94880fc3ae9092085 3327 Author: Povilas Kanapickas <povilas@radix.lt> 3328 Date: Tue Jun 15 12:40:47 2021 +0300 3329 3330 configure.ac: Bump inputproto dep to 2.3.99.1 3331 3332 This should have been part of 6cbcbc81525b131b5b94409ea870af663d5c28bb. 3333 3334 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3335 3336 commit 05b3c681ea2f478c0cb941c2f8279919cf78de6d 3337 Author: Daniel Strnad <strnadda@gmail.com> 3338 Date: Tue May 19 15:52:35 2020 +0200 3339 3340 hw/xfree86: Propagate physical dimensions from DRM connector 3341 3342 Physical dimmension of display can be obtained not just by configuration or 3343 DDC, but also directly from kernel via drmModeGetConnector(). Until now 3344 xserver silently discarded these values even when no configuration nor EDID 3345 were present and fallbacked to default DPI. 3346 3347 commit f8a6be04d0c7e6a99824ff888ad6c010960c5c21 3348 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 3349 Date: Tue Jun 8 20:02:21 2021 +0200 3350 3351 xfree86: Change displays array to pointers array to fix invalid pointer issues after table reallocation 3352 3353 There are rare cases when xf86SetDepthBpp is resizing displays array in confScreen. 3354 As that array is shared between set of ScrnInfoRec's then realloc might invalidate chached DispPtr display values in 3355 otheres ScrnInfoRec objects. 3356 3357 If we will change displays array as an array of pointers to DispRec then cached DispRec pointers in ScrnInfoRec 3358 won't be invalid after reallocation of displays array. 3359 3360 Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 3361 3362 commit 1a1bd5cf7a1a3364afb625f020e1c013fbabfbb6 3363 Author: Povilas Kanapickas <povilas@radix.lt> 3364 Date: Fri Apr 16 16:15:35 2021 +0300 3365 3366 modesetting: Add a limit on async page flip error log frequency 3367 3368 In certain circumstances we will have a lot of flip errors without a 3369 reasonable way to prevent them. In such case we reduce the number of 3370 logged messages to at least not fill the error logs. 3371 3372 The details are as follows: 3373 3374 At least on i915 hardware support for async page flip support depends on 3375 the used modifiers which themselves can change dynamically for a screen. 3376 This results in the following problems: 3377 3378 - We can't know about whether a particular CRTC will be able to do an 3379 async flip without hardcoding the same logic as the kernel as there's no 3380 interface to query this information. 3381 3382 - There is no way to give this information to an application, because 3383 the protocol of the present extension does not specify anything about 3384 changing of the capabilities on runtime or the need to re-query them. 3385 3386 Even if the above was solved, the only benefit would be avoiding a 3387 roundtrip to the kernel and reduced amount of error logs. The former 3388 does not seem to be a good enough benefit compared to the amount of work 3389 that would need to be done. The latter is solved in this commit. 3390 3391 Reviewed-by: Eero Tamminen <eero.t.tamminen@intel.com> 3392 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3393 3394 commit 9992245c5f7821de1fbd866f43f0afe55080ed67 3395 Author: Povilas Kanapickas <povilas@radix.lt> 3396 Date: Fri Apr 16 16:15:34 2021 +0300 3397 3398 modesetting: Extract flip failure logging to a single place 3399 3400 Reviewed-by: Eero Tamminen <eero.t.tamminen@intel.com> 3401 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3402 3403 commit 9adb13e296baead53112a268ddfd291195742c71 3404 Author: Jose Maria Casanova Crespo <jmcasanova@igalia.com> 3405 Date: Tue Jun 8 14:52:17 2021 +0200 3406 3407 glamor: Avoid using GL_QUADS on V3D 3408 3409 Like in 0e3f1252dacdc3194 ("glamor: Avoid using GL_QUADS on VC4") 3410 this will avoid mesa to fallback doing conversion for QUADS primitives. 3411 3412 Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com> 3413 Reviewed-by: Emma Anholt <emma@anholt.net> 3414 3415 commit 104c7c50485238a1e8c2090dc96126e9624ef870 3416 Author: Michel Dänzer <mdaenzer@redhat.com> 3417 Date: Tue May 18 18:02:59 2021 +0200 3418 3419 xwayland/present: Move wl_buffer check into xwl_glamor_check_flip 3420 3421 Keeps the glamor specific code together more. 3422 3423 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 3424 3425 commit 3641c24bd012d032ec289cde312a9a5a3ba8c3bf 3426 Author: Michel Dänzer <mdaenzer@redhat.com> 3427 Date: Tue May 18 17:56:50 2021 +0200 3428 3429 xwayland/eglstream: Handle xwl_pixmap_get returning NULL 3430 3431 In xwl_glamor_eglstream_get_wl_buffer_for_pixmap. This can likely be hit 3432 now with an SHM pixmap via the Present flip path. There might be other 3433 corner cases. 3434 3435 Fixes: f3eb1684fa50 "xwayland: enable MIT-SHM shared pixmaps" 3436 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 3437 3438 commit d163e0a1d5ec54cc726d45a239a0777d0a84d610 3439 Author: Michel Dänzer <mdaenzer@redhat.com> 3440 Date: Fri Jun 11 18:25:01 2021 +0200 3441 3442 ci: Fix UPSTREAM_REPO -> FDO_UPSTREAM_REPO 3443 3444 The latter is what ci-templates expect. 3445 3446 Fixes: ab73c16930d6 "ci: Update to the latest templates" 3447 Reviewed-by: Simon Ser <contact@emersion.fr> 3448 3449 commit 7e7c147105ac704a7b33bdee0f85dc9ccdd8f747 3450 Author: Lukasz Spintzyk <lukasz.spintzyk@gmail.com> 3451 Date: Mon Jun 7 09:30:46 2021 +0200 3452 3453 modesetting: Disable reverse prime offload mode for displays running on evdi,udl 3454 3455 This mode for displays running on evdi/udl as side effect of failed glamor_egl_init 3456 reverse_prime_offload_mode was initialized to FALSE 3457 3458 After Mesa upgrade to 21.0.0 GL_RENDERER is not llvmpipe that results in successful glamor_egl_init 3459 and reverse_prime_offload_mode enabled. 3460 3461 This commit is explicitly disabling reverse_prime_offload_mode for evdi and udl drivers 3462 3463 Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 3464 3465 commit c468d34c7208c9041f9c077b54a00ae9cccad6a3 3466 Author: Olivier Fourdan <ofourdan@redhat.com> 3467 Date: Thu Jun 3 17:51:01 2021 +0200 3468 3469 glx: Set ContextTag for all contexts 3470 3471 Currently, xorgGlxMakeCurrent() would set the context tag only for 3472 indirect GLX contexts. 3473 3474 However, several other places expect to find a context for the tag or 3475 they would raise a GLXBadContextTag error, such as WaitGL() or WaitX(). 3476 3477 Set the context tag for direct contexts as well, to avoid raising an 3478 error and possibly killing the client. 3479 3480 Thanks to Erik Kurzinger <ekurzinger@nvidia.com> for spotting the issue. 3481 3482 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3483 Reviewed-by: Adam Jackson <ajax@redhat.com> 3484 3485 commit 6b47321bc6138bcd737b36e038aba904d56f1cf6 3486 Author: Olivier Fourdan <ofourdan@redhat.com> 3487 Date: Wed Apr 28 13:33:29 2021 +0200 3488 3489 dix: Add optional terminate delay 3490 3491 When the command line option "-terminate" is used, it could be 3492 interesting to give it an optional grace period to let the Xserver 3493 running for a little longer in case a new connection occurs. 3494 3495 This adds an optional parameter to the "-terminate" command line option 3496 for this purpose. 3497 3498 v2: Use a delay in seconds instead of milliseconds 3499 (Martin Peres <martin.peres@mupuf.org>) 3500 v3: Clarify man page entry, ensure terminateDelay is always >= 0, 3501 simplify TimerFree(). (Peter Hutterer <peter.hutterer@who-t.net>) 3502 3503 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3504 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 3505 3506 commit e167299f6050d85778e62ed2a1e544ceef6452fc 3507 Author: Olivier Fourdan <ofourdan@redhat.com> 3508 Date: Fri Feb 19 12:03:39 2021 +0100 3509 3510 xfixes: Add ClientDisconnectMode 3511 3512 With Wayland compositors now being able to start Xwayland on demand, the 3513 next logical step is to be able to stop Xwayland when there is no more 3514 need for it. 3515 3516 The Xserver itself is capable of terminating itself once all X11 clients 3517 are gone, yet in a typical full session, there are a number of X11 3518 clients running continuously (e.g. the Xsettings daemon, IBus, etc.). 3519 3520 Those always-running clients will prevent the Xserver from terminating, 3521 because the actual number of X11 clients will never drop to 0. Worse, 3522 the X11 window manager of a Wayland compositor also counts as an X11 3523 client, hence also preventing Xwayland from stopping. 3524 3525 Some compositors such as mutter use the XRes extension to query the X11 3526 clients connected, match their PID with the actual executable name and 3527 compare those with a list of executables that can be ignored when 3528 deciding to kill the Xserver. 3529 3530 But that's not just clumsy, it is also racy, because a new X11 client 3531 might initiate a connection the X11 server right when the compositor is 3532 about to kill it. 3533 3534 To solve this issue directly at the Xserver level, this add new entries 3535 to the XFixes extension to let the X11 clients themselves specify the 3536 disconnect mode they expect. 3537 3538 Typically, those X11 daemon clients would specify the disconnect mode 3539 XFixesClientDisconnectFlagTerminate to let the Xserver know that they 3540 should not be accounted for when checking the remaining clients prior 3541 to terminate. 3542 3543 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3544 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 3545 3546 commit b7a85e44da91d1663d5b4eabac06327c92a80f91 3547 Author: Erik Kurzinger <ekurzinger@nvidia.com> 3548 Date: Thu Dec 10 14:24:32 2020 -0800 3549 3550 glx: don't create implicit GLXWindow if one already exists 3551 3552 If a GLXMakeCurrent request specifies an X window as its drawable, 3553 __glXGetDrawable will implicitly create a GLXWindow for it. However, 3554 the client may have already explicitly created a GLXWindow for that X 3555 window. If that happens, two __glXDrawableRes resources will be added 3556 to the window. 3557 3558 If the explicitly-created GLXWindow is later destroyed by the client, 3559 DrawableGone will call FreeResourceByType on the X window, but this 3560 will actually free the resource for the implicitly-created GLXWindow, 3561 since that one would be at the head of the list. 3562 3563 Then if the X window is destroyed after that, the resource for the 3564 explicitly-created GLXWindow will be freed. But that GLXWindow was 3565 already destroyed above. This crashes the server when it tries to call 3566 the destroyed GLXWindow's destructor. It also means the 3567 implicitly-created GLXWindow would have been leaked since the 3568 FreeResourceByType call mentioned above skips calling the destructor. 3569 3570 To fix this, if __glXGetDrawable is given an X window, it should check 3571 if there is already a GLXWindow associated with it, and only create an 3572 implicit one if there is not. 3573 3574 Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com> 3575 Reviewed-by: Adam Jackson <ajax@redhat.com> 3576 3577 commit 8274dd664335cd72739a1107f174e7a974a9ea24 3578 Author: Jan Beich <jbeich@FreeBSD.org> 3579 Date: Sun May 30 19:49:43 2021 +0000 3580 3581 meson: provide fallback for *proto dependencies 3582 3583 Meson has a built-in facility to use bundled versions of dependencies 3584 if system packages are too old. Enable for xorgproto after 8e504d8b36eb: 3585 3586 Run-time dependency xproto found: YES 7.0.33 3587 Run-time dependency randrproto found: YES 1.6.0 3588 Run-time dependency renderproto found: YES 0.11.1 3589 Run-time dependency xextproto found: YES 7.3.0 3590 Dependency inputproto found: NO found 2.3.2 but need: '>= 2.3.99.1' 3591 Found CMake: /usr/local/bin/cmake (3.20.2) 3592 Run-time dependency inputproto found: NO (tried pkgconfig and cmake) 3593 Looking for a fallback subproject for the dependency inputproto 3594 3595 meson.build:73:0: ERROR: Neither a subproject directory nor a xorgproto.wrap file was found. 3596 3597 commit 34a58d7714025bc1043bf5282358406eb10e4b8e 3598 Author: Olivier Fourdan <ofourdan@redhat.com> 3599 Date: Thu May 20 16:46:33 2021 +0200 3600 3601 xwayland/eglstream: Log when GL_OES_EGL_image is missing 3602 3603 That will dramatically affect performance, might as well log when we 3604 cannot use GL_OES_EGL_image with the NVIDIA closed-source driver. 3605 3606 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3607 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 3608 3609 commit fae58e9b03696a3890f9c876306c68ffa6f9ff30 3610 Author: Olivier Fourdan <ofourdan@redhat.com> 3611 Date: Mon May 17 18:20:57 2021 +0200 3612 3613 xwayland/eglstream: Use "nvidia" for GLVND 3614 3615 If the EGLStream backend is able to use hardware acceleration with the 3616 NVIDIA closed source driver, we should use the "nvidia" GLX 3617 implementation instead of the one from Mesa to take advantage of the 3618 NVIDIA hardware accelerated rendering. 3619 3620 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3621 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 3622 3623 commit 24fc8aea1e4bbaba780f1a316fba797a0198f603 3624 Author: Olivier Fourdan <ofourdan@redhat.com> 3625 Date: Thu May 20 12:11:42 2021 +0200 3626 3627 xwayland: Add preferred GLVND vendor to xwl_screen 3628 3629 If Xwayland's EGLstream backend supports hardware acceleration with the 3630 NVIDIA closed-source driver, the GLX library also needs to be one 3631 shipped by NVIDIA, that's what GLVND is for. 3632 3633 Add a new member to the xwl_screen that the backend can optionally set 3634 to the preferred GLVND vendor to use. 3635 3636 If not set, "mesa" is assumed. 3637 3638 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3639 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 3640 3641 commit 2de5ded3c6d73c1672d2cb14d603cb23fcd477e5 3642 Author: Niveditha Rau <niveditha.rau@oracle.com> 3643 Date: Tue May 11 15:08:41 2021 -0700 3644 3645 glx: Check for byte-swapping in SetReplyHeader 3646 3647 Check for the need to byte-swap when attempting to display 3648 GL apps between a big-endian server and little-endian client 3649 or vice versa. 3650 3651 Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1127 3652 3653 commit bcb1de600a7656e4ee6434a8d2e2772ca9fd0473 3654 Author: Adam Jackson <ajax@redhat.com> 3655 Date: Thu Apr 22 11:47:29 2021 -0400 3656 3657 glx: Fix error return code in GLXGetDrawableAttributes 3658 3659 This should only ever throw GLXBadDrawable, says the protocol spec. 3660 3661 commit eb6f8daca5dc15af321d0bcc54cd6cb8b6779257 3662 Author: Povilas Kanapickas <povilas@radix.lt> 3663 Date: Sun May 30 13:26:48 2021 +0300 3664 3665 Xi: Work around broken libxcb that doesn't ignore unknown device classes 3666 3667 libxcb 14.1 and older are not forwards-compatible with new device 3668 classes as it does not properly ignore unknown device classes. Since 3669 breaking libxcb would break quite a lot of applications, we instead 3670 report Gesture device class only if the client advertised support for XI 3671 2.4. 3672 3673 Clients may still not work in cases when a client advertises XI 2.4 3674 support and then a completely separate module within the client uses 3675 broken libxcb to call XIQueryDevice. 3676 3677 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3678 3679 commit 7e692633fb9ab8e1ed2a88c3abb4fe04144c0a80 3680 Author: Povilas Kanapickas <povilas@radix.lt> 3681 Date: Sun May 30 13:26:47 2021 +0300 3682 3683 Xi: Implement gesture support for XIQueryDevice 3684 3685 commit 0886254f96f40e59193ccbb0e3acbd5ae92dbaa3 3686 Author: Povilas Kanapickas <povilas@radix.lt> 3687 Date: Sun May 30 13:26:46 2021 +0300 3688 3689 xfree86: Bump input minor ABI due to addition touchpad gestures 3690 3691 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3692 3693 commit 1cdc3b5d146818993c5a9436d17e1d0888054c38 3694 Author: Povilas Kanapickas <povilas@radix.lt> 3695 Date: Sun May 30 13:26:45 2021 +0300 3696 3697 xfree86: Implement gesture support for test input driver 3698 3699 commit dccc0275f4f3740cc625fb60ab1d014d6ec10709 3700 Author: Povilas Kanapickas <povilas@radix.lt> 3701 Date: Sun May 30 13:26:44 2021 +0300 3702 3703 Bump XI protocol version to 2.4 3704 3705 commit 75feb1366809bfb6d50734c10ab11258783a2e9d 3706 Author: Povilas Kanapickas <povilas@radix.lt> 3707 Date: Sun May 30 13:26:43 2021 +0300 3708 3709 Xi: Include gestures among events that may freeze device 3710 3711 commit 5163fc8bc28ce8bc2703cddcd9f2775ebc311766 3712 Author: Povilas Kanapickas <povilas@radix.lt> 3713 Date: Sun May 30 13:26:42 2021 +0300 3714 3715 Implement gesture processing logic 3716 3717 commit d3c52df16105de5ac37e196a49b173e426caf417 3718 Author: Povilas Kanapickas <povilas@radix.lt> 3719 Date: Sun May 30 13:26:41 2021 +0300 3720 3721 hw/xfree86: Implement public APIs to submit gesture events 3722 3723 commit 100a2ad6da4ba90f8d489c7a2ed3f3f0ac879a6f 3724 Author: Povilas Kanapickas <povilas@radix.lt> 3725 Date: Sun May 30 13:26:40 2021 +0300 3726 3727 dix: Implement gesture event submission code path 3728 3729 commit 7656a9c8dddbc57adfd4fd05f8e26b1845ac8738 3730 Author: Povilas Kanapickas <povilas@radix.lt> 3731 Date: Sun May 30 13:26:39 2021 +0300 3732 3733 dix: Implement internal gesture state handling 3734 3735 commit 0bf4123fd3bc945d150884e6ea38bd2b81c0994b 3736 Author: Povilas Kanapickas <povilas@radix.lt> 3737 Date: Sun May 30 13:26:38 2021 +0300 3738 3739 dix: Implement gesture event fixups before delivery 3740 3741 commit 227f601de31aabf6aaa897477e42e6b7f8f7c963 3742 Author: Povilas Kanapickas <povilas@radix.lt> 3743 Date: Sun May 30 13:26:37 2021 +0300 3744 3745 xi: Implement conversions from internal to Xi2 gesture event structs 3746 3747 commit f3462178caf09a8777b8671eb03949b75c8ee07a 3748 Author: Povilas Kanapickas <povilas@radix.lt> 3749 Date: Sun May 30 13:26:36 2021 +0300 3750 3751 test/xi2: Verify that XI_GestureSwipeEnd is ignored when outside mask 3752 3753 commit 407a2234b32d9cb3fed2cc7e8069bb41b98e143f 3754 Author: Povilas Kanapickas <povilas@radix.lt> 3755 Date: Sun May 30 13:26:35 2021 +0300 3756 3757 test/xi2: Update tests for gesture event types 3758 3759 commit f83f7dbb1c1be406b82da9bca12be3c43d6bfeee 3760 Author: Povilas Kanapickas <povilas@radix.lt> 3761 Date: Sun May 30 13:26:34 2021 +0300 3762 3763 xi: Bump max supported XI2 event type 3764 3765 commit 81909546397eb180ed8983bdb80f5673dbae71ac 3766 Author: Povilas Kanapickas <povilas@radix.lt> 3767 Date: Sun May 30 13:26:33 2021 +0300 3768 3769 xi: Implement selection logic for gesture event types 3770 3771 commit 080bac39c844bd16b7e1493797c6e7644badf0ab 3772 Author: Povilas Kanapickas <povilas@radix.lt> 3773 Date: Sun May 30 13:26:32 2021 +0300 3774 3775 xi: Implement grab support for new gesture event types 3776 3777 commit b544a1fdb8fa7e7efc7dde66089e901d957061d9 3778 Author: Povilas Kanapickas <povilas@radix.lt> 3779 Date: Sun May 30 13:26:31 2021 +0300 3780 3781 xi: Implement internal gesture event struct 3782 3783 commit 22fa31ed561ed1e78bf3651f28e11882b1eac51f 3784 Author: Povilas Kanapickas <povilas@radix.lt> 3785 Date: Sun May 30 13:26:30 2021 +0300 3786 3787 dix: Add new internal event enums for gesture events 3788 3789 commit 8e504d8b36eb8f23bf8cfa46143d046cc6b8ea51 3790 Author: Povilas Kanapickas <povilas@radix.lt> 3791 Date: Sun May 30 13:26:29 2021 +0300 3792 3793 meson: Depend on inputproto 2.3.99.1 3794 3795 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3796 3797 commit 2acde60147797393e0ee9428cff0f74cdc0a9227 3798 Author: Povilas Kanapickas <povilas@radix.lt> 3799 Date: Sun May 30 13:26:28 2021 +0300 3800 3801 .gitlab-ci: Install xorgproto 2021.4.99.2 from git 3802 3803 This is required for the support of upcoming XI 2.4 protocol. 3804 3805 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 3806 3807 commit 236d1775509404b0dcf44873422dd8652b1e9588 3808 Author: Claes Nästén <pekdon@gmail.com> 3809 Date: Fri May 14 13:57:10 2021 +0000 3810 3811 os: include unistd.h when HAVE_PSTACK is defined 3812 3813 On Solaris when HAVE_PSTACK is defined unistd.h needs to be included to 3814 avoid implicit declarations of pipe, read, execle etc. 3815 3816 commit 7515c23a416825f0db51f9b445279b12d5918ebf 3817 Author: Erik Kurzinger <ekurzinger@nvidia.com> 3818 Date: Tue May 11 17:00:21 2021 -0400 3819 3820 xwayland/eglstream: flush stream after eglSwapBuffers 3821 3822 When eglSwapBuffers inserts a new frame into a window's stream, there may be a 3823 delay before the state of the consumer end of the stream is updated to reflect 3824 this. If the subsequent wl_surface_attach, wl_surface_damage, wl_surface_commit 3825 calls are received by the compositor before then, it will (typically) re-use 3826 the previous frame acquired from the stream instead of the latest one. 3827 3828 This can leave the window displaying out-of-date contents, which might never be 3829 updated thereafter. 3830 3831 To fix this, after calling eglSwapBuffers, xwl_glamor_eglstream_post_damage 3832 should call eglStreamFlushNV. This call will block until it can be guaranteed 3833 that the state of the consumer end of the stream has been updated to reflect 3834 that a new frame is available. 3835 3836 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1171 3837 3838 Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com> 3839 3840 commit f3eb1684fa5008ad7c881f798a5efb7441b23035 3841 Author: Simon Ser <contact@emersion.fr> 3842 Date: Mon Apr 19 22:49:56 2021 +0200 3843 3844 xwayland: enable MIT-SHM shared pixmaps 3845 3846 Allow X11 clients to create shared pixmaps via the MIT-SHM 3847 extension under Xwayland. Tested with a wlroots patch [1]. 3848 3849 Also add a few assertions to make sure we have wl_buffers where we 3850 need them. 3851 3852 [1]: https://github.com/swaywm/wlroots/pull/2875 3853 3854 Signed-off-by: Simon Ser <contact@emersion.fr> 3855 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 3856 3857 commit 3d33d885fcd1215a74c1819278cf6f9557c9860b 3858 Author: Erik Kurzinger <ekurzinger@nvidia.com> 3859 Date: Fri May 14 08:26:49 2021 -0400 3860 3861 xwayland/eglstream: allow commits to dma-buf backed pixmaps 3862 3863 As of commit 098e0f52 xwl_glamor_eglstream_allow_commits will not allow commits 3864 if the xwl_pixmap does not have an EGLSurface. This is valid for pixmaps backed 3865 by an EGLStream, however pixmaps backed by a dma-buf for OpenGL or Vulkan 3866 rendering will never have an EGLSurface. Unlike EGLStream backed pixmaps, 3867 though, glamor will render directly to the buffer that Xwayland passes to the 3868 compositor. Hence, they don't require the intermediate copy in 3869 xwl_glamor_eglstream_post_damage that EGLStream backed pixmaps do, so there is 3870 no need for an EGLSurface. 3871 3872 Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com> 3873 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 3874 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 3875 3876 commit 012350e3db47fef0404346f55968032e62004fcf 3877 Author: Olivier Fourdan <ofourdan@redhat.com> 3878 Date: Fri Apr 30 16:23:10 2021 +0200 3879 3880 xwayland/eglstream: Set ALU to GXCopy for blitting 3881 3882 The EGLstream backend's post damage function uses a shader and 3883 glDrawArrays() to copy the data from the glamor's pixmap texture prior 3884 to do the eglSwapBuffers(). 3885 3886 However, glDrawArrays() can be affected by the GL state, and therefore 3887 not reliably produce the expected copy, causing the content of the 3888 buffer to be corrupted. 3889 3890 Make sure to set the ALU to GXCopy prior to call glDrawArrays() to get 3891 the expected result. 3892 3893 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3894 Suggested-by: Michel Dänzer <mdaenzer@redhat.com> 3895 3896 commit d85bfa6ab7495281516f3a4b05dc1ff0b2c4bf91 3897 Author: Olivier Fourdan <ofourdan@redhat.com> 3898 Date: Tue May 4 10:56:38 2021 +0200 3899 3900 xwayland/eglstream: Do not always increment pixmap refcnt on commit 3901 3902 Currently, the EGLstream backend would increment the pixmap refcount for 3903 each commit, and decrease that refcount on the wl_buffer release 3904 callback. 3905 3906 But that's relying on the compositor sending us a release callback for 3907 each commit, otherwise the pixmap refcount will keep increasing and the 3908 pixmap will be leaked. 3909 3910 So instead, increment the refcount on the pixmap only when we have not 3911 received a release notification for the wl_buffer, to avoid increasing 3912 the pixmap refcount more than once without a corresponding release 3913 event. 3914 3915 This way, if the pixmap is still in use when released on the X11 side, 3916 the EGL stream will be kept until the compositor releases it. 3917 3918 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3919 Suggested-by: Michel Dänzer <mdaenzer@redhat.com> 3920 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 3921 3922 commit b583395cd38ad101c7541bd8b0e91143ced44703 3923 Author: Olivier Fourdan <ofourdan@redhat.com> 3924 Date: Fri Apr 30 09:02:29 2021 +0200 3925 3926 xwayland/eglstream: Check eglSwapBuffers() 3927 3928 EGLstream's post_damage() would unconditionally return success 3929 regardless of the actual status of the eglSwapBuffers(). 3930 3931 Yet, if eglSwapBuffers() fails, we should not post the corresponding 3932 damage as they wouldn't match the actual content of the buffer. 3933 3934 Use the eglSwapBuffers() return value as the return value for 3935 post_damage() and do not take a refrence on the pixmap if it fails. 3936 3937 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3938 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 3939 3940 commit a45799971083c47082d085d3732a5b12692cf75b 3941 Author: Olivier Fourdan <ofourdan@redhat.com> 3942 Date: Mon Apr 19 14:52:38 2021 +0200 3943 3944 xwayland/eglstream: Fix calloc/malloc 3945 3946 Use calloc() instead of malloc() like the rest of the code. 3947 3948 Also fix the arguments of calloc() calls to match the definition which 3949 is calloc(size_t nmemb, size_t size). 3950 3951 This is a cleanup patch, no functional change. 3952 3953 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3954 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 3955 3956 commit 098e0f52c088c6eb52c7e54c5a11cefabd480908 3957 Author: Olivier Fourdan <ofourdan@redhat.com> 3958 Date: Mon Apr 19 18:11:19 2021 +0200 3959 3960 xwayland/eglstream: Do not commit without surface 3961 3962 The EGL surface for the xwl_pixmap is created once the stream is ready 3963 and valid. 3964 3965 If the pixmap's EGL surface fails, for whatever reason, the xwl_pixmap 3966 will be unusable and will end up as an invalid wl_buffer. 3967 3968 Make sure we do not allow commits in that case and recreate the 3969 xwl_pixmap/stream. 3970 3971 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3972 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 3973 https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156 3974 3975 commit bee2ebb29f0999862ab39af26c673c00af40b082 3976 Author: Olivier Fourdan <ofourdan@redhat.com> 3977 Date: Tue Apr 27 14:17:19 2021 +0200 3978 3979 xwayland/eglstream: Drop the list of pending streams 3980 3981 Now that the pending stream is associated with the xwl_pixmap for 3982 EGLStream and the xwl_pixmap itself is associated to the pixmap, we have 3983 a reliable way to get to those data from any pending stream. 3984 3985 As a result, the list of pending streams that we keep in the EGLStream 3986 global structure becomes useless. 3987 3988 So we can drop the pending stream's xwl_pixmap and also the list of 3989 pending streams altogether, and save us a walk though that list for each 3990 callback. 3991 3992 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 3993 Suggested-by: Michel Dänzer <mdaenzer@redhat.com> 3994 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 3995 3996 commit e19bf86c17ef9c802fea24410cc6b1f51a19ce7f 3997 Author: Olivier Fourdan <ofourdan@redhat.com> 3998 Date: Wed Apr 14 17:31:08 2021 +0200 3999 4000 xwayland/eglstream: Keep a reference to the pixmap 4001 4002 Commit affc47452 - "xwayland: Drop the separate refcount for the 4003 xwl_pixmap" removed the separate reference counter for the xwl_pixmap 4004 which holds the EGLStream. 4005 4006 While that works fine for the common case, if the window's pixmap is 4007 changed before the stream is ready, the older pixmap will be destroyed 4008 and the xwl_pixmap along with it, even if the compositor is still using 4009 the stream. 4010 4011 The code that was removed with commit affc47452 was taking care of that 4012 by increasing the separate reference counter for the xwl_pixmap, but it 4013 no longer the case. 4014 4015 As a result, we may end up with the EGL stream in the wrong state when 4016 trying to use it, which will cascade down into all sort of issues. 4017 4018 To avoid the problem, increase the reference count on the pixmap when it 4019 is marked as invalid in EGLStream's SetWindowPixmap(). 4020 4021 This way, the xwl_pixmap and the EGLStream are kept until released by 4022 the compositor, even when the pixmap changes before stream is ready. 4023 4024 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4025 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4026 Fixes: affc47452 xwayland: Drop the separate refcount for the xwl_pixmap 4027 https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156 4028 4029 commit cb61ecc7291cfbed2f76d4437cd7450b8e4dab00 4030 Author: Olivier Fourdan <ofourdan@redhat.com> 4031 Date: Fri Apr 16 10:38:23 2021 +0200 4032 4033 xwayland/eglstream: Dissociate pending stream from window 4034 4035 Previously, we would have pending streams associated with top level X11 4036 windows, keeping temporary accounting for the pending streams before 4037 they get fully initialized for the xwl_pixmap which would be associated 4038 with X11 pixmaps. 4039 4040 If the window content changes before the stream is ready, the 4041 corresponding pending stream would be marked as invalid and the pending 4042 stream would be eventually removed once the stream becomes ready. 4043 4044 Since commit affc47452 - "xwayland: Drop the separate refcount for the 4045 xwl_pixmap", we no longer keep a separate reference counter for the 4046 xwl_pixmap, but rather tie it to the X11 pixmap lifespan. Yet, the 4047 pending stream would still be associated with the X11 toplevel window. 4048 4049 Dissociate the pending streams from the X11 toplevel window, to keep it 4050 tied only to the xwl_pixmap so that we can have: 4051 4052 - pixmap <-> xwl_pixmap 4053 - xwl_pixmap <-> pending stream 4054 4055 Of course, the pending streams remain temporary and get removed as soon 4056 as the ready callback is triggered, but the pending streams are not 4057 linked to the X11 window anymore which can change their content, and 4058 therefore their X11 pixmap at any time. 4059 4060 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4061 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4062 https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156 4063 4064 commit cc596bcfb273eeab82ac3d59867668af8bad2abf 4065 Author: Olivier Fourdan <ofourdan@redhat.com> 4066 Date: Thu Apr 1 08:46:52 2021 +0200 4067 4068 xwayland/eglstream: Add more error checking 4069 4070 eglCreateStreamKHR() can fail and return EGL_NO_STREAM_KHR, in which 4071 case there is no point in trying to create a buffer from it. 4072 4073 Similarly, eglCreateStreamProducerSurfaceKHR() also fail and return 4074 EGL_NO_SURFACE, which in turn will be used in eglMakeCurrent() as 4075 draw/read surface, and therefore would mean no draw/read buffer. 4076 4077 In those cases, log the error, and bail out early. That won't solve the 4078 issue but will help with investigating the root cause of issues with 4079 EGLStream backend. 4080 4081 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4082 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4083 https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156 4084 4085 commit 823f3254fabd16e5e721da57cd260beac9b8f8bd 4086 Author: Olivier Fourdan <ofourdan@redhat.com> 4087 Date: Thu Apr 15 10:59:36 2021 +0200 4088 4089 xwayland/eglstream: Small refactoring 4090 4091 Some functions are called "callback" whereas they are not longer 4092 callback functions or "unref" while they no longer deal with a reference 4093 counter anymore, which is quite confusing. Rename those functions to be 4094 more explicit. 4095 4096 Also, the pending streams can be destroyed in different places, move the 4097 common code to separate function to avoid duplicating code and help with 4098 readability of the code. 4099 4100 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4101 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 4102 4103 commit 85244d2a2081d61a2e4a06e847041f638de01e3f 4104 Author: Olivier Fourdan <ofourdan@redhat.com> 4105 Date: Wed Mar 31 09:49:35 2021 +0200 4106 4107 xwayland/eglstream: Check framebuffer status 4108 4109 The EGLStream backend would sometime generate GL errors trying to draw 4110 to the framebuffer, which gives an invalid buffer, which in turn would 4111 generate a Wayland error from the compositor which is fatal to the 4112 client. 4113 4114 Check the framebuffer status and bail out early if it's not complete, 4115 to avoid getting into trouble later. 4116 4117 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4118 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4119 https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156 4120 4121 commit 252cbad316f43edc08aa5c844789398a58ba270c 4122 Author: Olivier Fourdan <ofourdan@redhat.com> 4123 Date: Wed Mar 31 13:57:45 2021 +0200 4124 4125 xwayland/glamor: Add return status to post_damage 4126 4127 If the glamor backend failed to post damage, the caller should do the 4128 same to avoid a failure to attach the buffer to the Wayland surface. 4129 4130 Change the API of Xwayland's glamor backend post_damage() to return a 4131 status so that xwl_window_post_damage() can tell whether the callee 4132 failed. 4133 4134 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4135 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4136 https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156 4137 4138 commit 3b265c59a6456f6e4abfb9e1694237bc56f1776a 4139 Author: Olivier Fourdan <ofourdan@redhat.com> 4140 Date: Tue Mar 30 08:48:25 2021 +0200 4141 4142 glamor: Dump backtrace on GL error 4143 4144 Currrently, when a GL error is triggered, glamor would log the error 4145 which may not be sufficient to trace it back to the cause of the error. 4146 4147 Also dump the backtrace which may give more information as to where the 4148 error comes from. 4149 4150 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4151 Reviewed-by: Martin Peres <martin.peres@mupuf.org> 4152 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4153 https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156 4154 4155 commit 25d2f4948f0abd39e099b8ac69b7cb1dab38a10a 4156 Author: Olivier Fourdan <ofourdan@redhat.com> 4157 Date: Mon Mar 29 15:01:15 2021 +0200 4158 4159 xwayland: Check buffer prior to attaching it 4160 4161 If the buffer is NULL, do not even try to attach it, and risk a Wayland 4162 protocol error which would be fatal to us. 4163 4164 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4165 Reviewed-by: Martin Peres <martin.peres@mupuf.org> 4166 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4167 https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156 4168 4169 commit 4f0889e98306d30a37aba0fadb1fd3790c13205a 4170 Author: Olivier Fourdan <ofourdan@redhat.com> 4171 Date: Mon Mar 29 14:22:56 2021 +0200 4172 4173 xwayland/eglstream: Check buffer creation 4174 4175 EGLStream wl_eglstream_display_create_stream() may fail, yet Xwayland 4176 would try to attach the buffer which may cause a fatal Wayland protocol 4177 error raised by the compositor. 4178 4179 Check if the buffer creation worked, and fail gracefully otherwise (like 4180 wayland-eglsurface does). 4181 4182 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4183 Reviewed-by: Martin Peres <martin.peres@mupuf.org> 4184 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4185 https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156 4186 4187 commit 4f6fbd5009ae533cf0b3bbe382502254f9276a01 4188 Author: Erik Kurzinger <ekurzinger@nvidia.com> 4189 Date: Tue Apr 27 07:23:44 2021 -0400 4190 4191 xwayland-eglstream: fix X11 rendering to flipping GL / VK window 4192 4193 If a window is being used for direct rendering with OpenGL or Vulkan, and is 4194 using the flipping path for presentation, it's pixmap will be set to a dma-buf 4195 backed pixmap created by the client-side GL driver. However, this means that 4196 xwl_glamor_eglstream_post_damage won't work since it requires that the pixmap 4197 has an EGLSurface that it can render to, which dma-buf backed pixmaps do not. 4198 4199 In this case, though, xwl_glamor_eglstream_post_damage is not necessary since 4200 glamor will have rendered directly to the pixmap, so we can simply pass it 4201 directly to the compositor. There's no need for the intermediate copy we 4202 normally do in that function. 4203 4204 Therefore, this change adds an early-return case to post_damage for dma-buf 4205 backed pixmaps, and removes the corresponding asserts from that function and 4206 allow_commits. 4207 4208 Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com> 4209 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 4210 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4211 4212 commit a50a0e348542bf32fb4239ee05a485772837f2f3 4213 Author: qarmin <mikrutrafal54@gmail.com> 4214 Date: Tue Apr 28 22:05:02 2020 +0200 4215 4216 glxcmds: Fix possible out of bounds 4217 4218 commit 3ea46f9336693d713ab63f422fffce42f9060a2c 4219 Author: Mazlan, Hazwan Arif <hazwan.arif.mazlan@intel.com> 4220 Date: Thu Jul 30 10:12:27 2020 +0800 4221 4222 dri2: Sync i965_pci_ids.h from mesa iris_pci_ids.h 4223 4224 Copied TGL PCI ID from MESA iris_pci_ids.h 4225 This update brings in a significant number of new platform ID's 4226 Sync up until commit f02ae698 4227 4228 Signed-off-by: Mazlan, Hazwan Arif <hazwan.arif.mazlan@intel.com> 4229 4230 commit d3933a24d1abdcb56f45e6076cb84a1110674a8a 4231 Author: Jon Turney <jon.turney@dronecode.org.uk> 4232 Date: Tue Apr 23 17:59:29 2019 +0100 4233 4234 CI: Add an x86 MinGW-w64 cross build 4235 4236 Only cross-build for x86 MinGW-w64, as x64 MinGW-w64 will probably 4237 require fixing LLP64 issues. 4238 4239 I don't know any source for pre-built cross-dependencies of the X 4240 server, so build these from git. 4241 4242 Don't build with GLX enabled, so I don't have to deal with 4243 cross-building mesa and it's dependencies, for the moment. 4244 4245 commit 7e142cb2a848acb6af986fa91d254d4c23963b24 4246 Author: luporl <luporl@FreeBSD.org> 4247 Date: Wed Dec 9 11:11:15 2020 -0300 4248 4249 xserver: fix RGB mask handling 4250 4251 On FreeBSD 13.0-CURRENT for PowerPC64 big-endian (BE), X was 4252 crashing in some cases. For instance, when twm was started 4253 and the background was clicked to open its menu, X crashed 4254 with a segmentation fault, trying to dereference a null pointer 4255 at CreatePicture(). 4256 4257 There were 2 issues with xorg-server handling of RGB masks that 4258 caused the pointer above to be null and thus the crash: 4259 - wrong use of ffs() to get the RGB offsets from the masks 4260 - overflow when shifting a 16-bit integer 4261 4262 This change fixes both issues. They happen when the system is BE 4263 but has a video adapter using a little-endian (LE) ARGB32 4264 framebuffer. In order to display the correct colors, this setup 4265 requires a BE RGBA32 color format to be used by X, by setting 4266 the RGB masks appropriately, that didn't work properly because of 4267 the issues above. 4268 4269 commit 5be3b80b8d084ca5721be8791910d5827d1b6014 4270 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 4271 Date: Fri Sep 18 14:32:01 2020 +0200 4272 4273 modesetting: Remove few common functions from ms namespace 4274 4275 A lot of that code is the same as in xf86-amdgpu and xf86-nouveau drivers. By removing that functions from 4276 ms namespace we can move that code to common implementation. 4277 4278 Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 4279 4280 commit c282be503e267afdd050df837d4cf61e0e7287b7 4281 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 4282 Date: Fri Sep 18 14:31:53 2020 +0200 4283 4284 modesetting: remove unnecessary ms_covering_xf86_crtc dup of ms_covering_randr_crtc 4285 4286 Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 4287 4288 commit b923364c5ec8251e81b4aa5fd451d9d7bb038009 4289 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 4290 Date: Fri Sep 18 14:31:47 2020 +0200 4291 4292 modesetting: Find crtc on secondary outputs as fallback instead of returning primary crtc 4293 4294 Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 4295 4296 commit d2dce22b6775c772282ac2c0e224ef9685ab34fa 4297 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 4298 Date: Fri Sep 18 14:31:34 2020 +0200 4299 4300 present: fix msc offset calculation in screen mode 4301 4302 Instead of getting the current msc value from the window crtc, 4303 which not exist take the last saved msc value saved in 4304 the window_priv struct 4305 4306 Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 4307 4308 commit 908deb0895f9fe345d70be933d251ea10511d30a 4309 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 4310 Date: Fri Sep 18 14:31:25 2020 +0200 4311 4312 present: Use crtc's screen present operation for syncing 4313 4314 Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 4315 4316 commit d03c0de77ba36bb5221d00ac84dcdd6aae0df453 4317 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 4318 Date: Fri Sep 18 14:29:25 2020 +0200 4319 4320 modesetting: Initialize present extension despite glamor is disabled 4321 4322 Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> 4323 4324 commit 7aaf54a1884f71dc363f0b884e57bcb67407a6cd 4325 Author: Matthieu Herrb <matthieu@herrb.eu> 4326 Date: Sun Mar 21 18:38:57 2021 +0100 4327 4328 Fix XChangeFeedbackControl() request underflow 4329 4330 CVE-2021-3472 / ZDI-CAN-1259 4331 4332 This vulnerability was discovered by: 4333 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 4334 4335 Signed-off-by: Matthieu Herrb <matthieu@herrb.eu> 4336 4337 commit 66ce61983db0a067e48143750c4d5557d5638b1c 4338 Author: Peter Hutterer <peter.hutterer@who-t.net> 4339 Date: Thu Mar 18 09:59:17 2021 +1000 4340 4341 xkb: silence a compiler warning 4342 4343 xkb.c: In function ‘ProcXkbSetMap’: 4344 xkb.c:2747:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] 4345 2747 | DeviceIntPtr master = GetMaster(dev, MASTER_KEYBOARD); 4346 4347 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 4348 4349 commit f6b8f8c071a575e54645aeb0bd3cb37377b0e4d3 4350 Author: Peter Hutterer <peter.hutterer@who-t.net> 4351 Date: Thu Mar 18 09:44:53 2021 +1000 4352 4353 xkb: don't require a trailing slash for the XKM output dir 4354 4355 Rework the function to use a single snprintf call instead of a mix of 4356 strcpy/strcats. This now also appends a trailing slash where needed so we 4357 don't rely on the build system to set this for us. 4358 4359 Also, since /tmp/ is the fallback and we never check if everything succeeded, 4360 assert if we can't use /tmp/. This will never be triggered anyway, the only 4361 caller to OutputDirectory() uses sizeof(PATH_MAX-sized array). 4362 4363 Follow-up from 6c51818a0f55282cbe5a870f58ca82ca45ee472d 4364 4365 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 4366 4367 commit eceafd4a2d159f5c2b789ad77ee283c2aa848a59 4368 Author: Jan Beich <jbeich@FreeBSD.org> 4369 Date: Fri Apr 9 14:44:13 2021 +0000 4370 4371 meson: switch getpeer* checks to autotools style 4372 4373 Checking for function "getpeereid" : YES 4374 Checking for function "getpeerucred" : NO 4375 [...] 4376 include/meson.build:182:7: ERROR: Argument to "not" is not a boolean. 4377 4378 Fixes: 68c2cfadd6d3 ("meson: Make sure defines are either set to 1 or not defined") 4379 4380 commit 9f8421af637942e5d9963828f4ce55f456410603 4381 Author: Jan Beich <jbeich@FreeBSD.org> 4382 Date: Fri Apr 9 15:22:22 2021 +0000 4383 4384 meson: check pthread_setname_np like autotools 4385 4386 FreeBSD < 12.2 and OpenBSD only have pthread_set_name_np. 4387 As libpthread isn't in scope use -Werror to trip the check. 4388 4389 Header <pthread.h> has symbol "PTHREAD_MUTEX_RECURSIVE" : YES 4390 Checking if "pthread_setname_np(tid, name)" compiles: YES 4391 4392 os/inputthread.c:326:5: error: implicit declaration of function 'pthread_setname_np' is invalid in C99 [-Werror,-Wimplicit-function-declaration] 4393 pthread_setname_np (pthread_self(), "InputThread"); 4394 ^ 4395 os/inputthread.c:447:5: error: implicit declaration of function 'pthread_setname_np' is invalid in C99 [-Werror,-Wimplicit-function-declaration] 4396 pthread_setname_np (pthread_self(), "MainThread"); 4397 ^ 4398 4399 Fixes: c20e7b5e2222 ("meson: Automatically detect HAVE_PTHREAD_SETNAME_NP") 4400 4401 commit 38e875904b039ec1889e7c81eb1d577a4f69b26d 4402 Author: Erik Kurzinger <ekurzinger@nvidia.com> 4403 Date: Thu Dec 3 14:57:51 2020 -0800 4404 4405 xwayland: implement pixmap_from_buffers for the eglstream backend 4406 4407 Provides an implementation for the pixmap_from_buffers DRI3 function for 4408 xwayland's eglstream backend. This will be used by the NVIDIA GLX driver 4409 to pass buffers from client applications to the server. These can then 4410 be presented using the PRESENT extension. 4411 4412 To hopefully make this less error-prone, we also introduce a "type" 4413 field for this struct to distinguish between xwl_pixmaps for the new 4414 DRI3-created pixmaps and those for the existing glamor-created pixmaps. 4415 4416 Additionally, the patch enables wnmd present mode with the eglstream backend. 4417 This involves creating a wl_buffer for the provided dma-buf before importing it 4418 into EGL and passing this to the compositor so it can be scanned out directly 4419 if possible. 4420 4421 Since both backends now support this present mode, the HAS_PRESENT_FLIP flag is 4422 no longer needed, so it can be removed. 4423 4424 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4425 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 4426 Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com> 4427 4428 commit bc99dd2127f12f1aae55971c09a2792eeaa98444 4429 Author: Erik Kurzinger <ekurzinger@nvidia.com> 4430 Date: Wed Mar 3 11:56:41 2021 +0100 4431 4432 xwayland: Add check_flip() glamor backend function 4433 4434 This is preliminary work for hardware accelerated rendering with the 4435 NVIDIA driver. 4436 4437 This exposes a new glamor backend function, check_flip, which can be 4438 used to control whether flipping is supported for the given pixmap. 4439 4440 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4441 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 4442 Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com> 4443 4444 commit 400d4d0fdd55192f394e1a8273dfb2423c895ec0 4445 Author: Erik Kurzinger <ekurzinger@nvidia.com> 4446 Date: Fri Feb 12 12:09:27 2021 -0800 4447 4448 xwayland: move formats and modifiers functions to common glamor code 4449 4450 This is preliminary work for hardware accelerated rendering with the 4451 NVIDIA driver. 4452 4453 This moves the modifiers and formats functions previously only available 4454 to the GBM backend to the common glamor code so that it can be used by 4455 both the GBM and EGLStream backends. 4456 4457 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4458 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 4459 Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com> 4460 4461 commit ae225417c0a0828ffb24e11eb4b968c34692e25a 4462 Author: Olivier Fourdan <ofourdan@redhat.com> 4463 Date: Wed Mar 3 09:55:12 2021 +0100 4464 4465 xwayland: Move dmabuf interface to common glamor code 4466 4467 This is preliminary work for hardware accelerated rendering with the 4468 NVIDIA driver. 4469 4470 The EGLStream backend can possibly also use the dmabuf interface, so 4471 move the relevant code from the GBM specific source to the common bits. 4472 4473 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4474 4475 commit d231ce2d9ce9644e77e8dbe8c5a23eeb11e85b55 4476 Author: Povilas Kanapickas <povilas@radix.lt> 4477 Date: Wed Apr 7 22:16:43 2021 +0300 4478 4479 meson: Disable LTO for tests 4480 4481 `-flto=auto` together with `-Wl,-wrap` causes link errors at least in 4482 certain compilers (e.g. GCC 10.2.0). Since this is reoccurring issue 4483 (internet search shows similar problems with GCC 4.6 a decade ago) let's 4484 disable LTO for tests even if it's disabled elsewhere. 4485 4486 Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1116 4487 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 4488 4489 commit 68c2cfadd6d31f0787bc35dbafe32d7dfd638e27 4490 Author: Povilas Kanapickas <povilas@radix.lt> 4491 Date: Mon Apr 5 16:24:47 2021 +0300 4492 4493 meson: Make sure defines are either set to 1 or not defined 4494 4495 This will make the behavior of meson consistent with autotools. The 4496 configuration macros are exposed to public headers so any inconsistency 4497 is likely to break code for anyone who's not careful to use #ifdef 4498 instead of #if. 4499 4500 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 4501 4502 commit faff5bbdf5dec53101a9d8f624f45262016154c1 4503 Author: Povilas Kanapickas <povilas@radix.lt> 4504 Date: Mon Apr 5 16:24:46 2021 +0300 4505 4506 meson: Sync the name of INPUTTHREAD conf macro with autotools build 4507 4508 The rest of dix code uses INPUTTHREAD, so having a different name in 4509 meson configuration was an oversight. 4510 4511 Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/936 4512 4513 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 4514 4515 commit b25795462f4754ec2e3c677a41dea33ed1be79da 4516 Author: Povilas Kanapickas <povilas@radix.lt> 4517 Date: Mon Apr 5 16:24:48 2021 +0300 4518 4519 meson: Add missing pthread dependency for libxserver_os library 4520 4521 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 4522 4523 commit 9582ef4efc72afa9f84b6469b5f81ce5dd8eb15d 4524 Author: Povilas Kanapickas <povilas@radix.lt> 4525 Date: Mon Apr 5 16:24:45 2021 +0300 4526 4527 meson: Fix typo in libxserver_os dependencies for openbsd 4528 4529 This has not been tested, but os_deps is not used anywhere in the file, 4530 so it's likely this was a typo. 4531 4532 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 4533 4534 commit 689496ed657ef055869f5eda7e09ff35edff30cc 4535 Author: Povilas Kanapickas <povilas@radix.lt> 4536 Date: Wed Apr 7 21:55:03 2021 +0300 4537 4538 meson: Switch project version to 20.x.y style 4539 4540 commit 2df55813d0f553050ff06065a67e90f678db593a 4541 Author: Povilas Kanapickas <povilas@radix.lt> 4542 Date: Wed Apr 7 21:55:02 2021 +0300 4543 4544 meson: Drop version subpatch handling 4545 4546 commit 5d3679104aaeabac585894606ad317b433b65238 4547 Author: Adam Jackson <ajax@redhat.com> 4548 Date: Wed Apr 7 21:55:01 2021 +0300 4549 4550 meson.build: Keep the protocol version looking like xserver 1.20.x did 4551 4552 This effectively changes the versioning to be as if xserver 21.0 was 4553 xserver 1.21.0. This should keep any client-side version checks that 4554 know about the Xorg 7.0 -> xserver 1.0 epoch from getting confused. 4555 4556 commit 3e4e70db10a4b2d531ccd649c18317ea2a49d256 4557 Author: George Matsumura <gmmatsumura01@bvsd.org> 4558 Date: Wed Apr 7 17:28:46 2021 -0600 4559 4560 meson: Fix DragonFly BSD identifier in meson build files 4561 4562 This changes the operating system identifier tested against 4563 host_machine.system() in meson build files from "dragonflybsd" 4564 to the officially stable "dragonfly". 4565 4566 Signed-off-by: George Matsumura <gmmatsumura01@bvsd.org> 4567 4568 commit 199f278a1b7570b1cb6e24b8bedb4d721b3c9938 4569 Author: Edouard Gaulué <edouard@e-gaulue.com> 4570 Date: Tue Mar 16 20:59:17 2021 +0100 4571 4572 French text in Preferences Pane Review 4573 4574 commit 65b27d82f2c6c3eecbc7370765ee7c036b245b2f 4575 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4576 Date: Sun Apr 4 16:10:28 2021 -0700 4577 4578 xquartz: Call PseudoramiXExtensionInit() through InitOutput() just like xwin 4579 4580 Fixes: https://github.com/XQuartz/XQuartz/issues/140 4581 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4582 4583 commit 34e2a64ce00c219d64b8169b774661d5727c45c7 4584 Author: Pascal VITOUX <vitoux.pascal@gmail.com> 4585 Date: Fri Nov 27 16:54:59 2020 +0000 4586 4587 xfree86: fix gtf support detection for EDID 1.4 4588 4589 According to the "VESA Enhanced EDID Standard", all GTF compliant 4590 displays are continuous frequency. 4591 4592 The GTF support flags in 'Display Range Limits Descriptor' cannot be 4593 used if the display is a non-continuous frequency multi-mode display. 4594 4595 Closes #1105 4596 Signed-off-by: Pascal VITOUX <vitoux.pascal@gmail.com> 4597 Fixes: 6a79a737 ("xfree86: add drm modes on non-GTF panels") 4598 Reviewed-by: Aaron Ma aaron.ma@canonical.com 4599 4600 commit b75d0cca28aaae5cd21ad76ad2822138fac2882a 4601 Author: Aaron Plattner <aplattner@nvidia.com> 4602 Date: Fri Feb 19 11:47:13 2021 -0800 4603 4604 modesetting: Defer crtc gamma size upgrade to drmmode_setup_colormap 4605 4606 Rather than trying to create a gamma ramp array of the appropriate size in 4607 drmmode_crtc_init when the GAMMA_LUT property should be used, just flag the crtc 4608 as wanting to use the GAMMA_LUT property and then replace the gamma ramp later, 4609 right before calling xf86HandleColormaps. This avoids a problem during initial 4610 startup where xf86RandR12CreateObjects12 hard-codes a gamma ramp size of 256, 4611 causing xf86RandR12CrtcSetGamma to read past the end of the DIX layer's RandR 4612 gamma ramp array: 4613 4614 PreInit 4615 drmmode_pre_init 4616 drmmode_crtc_init 4617 crtc->gamma_size = 1024 4618 4619 ScreenInit 4620 xf86CrtcScreenInit 4621 xf86RandR12Init 4622 xf86RandR12Init12 4623 xf86RandR12CreateObjects12 4624 RRCrtcCreate 4625 randr_crtc->gammaSize = 0 4626 xf86RandR12InitGamma(pScrn, 256) 4627 RRCrtcGammaSetSize 4628 randr_crtc->gammaSize = 256 4629 xf86RandR12InitGamma 4630 xf86RandR12CrtcInitGamma 4631 RRCrtcGammaSet 4632 xf86RandR12CrtcSetGamma 4633 // crtc->gamma_size is 1024 here, while randr_crtc->gammaRed 4634 // is a 256-element array. 4635 memcpy(crtc->gamma_red, randr_crtc->gammaRed, crtc->gamma_size * sizeof(crtc->gamma_red[0])); 4636 drmmode_setup_colormap 4637 xf86HandleColormaps 4638 xf86RandR12InitGamma 4639 RRCrtcGammaSetSize 4640 randr_crtc->gammaSize = 1024 4641 4642 Fixes: 245b9db0 - modesetting: Use GAMMA_LUT when available 4643 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1126 4644 Signed-off-by: Aaron Plattner <aplattner@nvidia.com> 4645 Reviewed-by: Robert Morell <rmorell@nvidia.com> 4646 4647 commit ab8f8c98418db6954b17d93280b7b526fc1d3f7c 4648 Author: Jeremie Courreges-Anglas <jca@wxcvbn.org> 4649 Date: Thu Jan 21 23:52:15 2021 +0100 4650 4651 xserver/os: safer IPv6 "kame hack" fix, only override sin6_scope_id if zero 4652 4653 This helps on KAME-based systems which want to get rid of this hack. 4654 The assumption is that if sin6_scope_id is set, then the interface index 4655 is no longer embedded in the address. 4656 4657 Signed-off-by: Jeremie Courreges-Anglas <jca@wxcvbn.org> 4658 4659 commit aeed57d722f2eb978c17fd7e859334d34af38d05 4660 Author: Povilas Kanapickas <povilas@radix.lt> 4661 Date: Fri Mar 26 00:09:41 2021 +0200 4662 4663 xkb: Fix parsing of XkbSA_DeviceValuator action type 4664 4665 The xkb spec defines that the 7th element of the DeviceValuator key 4666 action description is "valuator 2 value". 4667 4668 This error most likely was accidentally introduced as a copy-paste error 4669 in edeb033f29ae2d52e86c543ccbf22fb7ae1fdb7f. 4670 4671 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 4672 4673 commit a3931ec6f43857aeed7feac5d223d7db6728145e 4674 Author: Povilas Kanapickas <povilas@radix.lt> 4675 Date: Thu Mar 25 22:46:33 2021 +0200 4676 4677 xfree86: Create a symlink X -> Xorg when installing using meson 4678 4679 This brings the behavior closer than what we currently have with 4680 autotools-based build system. 4681 4682 Meson does not currently have native support for symlinks. 4683 See https://github.com/mesonbuild/meson/issues/1602. 4684 4685 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 4686 4687 commit 09cd65233e0f5c04e7e3d063decf357f239a65f6 4688 Author: Povilas Kanapickas <povilas@radix.lt> 4689 Date: Thu Mar 25 22:48:56 2021 +0200 4690 4691 xfree86: Set appropriate install_mode for suid_wrapper 4692 4693 commit 88b5e1a219a16dd66be6302dbf88ec93d317f991 4694 Author: Povilas Kanapickas <povilas@radix.lt> 4695 Date: Thu Mar 25 22:48:55 2021 +0200 4696 4697 meson: Bump min meson version to 0.47 to get install_mode support 4698 4699 commit 82d2156ba7b4e592a2ceb5da767b690862852caa 4700 Author: Povilas Kanapickas <povilas@radix.lt> 4701 Date: Thu Mar 25 22:51:39 2021 +0200 4702 4703 xfree86: Fix meson overwriting suid wrapper with the wrapped executable 4704 4705 Meson gets confused when there are two targets of the same name within 4706 the same directory, so we use a different intermediate name. 4707 4708 This is a problem with the Xorg SUID wrapper which has the same filename 4709 as the real Xorg executable and is configured in the same meson.build 4710 file. This commit works around this by using a different filename in 4711 build stage and renaming only when installing. 4712 4713 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 4714 4715 commit ba51acb1de752924c389cedbca39b5dc63679ee6 4716 Author: Povilas Kanapickas <povilas@radix.lt> 4717 Date: Thu Mar 25 22:57:56 2021 +0200 4718 4719 miext: Remove if check which is always true 4720 4721 In both cases we check for width > 0 just above, and the variable is not 4722 modified between the checks, so the condition is always true. 4723 4724 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 4725 4726 commit 99e7ccffb38b4c93ff0c73586ec72a7fb78cae53 4727 Author: Povilas Kanapickas <povilas@radix.lt> 4728 Date: Thu Mar 25 23:18:14 2021 +0200 4729 4730 dix: Fix URL to description of focus in/out model 4731 4732 The current URL points to an unrelated patch for acpid. 4733 4734 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 4735 4736 commit 1b7dca27eb44eac9cb0a8d1463d968872c76f4d5 4737 Author: Simon Ser <contact@emersion.fr> 4738 Date: Thu Feb 18 12:04:48 2021 +0100 4739 4740 xwayland: remove wl_log_set_handler_client workaround 4741 4742 This bumps the minimum Wayland version to 1.5 (released in 2014). 4743 4744 Signed-off-by: Simon Ser <contact@emersion.fr> 4745 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4746 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 4747 Reviewed-by: Martin Peres <martin.peres@mupuf.org> 4748 4749 commit 6c51818a0f55282cbe5a870f58ca82ca45ee472d 4750 Author: Michel Dänzer <mdaenzer@redhat.com> 4751 Date: Fri Mar 5 15:23:53 2021 +0100 4752 4753 meson: Make sure XKM_OUTPUT_DIR has a trailing slash 4754 4755 RunXkbComp passes an invalid file path to xkbcomp if there's no 4756 trailing slash. 4757 4758 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1146 4759 Suggested-by: Dylan Baker <dylan.c.baker@intel.com> 4760 4761 commit 376eaadde36f80fcbe6b0391a3385e77b4602854 4762 Author: Jan Beich <jbeich@FreeBSD.org> 4763 Date: Fri Mar 5 22:50:51 2021 +0000 4764 4765 meson: hide C API if Xorg is disabled (like autotools) 4766 4767 When building only Xwayland using Meson some files are always installed. 4768 This causes package conflict if Xwayland is built separately from Xorg. 4769 4770 include/xorg/compositeext.h 4771 include/xorg/damage.h 4772 include/xorg/damagestr.h 4773 include/xorg/dbestruct.h 4774 include/xorg/dri3.h 4775 include/xorg/fb.h 4776 include/xorg/fboverlay.h 4777 include/xorg/fbpict.h 4778 include/xorg/fbrop.h 4779 include/xorg/geext.h 4780 include/xorg/geint.h 4781 include/xorg/glyphstr.h 4782 include/xorg/mi.h 4783 include/xorg/micmap.h 4784 include/xorg/micoord.h 4785 include/xorg/migc.h 4786 include/xorg/miline.h 4787 include/xorg/mioverlay.h 4788 include/xorg/mipict.h 4789 include/xorg/mipointer.h 4790 include/xorg/mipointrst.h 4791 include/xorg/mistruct.h 4792 include/xorg/misync.h 4793 include/xorg/misyncfd.h 4794 include/xorg/misyncshm.h 4795 include/xorg/misyncstr.h 4796 include/xorg/mizerarc.h 4797 include/xorg/panoramiX.h 4798 include/xorg/panoramiXsrv.h 4799 include/xorg/picture.h 4800 include/xorg/picturestr.h 4801 include/xorg/present.h 4802 include/xorg/presentext.h 4803 include/xorg/randrstr.h 4804 include/xorg/rrtransform.h 4805 include/xorg/shadow.h 4806 include/xorg/shmint.h 4807 include/xorg/syncsdk.h 4808 include/xorg/vndserver.h 4809 include/xorg/wfbrename.h 4810 include/xorg/xace.h 4811 include/xorg/xacestr.h 4812 include/xorg/xorg-server.h 4813 include/xorg/xvdix.h 4814 include/xorg/xvmcext.h 4815 share/aclocal/xorg-server.m4 4816 4817 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4818 4819 commit 4ae36f418ed683532b0b6991e4a1e7d56740b845 4820 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4821 Date: Mon Mar 8 21:02:40 2021 -0800 4822 4823 xquartz: Ensure the mouse pointer is shown when switching to a native macOS alert or window 4824 4825 Fixes: https://github.com/XQuartz/XQuartz/issues/100 4826 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4827 4828 commit b2d96b5cd459963a9587ee9c86afc9266ba3d02b 4829 Author: Matthieu Herrb <matthieu.herrb@laas.fr> 4830 Date: Sat Feb 27 11:30:18 2021 +0100 4831 4832 Avoid sequences of malloc(0) / free() by checking the length. 4833 4834 This has an impact on heap fragmentation. 4835 4836 Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr> 4837 4838 commit 15a413e11d186a9206a39a9b2fe4b72c065d5918 4839 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4840 Date: Mon Feb 22 23:02:42 2021 -0800 4841 4842 xquartz: Update meson build to remove deleted files 4843 4844 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4845 4846 commit e59848548a462f1a0ac751bb8bb6afe56258cf4e 4847 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4848 Date: Fri Mar 5 22:57:24 2021 -0800 4849 4850 xquartz: Fix appFlags build failure with macOS 10.15+ SDKs 4851 4852 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4853 4854 commit 69e087caa4fdfcc303080c021ba463afcf4290c7 4855 Author: Olivier Fourdan <ofourdan@redhat.com> 4856 Date: Fri Feb 5 11:36:15 2021 +0100 4857 4858 xwayland: Fix path in pkg-config with autoconf 4859 4860 When using autoconf/automake to build Xwayland, the actual path to 4861 Xwayland is not fully qualified and refers to the "exec_prefix". 4862 4863 As a result, the path provided by the generated pkg-config file is wrong 4864 when using autoconf to build the Xserver. 4865 4866 Fix the xwayland.pc file to also set the variable "prefix" and 4867 "exec_prefix" so that the path to Xwayland is fully resolved. 4868 4869 Add those variables to the meson build as well for good measure. 4870 4871 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4872 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 4873 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 4874 4875 commit d7391f383ddca5089586b4d04fede56169a1a85e 4876 Author: Olivier Fourdan <ofourdan@redhat.com> 4877 Date: Thu Mar 4 14:13:41 2021 +0100 4878 4879 xwayland: Fix LeaveNotify for relative pointer 4880 4881 Since commit 20c78f38, we use the relative pointer for enter/leave 4882 events. 4883 4884 However, sprite_check_lost_focus() which verifies whether the pointer has 4885 left an Xwayland surface still explicitly check for the absolute 4886 pointer. 4887 4888 As a result, no LeaveNotify event is emitted anymore now when the 4889 pointer crosses from an Xwayland surface to a Wayland native one. 4890 4891 Make sure to check the last slave device against get_pointer_event() as 4892 well, not just the absolute pointer. 4893 4894 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4895 Acked-by: Martin Peres <martin.peres@mupuf.org> 4896 Acked-by: Roman Gilg <subdiff@gmail.com> 4897 Tested-by: Roman Gilg <subdiff@gmail.com> 4898 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 4899 Fixes: 20c78f38 - xwayland: use get_pointer_device() for enter/leave 4900 handling too 4901 4902 commit a5367face12d8e4162bc49a60b5d13955a7fb293 4903 Author: Jacob Cherry <jcherry@nvidia.com> 4904 Date: Wed Mar 3 17:50:31 2021 +0000 4905 4906 xfree86: Fix autoconfig secondary GPU devices 4907 4908 The code path added by commit 69e4b8e6 (xfree86: attempt to autoconfig 4909 gpu slave devices (v3)) assumes that it will only be run if the primary 4910 device on the screen is the first device in xf86configptr->conf_device_lst. 4911 While this is true most of the time, there are two specific cases where 4912 this assumption fails. 4913 4914 First, if the first device in conf_device_lst is assigned to a different 4915 seat than the running X server, it will be skipped by the previous 4916 FIND_SUITABLE macro usage. Second, if the primary device was explicitly 4917 assigned to the screen but auto_gpu_device is still set and no secondary 4918 devices were explicitly listed, that device may not be the first device 4919 in conf_device_lst. 4920 4921 When the first device in conf_device_lst is not the primary device 4922 assigned to the screen, two problems emerge. First, the first device in 4923 conf_device_lst will never be assigned to the screen as a secondary 4924 device. Second, the primary device is additionally assigned to the 4925 screen as a secondary device. The combination of these problems causes 4926 certain otherwise valid configurations to be invalid. For example, if a 4927 primary device is assigned to a screen and a secondary device is listed 4928 in the config but not explicitly assigned to the screen, then one order 4929 of the device sections results in a usable PRIME or Reverse PRIME setup 4930 and the other order does not. 4931 4932 This commit removes the assumption that the primary device is the first 4933 device in conf_device_lst by starting the loop from the start of 4934 conf_device_lst and skipping the primary device when it is encountered. 4935 4936 Signed-off-by: Jacob Cherry <jcherry@nvidia.com> 4937 4938 commit 97ed0048e45f4909a0c164b27e768af8c9364068 4939 Author: Olivier Fourdan <ofourdan@redhat.com> 4940 Date: Fri Dec 18 17:53:33 2020 +0100 4941 4942 xwayland: Delay cursor visibility update 4943 4944 Xwayland won't emulate XWarpPointer requests if the cursor is visible, 4945 this is to avoid having the cursor jumping on screen and preventing 4946 random X11 clients from controlling the pointer in Wayland, while 4947 allowing games which use that mechanism with a hidden cursor to work in 4948 Xwayland. 4949 4950 There are, however, games which tend to do it in the wrong order, i.e. 4951 show the cursor before moving the pointer, and because Xwayland will not 4952 allow an X11 client to move the pointer while the cursor is visible, the 4953 requests will fail. 4954 4955 Add a workaround for such X11 clients, when the cursor is being shown, 4956 keep it invisible until the cursor is actually moved. This way, X11 4957 clients which show their cursor just before moving it would still have a 4958 chance to succeed. 4959 4960 v2: Add a timeout to show the cursor for well behaved clients. 4961 v3: Some cleanup (Michel) 4962 v4: Do not cancel cursor delay when updating the cursor to avoid 4963 delaying cursor visibility indefinitely if the client keeps 4964 settings different cursors (Michel) 4965 4966 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 4967 Tested-by: Jaap Buurman jaapbuurman@gmail.com 4968 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 4969 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/734 4970 4971 commit 9d329a0fb17c1a7840408d329ee2e2a04d357387 4972 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4973 Date: Sun Feb 21 21:49:58 2021 -0800 4974 4975 xquartz: Remove a check for NSAppKitVersionNumber >= NSAppKitVersionNumber10_7 4976 4977 This check is always true on our supported systems. 4978 4979 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4980 4981 commit 839b49ac05c3285434d8487b48d8b52323187e44 4982 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4983 Date: Sun Feb 21 21:49:14 2021 -0800 4984 4985 xquartz: Don't include strndup.c any more since we no longer support 10.8 and older 4986 4987 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4988 4989 commit 677eb6827bd68bdf29e3539d1e10e9872896efec 4990 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4991 Date: Sun Feb 21 20:58:42 2021 -0800 4992 4993 xquartz: Add a launch trampoline to better integrate with modern versions of macOS 4994 4995 Fixes: https://github.com/XQuartz/XQuartz/issues/6 4996 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 4997 4998 commit 25035229b73742f9e6a96ac3e535b30b5c6196a8 4999 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5000 Date: Fri Feb 19 23:16:56 2021 -0800 5001 5002 xquartz: Don't process AppKit events if we haven't finished initializing 5003 5004 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5005 5006 commit 487286d47260782d331229af10df17711cbca1ea 5007 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5008 Date: Sat Feb 20 17:24:14 2021 -0800 5009 5010 xquartz: Allocate each fbconfig separately 5011 5012 A change during the 1.20 development cycle resulted in fbconfigs being walked 5013 and deallocated individually during __glXScreenDestroy. This change 5014 now avoids a use-after-free caused by that change. 5015 5016 ==50859==ERROR: AddressSanitizer: heap-use-after-free on address 0x00010d3819c8 at pc 0x0001009d4230 bp 0x00016feca7a0 sp 0x00016feca798 5017 READ of size 8 at 0x00010d3819c8 thread T5 5018 #0 0x1009d422c in __glXScreenDestroy glxscreens.c:448 5019 #1 0x10091cc98 in __glXAquaScreenDestroy indirect.c:510 5020 #2 0x1009d2734 in glxCloseScreen glxscreens.c:169 5021 #3 0x100740a24 in dix_main main.c:325 5022 #4 0x10023ed50 in server_thread quartzStartup.c:65 5023 #5 0x199ae7fd0 in _pthread_start+0x13c (libsystem_pthread.dylib:arm64e+0x6fd0) 5024 #6 0x199ae2d38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1d38) 5025 5026 0x00010d3819c8 is located 200 bytes inside of 12800-byte region [0x00010d381900,0x00010d384b00) 5027 freed by thread T5 here: 5028 #0 0x101477ba8 in wrap_free+0x98 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x3fba8) 5029 #1 0x1009d4240 in __glXScreenDestroy glxscreens.c:449 5030 #2 0x10091cc98 in __glXAquaScreenDestroy indirect.c:510 5031 #3 0x1009d2734 in glxCloseScreen glxscreens.c:169 5032 #4 0x100740a24 in dix_main main.c:325 5033 #5 0x10023ed50 in server_thread quartzStartup.c:65 5034 #6 0x199ae7fd0 in _pthread_start+0x13c (libsystem_pthread.dylib:arm64e+0x6fd0) 5035 #7 0x199ae2d38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1d38) 5036 5037 previously allocated by thread T5 here: 5038 #0 0x101477e38 in wrap_calloc+0x9c (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x3fe38) 5039 #1 0x100925a40 in __glXAquaCreateVisualConfigs visualConfigs.c:116 5040 #2 0x10091cb24 in __glXAquaScreenProbe+0x224 (X11.bin:arm64+0x100730b24) 5041 #3 0x1009cd840 in xorgGlxServerInit glxext.c:528 5042 #4 0x10074539c in _CallCallbacks dixutils.c:743 5043 #5 0x100932a70 in CallCallbacks callback.h:83 5044 #6 0x100932478 in GlxExtensionInit vndext.c:244 5045 #7 0x10020a364 in InitExtensions miinitext.c:267 5046 #8 0x10073fe7c in dix_main main.c:197 5047 #9 0x10023ed50 in server_thread quartzStartup.c:65 5048 #10 0x199ae7fd0 in _pthread_start+0x13c (libsystem_pthread.dylib:arm64e+0x6fd0) 5049 #11 0x199ae2d38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1d38) 5050 5051 Regressed-in: 4b0a3cbab131eb453e2b3fc0337121969258a7be 5052 CC: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> 5053 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5054 5055 commit 6a83fb51b7a8b2e167e7d6380229b69e5452f91f 5056 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5057 Date: Sat Feb 20 15:17:18 2021 -0800 5058 5059 xquartz: Fix a compiler warning about const incompatible pointer assignment 5060 5061 driWrap.c:541:30: error: assigning to 'GCOps *' (aka 'struct _GCOps *') from 'const GCOps *' (aka 'const struct _GCOps *') discards 5062 qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] 5063 pGCPriv->originalOps = pGC->ops; 5064 ^ ~~~~~~~~ 5065 5066 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5067 5068 commit a3ddcdd56c246e2226c7cdf372c2a1294eb6d888 5069 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5070 Date: Thu Feb 18 23:16:15 2021 -0800 5071 5072 xquartz: Fix build with sparkle enabled 5073 5074 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5075 5076 commit 279bcbd9cf9e557a6789d6e4cede8e8799c3788e 5077 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5078 Date: Thu Feb 18 12:43:53 2021 -0800 5079 5080 xquartz: Silence a compiler warning about missing internal methods on NSApplication 5081 5082 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5083 5084 commit fe89c70e472a9da0541b798eea60c5362b49a99d 5085 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5086 Date: Thu Feb 18 22:19:21 2021 -0800 5087 5088 xquartz: Rewrite Window menu handling to not depend on X11App.windowsMenu.numberOfItems being correct in -awakeFromNib 5089 5090 Fixes: https://github.com/XQuartz/XQuartz/issues/56 5091 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5092 5093 commit 41aed8f69634ec61ea0e40fff1cfdaf868be843e 5094 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5095 Date: Thu Feb 18 15:41:29 2021 -0800 5096 5097 xquartz: Convert X11Controller ivars into @properties 5098 5099 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5100 5101 commit c2750e1fab774c8e6675ecf284124ff55b5be9cf 5102 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5103 Date: Thu Feb 18 14:39:46 2021 -0800 5104 5105 xquartz: Convert X11Application ivars into @properties 5106 5107 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5108 5109 commit f51b97b0de2e562e341f2d72c5f00a74c71a159f 5110 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5111 Date: Thu Feb 18 14:47:50 2021 -0800 5112 5113 xquartz: Fold quartzCommon.h into quartz.h 5114 5115 Everything declared in it comes from quartz.c, so match reality. 5116 5117 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5118 5119 commit 4b4500c48f06e7ef41cd94f417e49b3f4f1412ae 5120 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5121 Date: Thu Feb 18 13:00:43 2021 -0800 5122 5123 xquartz: Fold away some unnecessary hops to X11Controller through X11Application 5124 5125 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5126 5127 commit 39c0e1c0ab6a0a89a71f26446973c779ca7fd927 5128 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5129 Date: Thu Feb 18 09:41:30 2021 -0800 5130 5131 xquartz: Fold away array_with_strings_and_numbers and simplify with more modern Objective-C 5132 5133 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5134 5135 commit 87f8fe1f74f10faf0ffc84f03539799ad4c2465e 5136 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5137 Date: Thu Feb 18 09:33:56 2021 -0800 5138 5139 xqaurtz: Remove message_kit_thread() and use dispatch instead 5140 5141 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5142 5143 commit 94e4e173486c2a94ddcfd2d0515e1ee6731f6656 5144 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5145 Date: Wed Feb 17 23:58:53 2021 -0800 5146 5147 xquartz: Use objc_autoreleasePoolPush / objc_autoreleasePoolPop directly in QuartzBlockHandler 5148 5149 It violates @autoreleasepool best practices, and this helps collapse quartzCocoa.m into quartz.c 5150 5151 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5152 5153 commit fba421f700498fa382089df47942df36a2d75ce6 5154 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5155 Date: Wed Feb 17 22:04:55 2021 -0800 5156 5157 xquartz: Minor code modernization -- @autoreleasepool adoption 5158 5159 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5160 5161 commit 318f8a4a8a47a0ce4bbbf4290469e933602c9b30 5162 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5163 Date: Wed Feb 17 20:55:06 2021 -0800 5164 5165 xquartz: Remove some dead code for compatibility with older nibs 5166 5167 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5168 5169 commit 72a39dccf99191fbfbb4b399c446fd017d55f24e 5170 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5171 Date: Thu Feb 18 16:05:34 2021 -0800 5172 5173 xquartz: Remove a workaround for AppKit versions older than Lion 5174 5175 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5176 5177 commit 7e2875035800887f3f41f75cba4299088daf939a 5178 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5179 Date: Wed Feb 17 15:45:45 2021 -0800 5180 5181 xquartz: Fix applications menu table background color for dark mode 5182 5183 Fixes: https://github.com/XQuartz/XQuartz/issues/32 5184 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5185 5186 commit 85beee9885a8e65960fbbde2de9aa28598b4d6ae 5187 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5188 Date: Wed Feb 17 15:16:26 2021 -0800 5189 5190 xquartz: Apply Xcode 12.4 automatic updates to nibs 5191 5192 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5193 5194 commit 4e892aa6e132447e43d7bae7e3aca4f1fb172f93 5195 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5196 Date: Wed Feb 17 13:38:31 2021 -0800 5197 5198 xquartz: Update the about box copyright to 2021 5199 5200 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5201 5202 commit c9a3b14c1472632afaff340f73a77a2b961f195a 5203 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5204 Date: Mon Feb 1 16:27:38 2021 -0800 5205 5206 xquartz: Ensure we call into TIS on the main thread 5207 5208 There is a place where this code was called on the main thread. 5209 5210 We're using a rather nasty anti-pattern to just call a block inline rather 5211 than synchonously calling it on the main thread if we're already on the main 5212 thread. This code could use a good overhaul, but I don't have time to rip 5213 it apart right now. This will address the immediate issue. 5214 5215 Fixes: https://github.com/XQuartz/XQuartz/issues/40 5216 Fixes: https://github.com/XQuartz/XQuartz/issues/48 5217 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5218 5219 commit af17b5c499ded807395c7ef02254d5af8ddc4667 5220 Author: Povilas Kanapickas <povilas@radix.lt> 5221 Date: Mon Feb 15 14:52:32 2021 +0200 5222 5223 dix: Use correct listener to deliver touch end events 5224 5225 This fixes an problem left in f682e0563f736ed2c2c612ed575e05b6e3db945e 5226 due to an incorrect cherry-pick. 5227 5228 We must use old listener->listener to deliver the touch event. Otherwise 5229 grab won't let the event through and the abovementioned commit has no 5230 effect. 5231 5232 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 5233 5234 commit 20c78f38a0b33b88bc82a2bcd54d2e6c74a4c132 5235 Author: Peter Hutterer <peter.hutterer@who-t.net> 5236 Date: Tue Feb 16 14:48:13 2021 +1000 5237 5238 xwayland: use get_pointer_device() for enter/leave handling too 5239 5240 In Weston, clicking the window decoration of an Xwayland client gives us a 5241 wl_pointer.button event immediately followed by a wl_pointer.leave event. 5242 The leave event does not contain any button state information, so the button 5243 remains logically down in the DIX. 5244 5245 Once the pointer button is released, a wl_pointer.enter event is sent with 5246 the current button state (zero). This needs to trigger a ButtonRelease event 5247 but for that we need to ensure that the device is the same as the one we send 5248 ButtonPress events through. 5249 5250 Fixes a regression introduced in a4095162ca923992a8cfae6d0f09ff9f8144762a. 5251 5252 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 5253 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 5254 5255 commit dee2bb033e78e2f4aae7f5708c3d4fc74a9957de 5256 Author: Olivier Fourdan <ofourdan@redhat.com> 5257 Date: Mon Feb 15 11:33:56 2021 +0100 5258 5259 dix: Guard against non-existing PtrFeedbackPtr 5260 5261 Trying to change the pointer control settings on a device without 5262 PtrFeedbackPtr would be a bug and a crash in the Xserver. 5263 5264 Guard against that case by returning early with a BadImplementation 5265 error, that might kill the X11 client but the Xserver would survive. 5266 5267 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5268 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 5269 Related: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1137 5270 5271 commit ab76272a7d2bff997985893c89147412a7360310 5272 Author: Olivier Fourdan <ofourdan@redhat.com> 5273 Date: Mon Feb 15 11:23:59 2021 +0100 5274 5275 xwayland: Add PtrFeedback to the touch device 5276 5277 Trying to change the acceleration/threshold on Xwayland cannot work, and 5278 the corresponding handler xwl_pointer_control() is a no-op. 5279 5280 Yet, an X11 client trying to change those on the touch device may 5281 possibly cause a crash because the touch device in Xwayland doesn't set 5282 that. 5283 5284 Initialize the touch device's PtrFeedback to make sure that just cannot 5285 happen. 5286 5287 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5288 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 5289 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1137 5290 5291 commit a4095162ca923992a8cfae6d0f09ff9f8144762a 5292 Author: Olivier Fourdan <ofourdan@redhat.com> 5293 Date: Thu Feb 11 11:42:01 2021 +0100 5294 5295 xwayland: Use relative device for buttons/axis 5296 5297 We are using the relative pointer for motion events, but buttons and 5298 axis events still go through the absolute pointer device. 5299 5300 That means additional DeviceChanged events that could be avoided if the 5301 buttons and axis events were coming from the same device as motion 5302 events. 5303 5304 Route those events to the relative pointer if available so that motion, 5305 buttons and axis events come from the same device (most of the time). 5306 5307 Suggested-by: Peter Hutterer <peter.hutterer@who-t.net> 5308 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5309 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 5310 Related: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1130 5311 5312 commit 1abab61dc23d585860bc847bcecb1b0315977c27 5313 Author: Olivier Fourdan <ofourdan@redhat.com> 5314 Date: Thu Feb 11 15:32:34 2021 +0100 5315 5316 xwayland: Add wheel axis to relative pointer 5317 5318 The relative pointer only has 2 axis, if we want to route the mouse 5319 wheel events to that device, we need to add the axis definition, similar 5320 to what is done for the absolute pointer. 5321 5322 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5323 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 5324 Related: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1130 5325 5326 commit 71817928247971566903d56c0571db61b7933747 5327 Author: Olivier Fourdan <ofourdan@redhat.com> 5328 Date: Tue Feb 9 13:33:05 2021 +0100 5329 5330 xwayland: Split dispatch_pointer_motion_event 5331 5332 This is a cleanup patch, no functional change. 5333 5334 Split the function dispatch_pointer_motion_event() into three separate 5335 simpler functions, relative motion with a warp emulator, relative motion 5336 and absolute motion. 5337 5338 This makes the code a lot easier to read for me, rather than having 5339 everything in a single function with nested if/else conditions. 5340 5341 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5342 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 5343 5344 commit c5c5322ad69b0751f16c785a479b2989b8794235 5345 Author: Olivier Fourdan <ofourdan@redhat.com> 5346 Date: Tue Feb 9 13:04:59 2021 +0100 5347 5348 xwayland: Use relative values for raw events 5349 5350 Xwayland supports relative motion events from the Wayland compositor via 5351 the relative-pointer protocol, and converts those to the absolute range 5352 in device units for raw events. 5353 5354 Some X11 clients however wrongly assume relative values in the axis 5355 values even for devices explicitly labeled as absolute. While this is a 5356 bug in the client, such applications would work fine in plain Xorg but 5357 not with Xwayland. 5358 5359 To avoid that issue, use the relative values for raw events without 5360 conversion, so that such application continue to work in Xwayland. 5361 5362 Thanks Peter for figuring out the root cause. 5363 5364 v2: Don't duplicate relative and absolute events (Peter) 5365 v3: Use POINTER_RAWONLY (Peter) 5366 5367 Suggested-by: Peter Hutterer <peter.hutterer@who-t.net> 5368 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5369 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 5370 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1130 5371 5372 commit ebdb2e264676c3b27a708328348efe73e0d3c8c2 5373 Author: Olivier Fourdan <ofourdan@redhat.com> 5374 Date: Tue Feb 9 13:01:21 2021 +0100 5375 5376 xwayland: Use a resolution of 0 for relative motion 5377 5378 That's what evdev/libinput drivers do. 5379 5380 Suggested-by: Peter Hutterer <peter.hutterer@who-t.net> 5381 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5382 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 5383 Related: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1130 5384 5385 commit b5e1f13681090fc327dc2cabee1dc123273e785b 5386 Author: Olivier Fourdan <ofourdan@redhat.com> 5387 Date: Thu Feb 11 09:48:12 2021 +0100 5388 5389 dix: Add POINTER_RAWONLY flag 5390 5391 This add a new flag POINTER_RAWONLY for GetPointerEvents() which does 5392 pretty much the opposite of POINTER_NORAW. 5393 5394 Basically, this tells GetPointerEvents() that we only want the 5395 DeviceChanged events and any raw events for this motion but no actual 5396 motion events. 5397 5398 This is preliminary work for Xwayland to be able to use relative motion 5399 events for raw events. Xwayland would use absolute events for raw 5400 events, but some X11 clients (wrongly) assume raw events to be always 5401 relative. 5402 5403 To allow such clients to work with Xwayland, it needs to switch to 5404 relative raw events (if those are available from the Wayland 5405 compositor). 5406 5407 However, Xwayland cannot use relative motion events for actual pointer 5408 location because that would cause a drift over time, the pointer being 5409 actually controlled by the Wayland compositor. 5410 5411 So Xwayland needs to be able to send only relative raw events, hence 5412 this API. 5413 5414 Bump the ABI_XINPUT_VERSION minor version to reflect that API addition. 5415 5416 v2: Actually avoid sending motion events (Peter) 5417 v3: Keep sending raw emulated events with RAWONLY (Peter) 5418 5419 Suggested-by: Peter Hutterer <peter.hutterer@who-t.net> 5420 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5421 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 5422 Related: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1130 5423 5424 commit 213129012bc0fe508a8a4180ffda1ef661894049 5425 Author: Povilas Kanapickas <povilas@radix.lt> 5426 Date: Sun Dec 20 00:48:22 2020 +0200 5427 5428 Xi: Deliver pointer emulated touch events to grabbing client 5429 5430 Delivery of emulated events usually happens only to the owning client. 5431 If there are grabs, only the grabbing client may receive these events. 5432 5433 This logic does not work during the touch event replay in 5434 DeactivatePointerGrab(), as the previous grab is no longer in the 5435 listener queue of the touch, so the next owner gets whole emulated event 5436 sequence. This may trigger implicit grabs. After replay, 5437 DeactivatePointerGrab() will update the global grab without regard to 5438 this new implicit grab, which leads to issues down the line. 5439 5440 This change is effectively the same as 35e5a76cc1 except that the change 5441 is limited to only emulated pointer events. Otherwise, in the case of a 5442 device grab we end up not sending any touch events to clients that 5443 selected XI_TouchOwnership event and should get touch events before they 5444 get ownership of touch sequence. 5445 5446 Fixes #7 5447 5448 https://bugs.freedesktop.org/show_bug.cgi?id=96536 5449 5450 commit 30e11535afb3c4efc3a5cef640de44c7cd9bb561 5451 Author: Povilas Kanapickas <povilas@radix.lt> 5452 Date: Sun Dec 20 00:48:21 2020 +0200 5453 5454 Revert "Xi: Use current device active grab to deliver touch events if any" 5455 5456 This reverts commit 98e3db2ac43d4a3f13475cb160c8ce0155ac7d61. 5457 5458 commit f682e0563f736ed2c2c612ed575e05b6e3db945e 5459 Author: Povilas Kanapickas <povilas@radix.lt> 5460 Date: Mon Feb 8 05:21:29 2021 +0200 5461 5462 dix: Send touch end to clients that do async grab without touch events 5463 5464 If a XI2 client started listening to touches due to a selection and then 5465 creates an active async grab that does not include touch events, then it 5466 currently won't get the touch end event which will produce inconsistent 5467 view of the pending touches. 5468 5469 Note that we only need to consider touch listeners and can ignore 5470 pointer emulation. Under XI2 if a active grab replaces a passive 5471 implicit grab and the active grab does not include the button release 5472 event, the client won't get it either. 5473 5474 commit c7730cfe5577ebde006d408f502766d8c3a73670 5475 Author: Olivier Fourdan <ofourdan@redhat.com> 5476 Date: Wed May 13 16:48:55 2020 +0200 5477 5478 xwayland: Translate keyboard grabs on the root window 5479 5480 When an X11 client issues an active grab on the keyboard, Xwayland 5481 forward this to the Wayland compositor using the Xwayland specific 5482 protocol "xwayland-keyboard-grab" if it can find the corresponding 5483 Xwayland window. 5484 5485 Some X11 clients (typically older games) however try to issue the 5486 keyboard grab on the X11 root window, which has obviously no matching 5487 Xwayland window. In such a case, the grab is simply ignored and the game 5488 will not work as expected. 5489 5490 To workaround that issue, if an X11 client issues a keyboard grab on the 5491 root window, Xwayland will search for a toplevel window belonging to the 5492 same X11 client that it can use as the grab window instead. 5493 5494 This way, the grab can be forwarded to the Wayland compositor that can 5495 either grant or deny the request based on the window and its internal 5496 policies. 5497 5498 The heuristic picks the first realized toplevel window belonging to the 5499 client so that the Wayland compositor will send it the keyboard events, 5500 and the Xserver grab mechanism will then take care of routing the events 5501 to the expected X11 window by itself. 5502 5503 v2: Make the test more clear (Dor Askayo <dor.askayo@gmail.com>) 5504 5505 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5506 Acked-by: Jonas Ådahl <jadahl@gmail.com> 5507 See-also: https://gitlab.gnome.org/GNOME/mutter/-/issues/1249 5508 5509 commit 520e7a1310ddc25b30bcaa0ea3eeaa6c4d137c8c 5510 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5511 Date: Wed Jan 27 15:03:46 2021 -0800 5512 5513 xquartz: Ensure that NSRunAlertPanel() is run on the main thread 5514 5515 Fixes: https://github.com/XQuartz/XQuartz/issues/30 5516 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5517 5518 commit 7d0bb7ed061458698ff27856976939b261e73b23 5519 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5520 Date: Wed Jan 27 13:46:02 2021 -0800 5521 5522 xquartz: Remove support for older versions of libXplugin 5523 5524 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5525 5526 commit 5e7c0762e6fdaefc9b8257c0f875432b1877c49e 5527 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5528 Date: Wed Jan 27 13:43:01 2021 -0800 5529 5530 xquartz: Remove unused include of AvailabilityMacros.h from various sources 5531 5532 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5533 5534 commit 59f22341a8b4cd468d6f37fb17dd7fde347e430b 5535 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5536 Date: Wed Jan 27 13:40:48 2021 -0800 5537 5538 xquartz: Remove support for building for i386 5539 5540 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5541 5542 commit aea15a76593f98205e44f20632178dc384c02d57 5543 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5544 Date: Wed Jan 27 13:35:17 2021 -0800 5545 5546 xquartz: Remove support for Mountain Lion and earlier versions of macOS 5547 5548 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5549 5550 commit c0b2d3e099a60f55b18ca9c30373000f12d40fe2 5551 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5552 Date: Wed Jan 27 13:33:22 2021 -0800 5553 5554 xquartz: Remove support for Lion and earlier versions of macOS 5555 5556 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5557 5558 commit cc9cf6f085be6e8264f925a11d67a12ad47a042b 5559 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5560 Date: Wed Jan 27 13:29:52 2021 -0800 5561 5562 xquartz: Remove support for SnowLeopard and earlier versions of macOS 5563 5564 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5565 5566 commit f699aac2ea2cf6a3e2d3bdcb2d8179e103de1d4e 5567 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5568 Date: Wed Jan 27 13:09:50 2021 -0800 5569 5570 xquartz: Remove check for libdispatch now that we don't support pre-SnowLeopard 5571 5572 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5573 5574 commit 5ad49102722274f53b9b011082d9e0f202fcd9a4 5575 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5576 Date: Wed Jan 27 13:23:18 2021 -0800 5577 5578 xquartz: Remove support for Leopard and earlier versions of macOS 5579 5580 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5581 5582 commit 6e6db055f8b517ae9d63351d4c00fd480cb6b54a 5583 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5584 Date: Wed Jan 27 13:18:35 2021 -0800 5585 5586 xquartz: Remove support for Tiger and earlier versions of macOS 5587 5588 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5589 5590 commit 20b86c4060c1d4fbc099675d5100fe17e4ac0147 5591 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5592 Date: Wed Jan 27 13:12:34 2021 -0800 5593 5594 os: Remove support for Tiger and earlier versions of macOS 5595 5596 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5597 5598 commit 74aef85bd88a1fdb22d445ad14975232a7bebdd7 5599 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5600 Date: Wed Jan 27 13:25:54 2021 -0800 5601 5602 xquartz: Remove support for Panther and earlier versions of macOS 5603 5604 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> 5605 5606 commit 0e272ac458fbd530787273073473e566b0ac306e 5607 Author: Jim DeLaHunt <from.github@jdlh.com> 5608 Date: Mon Dec 11 00:08:52 2017 -0800 5609 5610 Fix typo "XQaurtz" in Xquartz.man 5611 5612 commit 5429791b1cf7f6cabf6c64aad0a4b1b5418253c9 5613 Author: Olivier Fourdan <ofourdan@redhat.com> 5614 Date: Thu Jan 28 17:11:44 2021 +0100 5615 5616 Revert "mi: Shortcut miDoCopy/miCopyArea based on clipList" 5617 5618 This reverts commit f665a9c9e6c8643f3050378249db3088ae3057be. 5619 5620 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5621 Acked-by: Martin Peres <martin.peres@mupuf.org> 5622 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1108 5623 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1128 5624 5625 commit 3cdac5ba07a79761652d960e0e907601f82718bc 5626 Author: Olivier Fourdan <ofourdan@redhat.com> 5627 Date: Wed Sep 9 10:51:24 2020 +0200 5628 5629 mi: List extensions in usage message 5630 5631 Not all extensions can be enabled or disabled at runtime, list the 5632 extensions which can from the help message rather than on error only. 5633 5634 v2: 5635 * Print the header message in the ListStaticExtensions() (Peter 5636 Hutterer) 5637 * Do not export ListStaticExtensions() as Xserver API 5638 5639 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5640 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 5641 5642 commit a81c98e42a954580ca0d43c89169dc2069c87b96 5643 Author: Olivier Fourdan <ofourdan@redhat.com> 5644 Date: Tue Sep 8 18:34:48 2020 +0200 5645 5646 mi: Don't log the full extension list on disable 5647 5648 When enabling or disabling an extension which is not known to the 5649 Xserver, it will log an error message and list the extensions it knows 5650 about. 5651 5652 That clutters the logs when the Xserver is Xwayland spawned by the 5653 Wayland compositor who doesn't actually know the list of extensions 5654 enabled at build time in the Xserver. 5655 5656 Considering that disabling a non-existing extension is a no-op anyway, 5657 list all the extensions available only when attempting to enable an 5658 extension which the Xserver doesn't know about. 5659 5660 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5661 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 5662 5663 commit 4341f1da728e4c67187b48865faf06c1312bcdff 5664 Author: Misha Gusarov <dottedmag@dottedmag.net> 5665 Date: Wed Jan 27 12:37:51 2021 +0000 5666 5667 xwayland: Add -verbose option as in xfree86 5668 5669 Makes it easier to debug Xwayland problems. 5670 5671 Signed-off-by: Misha Gusarov <dottedmag@dottedmag.net> 5672 5673 commit 0148a15da1616a868d71abe1b56e3f28cc79533c 5674 Author: Julien Cristau <jcristau@debian.org> 5675 Date: Wed Jan 6 10:20:53 2021 +0100 5676 5677 compiler.h: don't define inb/outb and friends on mips 5678 5679 The definition relies on IOPortBase, which is only ever set in 5680 hw/xfree86/os-support/bsd/arm_video.c 5681 5682 This caused build failures on linux/mips with GCC 10, due to this 5683 change (from https://gcc.gnu.org/gcc-10/changes.html#c): 5684 5685 "GCC now defaults to -fno-common. As a result, global variable accesses 5686 are more efficient on various targets. In C, global variables with 5687 multiple tentative definitions now result in linker errors. With 5688 -fcommon such definitions are silently merged during linking." 5689 5690 As a result anything including compiler.h would get its own definition 5691 of IOPortBase and the linker would error out. 5692 5693 commit f08ab719df921e1269691553daf56853380fb241 5694 Author: Michel Dänzer <mdaenzer@redhat.com> 5695 Date: Thu Dec 17 18:58:28 2020 +0100 5696 5697 ci: Test ninja dist in meson jobs 5698 5699 While this isn't critical yet, it might become so at some point, so 5700 let's make sure it keeps working. 5701 5702 Don't set the PIGLIT/XTEST_DIR variables for ninja dist, testing XTS 5703 once against each DDX is enough (as part of ninja test). 5704 5705 Requires git in the docker image. 5706 5707 v2: 5708 * Drop /usr/local/bin/xkbcomp symlink, no longer needed with xkbcomp 5709 1.4.1 (Peter Hutterer) 5710 5711 commit 099eb6261cfb4a7a674ead467a8a9dfb2ee173d8 5712 Author: Michel Dänzer <mdaenzer@redhat.com> 5713 Date: Fri Jan 15 18:32:30 2021 +0100 5714 5715 ci: Build xkbcomp 1.4.1 for the docker image 5716 5717 This is a requirement for testing meson dist in CI. 5718 5719 commit 9716c4193fd4db7cdf3c6d7fb32d4ad2919cbe46 5720 Author: Olivier Fourdan <ofourdan@redhat.com> 5721 Date: Fri Jan 22 10:29:29 2021 +0100 5722 5723 xwayland: Add new pkg-config variable for listenfd 5724 5725 Since commit b3f3d65e, xwayland now supports the command line option 5726 "-listenfd" for passing file descriptors and marked "-listen" as 5727 deprecated for this specific purpose. 5728 5729 Add a new pkg-config variable "have_listenfd" to the xwayland.pc so that 5730 compositors can know this is available and use listenfd in place of the 5731 deprecated option. 5732 5733 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5734 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 5735 Reviewed-by: Jonas Ådahl <jadahl@gmail.com> 5736 5737 commit a9269808f394955f213e34303c2c14fd61c35ab5 5738 Author: Erik Kurzinger <ekurzinger@nvidia.com> 5739 Date: Thu Jan 7 07:00:33 2021 -0800 5740 5741 xwayland: remove unused parameter of xwl_glamor_pixmap_get_wl_buffer 5742 5743 There are currently no callers that make use of the "created" output parameter 5744 of xwl_glamor_pixmap_get_wl_buffer. Remove it, along with the corresponding 5745 argument of the associated EGL backend entrypoint. 5746 5747 commit 532245798085a67b5ff906778f88373d5bcd2e4c 5748 Author: Povilas Kanapickas <povilas@radix.lt> 5749 Date: Tue Dec 22 07:30:46 2020 +0200 5750 5751 xfree86/inputtest: Drop extraneous linux-specific include 5752 5753 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 5754 5755 commit 3ab3083cc20534c83a5a35f0af1f2779f8df0b7b 5756 Author: Povilas Kanapickas <povilas@radix.lt> 5757 Date: Sun Dec 20 01:11:43 2020 +0200 5758 5759 xi: Don't deliver emulated motion when there's no owner for touch end 5760 5761 Pointer-emulated touch events should only be delivered to the client 5762 that owns the sequence even if it's a core client that became the 5763 effective owner of the sequency by selecting for pointer press and 5764 movement. 5765 5766 Currently the emulated events are delivered like this already (see 5767 TouchResourceIsOwner() check in DeliverEmulatedMotionEvent()), except in 5768 the case of TouchEnd, in which case the generated motion event is still 5769 delivered to some client that's not necessarily the owner of the touch 5770 sequence. 5771 5772 We already know whether a touch sequence that is about to emulate a 5773 pointer event has an owner, we just need to check that. This further 5774 allows to simplify DeliverEmulatedMotionEvent() as it won't ever be 5775 called for non-owned touch events. 5776 5777 https://bugs.freedesktop.org/show_bug.cgi?id=60394 5778 5779 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 5780 5781 commit 365cbbfc4b99f7d9937d1b8b61f1483556a5b57a 5782 Author: Adam Jackson <ajax@redhat.com> 5783 Date: Fri Dec 18 09:36:30 2020 -0500 5784 5785 os, shm: fcntl()'s third argument is integer, not pointer 5786 5787 All of these uses were attempting to set FD_CLOEXEC, which happens to be 5788 (1<<0). Since flags is going to be aligned in memory, its address is 5789 never going to have the low bit set, so we were never actually setting 5790 what we meant to. 5791 5792 Fixes: xorg/xserver#1114 5793 5794 commit 5e3900904ddc27f3d5580ce3a07929469d82fb5e 5795 Author: Povilas Kanapickas <povilas@radix.lt> 5796 Date: Fri Dec 18 04:39:07 2020 +0200 5797 5798 xfree86: Use different scroll increment than libinput in inputtest drv 5799 5800 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 5801 5802 commit 58465a3dd90c3bc698ba9ebb2c4a516df6ff7dfd 5803 Author: Povilas Kanapickas <povilas@radix.lt> 5804 Date: Thu Dec 17 03:08:06 2020 +0200 5805 5806 xfree86: Add scroll axes to touch devices in inputtest driver 5807 5808 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 5809 5810 commit 91a8013990a967bfd8c4145c4a79b86cc495a205 5811 Author: Povilas Kanapickas <povilas@radix.lt> 5812 Date: Thu Dec 17 03:08:05 2020 +0200 5813 5814 xfree86: Add support for pressure valuator axis in inputtest driver 5815 5816 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 5817 5818 commit 742b87f7ee5abd1406a77ac1baacbc43759bd275 5819 Author: Povilas Kanapickas <povilas@radix.lt> 5820 Date: Thu Dec 17 03:08:04 2020 +0200 5821 5822 xfree86: Fix axis labels for PointerAbsolute input of inputtest driver 5823 5824 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 5825 5826 commit e4a9f0bb4e36cffe4f7021bfa27753a9f42df2ff 5827 Author: Olivier Fourdan <ofourdan@redhat.com> 5828 Date: Mon Dec 14 15:38:42 2020 +0100 5829 5830 xwayland: Remove unneeded variable 5831 5832 Just a small code cleanup, there is no need to allocate a variable only 5833 to check the return value of eglInitialize(). 5834 5835 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5836 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 5837 Reviewed-by: Tony Lindgren <tony@atomide.com> 5838 5839 commit 95be87db986470c8fce5ea91af0bbf3177f1de36 5840 Author: Olivier Fourdan <ofourdan@redhat.com> 5841 Date: Mon Dec 14 10:06:12 2020 +0100 5842 5843 xwayland: Refactor glamor EGL init 5844 5845 Glamor requires at least big GL 2.1 or GLES2, therefore Xwayland tries 5846 to initialize first GL and then GLES2 if that fails. 5847 5848 It does that all in one single function which makes the code slightly 5849 complicated, move the initialization of big-GL and GLES2 to separate 5850 functions to help with readability of the code. 5851 5852 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5853 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 5854 Reviewed-by: Tony Lindgren <tony@atomide.com> 5855 5856 commit 65673b02ef28884da3267fe1be579c20e2cddfa6 5857 Author: Tony Lindgren <tony@atomide.com> 5858 Date: Tue Dec 1 12:54:36 2020 +0200 5859 5860 xwayland: fix GL version check for GLES only devices 5861 5862 We currently bail out early for GLES only devices, and call 5863 epoxy_gl_version() too early for GLES only that will make GLES only 5864 devices return NULL for glGetString(GL_RENDERER). 5865 5866 Let's also add a check to see if we need to recreate the context to 5867 avoid pointless warnings for GLES only devices as suggested by 5868 Olivier Fourdan <ofourdan@redhat.com>. 5869 5870 Fixes: a506b4ec - xwayland: make context current to check GL version 5871 Signed-off-by: Tony Lindgren <tony@atomide.com> 5872 5873 commit 5d73a8b59e0d01d1ee4cb484e4b43563cec2eee9 5874 Author: Fabrice Fontaine <fontaine.fabrice@gmail.com> 5875 Date: Thu Dec 10 22:32:59 2020 +0100 5876 5877 meson.build: KMS support also depends on dri2 5878 5879 Kernel modesettings support also depends on dri2, see 5880 ./hw/xfree86/drivers/modesetting/meson.build 5881 5882 So update meson.build to reflect the changes made in configure.ac by 5883 commit 9c81b8f5b5d7bc987f73e8ef01a81e61205e58ee 5884 5885 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 5886 5887 commit 8c0afc9eb26a0866301072dec30717885fd14305 5888 Author: Povilas Kanapickas <povilas@radix.lt> 5889 Date: Sat Oct 10 02:09:05 2020 +0300 5890 5891 xfree86: Implement a test input driver 5892 5893 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 5894 5895 commit f95d81e88be07f43c91660e675d077ccd9ee47a9 5896 Author: Olivier Fourdan <ofourdan@redhat.com> 5897 Date: Mon Dec 7 14:21:56 2020 +0100 5898 5899 xwayland: Hold window buffer until released 5900 5901 The window buffer mechanism would free the pixmap and its corresponding 5902 Wayland buffer as soon as window buffers are disposed. 5903 5904 Typically when the X11 window is unrealized, the current window buffer 5905 is still used by the Wayland compositor and yet Xwayland will destroy 5906 the buffer. 5907 5908 As a matter of fact, Xwayland should not destroy the Wayland buffer 5909 before the wl_buffer.release event is received. 5910 5911 Add a reference counter to the window buffer similar to the to pixmap 5912 reference counter to keep the buffer around until the release callback 5913 is received. 5914 5915 Increase that reference counter on the buffer which will be attached to 5916 the surface, and drop that reference when receiving the release callback 5917 notification. 5918 5919 v2: Use a specific reference counter on the buffer rather than relying 5920 on the pixmap refcnt (Michel Dänzer <mdaenzer@redhat.com>) 5921 5922 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5923 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 5924 Acked-by: Martin Peres <martin.peres@mupuf.org> 5925 5926 commit 85d8eac4bcf44c077bb82aaae10ae45feb9c4e72 5927 Author: Olivier Fourdan <ofourdan@redhat.com> 5928 Date: Mon Dec 7 14:09:58 2020 +0100 5929 5930 xwayland: Hold cursor buffer until released 5931 5932 The cursor code would destroy the buffer as soon as the cursor is 5933 unrealized on X11 side. 5934 5935 Yet, the Wayland compositor may still be using the buffer as long as a 5936 released callback has not been received. 5937 5938 Increase the reference counter on the pixmap to hold a reference on the 5939 pixmap when attaching it to the surface and use the new pixmap release 5940 callback mechanism to release that reference when the buffer is 5941 released. 5942 5943 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5944 Acked-by: Martin Peres <martin.peres@mupuf.org> 5945 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 5946 5947 commit 79afbd608b7e6abc5d6d0f7e1fb6e460500c7934 5948 Author: Olivier Fourdan <ofourdan@redhat.com> 5949 Date: Thu Dec 10 10:10:05 2020 +0100 5950 5951 xwayland: Factorize common cursor code 5952 5953 The seat and tablet cursor functions are very similar, factorize the 5954 commonalities to simplify the code and reduce the copy/paste. 5955 5956 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 5957 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 5958 5959 commit 36e353bcf428c4e6a31292ffa749ea6395cba4a3 5960 Author: Prabhu Sundararaj <prabhu.sundararaj@nxp.com> 5961 Date: Wed Nov 25 08:02:41 2020 +0100 5962 5963 Remove check for useSIGIO option 5964 5965 Commit 6a5a4e60373c1386b311b2a8bb666c32d68a9d99 removed the option to 5966 configure useSIGIO option. Indeed, the xfree86 SIGIO support was 5967 reworked to use internal versions of OsBlockSIGIO and OsReleaseSIGIO. 5968 5969 As a result, useSIGIO is no longer needed and can dropped 5970 5971 Fixes: 6a5a4e60 - Remove SIGIO support for input [v5] 5972 Closes: xorg/xserver#1107 5973 Reviewed-by: Adam Jackson <ajax@redhat.com> 5974 Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@nxp.com> 5975 Signed-off-by: Mylène Josserand <mylene.josserand@free-electrons.com> 5976 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 5977 5978 commit 95539ab37baa1292d1f2daaa552f9741b0364cad 5979 Author: Mariusz Ceier <mceier+freedesktop@gmail.com> 5980 Date: Wed Dec 2 12:29:15 2020 +0100 5981 5982 xwayland: Replace LogMessage with LogMessageVerb 5983 5984 LogMessage logs only when the XLOG_VERBOSITY is >= 1, but by default 5985 XLOG_VERBOSITY is 0, so for example warning about deprected -listen 5986 parameter is never shown when running "Xwayland -listen 32 -help". 5987 5988 Signed-off-by: Mariusz Ceier <mceier+freedesktop@gmail.com> 5989 5990 commit 74627d13c75cab7aa73c0e713feae0934e780ba0 5991 Author: Michal Srb <msrb@suse.com> 5992 Date: Thu Jun 21 13:44:04 2018 +0200 5993 5994 xkb: Fix heap overflow caused by optimized away min. 5995 5996 Calling strlen on char[4] that does not need to contain '\0' is wrong and X 5997 server may end up running into uninitialized memory. 5998 5999 In addition GCC 8 is clever enough that it knows that strlen on char[4] can 6000 return 0, 1, 2, 3 or cause undefined behavior. With this knowledge it can 6001 optimize away the min(..., 4). In reality it can cause the memcpy to be called 6002 with bigger size than 4 and overflow the destination buffer. 6003 6004 Fixes: 83913de25d35 (xkb: Silence some compiler warnings) 6005 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/288 6006 Signed-off-by: Matt Turner <mattst88@gmail.com> 6007 6008 commit 446ff2d3177087b8173fa779fa5b77a2a128988b 6009 Author: Matthieu Herrb <matthieu@herrb.eu> 6010 Date: Thu Nov 12 19:15:07 2020 +0100 6011 6012 Check SetMap request length carefully. 6013 6014 Avoid out of bounds memory accesses on too short request. 6015 6016 ZDI-CAN 11572 / CVE-2020-14360 6017 6018 This vulnerability was discovered by: 6019 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 6020 6021 Signed-off-by: Matthieu Herrb <matthieu@herrb.eu> 6022 6023 commit 87c64fc5b0db9f62f4e361444f4b60501ebf67b9 6024 Author: Matthieu Herrb <matthieu@herrb.eu> 6025 Date: Sun Oct 11 17:05:09 2020 +0200 6026 6027 Fix XkbSetDeviceInfo() and SetDeviceIndicators() heap overflows 6028 6029 ZDI-CAN 11389 / CVE-2020-25712 6030 6031 This vulnerability was discovered by: 6032 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 6033 6034 Signed-off-by: Matthieu Herrb <matthieu@herrb.eu> 6035 6036 commit 11652706b0aa7d2609b710db0bd1262c5f6ed596 6037 Author: Michel Dänzer <mdaenzer@redhat.com> 6038 Date: Fri Nov 20 16:54:02 2020 +0100 6039 6040 present/wnmd: Translate update region to screen space 6041 6042 The region as passed in is in the source pixmap's coordinate space, so 6043 intersecting it with the clipList (which is in screen space) resulted in 6044 disappointment. 6045 6046 Fixes Firefox popups such as the hamburger menu when using the EGL 6047 backend. 6048 6049 v2: 6050 * Drop vblank->x/y_off from RegionTranslate call, since they're always 6051 0 here (present_wnmd_check_flip rejects flips for x/y_off != 0). 6052 6053 Reported-by: Robert Mader <robert.mader@posteo.de> 6054 Tested-by: Robert Mader <robert.mader@posteo.de> 6055 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 6056 Tested-by: Joakim Tjernlund <joakim.tjernlund@infinera.com> # v1 6057 6058 commit b0530fe42286f340032566ce0bf22a5e9ddfe67f 6059 Author: Michel Dänzer <mdaenzer@redhat.com> 6060 Date: Tue Jan 28 18:51:53 2020 +0100 6061 6062 glx: Remove unused bswap_CARD64 6063 6064 GCC warned about it: 6065 6066 ../../../glx/indirect_dispatch_swap.c:85:1: warning: ‘bswap_CARD64’ defined but not used [-Wunused-function] 6067 85 | bswap_CARD64(const void *src) 6068 | ^~~~~~~~~~~~ 6069 6070 commit 3ce05a44f3d9b114af936f39e3f44552c5bf2c43 6071 Author: Olivier Fourdan <ofourdan@redhat.com> 6072 Date: Thu Nov 26 14:39:32 2020 +0100 6073 6074 modesetting: Fix build with DebugPresent() enabled 6075 6076 By default, the macro DebugPresent() is a no-op but it can be enabled 6077 at build time for debugging purpose. 6078 6079 However, doing so prevents the code to build because one debug statement 6080 tries to make use of a non-existent variable: 6081 6082 present.c: In function ‘ms_present_queue_vblank’: 6083 present.c:147:18: error: ‘vbl’ undeclared (first use in this function) 6084 147 | vbl.request.sequence)); 6085 | ^~~ 6086 present.c:49:32: note: in definition of macro ‘DebugPresent’ 6087 49 | #define DebugPresent(x) ErrorF x 6088 | ^ 6089 6090 Fix the build with DebugPresent() by removing the vbl variable from the 6091 debug message. 6092 6093 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 6094 6095 commit 95b79aa907789a16f736097abe959e906f86f63a 6096 Author: Erik Kurzinger <ekurzinger@nvidia.com> 6097 Date: Fri Nov 13 14:36:14 2020 -0800 6098 6099 GLX: fix context render type queries 6100 6101 Querying the GLX_RENDER_TYPE of a GLX context via glXQueryContext will 6102 currently return the render type of the context's FB config, which is 6103 a bitmask of GLX_RGBA_BIT / GLX_COLOR_INDEX_BIT / ... values. However, 6104 this query should really return the render type that was specified 6105 when creating the context, which is one of GLX_RGBA_TYPE / 6106 GLX_COLOR_INDEX_TYPE / .... To enable this, save the render type when 6107 creating a new context (defaulting to GLX_RGBA_TYPE if unspecified), 6108 and then include this value in the context attributes sent to clients. 6109 6110 commit 9c81b8f5b5d7bc987f73e8ef01a81e61205e58ee 6111 Author: Fabrice Fontaine <fontaine.fabrice@gmail.com> 6112 Date: Wed Jan 8 22:51:42 2020 +0100 6113 6114 configure.ac: KMS support also depends on dri2 6115 6116 Kernel modesettings support also depends on dri2, see 6117 http://cgit.freedesktop.org/xorg/xserver/tree/hw/xfree86/drivers/modesetting/Makefile.am#n46 6118 6119 Fix #479 6120 6121 Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> 6122 [Patch retrieved (with a small update of commit message) from: 6123 https://git.buildroot.net/buildroot/tree/package/x11r7/xserver_xorg-server/1.20.6/0001-modesettings-needs-dri2.patch] 6124 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 6125 6126 commit 682167475c1930f80a68de58e522ac08dbb35fa8 6127 Author: Böszörményi Zoltán <zboszor@pr.hu> 6128 Date: Thu Nov 14 09:29:20 2019 +0100 6129 6130 Introduce and use BUS_USB 6131 6132 With !155, the device bus ID received via udev is constructed 6133 properly with the "usb:" prefix. But, it is not enough to 6134 make the following line to work in Section "Device": 6135 6136 BusID "usb:0:1.2:1.0" 6137 6138 Introduce BUS_USB, so the prefix can be distinguished from BUS_PCI 6139 and check the supplied BusID value against device->attribs->busid 6140 in xf86PlatformDeviceCheckBusID(). 6141 6142 Signed-off-by: Böszörményi Zoltán <zboszor@pr.hu> 6143 6144 commit c0dcadad6c18b06ddc6e349d7c58bfccb715ff55 6145 Author: Reza Arbab <arbab@linux.ibm.com> 6146 Date: Wed Mar 27 11:45:02 2019 -0500 6147 6148 linux: Fix udev ID_PATH parsing for udl devices 6149 6150 The ID_PATH for a udl device looks like this: 6151 6152 $ udevadm info /dev/dri/card2 | grep -w ID_PATH 6153 E: ID_PATH=pci-0000:00:14.0-usb-0:9.1:1.0 6154 6155 The parsing added in 0816e8fca6194 ("linux: Make platform device probe 6156 less fragile"), sets OdevAttributes::busid to "pci:0000:00:14.0", where 6157 drmGetBusid() would have returned "3-9.1:1.0". 6158 6159 Identifying this as a "pci:*" device eventually causes the vendor/device 6160 id check in probeSingleDevice() to fail, because a USB controller isn't 6161 a supported device: 6162 6163 $ udevadm info --path=/devices/pci0000:00/0000:00:14.0 | grep -e VENDOR -e ID_PCI_CLASS 6164 E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller 6165 E: ID_VENDOR_FROM_DATABASE=Intel Corporation 6166 6167 Instead of parsing out "pci:0000:00:14.0" in this case, use 6168 "usb:0:9.1:1.0" so the device probe will succeed. 6169 6170 Fixes: 0816e8fca6194 ("linux: Make platform device probe less fragile") 6171 Signed-off-by: Reza Arbab <arbab@linux.ibm.com> 6172 6173 commit af4622d3f90382225afb83e3896cb6f236f30c0a 6174 Author: Aaron Plattner <aplattner@nvidia.com> 6175 Date: Fri Nov 20 19:43:25 2020 -0800 6176 6177 modesetting: Add missing copyright notices 6178 6179 I forgot to add these in commits 4fefe73fe, b6985d6b3, 245b9db03, and 4e670f128. 6180 6181 Signed-off-by: Aaron Plattner <aplattner@nvidia.com> 6182 6183 commit 07e6935030c8f0a757bce0a90c54b59d8bf47df6 6184 Author: Povilas Kanapickas <povilas@radix.lt> 6185 Date: Sat Oct 10 02:51:40 2020 +0300 6186 6187 test/xi2: Fix mask size in XISelectEvents test 6188 6189 XI2LASTEVENT identifies the bit number, not the mask size in bits. The 6190 mask size in bits is XI2LASTEVENT + 1 and the mask size in bytes is 6191 (XI2LASTEVENT + 8) / 8 or XI2MASKSIZE. 6192 6193 commit f5220117e970a40c09babe199709bb2db69c4311 6194 Author: Povilas Kanapickas <povilas@radix.lt> 6195 Date: Sat Oct 10 02:51:39 2020 +0300 6196 6197 dix: Extract FreezeThisEventIfNeededForSyncGrab() 6198 6199 commit 36f8dacc0652ddc5657e70942269f1f9e22710c6 6200 Author: Povilas Kanapickas <povilas@radix.lt> 6201 Date: Sat Oct 10 02:51:37 2020 +0300 6202 6203 dix: Extract ActivateGrabNoDeliver() 6204 6205 commit 23a8b62d34344575f9df9d057fb74bfefa94a77b 6206 Author: Povilas Kanapickas <povilas@radix.lt> 6207 Date: Sat Oct 10 02:51:36 2020 +0300 6208 6209 dix: Store replayed event into GrabInfoRec struct as InternalEvent* 6210 6211 commit 8bd8b3af1931629db548d39bb390edbef4315b0b 6212 Author: Povilas Kanapickas <povilas@radix.lt> 6213 Date: Sat Oct 10 02:51:35 2020 +0300 6214 6215 dix: Rename LISTENER_* to TOUCH_LISTENER_* 6216 6217 commit f6e0bf68333f7edb02e3b937bc164f6591da2320 6218 Author: Povilas Kanapickas <povilas@radix.lt> 6219 Date: Sat Oct 10 02:51:34 2020 +0300 6220 6221 Xi: Make check_for_touch_selection_conflicts() more generic 6222 6223 commit 56d720592155c55617728e8ddf1ba8192fe5d46c 6224 Author: Povilas Kanapickas <povilas@radix.lt> 6225 Date: Sat Oct 10 02:51:33 2020 +0300 6226 6227 dix: Extract DeliverDeviceClassesChangedEvent() utility function 6228 6229 commit 5b0c5344b7131f0812bcbf070194adaa2175d150 6230 Author: Povilas Kanapickas <povilas@radix.lt> 6231 Date: Sat Oct 10 02:51:32 2020 +0300 6232 6233 dix: Extract CopySprite() utility 6234 6235 commit acd819ac07bf66165f5d44af4a224f68c31bc30d 6236 Author: Povilas Kanapickas <povilas@radix.lt> 6237 Date: Sat Oct 10 02:51:31 2020 +0300 6238 6239 dix: Extract FixUpXI2DeviceEventFromWindow() 6240 6241 commit bb7aab6afe8655fc40ecff49791889b6512bb6a0 6242 Author: Jon Turney <jon.turney@dronecode.org.uk> 6243 Date: Sat Nov 21 15:45:49 2020 +0000 6244 6245 hw/xwin: Fix building with -fno-common 6246 6247 Provide an actual definition of noDriExtension where used, rather than a 6248 tentative definition in a header, to fix compilation with -fno-common 6249 (the default with gcc 10). 6250 6251 commit d18dcecbe08a9ff22e43f12b6b7679a6ef1a6eb0 6252 Author: Olivier Fourdan <ofourdan@redhat.com> 6253 Date: Mon Nov 2 10:24:45 2020 +0100 6254 6255 xwayland: Clean up pending eglstream on pixmap destroy 6256 6257 EGLStream implementation in Xwayland keeps a list of pending streams for 6258 a window. 6259 6260 If the windows's pixmap is destroyed while there is a pending stream, 6261 the pending stream will point to freed memory once the callback is 6262 triggered. 6263 6264 Make sure to cancel the pending stream if there's one when the pixmap is 6265 destroyed. 6266 6267 v2: 6268 * Use xorg_list_for_each_entry() instead of the safe variant (Michel 6269 Dänzer <mdaenzer@redhat.com>) 6270 6271 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 6272 Tested-by: Karol Szuster <karolsz9898@gmail.com> 6273 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 6274 Closes https://gitlab.freedesktop.org/xorg/xserver/-/issues/1096 6275 6276 commit 662b2bcb84d5782aff1b93732eb010b0b43e5706 6277 Author: Olivier Fourdan <ofourdan@redhat.com> 6278 Date: Tue Sep 22 09:54:15 2020 +0200 6279 6280 xwayland: Use the pixmap release callback with EGLStream 6281 6282 Commit 77658741 - "xwayland: Add buffer release callback" added an API 6283 to deal with Wayland buffer release callbacks. 6284 6285 The EGLstream implementation has its own wl_buffer callback, move that 6286 to the buffer release API instead so we don't have to deal with Wayland 6287 buffers directly and match the other Xwayland pixmap backend 6288 implementations. 6289 6290 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 6291 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 6292 Tested-by: Erik Kurzinger <ekurzinger@nvidia.com> 6293 6294 commit e538601128c1a8bb4247a817da2bbb3f671811b3 6295 Author: Alan Coopersmith <alan.coopersmith@oracle.com> 6296 Date: Sun Nov 1 15:52:48 2020 -0800 6297 6298 int10: wrap entire V_ADDR_R* macros in parens for safer expansion 6299 6300 Resolves warnings from Oracle Parfait static analyser: 6301 6302 Error: Misleading macro 6303 Misleading macro [misleading-macro]: 6304 misleading evaluation of ternary '?:' operator in expansion of macro V_ADDR_RB due to missing parentheses 6305 at line 392 of hw/xfree86/int10/generic.c. 6306 '|' operator has higher precedence than ternary '?:' operator inside macro body at line 431 6307 low precedence ternary '?:' operator is hidden by expansion of macro V_ADDR_RB at line 431 6308 Misleading macro [misleading-macro]: 6309 misleading evaluation of ternary '?:' operator in expansion of macro V_ADDR_RB due to missing parentheses 6310 at line 392 of hw/xfree86/int10/generic.c. 6311 '<<' operator has higher precedence than ternary '?:' operator inside macro body at line 431 6312 low precedence ternary '?:' operator is hidden by expansion of macro V_ADDR_RB at line 431 6313 Misleading macro [misleading-macro]: 6314 misleading evaluation of ternary '?:' operator in expansion of macro V_ADDR_RB due to missing parentheses 6315 at line 392 of hw/xfree86/int10/generic.c. 6316 '<<' operator has higher precedence than ternary '?:' operator inside macro body at line 442 6317 low precedence ternary '?:' operator is hidden by expansion of macro V_ADDR_RB at line 442 6318 Misleading macro [misleading-macro]: 6319 misleading evaluation of ternary '?:' operator in expansion of macro V_ADDR_RB due to missing parentheses 6320 at line 392 of hw/xfree86/int10/generic.c. 6321 '<<' operator has higher precedence than ternary '?:' operator inside macro body at line 443 6322 low precedence ternary '?:' operator is hidden by expansion of macro V_ADDR_RB at line 443 6323 Misleading macro [misleading-macro]: 6324 misleading evaluation of ternary '?:' operator in expansion of macro V_ADDR_RB due to missing parentheses 6325 at line 392 of hw/xfree86/int10/generic.c. 6326 '|' operator has higher precedence than ternary '?:' operator inside macro body at line 443 6327 low precedence ternary '?:' operator is hidden by expansion of macro V_ADDR_RB at line 441 6328 Misleading macro [misleading-macro]: 6329 misleading evaluation of ternary '?:' operator in expansion of macro V_ADDR_RB due to missing parentheses 6330 at line 392 of hw/xfree86/int10/generic.c. 6331 '<<' operator has higher precedence than ternary '?:' operator inside macro body at line 443 6332 low precedence ternary '?:' operator is hidden by expansion of macro V_ADDR_RB at line 443 6333 6334 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> 6335 6336 commit a6574033f464c7cde02bce8f1b130ff6b2b2d9eb 6337 Author: Alan Coopersmith <alan.coopersmith@oracle.com> 6338 Date: Sun Nov 1 15:45:08 2020 -0800 6339 6340 xkb: always set *mask_rtrn in XkbVirtualModsToReal 6341 6342 Resolves warning from Oracle Parfait static analyser: 6343 6344 Error: Uninitialised memory 6345 Uninitialised memory variable [uninitialised-mem-var] (CWE 457): 6346 Possible access to uninitialised memory referenced by variable 'mask' 6347 at line 721 of xkb/XKBMisc.c in function 'XkbUpdateKeyTypeVirtualMods'. 6348 Path in callee avoiding write at line 720 6349 mask allocated at line 718 6350 6351 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> 6352 6353 commit 034e792662a1c0c6ab52190e457b1f017bec01c6 6354 Author: Alan Coopersmith <alan.coopersmith@oracle.com> 6355 Date: Sun Nov 1 13:55:59 2020 -0800 6356 6357 dmx: example code should set a good example 6358 6359 Resolves warning from Oracle Parfait static analyser: 6360 6361 Error: Unchecked result 6362 Unchecked result [unchecked-result-call-X]: 6363 Unchecked return value from call to XOpenDisplay. Value display must be ch 6364 ecked to ensure this function was successful. 6365 at line 73 of hw/dmx/examples/xbell.c in function 'main'. 6366 6367 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> 6368 6369 commit d00594ebc7941a5491ad5583d6890ab7dc2ffc43 6370 Author: Alan Coopersmith <alan.coopersmith@oracle.com> 6371 Date: Sun Nov 1 13:38:21 2020 -0800 6372 6373 AddInputDevice: only need to check once if we failed to calloc dev 6374 6375 Resolves warning from Oracle Parfait static analyser: 6376 6377 Warning: Impossible or redundant condition 6378 Impossible or redundant condition [impossible-redundant-condition]: 6379 Condition 'dev != NULL' of branch is determined by previous branch 6380 at line 270 of dix/devices.c in function 'AddInputDevice'. 6381 Condition 'dev != NULL' from this branch implies following branch is always true at line 262 6382 6383 Fixes: commit 493ad83323 6384 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> 6385 6386 commit 250db8708ac7ab11356b42faa493b6f1ba753013 6387 Author: Michel Dänzer <mdaenzer@redhat.com> 6388 Date: Tue Sep 15 11:49:20 2020 +0200 6389 6390 xwayland: Add and hook up test script 6391 6392 It runs XTS via piglit on (non-rootless) Xwayland on weston using the 6393 headless backend. 6394 6395 Xwayland might use glamor if enabled in the build, but we're making sure 6396 it uses software rendering. 6397 6398 v2: 6399 * Use weston-info to wait for weston to be ready, instead of just a 6400 fixed sleep. (Martin Peres) 6401 v3: 6402 * Build wayland 1.18 & weston 9.0 locally, since the packages in Debian 6403 buster are too old for current Xwayland. 6404 6405 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 6406 6407 commit 821399a9c920323e4934a2fd6375b86a151fa83c 6408 Author: Michel Dänzer <mdaenzer@redhat.com> 6409 Date: Wed Nov 11 12:45:36 2020 +0100 6410 6411 ci: Base docker image on Debian buster instead of testing 6412 6413 By its nature, testing incurs a risk of breaking something every time 6414 we bump the image. 6415 6416 This requires building wayland-protocols locally, since the package in 6417 buster is too old for current Xwayland. 6418 6419 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 6420 6421 commit ab73c16930d67e5c80a23727804850406309b787 6422 Author: Michel Dänzer <mdaenzer@redhat.com> 6423 Date: Wed Sep 16 16:32:02 2020 +0200 6424 6425 ci: Update to the latest templates 6426 6427 They now ensure the image is up to date in forked projects, and we no 6428 longer need to reconstruct the image name. 6429 6430 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 6431 6432 commit 852d6d49109a3f0a9a73c86f5d5165d2c8dc5cbe 6433 Author: Michel Dänzer <mdaenzer@redhat.com> 6434 Date: Thu Nov 12 12:19:09 2020 +0100 6435 6436 ci: Explicitly list packages needed to build xserver 6437 6438 Instead of relying on apt-get build-dep. 6439 6440 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 6441 6442 commit 8469935fe26659219560f425c7b35d564ad77324 6443 Author: Michel Dänzer <mdaenzer@redhat.com> 6444 Date: Thu Nov 12 12:01:45 2020 +0100 6445 6446 ci: Use a variable for ephemeral packages 6447 6448 So that they only need to be listed once. 6449 6450 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 6451 6452 commit 996ba1b99a7212471d3c24359056c412de70c28d 6453 Author: Michel Dänzer <mdaenzer@redhat.com> 6454 Date: Wed Nov 11 18:22:28 2020 +0100 6455 6456 ci: Remove rendercheck Git tree 6457 6458 Noticed this was missing while making changes in this area. 6459 6460 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 6461 6462 commit 8fc84a00254f642947397276e14d7740f502895d 6463 Author: Michel Dänzer <mdaenzer@redhat.com> 6464 Date: Wed Nov 11 19:02:50 2020 +0100 6465 6466 ci: Set GIT_STRATEGY=none for the container build job 6467 6468 It doesn't need a full checkout of the xserver Git tree, so this can 6469 save some time and resources. 6470 6471 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 6472 6473 commit 9a7515943f5a9b70567512cdc48cb2f688b3284b 6474 Author: Michel Dänzer <mdaenzer@redhat.com> 6475 Date: Wed Sep 16 12:55:35 2020 +0200 6476 6477 ci: Use $FDO_CI_CONCURRENT if set 6478 6479 To take advantage of more than 4 CPU cores available to the container. 6480 6481 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 6482 6483 commit 28ed4b95e90fb225fc32cfdce16df603ab600fcd 6484 Author: Olivier Fourdan <ofourdan@redhat.com> 6485 Date: Tue Nov 10 10:40:05 2020 +0100 6486 6487 xwayland: Add a man page 6488 6489 Xwayland was missing a man page, add one. 6490 6491 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 6492 Reviewed-by: Martin Peres <martin.peres@mupuf.org> 6493 6494 commit d14cef853af52408e7ddba31b72cf5ac14389754 6495 Author: Olivier Fourdan <ofourdan@redhat.com> 6496 Date: Tue Nov 10 10:02:39 2020 +0100 6497 6498 xwayland: Do not list option "-eglstream" if not supported 6499 6500 As Xwayland is usually spawned by the Wayland server/compositor, its 6501 command line options are not always adjustable. 6502 6503 Yet, if EGLStream is not supported in a given Xwayland build, the option 6504 will do nothing (yet we must still accept it otherwise Xwayland would 6505 refuse to run if the Wayland compositor uses it). 6506 6507 If Xwayland was built without support for EGLStream, there is not point 6508 in showing the option in the help message though. 6509 6510 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 6511 Reviewed-by: Martin Peres <martin.peres@mupuf.org> 6512 6513 commit d163f938a00c177c5ff28e779993f18ee69476d4 6514 Author: Olivier Fourdan <ofourdan@redhat.com> 6515 Date: Tue Nov 10 09:53:57 2020 +0100 6516 6517 xwayland: Add help entry for -shm 6518 6519 The command line options "-shm" is used to instruct Xwayland to prefer 6520 shared-memory for passing buffers to the Wayland server, rather than 6521 using glamor and DRI3. 6522 6523 The option was there from the beginning, yet not documented in the 6524 "-help" message. 6525 6526 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 6527 Reviewed-by: Martin Peres <martin.peres@mupuf.org> 6528 6529 commit df3aa4922fd7e256169e541188b724f67ca948e1 6530 Author: Michel Dänzer <mdaenzer@redhat.com> 6531 Date: Fri Nov 6 10:14:19 2020 +0100 6532 6533 xwayland: Make window_get_client_toplevel non-recursive 6534 6535 Noticed while reading the code. 6536 6537 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 6538 6539 commit 899cebb76ab7754fea49f7babcd64a7e94052cc8 6540 Author: Olivier Fourdan <ofourdan@redhat.com> 6541 Date: Tue Oct 27 16:33:55 2020 +0100 6542 6543 configure: Build hashtable for Xres and glvnd 6544 6545 With autoconf, hashtable support is built along with Xres support. 6546 6547 Yet, glvnd also use it, so when disabling Xres from configure, the 6548 build will fail at link time because hashtable functions are not 6549 available. 6550 6551 Untie the build of hashtable from Xres support, just like meson build 6552 does. 6553 6554 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 6555 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1091 6556 6557 commit 606ba7fc51e5420646f75c4e672fbe61eb7c7e6e 6558 Author: Olivier Fourdan <ofourdan@redhat.com> 6559 Date: Thu Nov 5 18:35:54 2020 +0100 6560 6561 xwayland: Create an xwl_window for toplevel only 6562 6563 One general assumption in Xwayland is that the xwl_window remains the 6564 same for all the child windows of the toplevel window. 6565 6566 When mapping a new X11 window, ensure_surface_for_window() checks for an 6567 existing xwl_window by using xwl_window_get() which will just check for 6568 the registered xwl_window for the window. 6569 6570 That means that a client mapping a child window of an existing window 6571 with a xwl_window will get another different xwl_window. 6572 6573 If an X11 client issues a Present request on the parent window, hence 6574 placed underneath its child window of the same size, the Wayland 6575 compositor may not send the frame callback event for the parent's 6576 Wayland surface which is reckoned to be not visible, obscured behind 6577 the other Wayland surface for the child X11 window. 6578 6579 That bug affects some games running in wine which may get 1 fps because 6580 the repaint occurs only on timeout with a long interval (as with, e.g. 6581 https://bugs.winehq.org/show_bug.cgi?id=47066) 6582 6583 Fix ensure_surface_for_window() by using xwl_window_from_window() which 6584 will walk the window tree, so that a child window won't get another 6585 xwl_window than its parent. 6586 6587 https://gitlab.freedesktop.org/xorg/xserver/-/issues/1099 6588 See-also: https://bugs.winehq.org/show_bug.cgi?id=47066 6589 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 6590 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 6591 6592 commit ffd02d9b26bd560849c407a6dd4f5c4d7d2c1736 6593 Author: Olivier Fourdan <ofourdan@redhat.com> 6594 Date: Mon Nov 2 15:44:31 2020 +0100 6595 6596 xwayland: non-rootless requires the XDG-WM-Base protocol 6597 6598 When running non-rootless, Xwayland requires that the Wayland compositor 6599 supports the XDG-WM-Base protocol. 6600 6601 Check for XDG-WM-Base protocol support at startup and exit cleanly if 6602 missing rather than segfaulting later in ensure_surface_for_window() 6603 while trying to use xdg_wm_base_get_xdg_surface(). 6604 6605 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 6606 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 6607 Reviewed-by: Simon Ser <contact@emersion.fr> 6608 6609 commit 7a7e55c5c1d6461a9f4d9a4e0129c1c6e1fd3d66 6610 Author: Alex Goins <agoins@nvidia.com> 6611 Date: Mon Oct 5 18:19:52 2020 -0500 6612 6613 glamor: Update pixmap's devKind when making it exportable 6614 6615 When making a pixmap exportable, glamor will currently create a temporary 6616 exported pixmap backed by a GBM bo, with the devKind updated to the stride of 6617 the bo. However, when the backing of the exported pixmap is swapped into the 6618 original, the devKind of the original is not updated. 6619 6620 Some GBM bos may get implicitly padded, in which case the devKind of the pixmap 6621 will not match the stride of the backing bo. For example, an 800x600 pixmap will 6622 have a devKind of 3200, but the bo's stride will be 3328. This can cause 6623 corruption with PRIME, when the sink uses the wrong stride to display the shared 6624 pixmap. 6625 6626 This commit changes glamor_make_pixmap_exportable() to update the devKind of the 6627 original pixmap after it swaps exported pixmap's backing into it, keeping 6628 everything consistent. 6629 6630 Fixes issue #1018. 6631 6632 Signed-off-by: Alex Goins <agoins@nvidia.com> 6633 Signed-off-by: Aaron Plattner <aplattner@nvidia.com> 6634 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 6635 6636 commit affc47452507d7e4605fd8c9a16db078e4f2aea2 6637 Author: Adam Jackson <ajax@redhat.com> 6638 Date: Tue Sep 22 16:13:00 2020 -0400 6639 6640 xwayland: Drop the separate refcount for the xwl_pixmap 6641 6642 Instead, bump the pixmap's refcount at the bottom of post_damage to 6643 reflect the compositor's hold on the buffer, and "destroy" the pixmap in 6644 the buffer release callback (which will dec the pixmap's refcount and 6645 free if necessary). 6646 6647 Signed-off-by: Adam Jackson <ajax@redhat.com> 6648 6649 commit 4e670f1281ad75c5673b6ac75645036d810da8d9 6650 Author: Aaron Plattner <aplattner@nvidia.com> 6651 Date: Fri Oct 25 00:06:40 2019 -0700 6652 6653 modesetting: Add CTM RandR property 6654 6655 When the "CTM" (color transform matrix) modesetting property is available, 6656 create a corresponding RandR property. 6657 6658 To match the format of the property available in the amdgpu driver, expose it as 6659 an array of 18 32-bit XA_INTEGERs representing a 3x3 matrix in row-major order, 6660 where each entry is a S31.32 sign-magnitude fixed-point number with the 6661 fractional part listed first. 6662 6663 Signed-off-by: Aaron Plattner <aplattner@nvidia.com> 6664 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 6665 Reviewed-by: James Jones <jajones@nvidia.com> 6666 6667 commit 245b9db03a1e1189b992409283e3d88b5d56e62d 6668 Author: Aaron Plattner <aplattner@nvidia.com> 6669 Date: Thu Oct 24 13:46:35 2019 -0700 6670 6671 modesetting: Use GAMMA_LUT when available 6672 6673 If the kernel exposes GAMMA_LUT and GAMMA_LUT_SIZE properties and the size is 6674 not what the server has pre-configured for the crtc, free the old gamma ramp 6675 memory allocated by the server and replace it with new allocations of the 6676 appropriate size. 6677 6678 In addition, when GAMMA_LUT is available, use drmModeCreatePropertyBlob() and 6679 drmModeObjectSetProperty() to set the gamma ramp rather than using the legacy 6680 drmModeCrtcSetGamma() function. 6681 6682 Add a new option "UseGammaLUT" to allow disabling this new behavior and falling 6683 back to drmModeCrtcSetGamma() unconditionally. 6684 6685 Signed-off-by: Aaron Plattner <aplattner@nvidia.com> 6686 6687 commit b6985d6b3fb3e9ae36f638b0fd65cfad3d4bbd46 6688 Author: Aaron Plattner <aplattner@nvidia.com> 6689 Date: Thu Oct 24 13:41:39 2019 -0700 6690 6691 modesetting: Query properties even in non-atomic mode 6692 6693 Modeset properties can be set even when ms->atomic_modeset is disabled by using 6694 the drmModeObjectSetProperty() function. 6695 6696 This will be necessary in a later change in order to set the GAMMA_LUT and CTM 6697 properties. 6698 6699 Signed-off-by: Aaron Plattner <aplattner@nvidia.com> 6700 6701 commit 4fefe73feaee31a992b284963599d63feb598807 6702 Author: Aaron Plattner <aplattner@nvidia.com> 6703 Date: Tue Oct 22 10:06:30 2019 -0700 6704 6705 modesetting: Store property values in drmmode_prop_info_rec 6706 6707 A later change will need to read the value of the GAMMA_LUT_SIZE property. 6708 6709 Signed-off-by: Aaron Plattner <aplattner@nvidia.com> 6710 6711 commit 1626e9fa77c0d3715d38ededd43656aa6d942bd9 6712 Author: Peter Harris <pharris@opentext.com> 6713 Date: Wed Sep 30 16:01:06 2020 -0400 6714 6715 glx: set errorValue when returning GLXBadFBConfig 6716 6717 client->errorValue is already set in validGlxFBConfig. Set it in 6718 __glXDisp_CreateContextAttribsARB for consistency. 6719 6720 Signed-off-by: Peter Harris <pharris@opentext.com> 6721 6722 commit 96d19e898acb56d8fc6e6febbc6498f67cdd66a0 6723 Author: Adam Jackson <ajax@redhat.com> 6724 Date: Thu Sep 24 17:08:27 2020 -0400 6725 6726 glx: Implement GLX_EXT_get_drawable_type 6727 6728 Trivial extension to let the client query whether this is a window 6729 pixmap or pbuffer. Mostly for Mesa's convenience when setting up 6730 drawable state, but plausibly useful for apps and middleware as well. 6731 6732 Upstream OpenGL Registry merge request: 6733 6734 https://github.com/KhronosGroup/OpenGL-Registry/pull/425 6735 6736 commit c15dd0ba4893f79f7181e783cb1ba404edca917a 6737 Author: Bernhard Übelacker <bernhardu@mailbox.org> 6738 Date: Sun Sep 27 18:03:48 2020 +0200 6739 6740 os: Fix instruction pointer written in xorg_backtrace 6741 6742 The address retrieved in "pip.start_ip" is not necessarily the same 6743 address as unw_get_proc_name finds as nearest symbol and returns in "off". 6744 Therefore using "pip.start_ip + off" is not reliable, at least 6745 visible in the binaries from the Debian repository. 6746 6747 Bug-Debian: https://bugs.debian.org/971088 6748 6749 Signed-off-by: Bernhard Übelacker <bernhardu@mailbox.org> 6750 6751 commit acc581c96f16fe3c097dfd0da4ff33f7b104597d 6752 Author: Dor Askayo <dor.askayo@gmail.com> 6753 Date: Sat Sep 26 15:54:45 2020 +0300 6754 6755 dri3: Add missing libdrm dependency in Makefile.am 6756 6757 Fixes: 0ce93e5ba774 "dri3: Include dix-config.h instead of 6758 xorg-config.h" 6759 Signed-off-by: Dor Askayo <dor.askayo@gmail.com> 6760 6761 commit efb3abddd49fb75bd6d0e31046fed43d258c93da 6762 Author: Kishore Kadiyala <kishore.kadiyala@intel.com> 6763 Date: Sat Sep 19 01:28:14 2020 +0530 6764 6765 modesetting: keep going if a modeset fails on EnterVT 6766 6767 There was a time when setting a mode on a CRTC would not depend on the 6768 associated connector's state. If a mode had been set successfully once, 6769 it would mean it would work later on. 6770 6771 This changed with the introduction of new connectors type that now 6772 require a link training sequence (DP, HDMI 2.0), and that means that 6773 some events may have happened while the X server was not master that 6774 would then prevent the mode from successfully be restored to its 6775 previous state. 6776 6777 This patch relaxes the requirement that all modes should be restored on 6778 EnterVT, or the entire X-Server would go down by allowing modesets to 6779 fail (with some warnings). If a modeset fails, the CRTC will be 6780 disabled, and a RandR event will be sent for the desktop environment to 6781 fix the situation as well as possible. 6782 6783 Additional patches might be needed to make sure that the user would 6784 never be left with all screens black in some scenarios. 6785 6786 v2 (Martin Peres): 6787 - whitespace fixes 6788 - remove the uevent handling (it is done in a previous patch) 6789 - improve the commit message 6790 - reduce the size of the patch by not changing lines needlessly 6791 - return FALSE if one modeset fails in ignore mode 6792 - add comments/todos to explain why we do things 6793 - disable the CRTCs that failed the modeset 6794 6795 Signed-off-by: Kishore Kadiyala <kishore.kadiyala@intel.com> 6796 Signed-off-by: Martin Peres <martin.peres@linux.intel.com> 6797 Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> 6798 Tested-by: Kishore Kadiyala <kishore.kadiyala@intel.com> 6799 Closes: #1010 6800 6801 commit 293cf660c95d7ba36510bcc4114d7fd5c5f3801c 6802 Author: Martin Peres <martin.peres@linux.intel.com> 6803 Date: Fri Apr 24 18:06:16 2020 +0300 6804 6805 modesetting: check the kms state on EnterVT 6806 6807 Normally, we would receive a uevent coming from Linux's DRM subsystem, 6808 which would trigger the check for disappearing/appearing resources. 6809 However, this event is not received when X is not master (another VT 6810 is selected), and so the userspace / desktop environment would not be 6811 notified about the changes that happened while X wasn't master. 6812 6813 To fix the issue, this patch forces a refresh on EnterVT by splitting 6814 the kms-checking code from the uevent handling into its own (exported) 6815 function called drmmode_update_kms_state. This function is then called 6816 from both the uevent-handling function, and on EnterVT right before 6817 restoring the modes. 6818 6819 Signed-off-by: Martin Peres <martin.peres@linux.intel.com> 6820 Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> 6821 Acked-by: Kishore Kadiyala <kishore.kadiyala@intel.com> 6822 Tested-by: Kishore Kadiyala <kishore.kadiyala@intel.com> 6823 6824 commit 4c00369024c9754e670fca37804711fef2980e2f 6825 Author: Povilas Kanapickas <povilas@radix.lt> 6826 Date: Tue Sep 22 20:53:49 2020 +0300 6827 6828 Bump input minor ABI due to addition of input event drain callback 6829 6830 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 6831 6832 commit 5eb985e3531b69d3ddc4dc0d4b69b4280b1626f8 6833 Author: Povilas Kanapickas <povilas@radix.lt> 6834 Date: Thu Sep 17 00:55:17 2020 +0300 6835 6836 mi: Add a callback to notify driver about input event submission 6837 6838 This is useful for mock input drivers that control the server in 6839 integration tests. Given that input submission happens on a different 6840 thread than processing, it's otherwise impossible for the driver to 6841 synchronize with the completion of the processing of submitted events. 6842 6843 Signed-off-by: Povilas Kanapickas <povilas@radix.lt> 6844 6845 commit a5f439dcd21b4fda093cb382bb1a758b434a1444 6846 Author: Olivier Fourdan <ofourdan@redhat.com> 6847 Date: Mon Sep 14 15:39:10 2020 +0200 6848 6849 xwayland: Remove pending stream reference when freeing 6850 6851 The EGLStream backend keeps a queue of pending streams for each Xwayland 6852 window. 6853 6854 However, when this pending queue is freed, the corresponding private 6855 data may not be cleared (typically if the pixmap for this window has 6856 changed before the compositor finished attaching the consumer for the 6857 window's pixmap's original eglstream), leading to a use-after-free and a 6858 crash when trying to use that data as the window pixmap. 6859 6860 Make sure to clear the private data when the pending stream is freed. 6861 6862 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1055 6863 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 6864 Tested-by: Karol Szuster <karolsz9898@gmail.com> 6865 Reviewed-by: Adam Jackson <ajax@redhat.com> 6866 6867 commit 0b86c0c36241989d7e9662d007c5297fe22ae8b5 6868 Author: Olivier Fourdan <ofourdan@redhat.com> 6869 Date: Mon Sep 14 14:35:22 2020 +0200 6870 6871 xwayland: Add a flag for n-buffers in EGL backend 6872 6873 Using multiple window buffers crashes with EGLStream, which does not 6874 need it anyway as this is handled through EGL directly. 6875 6876 Add a flag to the EGL backend to indicate whether it would benefit from 6877 multiple buffers and use this in the get_buffer() function. 6878 6879 Thanks to Adam Jackson <ajax@redhat.com> for pointing out that issue 6880 with EGLStream. 6881 6882 v2: Fix logical test (Adam Jackson <ajax@redhat.com>) 6883 6884 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 6885 Reviewed-by: Adam Jackson <ajax@redhat.com> 6886 6887 commit ae84f14fb554e5ad54c51c2e6d52ab4a68bf7a0a 6888 Author: Olivier Fourdan <ofourdan@redhat.com> 6889 Date: Mon Sep 14 14:26:34 2020 +0200 6890 6891 xwayland: Add a flag to expose EGL backend features 6892 6893 The present flip does not work with the EGLStream backend. Similarly, 6894 the EGLStream backend does not require the buffer to be flushed as 6895 eglSwapBuffers() should take care of this. 6896 6897 Instead of actually checking the backend in use in the present code, 6898 add a flag in the form of a bitfield to the EGL backend to indicate 6899 its features and requirements. 6900 6901 This should not introduce any functional change. 6902 6903 v2: Fix logical test (Adam Jackson <ajax@redhat.com>) 6904 6905 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 6906 Reviewed-by: Adam Jackson <ajax@redhat.com> 6907 6908 commit 239ebdc9e447d4f836d0c2aa6068c6064fffb46c 6909 Author: Greg V <greg@unrelenting.technology> 6910 Date: Tue Sep 15 17:41:04 2020 +0300 6911 6912 xwayland: use drmGetNodeTypeFromFd for checking if a node is a render one 6913 6914 Major/minor numbers are a.. major (ha) source of pain in FreeBSD porting. 6915 In this case, Xwayland was thinking that /dev/dri/card0 is already a render node, 6916 because the st_rdev on FreeBSD was passing the Linux-style check, 6917 and because of the assumption, acceleration would fail because 6918 various ioctls like AMDGPU_INFO would be denied on the non-render node. 6919 6920 Switch to libdrm's function that already works correctly on all platforms. 6921 6922 Signed-off-by: Greg V <greg@unrelenting.technology> 6923 Reviewed-by: Emmanuel Vadot <manu@FreeBSD.org> 6924 6925 commit add3df2001a2eadc41c47683f50fdc0fd8b14964 6926 Author: Michel Dänzer <mdaenzer@redhat.com> 6927 Date: Tue Sep 15 11:43:16 2020 +0200 6928 6929 Consolidate fourcc.h 6930 6931 Move the copy in hw/xfree86/common to include/, and remove the one in 6932 hw/kdrive/src/. 6933 6934 Fixes DIX glamor code including an xfree86 DDX header. 6935 6936 commit 62d8c1cc69e273199c9eb23e87b8631d32c56d33 6937 Author: Michel Dänzer <mdaenzer@redhat.com> 6938 Date: Tue Sep 15 11:41:34 2020 +0200 6939 6940 present: Include dix-config.h instead of xorg-config.h 6941 6942 This is DIX code. 6943 6944 commit 0ce93e5ba774a53459bac8c23016c5d3232038eb 6945 Author: Michel Dänzer <mdaenzer@redhat.com> 6946 Date: Tue Sep 15 11:38:55 2020 +0200 6947 6948 dri3: Include dix-config.h instead of xorg-config.h 6949 6950 This is DIX code. 6951 6952 commit 97f858d336a85cb49de6275918793c773d5d9db1 6953 Author: Uday Kiran Pichika <pichika.uday.kiran@intel.com> 6954 Date: Wed Aug 19 16:20:15 2020 +0530 6955 6956 modesetting: Allow users to opt-in VRR support 6957 6958 Fetch VariableRefresh option value from X conf file for 6959 modesetting backend DDX driver. This option defaults to false, 6960 and must be set to "true" in conf file for variable refresh 6961 support in the DDX driver. 6962 6963 Signed-off-by: Uday Kiran Pichika <pichika.uday.kiran@intel.com> 6964 6965 commit ede2c32ce116138ddf081932ea2c33bd6f4b6990 6966 Author: Uday Kiran Pichika <pichika.uday.kiran@intel.com> 6967 Date: Thu Jun 18 16:07:33 2020 +0530 6968 6969 modesetting: Detect changes to the _VARIABLE_REFRESH window properties 6970 6971 Window wrappers gets the notification when the window 6972 properties changes. These wrappers are mainly used to 6973 keep track of per-window _VARIABLE_REFRESH property values. 6974 6975 These changes have been ported from AMDGPU 6976 6977 Signed-off-by: Uday Kiran Pichika <pichika.uday.kiran@intel.com> 6978 6979 commit 9823ea4ed24db76b1e61d69a8da8f7599857d02a 6980 Author: Uday Kiran Pichika <pichika.uday.kiran@intel.com> 6981 Date: Thu Jun 18 11:31:31 2020 +0530 6982 6983 modesetting: Lay the foundation for enabling VRR 6984 6985 These changes have been ported from AMD GPU DDX driver. 6986 6987 This patch adds support for setting the CRTC variable refresh property 6988 for suitable windows flipping via the Present extension. 6989 6990 In order for a window to be suitable for variable refresh it must have 6991 the _VARIABLE_REFRESH property set by the MESA and inform Modesetting 6992 DDX driver with window property updates. 6993 6994 Then the window must pass the checks required to be suitable for 6995 Present extension flips - it must cover the entire X screen and no 6996 other window may already be flipping. And also DRM connector should 6997 be VRR capable. 6998 6999 With these conditions met every CRTC for the X screen will have their 7000 variable refresh property set to true. 7001 7002 Kernel Changes to support this feature in I915 driver is under development. 7003 7004 Tested with DOTA2, Xonotic and custom GLX apps. 7005 7006 Signed-off-by: Uday Kiran Pichika <pichika.uday.kiran@intel.com> 7007 7008 commit 42878790708c2a9ecdbb81f635e5e3a34842e34c 7009 Author: Michel Dänzer <mdaenzer@redhat.com> 7010 Date: Fri Sep 4 13:03:35 2020 +0200 7011 7012 present/wnmd: Remove no-op present_wnmd_flip_destroy 7013 7014 Reviewed-by: Roman Gilg <subdiff@gmail.com> 7015 7016 commit 59c40b0ee7cd864dd098f5ac41bbfe96e7bd0e9b 7017 Author: Michel Dänzer <mdaenzer@redhat.com> 7018 Date: Fri Sep 4 13:02:04 2020 +0200 7019 7020 present/wnmd: Remove dead present_wnmd_can_window_flip 7021 7022 present_can_window_flip is only called from the Xorg modesetting 7023 driver, never in WNMD mode. 7024 7025 Reviewed-by: Roman Gilg <subdiff@gmail.com> 7026 7027 commit b6b1161fd7ac409156fb69439897bcabdeacf393 7028 Author: Michel Dänzer <mdaenzer@redhat.com> 7029 Date: Fri Sep 4 12:50:00 2020 +0200 7030 7031 present/wnmd: Remove dead check from present_wnmd_check_flip 7032 7033 present_wnmd_toplvl_pixmap_window returns a window with the same window 7034 pixmap, so the check could never fail. 7035 7036 Reviewed-by: Roman Gilg <subdiff@gmail.com> 7037 7038 commit 4c25356d6cd908c5030c70e712076dff318ac00d 7039 Author: Michel Dänzer <mdaenzer@redhat.com> 7040 Date: Thu Aug 27 18:36:15 2020 +0200 7041 7042 xwayland: Check window pixmap in xwl_present_check_flip2 7043 7044 We can only flip if the window pixmap matches that of the toplevel 7045 window. Doing so regardless could cause the toplevel window pixmap to 7046 get destroyed while it was still referenced by the window, resulting in 7047 use-after-free and likely a crash. 7048 7049 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1033 7050 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 7051 Reviewed-by: Roman Gilg <subdiff@gmail.com> 7052 7053 commit 7ac303c7b1e3b1be79ba3648e217798683e65a99 7054 Author: Michel Dänzer <mdaenzer@redhat.com> 7055 Date: Fri Aug 28 11:57:39 2020 +0200 7056 7057 present/wnmd: Can't use page flipping for windows clipped by children 7058 7059 Noticed this was missing while working on the following fix. 7060 7061 v2: 7062 * Dropped present_wnmd_can_window_flip hunk (that function is never 7063 called, will be cleaned up in a follow-up MR). 7064 7065 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> # v1 7066 Reviewed-by: Roman Gilg <subdiff@gmail.com> 7067 7068 commit 727df0a74e75982f4352f0a3e574fcf6db3372f7 7069 Author: Roman Gilg <subdiff@gmail.com> 7070 Date: Mon Aug 10 19:14:28 2020 +0200 7071 7072 xwayland: Replace need_rotate boolean with simple check on xdg-output 7073 7074 The need_rotate variable is only used once anymore and had semantics which lead 7075 to errors in the past. In particular when negated we are dealing with a double 7076 negation. 7077 7078 The variable gets replaced with a simple check on the xdg-output directly. 7079 7080 Signed-off-by: Roman Gilg <subdiff@gmail.com> 7081 7082 commit da791ed9fdc715dcbe73c60a4c4ab2d385ab28e4 7083 Author: Roman Gilg <subdiff@gmail.com> 7084 Date: Thu Aug 13 16:55:03 2020 +0200 7085 7086 Revert "xserver: Fix a typo" 7087 7088 This reverts commit 427f8bc00981703abe3153b6da575faa69fe2748. 7089 7090 When receiving an output update for the mode size we need to rotate the stored 7091 width and height values if and only if we have an xdg-output for this output 7092 since in this case the stored values describe the output's size in logical 7093 space, i.e. rotated. 7094 7095 The here reverted commit made a code change with which we would not rotate though 7096 when an xdg-output was available since in this case the need_rotate variable was 7097 set to False what caused in the check afterwards the first branch to execute. 7098 7099 commit 92f4a9ade3c97bda833b0e10f10856b2542f793c 7100 Author: Roman Gilg <subdiff@gmail.com> 7101 Date: Mon Aug 10 19:01:52 2020 +0200 7102 7103 xwayland: Switch width and height argument order 7104 7105 That is just a small style-change to the output_get_new_size function. The 7106 function before did take first the height and then the width argument, what 7107 is unusual since resolutions are normally named the other way around, for 7108 example 1920x1080. Also compare the update_screen_size function. 7109 7110 Therefore change the order of arguments for output_get_new_size. 7111 7112 Signed-off-by: Roman Gilg <subdiff@gmail.com> 7113 7114 commit 1805383d9eb17ef8ac159366c684ac85b3d53731 7115 Author: Roman Gilg <subdiff@gmail.com> 7116 Date: Mon Aug 10 18:58:56 2020 +0200 7117 7118 xwayland: simplify output_get_new_size function 7119 7120 We can just read out the xdg_output field of the provided xwl_output to check 7121 if a rotation is necessary or not. 7122 7123 This makes the function easier to understand. Additionally some documentation 7124 is added. 7125 7126 Signed-off-by: Roman Gilg <subdiff@gmail.com> 7127 7128 commit 919f1f46fc67dae93b2b3f278fcbfc77af34ec58 7129 Author: Michel Dänzer <mdaenzer@redhat.com> 7130 Date: Mon Aug 31 12:10:43 2020 +0200 7131 7132 xfree86: Take second reference for SavedCursor in xf86CursorSetCursor 7133 7134 The same pointer is kept in CurrentCursor as well, therefore two 7135 RefCursor calls are needed. 7136 7137 Fixes use-after-free after switching VTs. 7138 7139 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1067 7140 7141 commit 2902b78535ecc6821cc027351818b28a5c7fdbdc 7142 Author: Matthieu Herrb <matthieu@herrb.eu> 7143 Date: Tue Aug 18 14:55:01 2020 +0200 7144 7145 Fix XRecordRegisterClients() Integer underflow 7146 7147 CVE-2020-14362 ZDI-CAN-11574 7148 7149 This vulnerability was discovered by: 7150 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 7151 7152 Signed-off-by: Matthieu Herrb <matthieu@herrb.eu> 7153 7154 commit 144849ea27230962227e62a943b399e2ab304787 7155 Author: Matthieu Herrb <matthieu@herrb.eu> 7156 Date: Tue Aug 18 14:52:29 2020 +0200 7157 7158 Fix XkbSelectEvents() integer underflow 7159 7160 CVE-2020-14361 ZDI-CAN 11573 7161 7162 This vulnerability was discovered by: 7163 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 7164 7165 Signed-off-by: Matthieu Herrb <matthieu@herrb.eu> 7166 7167 commit c940cc8b6c0a2983c1ec974f1b3f019795dd4cff 7168 Author: Matthieu Herrb <matthieu@herrb.eu> 7169 Date: Tue Aug 18 14:49:04 2020 +0200 7170 7171 Fix XIChangeHierarchy() integer underflow 7172 7173 CVE-2020-14346 / ZDI-CAN-11429 7174 7175 This vulnerability was discovered by: 7176 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 7177 7178 Signed-off-by: Matthieu Herrb <matthieu@herrb.eu> 7179 7180 commit f7cd1276bbd4fe3a9700096dec33b52b8440788d 7181 Author: Matthieu Herrb <matthieu@herrb.eu> 7182 Date: Tue Aug 18 14:46:32 2020 +0200 7183 7184 Correct bounds checking in XkbSetNames() 7185 7186 CVE-2020-14345 / ZDI 11428 7187 7188 This vulnerability was discovered by: 7189 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 7190 7191 Signed-off-by: Matthieu Herrb <matthieu@herrb.eu> 7192 7193 commit 1cccb486d48a5d2e7649836b993805bb65dc09e3 7194 Author: Michel Dänzer <mdaenzer@redhat.com> 7195 Date: Tue Jul 28 18:40:47 2020 +0200 7196 7197 present/wnmd: Execute copies at target_msc-1 already 7198 7199 It always takes one update cycle for the copy to become visible on the 7200 host windowing system, so waiting for the target MSC resulted in 1 cycle 7201 delay. 7202 7203 We re-use the idle list for copies which were executed but need their 7204 completion event sent. 7205 7206 Fixes black seams when resizing the "Builder" sub-window of 7207 7208 GDK_BACKEND=x11 gtk4-demo 7209 7210 on Xwayland (see 7211 https://gitlab.gnome.org/GNOME/mutter/-/issues/1290#note_873557). 7212 7213 Unfortunately, this cannot completely fix the seams with apps which 7214 queue up multiple frames in advance, since there's always at least one 7215 queued frame corresponding to the old window size. But it should at 7216 least help a little in that case as well. 7217 7218 v2: 7219 * Bug fix: Don't update exec_msc in present_wnmd_check_flip_window. 7220 (Roman Gilg) 7221 * Use exec_msc = target_msc - 1 instead of exec_msc--, and add a 7222 comment, for clarity. 7223 v3: 7224 * Drop exec_msc = target_msc again in present_wnmd_execute. 7225 * present_execute_copy should never set vblank->queued in 7226 present_wnmd_execute now, so replace that branch with an assertion. 7227 (Roman Gilg) 7228 7229 Reviewed-by: Roman Gilg <subdiff@gmail.com> 7230 Tested-by: Roman Gilg <subdiff@gmail.com> 7231 7232 commit d14ea667feccf085c7d66a7c63f380975e07af66 7233 Author: Michel Dänzer <mdaenzer@redhat.com> 7234 Date: Tue Jul 28 18:53:45 2020 +0200 7235 7236 present/wnmd: Move up present_wnmd_queue_vblank 7237 7238 Allowing it to be called from more functions than before. No functional 7239 change. 7240 7241 Reviewed-by: Roman Gilg <subdiff@gmail.com> 7242 Tested-by: Roman Gilg <subdiff@gmail.com> 7243 7244 commit b0b3159abd8001fa3f6dfc44a288a95a62aa5cf6 7245 Author: Michel Dänzer <mdaenzer@redhat.com> 7246 Date: Wed Aug 12 17:38:33 2020 +0200 7247 7248 present: Add present_vblank::exec_msc field 7249 7250 For tracking the MSC when the present can be executed separately from 7251 the target MSC. 7252 7253 Allows removing the requeue field instead, plus more later. 7254 7255 v2: 7256 * Rename wait_msc → exec_msc (Roman Gilg) 7257 * Use exec_msc = target_msc instead of exec_msc++, for clarity. 7258 * Bug fix: Set exec_msc = target_msc also if present_flip returned 7259 false in present_execute. 7260 v3: 7261 * Set exec_msc = target_msc also if present_wnmd_flip returned 7262 false in present_wnmd_execute, for consistency. 7263 v4: 7264 * Specifically check for exec_msc == crtc_msc + 1 in 7265 present_execute_wait/copy, to avoid re-introducing 7266 https://bugs.freedesktop.org/show_bug.cgi?id=94596 . 7267 7268 Reviewed-by: Roman Gilg <subdiff@gmail.com> 7269 Tested-by: Roman Gilg <subdiff@gmail.com> 7270 7271 commit 4c92dea952f7fed19857904f0f552900257ef4b9 7272 Author: Michel Dänzer <mdaenzer@redhat.com> 7273 Date: Tue Jul 28 18:48:42 2020 +0200 7274 7275 present: Move flip target_msc adjustment out of present_vblank_create 7276 7277 Preparation for different handling between SCMD & WNMD. No functional 7278 change intended. 7279 7280 Reviewed-by: Roman Gilg <subdiff@gmail.com> 7281 Tested-by: Roman Gilg <subdiff@gmail.com> 7282 7283 commit 032af35657aa95c6bbdb74ff8c72e535b9b56cfa 7284 Author: Michel Dänzer <mdaenzer@redhat.com> 7285 Date: Fri Jul 24 18:21:05 2020 +0200 7286 7287 glamor: Fix glamor_poly_fill_rect_gl xRectangle::width/height handling 7288 7289 (Using GLSL 1.30 or newer) 7290 7291 The width/height members of xRectangle are unsigned, but they were 7292 being interpreted as signed when converting to floating point for the 7293 vertex shader, producing incorrect drawing for values > 32767. 7294 7295 v2: 7296 * Use separate GL_UNSIGNED_SHORT vertex attribute for width/height. 7297 (Eric Anholt) 7298 7299 Reviewed-by: Eric Anholt <eric@anholt.net> 7300 7301 commit b22b4da980b763af5124f26627cad93983542d6b 7302 Author: Adam Jackson <ajax@redhat.com> 7303 Date: Fri Aug 14 19:19:46 2020 -0400 7304 7305 glamor: Fix debugging callback setup on GLES 7306 7307 You will not find GL_ARB_* extensions in a GLES context by definition, 7308 the droid you're looking for is named GL_KHR_debug. 7309 7310 Reviewed-by: Eric Anholt <eric@anholt.net> 7311 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 7312 7313 commit 5c20e4b834145f590c68dbc98e33c7d3d710001a 7314 Author: Olivier Fourdan <ofourdan@redhat.com> 7315 Date: Wed Jun 3 10:17:13 2020 +0200 7316 7317 xwayland: Disable the MIT-SCREEN-SAVER extension when rootless 7318 7319 Xwayland is just a Wayland client, no X11 screensaver should be 7320 expected to work reliably on Xwayland when running rootless because 7321 Xwayland cannot grab the input devices so it has no way to actually 7322 lock the screen managed by the Wayland compositor. 7323 7324 Turn off the screensaver on Xwayland when running rootless by setting 7325 the screensaver timeout and interval and their default values to zero 7326 and disable the MIT-SCREEN-SAVER extension. 7327 7328 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1051 7329 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 7330 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 7331 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 7332 7333 commit aac28e162e5108510065ad4c323affd6deffd816 7334 Author: Matthieu Herrb <matthieu@herrb.eu> 7335 Date: Sat Jul 25 19:33:50 2020 +0200 7336 7337 fix for ZDI-11426 7338 7339 Avoid leaking un-initalized memory to clients by zeroing the 7340 whole pixmap on initial allocation. 7341 7342 This vulnerability was discovered by: 7343 Jan-Niklas Sohn working with Trend Micro Zero Day Initiative 7344 7345 Signed-off-by: Matthieu Herrb <matthieu@herrb.eu> 7346 Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> 7347 7348 commit 9d8e7c4828747f6bba438528c6ef6e2577b50522 7349 Author: Ignacio Casal Quinteiro <qignacio@amazon.com> 7350 Date: Thu Jul 16 10:19:43 2020 +0200 7351 7352 XKB: Add debug key actions for grabs & window tree 7353 7354 Replicate 7d2543a3cb3089241982ce4f8984fd723d5312a1 but for 7355 all types of X servers 7356 7357 commit c24eb7e31e750d2b9ba8f1b72f53b07a57495395 7358 Author: Roman Gilg <subdiff@gmail.com> 7359 Date: Tue Jul 28 20:24:50 2020 +0200 7360 7361 xwayland: Simplify Present event handling code 7362 7363 Instead of optionally return early when an event is aborted and potentially 7364 clean it up in there we can only optionally inform Present if not aborted and 7365 afterwards clean it up if required. 7366 7367 Saves some lines of code and conditional branches. 7368 7369 Signed-off-by: Roman Gilg <subdiff@gmail.com> 7370 7371 commit 06901e12c07691112b91b26b0c2000f8971e48b5 7372 Author: Jon Turney <jon.turney@dronecode.org.uk> 7373 Date: Thu Jun 4 13:25:45 2020 +0100 7374 7375 meson: Also ignore kms, kms_udev, hal options on Cygwin 7376 7377 commit 4c2d1fe0454ca2b7c13e600a31f6733705c1c7b9 7378 Author: Jon Turney <jon.turney@dronecode.org.uk> 7379 Date: Wed Jul 29 20:32:49 2020 +0100 7380 7381 hw/xwin: Update for renames in xserver/output API 7382 7383 Update commit ea47af87 renaming master_pixmap to primary_pixmap in 7384 struct PixmapRec. 7385 7386 commit 9fbd3e43dd9e13700df96b508c3d97f77e2b9f7e 7387 Author: Huacai Chen <chenhc@lemote.com> 7388 Date: Sun Jul 5 05:59:58 2020 -0400 7389 7390 linux: Fix platform device probe for DT-based PCI 7391 7392 On a DT-base PCI platform, the sysfs path of vga device is like this: 7393 /sys/devices/platform/bus@10000000/1a000000.pci/pci0000:00/0000:00:11.0/0000:04:00.0. 7394 7395 Then the ID_PATH from udev is platform-1a000000.pci-pci-0000:04:00.0 and 7396 the BusID will be pci-0000:04:00.0, which causes Xorg start fail. This 7397 is because config_udev_odev_setup_attribs() use strstr() to search the 7398 first "pci-" in ID_PATH. To fix this, we implement a strrstr() function 7399 and use it to search the last "pci-" in ID_PATH, which can get a correct 7400 BusID. 7401 7402 Signed-off-by: Huacai Chen <chenhc@lemote.com> 7403 7404 commit 591916ea9e7a77f68f436b4a541402d9deadfe64 7405 Author: Roman Gilg <subdiff@gmail.com> 7406 Date: Fri Jul 24 12:21:37 2020 +0200 7407 7408 present: Check valid region in window mode flips 7409 7410 For Pixmap flips to have well defined outcomes the window must be contained by 7411 the valid region if such region was specified. 7412 7413 The valid region is inserted as an argument to the check in window mode. 7414 Setting this argument is missing in screen mode as well but we ignore it for now 7415 and only add it to window mode. 7416 7417 It seems there are none or only very few clients actually making use of valid 7418 regions at the moment. For simplicity we therefore just check if a valid region 7419 was set by the client and in this case do never flip, independently of the 7420 window being contained by the region or not. 7421 7422 Signed-off-by: Roman Gilg <subdiff@gmail.com> 7423 7424 commit bf794bd7bfa3bdcf7de95ce237eb50ecc6ec11d2 7425 Author: Roman Gilg <subdiff@gmail.com> 7426 Date: Tue Jul 14 14:32:25 2020 +0200 7427 7428 present: Remove superfluous set abort flip function in window mode 7429 7430 The function is never called from present_screen.c in contrast to the behavior 7431 in screen mode. 7432 7433 In present_wnmd.c we can simply remove the function which does an unnecessary 7434 check of the property before setting it and directly set the property at the 7435 two locations the function was called previously. 7436 7437 Signed-off-by: Roman Gilg <subdiff@gmail.com> 7438 7439 commit ab880b8b9e8d67a05fcb085097c94bbddf7dcb95 7440 Author: Roman Gilg <subdiff@gmail.com> 7441 Date: Sun Jul 12 13:42:31 2020 +0200 7442 7443 present: Idle vblanks any time in window mode 7444 7445 With the newly introduced separate API method for idling a presented Pixmap in 7446 window mode we can simplify the logic by allowing calls to it at any point in 7447 time. 7448 7449 This is done by setting the flip_idler flag if the Pixmap was idled before 7450 being presented. 7451 7452 Signed-off-by: Roman Gilg <subdiff@gmail.com> 7453 7454 commit 932c6baca274f57beab51cd0dff1f7fa934e0ed0 7455 Author: Roman Gilg <subdiff@gmail.com> 7456 Date: Sat Jul 11 19:15:46 2020 +0200 7457 7458 present: Notify via distinct API functions in window mode 7459 7460 Notifying Present about events' states was done prior with the single function 7461 present_wnmd_event_notify just like in screen mode. But it is more intelligible 7462 if at least in window mode we make use of three different functions with names 7463 that directly indicate what their purpose is: 7464 7465 * present_wnmd_event_notify only for queued events feedback. 7466 * present_wnmd_flip_notify for when a presentation occured (flip). 7467 * present_wnmd_idle_notify for when the Pixmap of the event can be reused. 7468 7469 This is an API-breaking change in regards to window mode. DDX written against 7470 the previous version won't work anymore. It is assumed that there only exists 7471 the XWayland DDX at the moment using the window mode such that this is not an 7472 issue for the overall ecosystem. 7473 7474 Signed-off-by: Roman Gilg <subdiff@gmail.com> 7475 7476 commit f8211095c3d94307225318902598e8f79d038f26 7477 Author: Roman Gilg <subdiff@gmail.com> 7478 Date: Sat Feb 15 01:58:22 2020 +0100 7479 7480 xwayland: Rename present event lists 7481 7482 Rename the lists release_queue to release_list and event_list to 7483 wait_list. 7484 7485 The prior names release_queue and event_list were ambiguous: in both are event- 7486 like vblanks which can be removed from the lists in random order. In the 7487 release_queue can be flips that are already released but still wait for the 7488 sync or frame callback but normally the release comes later. In the event_list 7489 are queued events waiting for a later msc. 7490 7491 Signed-off-by: Roman Gilg <subdiff@gmail.com> 7492 7493 commit 0db326e5ca3dd244dda502c8261801c04ff792ab 7494 Author: Roman Gilg <subdiff@gmail.com> 7495 Date: Wed Jul 8 10:24:41 2020 +0200 7496 7497 xwayland: Remove unused xwl_screen entry 7498 7499 In xwl_present_window an xwl_screen entry was declared but never actually used. 7500 7501 Signed-off-by: Roman Gilg <subdiff@gmail.com> 7502 7503 commit 495bf63a7df066672d9d44dedeb1f49658a247d8 7504 Author: Alex Goins <agoins@nvidia.com> 7505 Date: Thu Jul 2 20:03:06 2020 -0500 7506 7507 randr: Re-add removed NULL checks to xf86RandR12.c 7508 7509 Commit 1e3f9ea1 removed some NULL checks from xf86RandR12.c, on the premise that 7510 they can't be reached unless RandR has already been initialized. For threesuch 7511 calls, that's not true: 7512 7513 xf86Crtc.c::xf86CrtcScreenInit(): 7514 7515 if (c == config->num_crtc) { 7516 xf86RandR12SetRotations(screen, RR_Rotate_0 | RR_Rotate_90 | 7517 RR_Rotate_180 | RR_Rotate_270 | 7518 RR_Reflect_X | RR_Reflect_Y); 7519 xf86RandR12SetTransformSupport(screen, TRUE); 7520 } 7521 else { 7522 xf86RandR12SetRotations(screen, RR_Rotate_0); 7523 xf86RandR12SetTransformSupport(screen, FALSE); 7524 } 7525 7526 xf86Crtc.c::xf86CrtcCloseScreen(): 7527 7528 xf86RandR12CloseScreen(screen); 7529 7530 This change adds checks back to xf86RandR12Set{Rotations,TransformSupport}() and 7531 xf86RandR12CloseScreen(), checking that xf86RandR12KeyRec has been registered. 7532 Without this, X will hit an assert that causes it to abort. 7533 7534 Signed-off-by: Alex Goins <agoins@nvidia.com> 7535 7536 commit 8eeff5d7880c6885ee6f206355599f13d739afa7 7537 Author: Alex Goins <agoins@nvidia.com> 7538 Date: Thu Jul 2 20:12:43 2020 -0500 7539 7540 randr: Check rrPrivKey in RRHasScanoutPixmap() 7541 7542 RRHasScanoutPixmap() is called from xf86CheckHWCursor(), regardless of whether 7543 or not RandR has been initialized. 7544 7545 As mentioned in commit 4226c6d, it's possible that RandR has not been 7546 initialized if the server is configured with Xinerama and there is more than one 7547 X screen. Calling rrGetScrPriv when RandR isn't initialized causes an assertion 7548 failure that aborts the server: 7549 7550 Xorg: ../include/privates.h:121: dixGetPrivateAddr: Assertion 7551 key->initialized' failed. 7552 7553 Just as in commit 4226c6d, fix the problem by checking 7554 dixPrivateKeyRegistered(rrPrivKey) before calling rrGetScrPriv. 7555 7556 Signed-off-by: Alex Goins <agoins@nvidia.com> 7557 7558 commit 6172bd2b41a7ce158b9052af3e373318e5e4381c 7559 Author: Alex Goins <agoins@nvidia.com> 7560 Date: Thu Jul 2 18:39:11 2020 -0500 7561 7562 randr: Check rrPrivKey before autobinding GPU screens 7563 7564 RRProviderAutoConfigGpuScreen() is called from outside RandR, so there is no 7565 guarantee that RandR has been initialized when it is called. 7566 7567 As mentioned in commit 4226c6d, it's possible that RandR has not been 7568 initialized if the server is configured with Xinerama and there is more than one 7569 X screen. Calling rrGetScrPriv when RandR isn't initialized causes an assertion 7570 failure that aborts the server: 7571 7572 Xorg: ../include/privates.h:121: dixGetPrivateAddr: Assertion 7573 key->initialized' failed. 7574 7575 Just as in commit 4226c6d, fix the problem by checking 7576 dixPrivateKeyRegistered(rrPrivKey) before calling rrGetScrPriv. 7577 7578 Signed-off-by: Alex Goins <agoins@nvidia.com> 7579 7580 commit e33453f9111b21e4814d628e6ae00bc7b200f404 7581 Author: Michel Dänzer <mdaenzer@redhat.com> 7582 Date: Fri Jul 10 18:56:42 2020 +0200 7583 7584 xwayland: Handle NULL xwl_seat in xwl_seat_can_emulate_pointer_warp 7585 7586 This can happen e.g. with weston's headless backend. 7587 7588 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 7589 7590 commit ddb86e94c07a269dfc9cd80543f9f6a2c3e934a2 7591 Author: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> 7592 Date: Sat Jul 11 19:47:40 2020 +0200 7593 7594 xwayland: Remove harmless duplicated #include 7595 7596 commit a137dd5f79d272a57c6704143dc9c25a9b59c927 7597 Author: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> 7598 Date: Sat Jul 11 19:34:59 2020 +0200 7599 7600 xwayland: Use memfd_create() when available 7601 7602 This (so-far) Linux-only API lets users create file descriptors purely 7603 in memory, without any backing file on the filesystem and the race 7604 condition which could ensue when unlink()ing it. 7605 7606 It also allows seals to be placed on the file, ensuring to every other 7607 process that we won’t be allowed to shrink the contents, potentially 7608 causing a SIGBUS when they try reading it. 7609 7610 This patch is best viewed with the -w option of git log -p. 7611 7612 This is a port of this commit from Weston: 7613 https://gitlab.freedesktop.org/wayland/weston/-/commit/deae98ef45e060b8412a5edd195fb0c7c14f0321 7614 7615 Fixes #848. 7616 7617 Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> 7618 7619 commit ba0e789b912671c724a21b3a30291247718bcf7d 7620 Author: Lyude Paul <lyude@redhat.com> 7621 Date: Tue Jul 14 18:32:39 2020 -0400 7622 7623 xwayland: Store xwl_tablet_pad in its own private key 7624 7625 When a slave device causes the master virtual pointer device to change 7626 device types, the device's private data pointer 7627 (device->public.devicePrivate) is also changed to match the type of the 7628 slave device. This can be a problem though, as tablet pad devices will 7629 set the device's private data pointer to their own xwl_tablet_pad 7630 struct. This can cause us to dereference the pointer as the wrong type, 7631 and result in a segfault: 7632 7633 Thread 1 "Xwayland" received signal SIGSEGV, Segmentation fault. 7634 wl_proxy_marshal (proxy=0x51, opcode=opcode@entry=0) at src/wayland-client.c:792 7635 792 va_start(ap, opcode); 7636 (gdb) bt 7637 0 wl_proxy_marshal (proxy=0x51, opcode=opcode@entry=0) at 7638 src/wayland-client.c:792 7639 1 0x00005610b27b6c55 in wl_pointer_set_cursor (hotspot_y=0, 7640 hotspot_x=0, surface=0x0, serial=<optimized out>, wl_pointer=<optimized 7641 out>) at /usr/include/wayland-client-protocol.h:4610 7642 2 xwl_seat_set_cursor (xwl_seat=xwl_seat@entry=0x5610b46d5d10) at 7643 xwayland-cursor.c:137 7644 3 0x00005610b27b6ecd in xwl_set_cursor (device=<optimized out>, 7645 screen=<optimized out>, cursor=<optimized out>, x=<optimized out>, 7646 y=<optimized out>) at xwayland-cursor.c:249 7647 4 0x00005610b2800b46 in miPointerUpdateSprite (pDev=0x5610b4501a30) at 7648 mipointer.c:468 7649 5 miPointerUpdateSprite (pDev=0x5610b4501a30) at mipointer.c:410 7650 6 0x00005610b2800e56 in miPointerDisplayCursor (pCursor=0x5610b4b35740, 7651 pScreen=0x5610b3d54410, pDev=0x5610b4501a30) at mipointer.c:206 7652 7 miPointerDisplayCursor (pDev=0x5610b4501a30, pScreen=0x5610b3d54410, 7653 pCursor=0x5610b4b35740) at mipointer.c:194 7654 8 0x00005610b27ed62b in CursorDisplayCursor (pDev=<optimized out>, 7655 pScreen=0x5610b3d54410, pCursor=0x5610b4b35740) at cursor.c:168 7656 9 0x00005610b28773ee in AnimCurDisplayCursor (pDev=0x5610b4501a30, 7657 pScreen=0x5610b3d54410, pCursor=0x5610b4b35740) at animcur.c:197 7658 10 0x00005610b28eb4ca in ChangeToCursor (pDev=0x5610b4501a30, 7659 cursor=0x5610b4b35740) at events.c:938 7660 11 0x00005610b28ec99f in WindowHasNewCursor 7661 (pWin=pWin@entry=0x5610b4b2e0c0) at events.c:3362 7662 12 0x00005610b291102d in ChangeWindowAttributes (pWin=0x5610b4b2e0c0, 7663 vmask=<optimized out>, vlist=vlist@entry=0x5610b4c41dcc, 7664 client=client@entry=0x5610b4b2c900) at window.c:1561 7665 13 0x00005610b28db8e3 in ProcChangeWindowAttributes (client=0x5610b4b2c900) 7666 at dispatch.c:746 7667 14 0x00005610b28e1e5b in Dispatch () at dispatch.c:497 7668 15 0x00005610b28e5f34 in dix_main (argc=16, argv=0x7ffc7a601b68, 7669 envp=<optimized out>) at main.c:276 7670 16 0x00007f8828cde042 in __libc_start_main (main=0x5610b27ae930 <main>, 7671 argc=16, argv=0x7ffc7a601b68, init=<optimized out>, fini=<optimized 7672 out>, rtld_fini=<optimized out>, stack_end=0x7ffc7a601b58) at 7673 ../csu/libc-start.c:308 7674 17 0x00005610b27ae96e in _start () at cursor.c:1064 7675 7676 Simple reproducer in gnome-shell: open up an Xwayland window, press some 7677 tablet buttons, lock and unlock the screen. Repeat if it doesn't crash 7678 the first time. 7679 7680 So, let's fix this by registering our own device-specific private key 7681 for storing a backpointer to xwl_tablet_pad, so that all input devices 7682 have their private data pointers set to their respective xwl_seat. 7683 7684 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 7685 Signed-off-by: Lyude Paul <lyude@redhat.com> 7686 7687 commit 85a6fd11c723888ca093785a3df43066fdca9c33 7688 Author: Roman Gilg <subdiff@gmail.com> 7689 Date: Wed Jul 8 17:08:55 2020 +0200 7690 7691 xwayland: Damage surface in surface-relative coordinates 7692 7693 In 9141196d positional coordinates were added to the damage call of pixmap 7694 flips. The damage box coordinates are in screen space though and we need 7695 to convert them first to surface-relative ones by substracting the origin 7696 of the window. 7697 7698 Signed-off-by: Roman Gilg <subdiff@gmail.com> 7699 7700 commit ed624544d4aef72db8dd575ad55ef5e206c54757 7701 Author: Michel Dänzer <mdaenzer@redhat.com> 7702 Date: Fri Jul 10 11:01:10 2020 +0200 7703 7704 xfree86: Bump ABI_VIDEODRV_VERSION to 25.2 7705 7706 This gives out of tree drivers a fighting chance to build against both 7707 sides of 7708 https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/468 . 7709 7710 Reviewed-by: Dave Airlie <airlied@redhat.com> 7711 7712 commit ea47af87f692b291a988834c6f14d73a08cb1d75 7713 Author: Dave Airlie <airlied@redhat.com> 7714 Date: Mon Jul 6 07:00:50 2020 +1000 7715 7716 xserver/output: rename some badly named variables/APIs. 7717 7718 This is an API and ABI break 7719 7720 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 7721 7722 commit 15b7738389b36ec2739d4f599539bcb7c2be89a1 7723 Author: Dave Airlie <airlied@redhat.com> 7724 Date: Mon Jul 6 07:00:04 2020 +1000 7725 7726 exa: rename some badly named variables 7727 7728 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 7729 7730 commit 5188603ff7d25186c9076fefeceba825f3a40d47 7731 Author: Olivier Fourdan <ofourdan@redhat.com> 7732 Date: Mon Apr 20 11:29:16 2020 +0200 7733 7734 xwayland: Add a pkg-config file for Xwayland 7735 7736 Xwayland is usually spawned by the Wayland compositor which sets the 7737 command line options. 7738 7739 If a command line option is not supported, Xwayland will fail to start. 7740 7741 That somehow makes the Xwayland command line option sort of ABI, the 7742 Wayland compositor need to know if a particular option is supported by 7743 Xwayland at build time. 7744 7745 Also, currently, Xwayland is being installed along with the rest of the 7746 common executable programs that users may run, which is sub-optimal 7747 because, well, Xwayland is not a common executable program, it's meant 7748 to be a proxy between the Wayland compositor and the legacy X11 clients 7749 which wouldn't be able to run on Wayland otherwise. 7750 7751 Xwayland would be better installed in `libexec` but that directory is 7752 (purposedly) not in the user `PATH` and therefore the Wayland compositor 7753 may not be able to find Xwayland in that case. 7754 7755 To solve both problems (which options are supported by Xwayland and 7756 where to look for it), add a `pkg-config` file specifically for Xwayland 7757 which gives the full path to Xwayland (`xwayland`) and which options it 7758 supports (using `pkg-config` variables). 7759 7760 The `pkg-config` file also provides the `Version` so the build scripts 7761 can check for a particular version if necessary. 7762 7763 Obviously, Wayland compositors are not required to use the `pkg-config` 7764 file and can continue to use whatever mechanism they deem preferable. 7765 7766 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 7767 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 7768 7769 commit 2beefda5a80e5a016c32c1da733f9415a121179d 7770 Author: Michel Dänzer <mdaenzer@redhat.com> 7771 Date: Tue Mar 17 12:55:34 2020 +0100 7772 7773 xwayland: Move xwl_surface_damage definition to xwayland-screen.c 7774 7775 It was already declared in xwayland-screen.h, and only takes a screen 7776 parameter, no window ones. 7777 7778 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 7779 7780 commit 12af425acd3f4a3a8aa85352857b130b0006b83c 7781 Author: Michel Dänzer <mdaenzer@redhat.com> 7782 Date: Thu Jun 25 17:56:41 2020 +0200 7783 7784 xwayland: Rename xwl_pixmap_cb → xwl_buffer_release_cb 7785 7786 Seems clearer. 7787 7788 While we're at it, also drop the unused pixmap parameter. 7789 7790 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 7791 7792 commit 9eb0b4f731e21952f93e168900f10bf07e261107 7793 Author: Michel Dänzer <mdaenzer@redhat.com> 7794 Date: Thu Jun 25 17:49:27 2020 +0200 7795 7796 xwayland: Remove xwl_present_event::buffer_released in favor of ::pixmap 7797 7798 No need for the separate boolean. 7799 7800 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 7801 7802 commit 9141196d3104ab37385c3e385deaa70c002dd184 7803 Author: Michel Dänzer <mdaenzer@redhat.com> 7804 Date: Tue Mar 17 12:58:12 2020 +0100 7805 7806 xwayland: Propagate damage x1/y1 coordinates in xwl_present_flip 7807 7808 This couldn't have worked correctly for non-0 x1/y1. 7809 7810 Noticed by inspection. 7811 7812 Reviewed-by: Simon Ser <contact@emersion.fr> 7813 7814 commit 0006aecba097b437f96a462075494d68bdad24c1 7815 Author: Alan Coopersmith <alan.coopersmith@oracle.com> 7816 Date: Sun Jul 5 13:18:45 2020 -0700 7817 7818 doc: Update URLs in Xserver-DTrace.xml 7819 7820 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> 7821 7822 commit 23e83724df4809fd7857cc609c33ce7e8d3021a4 7823 Author: Alan Coopersmith <alan.coopersmith@oracle.com> 7824 Date: Sun Jul 5 13:07:33 2020 -0700 7825 7826 Fix spelling/wording issues 7827 7828 Most (but not all) of these were found by using 7829 codespell --builtin clear,rare,usage,informal,code,names 7830 but not everything reported by that was fixed. 7831 7832 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> 7833 7834 commit b0413b6e99c6b5fbc04229ce64ddf1f41b08e63e 7835 Author: Olivier Fourdan <ofourdan@redhat.com> 7836 Date: Tue Jun 2 11:23:46 2020 +0200 7837 7838 xwayland: Use a fixed DPI value for core protocol 7839 7840 The way Xwayland works (like all Wayland clients), it first queries the 7841 Wayland registry, set up all relevant protocols and then initializes its 7842 own structures. 7843 7844 That means Xwayland will get the Wayland outputs from the Wayland 7845 compositor, compute the physical size of the combined outputs and set 7846 the corresponding Xwayland screen properties accordingly. 7847 7848 Then it creates the X11 screen using fbScreenInit() but does so by using 7849 a default DPI value of 96. That value is used to set the physical size 7850 of the X11 screen, hence overriding the value computed from the actual 7851 physical size provided by the Wayland compositor. 7852 7853 As a result, the DPI computed by tools such as xdpyinfo will always be 7854 96 regardless of the actual screen size and resolution. 7855 7856 However, if the Wayland outputs get reconfigured, or new outputs added, 7857 or existing outputs removed, Xwayland will recompute and update the 7858 physical size of the screen, leading to an unexpected change of DPI. 7859 7860 To avoid that discrepancy, use a fixed size DPI (defaults to 96, and can 7861 be set using the standard command lime option "-dpi") and compute a 7862 physical screen size to match that DPI setting. 7863 7864 Note that only affects legacy core protocols, X11 clients can still get 7865 the actual physical output size as reported by the Wayland compositor 7866 using the RandR protocol, which also allows for the size to be 0 if the 7867 size is unknown or meaningless. 7868 7869 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 7870 Reviewed-by: Simon Ser <contact@emersion.fr> 7871 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/731 7872 7873 commit 6748a4094158d2bde1630b915a5318f9f22c8e0a 7874 Author: SimonP <simonp.git@gmail.com> 7875 Date: Tue Jun 9 13:26:48 2020 +0200 7876 7877 xwayland: Initialise values in xwlVidModeGetGamma() 7878 7879 ProcVidModeGetGamma() relies on GetGamma() to initialise values if it 7880 returns TRUE. Without this, we're sending uninitialised values to 7881 clients. 7882 7883 Fixes: xorg/xserver#1040 7884 7885 commit d35f68336b0a462dc660797d1779581f348af04e 7886 Author: Sjoerd Simons <sjoerd@collabora.com> 7887 Date: Fri Apr 10 16:34:06 2020 +0200 7888 7889 xwayland: Fix crashes when there is no pointer 7890 7891 When running with a weston session without a pointer device (thus with 7892 the wl_seat not having a pointer) xwayland pointer warping and pointer 7893 confining should simply be ignored to avoid crashes. 7894 7895 Signed-off-by: Sjoerd Simons <sjoerd@collabora.com> 7896 7897 commit 73480f172aeced074dd9301ae4d97f7d2f3a9a45 7898 Author: Jose Maria Casanova Crespo <jmcasanova@igalia.com> 7899 Date: Fri May 15 18:33:11 2020 +0200 7900 7901 modesetting: Fix front_bo leak at drmmode_xf86crtc_resize on XRandR rotation 7902 7903 Since the introduction of "modesetting: Remove unnecessary fb addition from 7904 drmmode_xf86crtc_resize" the fb_id isn't initialited at 7905 drmmode_xf86crtc_resize. 7906 7907 Rotate operation of XRandR uses rotate_bo. So in this case the fb_id 7908 associated to the front_bo is not initialized at drmmode_set_mode_major. 7909 So fd_id remains 0. 7910 7911 As every call to drmmode_xf86crtc_resize allocates a new front_bo we should 7912 destroy unconditionally the old_front_bo if operation success. So we free 7913 the allocated GBM handles. 7914 7915 This avoids crashing xserver with a OOM in the RPI4 1Gb at 4k resolution 7916 after 3 series xrandr rotations from normal to left and vice versa reported at 7917 https://github.com/raspberrypi/firmware/issues/1345 7918 7919 Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com> 7920 Reviewed-by: Keith Packard <keithp@keithp.com> 7921 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1024 7922 Fixes: 8774532121 "modesetting: Remove unnecessary fb addition from 7923 drmmode_xf86crtc_resize" 7924 7925 commit b67052742980fd3ec669100048da71e09aa61358 7926 Author: Michel Dänzer <mdaenzer@redhat.com> 7927 Date: Fri Jun 19 18:10:18 2020 +0200 7928 7929 xwayland: Free all remaining events in xwl_present_cleanup 7930 7931 These events aren't reachable after xwl_present_cleanup, so they're 7932 leaked if we don't free them first. 7933 7934 This requires storing the pixmap pointer in struct xwl_present_window. 7935 Luckily, the buffer pointer isn't used for anything, so just replace 7936 that. 7937 7938 v2: 7939 * Bump pixmap reference count in xwl_present_flip and drop it in 7940 xwl_present_free_event, fixes use-after-free in the latter due to the 7941 pixmap already being destroyed. 7942 7943 Reviewed-by: Dave Airlie <airlied@redhat.com> 7944 7945 commit 1beffba699e2cc3f23039d2177c025bc127966de 7946 Author: Michel Dänzer <mdaenzer@redhat.com> 7947 Date: Fri Jun 19 18:14:35 2020 +0200 7948 7949 xwayland: Always use xwl_present_free_event for freeing Present events 7950 7951 Minor cleanup, and will make the next change simpler. No functional 7952 change intended. 7953 7954 Reviewed-by: Dave Airlie <airlied@redhat.com> 7955 7956 commit 1bdedc8dbb9d035b85444c2558a137470ff52113 7957 Author: Michel Dänzer <mdaenzer@redhat.com> 7958 Date: Fri Jun 19 17:24:42 2020 +0200 7959 7960 present/wnmd: Free flip_queue entries in present_wnmd_clear_window_flip 7961 7962 When present_wnmd_clear_window_flip is done, present_destroy_window 7963 frees struct present_window_priv, and the events in the flip queue 7964 become unreachable. So if we don't free them first, they're leaked. 7965 7966 Also drop the call to present_wnmd_set_abort_flip, which just sets a 7967 flag in struct present_window_priv and thus can't have any observable 7968 effect after present_destroy_window. 7969 7970 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1042 7971 Reviewed-by: Dave Airlie <airlied@redhat.com> 7972 7973 commit bc9dd1c71c3722284ffaa7183f4119151b25a44f 7974 Author: Michel Dänzer <mdaenzer@redhat.com> 7975 Date: Fri Jun 19 17:02:40 2020 +0200 7976 7977 present/wnmd: Keep pixmap pointer in present_wnmd_clear_window_flip 7978 7979 The comment was incorrect: Any reference held by the window (see 7980 present_wnmd_execute) is in addition to the one in struct present_vblank 7981 (see present_vblank_create). So if we don't drop the latter, the pixmap 7982 will be leaked. 7983 7984 Reviewed-by: Dave Airlie <airlied@redhat.com> 7985 7986 commit 7ae221ad5774756766dc78a73d71f4163ac7b1c6 7987 Author: Martin Weber <martin.weber@secunet.com> 7988 Date: Fri Jun 19 16:51:15 2020 +0200 7989 7990 hw/xfree86: Avoid cursor use after free 7991 7992 During a VT-Switch a raw pointer to the shared cursor object 7993 is saved which is then freed (in case of low refcount) by a call to 7994 xf86CursorSetCursor with argument pCurs = NullCursor. 7995 This leads to a dangling pointer which can follow in a use after free. 7996 7997 This fix ensures that there is a shared handle saved for the VT-Switch cycle. 7998 7999 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 8000 8001 commit 6a79a737e2c0bc730ee693b4ea4a1530c108be4e 8002 Author: Aaron Ma <aaron.ma@canonical.com> 8003 Date: Sat Apr 11 17:29:35 2020 +0800 8004 8005 xfree86: add drm modes on non-GTF panels 8006 8007 EDID1.4 replaced GTF Bit with Continuous or Non-Continuous Frequency Display. 8008 8009 Check the "Display Range Limits Descriptor" for GTF support. 8010 If panel doesn't support GTF, then add gtf modes. 8011 8012 Otherwise X will only show the modes in "Detailed Timing Descriptor". 8013 8014 V2: Coding style changes. 8015 V3: Coding style changes, remove unused variate. 8016 V4: remove unused variate. 8017 8018 BugLink: https://gitlab.freedesktop.org/drm/intel/issues/313 8019 Signed-off-by: Aaron Ma <aaron.ma@canonical.com> 8020 Reviewed-by: Adam Jackson <ajax@redhat.com> 8021 8022 commit d6558477d7a264c2132bc977b51d80fc0277d1e0 8023 Author: Simon Ser <contact@emersion.fr> 8024 Date: Tue Jun 2 15:40:16 2020 +0200 8025 8026 xwayland: allow using linux-dmabuf with DRM_FORMAT_MOD_INVALID 8027 8028 When the linux-dmabuf protocol is available, prefer it over the old 8029 wl_drm protocol. Previously wl_drm was used when modifiers aren't 8030 supported, however linux-dmabuf supports formats without modifiers too. 8031 In this case, linux-dmabuf will send a DRM_FORMAT_MOD_INVALID modifier 8032 for each supported format [1]. 8033 8034 This allows compositors to better handle these buffers, getting a 8035 DMA-BUF and implementing features like direct scan-out. 8036 8037 A similar logic has been implemented for EGL [2]. 8038 8039 DRM_FORMAT_MOD_INVALID is now stored in the xwl_screen->formats list. 8040 glamor_get_modifiers still returns FALSE with zero modifiers if the 8041 only advertised modifier is DRM_FORMAT_MOD_INVALID. 8042 8043 [1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/commit/fb9b2a87317c77e26283da5f6c9559d709f6fdcd 8044 [2]: https://gitlab.freedesktop.org/mesa/mesa/-/commit/c376865f5eeca535c4aa8e33bcf166052c1ce2f2 8045 8046 Signed-off-by: Simon Ser <contact@emersion.fr> 8047 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 8048 8049 commit c0e13cbf5a56e1fdd1e4ce58ebdefb6d2904e4b3 8050 Author: Simon Ser <contact@emersion.fr> 8051 Date: Tue Jun 2 15:28:38 2020 +0200 8052 8053 xwayland: only use linux-dmabuf if format/modifier was advertised 8054 8055 Previously, linux-dmabuf was used unconditionally if the buffer had a 8056 modifier. However creating a linux-dmabuf buffer with a format/modifier 8057 which hasn't been advertised will fail. 8058 8059 Change xwl_glamor_gbm_get_wl_buffer_for_pixmap to use linux-dmabuf when 8060 the format/modifier has been advertised only. 8061 8062 Signed-off-by: Simon Ser <contact@emersion.fr> 8063 Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1035 8064 Tested-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> 8065 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 8066 8067 commit 9c8d2744584868aa2655bf3ec047f2f9669e4291 8068 Author: Simon Ser <contact@emersion.fr> 8069 Date: Mon May 4 10:53:57 2020 +0200 8070 8071 xwayland: don't use GBM_BO_USE_SCANOUT 8072 8073 This flag should only be used when the caller intends to display the 8074 buffer on a hardware plane. Xwayland isn't a DRM client, so it doesn't 8075 make sense to use this flag. 8076 8077 This change will allow the driver to potentially use buffer parameters 8078 that are more optimized. 8079 8080 Signed-off-by: Simon Ser <contact@emersion.fr> 8081 Reviewed-by: Daniel Stone <daniels@collabora.com> 8082 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 8083 8084 commit fc4f248544f207ffd68303da22ea1e27beb3729f 8085 Author: Adam Jackson <ajax@redhat.com> 8086 Date: Fri Jun 5 14:33:03 2020 -0400 8087 8088 xwayland: Set the vendor name for GLX_EXT_libglvnd 8089 8090 Without this the client library will flail around looking for a default 8091 provider, probably one named "indirect", and that defeats the point of 8092 having the EGL provider for direct context support in the first place. 8093 8094 This assumes that "mesa" will work, of course, and in general it should. 8095 Mesa drivers will DTRT through the DRI3 setup path, and if our glamor is 8096 atop something non-Mesa then you should fall back to llvmpipe like 1.20. 8097 In the future it might be useful to differentiate the vendor here based 8098 on whether glamor is using gbm or streams. 8099 8100 Fixes: xorg/xserver#1032 8101 8102 commit 5dc16f6fec672c10fc26dcaaf00df0f6bed0ef9a 8103 Author: Matthieu Herrb <matthieu@herrb.eu> 8104 Date: Tue Jun 2 17:32:11 2020 +0200 8105 8106 Remove BSD APM support. 8107 8108 None of the current BSD is actually using this code. 8109 (checked DragonFly 5.8.1, FreeBSD 11.2, NetBSD 9.0 and OpenBSD 6.7) 8110 8111 Signed-off-by: Matthieu Herrb <matthieu@herrb.eu> 8112 8113 commit b5b529799a20f8a262066daeb726307c0631f208 8114 Author: Jan Beich <jbeich@FreeBSD.org> 8115 Date: Sun Feb 9 15:28:10 2020 +0000 8116 8117 meson: split udev from udev_kms which requires systemd 8118 8119 DragonFly and FreeBSD can use xf86-input-libinput with config/udev. 8120 8121 ld: error: undefined symbol: xf86PlatformDeviceProbe 8122 >>> referenced by xf86platformBus.c 8123 >>> xf86platformBus.c.o:(xf86platformProbe) in archive hw/xfree86/common/libxorg_common.a 8124 8125 ld: error: undefined symbol: xf86PlatformDeviceCheckBusID 8126 >>> referenced by xf86platformBus.c 8127 >>> xf86platformBus.c.o:(xf86platformProbeDev) in archive hw/xfree86/common/libxorg_common.a 8128 8129 ld: error: undefined symbol: xf86PlatformReprobeDevice 8130 >>> referenced by xf86platformBus.c 8131 >>> xf86platformBus.c.o:(xf86platformVTProbe) in archive hw/xfree86/common/libxorg_common.a 8132 8133 ld: error: undefined symbol: NewGPUDeviceRequest 8134 >>> referenced by udev.c 8135 >>> udev.c.o:(device_added) in archive config/liblibxserver_config.a 8136 8137 ld: error: undefined symbol: DeleteGPUDeviceRequest 8138 >>> referenced by udev.c 8139 >>> udev.c.o:(device_removed) in archive config/liblibxserver_config.a 8140 8141 commit be731e0bdc7d76ad3782d5b533b6bcc8378f41ad 8142 Author: Jan Beich <jbeich@FreeBSD.org> 8143 Date: Sun Feb 9 15:12:39 2020 +0000 8144 8145 glx: unbreak on Unix without /usr/include/drm 8146 8147 In file included from ../glx/glxdri2.c:35: 8148 /usr/local/include/GL/internal/dri_interface.h:43:10: fatal error: 'drm.h' file not found 8149 #include <drm.h> 8150 ^~~~~~~ 8151 In file included from ../glx/glxdriswrast.c:39: 8152 /usr/local/include/GL/internal/dri_interface.h:43:10: fatal error: 'drm.h' file not found 8153 #include <drm.h> 8154 ^~~~~~~ 8155 8156 commit f2cf236da8e8fefd6f503ceb0a448c5ad9651024 8157 Author: Jan Beich <jbeich@FreeBSD.org> 8158 Date: Sat Nov 16 18:40:36 2019 +0000 8159 8160 os: unbreak xsha1 on FreeBSD 8161 8162 ../os/xsha1.c:36:10: fatal error: 'sha1.h' file not found 8163 #include <sha1.h> 8164 ^~~~~~~~ 8165 ../os/xsha1.c:45:5: error: implicit declaration of function 'SHA1Init' is invalid in C99 [-Werror,-Wimplicit-function-declaration] 8166 SHA1Init(ctx); 8167 ^ 8168 ../os/xsha1.c:54:5: error: implicit declaration of function 'SHA1Update' is invalid in C99 [-Werror,-Wimplicit-function-declaration] 8169 SHA1Update(sha1_ctx, data, size); 8170 ^ 8171 ../os/xsha1.c:63:5: error: implicit declaration of function 'SHA1Final' is invalid in C99 [-Werror,-Wimplicit-function-declaration] 8172 SHA1Final(result, sha1_ctx); 8173 ^ 8174 8175 commit 4195e8035645007be313ade79032b8d561ceec6c 8176 Author: Olivier Fourdan <ofourdan@redhat.com> 8177 Date: Tue May 5 15:40:43 2020 +0200 8178 8179 xwayland: Clear private on device removal 8180 8181 Xwayland uses the device private to point to the `xwl_seat`. 8182 8183 Device may be removed at any time, including on suspend. 8184 8185 On resume, if the DIX code ends up calling a function that requires the 8186 `xwl_seat` such as `xwl_set_cursor()` we may end up pointing at random 8187 data. 8188 8189 Make sure the clear the device private data on removal so that we don't 8190 try to use it and crash later. 8191 8192 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 8193 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 8194 https://gitlab.freedesktop.org/xorg/xserver/issues/709 8195 8196 commit 6ef1b0108ebe98c58fe5e00c86de52452c817518 8197 Author: Peter Hutterer <peter.hutterer@who-t.net> 8198 Date: Fri May 8 10:54:31 2020 +1000 8199 8200 gitlab CI: use the fdo ci-templates repository 8201 8202 wayland/ci-templates was moved to freedesktop/ci-templates, everything 8203 else stayed the same so the sha is still valid. 8204 8205 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 8206 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 8207 8208 commit 421ce458f1d295015c108eb32f9611e527649cf8 8209 Author: Simon Ser <contact@emersion.fr> 8210 Date: Mon May 4 18:20:17 2020 +0200 8211 8212 xwayland: import DMA-BUFs with GBM_BO_USE_RENDERING only 8213 8214 Drop GBM_BO_USE_SCANOUT from the GBM_BO_IMPORT_FD import, add 8215 GBM_BO_USE_RENDERING to the GBM_BO_IMPORT_FD_MODIFIER import. 8216 8217 If the DMA-BUF cannot be scanned out, gbm_bo_import with 8218 GBM_BO_USE_SCANOUT will fail. However Xwayland doesn't need to scan-out 8219 the buffer and can work fine without scanout. Glamor only needs 8220 GBM_BO_USE_RENDERING. 8221 8222 Signed-off-by: Simon Ser <contact@emersion.fr> 8223 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 8224 Reviewed-by: Daniel Stone <daniels@collabora.com> 8225 8226 commit 0777cf46d7260f3d0c7fe82af5c94137d1e4f3de 8227 Author: Carlos Garnacho <carlosg@gnome.org> 8228 Date: Thu May 7 20:15:14 2020 +0200 8229 8230 xwayland: Improve checks for confined_to on InputOnly windows 8231 8232 In this pretty Wine/Proton specific kludge, we try to handle confining grabs 8233 on InputOnly windows by trying to find the InputOutput window that the pointer 8234 would get visually confined to. 8235 8236 The grabbing window and the visible window come from different clients, so 8237 we used to simply resort to the pointer focus. This is troublesome though, as 8238 the call may happen very soon at a time that the toplevel wasn't yet mapped by 8239 the Wayland compositor, so the pointer focus may well be out of date soon. 8240 8241 In these situations, it does seem that even though the confining grab happens 8242 too early to have the wayland surface mapped, the xserver view of the WindowPtr 8243 does already reflect the size. Use this to find out the better window to 8244 assign the confining grab to, one whose geometry fully contains the InputOnly 8245 window's. 8246 8247 Signed-off-by: Carlos Garnacho <carlosg@gnome.org> 8248 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 8249 8250 commit f486e2fdaa1b252405a3aee90bd495b8b4c851f2 8251 Author: Olivier Fourdan <ofourdan@redhat.com> 8252 Date: Tue May 5 10:38:50 2020 +0200 8253 8254 xwayland: Remove undeeded test 8255 8256 xwl_seat_maybe_lock_on_hidden_cursor() checks that the value of 8257 cursor_confinement_window is not NULL, yet there is no code path 8258 that could lead to this. 8259 8260 Remove the test for cursor_confinement_window being set, it's useless. 8261 8262 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 8263 Reviewed-by: Carlos Garnacho <carlosg@gnome.org> 8264 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 8265 8266 commit baa8d12e464664b5ad3c591be05a0087482790ca 8267 Author: Olivier Fourdan <ofourdan@redhat.com> 8268 Date: Thu Apr 30 13:55:42 2020 +0200 8269 8270 xwayland: Lock on entering surface if needed 8271 8272 When an X11 client issues a ConfinePointer wit ha hidden cursor, 8273 Xwayland may translate that as a pointer lock. 8274 8275 However, if the pointer is located on another window at the time, 8276 the request may be ignored, even if the pointer later enters the window. 8277 8278 To avoid that issue, check again if locking the pointer with a hidden 8279 cursor is needed when pointer enters a surface. 8280 8281 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 8282 Reviewed-by: Carlos Garnacho <carlosg@gnome.org> 8283 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 8284 8285 commit 1345f804a88efc11c58f8388983d34445d3e5928 8286 Author: Olivier Fourdan <ofourdan@redhat.com> 8287 Date: Tue Mar 24 16:33:16 2020 +0100 8288 8289 xwayland: confine motion events to the confined window 8290 8291 When an X11 client has an active grab on the pointer, all events are 8292 reported relative to the window with the grab. 8293 8294 For Xwayland, if an X11 client has a grab with a pointer confinement 8295 active, while pointer focus is on another window, motion events should 8296 not be reported to the client with the grab, because that sets the X11 8297 client appart, the events would be reported when the pointer is on any 8298 X11 window but not on Wayland native surfaces. 8299 8300 Therefore, if the pointer is confined on a window and that window 8301 differs from the actual pointer focus window, just pretend we lost 8302 pointer focus to another window. 8303 8304 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 8305 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/962 8306 Reviewed-by: Carlos Garnacho <carlosg@gnome.org> 8307 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 8308 8309 commit 5929b789f9c6531ee257504a7be9c9e3a49b30eb 8310 Author: Olivier Fourdan <ofourdan@redhat.com> 8311 Date: Tue Mar 24 16:12:38 2020 +0100 8312 8313 xwayland: Do not lock the pointer on the wrong window 8314 8315 If a client issues a grab on the pointer while the cursor is on another 8316 X11 window, and then hides the cursor, we may end up locking the pointer 8317 onto that other window. 8318 8319 Then a button click might end up moving the focus away from the window 8320 which issued the grab, leaving the whole setup in a mixed up state. 8321 8322 Typically, if the pointer is on another X11 window, we should not try to 8323 lock the pointer, so that it can be moved back to the window which 8324 actually issues the grab (and hence the pointer confinement). Typically, 8325 this is the same as an X11 client issuing a pointer grab while the 8326 cursor is on another Wayland native window. 8327 8328 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 8329 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/962 8330 Reviewed-by: Carlos Garnacho <carlosg@gnome.org> 8331 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 8332 8333 commit a5151f58cf98d1696d60a3577dc50851f159da8a 8334 Author: Alan Coopersmith <alan.coopersmith@oracle.com> 8335 Date: Sun May 10 17:46:33 2020 -0700 8336 8337 Update URL's in man pages 8338 8339 Mostly http->https conversions, but also replaces gitweb.fd.o 8340 with gitlab.fd.o, and xquartz.macosforge.org with xquartz.org. 8341 8342 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> 8343 8344 commit 9bf33bab32fdfbe68b287947f55906ff0ac67f04 8345 Author: Martin Weber <martin.weber@secunet.com> 8346 Date: Fri May 8 16:45:50 2020 +0200 8347 8348 test: Fix struct initialization warning 8349 8350 commit 462beb5338a44390e2fff03096942b035b509830 8351 Author: Christopher Chavez <chrischavez@gmx.us> 8352 Date: Sat Apr 25 05:09:51 2020 +0000 8353 8354 XQuartz: recognize F16-F20 and Menu keys 8355 8356 Signed-off-by: Christopher Chavez <chrischavez@gmx.us> 8357 8358 commit 9937183e4bd2e96154bb4724805f74341ae84bd6 8359 Author: Alexander Volkov <a.volkov@rusbitech.ru> 8360 Date: Tue Apr 21 12:38:03 2020 +0300 8361 8362 Fix build with gcc 9.3.0's -Werror=alloc-size-larger-than= 8363 8364 commit 89f42b88216c0899977dd3861cbf13c5bae321d8 8365 Author: Alexander Volkov <a.volkov@rusbitech.ru> 8366 Date: Tue Apr 21 01:01:21 2020 +0300 8367 8368 gitlab-ci: Bump DEBIAN_TAG to build with gcc 9.3.0 8369 8370 commit 9890e91265cb58c0cddc4de3c8845d18ae6e5a77 8371 Author: Tobias Stoeckmann <tobias@stoeckmann.org> 8372 Date: Sun Apr 19 15:29:43 2020 +0200 8373 8374 hw/xfree86: Support ACPI without APM. 8375 8376 On systems with ACPI but disabled APM (e.g. --disable-linux-apm) 8377 the code does not compile due to preprocessor directives. 8378 8379 If APM is disabled, the final return statement is considered to 8380 be part of ACPI's last if-statement, leading to a function which 8381 has no final return statement at all. 8382 8383 I have refactored the code so ACPI and APM are independent of each 8384 other. 8385 8386 Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> 8387 8388 commit 785e59060c00129e47da6c0877604a56d7e0e32f 8389 Author: Olivier Fourdan <ofourdan@redhat.com> 8390 Date: Fri Apr 24 17:45:49 2020 +0200 8391 8392 xwayland: Fix infinite loop at startup 8393 8394 Mutter recently added headless tests, and when running those tests the 8395 Wayland compositor runs for a very short time. 8396 8397 Xwayland is spawned by the Wayland compositor and upon startup will 8398 query the various Wayland protocol supported by the compositor. 8399 8400 To do so, it will do a roundtrip to the Wayland server waiting for 8401 events it expects. 8402 8403 If the Wayland compositor terminates before Xwayland has got the replies 8404 it expects, it will loop indefinitely calling `wl_display_roundtrip()` 8405 continuously. 8406 8407 To avoid that issue, add a new `xwl_screen_roundtrip()` that checks for 8408 the returned value from `wl_display_roundtrip()` and fails if it is 8409 negative. 8410 8411 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 8412 Reviewed-by: Roman Gilg <subdiff@gmail.com> 8413 Reviewed-by: Jonas Ådahl <jadahl@gmail.com> 8414 8415 commit 2fe13a1f448ff27925f92a557f145bab9ab91a0e 8416 Author: Jon Turney <jon.turney@dronecode.org.uk> 8417 Date: Fri Feb 11 16:10:36 2011 +0000 8418 8419 hw/xwin: Drop call to setlocale() 8420 8421 Since we now only work with UTF-8 (or ISO8859-1) text in the clipboard, 8422 we don't need to setlocale(). 8423 8424 commit f269e01e1a783227c88b395cf6f55dcadeb751c9 8425 Author: Jon Turney <jon.turney@dronecode.org.uk> 8426 Date: Mon Jul 2 17:25:53 2018 +0100 8427 8428 hw/xwin: Consistently use BOOL type from Xmd.h 8429 8430 This avoids including Xdefs.h, which means we avoid all the issues with 8431 _XSERVER64 effecting how types are defined by that. 8432 8433 commit 4055fed1e7933c05afe143cbd18743c1ff1c7fee 8434 Author: Jon Turney <jon.turney@dronecode.org.uk> 8435 Date: Sun Jul 1 15:53:42 2018 +0100 8436 8437 hw/xwin: Remove XSetAuthorization() for helper clients 8438 8439 All helper client code now uses xcb, so calling XSetAuthorization() is 8440 no longer needed. 8441 8442 This is the last reference to libX11 from helper clients, so linking 8443 with x11-xcb and libX11 is no longer required. 8444 8445 Also drop (unneeded?) linking with libXau. 8446 8447 Also drop installing these prerequistes on AppvVeyor. 8448 8449 Also move prototypes for functions in winauth.c from win.h into a new 8450 header, winauth.h, and include that where needed. 8451 8452 commit 9e02e023b08e24d4213ca14d99612e4cf5ef2f1e 8453 Author: Jon Turney <jon.turney@dronecode.org.uk> 8454 Date: Sat Jun 30 16:00:16 2018 +0100 8455 8456 hw/xwin: xcbify clipboard integration 8457 8458 Convert clipboard integration code from libX11 to xcb 8459 8460 This drops support for COMPOUND_TEXT. Presumably some ancient 8461 (pre-2000) clients exist which support that, but not UTF8_STRING, but we 8462 don't have an example to test with. (Given the nature of the thing, the 8463 users of those clients probably work in CJK languages) 8464 8465 Supporting COMPOUND_TEXT would also involve writing (or extracting from 8466 Xlib) support for the ISO 2022 encoding. 8467 8468 v2: 8469 Fix the length of text property set by a SelectionRequest 8470 8471 The length of the text property is not neccessarily the same as the 8472 length of the clipboard text before it is d2u converted (specifically, 8473 if that contains any '\r\n' sequences, it will be shorter as they are 8474 now just '\n') 8475 8476 commit f4936de73c094e35eb293f32ab470347741a4fa0 8477 Author: Jon Turney <jon.turney@dronecode.org.uk> 8478 Date: Sun Jul 1 12:11:19 2018 +0100 8479 8480 hw/xwin: Remove nounicodeclipboard option 8481 8482 Always use CF_UNICODETEXT clipboard format. Windows will automatically 8483 down-convert to CF_TEXT for clients which request that. 8484 8485 This is subtly different in one way: if CF_TEXT is requested, we now 8486 post CF_UNICODETEXT and it is converted to CF_TEXT *in the locale of the 8487 requesting process*. Previously, we would convert to CF_TEXT *in our 8488 locale* and post that. 8489 8490 It looks like the code in the !X_HAVE_UTF8_STRING case didn't actually 8491 work correctly, but fortunately that has never been true... 8492 8493 commit 9f51dfdec37c991173c7a580fd1c279cfe09142e 8494 Author: Jon Turney <jon.turney@dronecode.org.uk> 8495 Date: Sat Jun 30 16:15:52 2018 +0100 8496 8497 hw/xwin: Remove support for pre-Vista Win32 clipboard API 8498 8499 The original Win32 clipboard API is widely regarded as terrible, since 8500 it relies on clients co-operatively managing the clipboard viewer chain, 8501 and a single buggy client can break it for all other clients. 8502 8503 The last Windows version only supporting that API was Windows XP (5.1), 8504 EOLed in 2014. 8505 8506 (This requires MinGW-w64 w32api 6.0.0 or later for 8507 Add/RemoveClipboardListener correctly exported by the x86_64 user32 8508 implib) 8509 8510 commit 9a4b62798bf4bcc2828a2a485e878e7d4447d03d 8511 Author: Jon Turney <jon.turney@dronecode.org.uk> 8512 Date: Fri Apr 26 02:26:44 2019 +0100 8513 8514 hw/xwin: Fix lingering uses of libX11 types and values 8515 8516 commit d7010cd93a381f1fc0cc681ddb70df9371370644 8517 Author: Jon Turney <jon.turney@dronecode.org.uk> 8518 Date: Thu Nov 19 18:06:28 2015 +0000 8519 8520 hw/xwin: Warn about too large Windows -> X clipboard pastes 8521 8522 XChangeProperty() requests larger than the ~16MB permitted even with 8523 BigReq will fail BadLength 8524 8525 commit 56a91f20671402a8c6f60c40e5e4e18f7978c740 8526 Author: Jon Turney <jon.turney@dronecode.org.uk> 8527 Date: Wed Nov 18 21:27:23 2015 +0000 8528 8529 hw/xwin: Implement INCR protocol for X clipboard -> Windows clipboard 8530 8531 Also, relax the timeout mechanism so it allows 1 second between events, 8532 rather than 1 second for the entire transfer, as transfers of large 8533 pastes can take more than 1 second. 8534 8535 Also, prefer UTF8_STRING encoding to COMPOUND_TEXT encoding 8536 8537 commit 4f95d87d66b6a6e11aa8616c9242e0907ffee66b 8538 Author: Michael Stapelberg <stapelberg@google.com> 8539 Date: Thu Mar 26 21:53:58 2020 +0100 8540 8541 Xorg: honor AutoRepeat option 8542 8543 This option was implemented before the drivers were split in ≈2006, 8544 and e.g. XWin still supports it. 8545 8546 With this commit, Xorg regains support, so that the following configuration can 8547 be used to set the repeat rate for all keyboard devices without having to modify 8548 Xorg command-line flags or having to automate xset(1): 8549 8550 Section "InputClass" 8551 Identifier "system-keyboard" 8552 MatchIsKeyboard "on" 8553 Option "XkbLayout" "de" 8554 Option "XkbVariant" "neo" 8555 Option "AutoRepeat" "250 30" 8556 EndSection 8557 8558 Signed-off-by: Michael Stapelberg <stapelberg@google.com> 8559 8560 commit 5684d436e2b65cd0fe305460e437a2f69af29865 8561 Author: Adam Jackson <ajax@redhat.com> 8562 Date: Thu Apr 19 14:49:22 2018 -0400 8563 8564 xinput: Remove PropagateMask 8565 8566 Initialized to a constant value, never modified, never varied by device. 8567 8568 Signed-off-by: Adam Jackson <ajax@redhat.com> 8569 8570 commit 4520ec9bd54b261fa2b210e9550d76087ef06259 8571 Author: Adam Jackson <ajax@redhat.com> 8572 Date: Thu Apr 19 14:42:47 2018 -0400 8573 8574 xinput: Remove ExtExclusiveMasks 8575 8576 Initialized to a constant value, never modified, never varied by device. 8577 8578 Signed-off-by: Adam Jackson <ajax@redhat.com> 8579 8580 commit 1e29f3ea3eb63cfcb78a463ee0345ec22a013033 8581 Author: Adam Jackson <ajax@redhat.com> 8582 Date: Thu Mar 5 16:32:56 2020 -0500 8583 8584 glx: Require screens match for share contexts for classic CreateContext 8585 8586 The GLX_ARB_create_context path (with which this should all get unified, 8587 someday, sigh) already enforces this, but the classic path does not. 8588 It's effectively assumed by the implementation anyway, so let's enforce 8589 it rather than do crashy things. 8590 8591 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 8592 Signed-off-by: Adam Jackson <ajax@redhat.com> 8593 8594 commit b56e501092169a9c0a60663d832ee71898a8bc4b 8595 Author: Vasily Khoruzhick <anarsoul@gmail.com> 8596 Date: Fri Mar 20 20:36:25 2020 -0700 8597 8598 glx: fixup symbol name for get_extensions function 8599 8600 glxProbeDriver() concatenates __DRI_DRIVER_GET_EXTENSIONS with driver name 8601 to get symbol name for get_extension function. Unfortunately that doesn't 8602 work for drivers that have hyphen in their name, e.g. sun4i-drm -- 8603 get_extensions() for these uses underscore instead. 8604 8605 As result dlsym() doesn't find get_extension() function and AIGLX 8606 initialization fails resulting in following message in Xorg.0.log: 8607 8608 (EE) AIGLX error: sun4i-drm does not export required DRI extension 8609 8610 Replace all non-alpha-numeric characters with underscore to fix the issue. 8611 8612 Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> 8613 8614 commit 5e91587302e85fd6f0e8d5ffbe30182e18c6913f 8615 Author: Michel Dänzer <mdaenzer@redhat.com> 8616 Date: Tue Mar 17 11:45:22 2020 +0100 8617 8618 xwayland: Delete all frame_callback_list nodes in xwl_unrealize_window 8619 8620 We were only calling xwl_present_unrealize_window for the toplevel 8621 window, but the list can contain entries from child windows as well, 8622 in which case we were leaving dangling pointers to freed memory. 8623 8624 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/1000 8625 Fixes: c5067feaeea1 "xwayland: Use single frame callback for Present 8626 flips and normal updates" 8627 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 8628 Tested-by: Olivier Fourdan <ofourdan@redhat.com> 8629 8630 commit 5b9010fa6b0ab0971dddf5108d5a5046c05180b0 8631 Author: Yuriy Vasilev <uuvasiliev@yandex.ru> 8632 Date: Fri Mar 6 20:22:19 2020 +0300 8633 8634 modesetting: add support for GBM_FORMAT_ARGB1555 8635 8636 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 8637 Signed-off-by: Yuriy Vasilev <uuvasiliev@yandex.ru> 8638 8639 commit 8315fc4ea2e04598ce0c7e9771786a9334f0d456 8640 Author: Yuriy Vasilev <uuvasiliev@yandex.ru> 8641 Date: Thu Mar 5 17:02:26 2020 +0300 8642 8643 modesetting: add support for GBM_FORMAT_RGB565 8644 8645 This allow x-server to run with -depth 16. 8646 8647 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 8648 Signed-off-by: Yuriy Vasilev <uuvasiliev@yandex.ru> 8649 8650 commit 3d6efc4aaff80301c0b10b7b6ba297eb5e54c1a0 8651 Author: mntmn <lukas@mntre.com> 8652 Date: Sat Feb 22 17:25:15 2020 +0100 8653 8654 xwayland: port rooted xwayland from wl_shell to xdg-shell protocol 8655 8656 Recently, rooted Xwayland crashes on wlroots-based compositors, because 8657 wlroots removed the deprecated wl_shell protocol. 8658 This MR fixes this by changing the code in question to the xdg-shell 8659 protocol. My motivation do this: on etnaviv-based embedded platforms, 8660 rooted Xwayland is much faster and doesn't cause UI rendering bugs 8661 compared to rootless Xwayland. 8662 8663 Signed-off-by: Lukas F. Hartmann <lukas@mntre.com> 8664 8665 commit de940e06f8733d87bbb857aef85d830053442cfe 8666 Author: Peter Harris <pharris@opentext.com> 8667 Date: Thu Nov 14 14:06:21 2019 -0500 8668 8669 xkb: fix key type index check in _XkbSetMapChecks 8670 8671 This code block was moved from a function that returns 0 for failure to a 8672 function that returns 0 for Success in commit 8673 649293f6b634e6305b6737a841d6e9d0f0065d6c. Change the return value to 8674 BadValue to match the other checks in _XkbSetMapChecks. 8675 8676 Set nTypes to xkb->map->num_types when XkbKeyTypesMask is not set, to 8677 allow requests with the XkbKeyTypesMask flag unset in stuff->present to 8678 succeed. 8679 8680 Fixes a potential heap smash when client->swapped is true, because the 8681 remainder of the request will not be swapped after "return 0", but 8682 _XkbSetMap will be called anyway (because 0 is Success). 8683 8684 Signed-off-by: Peter Harris <pharris@opentext.com> 8685 8686 commit 270e439739e023463e7e0719a4eede69d45f7a3f 8687 Author: Peter Harris <pharris@opentext.com> 8688 Date: Thu Nov 14 14:00:31 2019 -0500 8689 8690 xkb: only swap once in XkbSetMap 8691 8692 The server swaps part of the request in _XkbSetMapChecks instead of 8693 SProcXkbSetMap (presumably because walking the XkbSetMap request is hard, 8694 and we don't want to maintain another copy of that code). 8695 8696 Swap the first time _XkbSetMapChecks is called, not the second time. 8697 8698 Signed-off-by: Peter Harris <pharris@opentext.com> 8699 8700 commit d4faab8708779df265239b203ed5f020bff681bf 8701 Author: Hans de Goede <hdegoede@redhat.com> 8702 Date: Mon Nov 4 15:01:18 2019 +0100 8703 8704 xwayland: Remove unnecessary xwl_window_is_toplevel() check from xwl_output_set_window_randr_emu_props() 8705 8706 Since the recent fix to call xwl_output_set_window_randr_emu_props() from 8707 ensure_surface_for_window(), it is now only called on a toplevel window, 8708 so the is-toplevel check is not necessary for the 8709 xwl_output_set_window_randr_emu_props() case. 8710 8711 This commit moves the check to xwl_output_set_randr_emu_prop_callback() 8712 so that we only do it when we are walking over all Windows of a client 8713 to update the property on a change of the emulated resolution. 8714 8715 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 8716 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 8717 8718 commit 148f428dfccf606b932a00d5a00af06e8dca8a7e 8719 Author: Hans de Goede <hdegoede@redhat.com> 8720 Date: Mon Nov 4 14:32:29 2019 +0100 8721 8722 xwayland: Fix setting of _XWAYLAND_RANDR_EMU_MONITOR_RECTS prop on new windows 8723 8724 For window-manager managed windows, xwl_realize_window is only called for 8725 the window-manager's decoration window and not for the actual client window 8726 on which we should set the _XWAYLAND_RANDR_EMU_MONITOR_RECTS prop. 8727 8728 Usualy this is not a problem since we walk all client windows to update 8729 the property when the resolution is changed through a randr call. 8730 8731 But for apps which first do the randr change and only then create their 8732 window this does not work, and our xwl_output_set_window_randr_emu_props 8733 call in xwl_realize_window is a no-op as that is only called for the wm 8734 decoration window and not for the actual client's window. 8735 8736 This commit fixes this by making ensure_surface_for_window() call 8737 xwl_output_set_window_randr_emu_props on the first and only child of 8738 window-manager managed windows. 8739 8740 Note this also removes the non-functional xwl_output_set_window_randr_emu_props 8741 call from xwl_realize_window, which was intended to do this, but does not 8742 work. 8743 8744 This fixes apps using the ogre3d library always running at the 8745 monitors native resolution. 8746 8747 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 8748 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 8749 8750 commit 4cfc2677f5c82ca5db0919de549b9b077f1ba113 8751 Author: Hans de Goede <hdegoede@redhat.com> 8752 Date: Mon Nov 4 11:46:49 2019 +0100 8753 8754 xwayland: Call xwl_window_check_resolution_change_emulation() on newly created O-R windows 8755 8756 Some clients, which use vidmode to change the resolution when going fullscreen, 8757 create an override-redirect window and never trigger the screen->ResizeWindow 8758 callback we rely on to do the xwl_window_check_resolution_change_emulation(). 8759 8760 This causes us to not apply a viewport to them, causing the fullscreen window 8761 to not fill the entire monitor. 8762 8763 This commit adds a call to xwl_window_check_resolution_change_emulation() 8764 at the end of ensure_surface_for_window() to fix this. Note that 8765 ensure_surface_for_window() exits early without creating an xwl_window 8766 for new windows which will not be backed by a wayland surface and which 8767 thus will not have an xwl_window. 8768 8769 This fixes ClanLib-0.6.x and alleggl-4.4.x using apps not properly 8770 fullscreening. 8771 8772 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 8773 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 8774 8775 commit 88342353de45e64f408c38bb10cd1506ba0f159a 8776 Author: Hans de Goede <hdegoede@redhat.com> 8777 Date: Mon Oct 7 14:27:49 2019 +0200 8778 8779 xwayland: Fix emulated modes not being removed when screen rotation is used 8780 8781 The code building the mode-list does the following to deal with screen 8782 rotation: 8783 8784 if (need_rotate || xwl_output->rotation & (RR_Rotate_0 | RR_Rotate_180)) { 8785 mode_width = xwl_output->width; 8786 mode_height = xwl_output->height; 8787 } else { 8788 mode_width = xwl_output->height; 8789 mode_height = xwl_output->width; 8790 } 8791 8792 This means we need to do something similar in xwl_output_set_emulated_mode() 8793 to determine if the mode being set is the actual (not-emulated) output mode 8794 and we this should remove any emulated modes set by the client. 8795 8796 All callers of xwl_output_set_emulated_mode always pass a mode pointer 8797 to a member of xwl_output->randr_output->modes, so we do not need to 8798 duplicate this code, instead we can simply check that the passed in mode 8799 is modes[0] which always is the actual output mode. 8800 8801 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 8802 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 8803 8804 commit 10df0437a2b142e61c4d84ffffa9592ac6846ef1 8805 Author: Hans de Goede <hdegoede@redhat.com> 8806 Date: Thu Jan 9 11:00:36 2020 +0100 8807 8808 xwayland: Also hook screen's MoveWindow method 8809 8810 Not only hook the ResizeWindow method of the screen (which really is 8811 MoveAndResize) but also hook the MoveWindow method for checking if we 8812 need to setup a viewport for resolution change emulation. 8813 8814 Our resolution change emulation check if the windows origin matches 8815 the monitors origin and the windows origin can also be changed by just 8816 a move without being resized. 8817 8818 Also checking on a move becomes esp. important when we move to checking 8819 on changes to the top-level non-window-manager client (X11)Window instead 8820 of on changes to the xwl_window later on in this patch series. 8821 8822 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 8823 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 8824 8825 commit 4fc107460a349a1a46f0e5251e6fd2a31f4c0428 8826 Author: Hans de Goede <hdegoede@redhat.com> 8827 Date: Wed Jan 15 14:36:45 2020 +0100 8828 8829 xwayland: Also check resolution-change-emulation when the xwl_window itself moves 8830 8831 The recent change to use the top-level non-window-manager Window drawable 8832 coordinates from xwl_window_check_resolution_change_emulation() in 8833 combination with only calling it on a resize when the top-level window 8834 is moved breaks things with mutter/gnome-shell. 8835 8836 When fullscreening a X11 window, mutter moves its window-decoration Window 8837 wrapping the top-level Window to the monitor's origin coordinates (e.g. 0x0) 8838 last. This updates the top-level's drawable coordinates, but as the 8839 actual MoveWindow is called on the wrapper Window and not on the toplevel 8840 we do not call xwl_window_check_resolution_change_emulation() and we never 8841 enable the viewport. 8842 8843 This commit fixes this by also calling 8844 xwl_window_check_resolution_change_emulation() if the Window being moved 8845 is an xwl_window itself. 8846 8847 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 8848 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 8849 8850 commit 6d98f840da6dfcf2a69e03a1b3fa0bf602ba1f27 8851 Author: Roman Gilg <subdiff@gmail.com> 8852 Date: Fri Jan 3 17:55:28 2020 +0100 8853 8854 xwayland: Check emulation on client toplevel resize 8855 8856 When a reparented window is resized directly check the emulation instead of 8857 doing this only when the window manager parent window is resized, what might 8858 never happen. 8859 8860 For that to work we need to make sure that we compare the current size of the 8861 client toplevel when looking for an emulated mode. 8862 8863 Changes by Hans de Goede: 8864 - Remove xwl_window x, y, width and height members as those are no longer used. 8865 - Add check for xwl_window_from_window() returning NULL. 8866 8867 Signed-off-by: Roman Gilg <subdiff@gmail.com> 8868 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 8869 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 8870 8871 commit 060f10062eb1761515b762b46cba56c7a53db72c 8872 Author: Roman Gilg <subdiff@gmail.com> 8873 Date: Wed Jan 15 10:07:58 2020 +0100 8874 8875 xwayland: Make window_get_none_wm_owner return a Window instead of a Client 8876 8877 Make window_get_none_wm_owner return the first non-wm-window instead of the 8878 owner (client) of the first non-wm-window and rename it to 8879 window_get_client_toplevel to match its new behavior. 8880 8881 This is a preparation patch for switching to using the drawable coordinates 8882 in xwl_window_should_enable_viewport() 8883 8884 Changes by Hans de Goede: 8885 - Split this change out into a separate patch for easier reviewing 8886 - Rename window_get_none_wm_owner to window_get_client_toplevel to match 8887 its new behavior 8888 8889 Signed-off-by: Roman Gilg <subdiff@gmail.com> 8890 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 8891 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 8892 8893 commit a69f7fbb54efc8ffad320c8afd23cb41fc9edc27 8894 Author: Roman Gilg <subdiff@gmail.com> 8895 Date: Fri Jan 3 17:27:28 2020 +0100 8896 8897 xwayland: Recurse on finding the none-wm owner 8898 8899 An X11 window manager might add a chain of parent windows when reparenting to a 8900 decoration window. 8901 8902 That is for example the case for KWin, which reparents client windows to one 8903 decoration and another wrapper parent window. 8904 8905 Account for that by a recursion into the tree. For now assume as before that 8906 all X11 window managers reparent with one child only for these parent windows. 8907 8908 Changes by Hans de Goede: 8909 - Move the xwl_window_is_toplevel() from a later patch in this series here 8910 as it really belongs together with these changes 8911 - Drop no longer necessary xwl_window argument from window_get_none_wm_owner 8912 parameters 8913 8914 Signed-off-by: Roman Gilg <subdiff@gmail.com> 8915 Reviewed-by: Hans de Goede <hdegoede@redhat.com> 8916 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 8917 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 8918 8919 commit 948e02872feb641a176b3af82b6ef1201c97bb16 8920 Author: Roman Gilg <subdiff@gmail.com> 8921 Date: Fri Jan 3 17:12:14 2020 +0100 8922 8923 xwayland: Reuse viewport instead of recreating 8924 8925 When a viewport is already created we can reuse this object instead of 8926 destroying it and getting a new one for updating the source rectangle and 8927 destination size. 8928 8929 Signed-off-by: Roman Gilg <subdiff@gmail.com> 8930 Reviewed-by: Hans de Goede <hdegoede@redhat.com> 8931 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 8932 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 8933 8934 commit ded89300c1dd541f59fe6e93c5c69d7fe7088244 8935 Author: Hans de Goede <hdegoede@redhat.com> 8936 Date: Mon Jan 27 11:08:00 2020 +0100 8937 8938 xwayland: Cache client-id for the window-manager client 8939 8940 Instead of iterating over all clients which are listening for events on the 8941 root window and checking if the client we are dealing with is the one 8942 listening for SubstructureRedirectMask | ResizeRedirectMask events and thus 8943 is the window-manager, cache the client-id of the window-manager in 8944 xwl_screen and use that when checking if a client is the window-manager. 8945 8946 Note that we cache and compare the client-id rather then the ClienPtr, 8947 this saves reading the ClientPtr from the global clients array when doing 8948 the comparison. 8949 8950 Suggested-by: Olivier Fourdan <ofourdan@redhat.com> 8951 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 8952 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 8953 8954 commit 1e44861aba449eec81d69b1da3a6e6f88676e04f 8955 Author: Roman Gilg <subdiff@gmail.com> 8956 Date: Mon May 27 23:01:53 2019 +0200 8957 8958 present: Rename window_msc variable in present function 8959 8960 The value is not the current msc of the window, but the target value 8961 the client sets independently of the window speicific msc offset. Make 8962 this clearer. 8963 8964 Signed-off-by: Roman Gilg <subdiff@gmail.com> 8965 Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> 8966 8967 commit d3c1b223cec2b475c4f1661d7e5dc5238d08d8f6 8968 Author: Roman Gilg <subdiff@gmail.com> 8969 Date: Mon May 27 22:58:49 2019 +0200 8970 8971 present: Move scmd-update-window-crtc function 8972 8973 Move the code portion down. That way it is at a similar position as in 8974 the window mode file. 8975 8976 Signed-off-by: Roman Gilg <subdiff@gmail.com> 8977 Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> 8978 8979 commit 8c2dcc5f800438d2b4545d21a515e013e6aac484 8980 Author: Roman Gilg <subdiff@gmail.com> 8981 Date: Mon May 27 22:49:23 2019 +0200 8982 8983 present: Code cleanup of window to crtc timings update 8984 8985 Make the code more readable by going through some logical abort 8986 conditions. Also make the function only about updating the crtc 8987 msc value and not about also returning the next target msc. 8988 8989 Signed-off-by: Roman Gilg <subdiff@gmail.com> 8990 Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> 8991 8992 commit 4d89ba0058457d51f2e1a132c0b7fc8a3ec5c76d 8993 Author: Roman Gilg <subdiff@gmail.com> 8994 Date: Mon May 27 22:42:34 2019 +0200 8995 8996 present: Unfold and annotate the target-msc getter 8997 8998 Unfold and extensively annotate the target-msc adjustment function, to make 8999 it easier to understand what's happening and why. 9000 9001 Signed-off-by: Roman Gilg <subdiff@gmail.com> 9002 Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> 9003 9004 commit 99e55f1b955e2db442184756fcd8b95791fd71de 9005 Author: Roman Gilg <subdiff@gmail.com> 9006 Date: Mon May 27 22:32:22 2019 +0200 9007 9008 present: Adjust timings with value arguments 9009 9010 We can use value arguments instead of pointers when adjusting the timings 9011 by returning the adjusted value. This improves the readability. 9012 9013 Signed-off-by: Roman Gilg <subdiff@gmail.com> 9014 Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> 9015 9016 commit 4709d24f8e3ef5ee79085b77401eaacd7e1690c7 9017 Author: Olivier Fourdan <ofourdan@redhat.com> 9018 Date: Fri Feb 14 15:20:59 2020 +0100 9019 9020 xwayland: Add version command line option 9021 9022 Xorg supports the '-version' command line option, add something similar 9023 to Xwayland. 9024 9025 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/976 9026 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9027 Reviewed-by: Jonas Ådahl <jadahl@gmail.com> 9028 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9029 9030 commit ee9f6e20de1408d572dc1eba33f3d2a8501d7da5 9031 Author: Adam Jackson <ajax@redhat.com> 9032 Date: Tue Aug 27 18:10:38 2019 -0400 9033 9034 meson: Add support for libunwind 9035 9036 commit 42aaf37241fedfd6a0f72b255f2d45d6ea34d8c6 9037 Author: Zoltán Böszörményi <zboszor@gmail.com> 9038 Date: Wed Feb 12 21:29:52 2020 +0000 9039 9040 Fix modesetting device matching through kmsdev device path 9041 9042 xf86platformProbeDev didn't check the device path, fix it. 9043 9044 This is a problem when trying to set up a non-PCI device via 9045 explicit xorg.conf.d configuration. 9046 9047 An USB DisplayLink device, being non-PCI was always set up 9048 as a GPU device assigned to screen 0 instead of a regular 9049 framebuffer, potentially having its own dedicated screen, 9050 despite such configuration as below. Only the relevant parts 9051 of the configuration are quoted, it's part of a larger context 9052 with an Intel chip that has 3 outputs: 9053 * DP1 connected to an LCD panel, 9054 * VGA1 connected to an external monitor, 9055 * HDMI1 unconnected and having no user visible connector 9056 9057 Section "ServerFlags" 9058 Option "AutoBindGPU" "false" 9059 EndSection 9060 9061 ... 9062 9063 Section "Device" 9064 Identifier "Intel2" 9065 Driver "intel" 9066 BusID "PCI:0:2:0" 9067 Screen 2 9068 Option "Monitor-HDMI1" "HDMI1" 9069 Option "ZaphodHeads" "HDMI1" 9070 EndSection 9071 9072 Section "Device" 9073 Identifier "UDL" 9074 Driver "modesetting" 9075 Option "kmsdev" "/dev/dri/card0" 9076 #BusID "usb:0:1.2:1.0" 9077 Option "Monitor-DVI-I-1" "DVI-I-1" 9078 Option "ShadowFB" "on" 9079 Option "DoubleShadow" "on" 9080 EndSection 9081 9082 ... 9083 9084 Section "Screen" 9085 Identifier "SCREEN2" 9086 Option "AutoServerLayout" "on" 9087 Device "UDL" 9088 GPUDevice "Intel2" 9089 Monitor "Monitor-DVI-I-1" 9090 SubSection "Display" 9091 Modes "1024x768" 9092 Depth 24 9093 EndSubSection 9094 EndSection 9095 9096 Section "ServerLayout" 9097 Identifier "LAYOUT" 9098 Option "AutoServerLayout" "on" 9099 Screen 0 "SCREEN" 9100 Screen 1 "SCREEN1" RightOf "SCREEN" 9101 Screen 2 "SCREEN2" RightOf "SCREEN1" 9102 EndSection 9103 9104 On the particular machine I was trying to set up an UDL device, 9105 I found the following structure was being used to match 9106 the device to a platform device while I was debugging the issue: 9107 9108 xf86_platform_devices[0] == Intel, /dev/dri/card1, primary platform device 9109 xf86_platform_devices[1] == UDL, /dev/dri/card0 9110 9111 devList[0] == "Intel0", ZaphodHeads: DP1 9112 devList[1] == "Intel1", ZaphodHeads: VGA1 9113 devList[2] == "UDL" 9114 devList[3] == "Intel2", ZaphodHeads: HDMI1 (intended GPU device to UDL) 9115 9116 When xf86platformProbeDev() matched the UDL device, the BusID 9117 check failed in both cases of: 9118 * BusID "usb:0:1.2:1.0" was specified 9119 * Option "kmsdev" "/dev/dri/card0" was specified 9120 9121 As a result, xf86platformProbeDev() went on to call probeSingleDevice() 9122 with xf86_platform_devices[0] and devList[2], resulting in the 9123 UDL device being set up as a GPU device assigned to the first screen 9124 instead of as a framebuffer on the third screen as the configuration 9125 specified. 9126 9127 Checking Option "kmsdev" in code code may be a layering violation. 9128 But the modesetting driver is actually part of the Xorg sources 9129 instead of being an external driver, so he "kmsdev" path knowledge 9130 may be used here. 9131 9132 Signed-off-by: Böszörményi Zoltán <zboszor@pr.hu> 9133 9134 commit a542224ea28e2e8ccaf5e0df85bf6c603e97599a 9135 Author: Michel Dänzer <mdaenzer@redhat.com> 9136 Date: Fri Feb 7 12:15:07 2020 +0100 9137 9138 xwayland: Call glamor_block_handler from xwl_screen_post_damage 9139 9140 In between the two phases introduced by the previous change. This makes 9141 sure all pending drawing to the new buffers is flushed before they're 9142 committed to the Wayland server. 9143 9144 commit f88d9b1f779835302e02e255fcd45989db7f488d 9145 Author: Michel Dänzer <mdaenzer@redhat.com> 9146 Date: Fri Feb 7 12:06:39 2020 +0100 9147 9148 xwayland: Split up xwl_screen_post_damage into two phases 9149 9150 The first phase sets the new surface properties for all damaged 9151 windows, then the second phase commits all surface updates. 9152 9153 This is preparatory for the next change, there should be no observable 9154 change in behaviour (other than the order of Wayland protocol 9155 requests). 9156 9157 Reviewed-by: Adam Jackson <ajax@redhat.com> 9158 9159 commit 7b33c2d3f31fe03f88cc26f08590f2baf1a6ef36 9160 Author: Michel Dänzer <mdaenzer@redhat.com> 9161 Date: Thu Feb 6 18:45:19 2020 +0100 9162 9163 Revert "xwayland/glamor-gbm: Add xwl_glamor_gbm_post_damage hook" 9164 9165 This reverts commit 9e85aa9c1fbf51ef00674e3a91aded4083a14a15. 9166 9167 To be replaced with a better solution. 9168 9169 Reviewed-by: Adam Jackson <ajax@redhat.com> 9170 9171 commit 1310346d6052c91910f526cbdcc81061fe6abd94 9172 Author: Michel Dänzer <mdaenzer@redhat.com> 9173 Date: Mon Feb 10 18:48:05 2020 +0100 9174 9175 gitlab-ci: Add meson build job with glamor disabled 9176 9177 To prevent breakage with glamor disabled from creeping in again. 9178 9179 Reviewed-by: Adam Jackson <ajax@redhat.com> 9180 9181 commit 72ccd7f540a36185ecdb62324c68496fb57e65fe 9182 Author: Michel Dänzer <mdaenzer@redhat.com> 9183 Date: Mon Feb 10 18:44:11 2020 +0100 9184 9185 gitlab-ci: Drop "-build-and-test" job name suffix 9186 9187 It's long and kind of redundant. 9188 9189 Reviewed-by: Adam Jackson <ajax@redhat.com> 9190 9191 commit 49553049e871d03e9e26672843de8712d20f688a 9192 Author: Michel Dänzer <mdaenzer@redhat.com> 9193 Date: Mon Feb 10 18:57:42 2020 +0100 9194 9195 modesetting: Remove local variable only used with glamor enabled 9196 9197 Resulted in a build failure with -Werror: 9198 9199 ../hw/xfree86/drivers/modesetting/drmmode_display.c: In function ‘drmmode_crtc_set_mode’: 9200 ../hw/xfree86/drivers/modesetting/drmmode_display.c:759:15: error: unused variable ‘screen’ [-Werror=unused-variable] 9201 759 | ScreenPtr screen = crtc->scrn->pScreen; 9202 | ^~~~~~ 9203 9204 Fixes: c66c548eabf0 "modesetting: Call glamor_finish from 9205 drmmode_crtc_set_mode" 9206 Reviewed-by: Adam Jackson <ajax@redhat.com> 9207 9208 commit 0cb9fa7949d6c5398de220fbdbe1e262e943fcbb 9209 Author: Michel Dänzer <mdaenzer@redhat.com> 9210 Date: Mon Feb 10 18:41:44 2020 +0100 9211 9212 modesetting: Fix build with glamor disabled 9213 9214 Fixes: cb1b1e184723 "modesetting: Indirect the glamor API through 9215 LoaderSymbol" 9216 Reviewed-by: Adam Jackson <ajax@redhat.com> 9217 9218 commit bfb36a5806196e257958907bfcdd71c24acc5d37 9219 Author: Pekka Paalanen <pekka.paalanen@collabora.com> 9220 Date: Mon Feb 10 16:07:41 2020 +0100 9221 9222 randr: auto-bind of GPU is a config change 9223 9224 When a GPU is auto-bound adding more outputs to a screen, that needs to count 9225 as a configuration change on that screen so that a WM listening for 9226 RRScreenChangeNotify gets notified and handles it as a hotplug. This is 9227 particularly for cases where the outputs are already connected. Otherwise 9228 nothing might happen. 9229 9230 Issue #909 describes a real world case where plugging in a DisplayLink dock 9231 with a monitor already connected is sometimes left inactive by GNOME. That 9232 issue is a race, and requires adding a sleep(5); as the first thing in 9233 NewGPUDeviceRequest() to reproduce reliably. With the sleep, the monitor in the 9234 dock will never activate automatically. Add this fix over the sleep, and the 9235 issue is gone. 9236 9237 This fix was originally developed on a branch replicating Ubuntu 19.04 patch 9238 set based on xserver 1.20.4. Testing on master branch was impossible due to 9239 xorg/xserver#910. 9240 9241 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/909 9242 9243 Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com> 9244 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9245 9246 commit 3aa754c3637694a2a3083b8fd9fba0bc862b1a67 9247 Author: David Seifert <soap@gentoo.org> 9248 Date: Wed Feb 5 11:32:24 2020 +0100 9249 9250 Always use `-fno-common` in CI 9251 9252 * This prevents issues from creeping back in at a later stage. 9253 9254 commit 1cfdd1a96580733df3625bcea3384ffee3dc92df 9255 Author: Dave Airlie <airlied@redhat.com> 9256 Date: Tue Feb 4 16:02:06 2020 +1000 9257 9258 modesetting: remove unnecessary error message, fix zaphod leases 9259 9260 I introduced this error with the MST hotplug code, but it can trigger 9261 on zaphod setups, and is perfectly fine. There is no support for 9262 MST/hotplug on zaphod setups currently, so we can just skip over 9263 the dynamic connector handling here. However we shouldn't skip 9264 over the lease handling so move it into the codepath. 9265 9266 Fixes: 9257b1252da9 ("modesetting: add dynamic connector hotplug support (MST) (v3)") 9267 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9268 Signed-off-by: Dave Airlie <airlied@redhat.com> 9269 9270 commit 9e85aa9c1fbf51ef00674e3a91aded4083a14a15 9271 Author: Michel Dänzer <mdaenzer@redhat.com> 9272 Date: Thu Jan 30 12:29:03 2020 +0100 9273 9274 xwayland/glamor-gbm: Add xwl_glamor_gbm_post_damage hook 9275 9276 It flushes any pending drawing to the kernel, to make sure it'll be 9277 visible to the Wayland server. 9278 9279 Without this, it was possible for the Wayland server to process surface 9280 commits before Xwayland got around to flushing the corresponding 9281 drawing, which could result in stale or even completely random window 9282 contents being visible. 9283 9284 v2: 9285 * Make EGL backend post_damage hook mandatory, don't check for NULL in 9286 xwl_glamor_post_damage. (Olivier Fourdan) 9287 9288 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/951 9289 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 9290 9291 commit 6a5e47c57d16de8b6a6a2636f3cbad1aebec32e2 9292 Author: Michel Dänzer <mdaenzer@redhat.com> 9293 Date: Mon Jan 27 17:47:10 2020 +0100 9294 9295 xfree86/modes: Bail from xf86RotateRedisplay if pScreen->root is NULL 9296 9297 Avoids a crash in xf86RotatePrepare -> DamageRegister during 9298 CreateScreenResources if rotation or another transform is configured for 9299 any connected RandR output in xorg.conf. The generic rotation/transform 9300 code generally can't work without the root window currently. 9301 9302 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/969 9303 Fixes: 094f42cdfe5d "xfree86/modes: Call xf86RotateRedisplay from 9304 xf86CrtcRotate" 9305 Acked-by: Olivier Fourdan <ofourdan@redhat.com> 9306 Reviewed-by: Adam Jackson <ajax@redhat.com> 9307 9308 commit 578371616e09364318c9fb2371a693d438b31b29 9309 Author: Daniel Llewellyn <daniel@bowlhat.net> 9310 Date: Wed Jan 29 21:33:24 2020 +0000 9311 9312 os: Ignore dying client in ResetCurrentRequest 9313 9314 You might as well, it's harmless. Better, some cleanup code (like DRI2 9315 swap wait) needs to run both normally and at client exit, so it 9316 simplifies the callers to not need to check first. See 4308f5d3 for a 9317 similar example. 9318 9319 Props: @ajax (Adam Jackson) 9320 9321 Fixes: xorg/xserver#211 9322 9323 Signed-off-by: Daniel Llewellyn <diddledan@ubuntu.com> 9324 9325 commit b6a5389e1789d63c6c61983b973b8559953afc88 9326 Author: Michel Dänzer <mdaenzer@redhat.com> 9327 Date: Tue Jan 28 18:39:10 2020 +0100 9328 9329 gitlab-ci: Enable -Werror in the meson build job 9330 9331 There are no warnings left, so let's prevent new ones from creeping 9332 back in. 9333 9334 commit 794fd7e563ca9430a4a29a8e9f1923c07c23a480 9335 Author: Michel Dänzer <mdaenzer@redhat.com> 9336 Date: Tue Jan 28 18:35:45 2020 +0100 9337 9338 tests/misc: Drop redundant screenInfo declaration 9339 9340 GCC warned about it: 9341 9342 ../test/misc.c:36:19: warning: redundant redeclaration of ‘screenInfo’ [-Wredundant-decls] 9343 36 | extern ScreenInfo screenInfo; 9344 | ^~~~~~~~~~ 9345 In file included from ../test/misc.c:30: 9346 ../include/scrnintstr.h:688:29: note: previous declaration of ‘screenInfo’ was here 9347 688 | extern _X_EXPORT ScreenInfo screenInfo; 9348 | ^~~~~~~~~~ 9349 9350 commit 4287604425e7ff905036541829896d1ddf7c65d0 9351 Author: Michel Dänzer <mdaenzer@redhat.com> 9352 Date: Tue Jan 28 18:31:13 2020 +0100 9353 9354 Xephyr: Cast "red" to char* for xcb_aux_parse_color 9355 9356 xcb_aux_parse_color takes a non-const pointer, even though it doesn't 9357 modify the string or take ownership of its memory. 9358 9359 Avoids the following warning from GCC: 9360 9361 ../hw/kdrive/ephyr/hostx.c: In function ‘hostx_init’: 9362 ../hw/kdrive/ephyr/hostx.c:683:30: warning: passing argument 1 of ‘xcb_aux_parse_color’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 9363 683 | if (!xcb_aux_parse_color("red", &red, &green, &blue)) { 9364 | ^~~~~ 9365 In file included from ../hw/kdrive/ephyr/hostx.c:50: 9366 /usr/include/xcb/xcb_aux.h:194:27: note: expected ‘char *’ but argument is of type ‘const char *’ 9367 194 | xcb_aux_parse_color(char *color_name, 9368 | ~~~~~~^~~~~~~~~~ 9369 9370 commit 65387391a551fff6fec808d48b9bf4b6181cb050 9371 Author: Michel Dänzer <mdaenzer@redhat.com> 9372 Date: Tue Jan 28 18:22:45 2020 +0100 9373 9374 loader: strdup const string assigned to local variable name 9375 9376 There's a free(name) at the end of the function. 9377 9378 GCC warned about this: 9379 9380 ../hw/xfree86/loader/loadmod.c: In function ‘LoadModule’: 9381 ../hw/xfree86/loader/loadmod.c:702:18: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 9382 702 | m = name = "int10"; 9383 | ^ 9384 9385 commit e1fa3beb2fe2519e69f859f0acdc68e5a770de27 9386 Author: Adam Jackson <ajax@redhat.com> 9387 Date: Tue Jan 28 13:26:41 2020 -0500 9388 9389 Revert "dri2: Don't make reference to noClientException" 9390 9391 It's true that the value would always be -1, if it's not zero, but it's 9392 usually zero is the problem. As a result we return failure from 9393 otherwise successful indirect GLX paths, which isn't very nice of us. 9394 9395 This reverts commit 7d33ab0f8c7958b205076f71e4b47c24aace77fd. 9396 9397 Fixes: https://gitlab.freedesktop.org/xorg/xserver/issues/211 9398 9399 commit 435d41d5ffe5467f43225b59411ca9f9a05c10a6 9400 Author: David Seifert <soap@gentoo.org> 9401 Date: Fri Jan 24 12:49:44 2020 +0100 9402 9403 Fix building with `-fno-common` 9404 9405 * GCC 10 will switch the default to `-fno-common`. 9406 https://gcc.gnu.org/PR85678 9407 9408 Bug: https://bugs.gentoo.org/705880 9409 Signed-off-by: Matt Turner <mattst88@gmail.com> 9410 9411 commit 83826075e59c0393c16d2a2482dc5c9f2fdf4564 9412 Author: George Matsumura <gmmatsumura01@bvsd.org> 9413 Date: Thu Dec 26 23:01:26 2019 +0000 9414 9415 Restrict 1x1 pixmap filling optimization to GXcopy 9416 9417 This restricts an optimization whereby the filling of 1x1 pixmaps 9418 went around the driver-provided function to cases where the 9419 source color is meant to be directly copied to the destination, 9420 as opposed to other operations which should produce different 9421 destination values than just the foreground color. 9422 9423 Signed-off-by: George Matsumura <gmmatsumura01@bvsd.org> 9424 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9425 9426 commit 0839b0523a01067cb9c9b53ebdd9ce4c00f0eb12 9427 Author: E5ten <ethancsommer@gmail.com> 9428 Date: Wed Jan 15 17:36:06 2020 +0000 9429 9430 meson: add prefix to serverconfigdir 9431 9432 fixes #853 9433 9434 commit a24a786fc8490fda08b15c3dab6fa6750f008ecb 9435 Author: Michel Dänzer <mdaenzer@redhat.com> 9436 Date: Tue Jan 14 09:23:34 2020 +0100 9437 9438 modesetting: Explicitly #include "mi.h" 9439 9440 For the miClearDrawable prototype. Apparently it doesn't get pulled in 9441 for some build configurations, breaking the build. 9442 9443 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> 9444 9445 commit 25ca99df38a2c28c25ab20a917e68442285f2353 9446 Author: Kenneth Graunke <kenneth@whitecape.org> 9447 Date: Mon Jan 13 23:34:49 2020 -0800 9448 9449 configure: Define GLAMOR_HAS_EGL_QUERY_DRIVER when available 9450 9451 Commit 195c2ef8f9f07b9bdabc0f554a9033b7857b99c7 added this to the Meson 9452 build but neglected to add it to autotools. 9453 9454 v2: Also update dix-config.h.in 9455 9456 Fixes: 195c2ef8f ("glamor: Add a function to get the driver name via EGL_MESA_query_driver") 9457 9458 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> [v1] 9459 Reviewed-by: Eric Engestrom <eric@engestrom.ch> [v1] 9460 Reviewed-by: Matt Turner <mattst88@gmail.com> 9461 9462 commit 49456e0a37fac7bc9d1f01bc1519fb0d699956db 9463 Author: Fabrice Fontaine <fontaine.fabrice@gmail.com> 9464 Date: Fri Dec 27 23:33:37 2019 +0100 9465 9466 hw/xfree86/common/xf86Init.c: fix build without glx 9467 9468 Since commit d8ec33fe0542141aed1d9016d2ecaf52da944b4b, an include on 9469 glxvndabi.h has been added to hw/xfree86/common/xf86Init.c 9470 9471 However, if glx is disabled through --disable-glx and GLX headers are 9472 not installed in the build's environment, build fails on: 9473 9474 In file included from xf86Init.c:81: 9475 ../../../include/glxvndabi.h:64:10: fatal error: GL/glxproto.h: No such file or directory 9476 64 | #include <GL/glxproto.h> 9477 | ^~~~~~~~~~~~~~~ 9478 9479 Fix this failure by removing this include which does not seem to be 9480 needed (an other option would have been to keep it under an ifdef GLXEXT 9481 block) 9482 9483 Fixes: 9484 - http://autobuild.buildroot.org/results/de838a843f97673d1381a55fd4e9b07164693913 9485 9486 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 9487 9488 commit 26004df63c25061586a967f3586795a75280acc2 9489 Author: Lubomir Rintel <lkundrak@v3.sk> 9490 Date: Wed Dec 25 18:54:03 2019 +0100 9491 9492 glamor_egl: Reject OpenGL < 2.1 early on 9493 9494 The Etnaviv driver on GC2000 reports desktop OpenGL 1.3 but also OpenGL ES 2.0. 9495 However, with the modesetting driver, GLES2 never gets a chance: 9496 9497 [ 11233.393] Require OpenGL version 2.1 or later. 9498 [ 11233.393] (EE) modeset(0): Failed to initialize glamor at ScreenInit() time. 9499 [ 11233.393] (EE) 9500 Fatal server error: 9501 [ 11233.395] (EE) AddScreen/ScreenInit failed for driver 0 9502 9503 Let's reject old desktop GL early on, just like XWayland seems to do. 9504 9505 This is perhaps a slightly bit more complicated that one would expect, since we 9506 need to call eglMakeCurrent() before we query the GL version. 9507 9508 Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> 9509 9510 commit 98bfee6a1b901a6f886d74dcc9fd3cbb68838375 9511 Author: Michel Dänzer <mdaenzer@redhat.com> 9512 Date: Mon Dec 23 09:26:17 2019 +0100 9513 9514 xwayland: Include xwayland-window.h from xwayland-glamor-eglstream.c 9515 9516 Fixes build failure. 9517 9518 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/954 9519 Fixes: 89e32d00f6e0 "xwayland: Move Xwayland windows to its own sources" 9520 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 9521 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 9522 9523 commit e914fb16adcab8807a280450d5cdfff4bbdce96b 9524 Author: Michel Dänzer <mdaenzer@redhat.com> 9525 Date: Mon Dec 23 09:53:26 2019 +0100 9526 9527 gitlab-ci: Install libnvidia-egl-wayland-dev package 9528 9529 In order to build-test the Xwayland eglstream code. 9530 9531 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 9532 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 9533 9534 commit a52122c7f2697361f53e82ac384ff3f4eba24c76 9535 Author: Michel Dänzer <mdaenzer@redhat.com> 9536 Date: Mon Dec 23 09:32:07 2019 +0100 9537 9538 gitlab-ci: Use sorted lists of distro packages, one per line 9539 9540 This will make it easier to review changes. 9541 9542 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 9543 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 9544 9545 commit 37a64ede3b545cda9edde65c65c02054d2da43cb 9546 Author: Michel Dänzer <mdaenzer@redhat.com> 9547 Date: Mon Dec 23 09:51:43 2019 +0100 9548 9549 gitlab-ci: Strip down docker image contents more 9550 9551 Making the image significantly smaller. 9552 9553 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 9554 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 9555 9556 commit 23b72d8e4b624ffd81a35e3b62be2430051a6ffa 9557 Author: Michel Dänzer <mdaenzer@redhat.com> 9558 Date: Mon Dec 23 09:35:09 2019 +0100 9559 9560 gitlab-ci: Use -j4 instead of -j$(proc) 9561 9562 The shared GitLab CI runners are configured for jobs making use of up 9563 to 4 CPU cores, attempting to use more may overload them. 9564 9565 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 9566 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 9567 9568 commit 9107a610deb130d0e4ddee92d6ca9a08a8e103f3 9569 Author: Michel Dänzer <mdaenzer@redhat.com> 9570 Date: Mon Dec 23 10:41:32 2019 +0100 9571 9572 gitlab-ci: Use host-mapped directory for ccache 9573 9574 Same as done in Mesa. 9575 9576 Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> 9577 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 9578 9579 commit 4226c6d0329df440551b7b91ae573a82c64a1ac9 9580 Author: Aaron Plattner <aplattner@nvidia.com> 9581 Date: Thu Dec 26 13:40:17 2019 -0800 9582 9583 modesetting: Check whether RandR was initialized before calling rrGetScrPriv 9584 9585 Calling rrGetScrPriv when RandR isn't initialized causes an assertion 9586 failure that aborts the server: 9587 9588 Xorg: ../include/privates.h:121: dixGetPrivateAddr: Assertion `key->initialized' failed. 9589 9590 Thread 1 "Xorg" received signal SIGABRT, Aborted. 9591 0x00007ffff78a8f25 in raise () from /usr/lib/libc.so.6 9592 (gdb) bt 9593 #0 0x00007ffff78a8f25 in raise () from /usr/lib/libc.so.6 9594 #1 0x00007ffff7892897 in abort () from /usr/lib/libc.so.6 9595 #2 0x00007ffff7892767 in __assert_fail_base.cold () from /usr/lib/libc.so.6 9596 #3 0x00007ffff78a1526 in __assert_fail () from /usr/lib/libc.so.6 9597 #4 0x00007ffff7fb57c1 in dixGetPrivateAddr (privates=0x555555ab1b60, key=0x555555855720 <rrPrivKeyRec>) at ../include/privates.h:121 9598 #5 0x00007ffff7fb5822 in dixGetPrivate (privates=0x555555ab1b60, key=0x555555855720 <rrPrivKeyRec>) at ../include/privates.h:136 9599 #6 0x00007ffff7fb586a in dixLookupPrivate (privates=0x555555ab1b60, key=0x555555855720 <rrPrivKeyRec>) at ../include/privates.h:166 9600 #7 0x00007ffff7fb8445 in CreateScreenResources (pScreen=0x555555ab1790) at ../hw/xfree86/drivers/modesetting/driver.c:1335 9601 #8 0x000055555576c5e4 in xf86CrtcCreateScreenResources (screen=0x555555ab1790) at ../hw/xfree86/modes/xf86Crtc.c:744 9602 #9 0x00005555555d8bb6 in dix_main (argc=4, argv=0x7fffffffead8, envp=0x7fffffffeb00) at ../dix/main.c:214 9603 #10 0x00005555557a4f0b in main (argc=4, argv=0x7fffffffead8, envp=0x7fffffffeb00) at ../dix/stubmain.c:34 9604 9605 This can happen, for example, if the server is configured with Xinerama 9606 and there is more than one X screen: 9607 9608 Section "ServerLayout" 9609 Identifier "crash" 9610 Screen 0 "modesetting" 9611 Screen 1 "dummy" RightOf "modesetting" 9612 Option "Xinerama" 9613 EndSection 9614 9615 Section "Device" 9616 Identifier "modesetting" 9617 Driver "modesetting" 9618 EndSection 9619 9620 Section "Screen" 9621 Identifier "modesetting" 9622 Device "modesetting" 9623 EndSection 9624 9625 Section "Device" 9626 Identifier "dummy" 9627 Driver "dummy" 9628 EndSection 9629 9630 Section "Screen" 9631 Identifier "dummy" 9632 Device "dummy" 9633 EndSection 9634 9635 The problem does not reproduce if there is only one X screen because of 9636 this code in xf86RandR12Init: 9637 9638 #ifdef PANORAMIX 9639 /* XXX disable RandR when using Xinerama */ 9640 if (!noPanoramiXExtension) { 9641 if (xf86NumScreens == 1) 9642 noPanoramiXExtension = TRUE; 9643 else 9644 return TRUE; 9645 } 9646 #endif 9647 9648 Fix the problem by checking dixPrivateKeyRegistered(rrPrivKey) before 9649 calling rrGetScrPriv. This is similar to what the xf86-video-amdgpu 9650 driver does: 9651 https://gitlab.freedesktop.org/xorg/driver/xf86-video-amdgpu/blob/fd66f5c0bea2b7c22a47bfd5eb1f22d32d166d9c/src/amdgpu_kms.c#L388 9652 9653 Signed-off-by: Aaron Plattner <aplattner@nvidia.com> 9654 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9655 9656 commit b1ee4036bfd59dfd506ed8312b63edffc913b1c1 9657 Author: Michel Dänzer <mdaenzer@redhat.com> 9658 Date: Mon Dec 23 10:06:25 2019 +0100 9659 9660 gitlab-ci: Mark jobs as interruptible 9661 9662 Allowing redundant pipelines to be automatically cancelled. 9663 9664 commit 1e9c63beddb3010bb1f6eb96679410ca0aca037e 9665 Author: Michel Dänzer <mdaenzer@redhat.com> 9666 Date: Mon Dec 23 10:03:20 2019 +0100 9667 9668 gitlab-ci: Turn .retry YAML anchor into .ci-run-policy template 9669 9670 To match Mesa. 9671 9672 commit 456dff1bf890459840718339279dcb84d36531eb 9673 Author: Alex Goins <agoins@nvidia.com> 9674 Date: Thu Dec 12 20:18:53 2019 -0600 9675 9676 modesetting: Fix msSharePixmapBacking Segfault Regression 9677 9678 Commit cb1b1e184 modified msSharePixmapBacking() to derive modesettingPtr from 9679 the 'screen' argument. Unfortunately, the name of the argument is misleading -- 9680 the screen is the slave screen. If the master is modesetting, 9681 and the slave is not modesetting, it will segfault. 9682 9683 To fix the problem, this change derives modesettingPtr from 9684 ppix->drawable.pScreen. This method is already used when calling 9685 ms->glamor.shareable_fd_from_pixmap() later in the function. 9686 9687 To avoid future issues, this change also renames the 'screen' argument to 9688 'slave'. 9689 9690 Signed-off-by: Alex Goins <agoins@nvidia.com> 9691 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9692 9693 commit 58155baeac494c95a45d99d44dd9307e8aedd2af 9694 Author: Olivier Fourdan <ofourdan@redhat.com> 9695 Date: Wed Dec 18 15:00:11 2019 +0100 9696 9697 xwayland: Cleanup and remove `xwayland.h` 9698 9699 Now that each source and header should be in order, we can safely cleaup 9700 the last remaining bits from the main `xwayland.h` which is not needed 9701 anymore and can be removed. 9702 9703 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9704 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9705 9706 commit c830bd847fa5b60db95dcbb54dde3868f2a31a9a 9707 Author: Olivier Fourdan <ofourdan@redhat.com> 9708 Date: Wed Dec 18 10:33:16 2019 +0100 9709 9710 xwayland: Remove `MODIFIER_META` definition 9711 9712 It's nowhere to be used. 9713 9714 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9715 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9716 9717 commit 4c644fd792e642fc566f7b0b08bc000ecf641a50 9718 Author: Olivier Fourdan <ofourdan@redhat.com> 9719 Date: Wed Dec 18 14:13:34 2019 +0100 9720 9721 xwayland: Move Xwayland GLX declaration 9722 9723 Move the Xwayland GLX declaration to its own header file. 9724 9725 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9726 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9727 9728 commit 808a0a038b945171e0c6e18093fe1b9daeafe26a 9729 Author: Olivier Fourdan <ofourdan@redhat.com> 9730 Date: Wed Dec 18 11:18:22 2019 +0100 9731 9732 xwayland: Move Xwayland vidmode declaration 9733 9734 Move the Xwayland vidmode declaration to its own header file. 9735 9736 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9737 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9738 9739 commit e8ba8a94e120abf78886ca809f0bf01e7258367c 9740 Author: Olivier Fourdan <ofourdan@redhat.com> 9741 Date: Wed Dec 18 10:56:34 2019 +0100 9742 9743 xwayland: Move Xwayland CVT declaration 9744 9745 Move the Xwayland CVT declaration to its own header file. 9746 9747 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9748 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9749 9750 commit 0617c635fa3577965c5fa198ed4e57da8fee919d 9751 Author: Olivier Fourdan <ofourdan@redhat.com> 9752 Date: Wed Dec 18 10:03:43 2019 +0100 9753 9754 xwayland: Separate Xwayland screen code 9755 9756 Move Xwayland screen related code to a separate source file and header. 9757 9758 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9759 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9760 9761 commit 211609a9387a5fb0df83ef6ddea59ef817ea2f59 9762 Author: Olivier Fourdan <ofourdan@redhat.com> 9763 Date: Wed Dec 18 10:45:17 2019 +0100 9764 9765 xwayland: Move Xwayland cursor declarations 9766 9767 Move the Xwayland cursor declarations to their own header file. 9768 9769 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9770 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9771 9772 commit aaeeb10b74920110c36efe069a47722bda5063dd 9773 Author: Olivier Fourdan <ofourdan@redhat.com> 9774 Date: Tue Dec 17 18:02:17 2019 +0100 9775 9776 xwayland: Move Xwayland output declarations 9777 9778 Move the Xwayland output declarations to their own header file. 9779 9780 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9781 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9782 9783 commit 091b24f13e3a9cf46f1c55ba0ba3f35e0bb41a59 9784 Author: Olivier Fourdan <ofourdan@redhat.com> 9785 Date: Tue Dec 17 17:40:21 2019 +0100 9786 9787 xwayland: Move Xwayland input declarations 9788 9789 Move the Xwayland input declarations to their own header file. 9790 9791 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9792 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9793 9794 commit e23d2223d89ee9ae7977b028f2a6522707e921d6 9795 Author: Olivier Fourdan <ofourdan@redhat.com> 9796 Date: Tue Dec 17 17:18:11 2019 +0100 9797 9798 xwayland: Move Xwayland present declarations 9799 9800 Move the Xwayland Present declarations to their own header file. 9801 9802 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9803 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9804 9805 commit d780bdc2fdaeb94b873a9b6dd05a3ab636840ce7 9806 Author: Olivier Fourdan <ofourdan@redhat.com> 9807 Date: Tue Dec 17 17:07:58 2019 +0100 9808 9809 xwayland: Separate Xwayland pixmap code 9810 9811 Move Xwayland generic pixmap code to a separate source file and header. 9812 9813 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9814 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9815 9816 commit 89e32d00f6e03fcdab267bfd9f0b0c5c2747d380 9817 Author: Olivier Fourdan <ofourdan@redhat.com> 9818 Date: Tue Dec 17 15:07:07 2019 +0100 9819 9820 xwayland: Move Xwayland windows to its own sources 9821 9822 Over time, Xwayland main source file `xwayland.c` has grown in size 9823 which makes it look cluttered and harder to read. 9824 9825 Move the code dealing with Xwayland window to its own source and header 9826 files. 9827 9828 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9829 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9830 9831 commit 3a59650ba74e9d97473fa39269fdb74ad7e1cd43 9832 Author: Olivier Fourdan <ofourdan@redhat.com> 9833 Date: Mon Dec 16 17:23:30 2019 +0100 9834 9835 xwayland: Move GLAMOR declarations to their own header 9836 9837 Currently, `xwayland.h` contains all the declarations, which is a bit 9838 awkward and hard to follow. 9839 9840 Move the GLAMOR relevant declarations to their own header file. 9841 9842 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9843 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9844 9845 commit 177c8a230232d114cdbe1650bd22a396d182f5f8 9846 Author: Olivier Fourdan <ofourdan@redhat.com> 9847 Date: Mon Dec 16 17:07:02 2019 +0100 9848 9849 xwayland: Move SHM declarations to their own header 9850 9851 Currently, `xwayland.h` contains all the declarations, which is a bit 9852 awkward and hard to follow. 9853 9854 Move the SHM relevant declarations to their own header file. 9855 9856 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9857 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9858 9859 commit c20e61fddc8c2b8838533f23f54c1c5acea3e05f 9860 Author: Olivier Fourdan <ofourdan@redhat.com> 9861 Date: Tue Dec 17 08:48:51 2019 +0100 9862 9863 xwayland: Move Xwayland structures to their own header 9864 9865 Currently, `xwayland.h` contains all the declarations, which is a bit 9866 awkward and hard to follow. 9867 9868 Move the Xwayland structures declarations to their own header file. 9869 9870 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9871 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9872 9873 commit 5bfca0038e92d61e58d4dc1a54748faef8273023 9874 Author: Michel Dänzer <mdaenzer@redhat.com> 9875 Date: Wed Dec 18 18:18:50 2019 +0100 9876 9877 glamor: Only use dual blending with GLSL >= 1.30 9878 9879 It can't be used with older GLSL. Fixes a crash when attempting to 9880 anyway. 9881 9882 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/97 9883 Fixes: e7308b6c7756 "glamor: Add support for CA rendering in a single pass." 9884 Reviewed-by: Dave Airlie <airlied@redhat.com> 9885 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> 9886 9887 commit 846e81ecb83f30b555ce71a32cd6965d7b9939a5 9888 Author: Michel Dänzer <mdaenzer@redhat.com> 9889 Date: Tue Dec 17 18:39:17 2019 +0100 9890 9891 xwayland: Create duplicate TrueColor GLXFBConfigs for Composite 9892 9893 Similar to what is done in Xorg. Not doing this prevented apps from 9894 using GLX with a Composite visual, e.g. Firefox WebRender or Chromium. 9895 9896 v2: 9897 * Fix inverted direct_color test, fixes Chromium as well. 9898 * Drop Composite extension guards, since other Xwayland code calls 9899 compRedirectWindow/compUnredirectWindow unconditionally anyway. 9900 9901 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/921 9902 Fixes: 8469241592b94b "xwayland: Add EGL-backed GLX provider" 9903 Reviewed-by: Adam Jackson <ajax@redhat.com> # v1 9904 9905 commit 02e7a497ceacef490921a8ae7115cd9f28a66dec 9906 Author: Michel Dänzer <mdaenzer@redhat.com> 9907 Date: Tue Dec 17 18:43:07 2019 +0100 9908 9909 xwayland: Fix duplicate "direct_color" comment to say "double_buffer" 9910 9911 Fixes: 8469241592b94b "xwayland: Add EGL-backed GLX provider" 9912 Reviewed-by: Adam Jackson <ajax@redhat.com> 9913 9914 commit 9b31358c52e951883bf7c01c953a9da080542244 9915 Author: Michel Dänzer <mdaenzer@redhat.com> 9916 Date: Wed Nov 27 18:56:05 2019 +0100 9917 9918 xwayland: Use frame callbacks for Present vblank events 9919 9920 Instead of only the fallback timer. 9921 9922 Fixes https://gitlab.freedesktop.org/xorg/xserver/issues/854 9923 9924 v2: 9925 * Drop unused frame_callback member of struct xwl_present_window 9926 (Olivier Fourdan) 9927 9928 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 9929 9930 commit c5067feaeea115761f0a72f37407c6e5e943d1a1 9931 Author: Michel Dänzer <mdaenzer@redhat.com> 9932 Date: Wed Nov 27 18:04:06 2019 +0100 9933 9934 xwayland: Use single frame callback for Present flips and normal updates 9935 9936 Using a list of Present windows that need to be called back. 9937 9938 This prepares for the following change, there should be no change in 9939 observed behaviour. 9940 9941 v2: 9942 * Use xwl_window_create_frame_callback instead of making the 9943 frame_listener struct non-static (Olivier Fourdan) 9944 9945 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 9946 9947 commit f80eea0529b2cfb805a9c7d4994a4235451131e3 9948 Author: Michel Dänzer <mdaenzer@redhat.com> 9949 Date: Fri Dec 13 18:26:35 2019 +0100 9950 9951 xwayland: Add xwl_window_create_frame_callback helper 9952 9953 This will be used by the following changes. No functional change 9954 intended. 9955 9956 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 9957 9958 commit 46e5236bbe0ca90f1c2a480c54d3f729d4930dfb 9959 Author: Olivier Fourdan <ofourdan@redhat.com> 9960 Date: Thu Dec 12 13:50:16 2019 +0100 9961 9962 xwayland: Take border width into account 9963 9964 Damage coordinates are relative to the drawable, (0,0) being the top 9965 left corner inside the border. 9966 9967 Therefore, when applying damages or accumulating damages between window 9968 buffers, we need to take the window border width into account as well, 9969 otherwise the updates might be only partial or misplaced. 9970 9971 Related: https://gitlab.freedesktop.org/xorg/xserver/issues/951 9972 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9973 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9974 9975 commit 1cb886bc2a3e556b15779300350ec8867b4f907e 9976 Author: Olivier Fourdan <ofourdan@redhat.com> 9977 Date: Fri Dec 13 11:10:03 2019 +0100 9978 9979 xwayland: Recycle window buffers when setting pixmap 9980 9981 Right now, we would recycle the window buffers whenever the window the 9982 window is resized. 9983 9984 This, however, is not sufficient to guarantee that the buffers are up 9985 to date, since changing the window border width for example would not 9986 trigger a `WindowResize` (the border being outside the window). 9987 9988 Make sure we recycle the buffers on `SetWindowPixmap` to ensure that 9989 the buffers will be recycled whenever the pixmap size is changed. 9990 9991 Related: https://gitlab.freedesktop.org/xorg/xserver/issues/951 9992 Suggested-by: Michel Dänzer <mdaenzer@redhat.com> 9993 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 9994 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 9995 9996 commit 71c3a97142265804d64f443bd1ddb68ac356f8a3 9997 Author: dslater38 <dslater38@gmail.com> 9998 Date: Thu Dec 12 04:54:46 2019 +0000 9999 10000 XWin: Fix infinite loop in GetShift() 10001 10002 GetShift(int mask) can be called with mask==0, causing 10003 it to go into an infinite loop. 10004 10005 Note: GetShift(mask) will return 0 for a mask of 10006 both 0 and -1. The assumption is that if mask == 0, 10007 then the corresponding bits for which we're calculating 10008 the shift, are also 0. 10009 10010 commit 0c729bb958375fbd8fb6811ff1ecc88bd9f80282 10011 Author: Peter Hutterer <peter.hutterer@who-t.net> 10012 Date: Thu Dec 12 09:23:47 2019 +1000 10013 10014 gitlab CI: update to the latest version of the ci-templates 10015 10016 Primarily to fix the skopeo copy issue that causes pipelines to fail right 10017 now, see ci-templates commit 0a9bdd33a98f05af67. 10018 10019 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> 10020 10021 commit 2a2234ad1a0fe88400c1511fea67741e4ad09f7f 10022 Author: Michel Dänzer <mdaenzer@redhat.com> 10023 Date: Fri Nov 29 09:40:13 2019 +0100 10024 10025 xwayland: Do flush GPU work in xwl_present_flush 10026 10027 The Present code sends the idle notification event to the client after 10028 xwl_present_flush returns. If we don't flush our GPU work here, the 10029 client may race to draw another frame to the same buffer, so we may end 10030 up copying (parts of) that new frame instead of the one we meant to. 10031 10032 Fixes https://gitlab.freedesktop.org/xorg/xserver/issues/835 10033 10034 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 10035 10036 commit cd999f08c608458d6207110ed237c3a78441870b 10037 Author: Olivier Fourdan <ofourdan@redhat.com> 10038 Date: Fri Oct 25 16:28:50 2019 +0200 10039 10040 xwayland: Use multiple window buffers 10041 10042 Xwayland takes care of not attaching a new buffer if a frame callback is 10043 pending. 10044 10045 Yet, the existing buffer (which was previously attached) may still be 10046 updated from the X11 side, causing unexpected visual glitches to the 10047 buffer. 10048 10049 Add multiple buffering to the xwl_window and alternate between buffers, 10050 to leave the Wayland buffer untouched between frame callbacks and avoid 10051 stuttering or tearing issues. 10052 10053 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/835 10054 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 10055 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10056 10057 commit 1c6f875f52d74d2137161399e134c4888c4eadf2 10058 Author: Olivier Fourdan <ofourdan@redhat.com> 10059 Date: Wed Nov 6 11:49:33 2019 +0100 10060 10061 xwayland: Add multiple window buffering support 10062 10063 Add a mechanism to create, recycle and destroy window buffers when 10064 needed. 10065 10066 Typically, this adds a new `xwl_window_buffer` structure which 10067 represents a buffer for a given Xwayland window. 10068 10069 Each Xwayland window has two different pools of buffers: 10070 10071 - The available buffers pool: 10072 Those are buffers which where created previously and that have either 10073 not been submitted to the compositor or submitted and released. 10074 10075 - The unavailable buffers pool: 10076 Those are typically the buffers which are being used by the 10077 compositor, awaiting a release. 10078 10079 Initially, an Xwayland window starts with both pools empty. As soon as a 10080 new buffer is needed, it's either created (if there is none available) 10081 or picked from the pool of available buffers. 10082 10083 Once submitted to the compositor, the buffer is moved to the pool of 10084 unavailable buffers. When the corresponding `wl_buffer` is released by 10085 the compositor, it is moved back to pool of available buffers again to 10086 be reused when needed. 10087 10088 To avoid keeping too many buffers around doing nothing, a garbage 10089 collection of older, unused buffers also takes care of disposing the 10090 buffers being unused for some time. 10091 10092 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 10093 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10094 10095 commit 77658741869f6a01cec0bdf49827494fb0f06edf 10096 Author: Olivier Fourdan <ofourdan@redhat.com> 10097 Date: Wed Oct 30 13:17:34 2019 +0100 10098 10099 xwayland: Add buffer release callback 10100 10101 The API `wl_buffer_add_listener` is misleading in the sense that there 10102 can be only one `wl_buffer` release callback, and trying to add a new 10103 listener when once is already in place will lead to a protocol error. 10104 10105 The Xwayland EGL backends may need to set up their own `wl_buffer` 10106 release listener, meaning that there is no way to our own `wl_buffer` 10107 release callback. 10108 10109 To avoid the problem, add our own callback API to be notified when the 10110 `wl_buffer` associated with an `xwl_pixmap` is released, triggered from 10111 the different `xwl_pixmap` implementations. 10112 10113 Also update the Present code to use the new buffer release callback API. 10114 10115 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 10116 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10117 10118 commit 8d4be7f6c4f7c673d7ec1a6bfdef944907a3916e 10119 Author: Kenneth Graunke <kenneth@whitecape.org> 10120 Date: Thu Nov 21 23:03:50 2019 -0800 10121 10122 modesetting: Use EGL_MESA_query_driver to select DRI driver if possible 10123 10124 New now ask Glamor to use EGL_MESA_query_driver to obtain the DRI driver 10125 name; if successful, we use that as the DRI driver name. Following the 10126 existing dri2.c logic, we also use the same name for the VDPAU driver, 10127 except for i965 (and now iris), where we switch to the "va_gl" fallback. 10128 10129 This allows us to bypass the PCI ID lists in xserver and centralize the 10130 driver selection mechanism inside Mesa. The hope is that we no longer 10131 have to update these lists for any future hardware. 10132 10133 commit 195c2ef8f9f07b9bdabc0f554a9033b7857b99c7 10134 Author: Kenneth Graunke <kenneth@whitecape.org> 10135 Date: Thu Nov 21 23:01:28 2019 -0800 10136 10137 glamor: Add a function to get the driver name via EGL_MESA_query_driver 10138 10139 This maps to eglGetDisplayDriverName if EGL_MESA_query_render is 10140 supported, otherwise it returns NULL. 10141 10142 commit 60003023fa5b301dd621da4797f8a93035ebeeca 10143 Author: Michel Dänzer <mdaenzer@redhat.com> 10144 Date: Fri Nov 22 18:32:38 2019 +0100 10145 10146 modesetting: Use glamor_clear_pixmap in drmmode_clear_pixmap 10147 10148 Should be slightly more efficient. 10149 10150 Reviewed-by: Adam Jackson <ajax@redhat.com> 10151 10152 commit 9ba13bac9dd076f166ff0d063fc144b904a40d12 10153 Author: Michel Dänzer <mdaenzer@redhat.com> 10154 Date: Mon Nov 18 18:06:28 2019 +0100 10155 10156 modesetting: Clear new screen pixmap storage on RandR resize 10157 10158 Fixes random garbage being visible intermittently. 10159 10160 Reviewed-by: Adam Jackson <ajax@redhat.com> 10161 10162 commit 327df450ffcf5bda5b4254db0208d355860d1010 10163 Author: Michel Dänzer <mdaenzer@redhat.com> 10164 Date: Fri Nov 22 17:51:22 2019 +0100 10165 10166 xfree86/modes: Call xf86RotateRedisplay from xf86CrtcRotate 10167 10168 If a new rotate buffer was allocated. This makes sure the new buffer 10169 has valid transformed contents when it starts being displayed. 10170 10171 Reviewed-by: Adam Jackson <ajax@redhat.com> 10172 10173 commit c66c548eabf06835cb0cb906598fb87c7bb30cf4 10174 Author: Michel Dänzer <mdaenzer@redhat.com> 10175 Date: Fri Nov 22 17:58:12 2019 +0100 10176 10177 modesetting: Call glamor_finish from drmmode_crtc_set_mode 10178 10179 This makes sure any pending drawing to a new scanout buffer will be 10180 visible from the start. 10181 10182 This makes the finish call in drmmode_copy_fb superfluous, so remove it. 10183 10184 Reviewed-by: Adam Jackson <ajax@redhat.com> 10185 10186 commit 06ef320e9bc1f1098df9cd5581f072528f28128e 10187 Author: Michel Dänzer <mdaenzer@redhat.com> 10188 Date: Fri Nov 22 18:05:04 2019 +0100 10189 10190 modesetting: Add glamor_finish() convenience macro 10191 10192 This will simplify backporting the following fix to the 1.20 branch. 10193 10194 Reviewed-by: Adam Jackson <ajax@redhat.com> 10195 10196 commit e6ab7f9f342f463092c45226f3294074351fdd5e 10197 Author: Matt Turner <mattst88@gmail.com> 10198 Date: Thu Nov 21 11:23:18 2019 -0500 10199 10200 xfree86: Test presence of isastream() 10201 10202 isastream() was never more than a stub in glibc, and was removed in 10203 glibc-2.30 by commit a0a0dc83173c ("Remove obsolete, never-implemented 10204 XSI STREAMS declarations"). 10205 10206 Bug: https://bugs.gentoo.org/700838 10207 Reviewed-by: Julien Cristau <jcristau@debian.org> 10208 Signed-off-by: Matt Turner <mattst88@gmail.com> 10209 10210 commit ebf549db2d9341d99e0d0847b948dd798d98f7dc 10211 Author: Dor Askayo <dor.askayo@gmail.com> 10212 Date: Fri Nov 22 17:12:03 2019 +0100 10213 10214 glamor: make sure the correct FBO is cleared 10215 10216 This also removes an unnecesary call to glDrawBuffer. 10217 10218 Signed-off-by: Dor Askayo <dor.askayo@gmail.com> 10219 Fixes: 0e9a0c20 - "xwayland: clear pixmaps after creation in rootless 10220 mode" 10221 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/933 10222 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10223 10224 commit cb1b1e184723fc4748b9a28736fa07fdc5c2990c 10225 Author: Adam Jackson <ajax@redhat.com> 10226 Date: Mon Nov 18 16:46:44 2019 -0500 10227 10228 Revert "Revert "modesetting: Indirect the glamor API through LoaderSymbol"" 10229 10230 Now that we've fixed LoaderSymbolFromModule this should work properly. 10231 10232 This reverts commit 5c7c6d5cffa98e4749185af9211d7642b57673d8. 10233 10234 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10235 10236 commit ab61c16ef07fde6eb7110c63c344c54eb2a2d117 10237 Author: Adam Jackson <ajax@redhat.com> 10238 Date: Mon Nov 18 16:43:50 2019 -0500 10239 10240 loader: Make LoaderSymbolFromModule take a ModuleDescPtr 10241 10242 The thing you get back from xf86LoadSubModule is a ModuleDescPtr, not a 10243 dlsym handle. We don't expose ModuleDescPtr to the drivers, so change 10244 LoaderSymbolFromModule to cast its void * argument to a ModuleDescPtr. 10245 10246 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10247 10248 commit 4308f5d3d1fbd0f5dce81e22c0c3f08c65a7c9d8 10249 Author: Aaron Plattner <aplattner@nvidia.com> 10250 Date: Tue Nov 19 10:08:51 2019 -0800 10251 10252 os: Don't crash in AttendClient if the client is gone 10253 10254 If a client is in the process of being closed down, then its client->osPrivate 10255 pointer will be set to NULL by CloseDownConnection. This can cause a crash if 10256 freeing the client's resources results in a call to AttendClient. For example, 10257 if the client has a pending sync fence: 10258 10259 Thread 1 "X" received signal SIGSEGV, Segmentation fault. 10260 AttendClient (client=0x5571c4aed9a0) at ../os/connection.c:942 10261 (gdb) bt 10262 #0 AttendClient (client=0x5571c4aed9a0) at ../os/connection.c:942 10263 #1 0x00005571c3dbb865 in SyncAwaitTriggerFired (pTrigger=<optimized out>) at ../Xext/sync.c:694 10264 #2 0x00005571c3dd5749 in miSyncDestroyFence (pFence=0x5571c5063980) at ../miext/sync/misync.c:120 10265 #3 0x00005571c3dbbc69 in FreeFence (obj=<optimized out>, id=<optimized out>) at ../Xext/sync.c:1909 10266 #4 0x00005571c3d7a01d in doFreeResource (res=0x5571c506e3d0, skip=skip@entry=0) at ../dix/resource.c:880 10267 #5 0x00005571c3d7b1dc in FreeClientResources (client=0x5571c4aed9a0) at ../dix/resource.c:1146 10268 #6 FreeClientResources (client=0x5571c4aed9a0) at ../dix/resource.c:1109 10269 #7 0x00005571c3d5525f in CloseDownClient (client=0x5571c4aed9a0) at ../dix/dispatch.c:3473 10270 #8 0x00005571c3d55eeb in Dispatch () at ../dix/dispatch.c:492 10271 #9 0x00005571c3d59e96 in dix_main (argc=3, argv=0x7ffe7854bc28, envp=<optimized out>) at ../dix/main.c:276 10272 #10 0x00007fea4837cb6b in __libc_start_main (main=0x5571c3d1d060 <main>, argc=3, argv=0x7ffe7854bc28, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe7854bc18) at ../csu/libc-start.c:308 10273 #11 0x00005571c3d1d09a in _start () at ../Xext/sync.c:2378 10274 (gdb) print client->osPrivate 10275 $1 = (void *) 0x0 10276 10277 Since the client is about to be freed, its ignore count doesn't matter and 10278 AttendClient can simply be a no-op. Check for client->clientGone in AttendClient 10279 and remove similar checks from two callers that had them. 10280 10281 Signed-off-by: Aaron Plattner <aplattner@nvidia.com> 10282 10283 commit 66da95a172c4941b75ffedcdaa0138c0a48f11fb 10284 Author: Olivier Fourdan <ofourdan@redhat.com> 10285 Date: Tue Nov 12 10:03:55 2019 +0100 10286 10287 xwayland: Do not discard frame callbacks on allow commits 10288 10289 Currently, when a X11 client (usually the X11 window manager from a 10290 Wayland compositor) changes the value of the X11 property 10291 `_XWAYLAND_ALLOW_COMMITS` from `false` to `true`, all pending frame 10292 callbacks on the window are discarded so that the commit occurs 10293 immediately. 10294 10295 Weston uses that mechanism to prevent the content of the window from 10296 showing before it's ready when mapping the window initially, but 10297 discarding the pending frame callbacks has no effect on the initial 10298 mapping of the X11 window since at that point there cannot be any frame 10299 callback on a surface which hasn't been committed yet anyway. 10300 10301 However, discarding pending frame callbacks can be problematic if we 10302 were to use the same `_XWAYLAND_ALLOW_COMMITS` mechanism to prevent 10303 damages to be posted before the X11 toplevel is updated completely 10304 (including the window decorations from the X11 window manager). 10305 10306 Remove the portion of code discarding the pending frame callback, 10307 Xwayland should always wait for a pending frame callback if there's one 10308 before posting new damages. 10309 10310 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 10311 Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com> 10312 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10313 https://gitlab.freedesktop.org/xorg/xserver/merge_requests/333 10314 10315 commit 4f984fc06bd57cabfa38f6191f10714878dc8969 10316 Author: Olivier Fourdan <ofourdan@redhat.com> 10317 Date: Mon Nov 18 17:28:45 2019 +0100 10318 10319 present/wnmd: Relax assertion on CRTC on abort_vblank() 10320 10321 Currently, the function `present_wnmd_abort_vblank()` would fail if the 10322 given `crtc` is NULL. 10323 10324 However, `xwl_present_get_crtc()` can return `NULL` under some 10325 circumstances, which would cause an unexpected termination of Xwayland 10326 in such a case, caused by the assertion failure being triggered. 10327 10328 Remove the assertion, considering that the `crtc` isn't actually used in 10329 neither `present_wnmd_abort_vblank()` nor `xwl_present_abort_vblank()`. 10330 10331 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 10332 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10333 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/937 10334 10335 commit 5c7c6d5cffa98e4749185af9211d7642b57673d8 10336 Author: Michel Dänzer <mdaenzer@redhat.com> 10337 Date: Fri Nov 15 11:32:38 2019 +0100 10338 10339 Revert "modesetting: Indirect the glamor API through LoaderSymbol" 10340 10341 This reverts commit dd63f717fe8636315343f421f4f2ee299258f079. 10342 10343 Caused a crash at least on some systems. 10344 10345 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/934 10346 10347 commit dd63f717fe8636315343f421f4f2ee299258f079 10348 Author: Adam Jackson <ajax@redhat.com> 10349 Date: Tue Oct 8 13:11:09 2019 -0400 10350 10351 modesetting: Indirect the glamor API through LoaderSymbol 10352 10353 Prerequisite for building all of xserver with -z now. 10354 10355 Gitlab: https://gitlab.freedesktop.org/xorg/xserver/issues/692 10356 10357 commit 45f35a0c6666c5f35df482948e0c8e91167429ef 10358 Author: Adam Jackson <ajax@redhat.com> 10359 Date: Tue Oct 8 12:52:28 2019 -0400 10360 10361 modesetting: Indirect the shadow API through LoaderSymbol 10362 10363 Prerequisite for building all of xserver with -z now. 10364 10365 Gitlab: https://gitlab.freedesktop.org/xorg/xserver/issues/692 10366 10367 commit 8760fab0a15805bdd12bb8f12bb1c665fde86cc2 10368 Author: Adam Jackson <ajax@redhat.com> 10369 Date: Tue Oct 8 13:29:22 2019 -0400 10370 10371 loader: Move LoaderSymbolFromModule() to public API 10372 10373 Bare LoaderSymbol() isn't really a great API, this is more of a direct 10374 map to dlsym like you want. 10375 10376 Gitlab: https://gitlab.freedesktop.org/xorg/xserver/issues/692 10377 10378 commit e5e9a8ca91d1c087edd8788a110251ad940dbc94 10379 Author: Aaron Plattner <aplattner@nvidia.com> 10380 Date: Wed Nov 6 10:45:43 2019 -0800 10381 10382 xfree86: Call ScreenInit for protocol screens before GPU screens 10383 10384 During startup, the xfree86 DDX's InitOutput() calls PreInit for 10385 protocol screens first, and then GPU screens. On teardown, dix_main() 10386 calls CloseScreen in the reverse order: GPU screens first starting with 10387 the last one and then working backwards, and then protocol screens also 10388 in reverse order. 10389 10390 InitOutput() calls ScreenInit in the wrong order: for GPU screens first and then 10391 for protocol screens. This causes a problem for drivers that have global state 10392 that is tied to the first screen that calls ScreenInit. 10393 10394 Fix this by simply re-ordering the for loops to call PreInit for 10395 protocol screens first and then for GPU screens second. 10396 10397 commit 562c7888be538c4d043ec1f374a9d9afa0b305a4 10398 Author: Alex Goins <agoins@nvidia.com> 10399 Date: Tue Sep 17 18:36:35 2019 -0500 10400 10401 modesetting: Implement ms_covering_randr_crtc() for ms_present_get_crtc() 10402 10403 ms_present_get_crtc() returns an RRCrtcPtr, but derives it from a xf86CrtcPtr 10404 found via ms_dri2_crtc_covering_drawable()=>ms_covering_crtc(). As a result, it 10405 depends on all associated DIX ScreenRecs having an xf86CrtcConfigPtr DDX 10406 private. 10407 10408 Some DIX ScreenRecs don't have an xf86CrtcConfigPtr DDX private, but do have an 10409 rrScrPrivPtr DDX private. Given that we can derive all of the information we 10410 need from RandR, we can support these screens by avoiding the use of xf86Crtc. 10411 This change implements an RandR-based path for ms_present_get_crtc(), allowing 10412 drawables to successfully fall back to syncing to the primary output, even if 10413 the slave doesn't have an xf86CrtcConfigPtr DDX private. 10414 10415 Without this change, if a slave doesn't have an xf86CrtcConfigPtr DDX private, 10416 drawables will fall back to 1 FPS if they overlap an output on that slave. 10417 10418 Signed-off-by: Alex Goins <agoins@nvidia.com> 10419 10420 commit 797e7a0ceb673fe2870c673e248835526a84d000 10421 Author: Alex Goins <agoins@nvidia.com> 10422 Date: Tue Sep 17 18:03:34 2019 -0500 10423 10424 modesetting: Fix ms_covering_crtc() segfault with non-xf86Crtc slave 10425 10426 DIX ScreenRecs don't necessarily have an xf86CrtcConfigPtr DDX private. 10427 ms_covering_crtc() assumes that they do, which can result in a segfault. 10428 10429 Update ms_covering_crtc() to check the XF86_CRTC_CONFIG_PTR() returned pointer 10430 before dereferencing it. This will still mean that ms_covering_crtc() can't fall 10431 back to the primary output when a drawable overlaps a slave output (going to the 10432 1 FPS default instead), but it won't segfault. 10433 10434 Signed-off-by: Alex Goins <agoins@nvidia.com> 10435 10436 commit 3ef9029ace4245d9f8929aa71e22bc6a6f40b7b3 10437 Author: Alex Goins <agoins@nvidia.com> 10438 Date: Wed Aug 28 18:24:16 2019 -0500 10439 10440 modesetting: Fix ms_covering_crtc() segfault with non-modesetting slave primary 10441 10442 ms_covering_crtc() uses RRFirstOutput() to determine a primary output to fall 10443 back to if a drawable is overlapping a slave output. 10444 10445 If the primary output is a slave output, RRFirstOutput() will return a slave 10446 output even if passed a master ScreenPtr. ms_covering_crtc() dereferences the 10447 output's devPrivate, which is invalid for non-modesetting outputs, and can 10448 crash. 10449 10450 Changing RRFirstOutput() could have unintended side effects for other callers, 10451 so this change replaces the call to RRFirstOutput() with ms_first_output(). 10452 ms_first_output() ignores the primary output if it doesn't match the given 10453 ScreenPtr, choosing the first connected output instead. 10454 10455 Signed-off-by: Alex Goins <agoins@nvidia.com> 10456 10457 commit c82f814313a813d7e1a2d7d3b1f7561810446b34 10458 Author: Alex Goins <agoins@nvidia.com> 10459 Date: Wed Sep 4 12:25:31 2019 -0500 10460 10461 randr: Fix RRCrtcDetachScanoutPixmap() segfault during server teardown 10462 10463 During server teardown, mrootdraw is NULL, which can cause segfaults if 10464 master->Stop{,Flipping}PixmapTracking() don't do NULL checking. In this case we 10465 shouldn't need to do master->Stop{,Flipping}PixmapTracking() anyway, so just 10466 skip it. 10467 10468 Signed-off-by: Alex Goins <agoins@nvidia.com> 10469 10470 commit fe439596b99db65bbae35eff1ea0b79db167f8d6 10471 Author: Arthur Williams <taaparthur@gmail.com> 10472 Date: Thu Oct 17 22:47:37 2019 -0700 10473 10474 include: Increase the number of max. input devices to 256. 10475 10476 Extending the decade old f0124ed93, to increase the number of input 10477 devices from 40 to 256. 40 translates at most 9 MD, while 256 will allow 10478 63 MD. It is an arbitrary number, but people are hitting the current 10479 limit under reasonable conditions. 10480 10481 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64793 10482 Signed-off-by: Arthur Williams <taaparthur@gmail.com> 10483 10484 commit eddad048e35cbf0968d0f892009a248359a15ecd 10485 Author: Olivier Fourdan <ofourdan@redhat.com> 10486 Date: Wed Oct 30 15:33:39 2019 +0100 10487 10488 xwayland: Cosmetic, fix indentation 10489 10490 For some reason, indentation for EGL backend hooks was broken. 10491 10492 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 10493 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10494 10495 commit 4a857b161ce1202c60ac464c8eb6de358fed5508 10496 Author: Olivier Fourdan <ofourdan@redhat.com> 10497 Date: Wed Oct 30 13:11:28 2019 +0100 10498 10499 xwayland/shm: Use `calloc()` 10500 10501 Currently, Xwayland pixmap SHM code uses `malloc()` to allocate the 10502 xwl_pixmap. 10503 10504 Use `calloc()` instead, as the EGLstream backend does, as it is safer 10505 (initializing the allocated data to 0). 10506 10507 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 10508 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10509 10510 commit 0d4667b65a81047fe5d5af537d295c64cfa08d9c 10511 Author: Olivier Fourdan <ofourdan@redhat.com> 10512 Date: Wed Oct 30 11:50:24 2019 +0100 10513 10514 xwayland/glamor-gbm: Use `calloc()` 10515 10516 Currently, glamor GBM backend uses `malloc()` to allocate the 10517 xwl_pixmap. 10518 10519 Use `calloc()` instead, as the EGLstream backend does, as it is safer 10520 (initializing the allocated data to 0). 10521 10522 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 10523 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10524 10525 commit 2c5acdef3aab52d0a416aee3654a63328847f22e 10526 Author: Olivier Fourdan <ofourdan@redhat.com> 10527 Date: Thu Oct 31 09:04:19 2019 +0100 10528 10529 xwayland/eglstream: Fix order of `calloc()` args 10530 10531 The definition by the manual is `calloc(size_t nmemb, size_t size)`. 10532 10533 Swap the arguments of calloc() calls to match the definition. 10534 10535 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 10536 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10537 10538 commit 0e9a0c203c2ae4eae12bdbb95428f398211c7bee 10539 Author: Dor Askayo <dor.askayo@gmail.com> 10540 Date: Thu Nov 7 12:25:42 2019 +0100 10541 10542 xwayland: clear pixmaps after creation in rootless mode 10543 10544 When a pixmap is created with a backing FBO, the FBO should be cleared 10545 to avoid rendering uninitialized memory. This could happen when the 10546 pixmap is rendered without being filled in its entirety. 10547 10548 One example is when a top-level window without a background is 10549 resized. The pixmap would be reallocated to prepare for more pixels, 10550 but uninitialized memory would be rendered in the resize offset until 10551 the client sends a frame that fills these additional pixels. 10552 10553 Another example is when a new top-level window is created without a 10554 background. Uninitialized memory would be rendered after the pixmap is 10555 allocated and before the client sends its first frame. 10556 10557 This issue is only apparent in OpenGL implementations that don't zero 10558 the VRAM of allocated buffers by default, such as RadeonSI. 10559 10560 Signed-off-by: Dor Askayo <dor.askayo@gmail.com> 10561 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/636 10562 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10563 10564 commit a506b4ecb6c54fd0388e628520eec75ea3bcb27c 10565 Author: Olivier Fourdan <ofourdan@redhat.com> 10566 Date: Wed Nov 6 15:37:22 2019 +0100 10567 10568 xwayland: make context current to check GL version 10569 10570 `glGetString(GL_VERSION)` will return NULL without a current context. 10571 10572 Commit dabc7d8b (“xwayland: Fall back to GLES2 if we don't get at least 10573 GL 2.1 in glamor”) would check the context is created, but it is made 10574 current just after, so the call to `epoxy_gl_version()` would return 0, 10575 hence defeating the version check. 10576 10577 Make the context current prior to call `epoxy_gl_version()`. 10578 10579 Fixes: dabc7d8b - xwayland: Fall back to GLES2 if we don't get at least 10580 GL 2.1 in glamor 10581 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/932 10582 https://gitlab.freedesktop.org/xorg/xserver/merge_requests/324 10583 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 10584 10585 commit dabc7d8bf2d964460286168b52899c42b3369f8d 10586 Author: Adam Jackson <ajax@redhat.com> 10587 Date: Wed Oct 30 11:20:40 2019 -0400 10588 10589 xwayland: Fall back to GLES2 if we don't get at least GL 2.1 in glamor 10590 10591 Some particularly unfortunate hardware (Intel gen3, mostly) will give 10592 you GLES2 but not GL 2.1. Fall back to GLES2 for such cases so you still 10593 get accelerated GLX. 10594 10595 commit 741bd73429e337071f49509ddcc5fb392e20b0f6 10596 Author: Hans de Goede <hdegoede@redhat.com> 10597 Date: Mon Nov 4 20:03:17 2019 +0100 10598 10599 glamor/xwayland: Define EGL_NO_X11 10600 10601 Define EGL_NO_X11 everywhere were we also define MESA_EGL_NO_X11_HEADERS, 10602 EGL_NO_X11 is the MESA_EGL_NO_X11_HEADERS equivalent for the egl headers 10603 shipped with libglvnd. 10604 10605 This fixes the xserver not building with the libglvnd-1.2.0 headers: 10606 10607 In file included from /usr/include/EGL/eglplatform.h:128, 10608 from /usr/include/epoxy/egl_generated.h:11, 10609 from /usr/include/epoxy/egl.h:46, 10610 from glamor_priv.h:43, 10611 from glamor_composite_glyphs.c:25: 10612 /usr/include/X11/Xlib.h:222:2: error: conflicting types for 'GC' 10613 222 | *GC; 10614 | ^~ 10615 In file included from glamor.h:34, 10616 from glamor_priv.h:32, 10617 from glamor_composite_glyphs.c:25: 10618 ../include/gcstruct.h:282:3: note: previous declaration of 'GC' was here 10619 282 | } GC; 10620 | ^~ 10621 10622 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 10623 10624 commit 622eea366aaf162479eaabd93c88fa04efe98bcc 10625 Author: Jon Turney <jon.turney@dronecode.org.uk> 10626 Date: Sat Oct 26 17:12:26 2019 +0100 10627 10628 meson: Add sha1 library options 10629 10630 v2: Set the define for xha1.c programatically, rather than using loads 10631 of conditionals. 10632 10633 commit 417e4553f143820acc33998898bbd5c3d4567bcd 10634 Author: Adam Jackson <ajax@redhat.com> 10635 Date: Wed Oct 9 12:07:00 2019 -0400 10636 10637 misprite: Stop wrapping GetImage/GetSpans 10638 10639 SourceValidate handles this for us consistently now. 10640 10641 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10642 10643 commit 77f614eb331b0240c699f7aef13a8046c9c2c70a 10644 Author: Adam Jackson <ajax@redhat.com> 10645 Date: Wed Oct 9 12:05:56 2019 -0400 10646 10647 composite: Stop wrapping GetImage/GetSpans 10648 10649 SourceValidate handles this for us consistently now. 10650 10651 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10652 10653 commit 516e75dbb6bbf97c7af9c2226242ffd9259fec11 10654 Author: Adam Jackson <ajax@redhat.com> 10655 Date: Wed Oct 9 11:57:18 2019 -0400 10656 10657 dix: Call SourceValidate before GetImage 10658 10659 This ensures that any prep work for the drawable we're about to read 10660 from is already done before we call down to GetImage. This should be no 10661 functional change as most of the callers with a non-trivial 10662 SourceValidate are already wrapping GetImage and doing the equivalent 10663 thing, but we'll be simplifying that shortly. 10664 10665 More importantly this ensures that if any of that prep work would 10666 generate events - like automatic compositing flushing rendering to a 10667 parent pixmap which then triggers damage - then it happens entirely 10668 before we start writing the GetImage reply header. 10669 10670 Note that we do not do the same for GetSpans, but that's okay. The only 10671 way to get to GetSpans is through miCopyArea or miCopyPlane - where the 10672 callers must already call SourceValidate - or miGetImage - which this 10673 commit now protects with SourceValidate. 10674 10675 Fixes: xorg/xserver#902 10676 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10677 10678 commit ff310903f34ac34c916ad74e919d1ac12aea4715 10679 Author: Adam Jackson <ajax@redhat.com> 10680 Date: Wed Oct 9 11:27:12 2019 -0400 10681 10682 mi: Add a default no-op miSourceValidate 10683 10684 Slightly simplifies the callers since they don't need to check for 10685 non-NULL anymore. 10686 10687 I do extremely hate the workarounds here to suppress misprite taking the 10688 cursor down though. Surely there's a better way. 10689 10690 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 10691 10692 commit 89a9927b1e5ac416441a33b44abddf8372edfe6a 10693 Author: Adam Jackson <ajax@redhat.com> 10694 Date: Wed Oct 16 14:44:49 2019 -0400 10695 10696 include: Remove now-empty site.h 10697 10698 commit ff4e2c24ec599ecdbd24eb181afb50f896beb46d 10699 Author: Adam Jackson <ajax@redhat.com> 10700 Date: Wed Oct 16 14:43:36 2019 -0400 10701 10702 dix: Move default screensaver defaults into globals.c 10703 10704 commit 43fc5307804edc9a09e7ad8794a02b5e18c4f9db 10705 Author: Adam Jackson <ajax@redhat.com> 10706 Date: Wed Oct 16 14:41:20 2019 -0400 10707 10708 include: Move some input-related default #defines to input.h 10709 10710 commit 2d1ed64d2aedb1af5476ba011bbd36ddcf00c311 10711 Author: Adam Jackson <ajax@redhat.com> 10712 Date: Wed Oct 16 14:33:43 2019 -0400 10713 10714 dix: Remove -to option to set the default connection timeout 10715 10716 One minute is admittedly arbitrary, but again, pretty sure this never 10717 gets set on the command line in practice. 10718 10719 commit 46a275522f8692b8fc20043ec7a5e74d43448f0b 10720 Author: Adam Jackson <ajax@redhat.com> 10721 Date: Wed Oct 16 14:30:18 2019 -0400 10722 10723 xdmcp: Remove unconfigurable COMPILEDDISPLAYCLASS 10724 10725 commit 66eb933ec91724a351b7368cf7171adb108299fb 10726 Author: Adam Jackson <ajax@redhat.com> 10727 Date: Wed Oct 16 14:28:33 2019 -0400 10728 10729 os: Remove unconfigurable DEFAULT_ACCESS_CONTROL macro 10730 10731 commit 56ea4c769c2d65df2de86009e8e499f39a8a3d4d 10732 Author: Adam Jackson <ajax@redhat.com> 10733 Date: Wed Oct 16 14:21:06 2019 -0400 10734 10735 dix: Remove -fn and -fc options to set default text/cursor fonts 10736 10737 I strongly suspect these never get used in the wild, and it's not an 10738 especially useful thing to do in any case. 10739 10740 commit 4ebce1ed8b63decb0919146a034f0c80ac47c3cd 10741 Author: Adam Jackson <ajax@redhat.com> 10742 Date: Wed Oct 16 13:56:34 2019 -0400 10743 10744 os: Move log verbosity defaults into os/log.c 10745 10746 There's not any configuration knobs for this so there's no real reason 10747 to leave them in a configgy header. 10748 10749 commit e21371984def00b0e0b5cfc976bfd1756a2905d4 10750 Author: Adam Jackson <ajax@redhat.com> 10751 Date: Wed Oct 16 13:52:54 2019 -0400 10752 10753 include: Remove unused default value for COMPILEDDEFAULTFONTPATH 10754 10755 Again, we're setting this at configure time now. 10756 10757 commit f58fee67b1730798a57629da2f496c9fa594d143 10758 Author: Adam Jackson <ajax@redhat.com> 10759 Date: Wed Oct 16 13:51:41 2019 -0400 10760 10761 include: Remove unused default value for VENDOR_RELEASE 10762 10763 We're always setting this in the appropriate blah-config.h now. 10764 10765 commit 4b936ebcaaa80cc1dc1a51f110c7ecd77b06950e 10766 Author: Adam Jackson <ajax@redhat.com> 10767 Date: Wed Oct 16 13:51:11 2019 -0400 10768 10769 include: Remove unused VENDOR_STRING 10770 10771 commit ec659f021e62338018ac09ea61c3f4baa4fdf6e2 10772 Author: Adam Jackson <ajax@redhat.com> 10773 Date: Wed Oct 16 13:49:13 2019 -0400 10774 10775 dix: Remove now-unused SetVendorString 10776 10777 commit fc671085ee52c6599005e2359930bebe6195ca83 10778 Author: Adam Jackson <ajax@redhat.com> 10779 Date: Wed Oct 16 13:42:15 2019 -0400 10780 10781 dmx: Stop overriding the vendor string 10782 10783 commit 0e4bd71d02d09c320e76280ae8f14df169387507 10784 Author: Ville Syrjälä <ville.syrjala@linux.intel.com> 10785 Date: Tue Sep 3 16:44:56 2019 +0300 10786 10787 modesetting: Fix possible_crtcs 10788 10789 Populate outout possible_crtcs as the union of possible_crtcs from 10790 the encoders rather than the intersection. Otherwise we're easily left 10791 with possible_crtcs==0 when all the possible encoders have 10792 non-overlapping possible_crtcs. 10793 10794 No idea what the magic 0x7f is about, but keep it around in case 10795 it matters. 10796 10797 Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> 10798 10799 commit 334f1107146a2e6ebf6f7743b77aec2ad5c46f75 10800 Author: Alexander Tsoy <alexander@tsoy.me> 10801 Date: Mon Sep 23 18:23:40 2019 +0300 10802 10803 configure: Set libdrm flags correctly if only XORG is enabled 10804 10805 This fixes modesetting driver build failure which can be triggered with 10806 the following configure options: 10807 10808 $ ./configure --disable-dri --disable-dri2 --disable-dri3 10809 --disable-config-udev --enable-xorg 10810 10811 Bugzilla: https://bugs.gentoo.org/689768 10812 Signed-off-by: Alexander Tsoy <alexander@tsoy.me> 10813 Reviewed-by: Emil Velikov <emil.velikov@collabora.com> 10814 10815 commit a1e3dfa50a9a9a41c93c12f19f40d97c56ddf850 10816 Author: Jon Turney <jon.turney@dronecode.org.uk> 10817 Date: Sat Oct 26 18:43:01 2019 +0100 10818 10819 xquartz: Remove trailing quote to fix build 10820 10821 Fix xquartz build after typo in 3c78d637 ("global: Remove BUILD_DATE and 10822 BUILD_TIME") 10823 10824 commit 0cf15714e1253f4ef61bb5e1f825b318a48b3cac 10825 Author: Keith Packard <keithp@keithp.com> 10826 Date: Thu May 16 12:24:01 2019 -0700 10827 10828 modesetting: typo in drmmode_display.c -- ',' instead of ';' at end of line 10829 10830 This seems like a simple typo to me; thanks to C it isn't caught by 10831 the compiler. 10832 10833 Signed-off-by: Keith Packard <keithp@keithp.com> 10834 10835 commit 427f8bc00981703abe3153b6da575faa69fe2748 10836 Author: Robert Mader <robert.mader@posteo.de> 10837 Date: Wed Oct 16 19:14:06 2019 +0200 10838 10839 xserver: Fix a typo 10840 10841 If `need_rotate` is TRUE, we should check for the right rotate. 10842 10843 commit 55482c1caf4dbe7f4735b75366bd4acd81937fc1 10844 Author: Adam Jackson <ajax@redhat.com> 10845 Date: Tue Oct 15 13:40:01 2019 -0400 10846 10847 render: Fix undefined shift in xRenderColorToCard32 10848 10849 Delightfully this is undefined even though CARD16 is an "unsigned" type, 10850 because it's an unsigned short, which C promotes to signed int because 10851 everything is stupid. 10852 10853 commit 592525386ad81cf9c8816f42f01a5bea01034e98 10854 Author: Adam Jackson <ajax@redhat.com> 10855 Date: Tue Oct 15 13:32:36 2019 -0400 10856 10857 dix: Fix undefined memset in _dixInitScreenPrivates 10858 10859 Again, memset(0, ...) is undefined. 10860 10861 commit f44ac101c523a0439bd1a864850e3c1a4e154549 10862 Author: Adam Jackson <ajax@redhat.com> 10863 Date: Tue Oct 15 13:21:37 2019 -0400 10864 10865 record: Fix undefined memcpy in RecordAClientStateChange 10866 10867 If we don't have any recording contexts just skip all this. Note this 10868 also skips a pointless trip through malloc(0)/free. 10869 10870 commit 9155e0c7c6696ec8c657e32bf41a08f88a8f3d0d 10871 Author: Adam Jackson <ajax@redhat.com> 10872 Date: Tue Oct 15 13:16:17 2019 -0400 10873 10874 mi: Fix undefined memcpy in mieqGrowQueue 10875 10876 The first time we get here, eventQueue->events is NULL. 10877 10878 commit 6fe7c43fa52ffa9b91887ea7f8044e54b12637c9 10879 Author: Adam Jackson <ajax@redhat.com> 10880 Date: Tue Oct 15 13:10:35 2019 -0400 10881 10882 dix: Fix undefined shift in ht_generic_hash 10883 10884 The hits keep coming. 10885 10886 commit 1e5f478b7e1183d38ad07d1f5e68fdc9680f2eb8 10887 Author: Adam Jackson <ajax@redhat.com> 10888 Date: Tue Oct 15 13:08:57 2019 -0400 10889 10890 dix: Fix undefined shift in HashResourceID 10891 10892 Again, we need all of the bits of an unsigned int to make this work. 10893 10894 commit 3671a3ee88dac3cf1a301adf27dc2b43b069815b 10895 Author: Adam Jackson <ajax@redhat.com> 10896 Date: Tue Oct 15 13:01:27 2019 -0400 10897 10898 mi: Fix undefined shift in miSetVisualTypesAndMasks 10899 10900 The masks we end up building will occupy all 32 bits of an unsigned int, 10901 which means we had better build the shifts out of unsigned ints, because 10902 left-shifting a signed int all the way into the sign bit is undefined. 10903 10904 commit a41d45eedc0c217c28def47acbd8759e31706b96 10905 Author: Adam Jackson <ajax@redhat.com> 10906 Date: Tue Oct 15 11:59:39 2019 -0400 10907 10908 dix: Fix undefined memset in dixInitPrivates 10909 10910 When we set these up initially, no subsystems have allocated any 10911 privates yet, so the storage address will be null, and memset(NULL, ...) 10912 is undefined. 10913 10914 commit 535f14656a2a42f0cca13a4264e8111300e5806d 10915 Author: Michel Dänzer <mdaenzer@redhat.com> 10916 Date: Mon Oct 14 12:48:24 2019 +0200 10917 10918 Revert https://gitlab.freedesktop.org/xorg/xserver/merge_requests/235 10919 10920 Caused assertion failures / crashes with Xorg. 10921 10922 Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/916 10923 10924 commit 5315f988d9f175e4850f4259f691a68d95ce7ac2 10925 Author: Hans de Goede <hdegoede@redhat.com> 10926 Date: Mon Sep 2 17:32:45 2019 +0200 10927 10928 xwayland: Set _XWAYLAND_RANDR_EMU_MONITOR_RECTS property for resolution emulation 10929 10930 Apps using randr to change the resolution when going fullscreen, in 10931 combination with _NET_WM_STATE_FULLSCREEN to tell the window-manager (WM) 10932 to make their window fullscreen, expect the WM to give the fullscreen window 10933 the size of the emulated resolution as would happen when run under Xorg (*). 10934 10935 We need the WM to emulate this behavior for these apps to work correctly, 10936 with Xwaylands resolution change emulation. For the WM to emulate this, 10937 it needs to know about the emulated resolution for the Windows owning 10938 client for each monitor. 10939 10940 This commit adds a _XWAYLAND_RANDR_EMU_MONITOR_RECTS property, which 10941 contains 4 Cardinals (32 bit integers) per monitor with resolution 10942 emulation info. Window-managers can use this to get the emulated 10943 resolution for the client and size the window correctly. 10944 10945 *) Since under Xorg the resolution will actually be changed and after that 10946 going fullscreen through NET_WM_STATE_FULLSCREEN will size the window to 10947 be equal to the new resolution. 10948 10949 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 10950 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 10951 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 10952 10953 commit 0c305dbff8a44f3fa3d6aefd372a967029a7a527 10954 Author: Hans de Goede <hdegoede@redhat.com> 10955 Date: Mon Aug 26 12:26:34 2019 +0200 10956 10957 xwayland: xwl_window_should_enable_viewport: Add extra test 10958 10959 Games based on the allegro gaming library or on ClanLib-1.0 do not size 10960 their window to match the fullscreen resolution, instead they use a 10961 window covering the entire screen, drawing only the fullscreen resolution 10962 part of it. 10963 10964 This commit adds a check for these games, so that we correctly apply a 10965 viewport to them making fullscreen work properly for these games under 10966 Xwayland. 10967 10968 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 10969 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 10970 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 10971 10972 commit 38de6260816674b5430144cc38a8a27d93d1bf19 10973 Author: Hans de Goede <hdegoede@redhat.com> 10974 Date: Tue Jul 9 09:31:13 2019 +0200 10975 10976 xwayland: Add vidmode mode changing emulation support 10977 10978 Add support for fake mode changes using viewport, for apps which want to 10979 change the resolution when going fullscreen. 10980 10981 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 10982 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 10983 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 10984 10985 commit bcad1b813a04b9f3ff225f57a4baad09bd6315b9 10986 Author: Hans de Goede <hdegoede@redhat.com> 10987 Date: Mon Jul 8 18:35:27 2019 +0200 10988 10989 xwayland: Add xwlVidModeGetCurrentRRMode helper to the vidmode code 10990 10991 crtc->mode reflects the mode set through the xrandr extension, once we 10992 add support for also changing the mode through the vidmode extension this 10993 will no longer correctly reflect the emulated resolution. 10994 10995 Add a new xwlVidModeGetCurrentRRMode helper which determines the mode by 10996 looking at the emulated_mode instead. 10997 10998 Likewise add a xwlVidModeGetRRMode helper and use that in 10999 xwlVidModeCheckModeForMonitor/xwlVidModeCheckModeForDriver to allow any 11000 mode listed in the randr_output's mode list. 11001 11002 This is a preparation patch for adding emulated mode/resolution change 11003 support to Xwayland's XF86 vidmode extension emulation. 11004 11005 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11006 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 11007 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 11008 11009 commit 43c80078126f6f33c6ab7d3cf4668733bde03366 11010 Author: Hans de Goede <hdegoede@redhat.com> 11011 Date: Mon Jul 8 14:00:27 2019 +0200 11012 11013 xwayland: Add xwlRRModeToDisplayMode() helper function 11014 11015 This is a preparation patch for adding emulated mode/resolution change 11016 support to Xwayland's XF86 vidmode extension emulation, using the 11017 Wayland viewport extension. 11018 11019 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11020 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 11021 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 11022 11023 commit d99b9ff0f237d15e7eb507484493c73b393d5dba 11024 Author: Hans de Goede <hdegoede@redhat.com> 11025 Date: Tue Jul 2 11:55:26 2019 +0200 11026 11027 xwayland: Add support for randr-resolution change emulation using viewport 11028 11029 Add support for per client randr-resolution change emulation using viewport, 11030 for apps which want to change the resolution when going fullscreen. 11031 11032 Partly based on earlier work on this by Robert Mader <robert.mader@posteo.de> 11033 11034 Note SDL2 and SFML do not restore randr resolution when going from 11035 fullscreen -> windowed, I believe this is caused by us still reporting the 11036 desktop resolution when they query the resolution. This is not a problem 11037 because when windowed the toplevel window size includes the window-decorations 11038 so it never matches the emulated resolution. 11039 11040 One exception would be the window being resizable in Windowed mode and the 11041 user resizing the window so that including decorations it matches the 11042 emulated resolution *and* the window being at pos 0x0. But this is an 11043 extreme corner case. Still I will submit patches upstream to SDL2 11044 and SFML to always restore the desktop resolution under Xwayland, 11045 disabling resolution emulation all together when going windowed. 11046 11047 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11048 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 11049 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 11050 11051 commit aca0a588eb40a5e6669094a2ab7f71ca0ba06b16 11052 Author: Hans de Goede <hdegoede@redhat.com> 11053 Date: Thu Aug 29 23:04:36 2019 +0200 11054 11055 xwayland: Add support for storing per client per output emulated resolution 11056 11057 Add support for storing per output randr/vidmode emulated resolution 11058 into the per client data. 11059 11060 Since we do not have a free/delete callback for the client this uses 11061 a simple static array. The entries are tied to a specific output by the 11062 server_output_id, with a server_output_id of 0 indicating a free slot 11063 (0 is the "None" Wayland object id). 11064 11065 Note that even if we were to store this in a linked list, we would still 11066 need the server_output_id as this is *per client* *per output*. 11067 11068 This is a preparation patch for adding randr/vidmode resolution 11069 change emulation. 11070 11071 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11072 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 11073 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 11074 11075 commit 905cb8b9e27add5f49a45fe167a0005bf05218bc 11076 Author: Hans de Goede <hdegoede@redhat.com> 11077 Date: Thu Aug 29 22:45:12 2019 +0200 11078 11079 xwayland: Add per client private data 11080 11081 Add per client private data, which for now is empty. 11082 11083 This is a preparation patch for adding randr/vidmode resolution 11084 change emulation. 11085 11086 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11087 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 11088 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 11089 11090 commit e89872f51aa834fa9d94a4ca4822f03b0341ab4f 11091 Author: Robert Mader <robert.mader@posteo.de> 11092 Date: Mon Jan 22 17:57:38 2018 +0100 11093 11094 xwayland: Use RandR 1.2 interface (rev 2) 11095 11096 This adds the RandR 1.2 interface to xwayland and allows modes 11097 advertised by the compositor to be set in an undistructive manner. 11098 11099 With this patch, applications that try to set the resolution will usually 11100 succeed and work while other apps using the same xwayland 11101 instance are not affected at all. 11102 11103 The RandR 1.2 interface will be needed to implement fake-mode-setting and 11104 already makes applications work much cleaner and predictive when a mode 11105 was set. 11106 11107 [hdegoede@redhat.com: Make crtc_set only succeed if the mode matches 11108 the desktop resolution] 11109 11110 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11111 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 11112 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 11113 11114 commit 0d656d796071fb637e4969ea800855fe5d1c9728 11115 Author: Hans de Goede <hdegoede@redhat.com> 11116 Date: Wed Jun 26 16:46:54 2019 +0200 11117 11118 xwayland: Add fake output modes to xrandr output mode lists 11119 11120 This is a preparation patch for adding support for apps which want to 11121 change the resolution when they go fullscreen because they are hardcoded 11122 to render at a specific resolution, e.g. 640x480. 11123 11124 Follow up patches will fake the mode-switch these apps want by using 11125 WPviewport to scale there pixmap to cover the entire output. 11126 11127 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11128 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 11129 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 11130 11131 commit 7c6f17790d3aedb164481264b0f05a8a14103731 11132 Author: Robert Mader <robert.mader@posteo.de> 11133 Date: Tue Jul 2 12:03:12 2019 +0200 11134 11135 xwayland: Use buffer_damage instead of surface damage if available 11136 11137 When a viewport is set, damage will only work properly when using 11138 wl_surface_damage_buffer instead of wl_surface_damage. 11139 11140 When no viewport is set, there should be no difference between 11141 surface and buffer damage. 11142 11143 This is a preparation patch for using viewport to add support for fake 11144 mode-changes through xrandr for apps which want to change the resolution 11145 when going fullscreen. 11146 11147 Changes by Hans de Goede <hdegoede@redhat.com>: 11148 -Split the damage changes out into their own patch 11149 -Add xwl_surface_damage helper 11150 -Also use buffer_damage / the new helper for the present and cursor code 11151 11152 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11153 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 11154 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 11155 11156 commit 47bba4625339592d08b375bcd8e51029c0000850 11157 Author: Robert Mader <robert.mader@posteo.de> 11158 Date: Mon Jan 22 22:02:32 2018 +0100 11159 11160 xwayland: Add wp_viewport wayland extension support 11161 11162 This commit adds support for the wayland wp_viewport extension, note 11163 nothing uses this yet. 11164 11165 This is a preparation patch for adding support for fake mode-changes through 11166 xrandr for apps which want to change the resolution when going fullscreen. 11167 11168 [hdegoede@redhat.com: Split the code for the extension out into its own patch] 11169 11170 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11171 Acked-by: Michel Dänzer <mdaenzer@redhat.com> 11172 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 11173 11174 commit 834a467af978ac7a24ed17b8c8e58b6cddb4faf9 11175 Author: Hans de Goede <hdegoede@redhat.com> 11176 Date: Thu Aug 29 14:18:28 2019 +0200 11177 11178 dix: Add GetCurrentClient helper 11179 11180 Request-handlers as registered in the requestVector array, always get 11181 passed the clientPtr for the client which sent the request. 11182 But the implementation of many request-handlers typically consists of 11183 a generic handler calling implementation specific callbacks and / or 11184 various helpers often multiple levels deep and in many cases the clientPtr 11185 does not get passed to the callbacks / helpers. 11186 11187 This means that in some places where we would like to have access to the 11188 current-client, we cannot easily access it and fixing this would require 11189 a lot of work and often would involve ABI breakage. 11190 11191 This commit adds a GetCurrentClient helper which can be used as a 11192 shortcut to get access to the clienPtr for the currently being processed 11193 request without needing a lot of refactoring and ABI breakage. 11194 11195 Note using this new GetCurrentClient helper is only safe for code 11196 which only runs from the main thread, this new variable MUST NOT be used 11197 by code which runs from signal handlers or from the input-thread. 11198 11199 The specific use-case which resulted in the creation of this patch is adding 11200 support for emulation of randr / vidmode resolution changes to Xwayland. 11201 This emulation will not actually change the monitor resolution instead it 11202 will scale any window with a size which exactly matches the requested 11203 resolution to fill the entire monitor. The main use-case for this is 11204 games which are hard-coded to render at a specific resolution and have 11205 sofar relied on randr / vidmode to change the monitor resolution when going 11206 fullscreen. 11207 11208 To make this emulation as robust as possible (e.g. avoid accidentally scaling 11209 windows from other apps) we want to make the emulated resolution a per client 11210 state. But e.g. the RRSetCrtc function does not take a client pointer; and is 11211 a (used) part of the Xorg server ABI (note the problem is not just limited 11212 to RRSetCrtc). 11213 11214 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11215 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 11216 Signed-off-by: Hans de Goede <hdegoede@redhat.com> 11217 11218 commit b2a0d6065d86b8bf409ffae41180662560c42ce7 11219 Author: Emil Velikov <emil.velikov@collabora.com> 11220 Date: Fri Jul 12 14:45:16 2019 +0100 11221 11222 vfb: add DRI3/glamor support 11223 11224 This commit adds DRI3/glamor support, effectively translating into 11225 hardware GPU support. 11226 11227 Theoretically it should be possible to use DRM/GPU drivers such as 11228 virtio or vgem, although only the intel i915 driver is currently tested. 11229 11230 Since Xvfb does no modeset, it opens the render node. Currently that is 11231 fixed to "/dev/dri/renderD128" and will be tweaked with future commits. 11232 11233 Specific use-cases are left for the reader - testing glamor, GL driver 11234 or others. 11235 11236 v2: Drop GLAMOR_NO_XV, use GLAMOR_FOR_XORG instead (Michel Dänzer) 11237 v3: Fix build w/o glamor 11238 v4: 11239 - Split out glamor dependency patch for meson (Pekka) 11240 - Enhance commit message (Pekka) 11241 - Use O_CLOEXEC with open() (Pekka) 11242 - Enhance error path, memory leak comments (Pekka) 11243 11244 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> 11245 11246 commit 9e574a5bd828e813ff31bdd5cbec52539534a958 11247 Author: Emil Velikov <emil.velikov@collabora.com> 11248 Date: Mon Sep 23 16:23:02 2019 +0100 11249 11250 meson: glamor depends on gbm and epoxy mark as such 11251 11252 Currently glamor depends on epoxy and gbm, even the autotools build 11253 enforces that. 11254 11255 Follow suite and do the same for the meson build. 11256 11257 v1: Split out from larger patch (Pekka) 11258 11259 Signed-off-by: Emil Velikov <emil.velikov@collbora.com> 11260 11261 commit 86c8458f3d09d2c4fb68de7e6ab515739e8f8b3c 11262 Author: Emil Velikov <emil.velikov@collabora.com> 11263 Date: Fri Jul 12 11:34:44 2019 +0100 11264 11265 vfb: clarify code flow in vfbScreenInit 11266 11267 v2: Enhance commit message (Pekka) 11268 11269 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> 11270 11271 commit 744c419cb4eaed4006b5f0f319b72d7ffa9fbc6d 11272 Author: Emil Velikov <emil.velikov@collabora.com> 11273 Date: Fri Jul 19 10:53:19 2019 +0100 11274 11275 glamor: check for non NULL pixmap at close_screen 11276 11277 DDX such as Xorg, Xwayland & Xephyr do not destroy the pixmap before 11278 they call into CloseScreen. At the same time Xvfb (support for glamor 11279 coming with later commit) do. 11280 11281 As such the pixmap will be NULL and we'll crash out. 11282 11283 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> 11284 11285 commit 7667180fb9dbd606e40c000aefc807371d2fb478 11286 Author: Emil Velikov <emil.velikov@collabora.com> 11287 Date: Fri Jul 19 10:53:19 2019 +0100 11288 11289 glamor_egl: check for non NULL pixmap at egl_close_screen 11290 11291 DDX such as Xorg, Xwayland & Xephyr do not destroy the pixmap before 11292 they call into CloseScreen. At the same time Xvfb (support for glamor 11293 coming with later commit) do. 11294 11295 As such the pixmap will be NULL and we'll crash out. 11296 11297 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> 11298 11299 commit 15354fb68f09eecceec5747a58cd16e6ce9236ca 11300 Author: Emil Velikov <emil.velikov@collabora.com> 11301 Date: Fri Jul 19 15:57:52 2019 +0100 11302 11303 glamor_egl: override the CloseScreen/DestroyPixmap earlier 11304 11305 Currently we wrap the EGL CloseScreen/DestroyPixmap callbacks after the 11306 glamor ones. Thus upon teardown, we'll end calling things in the wrong 11307 order. 11308 11309 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> 11310 11311 commit 89597eeba6e7a3418caa375f19f8dd303219881c 11312 Author: Emil Velikov <emil.velikov@collabora.com> 11313 Date: Thu Jul 18 14:04:33 2019 +0100 11314 11315 glamor_egl: remove unneeded xf86 includes/GLAMOR_FOR_XORG 11316 11317 As of last commit, all of glamor_egl ix xf86 agnostic, so adjust the 11318 includes and drop the GLAMOR_FOR_XORG instances. 11319 11320 Note the macro is still used for glamor_xv_init() which pulls xf86. 11321 11322 v2: Drop GLAMOR_FOR_XORG guards (Michel Dänzer) 11323 11324 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> 11325 11326 commit f3ab3d0c6123c8e7ddd3be6142f721590d153848 11327 Author: Emil Velikov <emil.velikov@collabora.com> 11328 Date: Thu Jul 18 13:57:02 2019 +0100 11329 11330 glamor_egl: disable modifiers via glamor_init() 11331 11332 Currently we parse through xf86Info.debug to check if we the modifiers 11333 should be disabled. Handle that within DDX and pass GLAMOR_NO_MODIFIERS 11334 into the glamor_init() flags. 11335 11336 This allows individual DDX control over the setting - say when modifiers 11337 are woking OK with one implementation and not the other. 11338 11339 Most importantly, this removes the final xf86 piece from the codebase. 11340 11341 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> 11342 11343 commit 4018811838c344ee92d10e60789853e4ba512612 11344 Author: Emil Velikov <emil.velikov@collabora.com> 11345 Date: Wed Jul 17 16:07:43 2019 +0100 11346 11347 glamor_egl: don't use ScrnInfoRec::privates 11348 11349 Move from the xf86 specific ScrnInfoRec::privates, to the dix private 11350 handling. Since there's no FreeScreen function in ScreenPtr, fold the 11351 former within the existing CloseScreen. 11352 11353 Users, such as modesetting are updated, and out of tree drivers will 11354 need equivalent, yet trivial, patch. 11355 11356 Note: we need to ensure that the screen private is unset and the screen 11357 callbacks are restored in our CloseScreen function. 11358 11359 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> 11360 11361 commit 1b5183b26d9977d46f6624126a2b2b6d77a74659 11362 Author: Emil Velikov <emil.velikov@collabora.com> 11363 Date: Thu Jul 18 15:58:13 2019 +0100 11364 11365 glamor_egl: move glamor_egl_cleanup() further up 11366 11367 We'll use the function within glamor_egl_close_screen() with next patch. 11368 11369 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> 11370 11371 commit 6a557167366b8b1352709397df50649d5665b755 11372 Author: Emil Velikov <emil.velikov@collabora.com> 11373 Date: Tue Jul 16 17:50:13 2019 +0100 11374 11375 glamor/egl: remove unused function pointers 11376 11377 The following two members of glamor_egl_screen_private has been unused 11378 for a little while now. 11379 CreateScreenResources 11380 CloseScreen 11381 11382 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> 11383 11384 commit 52a2a052aa3ab92b07c185c1fc2bf4ee2d727f4d 11385 Author: Emil Velikov <emil.velikov@collabora.com> 11386 Date: Fri Jul 12 17:47:27 2019 +0100 11387 11388 glamor_egl: use LogMessage over xf86DrvMsg 11389 11390 Much of glamor already use LogMessage() so we might as well be 11391 consistent. This effectively paves the way of making glamor-egl xf86 11392 agnostic. 11393 11394 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> 11395 11396 commit 3340ddf37743fdf197dfc16a97107435ff53c6e4 11397 Author: Adam Jackson <ajax@redhat.com> 11398 Date: Wed Oct 9 16:03:17 2019 -0400 11399 11400 meson: Apparently 1.2 is < 1.2.0 11401 11402 Siiiigh. 11403 11404 commit c7486613b0dc586f93f6ba293d9b55c69995b05c 11405 Author: Adam Jackson <ajax@redhat.com> 11406 Date: Wed Oct 9 15:17:47 2019 -0400 11407 11408 meson: Fix another reference to "gl" 9.2.0 11409 11410 Previous commit e6ef2b12 missed a spot. 11411 11412 commit e6ef2b12404dfec7f23592a3524d2a63d9d25802 11413 Author: Marvin Schmidt <marv@exherbo.org> 11414 Date: Tue Sep 24 09:58:43 2019 +0200 11415 11416 build: glx: Lower gl version to work with libglvnd 11417 11418 When using mesa with libglvnd support, mesa will no longer install the 11419 gl, glx, egl pkg-config files but instead let libglvnd provide them. 11420 libglvnd maintainers decided to change the versioning as it was 11421 mesa-specific previously. Now the libraries have versions of the API 11422 they expose[1]. 11423 This causes problems when building the X server: 11424 11425 checking for glproto >= 1.4.17 gl >= 9.2.0... no 11426 configure: error: Package requirements (glproto >= 1.4.17 gl >= 9.2.0) were not met: 11427 11428 Requested 'gl >= 9.2.0' but version of gl is 1.2 11429 11430 Lower the version requirement to 1.2 to allow building against libglvnd 11431 provided libraries 11432 11433 [1] https://github.com/NVIDIA/libglvnd/commit/0dfaea2bcb7cdcc785f95e244223bd004a2d7fba 11434 11435 commit afd80cfcd5ed7cd45d72620e74df86b016f81f3a 11436 Author: Jon Turney <jon.turney@dronecode.org.uk> 11437 Date: Mon Sep 16 12:43:20 2019 +0100 11438 11439 Revert "appveyor: Drop building Xorg server" 11440 11441 This reverts commit a9537cfdd1ed9656f4e29225af8861418b4fd682. 11442 11443 This is buildable again since !244 11444 11445 commit e693c9657f98c334e9921ca2f8ebf710497c0c6a 11446 Author: Arthur Williams <taaparthur@gmail.com> 11447 Date: Sun Oct 6 11:55:35 2019 -0700 11448 11449 dix: Check for NULL spriteInfo in GetPairedDevice 11450 11451 There is a race when reseting the XServer that causes spriteInfo to be 11452 NULL in GetPairedDevice resulting a segfault and subsequent crash. The 11453 problem was noticed when opening a connection, creating master devices, 11454 destroying master devices and closing the connection during testing. 11455 11456 Signed-off-by: Arthur Williams <taaparthur@gmail.com> 11457 11458 commit a505ecba1048048c168472e4b4a92c13f92b0613 11459 Author: Sven Joachim <svenjoac@gmx.de> 11460 Date: Fri Oct 4 10:29:31 2019 +0200 11461 11462 gitlab-ci: Add a manpage substitutions regression test 11463 11464 This catches the broken manpages in the autoconf build which appeared 11465 after commit 2e497bf887ac ("man: s/__/@/g") and were only partly 11466 rectified by commit 0445705a8bbf ("man: Fix automake seddery"). 11467 11468 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 11469 11470 commit de0d39f825cce7422986011ee9d5db91f15e2987 11471 Author: Sven Joachim <svenjoac@gmx.de> 11472 Date: Wed Oct 2 18:26:07 2019 +0200 11473 11474 modesetting: Fix broken manpage in autoconf build 11475 11476 The autoconf build for the modesetting driver still relied on 11477 xorg-macros.m4 for string replacements and did not include the 11478 top-level manpages.am. As a result, no substitutions took place after 11479 commit 2e497bf887aca832dc0dd30d071c5288ab5c1e15. 11480 11481 This should be a candidate for the 1.20 branch. 11482 11483 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 11484 11485 commit 726e4230c6ffe3148f9877eba32287cfe8d158c1 11486 Author: Sven Joachim <svenjoac@gmx.de> 11487 Date: Wed Oct 2 18:25:17 2019 +0200 11488 11489 xwayland: Add more files to .gitignore 11490 11491 Also sort the file again, missed in commit c8c276c9569b. 11492 11493 commit b2de577f6388c6dd7a463e5cebb8b1366bb45d1f 11494 Author: Adam Jackson <ajax@redhat.com> 11495 Date: Tue Jul 23 14:33:45 2019 -0400 11496 11497 xfree86: Merge vbe into int10 11498 11499 There's not really a good reason to keep these separate, the vbe code 11500 requires int10 and is not very large. This change eliminates the 11501 build-time options for vbe; if you build int10, you get vbe. 11502 11503 Gitlab: https://gitlab.freedesktop.org/xorg/xserver/issues/692 11504 Reviewed-by: Emil Velikov <emil.velikov@collabora.com> 11505 11506 commit e7b5af451c101608d8cc003e8dd0ff83ded17146 11507 Author: Sven Joachim <svenjoac@gmx.de> 11508 Date: Mon Sep 30 18:44:25 2019 +0200 11509 11510 .dir-locals.el: Add missing final newline 11511 11512 commit 47387916fb84f8f9c7931eb7162d1663a6023467 11513 Author: Sven Joachim <svenjoac@gmx.de> 11514 Date: Mon Sep 30 18:43:13 2019 +0200 11515 11516 Fix various spelling errors 11517 11518 commit 2a9268e4a0ba7b062ded4d361be3119d887aac41 11519 Author: Adam Jackson <ajax@redhat.com> 11520 Date: Tue Sep 3 11:20:58 2019 -0400 11521 11522 dri2: Set fallback driver names for Intel and AMD chips 11523 11524 i965 and radeonsi, respectively, are the drivers that have been 11525 receiving new hardware support. It's really silly to need to update the 11526 server side to know specific new devices IDs every time a new ASIC comes 11527 out. 11528 11529 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 11530 11531 commit cbdde938cbaf604741cd057fac743859ada342ec 11532 Author: Adam Jackson <ajax@redhat.com> 11533 Date: Fri Sep 27 11:43:52 2019 -0400 11534 11535 modesetting: Reduce "glamor initialization failed" message to X_INFO 11536 11537 This might be an error or not, for example refusing to work on llvmpipe 11538 is normal and expected. glamor_egl_init() will print X_ERROR messages if 11539 appropriate, so we don't need to here. 11540 11541 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 11542 11543 commit 0d8cc7bb180468fee72330f40d87f6e9db7b42c0 11544 Author: Michel Dänzer <mdaenzer@redhat.com> 11545 Date: Mon Sep 23 18:35:41 2019 +0200 11546 11547 miext/sync: Make struct _SyncObject::initialized fully ABI compatible 11548 11549 With a 32-bit build, putting the initialized field at the end of the 11550 struct bumped the struct size from 20 bytes to 24, changing the layout 11551 of other structs embedding struct _SyncObject. While this would be 11552 acceptable on master, it caused crashes with 1.20. 11553 11554 Making the initialized field a char and putting it in the hole before 11555 the beingDestroyed field restores the 32-bit ABI as well. 11556 11557 Fixes https://gitlab.freedesktop.org/xorg/xserver/issues/892 11558 11559 Reviewed-by: Aaron Plattner <aplattner@nvidia.com> 11560 Reviewed-by: Alex Goins <agoins@nvidia.com> 11561 11562 commit 6036e845271800b2e268f5cba9283ce07a7fad3a 11563 Author: Alan Coopersmith <alan.coopersmith@oracle.com> 11564 Date: Mon Sep 23 16:28:42 2019 -0700 11565 11566 meson: fix builds on Solaris 11.4 11567 11568 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> 11569 11570 commit 0e8c0d2f238e5d50daaf4672bd80ad519673b5e3 11571 Author: Alan Coopersmith <alan.coopersmith@oracle.com> 11572 Date: Mon Sep 23 15:12:01 2019 -0700 11573 11574 ospoll: Fix Solaris ports implementation to build on Solaris 11.4 11575 11576 Wrong version got committed, but wasn't noticed since it only builds 11577 with meson, not autoconf. 11578 11579 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> 11580 11581 commit cca4bc342cacdbd1ce819c08af2f4795f6a704c3 11582 Author: Andres Rodriguez <andresx7@gmail.com> 11583 Date: Fri Sep 6 18:32:44 2019 -0400 11584 11585 xf86: Disable unused crtc functions when a lease is revoked 11586 11587 This fixes 'non-desktop' displays staying powered on after their lease 11588 has been revoked. 11589 11590 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111620 11591 Cc: Keith Packard <keithp@keithp.com> 11592 Signed-off-by: Andres Rodriguez <andresx7@gmail.com> 11593 11594 commit 0f19381f4906e3100cd43544f1cad82d2a933c63 11595 Author: Olivier Fourdan <ofourdan@redhat.com> 11596 Date: Tue Jul 9 11:08:27 2019 +0200 11597 11598 xwayland: Don't create wl_buffer backing pixmap 11599 11600 In non-rootless mode, not all pixmaps need a wl_buffer backing. 11601 11602 Suggested-by: Twaik Yont (@twaik) in #834 11603 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> 11604 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 11605 11606 commit edf964434eac10ffbe27cc883e3ab95505669aee 11607 Author: Jonas Ådahl <jadahl@gmail.com> 11608 Date: Fri Sep 13 17:11:27 2019 +0200 11609 11610 xwayland/glamor-gbm: Handle DRM_FORMAT_MOD_INVALID gracefully 11611 11612 The compositor may send DRM_FORMAT_MOD_INVALID instead of a list of 11613 modifiers for various reasons. Handle this gracefully by ignoring it. 11614 11615 Without this, if a compositor would send DRM_FORMAT_MOD_INVALID, it'd 11616 result in empty windows provided by Xwayland. 11617 11618 Signed-off-by: Jonas Ådahl <jadahl@gmail.com> 11619 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11620 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 11621 11622 commit 429ee86ab949d6e49c07491a88d6b8d8babc3246 11623 Author: Martin Weber <martin.weber@secunet.com> 11624 Date: Wed Sep 18 14:29:05 2019 +0200 11625 11626 udev: Fixed NULL pointer argument of strcmp 11627 11628 Signed-off-by: Martin Weber <martin.weber@secunet.com> 11629 11630 commit bcf2dd0cd20825ccf4284c67f678ad37ecd1d2b1 11631 Author: Jon Turney <jon.turney@dronecode.org.uk> 11632 Date: Fri Feb 19 21:53:00 2016 +0000 11633 11634 hw/xwin: Add -icon option to set the screen window icon in windowed mode 11635 11636 Add an -icon option to set the screen window icon in windowed mode 11637 11638 Allow cygwin paths in an icon-specification 11639 11640 Update man pages and system.XWinrc appropriately 11641 11642 Also, log an error if the icon specified for TRAYICON cannot be loaded 11643 11644 Also, fix a bug in appending a '\' to IconDirectory only if it doesn't 11645 already end with one, which was fortunately benign. 11646 11647 Note: LoadImageComma would be simpler if we just stated that XWinrc 11648 paths are Cygwin paths on Cygwin, Windows paths on MinGW, but that could 11649 break existing .XWinrc files 11650 11651 Note: Given that we can specify paths in an icon-specifier, I'm not sure 11652 what IconDirectory wins us. 11653 11654 v2: 11655 Fix formatting problems in man page additions 11656 11657 v3: 11658 Fix some more s/_/@/g in man pages 11659 11660 commit ac5d3a200a6d4bdb9ae4a9ef6f2238cf185d38e5 11661 Author: Alan Coopersmith <alan.coopersmith@oracle.com> 11662 Date: Tue Sep 10 17:28:36 2019 -0700 11663 11664 meson: don't require xf86bigfontproto if not building xf86bigfont support 11665 11666 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> 11667 11668 commit 7ad1d0d384085fb480e00547c22a3e8a14b514ea 11669 Author: Carlos Garnacho <carlosg@gnome.org> 11670 Date: Sat Jul 20 00:16:43 2019 +0200 11671 11672 xwayland: Allow passing a fd for set up clients 11673 11674 This FD also triggers the "wait for WM_S0" paths, so that the 11675 compositor may set up a "maintenance line" for Xwayland, for 11676 services that are essential to run before any client (eg. xrdb). 11677 Those services would use this FD, disguised as an extra display 11678 connection. 11679 11680 This -initfd can be seen as a generalization of -wm, a Wayland 11681 compositor may use -initfd to launch its WM and any other clients 11682 that should start up, or it may use -wm as a dedicated connection for 11683 the WM and optionally use -initfd for the misc. startup clients. 11684 11685 If either of -wm or -initfd is passed, Xwayland will expect a selection 11686 notification on WM_S0 before incorporating the FDs in -listen to the 11687 poll list. 11688 11689 Also, correct a minor typo in the listenfd argument output, 11690 give → given. 11691 11692 Signed-off-by: Carlos Garnacho <carlosg@gnome.org> 11693 11694 commit 78cc8b6f9613fc71f6ecc7e8848d54364a250634 11695 Author: Carlos Garnacho <carlosg@gnome.org> 11696 Date: Mon Jan 7 15:33:35 2019 +0100 11697 11698 xwayland: Handle the case of windows being realized before redirection 11699 11700 If Xwayland gets to realize a window meant for composition before the 11701 compositor redirected windows (i.e. redirect mode is not RedirectDrawManual 11702 yet), the window would stay "invisible" as we wouldn't create a 11703 wl_surface/wl_shell_surface for it at any later point. 11704 11705 This scenario may happen if the wayland compositor sets up a X11 socket 11706 upfront, but waits to raise Xwayland until there are X11 clients. In this 11707 case the first data on the socket is the client's, the compositor can hardly 11708 beat that in order to redirect subwindows before the client realizes a 11709 Window. 11710 11711 In order to jump across this hurdle, allow the late creation of a matching 11712 (shell) surface for the WindowPtr on SetWindowPixmapProc, so it is ensured 11713 to be created after the compositor set up redirection. 11714 11715 Signed-off-by: Carlos Garnacho <carlosg@gnome.org> 11716 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 11717 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11718 11719 commit c2e8ae964052944312c5023ca7ea5c41a92990e5 11720 Author: Carlos Garnacho <carlosg@gnome.org> 11721 Date: Mon Jan 7 15:33:31 2019 +0100 11722 11723 xwayland: Refactor surface creation into a separate function 11724 11725 This is just called from xwl_window_realize() ATM, but will be useful in 11726 future commits. 11727 11728 Signed-off-by: Carlos Garnacho <carlosg@gnome.org> 11729 11730 commit 4e50440ae20c537d6a4edf356cda67dd33d4e5a8 11731 Author: Carlos Garnacho <carlosg@gnome.org> 11732 Date: Mon Jan 7 15:20:05 2019 +0100 11733 11734 xwayland: Separate DamagePtr into separate window data 11735 11736 This will be dissociated in future commits to handle the cases 11737 where windows are being realized before there is a compositor 11738 handling redirection. 11739 11740 In that case, we still want the DamagePtr to be registered upfront 11741 on RealizeWindowProc before a corresponding xwl_window might be 11742 created. Most notably, it cannot be lazily created on 11743 SetWindowPixmapProc as damage accounting gets broken. 11744 11745 Signed-off-by: Carlos Garnacho <carlosg@gnome.org> 11746 11747 commit 07463a40458ecc52d935b1a0bd820f6d9664da22 11748 Author: Simon Ser <contact@emersion.fr> 11749 Date: Tue Sep 3 13:10:33 2019 +0300 11750 11751 ci: bump DEBIAN_TAG 11752 11753 The previous commit requires wayland-protocols 1.18. Bump DEBIAN_TAG to 11754 re-generate the Debian image and get the wayland-protocols update. 11755 11756 Signed-off-by: Simon Ser <contact@emersion.fr> 11757 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> 11758 11759 commit 01ed478c65227ae961d33bc1daf4a64da84f15a6 11760 Author: Simon Ser <contact@emersion.fr> 11761 Date: Mon Sep 2 22:42:17 2019 +0300 11762 11763 xwayland: add support for xdg-output-unstable-v1 version 3 11764 11765 This adds support for xdg-output-unstable-v1 version 3, added in [1]. 11766 11767 This new version deprecates zxdg_output_v1.done and replaces it with 11768 wl_output.done. If the version is high enough, there's no need to wait for both 11769 an xdg_output.done event and a wl_output.done event -- we only care about 11770 wl_output.done. 11771 11772 [1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/commit/962dd535372c8e4681374c23d2603cbe06cd7031 11773 11774 Signed-off-by: Simon Ser <contact@emersion.fr> 11775 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> 11776 11777 commit f0d78b47ac49977a6007f5fe081f00c6eb19a12e 11778 Author: Maarten Lankhorst <dev@mblankhorst.nl> 11779 Date: Thu Apr 25 11:46:41 2019 +0200 11780 11781 modesetting: Disable atomic support by default 11782 11783 The atomic driver has issues with modesetting when stealing 11784 connectors from a different crtc, a black screen when doing rotation 11785 on a different crtc, and in general is just a mapping of the legacy 11786 helpers to atomic. This is already done in the kernel, so just 11787 fallback to legacy by default until this is fixed. 11788 11789 Please backport to 1.20, as we don't want to enable it for everyone 11790 there. It breaks for existing users. 11791 11792 The fixes to make the xserver more atomic have been pending on the 11793 mailing list for ages. 11794 11795 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110375 11796 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110030 11797 References: https://gitlab.freedesktop.org/xorg/xserver/merge_requests/36/commits 11798 Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> 11799 11800 commit 7d0e660e0e2808e098ab9d4de843e9b31c64af21 11801 Author: Adam Jackson <ajax@redhat.com> 11802 Date: Tue Aug 27 15:54:42 2019 -0400 11803 11804 meson: Add dtrace support 11805 11806 commit e0e051a3920e3e2731d35807e00d30ba9ef7f122 11807 Author: Adam Jackson <ajax@redhat.com> 11808 Date: Tue Aug 27 15:50:23 2019 -0400 11809 11810 dtrace: s/#if/#ifdef/ for XSERVER_DTRACE 11811 11812 No functional change, matches meson style. 11813 11814 commit 7968d10fadd37eabd811481e1d47fe01706269f3 11815 Author: Adam Jackson <ajax@redhat.com> 11816 Date: Tue Aug 27 15:48:59 2019 -0400 11817 11818 dtrace: Move Xserver.d from dix/ to include/ 11819 11820 dix/ is typically not in the include path, and this properly belongs in 11821 include anyway since it's needed from os/ too. 11822 11823 commit 4fa43fc5134bedf50904ec634f9a63d0570b0827 11824 Author: Adam Jackson <ajax@redhat.com> 11825 Date: Tue Aug 27 15:43:50 2019 -0400 11826 11827 dtrace: Remove Xserver-dtrace.h.in hack 11828 11829 This was a workaround for very old versions of dtrace(1) that didn't 11830 support the -h switch. We no longer support such old OSes. 11831 11832 commit f8c85961c8fcb283e4ed6fc2b942428e4da2d093 11833 Author: Adam Jackson <ajax@redhat.com> 11834 Date: Thu Aug 22 15:07:18 2019 -0400 11835 11836 glx: Disable GLX_EXT_import_context if !enableIndirectGLX 11837 11838 GLX_EXT_import_context allows multiple clients to share the same 11839 indirect context. If you can't create an indirect context, you're 11840 certainly not going to be able to share one. Hide the extension from the 11841 server string if we've disabled indirect contexts. 11842 11843 This turns piglit's tests from fail to skip when indirect contexts are 11844 disabled. Since GLX_EXT_import_context has been supported in 11845 xfree86-derived servers since day 1 (it was included in the initial GLX 11846 code drop from SGI), this is now also a hint to the client that indirect 11847 contexts are unlikely to work at all. 11848 11849 Reviewed-by: Michel Dänzer <michel@daenzer.net> 11850 11851 commit 4f27d1e05f67eb8953a9bbed7e6f34b03456c64f 11852 Author: Christopher Chavez <chrischavez@gmx.us> 11853 Date: Sat Jul 27 10:51:57 2019 -0500 11854 11855 XQuartz: translate additional mouse buttons 11856 11857 Old behavior was to translate the middle mouse button, as well as 11858 every other button that isn't the left or right mouse button, 11859 to act as the middle mouse button (2). 11860 11861 New behavior is to translate only the middle mouse button to 2, 11862 and translate higher-numbered buttons to 8 and higher. 11863 This allows additional mouse buttons to behave under XQuartz 11864 more like they do by default under X11 on other platforms 11865 (e.g. Linux and BSD distributions). 11866 11867 Signed-off-by: Christopher Chavez <chrischavez@gmx.us> 11868 11869 commit 436fd7