Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
26f81c8
rdr2: initial commit
mqhaji Sep 11, 2025
4574b93
fix(rdr2): fix tooltips and sliders, clean up addon.cpp
mqhaji Sep 12, 2025
bc68a80
feat(rdr2): add vignette, film grain, recommended settings
mqhaji Sep 13, 2025
9c68414
chore(rdr2/shaders): add unfinished and unused hlslx shader sources f…
mqhaji Sep 16, 2025
16c622c
feat(rdr2): adjust shadows slider behavior
mqhaji Sep 16, 2025
2992a79
feat(rdr2): add preserve shadow detail preset
mqhaji Sep 18, 2025
1d87d7d
feat(rdr2): add more tonemap shaders
mqhaji Sep 18, 2025
4ad7920
fix(rdr2): clamp negatives after tonemap
mqhaji Sep 27, 2025
85f990a
feat(rdr2): add another tm shader (not finished yet)
mqhaji Sep 29, 2025
6446afb
feat(rdr2): overhaul tonemap, color grade, defaults, presets; add gam…
mqhaji Nov 3, 2025
9ac973b
feat(rdr2): overhaul tonemap, sliders, defaults, presets
mqhaji Dec 29, 2025
2599250
rdr2vk: initial commit
mqhaji Feb 25, 2026
5b71ce0
fix(rdr2vk): disable lut gamma encoding with deadeye/eagle eye
mqhaji Feb 26, 2026
0842a26
feat(rdr2): add sliders and finish up shaders
mqhaji Feb 27, 2026
3f627c8
chore(rdr2vk): adjust tooltips and labels, clean up addon.cpp
mqhaji Feb 27, 2026
d180d20
feat(rdr2vk): add calibration shaders
mqhaji Feb 27, 2026
106658c
feat(rdr2vk): fix lut application in eagle eye, add sliders, adjust d…
mqhaji Mar 16, 2026
ee86d12
chore(rdr2): remove abandoned dx12 rdr2 mod
mqhaji Mar 16, 2026
bcf2653
fix(rdr2vk): make sdr lut encoding not rely on sdr brightness slider,…
mqhaji Mar 17, 2026
3b50272
feat(rdr2vk): blend with sdr tm, adjust defaults and grading, remove …
mqhaji Jul 16, 2026
9615be4
feat(rdr2vk): remove hue shift and blowout, run maxch lut compression…
mqhaji Jul 16, 2026
fb96b38
feat(rdr2vk): add RenoDX (Customized), clean up code
mqhaji Jul 16, 2026
9e0a2f5
feat(rdr2vk): rename customized to enhanced and adjust its params
mqhaji Jul 16, 2026
d4af664
feat(rdr2vk): use psychov23 signed opponent retention and stockman lms
mqhaji Jul 16, 2026
4695ed2
feat(rdr2vk): remove luminosity 2.2 emulation, add blowout and hue sh…
mqhaji Jul 16, 2026
078817e
feat(rdr2vk): disable 2.2 with enhanced tm, fix lut encode/decode whe…
mqhaji Jul 16, 2026
266fb03
fix(rdr2vk): fix Purist preset
mqhaji Jul 16, 2026
ec15d0f
chore(rdr2vk): add metadata.json and README
mqhaji Jul 17, 2026
3cabdc9
fix(rdr2vk): skip dead eye and eagle eye shaders
mqhaji Jul 17, 2026
d5898de
fix define name to use RDR2VK
mqhaji Jul 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 105 additions & 0 deletions src/games/rdr2vk/README.MD
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# Red Dead Redemption 2 (Vulkan)

## Requirements

- Vulkan renderer
- Exclusive Fullscreen
- HDR enabled in Windows and in game
- 64-bit ReShade with addon support

## Tone-mapper defaults

