Is RenoDX Cross-Platform? Platform Support and Compatibility Explained

RenoDX is not cross-platform. The library is built exclusively for Windows, relying on DirectX graphics APIs and the ReShade add-on system, both of which are Windows-only technologies.

RenoDX is a graphics modding toolkit developed by clshortfuse that enables advanced shader replacement, swap-chain upgrades, and buffer injection for PC games. While the term "cross-platform" often comes up for graphics tools, renoDX's architecture ties it directly to Microsoft's graphics stack. Understanding these limitations helps developers and modders set proper expectations for deployment and compatibility.

Why RenoDX Is Windows-Only

The core limitation stems from three architectural decisions visible throughout the source code:

  • DirectX 12 dependency — All production add-ons in src/games/*/addon.cpp include <d3d12.h> and use Windows-specific graphics APIs
  • ReShade add-on system — The loadable .addon64 modules require ReShade's Windows-only loader
  • Win32 platform flags — Even Vulkan test code compiles with VK_USE_PLATFORM_WIN32_KHR

These dependencies appear consistently across the codebase, from game-specific implementations to the minimal test add-ons.

Platform-Specific Code Evidence

DirectX 12 Headers in Production Add-ons

Every supported game add-on relies on DirectX 12 headers and Windows conditional compilation. In src/games/starfield/addon.cpp, the implementation includes standard Windows graphics headers:

// src/games/starfield/addon.cpp
// Example of a shader replacement addon for a DirectX 12 game.
#include <d3d12.h>
#include "renodx/shader_injector.h"

extern "C" __declspec(dllexport) void __stdcall OnCreateDevice(ID3D12Device* dev) {
    // Replace the pixel shader of a specific draw call.
    renodx::InjectPixelShader(dev, L"StarfieldPixelShader", L"my_custom_shader.hlsl");
}

The __declspec(dllexport) and __stdcall calling conventions are Windows-specific conventions that have no direct equivalent on Linux or macOS.

Win32-Specific Vulkan Test Code

The repository includes a Vulkan-based test in test/resource_upgrade_transfer/vulkan_app.cpp, but it explicitly targets the Windows platform:

// test/resource_upgrade_transfer/vulkan_app.cpp – line 1
#define VK_USE_PLATFORM_WIN32_KHR

This preprocessor definition limits the Vulkan surface creation to Win32 window handles, preventing compilation on other platforms without modification.

Resource Upgrade Handler Interface

The canonical minimal add-on demonstrates the Windows-centric interface:

// test/resource_upgrade_transfer/addon.cpp
// Minimal addon that upgrades a DX12 swap‑chain resource.
#include <d3d12.h>
#include "renodx/renodx.h"

extern "C" __declspec(dllexport) void __stdcall Initialize(ID3D12Device* device) {
    // Register a resource upgrade handler provided by renodx.
    renodx::RegisterResourceUpgrade(device);
}

Both the ID3D12Device* parameter type and the exported function decoration assume a Windows DLL environment.

What the Documentation States

The README.md acknowledges platform expectations while confirming Windows focus:

"uses ReShade's add-on system… compatibility is expected to be pretty wide"

However, "compatibility" here refers to game-to-game coverage within Windows, not cross-platform portability. The ReShade distribution and its add-on loader remain Windows-exclusive, as confirmed by the project's build system targeting MSVC and Ninja on Windows in CMakeLists.txt.

Linux and macOS Compatibility

Native builds on Linux or macOS are not supported. The project provides no CMake toolchains, conditional compilation paths, or alternative graphics backends for these platforms.

Wine compatibility represents the only viable path for non-Windows users. Since renoDX operates as a loaded add-on within a game's process, running the Windows game executable through Wine (with ReShade also loaded via Wine) may allow renoDX functionality. This remains Windows emulation rather than native cross-platform support.

Key Source Files Demonstrating Platform Limitations

File Platform Evidence
src/games/starfield/addon.cpp DirectX 12 headers, Windows calling conventions
test/resource_upgrade_transfer/vulkan_app.cpp VK_USE_PLATFORM_WIN32_KHR definition
test/resource_upgrade_transfer/addon.cpp __declspec(dllexport) exports
docs/DEVKIT_MCP.md Assumes Windows development environment

Summary

  • RenoDX is not cross-platform — it is built for Windows-only deployment
  • DirectX 12 and ReShade dependencies lock the architecture to Microsoft's ecosystem
  • Vulkan test code uses Win32 surfaces, not cross-platform abstractions
  • Wine may enable functionality on Linux, but this is compatibility-layer emulation, not native support

Frequently Asked Questions

Can I build renoDX on Linux?

No. The build system targets Windows toolchains (MSVC, Ninja on Windows), and the source code relies on Windows-specific headers like <d3d12.h> and calling conventions such as __declspec(dllexport). No Linux-native graphics backend exists in the repository.

Does renoDX work with Vulkan games?

Only through Windows. While the repository contains Vulkan test files, they explicitly use VK_USE_PLATFORM_WIN32_KHR for surface creation. The production add-ons for games like Starfield target DirectX 12 exclusively.

Will renoDX run on macOS via CrossOver or similar tools?

Possibly, via Wine-based compatibility layers that can load Windows DLLs into game processes. However, this is untested territory. The renoDX project provides no support for macOS or Wine-specific troubleshooting.

Why doesn't renoDX support multiple graphics APIs?

The project prioritizes deep integration with ReShade's Windows add-on ecosystem and DirectX 12's resource manipulation capabilities. Cross-platform abstraction would require substantial architectural changes beyond the current scope, as evidenced by the Windows-centric implementation throughout src/games/ and test/ directories.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →