Skip to content

[mod:dishonored2] Add RenoDX support - #633

Draft
decoded-brain wants to merge 2 commits into
clshortfuse:mainfrom
decoded-brain:feat/dishonored2-clshortfuse-clean
Draft

[mod:dishonored2] Add RenoDX support#633
decoded-brain wants to merge 2 commits into
clshortfuse:mainfrom
decoded-brain:feat/dishonored2-clshortfuse-clean

Conversation

@decoded-brain

Copy link
Copy Markdown

Supersedes #620

This Draft replaces #620 with the same nine-file Dishonored 2 diff replayed as two clean commits directly on clshortfuse/renodx:main. It intentionally excludes local Test25/PsychoV work and generated artifacts.

Summary

  • Adds a native RenoDX addon for Dishonored 2 (D3D11, x64).
  • Replaces the main tonemap/3D LUT shader, the black-and-white tonemap variant, and the final upscale/copy pass before Iggy UI.
  • Upgrades the post-tonemap back-buffer-sized intermediate from RGBA8 typeless to an FP16 clone and presents through a thin HDR10 SwapChainPass proxy.
  • Preserves the game's late gamma-space Iggy UI composition by keeping the FP16 intermediate sRGB-encoded until final output.
  • Exports DISHONORED2_GRAPHICAL_UPGRADE_COMPATIBILITY_ABI = 1 for optional Dishonored2GraphicalUpgrade integration.
  • Releases dynamically allocated swapchain proxy passes during teardown and failed proxy rendering.

Why

Dishonored 2 exposes the real scene, exposure, bloom, vanilla tone curve, and 3D color grade in the target tonemap shaders. This implementation feeds those proven pre-SDR and vanilla-reference signals into ToneMapPass instead of inverse-tonemapping a completed SDR frame. The FP16 resource clone prevents the upgraded result from being clipped by the original RGBA8 intermediate, while the proxy shader is limited to final HDR10 encoding.

Defaults

New installations keep the original presentation effects neutral by default:

  • RenoDRT remains the default HDR tone mapper.
  • Black-clip override is off.
  • Bloom and lens dirt remain at 100%.
  • Sharpening and added film grain are off.
  • Preset Off restores the vanilla tonemap, 203-nit scene/UI values, original effects, and disables custom grading controls.

Existing saved settings continue to use their stored values.

Build verification

Validated from a clean branch based on clshortfuse/main:

cmake --preset clang-x64
cmake --build --preset clang-x64-release --target dishonored2 --verbose

Checks performed:

  • git diff --check
  • metadata.json validated against renodx-metadata-schema.json
  • Generated non-empty embeds for 0xA6F33860, 0x11E16EF3, 0x1A0CD2AE, and both swapchain proxy shaders
  • Produced build/Release/renodx-dishonored2.addon64
  • Confirmed x86-64 exports: NAME, DESCRIPTION, and DISHONORED2_GRAPHICAL_UPGRADE_COMPATIBILITY_ABI
  • Confirmed no generated .cso or addon binaries are included in the diff

Runtime verification boundary

The source build before this clean upstream port was tested in game by the author. Its ReShade 6.8 log confirms addon loading, registration of all three replacement hashes, and simultaneous Dishonored2GraphicalUpgrade loading. The binary built from this exact upstream branch has not yet been runtime-retested, so this PR is intentionally a Draft.

Draft note

The current implementation selects HDR10 output at startup and does not yet expose a synchronized SDR/HDR output toggle. This is left explicit for maintainer feedback rather than expanding the initial port beyond the tested game path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant