Simon Ser
999673e56b
drm: print human-readable error string on commit failure
2021-07-26 11:36:12 +02:00
Simon Ser
35a0eff0c4
drm: log flipcount in drm_atomic_commit if logs are enabled
2021-07-26 11:32:59 +02:00
Simon Ser
da58d14dda
drm: log flipcount as integer in page_flip_handler
2021-07-26 11:31:16 +02:00
Simon Ser
5fedd45d2f
Switch to poll
...
epoll doesn't offer any benefit for our use-case. select is old.
Let's just make things consistent and use the portable poll
everywhere.
2021-07-25 20:42:16 +02:00
Simon Ser
9a6b72f712
rendervulkan: document bNeedsSwizzle
2021-07-25 19:59:37 +02:00
Simon Ser
c9e8634e13
rendervulkan: add back VK_FORMAT_R8G8B8A8_UNORM
...
This format is used for the cursor. Regressed by 8b70637998
("Use
VK_FORMAT_B8G8R8A8_UNORM no swizzle for DRM_FORMAT_ARGB8888").
gamescope: ../src/rendervulkan.cpp:369: bool CVulkanTexture::BInit(uint32_t, uint32_t, VkFormat, CVulkanTexture::createFlags, wlr_dmabuf_attributes*): Assertion drmFormat != DRM_FORMAT_INVALID' failed.
2021-07-25 19:55:06 +02:00
Simon Ser
5d12da3d22
drm: fetch formats for all planes
...
We were stopping at the primary plane, but we can also scanout
on the overlay planes.
2021-07-25 19:49:26 +02:00
Simon Ser
8828f7218b
drm: log selected connector
2021-07-24 12:28:49 +02:00
Joshua Ashton
8b70637998
Use VK_FORMAT_B8G8R8A8_UNORM no swizzle for DRM_FORMAT_ARGB8888
...
We use this as an input not as the output so we can just use the DRM format as this exactly with no swizzle.
This format is guaranteed to be supported.
2021-07-23 16:33:22 +02:00
Joshua Ashton
860f4d6384
Use VK_FORMAT_R8G8B8A8_UNORM for DRM ARGB formats
...
DRM formats are not endian-dependent, therefore we should not use the PACK32 formats for this.
2021-07-23 16:33:22 +02:00
Simon Ser
7a55cb80b9
drm: sort mode list for all connectors
...
We'll add multi-output support in the future, so we'll need to pick
a mode for an arbitrary connector.
2021-07-22 16:56:19 +02:00
Simon Ser
e5e0ebf5a4
drm: allow selecting a connector via -O
...
References: https://github.com/Plagman/gamescope/issues/211
2021-07-22 16:50:16 +02:00
Simon Ser
52063b3858
wlserver: improve wlr_session_create error handling
2021-07-22 15:09:10 +02:00
Simon Ser
96346bd5f1
wlserver: remove unnecessary wlr_backend_is_headless check
...
A headless backend will always pass this check.
2021-07-22 15:01:09 +02:00
Simon Ser
ebfdad512f
drm: take struct arg in add_{connectopr,crtc,plane}_property
2021-07-20 21:39:46 +02:00
Simon Ser
11927253d5
drm: remove get_prop_value
2021-07-20 21:36:15 +02:00
Simon Ser
593fe90695
drm: save initial object prop values
2021-07-20 21:32:02 +02:00
Simon Ser
637e5341d4
drm: de-indent loop in find_primary_plane
2021-07-20 21:24:52 +02:00
Simon Ser
b2f016dfe5
drm: drop {crtc,plane,connector}_id fields
2021-07-20 21:21:43 +02:00
Simon Ser
69caa325c4
drm: populate plane/crtc/connector from vectors
2021-07-20 21:21:43 +02:00
Simon Ser
97853e2ecb
drm: stop calling drmModeGetPlaneResources in find_primary_plane
2021-07-20 21:21:42 +02:00
Simon Ser
defd14d39d
drm: make find_crtc_for_connector return a crtc pointer
2021-07-20 21:21:04 +02:00
Simon Ser
d5097e2a21
drm: remove duplicate drmModeGetResources
2021-07-20 21:21:03 +02:00
Simon Ser
70d3dda4d4
drm: stop trying to use previous encoder/CRTC
...
Just pick one, simplifies our logic. Now that we disable all CRTCs
on startup, we don't risk stepping over another connector's.
2021-07-20 21:20:34 +02:00
Simon Ser
c9af23c750
drm: use drmIsKMS to detect KMS-capable devices
2021-07-20 21:20:34 +02:00
Simon Ser
930ceb271b
drm: fetch all connectors, CRTCs and planes on init
...
We need to fetch the props anyways to select the right objects.
2021-07-20 21:20:32 +02:00
Simon Ser
a2ba2b1b5b
drm: fix find_crtc_for_connector error return value
...
The return type is uint32_t so we can't return -1. 0 is a perfectly
fine error guard since DRM object IDs can't have this value.
2021-07-20 19:40:20 +02:00
Simon Ser
0c33a70f11
build: stop linking against math
2021-07-20 18:41:16 +02:00
Simon Ser
b380f3fbf2
drm: allow to switch refresh rate at runtime
...
References: https://github.com/Plagman/gamescope/issues/206
2021-07-20 17:53:38 +02:00
Simon Ser
852d3b12a9
drm: embed drm_t.mode
...
This will allow us to store a custom mode there, instead of a
mode that comes from the EDID.
2021-07-20 17:31:57 +02:00
Simon Ser
127b1b510e
drm: sort modes
...
This allows the best mode to be selected even if a constraint is
specified (such as the width or height).
2021-07-20 16:58:12 +02:00
Simon Ser
a3144601c3
drm: select mode based on g_nNestedRefresh
...
g_nOutputRefresh is not set by CLI flags.
2021-07-20 16:25:54 +02:00
Simon Ser
17edd12b3f
drm: pick mode based on CLI args
2021-07-20 16:14:52 +02:00
Simon Ser
953c5ec377
drm: move mode selection to get_preferred_mode function
2021-07-20 15:59:35 +02:00
Simon Ser
af1ba566ba
drm: remove mode_str and vrefresh args from init_drm
...
We'll change these at runtime, so let's stop taking them as init
args. They were unused.
2021-07-20 15:53:15 +02:00
Simon Ser
a22e9d3c0d
Simplify g_nSubCommandArg logic
...
getopt() will eat the "--" separator if there's one. Rely on the
value of optind after the getopt() loop finishes to figure out
whether a command has been specified.
2021-07-20 13:28:24 +02:00
Simon Ser
97ae60154d
Add 16:9 defaults for -W/-w
2021-07-20 13:10:50 +02:00
Simon Ser
84dd1e6542
Use inodes to compare DMA-BUFs
...
The file descriptions are only equal to each other if the producer
has dup'ed the same FD.
2021-07-05 19:32:26 +02:00
Simon Ser
eb5972ccf6
Bump libliftoff to 0.1.0
2021-07-01 14:38:53 +02:00
Pierre-Loup A. Griffais
9842f2f807
steamcompmgr: fight clients over focus if we have to
...
A client can call SetInputFocus at arbitrary times and some do, like Chrome webviews.
2021-06-29 21:01:55 -07:00
Pierre-Loup A. Griffais
45c801e0ac
steamcompmgr: report input focus as focused app, not necessarily main plane
2021-06-29 19:27:27 -07:00
Pierre-Loup A. Griffais
f7e1cb2e2e
steamcompmgr: fix copy paste error
2021-06-29 19:06:10 -07:00
Pierre-Loup A. Griffais
88596b9645
steamcompmgr: get rid of set_win_hidden
...
The HIDDEN state was originally just a hint for Panorama windows. It can confuse
other clients. The other states can actually be harmful too, like setting
FULLSCREEN was technically incorrect in many cases.
We might want to always set the FOCUS state on every window, but we never needed
it before so I'm inclined to wait and see there.
2021-06-29 17:50:25 -07:00
Joshua Ashton
00622fff62
rendervulkan: Implement NV12 compositing
...
Dependent on latest Mesa for my commit to support unnormalized ycbcr:
855cb78d46
2021-06-29 16:34:07 -07:00
Joshua Ashton
39fff770f4
rendervulkan: Use Vulkan 1.1
...
Less hastle going forward for stuff promoted, and we don't want to be running on stuff that doesn't support this anyway...
2021-06-29 16:34:07 -07:00
Simon Ser
d176770c15
steamcompmgr: add comment about our iconic handling
2021-06-29 19:02:35 +02:00
Simon Ser
f8fbd06af4
steamcompmgr: never put windows in iconic state
2021-06-29 18:35:11 +02:00
Simon Ser
5e201b3c08
steamcompmgr: reject WM_CHANGE_STATE messages
2021-06-29 18:30:26 +02:00
Simon Ser
5b3ea51f7b
drm: disable all CRTCs on startup
...
If the CRTC we've selected is being used on another connector,
our modeset fails.
2021-06-22 16:39:56 +02:00
Simon Ser
3e17ea2e6f
Add enum for g_nTouchClickMode
...
Makes it clearer what the values mean.
2021-06-18 10:44:13 +02:00
Simon Ser
2807bb27c1
Fix NULL g_XWLDpy
...
The previous commit stopped using the X11 server for nudging the
XWM. Thus g_XWLDpy has been dropped. However we still need it to
send XTest events.
2021-06-16 09:17:45 +02:00
Simon Ser
33f207d6a1
Replace nudge X11 events with pipe
...
Avoids the roundtrip through the X11 server. Avoids having to connect
to the X11 server from multiple threads.
2021-06-10 14:49:02 +02: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
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
Simon Ser
cb0eace6d1
Use libliftoff by default
...
Remove the -l option. Introduce a -L option to disable libliftoff.
Don't use the same option to avoid muscle memory issues.
2021-04-22 21:55:22 +02:00
Simon Ser
a99c5f7a1c
Don't set R600_DEBUG=nodcc if Vulkan supports modifiers
...
This can cause issues with Xwayland. Setting R600_DEBUG=nodcc
prevents Xwayland from being able to import DCC buffers coming
from Vulkan clients.
Closes: https://github.com/Plagman/gamescope/issues/185
2021-04-22 19:36:37 +02:00
Simon Ser
3b9f845dad
Unify getopt string
...
De-duplicate its definition, so that we don't forget to update a
string when we update the other.
2021-04-21 14:38:54 +02:00
Simon Ser
910fba1008
rendervulkan: add NV12 support
...
This doesn't yet display correct colors, and tiling artifacts are
visible.
2021-04-20 09:13:10 +02:00
Simon Ser
5f36d1060c
rendervulkan: log supported DRM formats
2021-04-20 09:13:10 +02:00
Simon Ser
b3f3f6c92d
rendervulkan: log whether DRM modifiers are supported
2021-04-20 09:13:10 +02:00
Simon Ser
0aa74266c4
Relax Vulkan import plane check
...
Try to import multi-planar textures even if we don't have a
modifier. This is the case for e.g. DMA-BUFs coming from VA-API.
2021-04-20 09:13:10 +02:00
Simon Ser
be735e9360
Set GAMESCOPE_WAYLAND_DISPLAY
...
This allows gamescope-specific Wayland clients to connect to the
Wayland server, while preventing regular Wayland clients from doing
so.
2021-04-20 09:13:10 +02:00
Simon Ser
a05e5b0a39
Implement gamescope-xwayland protocol
2021-04-20 09:13:10 +02:00
Simon Ser
10816e6ed8
wlserver: adjust assertion in wlserver_surface_set_wlr
...
Make sure we don't overwrite an existing surf->wlr. We don't really
care about the Wayland surface ID here.
2021-04-20 09:13:10 +02:00
Simon Ser
ce0a3f7259
Rename wlserver_surface_set_id to wlserver_surface_set_wl_id
...
Make it clear the ID refers to a Wayland object.
2021-04-20 09:13:10 +02:00
Sefa Eyeoglu
ed44909813
Update wlroots to 0.13.0
...
Update usage of wlr_headless_backend_create,
wlr_renderer_get_shm_texture_formats,
wlr_texture_from_pixels and add missing include for render/egl.h.
2021-04-08 09:15:05 +02:00
Simon Ser
c834999a5f
Introduce wlserver_surface
2021-04-02 08:37:53 +02:00
Simon Ser
4f24653d77
Add support for multi-planar DMA-BUF Vulkan export
2021-04-01 19:06:08 +02:00
Simon Ser
a900bef8b8
Query plane 0 layout with VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT
2021-04-01 18:17:04 +02:00
Simon Ser
ff33a3738e
Query image modifier on Vulkan DMA-BUF export
2021-04-01 18:03:18 +02:00
Simon Ser
b8ab5a74ee
rendervulkan: add support for legacy wl_drm buffers
...
There are still clients (e.g. steam) not supporting modifiers at
all.
2021-04-01 17:41:06 +02:00
Simon Ser
df18c40815
Only advertise scanout capable modifiers
2021-04-01 17:41:06 +02:00
Simon Ser
26a25b1d29
Pass list of modifiers when allocating with Vulkan
...
This allows us to remove the wsi_image_create_info hack when
modifiers are supported.
References: https://github.com/Plagman/gamescope/issues/51
2021-04-01 13:13:38 +02:00
Sefa Eyeoglu
774002483b
fix: update liftoff log initialisation
...
Also: Update liftoff dependency to b08bbaa5e6331ed2
("Split liftoff_log_init into set_handler and set_priority")
The callback parameter was moved into a different method, though it is
not needed in this case as we didn't give it one before.
2021-03-31 14:25:39 +02:00
Pierre-Loup A. Griffais
7dfb55c8a8
steamcompmgr: disable XRes1.2 support by default.
...
Can re-enable it once an XRes release with this fix has been tagged for a bit:
https://gitlab.freedesktop.org/xorg/lib/libxres/-/merge_requests/1?commit_id=3e6bdd90c604e061c71715865eb403ffdd0dd7f0
Or users can use -x for now.
2021-03-30 18:11:27 -07:00
Pierre-Loup A. Griffais
5936baa865
steamcompmgr: make cursor hide time configurable, -C in ms
2021-03-24 20:35:33 -07:00
Simon Ser
8f9a284d32
Print error if poll fails in imageWaitThreadMain
2021-03-12 19:19:25 +01:00
Simon Ser
29d00dbc68
tracing: use {begin,end}_ctx helpers, remove unnecessary newlines
2021-03-11 11:25:34 +01:00
Simon Ser
36c8b983ee
drm: fix missing flag in drmModeAddFB2WithModifiers call
...
That's a nice footgun right here.
2021-03-05 16:04:45 +01:00
Simon Ser
7633401874
drm: check DRM format/modifier prior to addfb2
2021-03-05 14:47:59 +01:00
Simon Ser
f89f585cdd
drm: build set of scanout capable formats
2021-03-05 14:26:30 +01:00
Simon Ser
706bdf849e
drm: store KMS props in a map
2021-03-05 14:18:09 +01:00
Simon Ser
47fed361cd
drm: remove obscure macros
2021-03-05 11:46:59 +01:00
Simon Ser
9f07d66143
drm: whitespace fixes
2021-03-05 11:32:22 +01:00
Simon Ser
1dc98da7d1
Log when tracing is enabled
2021-03-03 16:51:58 +01:00
Simon Ser
ad06b347ee
Always print error on missing DRM_CAP_ADDFB2_MODIFIERS
2021-03-03 16:07:35 +01:00
Simon Ser
0f96db3dc2
Fix is_focus_priority_greater function
2021-03-02 19:16:56 +01:00
Simon Ser
2d992653a0
drm: remove workaround for small buffers
...
Even if we get EINVAL, we'll just return false later on.
2021-02-25 17:21:27 +01:00
Simon Ser
c0fba1fe9f
drm: remove duplicate assert
2021-02-25 17:14:18 +01:00
Simon Ser
29a23e90e1
drm: simplify rotation in drm_prepare_basic
2021-02-25 17:11:36 +01:00
Simon Ser
141f2cf374
Revert "Remove bogus ARGB8888 entry from Vulkan format list"
...
This reverts commit 202915271e
.
We actually need this format for the cursor plane.
2021-02-25 17:11:36 +01:00
Simon Ser
79acc095b2
rendervulkan: assert DRM format is valid when exporting DMA-BUF
2021-02-24 15:07:23 +01:00
Simon Ser
49e0cc046e
Move Vulkan init into main
...
Some Wayland server setup will need Vulkan initialized.
2021-02-22 12:37:56 +01:00
Simon Ser
202915271e
Remove bogus ARGB8888 entry from Vulkan format list
2021-02-22 12:37:52 +01:00
Simon Ser
b37880c62f
Add TODO about multi-planar DMA-BUFs and vkBindImageMemory
2021-02-22 12:37:46 +01:00
Simon Ser
9b63bf755e
drm: initialize handles before drmModeAddFB2WithModifiers
...
This fixes a drmModeAddFB2WithModifiers EINVAL.
2021-02-19 17:41:33 +01:00
Simon Ser
7eb7e8ec63
Don't scale games by default
...
Right now scale games by default to 720p even if the screen is 1080p.
This happens when -w/-h is *not* specified.
Instead, don't scale the game by default. This means using a 720p
window when nested (shouldn't change anything), and using the screen's
resolution when embedded.
2021-02-12 22:16:34 +01:00
Simon Ser
70af2c38f0
Query window PID via XRes
...
References: https://github.com/Plagman/gamescope/issues/17
2021-02-12 22:16:04 +01:00
Simon Ser
0beb34b9d5
steamcompmgr: prefer to focus windows without SKIP_{TASKBAR,PAGER}
...
Closes: https://github.com/Plagman/gamescope/issues/87
2021-02-12 22:15:45 +01:00
Simon Ser
0275e7839d
steamcompmgr: simplify focus logic
...
Use std::sort instead of a complicated loop.
2021-02-12 22:15:45 +01:00
Simon Ser
c26d86a794
steamcompmgr: store SKIP_TASKBAR and SKIP_PAGER hints
2021-02-12 22:15:45 +01:00
Simon Ser
bce006fd70
Fix typo in drm.cpp
2021-02-09 14:55:01 +01:00
Bas Nieuwenhuizen
d537d6ac98
Cherck all imported DMABUFS are equal.
...
Otherwise we need Vulkan support for the disjoint bit.
2021-02-02 23:56:32 +01:00
Bas Nieuwenhuizen
722201c5c2
Support Vulkan modifier-based imports using VK_EXT_image_drm_format_modifier
...
Tested with radv + radeonsi + glxgears on navi21 to work with DCC (assuming
the nodcc bit is disabled).
This is conservative and will fall back to the legacy path if the modifier
isn't supported. At the same time it also avoids the wird mesa WSI struct
if the modifier is supported.
2021-02-02 23:56:32 +01:00