Commit graph

507 commits

Author SHA1 Message Date
John Schoenick
0194432185 Tag 3.8.3 2021-06-09 13:23:05 -07:00
Simon Ser
d187c2241e steamcompmgr: improve wait thread robustness 2021-06-09 19:16:22 +02:00
Simon Ser
24b5611478 Terminate wlserver when steamcompmgr stops
Closes: https://github.com/Plagman/gamescope/issues/167
2021-06-09 19:10:32 +02:00
Simon Ser
470756029d Stop using X11 events for vblankmanager
Instead, use a pipe. Check if the pipe is readable in the
steamcompmgr event loop.

This avoids a roundtrip through the X11 server.

Closes: https://github.com/Plagman/gamescope/issues/201
2021-06-09 18:42:38 +02:00
Simon Ser
d8dacddaea steamcompmgr: flush display after sending nudge event 2021-06-09 18:18:56 +02:00
Simon Ser
03d14fd67d Set O_CLOEXEC on stats FD 2021-06-09 17:40:52 +02:00
Simon Ser
7c3dff8d57 Log error on fork/exec failure 2021-06-09 17:39:45 +02:00
Simon Ser
df6b48776e Set O_CLOEXEC on ready FD 2021-06-09 17:38:31 +02:00
Simon Ser
8123bc4f36 steamcompmgr: split child spawning logic into separate function 2021-06-09 17:36:39 +02:00
Simon Ser
bd9590506a Split X11 event dispatching into a function 2021-06-09 17:31:15 +02:00
Simon Ser
f51a05b2dc steamcompmgr: use poll() to wait for X11 events
References: https://github.com/Plagman/gamescope/issues/201
2021-06-09 17:22:53 +02:00
Pierre-Loup A. Griffais
08f41f2046 steamcompmgr: only consider overlays for input focus
Also prctl subreaper tweaks from smcv
2021-06-07 19:10:08 -07:00
Simon Ser
93ab1ada2f readme: add install command
Closes: https://github.com/Plagman/gamescope/issues/26
2021-06-02 11:28:11 +02:00
Pierre-Loup A. Griffais
e4798e27c9 steamcompmgr: protect against possible out of bounds read
It's possible no layers get drawn due to no contents.
2021-05-28 15:39:42 -07:00
Pierre-Loup A. Griffais
0396468a1d steamcompmgr: scale touch coordinates to the right window
Was erroneously using base layer size even if overlay had touch input focus.
2021-05-28 13:57:11 -07:00
Pierre-Loup A. Griffais
9a20f630ad steamcompmgr: extend input focus concept to allow mouse-only focus 2021-05-26 16:53:11 -07:00
Simon Ser
9d40b61645 wlserver: prevent list corruption on double wlserver_surface_set_wl_id 2021-05-20 17:40:20 +02:00
Simon Ser
cd4c1a4d7d Stop importing DMA-BUFs into EGL
Make renderer_texture_from_dmabuf a no-op, since we handle client
DMA-BUFs with Vulkan. We're using wlr_buffer_get_dmabuf to directly
access the client-submitted FDs.
2021-05-20 17:08:19 +02:00
Pierre-Loup A. Griffais
7adcd2fb20 steamcompmgr: publish focused Window and appID back to control process 2021-05-18 19:34:11 -07:00
Pierre-Loup A. Griffais
6dc6ff83fe steamcompmgr: support a list of GAMESCOPE_FOCUSABLE_APPS 2021-05-18 19:17:06 -07:00
Pierre-Loup A. Griffais
d053a5582e steamcompmgr fix new bug where we'd always run the focus switching code 2021-05-17 20:48:32 -07:00
Pierre-Loup A. Griffais
7e27bacc06 steamcompmgr: fix bug where we wouldn't repaint streaming video
Would just sit there if only the video underlay committed.
2021-05-17 19:42:58 -07:00
Pierre-Loup A. Griffais
d4c93c3b06 steamcompmgr: add external focus control mechanism 2021-05-17 19:42:58 -07:00
Pierre-Loup A. Griffais
f4db52a3fa steamcompmgr: move to stable_sort
It preserves original order like the old logic.
2021-05-17 19:42:58 -07:00
Pierre-Loup A. Griffais
0b92aee977 steamcompmgr: delete STEAM_UNFOCUS and isSteamPopup
now-unused test code
2021-05-17 19:42:58 -07:00
Pierre-Loup A. Griffais
a9216b398b steamcompmgr: fix appID getting stomped if reaper but no prop 2021-05-17 19:42:58 -07:00
Pierre-Loup A. Griffais
5c0e1ff4c7 steamcompmgr: publish focusable appids through root property 2021-05-17 19:42:58 -07:00
Simon Ser
fa433a3ebc Include <wayland-server-core.h> outside of extern "C"
Closes: https://github.com/Plagman/gamescope/issues/190
2021-05-17 19:21:51 +02:00
Pierre-Loup A. Griffais
756b3a6afc steamcompmgr: streaming_client is kind of like an overlay
but not really
2021-05-08 01:47:50 -07:00
Pierre-Loup A. Griffais
fe4501c633 steamcompmgr: more obscure focus fixes 2021-05-08 01:20:18 -07:00
Simon Ser
177205dca4 Block NV12 LINEAR when rotated 2021-05-07 12:21:36 +02:00
Pierre-Loup A. Griffais
9e6a6aa77d steamcompmgr: some focus regression fixes for cornercases
An overlay going away wasn't getting considered. Steam also doesn't
set the 'games running' property if Big Picture isn't running, and
we have more robust appID tracking now, so we can start to phase it out.
2021-05-06 12:57:33 -07:00
Pierre-Loup A. Griffais
7b97f6e4e8 steamcompmgr: add support for streaming_client video underlay
It'll split its YUV and RGB content into two windows. YUV one uses a
content override.
2021-05-05 23:00:40 -07:00
Pierre-Loup A. Griffais
074ee9c719 rendervulkan: remove 'fence' concept
Doesn't make sense now that we poll() the DMA-BUF fd directly. We can
do that directly from steamcompmgr. Vulkan's fence used to be an actual
fence we made up with an empty submission.
2021-05-05 18:46:19 -07:00
Pierre-Loup A. Griffais
e25f871d87 wlserver: avoid accessing mouse_focus_surface after destruction
We should also set the focus to something else that makes sense, which
means there's another bug in a higher-level layer somewhere, but at least
don't crash.
2021-05-05 16:37:51 -07:00
Simon Ser
a4f3a19480 Fix VkDescriptorPoolCreateInfo.poolSizeCount
This caused a read past the array end on anv.
2021-05-04 18:34:11 +02:00
Simon Ser
b6f5471b62 Allow toggling g_bRotated more easily
Allow just changing the default variable value to enable rotation.
2021-05-04 16:40:58 +02:00
Pierre-Loup A. Griffais
902fce73b0 steamcompmgr: flip the meaning of -x
It wasn't actually causing crashes and the memory stomp is fixed.
The option only existed for a very short time and didn't do anything
useful, so should be safe.
2021-05-02 23:51:37 -07:00
Pierre-Loup A. Griffais
580a17d462 steamcompmgr: get the appID from the process tree
In case we can't get it proactively from the app process.
2021-05-02 23:51:37 -07:00
Joshua Ashton
8afb3c3f30 Handle swapchain recreation for out of date and suboptimal 2021-05-01 16:51:00 -07:00
Joshua Ashton
e818aec744 Move to combined samplers and rewrite composite shader in GLSL
Cleans up the composite shader significantly as well as it uses
arrays of descriptors/samplers now.

