mirror of https://github.com/ppy/SDL3-CS.git
Apply temporary patch to fix SEGV on KDE
This commit is contained in:
parent
a0809b8d78
commit
f3f5a876c1
|
|
@ -81,6 +81,12 @@ jobs:
|
||||||
with:
|
with:
|
||||||
path: 'SDL3-CS'
|
path: 'SDL3-CS'
|
||||||
|
|
||||||
|
- name: Apply temporary patch
|
||||||
|
if: runner.os == 'Linux'
|
||||||
|
run: |
|
||||||
|
# Remove when https://github.com/libsdl-org/SDL/pull/9523 is merged.
|
||||||
|
git apply SDL3-CS/fix-segfault.patch
|
||||||
|
|
||||||
- name: Configure CMake
|
- name: Configure CMake
|
||||||
run: ${{ matrix.platform.cmake_configure_env }} cmake -B build ${{ matrix.platform.flags }} -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSDL_SHARED_ENABLED_BY_DEFAULT=ON -DSDL_STATIC_ENABLED_BY_DEFAULT=ON
|
run: ${{ matrix.platform.cmake_configure_env }} cmake -B build ${{ matrix.platform.flags }} -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSDL_SHARED_ENABLED_BY_DEFAULT=ON -DSDL_STATIC_ENABLED_BY_DEFAULT=ON
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
From b90577b2af4e7e2b2d74169bbc36d646e6e5c387 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dan Balasescu <smoogipoo@smgi.me>
|
||||||
|
Date: Sat, 13 Apr 2024 01:56:52 +0900
|
||||||
|
Subject: [PATCH] Fix segmentation fault on Wayland 1.18 + KDE
|
||||||
|
|
||||||
|
The CI build matrix uses Ubuntu 20.04 as one of its configurations.
|
||||||
|
This platform only comes with Wayland 1.18, but the display output
|
||||||
|
name is only available since Wayland 1.20 (output version 4).
|
||||||
|
|
||||||
|
This was considered in other areas, for example the main function that
|
||||||
|
reads this value mentions version 4 specifically:
|
||||||
|
|
||||||
|
https://github.com/libsdl-org/SDL/blob/60f26182c3a44544f78c1569906fdf58d1d69374/src/video/wayland/SDL_waylandvideo.c#L915
|
||||||
|
|
||||||
|
... and the different versions are selected when adding displays:
|
||||||
|
|
||||||
|
https://github.com/libsdl-org/SDL/blob/60f26182c3a44544f78c1569906fdf58d1d69374/src/video/wayland/SDL_waylandvideo.c#L85-L89
|
||||||
|
|
||||||
|
We are also providing binaries of our own compiled on Ubuntu 20.04
|
||||||
|
(still generally supported until 2025-06) specifically to target a
|
||||||
|
lower GLIBC version.
|
||||||
|
---
|
||||||
|
src/video/wayland/SDL_waylandvideo.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/video/wayland/SDL_waylandvideo.c b/src/video/wayland/SDL_waylandvideo.c
|
||||||
|
index 105ed67d9..5c7344b15 100644
|
||||||
|
--- a/src/video/wayland/SDL_waylandvideo.c
|
||||||
|
+++ b/src/video/wayland/SDL_waylandvideo.c
|
||||||
|
@@ -248,7 +248,7 @@ static void Wayland_SortOutputs(SDL_VideoData *vid)
|
||||||
|
/* KDE provides the kde-output-order-v1 protocol, which gives us the full preferred display
|
||||||
|
* ordering in the form of a list of wl_output.name strings (connector names).
|
||||||
|
*/
|
||||||
|
- if (!WAYLAND_wl_list_empty(&vid->output_order)) {
|
||||||
|
+ if (!WAYLAND_wl_list_empty(&vid->output_order) && SDL_WL_OUTPUT_VERSION >= WL_OUTPUT_NAME_SINCE_VERSION) {
|
||||||
|
struct wl_list sorted_list;
|
||||||
|
SDL_WaylandConnectorName *c;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
||||||
Loading…
Reference in New Issue