Commit graph

1281 commits

Author SHA1 Message Date
Joshua Ashton
6da2f90e51 Revert "wlserver: create one wl_output global per Xwayland server"
This reverts commit 5b7f70a9e5.
2022-08-23 20:40:10 +00:00
Joshua Ashton
8ef0922b02 steamcompmgr: Only account for LAYERED when CONTROLPARENT is also set
Fixes Street Fighter V (310950) splash always being overlayed

We should find more cases as we go along as well.
2022-08-23 14:48:01 +00:00
Joshua Ashton
c49cac3a00 drm: Blacklist 4096x2160 mode
This mode is required for certaiin certifications but is effectively useless and doesn't fit the actual screen size of displays. (Gets scaled down)
2022-08-22 23:56:13 +00:00
Simon Ser
608de1c19e Remove unused wlserver_movecursor() 2022-08-21 13:12:05 +02:00
Simon Ser
5b7f70a9e5 wlserver: create one wl_output global per Xwayland server
Closes: https://github.com/Plagman/gamescope/issues/571
2022-08-21 13:08:57 +02:00
Joshua Ashton
9aada10be3 drm: Split GAMESCOPE_COLOR_GAMMA_EXPONENT for EXTERNAL displays 2022-08-19 22:10:21 +00:00
Joshua Ashton
bbc240390c drm: Split GAMESCOPE_COLOR_MATRIX for EXTERNAL displays 2022-08-19 22:01:36 +00:00
Joshua Ashton
518c5042fd wlserver: Put accum mouse dx/dy on wlserver
Given we move that, store it there. Doesn't really matter though.
2022-08-19 21:28:38 +00:00
Joshua Ashton
bf3093bc2c wlserver: Fix relative mouse movements
Do the same thing as SDL2
2022-08-19 21:18:18 +00:00
Joshua Ashton
cb59480be0 drm: Add backdoor to disable liftoff caching for debugging 2022-08-17 02:01:46 +00:00
Joshua Ashton
3cda5e8f2e steamcompmgr: Add more blurb to WS_EX_LAYERED 2022-08-17 00:17:06 +00:00
Joshua Ashton
d5eb6667a9 steamcompmgr: Handle LAYERED win32 windows
The Launcher in Witcher 2 (20920) has a clear window with WS_EX_LAYERED on top of it.

Layered windows are windows that are meant to be transparent
with alpha blending + visual fx.
https://docs.microsoft.com/en-us/windows/win32/winmsg/window-features
2022-08-17 00:12:17 +00:00
Joshua Ashton
910ae1b3c7 steamcompmgr: Parse Windows styles/stylesex 2022-08-17 00:08:10 +00:00
Joshua Ashton
f32e8637b7 steamcompmgr, rendervulkan: Add GAMESCOPE_COMPOSITE_FORCE and GAMESCOPE_COMPOSITE_DEBUG for debugging 2022-08-16 23:39:13 +00:00
Joshua Ashton
c3d6959669 steamcompmgr: Add workaround for Antichamber
Has a splash screen that ends up being treat as a dropdown.

Workaround this until we hook up the Proton window style deduction.
2022-08-16 23:21:33 +00:00
Joshua Ashton
a8592be47d vblankmanager: Push back drawtime if we are compositing
Avoids getting into a feedback loop with clocks when we need to composite.

Fixes stutter when using FSR on Steam Deck.
2022-08-16 23:13:56 +00:00
Joshua Ashton
092aef1f95 drm: Cache composition results from liftoff 2022-08-16 23:55:23 +01:00
hexchain
db99b92e2b Reformat the help text 2022-08-16 09:43:57 +02:00
Joshua Ashton
65d97cb152 steamcompmgr: Don't skip taskbar+pager windows if they are fullscreen
Fixes fullscreen in Batman: Arkham City GOTY (200260)
2022-08-11 12:48:13 +00:00
Joshua Ashton
60513c0925 drm: Unset COLOR_RANGE and COLOR_ENCODING if not YCbCr or unbound 2022-08-11 08:46:24 +02:00
Joshua Ashton
e2bc5d4c71 rendervulkan: Add isYcbcr helper for layers 2022-08-11 08:46:24 +02:00
Joshua Ashton
8d03522dcd subprojects: Bump libliftoff to support unsetting props 2022-08-11 08:46:24 +02:00
Saphira Kai
3122d1aabe update outdated flag and keyboard shortcut information in README 2022-07-29 18:37:50 +02:00
Simon Ser
6371958e1a drm: log when connectors appear/disappear 2022-07-29 10:44:29 +02:00
Simon Ser
2e03b8fb6b drm: always parse EDID on hotplug uevent
Don't parse it only when we see the connector for the first time.
2022-07-29 10:39:18 +02:00
Simon Ser
ce4699fc6d drm: improve preferred flag comparison in compare_modes
Two preferred modes shouldn't happen, but this ensures a copy-paste
for another flag doesn't result in mis-sorted modes and it's more
consistent with the rest of the logic.
2022-07-29 09:25:50 +02:00
Joshua Ashton
90693b72cd drm: Call drmModeGetConnector before getting object properties
Works around a DRM bug where the EDID blob would be 0.

