Commit graph

1636 commits

Author SHA1 Message Date
Joshua Ashton
587c6a64b4 wlserver: Handle reassignment of wl_id for x11 windows 2023-07-25 06:14:24 +01:00
Joshua Ashton
ebf007b63b drm: Better fallbacks for external HDR metadata 2023-07-25 03:27:48 +01:00
Joshua Ashton
23446dd7f3 steamcompmgr: Don't fill in app frametime to mangoapp
Need to separate this out better later.
2023-07-24 21:46:17 +01:00
Stephan Lachnit
eb42671200 Fix compilation with GCC13
See also https://bugs.debian.org/1037668
2023-07-21 08:29:37 +02:00
Stephan Lachnit
946c75d14a steamcompmgr: fix typo 2023-07-21 08:22:38 +02:00
Joshua Ashton
2dd8236c22 rendervulkan: Use native gamut wideness by default 2023-07-10 01:23:57 +01:00
Joshua Ashton
feb4451a20 steamcompmgr: Disable force composite when we would partial 2023-07-09 20:03:35 +01:00
Joshua Ashton
3712ecdb3d steamcompmgr: Disable partial composition (for now until some critera are met) 2023-07-09 20:02:20 +01:00
Joshua Ashton
98335c8709 drm: Use 10-bit partial composite formats if possible 2023-07-09 20:02:20 +01:00
Joshua Ashton
1bc1e724dd main: Fix CI 2023-07-09 20:02:20 +01:00
Joshua Ashton
5e99ecb46b rendervulkan: Seamless full -> deferred composition switch 2023-07-09 20:02:20 +01:00
Joshua Ashton
31eefd41a0 rendervulkan: Move reset for commandbuffer to main thread for partial composition 2023-07-09 20:02:20 +01:00
Joshua Ashton
70626628f9 rendervulkan: Pick right first partial composite image 2023-07-09 20:02:20 +01:00
Joshua Ashton
6a6df4ea95 rendervulkan: Use same memory backing for partial and complete composition
Despite different formats, alias the memory backing to save space.
2023-07-09 20:02:20 +01:00
Joshua Ashton
bc3c4bc275 steamcompmgr, rendervulkan: Implement deferred partial composition
Use partial composition for overlays when we have too many layers.
2023-07-09 20:02:20 +01:00
Joshua Ashton
d5aec88630 drm: Fallback displayColorimetry for broken EDIDs
May fix: #864
2023-07-09 19:23:23 +01:00
Joshua Ashton
183792e2ec drm: Free blob in fail path 2023-07-09 19:02:25 +01:00
Michal Pawlowski
1b9b736257 steamcompmgr: Fix enabling VRR from commandline
The --adaptive-sync flag is not used during vrr atom update
so it's value get's overwritten with 0 thus disabling the VRR
in the process.
2023-06-29 14:45:30 +01:00
Joshua Ashton
9b70b3b9e3 drm: Handle not having CRTC 3D LUT/Shaper 2023-06-23 04:32:02 +01:00
Joshua Ashton
789cfc9057 main, steamcompmgr: Add support for --headless
No window system, vr, drm, etc required.

Can be used to stream headlessly with Pipewire or screenshots, etc.

Can also just be used as a utility to run applications that need a GUI
or window envrionment despite just being an installer or something.
2023-06-16 17:51:24 +01:00
Fabian Arndt
7a1fe2def3 Added option to set upscaler filter
- Removed options to set filters explicitly (-n, -U, -Y)
- Changed scaler option from -s to -S
- Reordered usage slightly
2023-06-14 11:37:10 +01:00
Fabian Arndt
a7c60be193 Added option to set upscale scaler
Removed option to explicitly force integer scaler
2023-06-14 11:37:10 +01:00
Joshua Ashton
8866c02dc7 vr_session: Add vrsession_set_dashboard_visible 2023-06-06 22:58:38 +01:00
Joshua Ashton
98a0aab039 steamcompmgr, rendervulkan: Only capture baseplanes in screenshots
Also avoid performing color mgmt on screenshots (outside of HDR screenshot fallbacks)
2023-06-06 03:12:18 +01:00
Joshua Ashton
20ee2b5468 rendervulkan: Fix half-texel offset for blits 2023-06-06 02:08:08 +01:00
Joshua Ashton
f2d11727be rendervulkan: Fix RGB blits using incorrect colorspace 2023-06-06 02:08:08 +01:00
Joshua Ashton
70c2e68d3d rendervulkan: Mark screenshot textures as storage compatible 2023-06-06 01:58:15 +01:00
FlightlessMango
33fb485e7a mangoapp: report output size to mangoapp
This way mangoapp knows what resolution gamescope is running and can
adjust accordingly. This should resolve issues on various handhelds
where `--force-orientation left` caused incorrect rendering of mangoapp
2023-05-29 10:59:36 +01:00
Joshua Ashton
f673ddffd1 pipewire: Only create up to 8 buffers
This is how many we have to allocate.

Thanks to @Starsam80 for catching this
2023-05-28 19:39:07 +01:00
Joshua Ashton
05361b1f39 drm: Don't update internal screen orientation if we don't have one
Fixes: #889
2023-05-28 17:40:41 +01:00
Joshua Ashton
9282a715a1 wlserver: Disable trackpad on external screen by default
This was just an experiment of mine.

This does fix the rotation thing though.
2023-05-27 17:35:17 +01:00
Joshua Ashton
e8b60578b5 wlserver, drm: Make touchscreen function as trackpad when using external screen 2023-05-27 17:31:53 +01:00
Joshua Ashton
56f4263b3a drm, wlserver: Always use internal screen rotation for touchscreen orientation
Lets you use Deck screen as touchpad type thing when docked.
2023-05-27 16:40:05 +01:00
Joshua Ashton
2f3029f5e0 rendervulkan: Fix screenshots since moving to 10-bit.
This dispatch was incorrect subgroup wise. IDK how this code ever worked.
2023-05-27 16:33:32 +01:00
Joshua Ashton
847da568df steamcompmgr: Remake output images on res change
This got lost in the format stuff.

Closes: #883
2023-05-27 16:06:43 +01:00
Joshua Ashton
29710fb2ec vr_session: Support for trackpad scrolling 2023-05-26 17:06:44 +01:00
Jeremy Selan
baea00fb15 [color_helpers]: cleanup tonemapping support 2023-05-25 13:16:08 -07:00
Joe Dight
73ce5a440a Fallback to regular-priority queue when vkCreateDevice fails 2023-05-23 14:38:16 +02:00
Joshua Ashton
56a799827d steamcompmgr: Fix FSR getting enabled accidentally
Fixes: #874
2023-05-19 00:25:10 +00:00
Joshua Ashton
b4ff0f62fa drm, steamcompmgr: Implement edid patching for HDR for debugging 2023-05-18 22:46:18 +00:00
Joshua Ashton
bddf6fd79e steamcompmgr: Disable EETF tonemapping by default
Hurts games that do stuff right.
2023-05-18 22:06:33 +00:00
Joshua Ashton
58a2912e11 steamcompmgr: Rename atom to GAMESCOPE_COLOR_MANAGEMENT_CHANGING_HINT 2023-05-17 00:32:43 +00:00
Joshua Ashton
a40549caa6 steamcompmgr: Add GAMESCOPE_COLOR_SLIDER_IN_USE 2023-05-17 00:27:51 +00:00
Joshua Ashton
bd96c4ce5d Revert "rendervulkan: Don't use 10-bit format for VR session"
I fixed this in the next release of SteamVR.

1010102 formats are now supported on Linux + SteamVR.

This reverts commit 6586d5e009.
2023-05-16 17:33:51 +00:00
Joshua Ashton
6586d5e009 rendervulkan: Don't use 10-bit format for VR session
OpenVR has a fit and displays it all whacky mode.

Come back to this later potentially.
2023-05-16 01:50:58 +00:00
Hans-Kristian Arntzen
61121e206b Pass through duplicate commits if there are feedbacks.
Mutter and Weston behavior allows getting presentation feedbacks
for duplicate commits. This also allows gamescope to do the same.
2023-05-16 02:41:52 +01:00
Hans-Kristian Arntzen
072e31d007 Ensure forward progress on frame callback.
If the BUFFER flag is not set in a commit, it means
the buffer is inherited on the surface.
As this is equivalent to a commit with same buffer,
ensure forward progress is made on frame callbacks.

This behavior also matches Mutter and Weston based on tests.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2023-05-16 02:41:52 +01:00
Hans-Kristian Arntzen
a8ffc64f40 Ensure that duplicated commits have forward progress.
If the same buffer is attached in subsequent commits,
ensure frame callback is pumped.
This matches Mutter and Weston behavior based on tests.
2023-05-16 02:41:52 +01:00
Hans-Kristian Arntzen
72056a98b5 Send presentation after handling commits on XDG. 2023-05-16 02:41:52 +01:00
Hans-Kristian Arntzen
abd04f793e Don't send frame callback before we have actually committed.
This avoids a problem where frame callback is reported before we have
actually committed to display a surface. This could lead to skipping
where application commits a new surface before the current surface will
be queued up for display. This breaks FIFO rules in e.g. Vulkan.
A scenario where this matters is when GPU is rendering slower than
refresh rate.

Also avoids a problem where the commit queue can grow large since
frame callbacks will be pumped faster than the GPU is able to process
the frames.

At least Mutter behavior is similar here, so I think this is the correct
interpretation.

Also fixes KHR_present_wait in Xwayland. Xwayland uses frame callback to
signal PRESENT_COMPLETE and this fixes that.
2023-05-16 02:41:52 +01:00