Joshua Ashton
6402b5cd40
steamcompmgr: Fix child window cursor barrier
...
If our input focus is ever a child window, we need to account for its X/Y offset in the check for warping it.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-11-22 21:43:32 -08:00
Joshua Ashton
7fd1f3c930
steamcompmgr: Implement support for override redirect windows
2021-11-22 21:43:32 -08:00
Joshua Ashton
dbdf1095f8
rendervulkan: Add --composite-debug
...
Adds a --composite-debug flag for displaying frame markers on alternating corners of the screen or rotating in a localized square when compositing.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-11-22 21:40:10 -08:00
Simon Ser
8be45451d9
Introduce --generate-drm-mode
2021-11-20 16:01:39 -08:00
Joshua Ashton
10dd0322d4
steamcompmgr: Resolve transient links before determining input focus
...
Helps with launchers like FO:NV and other games where we end up having the visuals disjoint from what we actually want to input to.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-11-20 16:00:21 -08:00
Simon Ser
e8dab4efe0
Drop unnecessary typedef
2021-11-10 18:30:47 +01:00
Pierre-Loup A. Griffais
6831e6df2c
steamcompmgr: don't repaint on focus change
...
This'll repaint an empty texture we don't want in a lot of cases.
Reverts part of 7796ffc130
.
2021-11-07 22:46:26 -08:00
Pierre-Loup A. Griffais
5e7dcd30f8
steamcompmgr: don't focus random windows
...
If we don't have -e, everything will have a fake gameID to get focus.
2021-11-07 21:01:56 -08:00
Simon Ser
b3b8d60c00
Disable Xwayland touch pointer emulation
...
Depends on https://github.com/swaywm/wlroots/pull/3289
2021-11-02 12:21:12 +01:00
Simon Ser
78a2496386
pipewire: set CORRUPTED flag when buffer params mismatch
2021-11-01 14:51:03 +01:00
Simon Ser
6be82ccabb
Copy Vulkan textures in PipeWire thread
2021-11-01 10:01:32 +01:00
Simon Ser
e80e4393de
Add CVulkanTexture::{m_width,m_height}
2021-11-01 09:56:08 +01:00
Simon Ser
49fb59ac56
Don't use std::unique_ptr for screenshot textures
...
We need to keep the screneshot textures around if they are still
ref'ed when we re-make the swapchain. std::unique_ptr makes this
impossible. Switch to std::shared_ptr, and get rid of the nLockRefs
field.
2021-11-01 09:44:51 +01:00
Simon Ser
1b9c554f32
Set name for screenshot thread
2021-10-29 17:03:37 +02:00
Joshua Ashton
c7a22d4777
Add error handling to screenshot saving
2021-10-29 13:13:23 +02:00
Joshua Ashton
0aa6761157
Introduce screenshot saving thread
...
Fixes hangs/stutters when taking screenshots.
Should be trivial to extend to pipewire too.
2021-10-29 13:13:23 +02:00
Joshua Ashton
dd5de82c7e
Use PNG for screenshots
...
Closes : #291
2021-10-29 13:13:23 +02:00
Simon Ser
f3865a73bd
Name our threads
...
Unfortunately the name length is limited to 15 characters, and the
executable name is dropped from the name if we don't include it.
2021-10-27 17:18:29 +02:00
Simon Ser
cabba8c921
drm: set mode type to USERDEF
...
Makes it easier to spot it in drm_info, among other things.
2021-10-26 16:29:20 +02:00
Simon Ser
d3496fd719
drm: fix drm_set_refresh when rotated
2021-10-19 16:08:03 +02:00
Bas Nieuwenhuizen
7796ffc130
Force a redraw if the window focus changes.
...
Otherwise if all of the windows in the new situation never redraw
we never update to show the new focus configuration.
This change avoids things like stuck overlays and notification
windows if the underlying game is stuck.
2021-10-18 14:39:18 +02:00
Pierre-Loup A. Griffais
26aeebf11d
steamcompmgr: publish input change count
2021-10-17 20:17:30 -07:00
Simon Ser
ba32e4df21
ime: add support for actions
2021-10-08 22:55:01 -07:00
Simon Ser
a3ec65ef06
Switch to vendored protocol
...
We'll implement some more features on top of input-method, so let's
incubate our own protocol for now. We'll give feedback upstream
once we've experimented a bit with this approach.
The protocol is minimal: it just includes the features needed for
gamescope. It's always easier to add new requests/events than to
change existing ones.
2021-10-08 22:55:01 -07:00
Simon Ser
ad26899b20
ime: reset keymap after sending emulated key events
...
This fixes SteamOS' virtual keyboard.
2021-10-08 22:55:01 -07:00
Simon Ser
6d2b53197e
ime: introduce keycode allow-list
...
Some clients (Chromium…) assume keycodes are always coming from
evdev, and interpret e.g. KEY_ESC directly without using the keymap.
2021-10-08 22:55:01 -07:00
Simon Ser
2ba6eefad8
ime: check for xkb_keysym_get_name errors
2021-10-08 22:55:01 -07:00
Simon Ser
6f26dae77e
ime: send void keysym before key sequence
...
This works around Chromium issues.
2021-10-08 22:55:01 -07:00
Simon Ser
880c87f4c5
ime: disable key repeat
...
Just in case.
2021-10-08 22:55:01 -07:00
Simon Ser
97623694dc
ime: remove unicode keysym name workaround
...
It seems like xkb_keysym_get_name behaves as expected now.
2021-10-08 22:55:01 -07:00
Simon Ser
49da53db55
Implement a subset of input-method-unstable-v2
...
This allows a Wayland client to send arbitrary UTF-8 text to the
currently focused X11 client. Useful for virtual keyboards.
We generate a keymap on-the-fly suitable for the text to type.
2021-10-08 22:55:01 -07:00
Simon Ser
c87dd2ef5c
Drop loadargbcursor
...
This is now built-in in gamescope.
2021-10-06 18:48:47 +02:00
Pierre-Loup A. Griffais
39c9e93e0c
Make default touch mode configurable.
2021-10-04 15:00:29 -07:00
Simon Ser
a5a31d46e3
Upgrade libliftoff
2021-09-30 11:22:40 +02:00
Simon Ser
21b263768f
rendervulkan: order formats with alpha first
...
This allows the cursor to be exported as an ARGB8888 buffer suitable
for the cursor plane.
2021-09-29 19:02:18 +02:00
Simon Ser
f55106a344
drm: reset alpha prop on shutdown
2021-09-27 12:42:33 +02:00
Simon Ser
e29e375904
sdlwindow: make most variables static
2021-09-21 11:00:51 +02:00
Joshua Ashton
50f695591d
rendervulkan: Force nearest filtering for non-scaled and integer offset things
...
No reason to do linear filtering otherwise.
2021-09-15 10:58:38 -07:00
Joshua Ashton
b46cc14025
rendervulkan: Use textureLod()
...
May as well.
2021-09-15 10:58:38 -07:00
Joshua Ashton
320a23220a
rendervulkan: Sample at texel centers
...
I missed adding this back in when I did the PR that was meant to fix this when I was debugging... Oops.
2021-09-15 10:58:38 -07:00
Jan Beich
12bff15700
wlserver: hide remaining pipewire stuff with -Dpipewire=disabled
...
src/wlserver.cpp:511:13: warning: unused function 'create_gamescope_pipewire' [-Wunused-function]
static void create_gamescope_pipewire( void )
^
2021-09-15 18:42:12 +02:00
Jan Beich
5548b29521
wlserver: compare using larger type on 32-bit architectures
...
src/wlserver.cpp:430:16: warning: comparison of integers of different signs: 'long' and 'uint32_t' (aka 'unsigned int') [-Wsign-compare]
if (s->wl_id == id && s->wlr == nullptr)
~~~~~~~~ ^ ~~
2021-09-15 18:42:12 +02:00
Jan Beich
04fd7ed5b7
drm: adjust printf format modifiers for 32-bit architectures
...
src/drm.cpp:187:50: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
drm_verbose_log.debugf("page_flip_handler %lu", flipcount);
~~~ ^~~~~~~~~
%llu
src/drm.cpp:777:44: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
drm_verbose_log.debugf("flip commit %lu", (uint64_t)g_DRM.flipcount);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
%llu
2021-09-15 18:42:12 +02:00
Simon Ser
7d108448b1
Improve unknown option error message
...
The stdlib will already print an error message. Let's just mention
--help.
2021-09-15 13:40:59 +02:00
Simon Ser
5849b6c14e
Forbid duplicate short options
...
Just make sure we don't define two flags with the same letter.
2021-09-15 13:38:38 +02:00
Simon Ser
27cff4e41b
wlserver: drop headless backend
...
Saves us the GLES2 renderer init.
2021-09-15 13:35:42 +02:00
Simon Ser
a480fe81fe
Drop VulkanRenderer_t.parent
...
We don't need the wlroots parent GLES2 renderer anymore.
2021-09-15 13:35:42 +02:00
Simon Ser
2772a17f22
Implement wlr_renderer_impl.get_drm_fd
...
This depends on VK_EXT_physical_device_drm.
2021-09-15 13:35:42 +02:00
Simon Ser
92c6823897
wlserver: let wlr_renderer init the DMA-BUF Wayland protocols
...
wlr_renderer_init_wl_display will automatically init the suitable
Wayland protocols.
2021-09-15 13:35:42 +02:00
Simon Ser
ae7fcc5ba7
wlserver: get wlr_buffer from VulkanWlrTexture_t
...
This side-steps wlr_client_buffer and ensures we get access to the
underlying buffer. This allows us to call
wlr_buffer_begin_data_ptr_access to upload shm textures.
2021-09-15 13:35:42 +02:00
Simon Ser
0bbecd7e90
Extract fence from Vulkan texture if buffer is shm
2021-09-15 13:35:42 +02:00
Simon Ser
118d8213e4
rendervulkan: implement wlr_renderer_impl.texture_from_buffer
2021-09-15 13:35:42 +02:00
Simon Ser
db1ffbe2e4
rendervulkan: remove wlr_renderer_impl.init_wl_display
...
We don't need EGL_bind_wayland_display anymore.
2021-09-15 13:35:42 +02:00
Simon Ser
6fbabb94b3
rendervulkan: build list of supported wl_shm formats
2021-09-15 13:35:42 +02:00
Simon Ser
a325cf193b
Use wlroots' wl_drm implementation
...
wl_drm is not available on Vulkan.
References: https://github.com/swaywm/wlroots/pull/2708
2021-09-15 13:35:42 +02:00
Simon Ser
123df9006f
rendervulkan: implement wlr_renderer_impl.get_render_buffer_caps
2021-09-15 13:35:42 +02:00
Simon Ser
d13d19981b
rendervulkan: drop wlr_renderer_impl.render_ellipse_with_matrix stub
...
This has been removed from wlroots upstream.
2021-09-15 13:35:42 +02:00
Simon Ser
332f261c35
drm: generalize find_drm_node_by_devid for render nodes
...
We'll use this to open the DRM render node from a VkPhysicalDevice.
2021-09-15 12:12:06 +02:00
Bas Nieuwenhuizen
83eae082fa
Warning fix
2021-09-14 17:29:51 -07:00
Bas Nieuwenhuizen
e510af1b7e
Add a proper release barrier for modifier based images when not nested.
...
RADV does retiling in that barrier. Still hinky overall but this fixes
using compositing with DCC compressed images on RADV.
2021-09-14 17:22:07 -07:00
Joshua Ashton
143176acb1
Fix return value when SDL fails initialization
2021-09-14 17:01:42 -07:00
Joshua Ashton
ce87bf1b76
Init format info after initializing DRM
...
Otherwise all our modifiers/formats and stuff are garbage.
Fixes : #269
2021-09-14 17:01:42 -07:00
Pierre-Loup A. Griffais
8e75287454
steamcompmgr: more GAMESCOPECTRL work
2021-09-14 16:29:42 -07:00
Simon Ser
2eb520bc17
Fix BIsNested return type
2021-09-14 18:36:27 +02:00
Simon Ser
5a93c4ed13
Minor style fixup
2021-09-14 18:33:05 +02:00
Simon Ser
eed360ce09
sdlwindow: ignore key repeat events
...
Wayland clients (incl. Xwayland) handle this.
2021-09-14 18:25:56 +02:00
Simon Ser
0d43e3472a
sdlwindow: get mod from key event
...
No need to call SDL_GetModState, the event already carries this
information.
2021-09-14 18:23:30 +02:00
Simon Ser
e5faeaed68
Open DRM device from Vulkan physical device
...
Initialize Vulkan first to pick a physical device, then initialize
DRM or SDL. That way, DRM can open its own device depending on what
Vulkan is using. This avoids picking the wrong GPU on multi-GPU
setups.
This required rejiggering how initialization happens. In particular,
we need to get the SDL Vulkan instance extension list early. This is
supported since SDL 2.0.9 (by omitting the window in
SDL_Vulkan_GetInstanceExtensions).
2021-09-14 18:16:53 +02:00
Simon Ser
1fca3896b1
wlserver: remove wlserver_init args
...
argc and argv are unused, bIsNested can be fetched from globals.
2021-09-14 17:03:52 +02:00
Simon Ser
7198851e98
Unify init functions return types a bit
...
We had both int and bool, let's try to end up with only bools.
2021-09-14 16:59:46 +02:00
Simon Ser
1d528be605
Untangle preferred mode and current mode
...
g_nOutput* stored two different values: preferred values taken from
the CLI at init-time, then current values after init. This results
in some tricky logic because depending on when code is executed it'd
access one or the other.
Introduce two separate sets of variables instead. DRM reads from the
preferred values, decides which DRM mode to enable, then writes to
the current values. SDL reads from the preferred values and makes
them current immediately.
This changes gamescope's behaviour so that native DRM modes are
picked when -w/-h isn't specified on the command line. When -w/-h are
specified, the DRM logic will try to pick a mode which matches.
When nested, the default output size still defaults to 720p, but
changes when the user resizes the window.
Closes: https://github.com/Plagman/gamescope/issues/258
2021-09-14 16:45:23 +02:00
Simon Ser
54e6614e2c
wlserver: stop setting keyboard in wlserver_new_input
...
This avoids messing up with the current keyboard settings when a
new one is plugged in.
2021-09-14 13:56:33 +02:00
Simon Ser
f10e2248fd
wlserver: set keyboard in wlserver_key
...
This ensures clients see the right keymap/modifiers/etc when
handling a keyboard event.
2021-09-14 13:47:55 +02:00
Simon Ser
1694e0c4f7
wlserver: handle null keyboard in wlserver_keyboardfocus
2021-09-14 13:44:35 +02:00
Simon Ser
16211ba7ca
wlserver: expose nested refresh if set
...
Instead of faking an output with the KMS mode's refresh rate,
expose the nested refresh rate when -r is set.
2021-09-14 08:24:07 +02:00
Valentin David
5672737093
wlserver: Add support for mouse wheels
2021-09-13 23:17:34 +02:00
Simon Ser
90f3a13c13
Drop trailing spaces
2021-09-13 23:14:57 +02:00
Valentin David
a8ba73b8ae
wlserver: Force reading XKB_DEFAULT_* variables
...
When gamescope has cap_sys_nice capability, then `secure_getenv` used
by libxkbcommon does not load the keymap configuration from
environment. So the environment variables have to be manually read from
gamescope.
Without `XKB_DEFAULT_LAYOUT` it is not possible to load other keymaps
than US.
2021-09-13 23:06:37 +02:00
Simon Ser
5ac5a1ea29
drm: don't use globals as inputs for find_mode
...
These globals are overwritten by drm_set_mode. Save the globals at
init time to remember what the user preference is.
2021-09-13 18:34:27 +02:00
Simon Ser
3504fb2613
steamcompmgr: fix mouseMoved type
2021-09-13 10:01:28 +02:00
Simon Ser
af836736bf
steamcompmgr: unify function call code style a bit
2021-09-13 09:25:57 +02:00
Simon Ser
d237cf387f
steamcompmgr: switch to stdbool
2021-09-13 09:16:58 +02:00
Pierre-Loup A. Griffais
66064b23cf
steamcompmgr: don't always warp cursor on mouse input focus change
2021-09-12 23:39:34 -07:00
Pierre-Loup A. Griffais
3db90edd75
steamcompmgr: don't allow giving an overlay layer keyboard focus
...
The main plane app rarely lets it go without making visible trouble.
We can reinstate this feature when we have a way to lie about it.
2021-09-12 23:30:51 -07:00
Pierre-Loup A. Griffais
ab72155ce0
steamcompmgr: some cursor hiding improvements
...
Absorb 5 moves for auto-hide purposes instead of 3. Our nudge is 2 moves,
and we can warp on top of that, so we weren't counting everything.
Hide before changing mouse input focus and the warp that ensues.
Re-arm warp count when changing mouse input focus, so doing it repeatedly
with the same window doesn't eventually unhide despite no input.
2021-09-12 23:21:35 -07:00
Joshua Ashton
805e3c5801
rendervulkan: Set addressModeW for samplers
...
Technically, YCbCr has a hard requirement of everything being CLAMP_TO_EDGE here and validation moans about it. Better just to set it.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-09-12 18:21:44 -07:00
Joshua Ashton
249708fedd
rendervulkan: Enable VK_KHR_image_format_list if we use modifiers
...
This extension is required for whatever reason. Validation complains about it.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-09-12 18:21:44 -07:00
Joshua Ashton
5a1f28d8bc
rendervulkan: Use push constants for composite data
...
We can just bung this in here and avoid needing to deal with a buffer.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-09-12 18:21:44 -07:00
Joshua Ashton
3e1ebd7241
rendervulkan: Replace border color with CLAMP_TO_EDGE + bounds check
...
We can't use normal border colors if we are doing linear filtering as we will sample slightly outside on the edges and blend to the border color.
Replace this with a way to push an arbitrary layer alpha and return that in the OOB case, and when sampling, clamp to edge.
This also may be more efficient to avoid sampling OOB a lot of the time in some cases.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-09-12 18:21:44 -07:00
Simon Ser
1e707d7947
Fix typo in usage message
2021-09-11 20:51:51 +02:00
Simon Ser
b5001aa00c
Simplify build_optstring for long-only options
2021-09-11 02:59:48 +02:00
Joshua Ashton
2cea675db0
meta: Use wrap file for STB rather than submodule
...
Allows us to use this as a Meson subproject which means that recursive cloning doesn't matter (Meson resolves it for subprojects).
Given this subproject doesn't have a meson file, doing subproject() on it would fail, so:
Make a wrap file with an overlay that declares a proper dependency.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-09-11 02:55:21 +02:00
Pierre-Loup A. Griffais
21d631590a
Fix build_optstring bug with long-only options requiring argument.
2021-09-10 17:46:00 -07:00
Simon Ser
fb4ec7cb4e
Drop short option for --cursor
2021-09-10 14:25:19 +02:00
Simon Ser
f8e251962c
Add --help
2021-09-10 14:21:59 +02:00
Simon Ser
94f78d1b3c
steamcompmgr: use log scope
2021-09-10 12:04:20 +02:00
Simon Ser
d926ea0b33
steamcompmgr: init g_nudgePipe to invalid FDs
...
Make sure we don't wrongly read from stdin or something.
2021-09-10 11:49:14 +02:00
Simon Ser
97746c609f
steamcompmgr: remove unused environ
2021-09-10 11:48:10 +02:00
Simon Ser
ba9c46cea2
drm: disable all KMS resources at exit
2021-09-10 11:42:43 +02:00
Simon Ser
ff8c0b183b
Introduce finish_drm
...
For now it just closes the DRM FD, but will do more soon.
2021-09-10 11:05:09 +02:00
Simon Ser
fc748ebd78
wlserver: remove wlserver_run return value
...
It always returns 0.
2021-09-10 11:01:54 +02:00
Simon Ser
cd0e12d050
Wait for steamcompmgr when exiting
...
This allows steamcompmgr to perform cleanup actions without being
hard-terminated.
2021-09-10 11:00:18 +02:00
Simon Ser
1e163fa358
steamcompmgr: check for XNextEvent errors
2021-09-09 19:56:50 +02:00
Simon Ser
597fc8fa48
Move signal handler to main
2021-09-09 19:49:31 +02:00
Simon Ser
1989c291ee
Avoid double-closing GEM handles
2021-09-04 17:30:13 +02:00
Simon Ser
4330ec5433
drm: clean up buffer handles
...
Closes: https://github.com/Plagman/gamescope/issues/60
2021-09-04 16:43:22 +02:00
Pierre-Loup A. Griffais
5d3a0eb078
Repaint on possible connector hotplug
2021-09-02 17:18:13 -07:00
Pierre-Loup A. Griffais
8782dc2cd1
drm: Always explicitly set rotation property
...
This allows to transition in and out of rotation based on connector hotplug.
2021-09-02 14:43:16 -07:00
Simon Ser
5e66e9cee0
Option -O takes one arg
2021-09-02 23:29:01 +02:00
Simon Ser
268b625655
Remove short notation for some debug options
...
These should be only used during development, so don't deserve a
short option.
2021-09-02 22:10:55 +02:00
Simon Ser
ae785b25bf
Remove -s and -N options
...
These were unused.
2021-09-02 21:51:32 +02:00
Simon Ser
3df6fa58bd
Rename -S to --synchronous-x11
2021-09-02 21:48:43 +02:00
Joshua Ashton
ffa970ef7e
Add --cursor argument
2021-09-01 18:33:57 +02:00
Joshua Ashton
0b5764195e
Add setCursorImage to MouseCursor
2021-09-01 18:33:57 +02:00
Simon Ser
22323418ac
wlserver: set wlroots log handler
2021-09-01 18:31:45 +02:00
Simon Ser
c034ac1f99
wlserver: use log scope
2021-09-01 18:25:24 +02:00
Simon Ser
0536dc0bb0
Repaint when taking screenshot
...
Closes: https://github.com/Plagman/gamescope/issues/247
2021-09-01 17:26:38 +02:00
Joshua Ashton
7812e0a726
Check correct channel for no cursor check
...
This was checking if the cursor has no blue before, when it should be checking the alpha.
2021-09-01 17:09:09 +02:00
Joshua Ashton
76292f01cb
Fix RGB/BGR of the cursor's Vulkan image
...
This was ABGR before, when it should be ARGB.
2021-09-01 17:09:09 +02:00
Simon Ser
39c44a9e3c
Sort options by embedded/nested mode
2021-09-01 16:08:20 +02:00
Simon Ser
5904078b2c
Build optstring on the fly
...
Instead of having to maintain two lists of options, just generate
one from the other.
2021-09-01 15:14:08 +02:00
Simon Ser
13f792ab15
Add long options
...
This will allow us to introduce new long options which don't have
any short option equivalent.
2021-09-01 14:51:23 +02:00
Simon Ser
f36d436a71
Enable getopt error messages
...
These print something like "invalid option 'foo'". Previously
disabled because of the split main/steamcompmgr option handling.
2021-09-01 14:35:47 +02:00
Simon Ser
38b65a8b22
Error out on unknown option
2021-09-01 14:05:18 +02:00
Simon Ser
f18723d489
drm: compute per-connector CRTC mask
2021-09-01 13:23:12 +02:00
Simon Ser
b230ec29ab
drm: fix crash when -O isn't provided
...
Closes: https://github.com/Plagman/gamescope/issues/241
2021-09-01 12:06:11 +02:00
Simon Ser
b2679838ab
pipewire: add doc comments for {in,out}_buffer
2021-08-31 17:12:17 +02:00
Simon Ser
3c11ea20c3
pipewire: check pw_stream_queue_buffer return value
2021-08-31 17:12:17 +02:00
Simon Ser
56d3629b9b
pipewire: add doc comment for pipewire_buffer
2021-08-31 17:12:17 +02:00
Simon Ser
fad2b9d42c
pipewire: don't destroy buffers immediately when copying
...
When a buffer is being copied by the steamcompmgr thread, we
shouldn't destroy it immediately in the remove_buffer hook.
2021-08-31 17:12:17 +02:00
Simon Ser
5c42a6ee60
pipewire: re-use struct pipewire_buffer
2021-08-31 17:12:17 +02:00
Simon Ser
030fab39c9
pipewire: allocate our own buffers
2021-08-31 17:12:17 +02:00
Simon Ser
4b7890594a
pipewire: switch to logger
2021-08-31 17:06:49 +02:00
Simon Ser
ef64b60cec
Add gamescope-pipewire protocol
...
Can be tested with:
https://git.sr.ht/~emersion/gamescope-pipewire-demo
2021-08-31 17:06:49 +02:00
Simon Ser
59e8aa4abc
pipewire: add stream process handler
...
This allows detecting when a buffer becomes available if we've
run out of buffers.
2021-08-31 17:06:49 +02:00
Simon Ser
5f4e6fb980
pipewire: renegotiate stream params on resize
2021-08-31 17:06:49 +02:00
Simon Ser
d6510dd931
pipewire: pump frames out of steamcompmgr
2021-08-31 17:06:49 +02:00
Simon Ser
82ef0372d5
Introduce thread-safe take_screenshot
2021-08-31 17:06:49 +02:00
Simon Ser
501eff233e
Move screenshot saving out of vulkan_composite
...
We'll re-use the same logic for PipeWire.
2021-08-31 17:06:49 +02:00
Simon Ser
d2befe211a
pipewire: handle params changed
2021-08-31 17:06:49 +02:00
Simon Ser
bb3d5a4edb
pipewire: initialize stream
2021-08-31 17:06:49 +02:00
Joshua Ashton
c41dd74ef5
Add integer scale option
2021-08-30 17:15:57 -07:00
Joshua Ashton
5422061746
Add a max scale parameter
2021-08-30 17:15:57 -07:00
Simon Ser
3b14c21afc
Simplify errorf_errno a bit
2021-08-25 18:16:44 +02:00
Simon Ser
c3079f7f6c
rendervulkan: use log scopes
2021-08-25 18:09:39 +02:00
Simon Ser
c876abfa75
drm: replace s_drm_log with logging scope
2021-08-25 17:33:16 +02:00
Simon Ser
7cee212085
drm: use logging module
2021-08-25 17:20:23 +02:00
Simon Ser
a54b5c9ee0
Introduce basic logging module
2021-08-25 17:20:11 +02:00
Simon Ser
cba189d389
drm: allow wildcard in connector priority list
2021-08-25 16:22:14 +02:00
Simon Ser
51cfc0df06
Implement priority list for -O
...
e.g. `-O DP-1,VGA-1` will use DP-1 if possible, then fallback to
VGA-1, then to any other connector.
2021-08-25 16:22:14 +02:00