We always get modes from DRM from this, which means it MUST be getting the edid.

Surprise! Calling this before getting the object props makes it so it gets the edid. Yipee!
2022-07-27 18:03:42 +00:00
Joshua Ashton
a23fd5ff54 drm: Always prefer modes > 60Hz to any others
Avoids picking 4K@30Hz and other modes which feel really bad.
Happens on a lot of USB C -> HDMI adapters, even if they advertise support for it online.
2022-07-27 17:51:04 +00:00
Joshua Ashton
30b74a762a vblankmanager: Fix build 2022-07-27 15:58:56 +00:00
Joshua Ashton
7adbdd3f80 drm: Use unordered_map for connectors
When adding/removing from a normal map, the iterators become undefined, which means drm->connector can change randomly to the wrong connector or garbage memory.
2022-07-27 15:50:17 +00:00
Joshua Ashton
282eaae796 steamcompmgr: Split GAMESCOPE_DYNAMIC_REFRESH into internal/external
GAMESCOPE_DYNAMIC_REFRESH remains for internal
GAMESCOPE_DYNAMIC_REFRESH_EXTERNAL will be used for external displays.
2022-07-27 15:46:42 +00:00
Joshua Ashton
9c81cd1d80 vblankmanager: Only move back redzone by refresh for external screens
Deck screen can handle this with our custom clocks and this just increases latency otherwise.
2022-07-27 15:44:17 +00:00
Joshua Ashton
81cd2bbc6d drm: Add method to get screen type
Either internal or external
2022-07-27 15:43:50 +00:00
Sam Lantinga
c0e152ff01
Merge pull request #565 from emersion/drm-conn-name
drm: improve wl_output.description
2022-07-27 05:50:44 -07:00
Joshua Ashton
312a616501 vblankmanager: Scale vblank redzone against target refresh
Fixes frametimings at 4K@30Hz
2022-07-27 10:46:49 +00:00
Simon Ser
cd1fed6c2d drm: simplify CRTC loop in drm_prepare() 2022-07-27 12:40:55 +02:00
Simon Ser
ab409892ed drm: fix add_*_property() error handling
This function doesn't return a bool.
2022-07-27 12:28:53 +02:00
Simon Ser
8e6c1b16d1 drm: use slightly more appropriate error value for add_property 2022-07-27 12:22:56 +02:00
Simon Ser
4dbcd068ed drm: de-duplicate EDID parsing 2022-07-27 09:35:25 +02:00
Simon Ser
5fca0702ab drm: parse make/model from EDID 2022-07-27 09:30:45 +02:00
Simon Ser
09a53dc416 drm: change wl_output.description for internal screens 2022-07-26 17:46:51 +02:00
Simon Ser
cce6a29a24 wlserver: ignore commit if buffer didn't change 2022-07-25 17:09:48 +02:00
Joshua Ashton
7167877bca wlserver: Fix creating headless backend when nested
Otherwise we don't have it and it segfaults.

Closes: #553
2022-07-15 23:46:59 +00:00
Joshua Ashton
71717b2ce3 wlserver: Fix pending surfaces getting xwayland server set
Fixes Warhammer 40,000: Dawn of War II (15620)
2022-07-15 10:45:08 +02:00
Joshua Ashton
8b99305352 wlserver: Fix type of wl_id, x11_id
These are uint32_t
2022-07-15 10:45:08 +02:00
Simon Ser
fde74ee8d0 Update wl_output info after hotplug 2022-07-14 16:20:14 -07:00
Joshua Ashton
12ef7685eb shaders: If running with composite debug, show colored borders 2022-07-14 23:13:50 +00:00
Clément Guérin
f999685153 add --prefer-vk-device option
allows selecting a preferred Vulkan device for compositing, for example
to use the iGPU over the dGPU.

should help #498.
2022-07-14 17:26:35 +01:00
Ben Jackson
8c816a4685 ime: Force Hangul Compat Jamo codepoints to use generic keysyms 2022-07-12 13:11:48 -07:00
Clément Guérin
1b3ad77181 handle SDL touch events
disable SDL mouse emulation to avoid getting mouse events.
2022-06-20 08:59:18 +02:00