Minecraft Dungeons II — UE Extended HDR findings and measurements #689
Replies: 6 comments
Temporal-rendering follow-up — 1 October 2026The HDR setup above remains the working baseline. No DLAA, DLSS SR or frame generation is installed for normal play. Validated privately: a small ReShade observer copied colour, depth, velocity, exposure and view constants at the original TAA pass, before pooled resources could be reused. NVIDIA NGX created and evaluated a 3840×2160 DLAA feature on saved input sequences. Every output was checked for finite values and replacement of a seeded sentinel; colour upload/readback matched the source bytes. GPU motion-vector conversion was checked against a CPU reference. A useful interop finding: a mixed raw-device/raw-descriptor route returned evaluation success but left output untouched, with CUDA descriptor errors. Initializing through the existing ReShade device proxy and recording through its wrapped command list, then unwrapping only for queue submission, produced actual output. This is evidence for this specific ReShade 6.8.0 / Proton / NVIDIA configuration, not a general driver fix. No binary patch was used. Quality remains mixed: on the same 32-frame stationary sequence, after history warm-up, paving-edge frame variation fell about 59% versus native TAA, with about 3% lower spatial edge gradient. The canopy/goods region instead had about 33% greater edge variation. These are local signal diagnostics, not perceptual quality scores or real-time performance results; capture stalls and evolving lighting limit interpretation. The next source check compared frames with exactly repeated eight-frame jitter, normalized by captured pre-exposure. The canopy region still changes before AA while its same-phase depth is unchanged. That establishes an upstream colour contribution, but does not yet distinguish direct shadows, indirect lighting, reflections or intentional lighting animation. It does not support a moving-canopy/missing-vector diagnosis in this capture. Further validation: the insertion point passed 66 native-TAA output copy round trips (33 menu, 33 gameplay), with before/after bytes identical and the original dispatch executed once. This validates that copy path; live NGX substitution is still untested. On the same saved sequence, explicitly undoing the captured pre-exposure before NGX and restoring it afterward closely matched the current pre-exposure input (median RGB difference about 0.03% in the inspected regions). Unity/automatic exposure did not establish a quality gain. A separate input defect was found on moving NPCs: two stationary-camera captures showed changing NPC depth but entirely zero packed object-velocity textures. An isolated SR contract and runtime: a genuine reduced-render trial produced 2560×1440 pre-AA colour, depth and motion with 3840×2160 RGBA16F history/output; all 32 adjacent output/history identities matched. Owned-resource NGX Quality-mode replay passed 32/32 evaluations, full finite/sentinel checks and exact colour-upload checks. Its output was never inserted into the game. This path uses an 18-frame jitter cycle. A short paired comparison with native TAA upsampling from the same inputs was mixed: lower mean static-edge fluctuation in several crops, but larger tail errors in some. It is not a native-4K accuracy or performance comparison. Disabling Lumen GI or screen-probe screen traces did not establish a repeatable awning fix after reversal testing; normal lighting settings were restored. Command-stream integration: a separate root/heap restoration test passed 66/66 paired native SR outputs across menu/gameplay. Changing only NGX evaluation to the raw command list caused an exit before any result; the matched wrapped control reproduced its reference outputs byte for byte. This is a configuration-specific constraint, not an established general driver defect. A subsequent bounded test evaluated a fixed owned input fixture on the actual wrapped game command stream. All four evaluations (two menu, two gameplay) succeeded; complete owned outputs matched the earlier reset-fixture replay byte for byte, and native AA outputs before/after restoring actual NGX state changes were byte identical. Native AA remained displayed. Current game inputs, continuous histories and display replacement remain untested; the private version-pinned proxy adapter is not release code. A 33-frame moving-camera SR capture also validated resource/history identities. Encoded backward vectors beat zero and reversed motion in all 32 sampled, depth-consistent adjacent-frame comparisons, supporting direction and input-resolution scale. This is correspondence evidence, not a visual-quality/performance claim; disocclusion and wider geometry coverage remain open. The original HDR setup was restored byte for byte and the observer removed after testing. |
Current-input SR and RT feasibility update — 2 October 2026New trials use Steam build 25647713 / UE 5.6.1; the earlier build's results remain historical. This supersedes the previous comment's “live inputs/history/display untested” status. The environment caveat in the original post still applies. Live SR: four paired current-GPU-input evaluations validated exact colour/depth copies, motion conversion and exposure, with native AA before/after state restoration byte identical. Five continuous NGX runs then passed 120 / 120 / 600 / 600 / 120 frames. Every frame passed all-pixel finite/depth/motion/exposure/sentinel checks. Diagnostic readbacks drained afterward; they did not supply reconstruction textures. Exact submission-queue identity was validated in the later runs. Two 600-frame trials displayed 895 NGX frames total, before the existing HDR/UI stages. First-frame and explicit reset, manual native fallback, re-enable and automatic end fallback worked. Native AA still runs alongside SR; copying into its output also affects subsequent native history, so independent fallback-history parity remains unproven. Full transition/resolution/device reset coverage and controlled native-4K quality comparisons remain open. This private version-pinned proxy adapter is not release code. GPU stage medians in the world display trial were 1.463 ms NGX, approximately 0.218 ms copies/conversion/display copy, and 2.134 ms total instrumented native-AA-plus-SR path. Instrumentation remains active: these are not clean FPS or optimized replacement-cost results. RT/RR boundary: four baseline samples total 960 frames, with no observed AS builds, ray dispatches, AS descriptor updates or RT pipeline shader subobjects. All 7,075 exposed shader creations disassembled without ray-query/trace-ray/AS-resource hits; this covers sampled menu/hub rendering, not every cooked permutation. Requesting RT first required compiled skin-cache support. Supplying it reached missing global shader FTransferFunctionOidnCS, permutation 0. Disabling path tracing and a matched observer-free control reproduced the same startup failure. No assertion/binary bypass was attempted. RR-compatible noisy radiance and complete material guides remain unvalidated; no RR or FG evaluation was added. The original four-component HDR baseline was restored byte for byte and reached gameplay without the observer. No raw captures, game bytecode, account/authentication data or workaround binaries are attached. |
Lean SR replacement and active-viewport fix — 2 October 2026This supersedes the previous prototype's native-AA-plus-SR path. Steam build 25647713, RTX 4080 SUPER, driver 615.71.09, official DLSS runtime product version 310.9.1.0. The original environment caveat still applies; this is private rendering evidence, not a released addon or supported Proton configuration. Normal path: borrow the current colour/depth/velocity inputs, run one motion/depth/exposure conversion dispatch, write NGX directly into the game's temporal output, and skip native temporal AA on successful frames. No colour/output copies, sentinel seeding, pixel validation/readback or per-frame metadata in normal operation. Existing HDR/UI stages remain downstream. Correctness finding: custom scales expose padded scene allocations. At 83%, allocation 3188×1796 contains an active 3188×1793 viewport; at 77%, 2960×1664 contains 2957×1664; at 58%, 2228×1256 contains 2228×1253. Treating allocation dimensions as the rendered image caused a repeatable bright edge with SR, removed by native fallback. The correction cross-checks the native viewport against its UV transform, supplies NGX's render subrectangle/bases, and converts jitter/motion using the active extent. Menu/town tests now remove the corrupt edge; selected full outputs are finite throughout. No clamping hides it. NGX subrectangle API. Recovery: three controlled same-frame tests varying native old history (zero versus bright) produced byte-identical native output with an owned reset constant buffer; the game buffer was not modified. Loading dummy inputs fall back and resume automatically. An injected pre-evaluation failure at reduced resolution used native reset, then reset/resumed NGX on the next frame. Resize/recreation, menu↔town, and town→discovered station→town fast-travel tests passed. Resource retention grew across travel; distinct dungeon levels, death/cuts and long sessions remain unqualified. Application pacing in one stationary town scene, 4K output:
Actual menu VSync Off / limit None; sharpening off, lighting/HDR fixed. Each run retains 1,195 interior presentation intervals, with no GPU queries or pixel readbacks during timing. Addon tracking remains active in both arms. Quality had a native→Quality→native reversal; custom scales use that earlier baseline and animated scenery limits cross-launch comparisons. These are application intervals, not isolated GPU cost or general FPS/visual-parity claims. Different NGX quality modes also limit interpreting this as a pure resolution curve. 50% offered no extra pacing gain here. No recommended SR preset follows yet. A second saved-town scene independently repeated native→Quality→native: native medians 9.654–9.695 ms, Quality 7.654–7.660 ms (~20.9% lower application interval). Its scenery differs from the table and was kept separate. Release blockers remain private ReShade proxy access, fence-based resource retirement, device cleanup and broader temporal/lifecycle validation. No FG/RR or alternative-provider support is claimed. Only derived findings are included here; no captures, game bytecode, account/authentication material or workaround binaries. The working HDR configuration has been restored and the temporary observer removed. |
SR lifetime and cleanup follow-up — 2 October 2026Same private ReShade 6.8.0 / Proton / NVIDIA prototype and environment caveat as above. These changes are not release qualification, and the previous pacing numbers do not transfer automatically to this candidate. Resource lifetime: recorded command lists retain immutable binding bundles until their recording is replaced/destroyed; submission alone does not end ownership because lists can replay. Retired bundles require a completed queue fence. Destruction happens outside the observer mutex. A town→station→town test, off/on and injected fallback passed: 82,925 evaluations, zero contract failures, peak six live bundles; stop drained every bundle/recorded owner. An earlier candidate hung in initial loading; subsequent passes do not establish its root cause. Fallback reset: each native-history reset now gets a fresh immutable upload with the same replay/fence ownership. GPU idle alone was insufficient permission to overwrite the earlier upload. Six gameplay off/on cycles passed after removing that reset's blocking idle wait; each off phase drained to zero. Injected fallback recovered/reset NGX on the following frame. Generation cleanup: detach under the mutex, then perform a bounded GPU-completion check and NGX/COM cleanup after unlocking. Keep device references alive through shutdown. Gameplay cleanup completed after 64,635 evaluations with zero failures; feature release, parameter destruction and device-scoped shutdown succeeded, followed by successful reinitialization in the same session. Recovery and restarted output snapshots were finite throughout; temporal/perceptual parity is still unqualified. Specific interop finding: a controlled post-feature-creation initialization failure cleaned up its GPU work/feature/parameters, but A separate owned DIRECT-queue probe created a feature with zero evaluations/game inputs. Actual queue destruction triggered successful completion/cleanup with zero recorded owners and no generation remaining. This qualifies that empty-ledger path only; gameplay queue destruction, device loss and multi-queue/shared-client behavior remain unqualified. Window closure did not expose the gameplay queue callback. Supported interop, longer sessions, remaining transitions, fresh candidate pacing and visual parity still block release. The normal HDR baseline is restored and the observer removed. Only derived findings are posted. For maintainers: is there a supported way to obtain the existing wrapped D3D12 device/command list from addon API objects? Our current adapter depends on private implementation details. References: NGX feature release/shutdown guidance, ReShade queue callback ordering. |
Fresh pacing, HDR ceiling and resize checks — 2 October 2026The replay/fence lifetime and cleanup candidate from the previous comment now has a fresh native → Quality → native comparison. Same build 25647713, RTX 4080 SUPER / driver 615.71.09 / DLSS runtime 310.9.1.0; the original environment caveat still applies. In one stationary outdoor outpost, with the camera/loadout verified across launches:
Quality shortened the mean median interval by about 20.6% / 1.93 ms; the native return differed by 0.66%. DLAA added about 1.39 ms in the same session. Actual video settings were VSync Off / limit None / borderless. Each sample retains 1,195 interior intervals, without GPU queries, readbacks, screenshots or character movement during timing. Animated lighting/NPCs limit cross-launch matching. These are application intervals, not isolated GPU cost, general performance claims or a visual-parity verdict. HDR: fifteen private post-compositor captures across native, DLAA, Quality and native returns preserve the same approximately 408.9-nit maximum-channel signal, with no captured channel exceeding the retained 410-nit target. This checks the digital HDR ceiling; motion quality, highlight detail and artistic accuracy remain separate gates. Resize: 4K borderless → 1920×1080 windowed → 4K borderless recreated SR at the observed 1280×720 and 2560×1440 inputs. Both resumed with zero recorded contract failures; the returned full 4K output was finite throughout. Three subsequent pacing sessions stopped with successful GPU completion/release/shutdown, zero remaining binding owners, normal process exit and verified restoration of the original graphics files. Initialization follow-up: a separate candidate removes our redundant creation-time queue-idle wait and unused allocator/list reset. The dedicated creation list is submitted on the validated evaluation queue and retained until generation completion. Controlled post-creation failure cleanup, an empty owned-queue destruction probe, gameplay travel, three off/on cycles, injected fallback and in-session reinitialization passed. Three full 4K linear snapshots were finite at every pixel. This candidate has no new pacing qualification. A stale pre-cleanup terminal status was caught by the restore check; status emission was corrected separately. The recheck passed hub→menu→hub, two orderly generation stops with zero final tracked objects, and successful in-session restart. The original graphics files are restored and the inspection addon removed. Compiler-bridge follow-up: separate controls now call active NGX parameter Set/Get methods through a Microsoft-ABI compiler bridge against the official SDK; queried optimal/min/max inputs match the previous adapter. ReShade resource/view descriptor calls use the same approach with a load-time structure size/alignment check. Both candidates passed scoped initialization cleanup, gameplay, off/on, injected fallback, restart, finite full-4K output and orderly terminal cleanup, with the original files restored. These changes remove manual virtual-method/return-value arithmetic from those active calls, but do not remove private D3D12 wrapper retrieval or qualify shared-client/device-loss behavior. The ReShade backbuffer bridge has compile-only coverage. No new pacing or temporal-parity claim is attached to these candidates. Dungeon lifecycle recheck — 3 October: the compiler-bridge candidate completed fast travel, dungeon entry and return in one fresh session: 152,574 evaluations, zero failures, peak six binding bundles. Three full-4K linear-output snapshots were finite at every pixel. GPU completion, feature/parameter release and device shutdown succeeded; the terminal receipt had zero remaining owners and clean native fallback history. Normal exit and original-file restoration passed. An earlier overnight-interrupted run is excluded from cleanup/continuous-session qualification. Death/respawn, cinematic cuts, temporal/perceptual parity and fresh pacing for this candidate remain open. Public-native interop isolation — 3 October: an owned standalone test now reproduces the release blocker without game assets or an account prefix. Ordinary native GPU copies pass with and without stock ReShade. A generated texture’s native CUDA descriptor lookup passes until Private proxy interoperability and broader transition/temporal coverage still block release. No addon release, FG/RR, alternative provider or recommended reconstruction preset is claimed. Only derived findings are included; no raw logs, captures, game bytecode, account/authentication material or workaround binaries are attached. |
|
Small release update: MCD2 Graphics v0.1.0-preview.1 is now available, with DLSS SR/DLAA controls and linked render-scale presets in the game's Video menu. Nexus page and installation. Experimental, offline single-player only; tested on Proton Experimental / RTX 4080 SUPER. The original Linux environment caveat still applies. Windows remains unqualified for this preview; the newer Windows-fix candidate is held after an NVIDIA regression. RenoDX UE Extended HDR remains a separate manual setup, with credit to Marat and the RenoDX contributors. These are actual preview screenshots, captured in SDR from an HDR desktop, not HDR measurements or a matched quality comparison. |


Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Sharing preliminary rendering compatibility evidence for Minecraft Dungeons II, tested 30 September 2026. Credit for the functioning addon belongs to Marat and the RenoDX/UE Extended contributors. This is a configuration and measurement report, not a new bespoke addon or an official support claim.
Scope caveat: A separate unsupported runtime/authentication workaround was needed to reach gameplay on Linux. It is intentionally excluded and is not recommended by this report. These results cover HDR rendering after gameplay was reached; they do not establish supported end-to-end Proton compatibility. Replication on Windows or a standard supported runtime would be particularly useful.
Tested environment
renodx-ue-extended.addon64, version v0.2026.928.2048.6fec7705c04891481ba70beb18ed1342dafd25c630894ba21e1303989670b6e4.410 nits is the retained software target for this display setup, not a measurement with a light meter or a universal preset. Set peak brightness for your own display/mode.
Working HDR configuration
The Unreal HDR output path was enabled through Engine.ini:
UE Extended uses the HDR path (
Set_Path=0, upgrade path off); resource upgrades remain off. UE Filmic Extended, AP1 scaling, 410 peak / 203 game white / 203 UI white, neutral grading, gamma-2.2 correction enabled, vanilla grain and sharpening 0.Live logs recorded successful replacement pipeline construction for:
0xABDEE5BF0x378DF900The inspected replacements use a 132-byte injected settings buffer. The captured native route was LUT → scene tonemap/bloom/local exposure → FXAA → HDR10 compositor. This confirms activation of the relevant replacements, beyond recognizing the hashes statically.
Digital HDR measurements
33 native ReShade HDR screenshots were compared with the overlay hidden: 15 menu frames and 18 gameplay frames. Bright fire effects exceeded the 203-nit reference white.
The highest measured fire-region luminance during sharpening was 451.538 nits; the highest individual channel anywhere in the frame was 460.197 nits. These are distinct measurements. Overshoot was sparse, not a global brightness increase. UI value 10 is not a linear 10% filter strength. For this target, sharpening was left off.
LMS and its hue-restoration settings 0/50/100 were functional and changed colour/gamut behaviour. Menu fire peak luminance was about 331–337 nits with AP1 versus 342–344 with LMS. No official HDR grading reference was available, so this does not establish that either mode is more faithful. AP1 was retained.
The exact installed LUT replacement reads neither injected float index 16 (LUT strength), 17 (LUT scaling) nor 18 (scaling method). Those sliders therefore cannot alter this captured active shader. This is specific to the inspected replacement, not a claim about every shader variant or scene. No black-floor modification was justified from the captures.
Screenshot decoding and limits
The PNGs are 16-bit RGB, cICP
[9,16,0,1](BT.2020 / PQ / full-range RGB). All captured channel values had their lower six bits zero: original 10-bit values were stored shifted left six bits. Analysis recovered(value >> 6) / 1023before ST 2084 decoding. Normalizing the stored values directly by 65535 slightly understates brightness. PQ code 670 decodes to 408.887936 nits, explaining the baseline's small gap below 410 and agreeing with the earlier live Lilium analysis.An earlier live peak reduction from 410 to 203 produced a maximum channel signal of 202.9121 nits, close to PQ code 594 (202.91510 nits). The ceiling responds to the RenoDX peak control.
Offline evaluation of the installed compositor preserved tested scene values within approximately 0.01 nit/channel; opaque white UI evaluated near 203.003 nits. This was a limited float32 CPU approximation, not a complete GPU test. Its UI blending differs from the native linear blend and merits comparison.
Animated flames, clouds, NPCs and day/night lighting prevent an identical-frame visual comparison. AP1 was repeated after LMS; sharpening was disabled again after its trial. Shadow averages across changing lighting should not be treated as accuracy scores. These are decoded signal nits, not physical panel luminance, a performance benchmark, or proof of an official HDR master.
Request for maintainers/testers
Would an experimental UE Extended compatibility entry and documented settings be appropriate? Independent testing across other scenes/displays, especially Windows without the separate Linux workaround, would help establish the scope. No official RenoDX or game-developer endorsement is implied.
References: UE Extended source used for comparison, ReShade 6.8.0 screenshot implementation.
All reactions