|
High-dynamic range (HDR) is supported by Wayland's Color management and HDR protocol, and some compositors have implemented it. X.org has to support HDR. Requirements HDR-capable GPU and driver Vulkan HDR WSI VK_EXT_swapchain_colorspace and VK_EXT_hdr_metadata extensions are required for HDR support when using the Vulkan API. Users with certain GPUs or drivers may need to use vk-hdr-layer-kwin6-gitAUR to support these extensions. NVIDIA drivers still lack support for VK_EXT_swapchain_colorspace on Linux [2] ENABLE_HDR_WSI=1 can be used to enable the Vulkan HDR WSI layer. Enabling this globally is not recommended. Set this for individual games and applications that will be used with HDR. Compositor configuration KDE Plasma See . Hyprland Ensure hyprland >= 0.47.0 and set the xx_color_management_v4 variable to true. Monitor v1 Append , bitdepth, 10, cm, hdr to the monitor's config line in your Hyprland config file. Note Monitorv2s are declared as such, whereas monitorv1s are declared simply as "monitor" Monitor v2 Add a new line to the monitor's config and add supports_wide_color = 1 supports_hdr = 1Additional settings can be found on the . More information can be found in the and the . GNOME Ensure mutter is >= 48.0. Enable HDR in GNOME's display settings. The HDR toggle is per-monitor and is located next to the resolution and refresh rate setting. Note Gamescope HDR appears "washed out" with GNOME as GNOME lacks scRGB or support for the frog-color-management-v1 protocol [3] [4]. See Gamescope with Steam session Valve's Steam compositor gamescope offers experimental HDR support. Following these steps will allow you to try out Valve's Steam client running through the HDR capable gamescope. Tip An AMDGPU is recommended for use with gamescope - NVIDIA is known to have critical issues. You can now start gamescope from your login manager or a terminal using one of the following steps: Via a login manager Log out and select the Steam Big Picture in your login manager and log in. Via the command line Go to a new TTY by pressing Ctrl+Alt+F2 Log in and run gamescope-session-plus steam to start the standalone steam session in HDR. Configure Steam In the general settings, under Display, you should now see HDR settings. Enable HDR and Experimental HDR Support. Select an HDR compatible game and click on the cog next to it. Set Compatibility to Force Proton 8.0 or Proton Experimental. Set Game Resolution to match your monitor otherwise it will launch at Steam Deck native resolution. Click Play to start the game. Check the in-game settings to see if the HDR setting is available and enable it. To switch back to your normal session, select Power and Switch to desktop mode from the Steam menu. COSMIC The COSMIC developers have promised HDR support in the initial stable release. sway Add render_bit_depth 10 and hdr off to the outputs's config in your sway config file, and start sway with WLR_RENDERER=vulkan environment variable set. Setup a binding to toggle hdr or toggle manually i.e.: swaymsg output DP-1 hdr toggle. Note Needs commit 94c819cc1f9, so sway-gitAUR is needed (or sway 1.12 released) Application configuration Wine/Proton HDR through Wine or requires DXVK (2.1+) or (2.8+), depending on DirectX version used by the game. Tip Use either Proton 8.0+ or Proton GE 44+. All come packaged with sufficient DXVK and VKD3D versions. Without Gamescope To use HDR without gamescope run a build of Wine which includes the Wayland driver. Note Wines native Wayland driver is experimental and may perform better or worse than Xwayland depending on the game. Note PROTON_ENABLE_HDR sets DXVK_HDR=1 . Tip You can also easily install the aforementioned wine builds to Lutris, Bottles, or Steam using protonup-qtAUR. With Gamescope Gamescope with proper HDR requires scRGB and xx-color-management-v4 protocol support or frog-color-management-v1 protocol support in your compositor. Because of this gamescope will not work with the vk-hdr-layer-kwin6-gitAUR layer. Ensure ENABLE_HDR_WSI is not 1. You have many options for using gamescope depending on your desired configuration: Launch Steam with HDR enabled. All games will then have HDR enabled, but Steam and all games will be launched inside a gamescope window. $ gamescope --hdr-enabled --steam -- env DXVK_HDR=1 steamEnable HDR for a single game in Steam. Set the following Launch options: DXVK_HDR=1 gamescope -f --hdr-enabled -- %command%To launch a non-Steam game within gamescope: $ DXVK_HDR=1 gamescope -f --hdr-enabled -- executableNote By default gamescope will launch with 1280x720 resolution. To override the default resolution, use the -W and -H parameters to a desired resolution. RetroArch HDR in RetroArch is supported from version with Vulkan video driver. First, select video driver Vulkan. Then, enable HDR in RetroArch video settings via Settings tab > Video > HDR > Enable HDR. $ retroarchNative SDL To run native games that use SDL with HDR set SDL_VIDEODRIVER=wayland. For example for Quake II RTX: $ SDL_VIDEODRIVER=wayland quake2rtxmpv For best image quality mpv maintainers recommend using the gpu-next video output driver, which is the default. gpu-next supports HDR with --gpu-context=waylandvk, which is selected by default on Wayland. Note This requires a Vulkan WSI with HDR support, see $ mpv --target-colorspace-hint "path/to/video"Other ways of enabling include using the dmabuf-wayland video output and the drm GPU context. $ mpv --vo=dmabuf-wayland "path/to/video"From the tty terminal, one could do (--gpu-context=drm is selected by default) $ mpv --target-colorspace-hint "path/to/video"Firefox firefox introduces working experimental HDR in 138.0 under the hidden preference gfx.wayland.hdr. You can enable it at about:config. Stable HDR is still in progress [9] [10]. Chromium chromium has work-in-progress HDR support [11]. Support has been merged as of version 141.0.7370.0. Troubleshooting HDR video samples Kodi wiki . These can be used to test the HDR output using video players that support HDR such as . Broken screen sharing with HDR10 Pipewire attempts to stream what it sees as BGRA, which WebRTC cannot interpret, due to its current lack of capacity to interpret it. As such, a "ParamId:EnumFormat: 0:0 Invalid argument" exception is thrown and the WebRTC socket crashes for that application [12]. (责任编辑:) |
