Commit graph

1243 commits

Author SHA1 Message Date
Joshua Ashton
dc6d755ada drm: Use 'contains' on map to simplify property code
May as well use C++20 for everything now we need it for the
layer.
2023-01-06 15:25:04 +00:00
Joshua Ashton
67d79cfee7 steamcompmgr: Always composite when debug heatmap is enabled. 2023-01-06 14:21:50 +00:00
Joshua Ashton
d2c14e78b7 steamcompmgr: Fix GAMESCOPE_DEBUG_HDR_HEATMAP 2023-01-06 14:21:50 +00:00
Joaquín Ignacio Aramendía
45c9ffd088
steamcompmgr: add basic handling of system() ffmpeg call 2023-01-05 12:11:42 +01:00
Joshua Ashton
054dcec856 steamcompmgr: Replicate gamescopeHDROutputFeedback to other servers properly 2023-01-05 06:26:33 +00:00
Joshua Ashton
a1bff9fc70 shaders: Fix primaries for scRGB content
Need to go from 709 -> 2020.
2023-01-04 08:40:46 +00:00
Joshua Ashton
da33453174 steamcompmgr: Add GAMESCOPE_HDR_SDR_CONTENT_BRIGHTNESS atom 2023-01-03 14:53:00 +00:00
Joshua Ashton
7251fdd878 shaders: Improved heatmap code frol Lilium 2023-01-03 14:03:06 +00:00
Joshua Ashton
d1fd41fd5b rendervulkan: Apply tonemapping to HDR content on SDR outputs
Also add a debug flag for Reinhard.
2023-01-03 14:02:54 +00:00
Joshua Ashton
905376f036 steamcompmgr: Add GAMESCOPE_DEBUG_HDR_HEATMAP 2023-01-03 12:43:38 +00:00
Joshua Ashton
0c3653d159 color_helpers: Handle naughty clients/EDIDs with more grace
Avoid asserting and simply clamping to deal with broken EDIDs like
on LG OLED panels for now.
2023-01-03 12:14:32 +00:00
Joshua Ashton
d2cc74c570 main: Add heatmap debug to help 2023-01-03 06:00:39 +00:00
Joshua Ashton
eb29ba4af5 main: Add hdr-sdr-content-nits argument 2023-01-02 04:04:15 +00:00
Jan Beich
50d5ea83b6 steamcompmgr: reap children like Linux on some BSDs
DragonFly and FreeBSD adopted a similar API to Linux. Other sytems
maybe interested as well, so add a warning.

src/steamcompmgr.cpp:51:10: fatal error: 'sys/prctl.h' file not found
 #include <sys/prctl.h>
         ^~~~~~~~~~~~~
src/steamcompmgr.cpp:3118:9: error: use of undeclared identifier 'PR_SET_CHILD_SUBREAPER'
        prctl( PR_SET_CHILD_SUBREAPER, 1, 0, 0, 0 );
               ^
2023-01-01 19:40:07 +00:00
Jan Beich
241df252fd main: don't renice as non-root on non-Linux
On BSD systems only the super-user may lower priority values.

meson.build:40:0: ERROR: Dependency "libcap" not found, tried pkgconfig and cmake

src/main.cpp:7:10: fatal error: 'sys/capability.h' file not found
 #include <sys/capability.h>
          ^~~~~~~~~~~~~~~~~~
src/main.cpp:244:2: error: unknown type name 'cap_t'
        cap_t caps = cap_get_proc();
        ^
src/main.cpp:244:15: error: use of undeclared identifier 'cap_get_proc'
        cap_t caps = cap_get_proc();
                     ^
src/main.cpp:247:3: error: unknown type name 'cap_flag_value_t'
                cap_flag_value_t nicecapvalue = CAP_CLEAR;
                ^
src/main.cpp:247:35: error: use of undeclared identifier 'CAP_CLEAR'
                cap_flag_value_t nicecapvalue = CAP_CLEAR;
                                                ^
src/main.cpp:248:23: error: use of undeclared identifier 'CAP_SYS_NICE'
                cap_get_flag( caps, CAP_SYS_NICE, CAP_EFFECTIVE, &nicecapvalue );
                                    ^
src/main.cpp:248:37: error: use of undeclared identifier 'CAP_EFFECTIVE'
                cap_get_flag( caps, CAP_SYS_NICE, CAP_EFFECTIVE, &nicecapvalue );
                                                  ^
src/main.cpp:250:24: error: use of undeclared identifier 'CAP_SET'
                if ( nicecapvalue == CAP_SET )
                                     ^
