[mod:doom2016] Add experimental Vulkan HDR support - #635
Draft
decoded-brain wants to merge 5 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Supported profile
3797201390579243DOOMx64vk.exe>=6.8.0 <6.9.0Full Add-On101,520,384bytes, SHA-256A32DF8FFA042090F14FE0A200F1C5D7DDDF9C947FAC223916C252F826F1ECF11DOOMx64.exe) is not supported.Render path
0xF600527Eexposes the linear scene plus bloom, lens, overlay, and authored color-grade work before the native SDR curve. The game writes this pass to full-resolutionR11G11B10_FLOATtargets.VkGraphicsPipelineCreateInfo.0x49CBC37Freceives scene and GUI separately. The replacement composites the premultiplied GUI in display-light space, applies the selected UI nits, limits the final scene with a hue-preserving soft peak gate, converts to BT.2020, and encodes ST2084/PQ.Tone mapping and settings
Tone-map pipelines are pre-created independently for:
Settings include Auto/Manual Peak Brightness, Game Brightness, UI Brightness, exposure, highlights, shadows, contrast, saturation, highlight saturation, PsychoV cone response, exposure-anchor matching, and vanilla local-slope matching.
PsychoV-30 is derived from the supplied source recorded in the game-local provenance contract (
01E075AB1E9FD79469E160FCD05F54277DE8B47C76CC3C4A425E4DAA7F164F58) and explicitly usescompression = 0. PsychoV-24/P25/P25-NRG retain their recorded RenoDX provenance and license notices.Preset Off restores SDR/Vanilla, manual 203-nit neutral values, and neutral grading settings. Changing the Vulkan output mode still requires a game restart, but switching back to a saved preset now immediately recomputes the effective Auto/Manual peak without requiring the Peak slider to be moved.
Clean upstream history
This branch was replayed directly onto
clshortfuse/renodx:mainat9aaa24e6e5a9ca5d71af94addcac630959d5a176.feature/detroit-unifiedmarat569/renodxor the superseded PR [mod:dishonored2] Add RenoDX support #620 historyCMakeLists.txt,test/CMakeLists.txt,src/games/doom2016/**, andtest/doom2016/**The only shared functionality previously supplied by the Detroit branch was Vulkan-window peak detection. This PR keeps that DXGI monitor enumeration game-local, so it does not modify or depend on shared Detroit utility files. The Steam/GOG compatibility change removes only the executable identity gate and its BCrypt linkage; the shader CRC and native Vulkan pipeline-contract checks remain intact.
Automated validation
Configured from the clean upstream branch with Windows SDK 10.0.26100+, DXC 1.9.2602.17, Slang 2026.14.1, glslang 16.5.0, Vulkan SDK 1.4.357.0, and recursive submodules.
Builds:
Focused DOOM tests:
These cover source/provenance, Steam/GOG metadata/schema, the inspected GOG executable reference, ten embedded Vulkan SPIR-V interfaces/ABI, the absence of executable activation gates, the retained shader/pipeline gates, and the GPU tone-map math harness.
Shared regressions:
These include D3D12/Vulkan resource-upgrade transfer for RGBA8/RGB10A2, clone/copy/bridge fallback, shader injection, Vulkan swapchain proxy barriers, and shader source compatibility.
git diff --checkpassed. All generated addon and test artifacts remain untracked.Runtime evidence and boundary
The source implementation was tested with ReShade 6.8.0.2155 on the inspected GOG executable at 3440x1440. The log confirmed:
HDR10_ST2084Lilium captures followed the configured output peak, including approximately 998-1000 nits for the 1000-nit profile and approximately 3988 nits for a 4000-nit P30 profile.
A Steam user tested a Release probe in live gameplay with only the executable identity block bypassed and confirmed that HDR output and the addon controls work. The production commit removes that gate and its hashing dependency entirely while leaving the proven render shaders, replacement CRCs, pipeline validation, resources, barriers, and output path unchanged. Debug and Release builds plus all focused and shared regression tests pass after the change.
A complete Steam executable hash, fresh Steam ReShade log, and synchronized numeric capture set have not yet been archived in this PR, so it remains Draft.
Known limits
VK_EXT_hdr_metadatais not enabled by the inspected device path, so explicit static HDR metadata is not currently published; RGB10A2/ST2084/PQ output is still used.203 nits ±5%UI measurement is still pending.