Commit graph

1389 commits

Author SHA1 Message Date
Joshua Ashton
98d61844d8 main: Reset XDG_SESSION_TYPE to x11
We don't support Wayland clients, so let's convince any child apps that are launched that we are just X11.

Fixes QT apps misbehaving.
2022-10-19 15:40:20 +01:00
Simon Ser
0626c7c8f8 Add note that --force-orientation is for internal display only 2022-10-17 13:26:26 +02:00
Simon Ser
45061ad3e3 drm: drop trailing whitespace 2022-10-13 15:50:41 +02:00
Simon Ser
14f0b78f61 drm: cleanup orientation code 2022-10-13 15:49:23 +02:00
ruineka
12bff31008
drm: fix an issue where g_nOutputWidth and g_nOutputHeight weren't updated 2022-10-13 15:43:47 +02:00
Simon Ser
f51b7229ae drm: de-duplicate connector type logic 2022-10-11 19:05:44 +02:00
ruineka
cf89b2fbae
drm: add support for the panel orientation property 2022-10-11 18:20:14 +02:00
ruineka
647e1d96d0
Add --force-orientation option
Co-authored-by: Joaquín Ignacio Aramendía <samsagax@gmail.com>
Co-authored-by: alphonsez1 <alphonsez743@gmail.com>
Co-authored-by: Ruineka <ruineka@pop-os.localdomain>
2022-10-07 15:29:52 +02:00
Joshua Ashton
b87660561f drm: Fix respecting custom mode refresh rates
This was being overwritten by some dynamic refresh code.
2022-10-01 21:10:34 -02:30
Joshua Ashton
20062ec645 steamcompmgr: Add GAMESCOPE_STEAM_MAX_HEIGHT
0 to disable, any other value sets the max height of Steam
2022-10-01 20:33:37 -02:30
Simon Ser
79ad108c41 wlserver: fix output global not exposed
Fixes: 7c0f65e62d ("wlserver: stop re-creating wl_output global")
2022-10-01 19:11:52 +02:00
Simon Ser
870d54c54e Force repaint on SDL_WINDOWEVENT_EXPOSED
Co-authored-by: Bad Sector <badsector@runtimeterror.com>
2022-10-01 18:42:44 +02:00
Simon Ser
7c0f65e62d wlserver: stop re-creating wl_output global 2022-09-27 19:03:00 +01:00
Simon Ser
576041c2b3 wlserver: remove trailing whitespace 2022-09-27 19:38:29 +02:00
Joshua Ashton
7f2db65c00 steamcompmgr: Add GAMESCOPE_CURSOR_VISIBLE_FEEDBACK 2022-09-23 20:44:51 +00:00
Joshua Ashton
122ba3dda9 steamcompmgr: Undirty cursor when resolving empty state
Otherwise we read this back every single paint, which is bruh.
2022-09-23 20:40:14 +00:00
Joshua Ashton
9a984234ba steamcompmgr: Avoid duplicate commits
Xwayland blits sometimes send us duplicate commits when strange things happen such as connector hotplugs.
2022-09-23 21:26:46 +01:00
Joshua Ashton
777fe39010 steamcompmgr: Be more lenient when failing flips
Replaces the abort here to be more lenient.

Some intense connector hotplugging could be occuring and the
connector could become destroyed before we had a chance to use it
as we hadn't reffed it in a commit yet.
2022-09-23 21:26:38 +01:00
Joshua Ashton
554a4af14d wlserver: Only update first xwayland server wlserver_set_output_info
Only [0] should get updated with any of this info.
Games do NOT need to see hotplug because they just crash... The Xrandr interface for crtc stuff is VERY broken with MST and our reconnect spam here.
2022-09-21 23:01:48 +00:00
Simon Ser
b1d928ab6f rendervulkan: fix inverted wlr_buffer_begin_data_ptr_access() check 2022-09-21 19:42:18 +02:00
Joshua Ashton
8608e017ec wlserver: Handle wl commits before X11 surface has come up
The inverse case of the pending surfaces...
2022-09-19 09:51:57 +01:00
Joshua Ashton
b305a97e9d drm: Don't re-zero connector CRTCs we already have zero-ed.
Fixes an issue where we would use an invalid connector because
the MST connector object got destroyed from our last CRTC set.

This avoids just using it again.
2022-09-16 06:06:50 +01:00
Joshua Ashton
4f62e5d18b wlserver: Avoid use after free of wlr surface data when wlserver_wl_surface_info is destroyed 2022-09-16 01:08:28 +00:00
Joshua Ashton
8562f4ee5a steamcompmgr: Workaround X11 bug for ASAN testing 2022-09-16 00:16:50 +00:00
Joshua Ashton
4754b17824 wlserver: Fix stale wlr pointer in x11_surface_info + fix mouse focus surface destruction
Stale pointers aaaa
2022-09-16 00:44:22 +01:00
Joshua Ashton
716552b7d6 wlserver: Fix crash in content_override_handle_surface_destroy
The x11 surface owned by the window can be destroyed, causing us to access a stale ptr.

Assume server 0 to delete the content override, because thats the only one it can be created on.

We should rev the protocol at some point with support for specifying the DISPLAY... ughghghghghghgh
2022-09-16 00:44:22 +01:00
Joshua Ashton
c8057afbc4 wlserver: Clear out x11_surface ptr when destroyed 2022-09-16 00:44:22 +01:00
Simon Ser
6237c3452b wlserver: explain why filter_global may need to handle NULL wlr_output
1. output plugged in, gamescope creates new wlr_output and sends a
   wl_registry.global event
2. client sees it, sends a wl_registry.bind request
3. output plugged out, gamescope sends a wl_registry.global_remove
   event and destroys the wlr_output
4. gamescope receives the wl_registry.bind request, but the wlr_output
   no longer exists
5. client receives the wl_registry.global_remove event
2022-09-15 08:05:41 +01:00
Joshua Ashton
7b51f5964d wlserver: Crappy workaround for rare filter_global crash... 2022-09-15 01:59:02 +00:00
Joshua Ashton
215a19b0e8 wlserver: Expose base wl_output to non-xwayland server clients 2022-09-15 01:53:51 +01:00
Ben Jackson
40cbcd87ef ime: Delay release of last keypress
More closely simulate a human pressing by holding the last (or only) key in
key pressed for 30ms before releasing. The key is released automatically
after the timer expires or just in time before a subsequent injected key.
2022-09-13 10:18:00 -07:00
Simon Ser
3303289afa ime: add move_{up,down} actions 2022-09-13 17:56:33 +01:00
Simon Ser
343e286308 build: bump wayland-server dep version
Wayland global filtering requires 1.21 to work properly with
globals which are created and destroyed on-the-fly.
2022-09-10 00:06:44 +00:00
Simon Ser
26bbb53de7 wlserver: create one wl_output global per Xwayland server
Closes: https://github.com/Plagman/gamescope/issues/571
2022-09-10 00:06:44 +00:00
Simon Ser
697818a228 wlserver: start all Xwayland processes in parallel
The next commit will need to inspect wlserver.wlr.xwayland_servers
to figure out which wl_output global to expose.
2022-09-10 00:06:44 +00:00
Joshua Ashton
ec1ce12f13 steamcompmgr: Add GAMESCOPE_DISPLAY_MODE_LIST_EXTERNAL and GAMESCOPE_DISPLAY_IS_EXTERNAL 2022-09-07 12:58:16 +00:00
Joshua Ashton
5ec3b7cffb drm, steamcompmgr: Add GAMESCOPE_DISPLAY_MODE_NUDGE 2022-09-07 11:36:44 +00:00
Joshua Ashton
0d171a7346 drm: Add support for a mode set file 2022-09-07 11:31:40 +00:00
Joshua Ashton
88e5980cd9 drm: Use PNP name for make if not in hwids 2022-09-07 12:14:37 +01:00
Joshua Ashton
1c7a2db86d steamcompmgr: Implement GAMESCOPE_DISPLAY_FORCE_INTERNAL 2022-09-07 11:11:09 +00:00
Joshua Ashton
5f610d8614 main: Fix build
Forgot to commit this :s
2022-09-07 11:06:04 +00:00
Joshua Ashton
f0f19b3499 steamcompmgr: Add basic infra for fifo relaxed 2022-09-07 10:47:44 +00:00
Joshua Ashton
440d0f1b53 steamcompmgr: Don't force base plane repaint for cursor movement 2022-09-07 10:40:32 +00:00
Joshua Ashton
6198e1be07 steamcompmgr: Don't tear if Steam Overlay is open
Looks bad
2022-09-06 17:01:22 +01:00
Joshua Ashton
21ce7baf0f steamcompmgr: Use presentation hints to determine whether to tear 2022-09-06 17:01:22 +01:00
Joshua Ashton
d9cab62e80 steamcompmgr: Store per-commit tearing state in commit_t 2022-09-06 17:01:22 +01:00
Joshua Ashton
55f764fa7f wlserver: Add wlserver_surface_is_async 2022-09-06 17:01:22 +01:00
Joshua Ashton
2e62575518 wlserver: Grab presentation hints 2022-09-06 17:01:22 +01:00
Joshua Ashton
6dde7bd8bc wlserver: Add wlserver_wl_surface_info
A stop gap before x11_surface_info which is held by steamcompmgr
2022-09-06 17:01:22 +01:00
Joshua Ashton
dad0939bed wlserver: Rename wlserver_surface to wlserver_x11_surface_info 2022-09-06 17:01:22 +01:00