diff --git a/pages/Configuring/Variables.md b/pages/Configuring/Variables.md index c7613e1..5696e49 100644 --- a/pages/Configuring/Variables.md +++ b/pages/Configuring/Variables.md @@ -367,7 +367,6 @@ _Subcategory `group:groupbar:`_ | swallow_regex | The *class* regex to be used for windows that should be swallowed (usually, a terminal). To know more about the list of regex which can be used [use this cheatsheet](https://github.com/ziishaned/learn-regex/blob/master/README.md). | str | \[\[Empty\]\] | | swallow_exception_regex | The *title* regex to be used for windows that should *not* be swallowed by the windows specified in swallow_regex (e.g. wev). The regex is matched against the parent (e.g. Kitty) window's title on the assumption that it changes to whatever process it's running. | str | \[\[Empty\]\] | | focus_on_activate | Whether Hyprland should focus an app that requests to be focused (an `activate` request) | bool | false | -| no_direct_scanout | Disables direct scanout. Direct scanout attempts to reduce lag when there is only one fullscreen application on a screen (e.g. game). It is also recommended to set this to true if the fullscreen application shows graphical glitches. | bool | true | | mouse_move_focuses_monitor | Whether mouse moving into a different monitor should focus it | bool | true | | render_ahead_of_time | [Warning: buggy] starts rendering _before_ your monitor displays a frame in order to lower latency | bool | false | | render_ahead_safezone | how many ms of safezone to add to rendering ahead of time. Recommended 1-2. | int | 1 | @@ -408,6 +407,14 @@ _Subcategory `group:groupbar:`_ | nvidia_anti_flicker | reduces flickering on nvidia at the cost of possible frame drops on lower-end GPUs. On non-nvidia, this is ignored. | bool | true | | force_introspection | forces introspection at all times. Introspection is aimed at reducing GPU usage in certain cases, but might cause graphical glitches on nvidia. 0 - nothing, 1 - force always on, 2 - force always on if nvidia | int | 2 | +### Render + +| name | description | type | default | +| --- | --- | --- | --- | +| explicit_sync | Whether to enable explicit sync support. Requires a hyprland restart. 0 - no, 1 - yes, 2 - auto based on the gpu driver | int | 2 | +| explicit_sync_kms | Whether to enable explicit sync support for the KMS layer. Requires explicit_sync to be enabled. 0 - no, 1 - yes, 2 - auto based on the gpu driver | int | 2 | +| direct_scanout | Enables direct scanout. Direct scanout attempts to reduce lag when there is only one fullscreen application on a screen (e.g. game). It is also recommended to set this to false if the fullscreen application shows graphical glitches. | bool | false | + ### Cursor | name | description | type | default | diff --git a/pages/Nvidia/_index.md b/pages/Nvidia/_index.md index 46b7a96..b20878f 100644 --- a/pages/Nvidia/_index.md +++ b/pages/Nvidia/_index.md @@ -203,7 +203,8 @@ Wayland, the flickering will likely be solved in the 555 series of Nvidia driver ### Flickering in XWayland games XWayland games may flicker or present frames out-of-order in a way which makes them unplayable. -This is due to the lack of explicit synchronization in older versions of the proprietary driver. +This is due to the lack of implicit synchronization in the driver, and/or flaky explicit sync support +in newer ones. There are a few fixes: @@ -212,11 +213,11 @@ There are a few fixes: These enable explicit sync on the Nvidia driver and should avoid flickering. 2. If your GPU is no longer supported by the 555 driver, install older Nvidia drivers which do not exhibit this issue. The - last ones which would work will be the 535xx series of drivers. These - can be installed on Arch via [these AUR packages](https://aur.archlinux.org/packages?O=0&K=535xx) + last ones which would work will be the 535xx series of drivers. These + can be installed on Arch via [these AUR packages](https://aur.archlinux.org/packages?O=0&K=535xx) -More info about explicit sync is available -[on this blog](https://planet.kde.org/xavers-blog-2024-04-05-explicit-sync/). +3. Try disabling explicit sync. In some select cases, explicit sync may actually cause issues due to the flaky nature of Nvidia drivers. + Set `render:explicit_sync = 0` in your hyprland config. ### Fixing other random flickering (nuclear method)