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
Joshua Ashton
1b34a570a5
drm: Implement COLOR_ENCODING + COLOR_RANGE and hook up to env var for now
...
There is no way to tel a NV12 buffer in Wayland's color space. Why?
What a glaring omission.
Even then, the color management protocol that has supposedly been in
development for 2 years is missing basic features like setting the
color range. Great!
For now we are just setting an env var both us and Remote Play Together
are going to listen to and call it a day until the situation is
properly resolved.
2022-06-16 01:31:47 +00:00
Ben Jackson
27ab72ec72
ime: Avoid keymap reset on each injection.
2022-06-14 14:56:56 -07:00
trigg
541ea8fa53
Always use the newest external overlay window
...
Currently creating a new external overlay window will not show up until all others close or are killed.
With this change when the user starts a new external overlay it will take precedence until a newer one appears or it is closed or killed.
This will help alleviate a lot of bugs where overlays 'don't start' because another overlay is already in the slot and not drawing into it.
2022-06-09 13:36:22 +02:00
trigg
8ee041c5f4
Drop reference to last known overlay window
...
Once external overlay windows set their XAtom `GAMESCOPE_EXTERNAL_OVERLAY` to 0 they should be removed from the pool of known external overlays, but reference is kept until they are closed and is never replaced as all current overlays use maximum opacity.
This change is untested and written in a coffee break.
2022-06-09 13:34:47 +02:00
Pierre-Loup A. Griffais
ee043b2ca9
drm: add more EDID make/model combinations as Steam Deck displays
...
Needed for a future Deck EDID update.
2022-06-08 10:49:54 -07:00
Georg Lehmann
b1c38598ee
Remove useless extensions from shaders.
2022-05-26 23:11:25 +00:00
Georg Lehmann
009d4959d1
Use array for descriptor bindings.
2022-05-26 23:11:25 +00:00
Georg Lehmann
3a1f4fbacd
Move some code for a more logical order
2022-05-26 23:11:25 +00:00
Georg Lehmann
e2139bc0bb
Use more designated initalizers.
2022-05-26 23:11:25 +00:00
Georg Lehmann
166395a619
Use VK_NO_PROTOTYPES
2022-05-26 23:11:25 +00:00
Georg Lehmann
11760e8bd8
rewrite compositing with CVulkanCmdBuffer
2022-05-26 23:11:25 +00:00