Remix Plus

June 22, 2026 · View on GitHub

Build Status

Remix Plus is a community-maintained fork of NVIDIA's dxvk-remix — created and led by Kim2091 — that extends the Remix SDK API for modern-game plugin integrations. It brings the SDK extensions developed in the gmod-rtx community fork — batched mesh and light creation, plugin-injected game state, UI state plumbing, VRAM control, additional tonemap operators, the Numos sky system, and more — onto a clean, NVIDIA-rebase-friendly base, so plugin authors and game integrations can build on a maintained codebase that's API-compatible with the broader Remix ecosystem.

Like upstream dxvk-remix, Remix Plus is a fork of DXVK that overhauls the D3D9 fixed-function pipeline for path-traced remastering. The bridge subfolder enables 32-bit games to communicate with the 64-bit runtime.

Bugs encountered with Remix Plus belong in this repo's issue tracker, not in upstream DXVK or NVIDIA dxvk-remix.

What's new vs upstream dxvk-remix

Remix SDK API extensions

  • Batched mesh creationCreateMeshBatched for high-throughput geometry submission paths.
  • Batched light creation + deferred updatesCreateLightBatched, UpdateLightDefinition for per-frame light churn.
  • UI state query/setGetUIState / SetUIState so plugins can observe and drive Remix's developer UI from outside the runtime.
  • Texture-hash category mutationAddTextureHash, RemoveTextureHash, dxvk_GetTextureHash for plugin-driven texture classification at runtime.
  • D3D11 shared-texture handlesdxvk_GetSharedD3D11TextureHandle for interop with D3D11-side rendering paths.
  • VRAM controlRequestTextureVramFree, RequestVramCompaction, GetVramStats give plugins a driver-view handle on memory pressure.
  • Plugin-injected game stateSetGameValue writes named values into a fork-owned store; GameValueReadBool and GameValueReadNumber graph (Sense) components read them back inside replacement logic.
  • externalMesh field on RasterGeometry for capture/replacement parity when geometry comes in via the Remix API path.
  • InstanceCategoryBit ABI synced to the gmod/plugin layout so category bits round-trip correctly across the API boundary.

Tonemapping & auto-exposure

  • Eight tonemap operators in the UI dropdown: Hill ACES, Narkowicz ACES, Hable Filmic, AgX Minimal, Lottes 2016, PsychoV17_Beta, Gran Turismo 7 (SDR), and Neutwo. Each operator has its own parameter panel — controls are visible at a glance instead of buried.
  • AgX Minimal (Benjamin Wrensch / MIT) replaces the older multi-knob AgX surface. Look presets: None / Golden / Punchy.
  • PsychoV17_Beta — Slang port of renodx Psycho Test 17 (Carlos Lopez Jr. / MIT). Stockman-Sharpe LMS + Naka-Rushton cone response
    • gamut compression.
  • Gran Turismo 7 reference — Slang port of Polyphony Digital's SIGGRAPH 2025 GT7 tone-mapping reference (MIT). SDR mode, ICtCp UCS.
  • Hable presets (Hejl, Uncharted 2) with the original parameters.
  • Perceptual auto-exposure — Stockman-Sharpe Yf histogram + geometric-mean adaptation + first-site cone-contrast law. Asymmetric in log-exposure space: cone-bleach is fast (~0.10–0.20 s), rod-recovery is slow (~0.50–1.50 s). Two tau sliders replace the old Adaptation Speed / EV-Min / EV-Max / Average Mode controls.

The legacy Tonemapping Mode (Global / Local / Direct) combo, the local tonemapper, the dynamic tone curve / Tuning Mode sliders, the User Brightness slider, and the exposure-compensation curve are removed — the apply pass always runs in operator-only mode.