This all gets unrolled as the loop is spec-constant sized.
2021-05-01 16:50:51 -07:00
Joshua Ashton
f537a40483 Use SOA instead of AOS for layers
Produces better code as the shader compiler can load
multiple layers with a single buffer_load at a time
due to the positioning and alignment.
2021-05-01 16:50:51 -07:00
Pierre-Loup A. Griffais
496b5f58d2 wlserver: downgrade wlserver_surface_set_wl_id assert to spew 2021-04-30 18:45:00 -07:00
Simon Ser
6f54b51a6c Fix cursor not using linear layout 2021-04-30 16:28:07 +02:00
Simon Ser
bf5123e19b Log errors in CVulkanTexture::BInit 2021-04-30 16:25:14 +02:00
Simon Ser
d1ff01c134 Make args const in drm_prepare 2021-04-30 16:18:29 +02:00
Pierre-Loup A. Griffais
2bb4907993 Also spew wayland display name through session pipe. 2021-04-27 21:17:36 -07:00
Simon Ser
a85c8d761c Fix planes offset/stride for multi-planar buffers
References: https://github.com/Plagman/gamescope/issues/49
2021-04-23 10:51:22 +02:00
Simon Ser
3a6895a4b8 Add more error messages 2021-04-23 10:45:17 +02:00
Simon Ser
c9b5000812 Don't query COLOR subresource layout with modifiers
According to the spec, this is invalid:

> If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then
> the aspectMask member of pSubresource must be
> VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT

This triggers an assertion in anv.

References: https://github.com/Plagman/gamescope/issues/49
2021-04-23 10:45:17 +02:00