Christmas Patriarch

How to enable RTX Remix for Killing Floor game

Short answer: you can install it, you cannot ship it. The runtime will attach to Killing Floor, and on a few closed indoor maps you will get path-traced geometry. Everything else — sky, terrain, half the materials, and all lighting — comes out broken, for reasons baked into how Unreal Engine 2.5 talks to Direct3D. This page explains the mechanism, gives the exact install steps for anyone who wants to see it with their own eyes, and states what it costs to make it actually good.

What RTX Remix does

Remix is not a shader injector. It replaces the game’s renderer at the API boundary and rebuilds the scene from scratch:

  1. A d3d9.dll dropped next to the game executable intercepts every Direct3D 9 call. For 32-bit games the client d3d9.dll forwards calls to NvRemixBridge.exe, a 64-bit server process that runs the real renderer in 64-bit address space.
  2. The renderer (dxvk-remix) hashes every texture and mesh it sees, and reconstructs a scene graph from the draw calls.
  3. That scene is rendered with full path tracing on Vulkan ray tracing, with DLSS on top.
  4. The Remix Toolkit lets you attach replacements to those hashes: PBR materials, higher-poly USD meshes, and hand-placed lights.

Step 2 is the whole story. Remix can only rebuild a scene if the game describes it in standardized terms — the fixed function pipeline, where geometry, transforms, materials, and lights arrive as documented D3D state instead of as opaque shader bytecode. NVIDIA’s own compatibility guidance puts it plainly: DirectX 8 and 9 fixed-function titles, best odds for games released 2000–2005, “games released after 2010 are generally not compatible unless they’ve been modified”, and DirectX 9.0c titles are “usually mostly shader based, so probably won’t work”. Vertex shader support exists but is experimental and limited to simple cases.

Hardware requirements

MinimumRecommended
GPUAny RTX GPUGeForce RTX 4070
VRAM12 GB
CPUIntel i7-13700K / Ryzen 7 7700X
RAM32 GB
Storage10 GB NVMe SSD
OSWindows 10Windows 11

“Any RTX GPU” is a hard floor, not a suggestion. Remix renders through hardware ray tracing, so Pascal and older cards are excluded outright — a GTX 1080 Ti has no RT cores and cannot run the runtime at all, regardless of how much VRAM or system RAM sits behind it. There is no software fallback path.

Does Killing Floor qualify?

Checks against the local install (SteamLibrary\steamapps\common\KillingFloor\System):

So the API surface is right and the bitness is right. The scene description is not, and that is what decides the outcome.

The install, step by step

This is the fastest way to see the result yourself. Budget an hour. Back up System\KillingFloor.ini first.

1. Get the runtime. Download the RTX Remix runtime release archive. It contains d3d9.dll (the bridge interposer) and a .trex\ folder holding NvRemixBridge.exe plus a second d3d9.dll (the dxvk-remix renderer itself).

2. Copy it next to the executable. Both the d3d9.dll and the whole .trex\ folder go into the game’s System\ directory — the folder containing KillingFloor.exe, not the game root:

SteamLibrary\steamapps\common\KillingFloor\System\
├── KillingFloor.exe
├── d3d9.dll          <- bridge client (32-bit)
├── rtx.conf
└── .trex\
    ├── NvRemixBridge.exe
    └── d3d9.dll      <- dxvk-remix renderer (64-bit)

3. Add d3d8to9 if you take the DirectX 8 route. crosire’s d3d8to9 translates D3D8 calls into fixed-function D3D9, which is how the UT2004 attempts were wired up. Its d3d8.dll goes in the same System\ folder.

4. Point the engine at the right render device. KillingFloor.ini already carries the alternatives, commented out, under [Engine.Engine]:

[Engine.Engine]
RenderDevice=D3D9Drv.D3D9RenderDevice
;RenderDevice=D3DDrv.D3DRenderDevice
;RenderDevice=Engine.NullRenderDevice
;RenderDevice=OpenGLDrv.OpenGLRenderDevice

Try D3D9Drv first, since Remix targets D3D9 natively. If the screen is empty or the game refuses to start, switch to the older D3DDrv (DirectX 8) with d3d8to9 in place — the DX8 driver leans harder on fixed function, which is what Remix wants:

[Engine.Engine]
;RenderDevice=D3D9Drv.D3D9RenderDevice
RenderDevice=D3DDrv.D3DRenderDevice

Note there are several [Engine.Engine]-style blocks in that file; edit the active one and leave the rest alone.

5. Launch and press Alt + X. If the runtime attached, the Remix user graphics settings menu opens over the game. That menu is your verdict: geometry visible and lit by the path tracer means the capture pipeline works and you have something to build on. Black screen, scrambled geometry, or no menu means Remix never got a usable scene.

What you will actually see

Unreal Tournament 2004 runs the same Unreal Engine 2.5 renderer family as Killing Floor, and the community already ran this experiment with d3d8to9 plus Remix. The reported result: some indoor maps are playable, others are completely broken, and landscapes and sky do not render correctly. Expect Killing Floor to land in the same place — closed corridor maps partially working, open maps unusable.

The original Unreal Engine 1 fared no better through wrappers alone. Even with the OldUnreal 227f patch supplying a native D3D9 render device, the outcome was described as not playable: most textures translucent or missing, heavy corruption.

Why it breaks

Four structural reasons, none of which a config file fixes.

Lightmaps instead of lights. Unreal Engine 2.5 precomputes static lighting into lightmap textures and modulates them onto world geometry through a second texture stage. It never hands D3D a set of light sources for that lighting. Remix therefore reconstructs a geometrically correct scene containing no lights at all, and a path tracer with no lights renders black. Every light must be placed by hand in the Toolkit, per map.

Polluted albedo. Baked illumination lives inside the diffuse textures. Feed those to a path tracer that is also computing real bounce lighting and you get light applied twice, with shadows painted into surfaces that should now be lit dynamically. Fixing it means classifying and re-tagging materials by hand, then authoring clean albedo.

Shader paths. UE2.5’s D3D9 render device does not stay on the fixed-function road. Projectors, decals, specular materials, and skeletal mesh paths go through shaders, and those draw calls are precisely what Remix cannot reconstruct — they get skipped or rasterized outside the traced scene.

Sky and terrain. Both are rendered through special-case paths with their own transforms and coordinate handling, which is why they are the first things reported broken in UT2004. Killing Floor’s outdoor maps depend on both.

The only approach that actually works

For Unreal Engine 1, the community stopped fighting wrappers and wrote a render device specifically for Remix: D3D9DrvRTX, which supports Unreal Tournament, Unreal, Deus Ex, Rune, Undying, and several others. Reading what it had to do is the honest cost estimate for any Unreal-family port:

That is a rewritten renderer, not a configuration. Applying the same treatment to Killing Floor means porting an open Unreal Engine 2 render device and adding all of the above — Tripwire’s D3D9Drv source is not public — then doing the art pass. And the art pass is the larger number: lights and materials are authored per map, and a server running 165 maps multiplies that by 165. One map done properly is tens of hours.

Multiplayer and anti-cheat

Remix is purely client-side. A server sees an ordinary client and nothing changes for other players. But you are dropping a replacement d3d9.dll into the game directory and running a second process that owns rendering. Graphics wrappers are usually tolerated, that is not a guarantee, and Killing Floor is VAC-enabled. On your own servers this is your call; on public ones, weigh it yourself.

What to do on non-RTX hardware

ReShade with a screen-space GI shader runs on Pascal and older, installs in about fifteen minutes, touches no engine code, and cannot break map geometry. It gets a large share of the visual jump — indirect lighting approximation, ambient occlusion, modern tonemapping — for a rounding error of the effort. Texture upscaling is independent of Remix too, and can be batch-processed against the existing packages.

Verification status

Verified locally: KillingFloor.exe is 32-bit x86 (PE machine 0x014C); D3D9Drv.dll, D3DDrv.dll, and OpenGLDrv.dll are present in System\; KillingFloor.ini carries the commented render-device alternatives quoted above.

Not verified: the install procedure itself was not executed against Killing Floor, because Remix requires an RTX GPU and the machine this was written on has a GTX 1080 Ti. The predicted outcome is inference from the UT2004 and Unreal Engine 1 results cited below, on the same renderer family — treat it as a well-supported prediction, not a test report. If you have RTX hardware, the hour-long check in the install section settles it.

Sources