Commit graph

1125 commits

Author SHA1 Message Date
Joshua Ashton
a85d71cc9e steamcompmgr: Don't require a fps limit for dynamic refresh 2022-04-17 22:55:46 +01:00
Joshua Ashton
34c6904234 wlserver: Be more defensive in content_override_handle_surface_destroy
Better to be defensive here than crashing.
2022-03-25 23:13:05 +00:00
Joshua Ashton
45ba90bc40 steamcompmgr: Don't XSelectInput PointerMotionMask
Otherwise it can end up not propogating to windows properly, and they will never recieve the PointerMotion event.

All this seemed to be doing was trapping what was going to be sent to the game, and then using it, despite us already always knowing the cursor position.
2022-03-24 22:54:17 +00:00
Joshua Ashton
c7962c3e6b steamcompmgr: Tie break by map sequence before damage sequence 2022-03-24 18:58:23 +00:00
Joshua Ashton
e4a517b4b8 steamcompmgr: Handle maybe dropdowns better + resolve override transients after finding a first transient
Fixes regressions in TES:IV Oblivion launcher + Zwei launchers
2022-03-24 18:53:47 +00:00
FlightlessMango
6d0c84d163 mangoapp: send focusWindow pid 2022-03-19 01:35:19 +00:00
Pierre-Loup A. Griffais
9b5e6d8fd9
Update LICENSE 2022-03-18 13:51:15 -07:00
Joshua Ashton
9eb7445a62 steamcompmgr: Move 1x1 windows down the priority queue below override redirects
Fixes Origin launcher being parented to a 1x1 centred window.
2022-03-18 17:36:35 +00:00
Joshua Ashton
49125a2d17 steamcompmgr: Ignore win_skip_taskbar_and_pager for maybe overrides 2022-03-18 17:29:19 +00:00
Joshua Ashton
499573c5fb steamcompmgr: Ignore overrides that are 1x1 2022-03-18 16:34:21 +00:00
Joshua Ashton
edbf409d07 steamcompmgr: Fix transient following for maybe dropdowns
For Warframe language selection (but not specifically, this is just the right thing.)
2022-03-18 00:07:23 +00:00
Joshua Ashton
e30b5636b0 steamcompmgr: Fix dialog preference check
For Warframe language selection.
2022-03-18 00:07:20 +00:00
Joshua Ashton
8a3a0893cd steamcompmgr: Tie-break dropdowns w/ transient-for presence
For Warframe language selection.
2022-03-18 00:07:16 +00:00
Joshua Ashton
ade9eca823 steamcompmgr: Fix gravity + position check for determining maybe a dropdown state
For Warframe language selection.
2022-03-18 00:07:12 +00:00
Joshua Ashton
be4b83cff2 steamcompmgr: Handle potential dropdowns better in focus order
For Warframe language selection.
2022-03-18 00:07:00 +00:00
Joshua Ashton
a913f8566f steamcompmgr: Don't disable dynamic refresh when the QAM/Overlay comes up 2022-03-11 22:46:08 +00:00
Philip Nilsson
d3d0bc189e sdlwindow: Fix extra mouse button mapping
This changes the mouse button mapping in gamescope to match the mapping in SDL2-2.0.20:src/core/linux/SDL_evdev.c.

Fixes issue #234.
2022-03-02 20:41:33 +01:00
Simon Ser
66f603e6c4 ime: use default keymap if possible 2022-03-01 18:46:51 +00:00
Simon Ser
279321fa73 ime: fix utf8_size for the NUL character 2022-03-01 18:46:51 +00:00
Joshua Ashton
82948d87e0 steamcompmgr: Make maybe_an_override path respect focus window's appids and good candidate state 2022-02-27 09:41:10 +00:00
Joshua Ashton
bfefe62933 steamcompmgr: Fix on-screen check for override candidates
Fixes Apex Legends Origin signup via. Steam Overlay browser
2022-02-27 09:36:34 +00:00
Joshua Ashton
5b8f9e6a64 steamcompmgr: Handle some non-explicit dropdowns
Fixes Rockstar Launcher dropdowns
2022-02-25 08:40:31 +00:00
Joshua Ashton
8597753b75 steamcompmgr: Fix integer scaling when supersampling 2022-02-25 08:02:18 +00:00
Joshua Ashton
e190d55f65 steamcompmgr: Exclude skip taskbar + page & 1x1 windows & override redirects from reported focusable windows 2022-02-25 06:59:07 +00:00
Joshua Ashton
58a9aa6543 steamcompmgr: Bring back inputFocusMode 2
Now we have input split properly, we can have this again.
2022-02-23 23:33:30 +00:00
Simon Ser
7004d98223 drm: add support for DP-MST connectors
These are created/destroyed dynamically by the kernel.
2022-02-23 23:07:21 +00:00
Simon Ser
483e2729ec drm: store connectors in map
We'll need to create/destroy connectors for DP-MST. A vector
invalidates pointers/references when new elements are inserted.
2022-02-23 23:07:21 +00:00
Joshua Ashton
d6b6428143 rendervulkan: Support blur for override redirect layer too
Essentially just shoves that into the horizontal pass and cleans it out of the normal composite when we go to do vertical and also makes the blur image the same size as the output, which should have been done anwyay to avoid harsh borders.
2022-02-23 23:00:48 +00:00
Joshua Ashton
b7dd42e0b8 steamcompmgr: Remove useless zpos hack
Not needed anymore, this got fixed in liftoff
2022-02-23 23:00:48 +00:00
Bas Nieuwenhuizen
46beac1556 Add support for communicating a swapchain override to apps.
With matching stuff in mesa to dynamically change the swapchain
to FIFO (or the approximate GL equivalent).
2022-02-23 03:02:55 +00:00
Georg Lehmann
a56b56d401 rendervulkan: Fix half pixel offset (again)
Some quick debugging code that I forgot to change properly.
Derp.
2022-02-18 19:53:29 +00:00
Joshua Ashton
ff5d585785 steamcompmgr: Make GAMESCOPE_DYNAMIC_REFRESH control the refresh rate directly 2022-02-18 03:20:37 +00:00
Joshua Ashton
75f3506a1a steamcompmgr: Add FPS limiting through frame callback timing 2022-02-18 03:20:37 +00:00
Joshua Ashton
aa94b6dec1 steamcompmgr: Add GAMESCOPE_FOCUSED_APP_GFX atom 2022-02-18 02:56:58 +00:00
Georg Lehmann
4153272274 rendervulkan: Reduce blur pipeline count. 2022-02-18 02:44:11 +00:00
Georg Lehmann
7708d62801 rendervulkan: Layer 0 blur support. 2022-02-18 02:44:08 +00:00
Joshua Ashton
4ed0c26364 vblankmanager: Nuke FPS limiter code for now
Not baked enough right now, needs a rework for several reasons.

Keeps dynamic refresh.
2022-02-17 21:58:14 +00:00
Simon Ser
c82cefbdee mangoapp: fix msgsnd size arg
The size argument must not include the `long msg_type` field.

Fixes the following ASan error:

    =================================================================
    ==25745==ERROR: AddressSanitizer: global-buffer-overflow on address 0x55cb6beea08a at pc 0x7f118e89525d bp
     0x7f117620a8a0 sp 0x7f117620a048
    READ of size 50 at 0x55cb6beea08a thread T10

        #0 0x7f118e89525c in __interceptor_msgsnd /usr/src/debug/gcc/libsanitizer/sanitizer_common/sanitizer_c
    ommon_interceptors.inc:3138
        #1 0x55cb6b6518ed in mangoapp_update(unsigned long, unsigned long, unsigned long) ../src/mangoapp.cpp:
    48
        #2 0x55cb6b484dde in imageWaitThreadMain() ../src/steamcompmgr.cpp:521
        #3 0x55cb6b538298 in void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr
    /include/c++/11.2.0/bits/invoke.h:61
        #4 0x55cb6b5381b3 in std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /u
    sr/include/c++/11.2.0/bits/invoke.h:96
        #5 0x55cb6b538063 in void std:🧵:_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_t
    uple<0ul>) /usr/include/c++/11.2.0/bits/std_thread.h:253
        #6 0x55cb6b537f23 in std:🧵:_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/11.
    2.0/bits/std_thread.h:260
        #7 0x55cb6b537ae9 in std:🧵:_State_impl<std:🧵:_Invoker<std::tuple<void (*)()> > >::_M_run
    () /usr/include/c++/11.2.0/bits/std_thread.h:211
        #8 0x7f118e0a34d3 in execute_native_thread_routine /usr/src/debug/gcc/libstdc++-v3/src/c++11/thread.cc
    :82
        #9 0x7f118d3d75c1 in start_thread (/usr/lib/libc.so.6+0x8d5c1)
        #10 0x7f118d45c583 in __clone (/usr/lib/libc.so.6+0x112583)

    0x55cb6beea08a is located 0 bytes to the right of global variable 'mangoapp_msg_v1' defined in '../src/mangoapp.cpp:27:27' (0x55cb6beea060) of size 42
2022-02-16 12:54:49 +00:00
Simon Ser
5f8fa27029 steamcompmgr: cleanup on X11 error
The cleanup sequence run on X11 I/O error was incomplete. Let's
extract it to a function to make sure it doesn't go out-of-sync
again.
2022-02-15 17:55:51 -08:00
Joshua Ashton
fd3e8182fd vblankmanager: Rework fps limiter a bunch
Tracks consecutive missed frames much better, handles latent buffers much better.

Disable mangoapp hack for now -- it's obscuring useful data, need a better solution.

Disable low latency by default, still controlable by atom.
2022-02-16 00:55:21 +00:00
Joshua Ashton
b471a05d8a steamcompmgr: Don't yank input focus from subwindows when dirtying focus for no reason 2022-02-15 02:46:35 +00:00
Joshua Ashton
367a92833d steamcompmgr: Only reset to corner if we change real input focus focus 2022-02-15 02:15:40 +00:00
Joshua Ashton
a44c0dbc43 steamcompmgr: Handle dropdown positioning if the main window is the current output width & height 2022-02-15 02:02:09 +00:00
Joshua Ashton
82c098f117 pipewire, steamcompmgr: Fix odr violations for event_type 2022-02-14 23:50:31 +00:00
Joshua Ashton
ddf468a8e6 modegen: Add tuned clocks for Steam Deck's display 2022-02-14 22:50:15 +00:00
Georg Lehmann
ada1c7f89d rendervulkan: Do rcas opacity in the correct colorspace if we calculate it anyway. 2022-02-14 21:48:40 +00:00
Georg Lehmann
2d537df252 rendervulkan: Don't calculate a garbage alpha value. 2022-02-14 21:48:40 +00:00
Georg Lehmann
35b381ce51 rendervulkan: Don't use clock for random debug output.
Not supported on turnip.
2022-02-14 21:48:40 +00:00
Joshua Ashton
ecdf214130 vblankmanager: Fix offsetting by vblank time -- use 0 for min sleepy time 2022-02-14 20:08:19 +00:00
Joshua Ashton
a8d59607b3 vblankmanager: Don't resize latency graph when misaligned from vblank + latent frames 2022-02-14 19:54:21 +00:00