2023-01-01 19:40:07 +00:00
Joshua Ashton
ba467640a8 shaders: Fix output scaling of heatmap 2022-12-31 10:53:12 +00:00
Joshua Ashton
5b805dda00 rendervulkan: Framework for configurable SDR on HDR content brightness 2022-12-31 10:39:41 +00:00
Joshua Ashton
1fea04e073 steamcompmgr: Fix cached value of ST2084 support 2022-12-31 09:59:18 +00:00
Joshua Ashton
8f0008e3a6 rendervulkan: Add Lilium's HDR heatmap 2022-12-30 03:21:55 +00:00
Joshua Ashton
31c94f8869 rendervulkan: Add HDR heatmap debug + way to force support but not PQ output 2022-12-30 03:21:55 +00:00
Joshua Ashton
c25a368193 rendervulkan: Turn composite debug into flags rather than bool 2022-12-30 03:21:55 +00:00
Joshua Ashton
269bbc8444 rendervulkan: Expose 16161616_UNORM format for surfaces 2022-12-30 03:21:55 +00:00
Joshua Ashton
6bc6a85d6d build: Add options for building layer/executable 2022-12-30 03:21:55 +00:00
Joshua Ashton
a4f30a87ff layer: Only expose HDR formats when gamescope HDR output is enabled and it isn't blacklisted for this app 2022-12-30 03:21:55 +00:00
Joshua Ashton
acf76d6cff steamcompmgr: Add GAMESCOPE_HDR_OUTPUT_FEEDBACK
Exposes whether HDR output is currently enabled.
2022-12-30 03:21:55 +00:00
Joshua Ashton
418a84dfb7 steamcompmgr, rendervulkan: Add force wide gammut option 2022-12-30 03:21:55 +00:00
Joshua Ashton
06c7c3efff drm: Respect connector HDR capabilities 2022-12-30 03:21:55 +00:00
Joshua Ashton
0d86168480 drm: Respect app's HDR metadata 2022-12-30 03:21:55 +00:00
Joshua Ashton
70b74e73be drm: Hook up Colorspace and HDR_OUTPUT_METADATA 2022-12-30 03:21:55 +00:00
Joshua Ashton
b5bb169889 drm, rendervulkan: Hook up composite ST2084 output 2022-12-30 03:21:55 +00:00
Joshua Ashton
24a7c40c47 steamcompmgr, main: Add hdr atoms + startup options 2022-12-30 03:21:55 +00:00
Joshua Ashton
22806541e2 drm: Parse out HDR/colorimetry metadata from EDID 2022-12-30 03:21:55 +00:00
Joshua Ashton
7fffcc813c protocol, wlserver: Add override_window_content2 2022-12-30 03:21:55 +00:00
Joshua Ashton
87b75026f8 protocol: Add set_hdr_metadata to gamescope_xwayland 2022-12-30 03:21:55 +00:00
Joshua Ashton
b83516ed4e rendervulkan: Expose R8G8B8A8 surfaces 2022-12-30 03:21:55 +00:00
Joshua Ashton
a1d5c0583d shaders: Convert primaries for non-HDR10PQ formats when outputting to HDR10PQ 2022-12-30 03:21:55 +00:00
Joshua Ashton
47069426f7 rendervulkan: Handle manual sRGB->Linear for formats without SRGB views
We need these for 1010102 formats.
2022-12-30 03:21:55 +00:00
Joshua Ashton
c2665304c3 rendervulkan: Hook up colorspace mask 2022-12-30 03:21:55 +00:00
Joshua Ashton
49a6c0f451 wlserver, steamcompmgr: Track swapchain feedback per-commit 2022-12-30 03:21:55 +00:00
Joshua Ashton
31e9e4b345 wlserver: Use swapchain feedback for tearing 2022-12-30 03:21:55 +00:00
Joshua Ashton
2aa4791ba0 layer, wlserver: Implement swapchain feedback 2022-12-30 03:21:55 +00:00
Joshua Ashton
49aeaf31b8 rendervulkan, shaders: Support PQ+scRGB colorspaces + HDR10 output 2022-12-30 03:21:55 +00:00
Joshua Ashton
d3aa886373 shaders: Add colorimetry helpers 2022-12-30 03:21:55 +00:00
Joshua Ashton
7009ff4a9a rendervulkan: Expose 16161616F format
For scRGB.
2022-12-30 03:21:55 +00:00
Joshua Ashton
a162024467 rendervulkan: Expose 1010102 formats 2022-12-30 03:21:55 +00:00
Benjamin Cheng
67a908584d sdlwindow: request HiDPI window
If we ask for a HiDPI SDL window on Wayland, we can output
higher-resolution buffers to support the HiDPI case.

Closes: #551
2022-12-28 06:22:12 +00:00
Joshua Ashton
10e4c8d1e7 main: Force disable AMDVLK switchable graphics layer
This layer sucks butts and has done nothing but cause constant problems to me for the past 2 years.

Goodbye!

Closes: #725
2022-12-27 18:28:27 +00:00
Joshua Ashton
f863708a1f steamcompmgr: Disable NV12 screenshot hack
Closes: #716
2022-12-21 11:42:09 +00:00
Simon Ser
9f3e152d13 Wait for POLLIN instead of POLLOUT
POLLIN waits for the buffer to be ready for reading, POLLOUT waits
for writing.

In gamescope we're reading client buffers, so we need to use POLLIN.

We were using POLLOUT to workaround an amdgpu bug, but that got
fixed in kernel 5.15, so shouldn't be necessary anymore.
2022-12-20 10:12:52 +00:00
Simon Ser
bdd08a7b44 rendervulkan: print DRM format name 2022-12-09 13:32:18 +01:00