# The Roadmap for renodx: HDR Support, Shader Tools, and Cross-API Features

> Explore the renodx roadmap: discover upcoming HDR support, advanced shader tools, and cross-API features. Get ready for version 7.0's Vulkan and DX12 integration.

- Repository: [Carlos Lopez/renodx](https://github.com/clshortfuse/renodx)
- Tags: roadmap
- Published: 2026-09-06

---

**The roadmap for renodx centers on three strategic pillars: full HDR and PQ (Perceptual Quantizer) support targeted for version 6.x, automated swap-chain resource upgrades slated for release 6.8, and seamless cross-API resource transfer between DirectX 12 and Vulkan planned for version 7.0.**

The renodx (Reno DX) project is a modular graphics framework that extends Reshade’s add-on system to inject and replace resources in DirectX games. According to the clshortfuse/renodx repository source code, the roadmap for renodx is explicitly documented through TODO comments, version-tagged milestones, and architectural patterns that signal upcoming capabilities ranging from HDR pipeline conversion to Vulkan backend support.

## Core Architecture and Current State

### Utility Layer and Resource Management

The foundation resides in `src/utils/`, where [`windowing.hpp`](https://github.com/clshortfuse/renodx/blob/main/windowing.hpp), [`vtable.hpp`](https://github.com/clshortfuse/renodx/blob/main/vtable.hpp), and [`trace.hpp`](https://github.com/clshortfuse/renodx/blob/main/trace.hpp) provide platform-agnostic helpers for window creation and COM v-table manipulation. The critical [`src/utils/resource_upgrade.hpp`](https://github.com/clshortfuse/renodx/blob/main/src/utils/resource_upgrade.hpp) file handles format detection and swap-chain upgrades, containing the actual logic for migrating legacy render targets to modern APIs.

### Shader Decompilation Pipeline

The toolchain includes a CLI front-end in [`src/decompiler/cli.cpp`](https://github.com/clshortfuse/renodx/blob/main/src/decompiler/cli.cpp) that invokes Microsoft Shader Model 6+ decompilers to produce HLSL source. The [`src/analyze_shader_deps.cpp`](https://github.com/clshortfuse/renodx/blob/main/src/analyze_shader_deps.cpp) utility builds dependency graphs for multi-shader replacement add-ons, while [`notes.md`](https://github.com/clshortfuse/renodx/blob/main/notes.md) serves as a living cheat-sheet for improving decompilation accuracy of instructions like `mad`, `exp2`, and `log2`.

### Game-Specific Add-ons

Concrete implementations reside in `src/games/`, with [`src/games/bioshock/addon.cpp`](https://github.com/clshortfuse/renodx/blob/main/src/games/bioshock/addon.cpp) serving as the reference pattern for shader replacement and buffer injection. Each add-on registers with Reshade through small wrapper files that expose clean APIs for game-specific logic.

## The Roadmap for renodx: Planned Features and Releases

### Full HDR and PQ Support (Version 6.x)

A TODO comment at line 301 of `src/games/gtav-enhanced/PS_BinkNoAlpha_0x7EABC435.ps_6_0.hlslx` explicitly marks AutoHDR implementation as pending. This feature will enable automatic conversion of SDR swap-chains to HDR pipelines, including tone-mapping LUTs for Perceptual Quantizer (PQ) curves.

### Swap-Chain Resource Auto-Upgrade (Version 6.8)

The [`src/utils/resource_upgrade.hpp`](https://github.com/clshortfuse/renodx/blob/main/src/utils/resource_upgrade.hpp) file contains `// TODO(Ritsu): Remove once 6.8.0 is released` at line 3269, indicating planned automated detection and replacement of depth-buffer formats and texture resource upgrades (e.g., R11G11B10F to RGBA8).

### Cross-API Resource Transfer (Version 7.0)

Test cases in [`test/resource_upgrade_transfer/vulkan_tests.cpp`](https://github.com/clshortfuse/renodx/blob/main/test/resource_upgrade_transfer/vulkan_tests.cpp) demonstrate ongoing development for seamless migration of resources between DirectX 12 and Vulkan backends, targeting the 7.0 milestone.

### Developer Experience and UI Improvements (Version 7.x)

While no explicit TODO exists, the presence of the "dev-kit" add-on and [`src/web/static/index.html`](https://github.com/clshortfuse/renodx/blob/main/src/web/static/index.html) suggests a user-friendly configuration overlay to edit settings without manual JSON editing. Documentation expansion through the existing [`DEVKIT_MCP.md`](https://github.com/clshortfuse/renodx/blob/main/DEVKIT_MCP.md) and wiki infrastructure is also anticipated, alongside expanded CI workflows in `.github/workflows/` for nightly builds across Clang, MSVC, and Ninja compilers.

## Current Capabilities with Code Examples

### Replacing a Shader

The following pattern from [`src/games/bioshock/addon.cpp`](https://github.com/clshortfuse/renodx/blob/main/src/games/bioshock/addon.cpp) demonstrates how to register a pixel shader replacement:

```cpp
// src/games/example/addon.cpp
#include <reshade.hpp>
#include "renodx.hpp"

extern "C" __declspec(dllexport) void register_addon(reshade::runtime* runtime)
{
    // Register a shader replacement: replace the pixel shader at entry 0x12345678
    renodx::shader_replacer::register_shader(
        0x12345678,                 // original shader hash
        "my_custom_shader.fx",     // path to the replacement HLSL file
        renodx::shader_stage::pixel);
}

```

### Upgrading a Swap-Chain Format

This snippet illustrates the swap-chain upgrade pattern found in [`src/utils/resource_upgrade.hpp`](https://github.com/clshortfuse/renodx/blob/main/src/utils/resource_upgrade.hpp):

```cpp
// src/games/example/swapchain_upgrader.cpp
#include "renodx.hpp"

void on_swapchain_created(IDXGISwapChain* swap)
{
    // Upgrade the back-buffer to an HDR-compatible format if the app uses SDR
    renodx::swapchain_upgrader::upgrade(swap,
        DXGI_FORMAT_R16G16B16A16_FLOAT); // Target HDR10 format
}

```

### Injecting a Constant Buffer

Buffer injection follows this pattern, similar to implementations in game-specific add-ons:

```cpp
// src/games/example/buffer_injector.cpp
#include "renodx.hpp"

void inject_my_buffer(reshade::api::device* dev)
{
    // Create a 256-byte constant buffer filled with user-defined values
    const uint32_t data[64] = { /* ... */ };
    auto buffer = dev->create_buffer(reshade::api::resource_desc
        .size(sizeof(data))
        .usage(reshade::api::resource_usage::constant_buffer));
    dev->update_buffer(buffer, 0, data, sizeof(data));

    // Bind the buffer to slot 2 of the vertex shader
    renodx::buffer_injector::bind(buffer, reshade::api::shader_stage::vertex, 2);
}

```

## Summary

- **Graphics-pipeline enhancements**: Version 6.x introduces full HDR and PQ support with AutoHDR capabilities, while version 6.8 finalizes automated swap-chain and resource format upgrades.
- **Cross-platform expansion**: Version 7.0 targets seamless resource transfer between DirectX 12 and Vulkan backends, as validated by the test suite in [`test/resource_upgrade_transfer/vulkan_tests.cpp`](https://github.com/clshortfuse/renodx/blob/main/test/resource_upgrade_transfer/vulkan_tests.cpp).
- **Developer tooling**: Continuous improvements to the shader decompiler in [`src/decompiler/cli.cpp`](https://github.com/clshortfuse/renodx/blob/main/src/decompiler/cli.cpp) and dependency analyzer in [`src/analyze_shader_deps.cpp`](https://github.com/clshortfuse/renodx/blob/main/src/analyze_shader_deps.cpp) support ongoing SM 6.xx feature compatibility.
- **Automation and UX**: Expanded CI/CD pipelines and a forthcoming graphical configuration interface aim to streamline the add-on development workflow by version 7.x.

## Frequently Asked Questions

### What version of renodx will introduce full HDR support?

According to the source code in `src/games/gtav-enhanced/PS_BinkNoAlpha_0x7EABC435.ps_6_0.hlslx`, full HDR and AutoHDR capabilities are targeted for the **6.x release cycle**. The TODO comment at line 301 indicates the feature will include automatic conversion of SDR swap-chains to HDR pipelines with tone-mapping LUTs.

### How does renodx handle shader decompilation?

The framework provides a CLI front-end in [`src/decompiler/cli.cpp`](https://github.com/clshortfuse/renodx/blob/main/src/decompiler/cli.cpp) that interfaces with Microsoft’s Shader Model 6+ decompiler to produce HLSL source code. The [`src/analyze_shader_deps.cpp`](https://github.com/clshortfuse/renodx/blob/main/src/analyze_shader_deps.cpp) tool further assists developers by constructing dependency graphs for complex multi-shader replacements, and the [`notes.md`](https://github.com/clshortfuse/renodx/blob/main/notes.md) file documents patterns for handling specific instruction sets like `mad` and `exp2`.

### Is Vulkan support coming to renodx?

Yes, cross-API resource transfer is explicitly planned for **version 7.0**. The presence of [`test/resource_upgrade_transfer/vulkan_tests.cpp`](https://github.com/clshortfuse/renodx/blob/main/test/resource_upgrade_transfer/vulkan_tests.cpp) in the repository confirms active development for migrating resources between DirectX 12 and Vulkan backends, enabling broader compatibility with modern rendering APIs.

### Where can I find examples of working renodx add-ons?

The [`src/games/bioshock/addon.cpp`](https://github.com/clshortfuse/renodx/blob/main/src/games/bioshock/addon.cpp) file serves as the primary reference implementation, demonstrating shader replacement, buffer injection, and swap-chain manipulation patterns. Additional examples can be found in the `src/games/` directory, each following the standard wrapper pattern for Reshade add-on registration.