Sharp Filter Selector is a Decky Loader plugin that controls Gamescope's Sharp scaling filter from the Quick Access Menu. On recent Gamescope builds it keeps native SGSR as the default Sharp path and provides explicit overrides for AMD FSR and NVIDIA NIS.
- Detects SGSR support from the Gamescope process that owns the active Xwayland session.
- Preserves native Sharp behavior: SGSR for SDR input and Gamescope's FSR fallback for HDR input.
- Provides explicit Use NIS and Use FSR overrides when supported.
- Provides a shared 0–5 sharpness control for explicit FSR/NIS operation.
- Keeps multiple Gamescope Xwayland roots synchronized.
- Leaves Steam/QAM scaling mode (
Auto,Fit,Integer,Stretch) under QAM control; filter selection never changes the scaler on Ubuntu. - Remembers explicit plugin selections without performing passive writes during frontend initialization.
- Does not patch, replace or install Gamescope.
- Decky Loader.
- An active Gamescope/Xwayland gaming session.
xpropavailable on the host.- A game rendered below the output resolution for scaling-filter differences to be visible.
SGSR support depends on the running Gamescope build. When SGSR is not available, the plugin keeps the compatible FSR/NIS behavior.
- Download
sharp-filter-selector-v1.0.0.zipfrom the latest GitHub Release. - Extract it; the archive contains one
sharp-filter-selectordirectory. - Run the included installer:
cd sharp-filter-selector
./install.shThe default destination is:
~/homebrew/plugins/sharp-filter-selector/
Reload Decky Loader or restart Steam/Gaming Mode after installation. A custom test destination can be selected without root:
DECKY_PLUGIN_DIR=/path/to/plugins/sharp-filter-selector ./install.shTo uninstall:
./uninstall.shgit clone https://github.com/N3ruk/Sharp-Filter-Selector.git
cd Sharp-Filter-Selector
./install.sh- Start a game in a Gamescope gaming session.
- Open Quick Access Menu → Decky Loader → Sharp Filter Selector.
- Leave both overrides disabled for Gamescope's native Sharp filter.
- Enable Use NIS for NVIDIA Image Scaling.
- On SGSR-capable builds, enable Use FSR for an explicit AMD FSR override.
- Adjust Sharpness from 0 to 5 when using explicit FSR or NIS.
Only one explicit override can be active. The status line reports the effective engine and the Gamescope targets that were updated.
The backend discovers active Gamescope/Xwayland displays from process ancestry and environment data. Xwayland server 0 is treated as the QAM authority. Its valid scaler and filter values are mirrored to sibling roots without changing the scaler selected by QAM.
On Gamescope 3.16.29+ the historical QAM Sharp value 2 is translated to native
SGSR selector 5 when the active Gamescope advertises SGSR. Explicit plugin
overrides retain NIS selector 3 or FSR selector 2.
The plugin retains its validated multi-Xwayland discovery and explicit LINEAR → NIS transition, while also supporting native SGSR and explicit FSR on compatible Gamescope builds.
The restriction is HDR input, not merely an HDR-capable output. If the application supplies HDR input, Gamescope uses its FSR fallback for native Sharp. An HDR output carrying SDR input can continue using SGSR.
Version 1.0.0 was validated on Ubuntu 26.04 Gaming Mode with Gamescope 3.16.30, an NVIDIA RTX 2060, multiple Xwayland roots, 4K output and VRR. The validated paths include native SGSR in SDR, explicit FSR, explicit NIS, HDR fallback reporting and all QAM scaling modes.
Other systems require compatible Gamescope properties and xprop. SteamOS
support is retained but should be validated against the installed Gamescope and
Decky versions.
No Gamescope targets were found
Use the plugin inside an active Gamescope gaming session and ensure xprop is
installed.
The filter changes but the image looks the same
Gamescope must actually upscale. Render the game below the final display resolution.
Native Sharp reports FSR instead of SGSR
This is expected for HDR application input, or when the running Gamescope does not advertise SGSR support.
The QAM scaling mode does not change the image
This plugin does not own that mode. Verify the running Gamescope and the QAM integration; filter selection deliberately does not overwrite the scaler.
npm install
npm run build
npm run packageThe package command creates:
release/sharp-filter-selector-vX.Y.Z.zip
release/sharp-filter-selector-vX.Y.Z.zip.sha256
The ZIP includes the compiled runtime, source frontend, portable installer and uninstaller, README files, changelog and license.
Release packages use the validated dist/index.js committed to the repository.
Because Decky build dependencies can change their generated loader wrapper,
review and test a fresh npm run build before replacing that validated bundle.
BSD 3-Clause. See LICENSE.
Built for Decky Loader and Gamescope. FSR, NIS and SGSR are their respective owners' technologies. This independent community plugin is not affiliated with or endorsed by Valve, AMD or NVIDIA.
See AI_DISCLOSURE.md for the project's AI-assistance provenance.