Numos sky system

  • Numos atmosphere (Hillaire scattering) — physically-based atmospheric scattering ported from the gmod-rtx community fork. Daylight, sunset, and twilight all behave correctly without manual fog tuning.
  • Volumetric clouds — procedural FBM cloud layer with weather-driven coverage and Nubis-style spatial variation. Anvil, shear, and vertical-profile shaping are artist-tunable. Renders through a sky-dome curvature with sample-seam jitter to hide stepping artifacts. Sun and any number of moons cast shadows through the volume; twilight and night cloud lighting are physically correct rather than tuned-by-eye. Shadow-tap cost is heavily reduced via multi-octave density approximation, cadence-decoupled shadow caching, combined-moon marching, and density-gated skipping.
  • Night sky — stars, milky way, shooting stars, and airglow, with sidereal rotation so the celestial sphere actually moves. Multi-moon support: independent elevation / rotation / phase per moon, unified moon-disk eval with surface-style presets (Rocky, Volcanic), soft radial glow/halo, and physically-scaled lunar illumination on the cloud volume.

Hardware skinning

  • HW skinning with capture and replacement parity, so skinned meshes injected via the Remix API path participate in capture and asset replacement the same as fixed-pipeline geometry.

Capture and overlay quality-of-life

  • Overwrite-existing-capture checkbox in the capture dialog.
  • Null-image / null-map / dimension guards on capture export paths — eliminates a class of crashes when capturing edge-case resources.
  • Keyboard and mouse events forwarded to ImGui on the legacy WndProc fallback path, so plugin-API-driven overlays receive input even when a game menu captures raw input.
  • Quieter logs — spammy swapchain-recreate throws and repeated mesh-registration warnings silenced.

Engineering

  • Fork-touchpoint pattern — fork logic is extracted into dedicated rtx_fork_*.cpp modules, with one-line dispatches in upstream files. Reduces NVIDIA-rebase pain by ~54% (measured) and makes the fork's surface area auditable. See docs/fork-touchpoints.md for the authoritative inventory.
  • PR template fridge-list reminder keeps the discipline honest.

Contributing

Contributions are welcome. Whether you write Remix plugins, ship a game integration, or want to make this fork better — start with the contribution guide:

docs/CONTRIBUTING.md covers setup, build, fork-touchpoint discipline, code style, and PR submission.

The short version:

  1. Fork RemixProjGroup/dxvk-remix.
  2. Branch on your fork — any name is fine.
  3. Keep PRs small and focused.
  4. Build clean (release flavor, exit code 0, zero errors).
  5. Open a PR against canonical's main branch.
  6. Add yourself to src/dxvk/imgui/dxvk_imgui_about.cpp under "Github Contributors".

If you touch any upstream file, update docs/fork-touchpoints.md in the same commit — that's the one rigid rule.

Questions? File an issue or ask on the RTX Remix Discord.

Quick build

Detailed requirements and walkthrough live in docs/CONTRIBUTING.md. The compressed version, assuming you have Visual Studio 2019 (with the v142 toolchain), the Windows SDK, Meson 1.8.2+, the Vulkan SDK 1.4.313.2+, and Python 3.9+:

git clone --recursive https://github.com/<your-fork>/dxvk-remix.git
cd dxvk-remix
.\scripts\build.ps1

scripts/build.ps1 is the fork-side runtime build entry point — it discovers Visual Studio via vswhere, runs meson setup/compile/ install, and verifies artifacts. It defaults to the release flavor; pass -Flavor debug or -Flavor debugoptimized for the instrumented flavors, -Clean for a fresh build dir, or -EnableTracy for the Tracy profiler.

Output d3d9.dll lands in _Comp64Release/src/d3d9/ and is installed to _output/. Configure game targets via gametargets.conf (copy gametargets.example.conf) and the build will deploy automatically.

To build the 32-bit-to-64-bit bridge separately, use the fork-side bridge wrapper .\bridge\scripts\build.ps1 (builds the x64 server and x86 client + launcher into bridge/_output/).

Remix API

If you're integrating Remix into a game with available source, you can either use the D3D9 surface directly (Remix's d3d9.dll implements D3D9) or program against the Remix C API to push game data into the renderer. Start with docs/RemixSDK.md for setup and the mental model, then see docs/RemixApi.md for the full API reference. The C header is public/include/remix/remix_c.h, with a type-safe C++ wrapper at public/include/remix/remix.h.

Project documentation

Team

Credits

Remix Plus stands on the work of:

  • DXVK — D3D9 → Vulkan translation layer.
  • NVIDIA dxvk-remix — path-traced remastering fork of DXVK.
  • The gmod-rtx community fork — origin of most of the SDK extensions Remix Plus carries.

Thanks to all the contributors whose work makes this possible.