The default **RenoDX (Enhanced)** tone mapper is anchored to RDR2's original tone-curve inflection while using perceptual highlight compression and slightly raised shadows. This is intentional: the more conservative **RenoDX (Vanilla+)** mode with 2.2 EOTF emulation more closely preserves the original look, but can appear excessively crushed.

Use **Preset Off** for the native game path or **Purist** for the Vanilla+ presentation.

## Compiling the shaders

RDR2's Vulkan shaders use the custom SPIR-V entry point `VkMain` instead of `main`. The repository's normal shader build does not compile these GLSL sources, so the committed `.spv` files must be regenerated with the included script before building the addon.

1. Install Vulkan SDK `1.4.313.0` to `C:\VulkanSDK\1.4.313.0\`.
2. Run `compileglsl.cmd` from `src\games\rdr2vk`.
3. Build the `rdr2vk` CMake target normally.

The script finds each immediate subfolder containing `.glsl` files, compiles shader files whose names contain a shader hash, and writes each generated module to that source folder's `compiled` subfolder. Shared include files without a shader hash are reported as skipped.

The script invokes `glslangValidator.exe` with:

```text
-V --target-env vulkan1.3 --source-entrypoint main -e VkMain
```

`--source-entrypoint main` selects the GLSL source function, while `-e VkMain` writes Rockstar's required entry-point name into the generated SPIR-V module.

Full script:

```cmd
@echo off
setlocal EnableDelayedExpansion

set "GLSLANG=C:\VulkanSDK\1.4.313.0\Bin\glslangValidator.exe"

if not exist "%GLSLANG%" (
echo ERROR: glslangValidator.exe was not found at:
echo %GLSLANG%
echo Install Vulkan SDK 1.4.313.0 or update GLSLANG in this script.
exit /b 1
)

pushd "%~dp0"

set /A "FOLDER_COUNT=0, COMPILED_COUNT=0, SKIPPED_COUNT=0, FAILED_COUNT=0"

echo Compiling RDR2 Vulkan shaders with SPIR-V entry point VkMain...
echo.

REM Compile every immediate subfolder containing GLSL shaders. Generated SPIR-V
REM is written to a compiled subfolder beside the corresponding shader sources.
for /D %%D in (*) do (
if exist "%%D\*.glsl" (
set /A "FOLDER_COUNT+=1"
set /A "FOLDER_COMPILED=0, FOLDER_SKIPPED=0, FOLDER_FAILED=0"

echo === %%D ===
echo Output: %%D\compiled

if not exist "%%D\compiled" mkdir "%%D\compiled"

pushd "%%D"
for %%F in (*.glsl) do (
echo %%~nF | %SystemRoot%\System32\findstr.exe /R /I "0x[0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F]" >nul
if errorlevel 1 (
echo SKIP %%F ^(no shader hash in filename^)
set /A "SKIPPED_COUNT+=1, FOLDER_SKIPPED+=1"
) else (
set "BASE=%%~nF"
set "OUT_NAME=!BASE:*0x=0x!"
echo COMPILE %%F
"%GLSLANG%" -V --target-env vulkan1.3 --source-entrypoint main -e VkMain -o "compiled\!OUT_NAME!.spv" "%%F"
if errorlevel 1 (
echo FAILED %%F
set /A "FAILED_COUNT+=1, FOLDER_FAILED+=1"
) else (
echo OK compiled\!OUT_NAME!.spv
set /A "COMPILED_COUNT+=1, FOLDER_COMPILED+=1"
)
)
)
popd

echo Folder summary: !FOLDER_COMPILED! compiled, !FOLDER_SKIPPED! skipped, !FOLDER_FAILED! failed
echo.
)
)

echo === Shader compilation summary ===
echo Folders: !FOLDER_COUNT!
echo Compiled: !COMPILED_COUNT!
echo Skipped: !SKIPPED_COUNT!
echo Failed: !FAILED_COUNT!

popd

if !FAILED_COUNT! GTR 0 exit /b 1
exit /b 0
```
Loading
Loading