Just checking in again :) The description of this report talks about Focal, but I only see Jammy in the affected list?
-- You received this bug notification because you are a member of Desktop Packages, which is subscribed to xorg-server in Ubuntu. https://bugs.launchpad.net/bugs/1958673 Title: SRU Request for upgrade to X-Server 1.20.14 in focal/20.04-LTS Status in psychtoolbox-3 package in Ubuntu: Confirmed Status in xorg-server package in Ubuntu: Fix Released Status in xorg-server source package in Jammy: Fix Released Bug description: I was asked by one of your X-Server maintainers (Timo) to file a bug report here to request an upgrade to the current X-Server 1.20.14 for focal / Ubuntu 20.04-LTS from X-Server 1.20.13. I think this is called a SRU? The 1.20.14 version contains patches to fix some recent CVE's which are already in your 1.20.13 server, and additionally two patches from myself, cfe. the following merge request for the backport: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/778 Therefore an upgrade to 1.20.14 would add my two patches from that merge request. These are trivial backports from master and X-Server 21.1, which did not need any adaptation of the patches. One patch is a bug fix for a bug present in server 1.20 since day one. The other patch can be considered a regression fix for Ubuntu 20.04-LTS on hybrid graphics laptops with Intel iGPU + some other dGPU, although this is not a regression in the X-Server itself, but how the video driver selection by current Ubuntu interacts with the server. See explanation below why i consider it a regression fix. One patch fixes a bug: "Fix RandR leasing for more than 1 simultaneously active lease." The bug is a trivial code bug, which was there since RandR leasing was introduced into the 1.20 server by Keith Packard. Keith has reviewed my bug description and fix and agreed that it is indeed a bug and that my fix is correct. See the following merge request for the master branch with Keith's R-b in the discussion: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/767 The bug triggers whenever more than one RandR output gets leased out simultaneously during a session. It doesn't matter if multiple outputs get leased to a single client application, or if multiple separate client applications each lease out one output, or any mix of these. Only the very last output leased in a session can be released back to the server by the corresponding client (voluntarily or due to client exit, crash etc.). All other previously leased out outputs by the same or other clients will be completely dead and unusable until the X-Session is terminated and the X-Server restarted. So this can be seen as a denial of service bug. Typically affected applications would be Vulkan applications using the direct display extension, e.g., the octave-psychtoolbox-3 package in Ubuntu for scientific/medical research, or high end video games which may use this functionality, and probably most prominently VR applications built with SteamVR or the OpenXR Monado runtime and VR compositor. It has been tested extensively by myself on single X-Screen and dual X-Screen setups with 1, 2 and three displays, leasing out 1, 2 or 3 outputs. The second patch is "modesetting: Allow Present flips with mismatched stride on atomic drivers." It applies to the xorg-video-modesetting ddx. It does not fix a bug in the strict sense, but it does improve the quality and performance of unredirected fullscreen applications like video games or scientific software like octave-psychtoolbox-3 under PRIME render offload in a way that turns them from "technically correct behavior, but unusable in practice" to "good". The patch is based on a tip by Michel Daenzer from AMD. See the following original merge request for X-Server master for details: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/740 On modern kernels and atomic modesetting drivers, the patch allows the modesetting-ddx to use page flipping for fullscreen applications even if the Pixmap stride between the display gpu (iGPU, e.g., Intel, AMD) and the render offload gpu (e.g., AMD, NVidia) is mismatched, as atomic modesetting drivers can easily handle that. Without the patch, on such mismatched stride configurations, rejecting the pageflip, normally the X-Server and modesetting-ddx would fall back to a fullscreen copy swap, executed via glamor and therefore Mesa as a framebuffer copy from application backbuffer to system/X-Server frontbuffer. This increases required memory bandwidth and thereby reduces cpu and gpu performance, increases latency and the potential for skipped frames, e.g., for OpenGL and Vulkan applications, and makes presentation timestamps unreliable, which is especially bad for scientific applications like the octave-psychtoolbox-3 package. More importantly for the general case, it causes massive visual tearing and display artifacts. The current implementation of the X-Servers DRI3/Present backend and glamor + Mesa's does not use hardware synchronization to vertical blank (vsync) for such "copy swaps", only software sync, which is prone to random X-Server scheduling and processing latency between start of vblank and submission of the copy command to Mesa. Additionally Mesa submits the hardware copy commands to the regular 3D engine command stream, so further random delays are added by any other running GUI application, stalling the "copy command hw packet" behind other unrelated 2D or 3D rendering commands or video decoding commands in the gpu hardware command stream. All this taken together usually causes the gpu copy operation only to start while the display is already inside the next active refresh cycle, which causes massive visual tearing artifacts and other rendering artifacts on many games and 3D applications. The old xorg-video-intel Intel ddx for Intel iGPU does not have this problem as it lacks checks for mismatched stride, so it "just worked" by accident there with any combination of Intel iGPU + AMD/NVidia dGPU on modern atomic modesetting capable Intel kms drivers. The xorg-video-amdgpu amdgpu ddx has checks in place to ignore stride mismatch on atomic modesetting capable amdgpu kms drivers on modern AMD iGPU's, so works whenever running on suitable hardware + kernel. This problem only affects the xorg-video-modesetting ddx which lacks handling for this. By default, Ubuntu 20.04 uses amdgpu-ddx for AMD iGPU's, so the combination of AMD iGPU + AMD dGPU is not affected by default. In the past Ubuntu used intel-ddx for Intel iGPU's, avoiding the problem as well. But current Ubuntu 20.04 uses the modesetting-ddx for Intel iGPU's by default, and has to use it for hw acceleration on recent Gen-10 and later Intel gpu's like Icelake, Tigerlake, ... so the problem is unavoidable for combinations of Intel iGPU + other dGPU. Therefore this patch could be considered a fix for a functional regression of Ubuntu on modern Intel graphics hardware. Not all combinations of iGPU + dGPU PRIME render offload hardware setups are affected at all video resolution settings. If mismatched stride happens and causes unusable bad tearing depends on the specific iGPU + dGPU hardware combo and display resolution settings. But if it happens, it defeats PRIME renderoffload. As "Optimus" hybrid graphics laptops are very common, and also models with Intel iGPU + AMD dGPU, this patch should make more of them work better at better performance. The problem was encountered and the patch extensively tested and confirmed to fix the problem on a Apple MacBookPro mid 2017 15 inch Retina model with Intel Kabylake GT2 (UHD graphics 630) as server display gpu and AMD Radeon Pro 560 (Polaris 11) render offload gpu. I assume many of the new Laptops with Intel + AMD will benefit from this fix as well. Thanks for consideration -mario To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/psychtoolbox-3/+bug/1958673/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp