https://github.com/lauralex/dwm_lut
Apply 3D LUTs to the Windows desktop for system-wide color correction/calibration
https://github.com/lauralex/dwm_lut
clut color-correction desktop-window-manager dll-injection dwm gui-application injector lut monitors privilege-escalation windows windows11
Last synced: 5 months ago
JSON representation
Apply 3D LUTs to the Windows desktop for system-wide color correction/calibration
- Host: GitHub
- URL: https://github.com/lauralex/dwm_lut
- Owner: lauralex
- License: gpl-3.0
- Fork: true (ledoge/dwm_lut)
- Created: 2022-12-30T07:41:10.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-10-25T01:21:48.000Z (over 1 year ago)
- Last Synced: 2024-10-26T14:37:18.557Z (over 1 year ago)
- Topics: clut, color-correction, desktop-window-manager, dll-injection, dwm, gui-application, injector, lut, monitors, privilege-escalation, windows, windows11
- Language: C#
- Homepage:
- Size: 221 KB
- Stars: 248
- Watchers: 8
- Forks: 17
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# A fork of the [original dwm_lut](https://github.com/ledoge/dwm_lut) which works also on **Windows 11**
## [Download latest pre-release (supports Windows 24H2 now)](https://github.com/lauralex/dwm_lut/releases/download/v4.0.2/Release24h2.zip)
If you encounter problems with the 4.0.2 version, download the [3.9.6](https://github.com/lauralex/dwm_lut/releases/download/v3.9.6/Release.zip) version.
## Dependencies
- Visual C++ runtime (https://www.techpowerup.com/download/visual-c-redistributable-runtime-package-all-in-one/)
# About
This tool applies 3D LUTs to the Windows desktop by hooking into DWM. It works in both SDR and HDR modes, and uses tetrahedral interpolation on the LUT data. In SDR, blue-noise dithering is applied to the output to reduce banding.
Right now it should work on any 20H2 or 21H1 build of Windows 10, and also the current build of Windows 11, and I'll try to update it whenever a new version breaks it.
# Usage
Use DisplayCAL or similar to generate .cube LUT files of any size, run `DwmLutGUI.exe`, assign them to monitors and then click Apply. Note that LUTs cannot be applied to monitors that are in "Duplicate" mode.
For ColourSpace users with HT license level, 65^3 eeColor LUT .txt files are also supported.
HDR LUTs must use BT.2020 + SMPTE ST 2084 values as input and output.
Minimizing the GUI will make it disappear from the taskbar, and you can use the context menu of the tray icon to quickly apply or disable all LUTs. For automation, you can start the exe with any (sensible) combination of `-apply`, `-disable`, `-minimize` and `-exit` as arguments.
Note: DirectFlip and MPO get force disabled on monitors with an active LUT. These features are designed to improve performance for some windowed applications by allowing them to bypass DWM (and therefore also the LUT). This ensures that LUTs get applied properly to all applications (except exclusive fullscreen ones).
# Compiling
Install [vcpkg](https://vcpkg.io/en/getting-started.html) for C++ dependency management:
- Create and switch to your desired install folder (e.g. _%LOCALAPPDATA%\vcpkg_)
- `git clone https://github.com/Microsoft/vcpkg.git .`
- `.\bootstrap-vcpkg.bat`
- `vcpkg integrate install`
Just open the projects in Visual Studio and compile a x64 Release build.