# Is RenoDX Cross-Platform? Platform Support and Compatibility Explained

> RenoDX is not cross-platform. Discover why RenoDX is Windows-only, exploring its reliance on DirectX and ReShade.

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

---

**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`](https://github.com/clshortfuse/renodx/blob/main/src/games/starfield/addon.cpp), the implementation includes standard Windows graphics headers:

```cpp
// 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`](https://github.com/clshortfuse/renodx/blob/main/test/resource_upgrade_transfer/vulkan_app.cpp), but it explicitly targets the Windows platform:

```cpp
// 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:

```cpp
// 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`](https://github.com/clshortfuse/renodx/blob/main/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`](https://github.com/clshortfuse/renodx/blob/main/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`](https://github.com/clshortfuse/renodx/blob/main/src/games/starfield/addon.cpp) | DirectX 12 headers, Windows calling conventions |
| [`test/resource_upgrade_transfer/vulkan_app.cpp`](https://github.com/clshortfuse/renodx/blob/main/test/resource_upgrade_transfer/vulkan_app.cpp) | `VK_USE_PLATFORM_WIN32_KHR` definition |
| [`test/resource_upgrade_transfer/addon.cpp`](https://github.com/clshortfuse/renodx/blob/main/test/resource_upgrade_transfer/addon.cpp) | `__declspec(dllexport)` exports |
| [`docs/DEVKIT_MCP.md`](https://github.com/clshortfuse/renodx/blob/main/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.