Commit graph

1544 commits

Author SHA1 Message Date
Joshua Ashton
7ef68ce050 main, steamcompmgr, shaders: Handle lack of LUTs + add debug for disabling color mgmt 2023-04-23 17:09:40 +01:00
Joshua Ashton
8608821414 drm: Fix drm_supports_color_mgmt checks 2023-04-23 16:53:25 +01:00
Joshua Ashton
50925d9a11 shaders: Fix RCAS colorspace
Closes: #850
2023-04-22 02:46:29 +01:00
Jeremy Selan
64ae944203 updated heatmap_hard appearance 2023-04-21 11:46:43 -07:00
Jeremy Selan
c6d3ac7c05 added Hard heatmap mode
also fixed the heatmap atom parsing
2023-04-20 18:20:58 -07:00
Joshua Ashton
4acf360cc8 drm: Disable BLEND_TF + REGAMMA_TF if single plane
BLEND_TF with de-pq currently introduces very slight banding on bright highlights of PQ content (eg. sun in Ori and the Will of the Wisps)

As a workaround, let's disable BLEND_TF + REGAMMA_TF if we are doing single plane.

Disabling un-necessary blocks is probably a good thing in the long run anyway for multiple reasons.
2023-04-21 01:44:06 +01:00
Joshua Ashton
ff3e3b188c drm: Add some chicken bits for color pipeline 2023-04-21 00:06:58 +01:00
Joshua Ashton
7e37ab2ff6 color_helpers: Remove spaceship operator usage
Isn't liked on clang, simply do == and != =default.
2023-04-20 23:03:17 +01:00
Joshua Ashton
1a7fcf892e docs: Add Steam Deck Display Pipeline graph 2023-04-20 23:03:17 +01:00
Joshua Ashton
57482080e7 steamcompmgr: Track needed XFlush across all change properties events
Then flush at the end of each frame if we need to do an XFlush
2023-04-20 23:03:17 +01:00
Joshua Ashton
c83a36cdaa steamcompmgr: Expose HDR metadata by feedback atom
Also do more robust flushing for any feedback atoms, which should fix some wonkiness.
2023-04-20 23:03:17 +01:00
Jeremy Selan
cfcea1433e steamcompmgr, color_helpers: Added atoms for color gains
GAMESCOPE_HDR_INPUT_GAIN
GAMESCOPE_SDR_INPUT_GAIN
2023-04-20 23:03:17 +01:00
Jeremy Selan
378cfa5b7b properly map g22 -> g22 luminance when forceHDR is enabled 2023-04-20 23:03:17 +01:00
Joshua Ashton
06f00661ac rendervulkan: Fix HDR blur intensity
I really need to change setTextureSrgb true == linear. It's so damn confusing!
2023-04-20 23:03:17 +01:00
Joshua Ashton
2da271d515 shaders: Fix horizontal blur output colorspace 2023-04-20 23:03:17 +01:00
Joshua Ashton
092fccf9a6 rendervulkan: Fix race when updating LUTs 2023-04-20 23:03:17 +01:00
Joshua Ashton
2ad6b0320c shader: Get blur stuff working with HDR and color mgmt 2023-04-20 23:03:17 +01:00
Joshua Ashton
fcc7b7aea3 shaders, rendervulkan: Hook up FSR for HDR 2023-04-20 23:03:17 +01:00
Joshua Ashton
1dd05cf14b shaders: Fix scRGBEncodingToPQ
nitsToPq vs pqToNits, oops! Was passing some insane values here. :-)
2023-04-20 23:03:17 +01:00
Joshua Ashton
e9127576d7 steamcompmgr: Fix crash on override LUT 2023-04-20 23:03:17 +01:00
Joshua Ashton
aaaff2cb16 shaders: Tetrahedral 3D LUT implementation 2023-04-20 23:03:17 +01:00
Joshua Ashton
e806d790f0 drm, steamcompmgr: Don't apply color mgmt twice if compositing 2023-04-20 23:03:17 +01:00
Joshua Ashton
0c980fbb0e color, shaders: Use color mgmt LUT path in shader compute path 2023-04-20 23:03:17 +01:00
Joshua Ashton
c6e232ea8c color_helpers: Clean up EOTF definition 2023-04-20 23:03:17 +01:00
Joshua Ashton
4f9319401b drm: Fix scRGB handling 2023-04-20 23:03:17 +01:00
Joshua Ashton
975c5f4de5 drm: Always use scale_tf 2023-04-20 23:03:17 +01:00
Joshua Ashton
a90e359fc4 drm, steamcompmgr: Initial EDID patching stuff
Initially, patch out rotations atm. We want to do more here and fix up other blocks eventually though.
2023-04-20 23:03:17 +01:00
Jeremy Selan
11bb9f03b9 steamcompmgr: Fix bug where internaldisplaybrightness was not updating when the atom was set 2023-04-20 23:03:17 +01:00
Joshua Ashton
5af08640a7 steamcompmgr: Fix HDR feedback only updating on mode change 2023-04-20 23:03:17 +01:00
Jeremy Selan
359817db3a steamcompmgr: Minor ITM changes 2023-04-20 23:03:17 +01:00
Jeremy Selan
977e06f721 steamcompmgr: Delete GAMESCOPE_DISPLAY_HDR_FORCE_WIDE_GAMMUT_FOR_SDR 2023-04-20 23:03:17 +01:00
Jeremy Selan
5815dc3fb4 steamcompmgr: GAMESCOPE_SDR_ON_HDR_CONTENT_BRIGHTNESS atom should be float, not int 2023-04-20 23:03:17 +01:00
Jeremy Selan
482cc2c874 steamcompmgr: Renamed GAMESCOPE_HDR_SDR_CONTENT_BRIGHTNESS -> GAMESCOPE_SDR_ON_HDR_CONTENT_BRIGHTNESS 2023-04-20 23:03:17 +01:00
Joshua Ashton
b529bba53a steamcompmgr: Add GAMESCOPE_COLOR_APP_WANTS_HDR_FEEDBACK
Tell Steam whether this app is wanting HDR or not.

(Whether it's submitting  HDR buffers)
2023-04-20 23:03:17 +01:00
Jeremy Selan
77095cb553 color_helpers: Refined sdr gamut generation on wide gamut displays 2023-04-20 23:03:17 +01:00
Jeremy Selan
4b4f85f4d1 drm: Added envvar to override internal display colorimetry
GAMESCOPE_INTERNAL_COLORIMETRY_OVERRIDE
2023-04-20 23:03:17 +01:00
Jeremy Selan
60fb2711e1 drm: Additional edid logging 2023-04-20 23:03:17 +01:00
Jeremy Selan
a8a660f7d0 color_helpers, drm: separated eotf from the colorimetry definition 2023-04-20 23:03:17 +01:00
Jeremy Selan
48bd08be88 color_helpers: fix brightness mapping for sdr -> sdr 2023-04-20 23:03:17 +01:00
Joshua Ashton
54486ac5de drm: Fix disabling HDR on an external HDR display since new color toys 2023-04-20 23:03:17 +01:00
Jeremy Selan
c6ce0599f3 color_helpers: Alternate (preferred) check for c++ 2020 2023-04-20 23:03:17 +01:00
Jeremy Selan
039c3228aa steamcompmgr: Use proper EOTF enums for the 3dlut overrides 2023-04-20 23:03:17 +01:00
Joshua Ashton
005bec4495 steamcompmgr: Use index 0 for lut overrides
No more linear now.
2023-04-20 23:03:17 +01:00
Joshua Ashton
38d2f04ba9 steamcompmgr: Fix lut3d output override check 2023-04-20 23:03:17 +01:00
Joshua Ashton
e810317e95 steamcompmgr, drm: Add support for disjoint content and output encoding colorspaces 2023-04-20 23:03:17 +01:00
Joshua Ashton
88f91ab68f color_helpers: Fix undefined EOTF for result 2023-04-20 23:03:17 +01:00
Joshua Ashton
c3feda285b color_helpers: Don't lerp EOTF 2023-04-20 23:03:17 +01:00
Joshua Ashton
be27c87627 color_helpers: Fix EOTF of displaycolorimetry_widegamutgeneric_gamma22 2023-04-20 23:03:17 +01:00
Joshua Ashton
ef7642faae drm: Don't use DEGAMMA_TF + SHAPER_TF when we don't need scaling
Introduces weird banding artifacts rn, ugh.
2023-04-20 23:03:17 +01:00
Joshua Ashton
8a39621d3a drm: Hook up BLEND_TF and stuff for proper space for degamma 2023-04-20 23:03:17 +01:00
Jeremy Selan
2e42bbfa08 color_helpers: WIP on making calcColorTransform PQ aware 2023-04-20 23:03:17 +01:00
Joshua Ashton
90de845cfc steamcompmgr: Fix setting lut override multiple times 2023-04-20 23:03:17 +01:00
Joshua Ashton
15014f401e drm: Fix override LUTs 2023-04-20 23:03:17 +01:00
Joshua Ashton
fc1c9900e1 color_helpers: Fix scaling SDR content, bodge for PQ + 3D LUT for now 2023-04-20 23:03:17 +01:00
Joshua Ashton
a5d00f436c drm, steamcompmgr: Move color mgmt state out of DRM
Want to use this in composite too
2023-04-20 23:03:17 +01:00
Joshua Ashton
a980d912aa drm, color_helpers: Initial support for mixed HDR + SDR planes on both external HDR and fallback SDR when undocked 2023-04-20 23:03:17 +01:00
Joshua Ashton
0f323d63d7 color_helpers: Add pq EOTF math 2023-04-20 23:03:17 +01:00
Joshua Ashton
faee3be9de drm: Move to per-plane 3D LUT + Shaper
Need to do some cleanup here and version checks before merging.
2023-04-20 23:03:17 +01:00
Jeremy Selan
ef41d9f672 color_helpers: Update color math 2023-04-20 23:03:17 +01:00
Jeremy Selan
5ce316fa57 subprojects: Added glm dependency 2023-04-20 23:03:17 +01:00
Joshua Ashton
dc60eba246 color, drm: Initial work on new color mgmt system
Deprecates all other color properties for new color mgmt system using 3D LUTs
2023-04-20 23:03:17 +01:00
Benjamin Cheng
1310315c95 sdlwindow: set icon_surface to nullptr after free
Prevents a double free that might occur if icon_surface is not allocated
in the conditional following the free.
2023-04-07 09:41:00 +02:00
Benjamin Cheng
7d255f1dba sdlwindow: fix HiDPI handling
SDL_GetWindowSize() gives width and height in screen coordinates which
should be used for scaling mouse movements. The output size we should be
rendering should be in pixels which is given by
SDL_GetWindowSizeInPixels().

Fixes #796.
2023-04-07 06:03:50 +02:00
Joshua Ashton
5d9ecd462e drm: Fix issue on kernels without VALVE1_ HDR extensions 2023-03-22 01:21:23 +00:00
Joshua Ashton
f891e3dc4c drm: Add g_bForceDisableTransferFunctions debug switch
Can quickly toggle in GDB for debugging AMDGPU display out
2023-03-19 00:20:41 +00:00
Joshua Ashton
9b5f5f907c shaders: Make blur conditional more obvious 2023-03-18 15:12:29 +00:00
Joshua Ashton
30937177fa rendervulkan: Fix blur with HDR content 2023-03-18 15:11:45 +00:00
Joshua Ashton
b3649f4afa steamcompmgr: Don't treat LAYERED windows as dropdowns if they have WS_EX_APPWINDOW 2023-03-18 14:35:20 +00:00
Joshua Ashton
f541527253 wlserver: Remove accidental debug logging 2023-03-16 23:40:17 +00:00
Joshua Ashton
6e2c06eed8 wlserver: Clean up content overrides on surface destroy + support multiple servers for it 2023-03-16 23:36:51 +00:00
Joshua Ashton
f0fd4e6301 wlserver: Be more robust when changing override windows 2023-03-16 23:23:00 +00:00
Joshua Ashton
5015271ba0 steamcompmgr: Fix crash with nested HDR 2023-03-16 22:44:00 +00:00
Joshua Ashton
251ae8ede3 drm: Cleanup HDR TF + MULT state 2023-03-16 22:18:59 +00:00
Joshua Ashton
06e78f5ed6 drm: Support HDR_MULT for SDR surfaces 2023-03-16 22:18:59 +00:00
Joshua Ashton
2548f3375c drm: Support for HDR with planes with VALVE1_ extension 2023-03-16 22:18:59 +00:00
Joshua Ashton
6f9759ab49 rendervulkan: Add logging to vulkan_acquire_screenshot_texture 2023-03-13 05:28:46 +00:00
Joshua Ashton
7d5a01d9ac sdlwindow: Fix crash on some icon-less windows 2023-03-13 05:28:46 +00:00
Sefa Eyeoglu
5a672f09aa build: update libdisplay-info pkgconfig filename
Fixes Plagman/gamescope#823

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-12 12:28:35 +01:00
Joaquín Ignacio Aramendía
f5edba5853
Add support for DSI internally rotated displays (e.g. GPD)
Co-authored-by: Matthew Anderson <ruinairas1992@gmail.com>
2023-03-10 17:02:51 +01:00
Joshua Ashton
6395e9f3ff sdlwindow: Fix icon loading 2023-03-10 04:03:24 +00:00
Joshua Ashton
66ee6458bb vr_session: fix icon loading 2023-03-10 03:52:30 +00:00
Joshua Ashton
521e294327 vr_session, vblankmanager: Sleep vr vblank manager thread if invisible
Don't framesync or anything when invisible. Put the vblank thread to sleep until visible again with a condition variable.
2023-03-10 03:39:58 +00:00
Joshua Ashton
6e96514c7a vr_session: Add g_bOpenVRForceInvisible debug switch 2023-03-08 03:48:47 +00:00
Joshua Ashton
659e55011f steamcompmgr: Default SDR content brightness to 203 2023-03-06 21:31:11 +00:00
Simon Ser
9a0b7f7341 drm: add support for headless setup
Use a fallback mode size and refresh rate, to avoid surprising
our clients too much and allow screen recording to continue
working.
2023-03-06 20:09:31 +01:00
Simon Ser
95aa255e29 drm: fix return values in drm_prepare() 2023-03-06 19:54:11 +01:00
Sefa Eyeoglu
1331b9f81e vr_session: fix openvr include
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-05 11:05:08 +01:00
Sefa Eyeoglu
b430c5b9a0 build: bump libdisplay-info maximum version
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-05 10:52:56 +01:00
Joshua Ashton
3df0a99cca drm: Only use SDR metadata blob for HDR enabled screens 2023-03-04 18:08:38 +00:00
Joshua Ashton
297245cd7e steamcompmgr: FSR bodges for HDR 2023-03-02 17:55:15 +00:00
Joshua Ashton
280588f1e3 steamcompmgr: Allow scanout for some HDR cases 2023-03-02 17:32:06 +00:00
Joshua Ashton
8480280aad drm,wlserver: Fix lifetime of hdr metadata blobs 2023-03-02 17:18:10 +00:00
Joshua Ashton
06586a6d12 steamcompmgr: Disable tearing if Mangoapp, etc is up (hack)
Avoids bad stutter for now.
2023-03-02 16:32:23 +00:00
Joshua Ashton
140df9a81d HACK: drm: Always send HDR metadata
Can't just set to 0 due to kernel bugs where it will not reset back to SDR.
2023-03-02 16:09:40 +00:00
Newbyte
26831017e9 steamcompmgr: Fix typo in comment
Fixes a3dc37f262
2023-03-02 11:19:46 +01:00
Joshua Ashton
a3dc37f262 steamcompmgr: Add workaround for Disgaea PC (405900)
This app doesn't like using the controller unless its clicked on first.
2023-02-23 05:07:37 +00:00
Simon Ser
9600bbaadf build: bump libliftoff to 0.4.0 2023-02-20 22:07:30 +01:00
Joshua Ashton
2a09fbcb69 steamcompmgr: Replicate EDID path to all servers 2023-02-14 00:57:47 +00:00
Joshua Ashton
b7f5ce94ec steamcompmgr: return server ID in xwayland server feedback 2023-02-11 19:59:09 +00:00
Joshua Ashton
1afea5eb86 steamcompmgr: Add support for growing/destroying xwaylands on the fly 2023-02-11 19:57:32 +00:00
Lilium
57f005716b itm: avoid division by zero for BT.2446 Method A 2023-02-11 18:17:50 +00:00
msxmine
b1254d5340 Check for nullptr connector in drm_prepare
Fixes gamescope sometimes segfaulting for me.
2023-02-11 16:11:56 +00:00
Joshua Ashton
8a3fa88c7d wlserver: Treat XKB_KEY_XF86PowerOff as a forbidden key 2023-02-04 06:21:00 +00:00
Joshua Ashton
b4aff264e4 steamcompmgr: xdg-shell fixes 2023-02-04 06:16:24 +00:00
Joshua Ashton
d3ce381ff4 steamcompmgr: Fix get_win_display_name 2023-02-01 19:53:09 +00:00
Joshua Ashton
ecee87b157 wlserver: Add comment about perf of wlserver_get_xdg_shell_windows 2023-01-25 14:45:58 +00:00
Joshua Ashton
2cbbbb35d9 main: Add --expose-wayland option
Allows basic xdg-shell clients
2023-01-25 14:45:58 +00:00
Joshua Ashton
09bfa644ac steamcompmgr: Support for xdg-shell windows 2023-01-25 14:45:58 +00:00
Joshua Ashton
624bac8eeb steamcompmgr: Add new shared header 2023-01-25 14:45:58 +00:00
Joshua Ashton
552a6ea62a steamcompmgr: Add std::variant structure for window type 2023-01-25 14:45:58 +00:00
Joshua Ashton
b167dfbf94 wlserver: Initial hookup of xdg-shell 2023-01-25 14:45:58 +00:00
Joshua Ashton
f14dc8cfb8 rendervulkan: Fix vulkan_create_texture_from_wlr_buffer for cpu ptr path 2023-01-25 14:45:58 +00:00
Joshua Ashton
95dec879eb steamcompmgr: Move xwayland-specific window properties to structure 2023-01-25 14:45:58 +00:00
Simon Ser
82775c0c15 drm: use libdisplay-info to parse make/model 2023-01-24 12:40:42 +00:00
Joshua Ashton
02134f3b63 wlserver: Fix crash on shutdown 2023-01-24 12:38:11 +00:00
Joshua Ashton
0c80f65e67 steamcompmgr: Remove unused 'mode' var from steamcompmgr_win_t 2023-01-23 02:22:36 +00:00
Joshua Ashton
facdc072fc steamcompmgr: rename win to steamcompmgr_win_t 2023-01-23 02:19:13 +00:00
Joshua Ashton
d6c1df4e52 shaders: Add force wide gammut support to itm 2023-01-20 06:21:16 +00:00
Joshua Ashton
9629d7f6cd steamcompmgr: Fix drawing cursor in VR 2023-01-19 06:30:57 +00:00
Lilium
7bd30dd6d8
add the ability to use inverse tone mapping on apps that output SDR (#751) 2023-01-17 05:37:09 +00:00
Joshua Ashton
5113fa225d vr_session: Hook up icon 2023-01-17 02:35:09 +00:00
Joshua Ashton
9718999e9a steamcompmgr: Only call updatePosition for the active cursor
Avoids a bunch of pointless churn waking up other Xwaylands to query their position.
2023-01-16 23:41:12 +00:00
Joshua Ashton
5347e94226 sdlwindow: Implement icon passthru
Also refactor cursor/title to use shared ptr to avoid dup-ing allocations across to sdlwindow thread.
2023-01-16 23:41:12 +00:00
Joshua Ashton
daf4037b1b sdlwindow: Make sure to free cursor surface 2023-01-16 23:41:12 +00:00
Joshua Ashton
dc498638c3 drm: Hook up "content type" property 2023-01-16 21:49:05 +00:00
Joshua Ashton
5fd65fd5f5 steamcompmgr: Implement --cursor-scale-height 2023-01-16 05:03:08 +00:00
Joshua Ashton
4668680555 steamcompmgr: Initial groundwork for cursor scale 2023-01-16 05:03:08 +00:00
Alex Maese
81a32b85fb Add support for grabbing the keyboard 2023-01-15 23:34:17 +00:00
Joshua Ashton
eff0ac001e wlserver: Add some locking assertions 2023-01-12 17:56:06 +00:00
Joshua Ashton
4281cea0e4 sdlwindow: Add missing lock around wlserver_touchmotion
Closes: #745
2023-01-12 17:46:28 +00:00
Joshua Ashton
bf61af1f82 ime: Fix local_ime segfault
Error in rebasing
2023-01-12 15:07:12 +00:00
Joshua Ashton
c2e9b5f50f sdlwindow: Use fake timestamp instead of passing thru
Fixes Wayland value too large errors.
2023-01-12 01:40:03 +00:00
Joshua Ashton
2d7ec208c4 sdlwindow: Forward cursor in absolute mode to host compositor 2023-01-12 01:29:25 +00:00
Joshua Ashton
86ff9cfc58 main: Fix compilation 2023-01-12 00:55:02 +00:00
Joshua Ashton
054458fdaf sdlwindow: Default to non-relative mouse when a cursor image exists
Add --force-grab-cursor to keep old behaviour
2023-01-12 00:52:38 +00:00
Joshua Ashton
f8e66bf4fb sdlwindow: Refactor user events
Allows us to have more user events, and submit them nicely instead of ugly derping into one big user event.
2023-01-12 00:33:21 +00:00
Joshua Ashton
d3424703a8 steamcompmgr: Load host cursor by default in nested 2023-01-12 00:17:20 +00:00
Joshua Ashton
b124200e36 steamcompmgr: Default to left_ptr from cursor font
Avoids having ugly X cursor by default.

Based in part on #280.
2023-01-12 00:11:04 +00:00
Joshua Ashton
f2a4533cce steamcompmgr: Avoid leaking title in get_win_title 2023-01-11 22:43:19 +00:00
Joshua Ashton
cae9b3efb7 vr: Fix usage of HAVE_OPENVR macro 2023-01-11 21:20:24 +00:00
Joshua Ashton
33f1103155 vr_session: Add Steam UI integration 2023-01-11 21:20:24 +00:00
Joshua Ashton
48d726c72b steamcompmgr: Make get_appid_from_pid more robust
Was some undefined value ptrs going on here, and not checking if the PID stat opened successfully.
2023-01-11 21:20:24 +00:00
Joshua Ashton
f4f0239b31 vr_session: Initial implementation 2023-01-11 21:20:24 +00:00
Joshua Ashton
b0f2b7e89f ime: Add support for local IMEs 2023-01-11 21:20:24 +00:00
Joshua Ashton
1c186cd286 ime: Fix warnings on newer compilers
Should unbreak CI.
2023-01-11 19:19:03 +00:00
Joshua Ashton
201d5feb39 steamcompmgr: Add --force-windows-fullscreen
Useful for browsers or nested desktop environments.

Also adds GAMESCOPE_FORCE_WINDOWS_FULLSCREEN atom per-xwayland.
2023-01-11 19:14:12 +00:00
Joshua Ashton
041ee8dcd8 drm: Simplify some hdr_output_metadata logic 2023-01-11 00:22:47 +00:00
Joshua Ashton
a9541332b7 drm: Set Colorspace+HDR_OUTPUT_METADATA on non-modeset path too 2023-01-11 00:21:58 +00:00
Joshua Ashton
d19872963e steamcompmgr: Support Xwayland resizing in nested 2023-01-07 10:09:46 +00:00
Joshua Ashton
10ca15cc1c steamcompmgr: Handle commit size != window size for layer 2023-01-07 10:02:45 +00:00
Joshua Ashton
5054054768 drm, steamcompmgr: Implement 3DLUT + SHAPERLUT support 2023-01-06 15:54:31 +00:00
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