Commit graph

1158 commits

Author SHA1 Message Date
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
Georg Lehmann
7f1e55dd96 Introduce CVulkanCmdBuffer 2022-05-26 23:11:25 +00:00
Georg Lehmann
0a0a000a89 Use vulkan_create_texture_from_bits for NIS images. 2022-05-26 23:11:25 +00:00
Georg Lehmann
b406bba47e Only use two descriptors for samplers 2022-05-26 23:11:25 +00:00
Georg Lehmann
9a2c4af585 fix shader generator 2022-05-26 23:11:25 +00:00
Georg Lehmann
326d7e1f96 Use CVulkanTexture for swapchain images 2022-05-26 23:11:25 +00:00
Georg Lehmann
fa26f16fa9 Introduce CVulkanDevice. 2022-05-26 23:11:25 +00:00
Joshua Ashton
549d22094b drm: Implement gamma and degamma exponent 2022-05-26 23:08:34 +00:00
sad-goldfish
e4892543a0 Add realtime flag for SCHED_RR
Use sched_get_priority_min for priority

Accommodates other unixes with odd minimum priorities.

Manually handle save/restore of scheduling.

Add space. (formatting)

Exit on failure to get scheduler parameters.

Add missing braces.

Copy and edit existing sched_parm rather than new.

May be relevant on some exotic unixes.
2022-05-25 19:01:18 +02:00
Simon Ser
ef234d1a80 reamde: clarify and move up instructions for NVIDIA proprietary driver 2022-05-25 14:28:17 +02:00
Eric
a515153a93 rendervulkan: Add support for NVIDIA image scaling 2022-05-18 01:41:01 +00:00
Eric
0dac3ceac4 nis: Import NIS SDK
The docs, and samples directories have been removed along with the
third_party_licenses.txt file.

Source downloaded from: https://github.com/NVIDIAGameWorks/NVIDIAImageScaling/archive/refs/tags/v1.0.2.tar.gz
2022-05-18 01:41:01 +00:00
Joshua Ashton
3c59167b67 steamcompmgr, drm: Add GAMESCOPE_COLOR_MATRIX to control CTM matrix 2022-05-18 01:20:49 +00:00