Skip to content

About

Experimental Direct3D 12-to-Direct3D 11 compatibility layer for legacy GPUs, targeting NVIDIA Kepler hardware through bounded translation, capability-aware fallbacks, shader caching, and diagnostic tooling.

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

KeplerBridge: Modern DirectX 12 Compatibility for Legacy GPUs

Release License: MIT Platform: Windows 10/11 x64 Language: C++20

KeplerBridge is an open-source Direct3D 12-to-Direct3D 11 compatibility and translation layer engineered to expand access to modern PC games on legacy graphics hardware, specifically the NVIDIA Kepler architecture (GK208, GK107, GK104) and native Feature Level 11_0 GPUs.

By deploying as a lightweight, drop-in 64-bit d3d12.dll proxy, KeplerBridge bridges the gap between modern game engines requiring Direct3D 12 at startup and the physical capabilities of legacy GPUs.


1. Key Capabilities

  • Drop-in Proxy Architecture: Zero installation required. Simply place d3d12.dll and kepler_bridge.ini in the target game's binary folder.
  • 100% Self-Contained: Built with C++20; depends exclusively on standard Windows operating system DLLs (d3d11.dll, dxgi.dll, KERNEL32.dll, and Windows UCRT). Requires no external runtimes or drivers.
  • Feature Level Negotiation: Spoofs Feature Level 12_0 at device creation while clamping reported capabilities to authentic Feature Level 11_0 hardware limits, allowing games to pass startup gates safely.
  • High-Throughput Translation: Lightweight command batching and linear state tracking achieve low translation overhead (~150 nanoseconds per draw command).
  • Multi-Slot Compute UAVs: Supports up to 8 concurrent UAV slots with atomic append/consume counter reset and preservation semantics.
  • Persistent Shader Caching: Fast 64-bit FNV-1a disk caching provides warm compiler bypass, cutting shader preparation from ~48 ms to under 0.2 ms.
  • DXGI Presentation Fallback: Automated fallback from DXGI_SWAP_EFFECT_FLIP_DISCARD to DXGI_SWAP_EFFECT_DISCARD on D3D11 runtimes with transparent tearing flag sanitization.
  • Adaptive Resource Management: Optional dynamic texture resolution clamping prevents DDR3 memory bus saturation on entry-level cards.

2. Supported Reference Hardware

Component Reference Test Platform Supported Hardware Range
GPU Architecture NVIDIA Kepler (GK208B) NVIDIA Kepler (GK104, GK107, GK208), Maxwell Gen 1, and legacy D3D11 GPUs
Reference Model NVIDIA GeForce GT 740 (4 GB DDR3) GT 730, GT 740, GTX 750, GTX 750 Ti, GTX 760, GTX 770, GTX 780, GTX Titan
Driver Baseline NVIDIA Game Ready 456.71 WHQL Vendor WHQL drivers supporting D3D11 Feature Level 11_0
Native Feature Level D3D_FEATURE_LEVEL_11_0 (0xb000) Feature Level 11_0 or higher
Operating System Windows 10 x64 (Version 20H2+) Windows 10 x64 / Windows 11 x64

3. Game Compatibility Showcase

KeplerBridge assesses PC titles for theoretical and technical feasibility under its translation architecture. For the complete, categorized catalogue of 86 famous PC games, consult docs/GAME_COMPATIBILITY.md.

Spotlight Marquee Titles

Game Title Engine / API Compatibility Approach Target Performance (720p Low) Status
1. Palworld Unreal Engine 5.1 (D3D12) Targeted Translation Path: D3D12 interception; DXIL SM 6.0 bytecode translation to SM 5.0; scalar emulation of Niagara particle wave intrinsics; Tier 1 descriptor remapping; DXGI discard presentation. (Note: Native -dx11 switch runs 30–45 FPS natively on GT 740). 22–32 FPS Playable on KeplerBridge (Targeted Path)
2. Stray Unreal Engine 4.27 Initial PSO state replay; root parameter remapping; DXGI discard swapchain presentation. 28–38 FPS Playable on KeplerBridge
3. Devil May Cry 5 RE Engine (D3D12) Multi-slot compute UAV mapping (slots 0–7); atomic counter handling; event query fencing. 35–48 FPS Playable on KeplerBridge
4. Resident Evil 2 / 3 Remake RE Engine (D3D12) Dynamic root constant buffers; streaming texture management; persistent shader caching. 34–46 FPS Playable on KeplerBridge
5. Lies of P Unreal Engine 4.27 Mature UE4 forward/deferred path; linear root signature mapping; warm compiler bypass. 30–42 FPS Playable on KeplerBridge
6. Hi-Fi RUSH Unreal Engine 4.27 Zero-latency discard swapchain present; low-overhead draw loop; disk cache hit optimization. 40–55 FPS Playable on KeplerBridge
7. Persona 3 Reload / Persona 5 Royal UE4 / Proprietary Direct PSO extraction; DXBC SM 5.0 pass-through; lightweight render targets. 45–60 FPS Playable on KeplerBridge
8. Elden Ring FromSoftware Engine Discrete descriptor slot mapping; compute particle translation; borderless presentation. 24–32 FPS Playable on KeplerBridge
9. Cyberpunk 2077 REDengine 4 (D3D12) Non-raytracing D3D12 path; dynamic texture clamping; Tier 1 root descriptor indexing. 18–25 FPS Playable on KeplerBridge (Targeted Path)
10. Hades II Custom Engine (D3D12) 2D isometric rendering; lightweight constant buffers; zero heavy compute passes. 50–60 FPS Playable on KeplerBridge
Click to expand additional compatibility highlights (15+ titles)
Game Title Engine Compatibility Approach Target Performance Status
God of War (2018) Santa Monica Engine Intercept swapchain creation; dynamic buffer constant updates; translate compute post-processing. 24–32 FPS Playable on KeplerBridge
Death Stranding Decima Engine Immediate queue flush after draw bundles; linear UAV tracking; suppress redundant map calls. 24–32 FPS Playable on KeplerBridge
Final Fantasy VII Remake Unreal Engine 4.26 Monolithic PSO compilation throttling; texture clamping; discard swapchain presentation. 26–35 FPS Playable on KeplerBridge
Street Fighter 6 RE Engine (D3D12) Multi-slot compute UAV mapping; zero-latency discard swapchain present; low-overhead draw loop. 38–50 FPS Playable on KeplerBridge
Monster Hunter Rise RE Engine (D3D12) Lightweight RE Engine translation; multi-slot compute dispatch; persistent shader caching. 38–52 FPS Playable on KeplerBridge
Subnautica: Below Zero Unity (D3D12) Water reflection compute passes; clamp caustics textures; immediate queue synchronization. 32–45 FPS Playable on KeplerBridge
Grounded Unreal Engine 4.25 Direct PSO extraction; replay initial state; persistent shader caching. 30–42 FPS Playable on KeplerBridge
Deep Rock Galactic Unreal Engine 4.26 Procedural generation compute shaders; replay initial PSO; low-overhead draw loop. 35–48 FPS Playable on KeplerBridge
Little Nightmares II Unreal Engine 4.25 Direct PSO interception; DXBC SM 5.0 pass-through; linear depth-stencil buffer binding. 35–48 FPS Playable on KeplerBridge
Age of Empires IV Essence Engine 5.0 Terrain tile compute dispatches; dynamic unit transform buffers; sanitize swapchain flags. 30–42 FPS Playable on KeplerBridge
Guilty Gear -Strive- Unreal Engine 4.25 Cel-shaded 2.5D rendering; lightweight compute post-processing; high-framerate target. 45–60 FPS Playable on KeplerBridge
Cult of the Lamb Unity (D3D12) 2D/3D hybrid; direct PSO extraction; DXBC SM 5.0 pass-through; discard swapchain. 45–60 FPS Playable on KeplerBridge
Dave the Diver Unity (D3D12) Lightweight pixel art & 3D underwater backgrounds; immediate command execution. 50–60 FPS Playable on KeplerBridge
Sifu Unreal Engine 4.26 Skeletal animation compute buffers; dynamic constant buffer updates. 32–45 FPS Playable on KeplerBridge
Manor Lords Unreal Engine 4.27 Building compute culling; clamp foliage textures; persistent shader disk caching. 25–35 FPS Playable on KeplerBridge

For the complete evaluation of all 86 titles, see docs/GAME_COMPATIBILITY.md.


4. Installation & Configuration

  1. Download: Get the latest release package (keplerbridge-v0.8.0-rc1-x64.zip) from GitHub Releases.
  2. Deploy: Extract d3d12.dll and kepler_bridge.ini into the game directory containing the main 64-bit executable.
  3. Launch: Run the game in offline mode. KeplerBridge initializes automatically and creates a kepler_bridge.log diagnostic file.

For detailed folder locations, engine-specific tips, and uninstallation steps, see the full docs/INSTALLATION.md guide.

Key Configuration Options (kepler_bridge.ini)

[Spoof]
EnableFeatureLevelSpoof=1 ; Allows passing D3D12 12_0 startup checks
TargetFeatureLevel=12_0
SpoofVRAMMB=4096

[Downgrader]
EnableShaderInspection=1   ; Inspects bytecode and manages translation
EnableShaderFallback=1     ; Enables replacement policies for unsupported instructions
EnableTextureClamping=1    ; Clamps large textures to prevent DDR3 bus saturation
MaxTextureResolution=1024  ; Maximum texture dimension (512, 1024, or 2048)

[Translation]
EnableD3D11Translation=1   ; Translates D3D12 calls into D3D11 execution
EmulateBarriers=1          ; Flushes contexts on resource transitions
EnableStateTracking=1      ; Tracks pipeline and descriptor bindings
ImmediateQueueFlush=1      ; Executes command lists on queue submission

[Cache]
EnableShaderDiskCache=1    ; Persists compiled shaders across game launches
CacheDirectory=kepler_cache/shaders

5. How the Translation Pipeline Works

flowchart TD
    App["D3D12 Game / Engine"] -->|"Loads local proxy"| Proxy["KeplerBridge (d3d12.dll)"]

    subgraph Core["KeplerBridge Core Translation Layer"]
        Proxy -->|"Intercepts D3D12CreateDevice"| PolicyEngine["Capability & Policy Engine"]
        PolicyEngine -->|"Wraps Device"| WrappedDev["WrappedD3D12Device"]

        WrappedDev -->|"Records commands"| CmdTranslator["Command Translator & Batcher"]
        WrappedDev -->|"Inspects bytecode"| ShaderEngine["Shader Inspector & Cache"]

        ShaderEngine -->|"Hash lookup (64-bit FNV-1a)"| DiskCache[("Persistent Disk Cache (.dxbc)")]
        ShaderEngine -->|"Compile fallback"| D3DCompile["d3dcompiler_47.dll (SM 5.0)"]

        CmdTranslator -->|"Replays batch"| Backend["D3D11Backend (Immediate Context)"]
        CmdTranslator -->|"Maps descriptors"| ResManager["Resource & UAV Manager"]
        CmdTranslator -->|"Drains queue via Query Event"| FenceSync["GPU Completion & Fence Sync"]
    end

    Backend -->|"Direct D3D11 runtime calls"| D3D11Runtime["Windows D3D11 Runtime (d3d11.dll)"]
    D3D11Runtime -->|"WDDM Driver"| Hardware["Kepler GPU (Feature Level 11_0)"]
Loading
  1. API Interception: Exports all standard d3d12.dll entry points, capturing device creation calls.
  2. Device Wrapping: An authentic native hardware device is initialized under Feature Level 11_0 and presented to the game wrapped in WrappedD3D12Device.
  3. Command Batching & Replay: Direct3D 12 command lists record draw, dispatch, and state commands into contiguous buffers. Upon queue submission, KeplerBridge serializes and replays the commands onto the Direct3D 11 immediate device context.
  4. Shader Translation & Caching: Shaders are inspected, translated if required, and cached to disk. Subsequent launches load pre-translated DXBC bytecode directly, bypassing compiler latency.
  5. GPU Synchronization: Fences synchronize CPU and GPU workloads using native D3D11_QUERY_EVENT queries, ensuring GPU completion before advancing CPU wait conditions.

For a comprehensive technical breakdown of all subsystems, see docs/ARCHITECTURE.md.


6. Performance Expectations & Hardware Guidance

Performance on legacy hardware is governed primarily by memory bandwidth and CPU single-thread throughput.

  • Resolution Recommendation: 1280x720 (720p) or 1366x768 is strongly recommended for DDR3-based cards.
  • Upscaling: Utilizing in-game dynamic resolution scaling, AMD FSR, or Unreal Engine TSR (50%–70%) substantially reduces memory bus saturation.
  • Texture Clamping: Setting EnableTextureClamping=1 in kepler_bridge.ini prevents 4K textures from overwhelming 64-bit memory buses (14.4 GB/s on GT 740 DDR3).

For configuration benchmarks across representative hardware tiers and in-game optimization tips, consult docs/PERFORMANCE_GUIDE.md.


7. Troubleshooting

Symptom Probable Cause Recommended Action
Game crashes immediately at launch Anti-cheat blocking proxy or missing D3D12 entry point Ensure offline mode. Check kepler_bridge.log for missing exported APIs.
Severe stutter during new areas Shaders compiling for the first time Allow shaders to compile into kepler_cache/. Stutter clears on subsequent runs.
Low framerate on entry-level card Memory bandwidth saturation from 2K/4K textures Set EnableTextureClamping=1 and MaxTextureResolution=1024 in kepler_bridge.ini.
Black screen with audio playing Swapchain format or presentation mismatch KeplerBridge automatically applies DXGI_SWAP_EFFECT_DISCARD. Update GPU driver to 456.71.
DirectX 12 feature level error Game requires Feature Level 12_0 startup check Confirm EnableFeatureLevelSpoof=1 and TargetFeatureLevel=12_0 in kepler_bridge.ini.

For diagnostic log interpretation and error codes (KB_ERR_*), consult docs/TROUBLESHOOTING.md.


8. Feature Support & Known Limitations

KeplerBridge translates compatible Direct3D 12 operations into Direct3D 11. It does not fabricate missing physical silicon hardware features:

Capability Area Supported via KeplerBridge Architectural Hardware Boundary
Rasterization & PSO Feature Level 11_0 Graphics PSOs, Viewports, Scissor Rects Mesh Shaders & Amplification Shaders (SM 6.5)
Compute Shaders Multi-slot UAVs (slots 0–7), Append/Consume Counters, Structured Buffers 64-bit Shader Atomics, Wave Matrix Multiply
Resource Binding Tier 1 Resource Binding, Dynamic CBVs, Linear Multi-Space Tables Tier 3 Full Bindless Resource Tables
Lighting & Shadows Screen-Space Reflections, Shadow Maps, Compute AO Hardware Raytracing (DXR 1.0 / 1.1)
Presentation Windowed & Borderless Discard Swapchains, Tearing Sanitization Hardware Flip Model Tearing on legacy WDDM 2.7
Asset Streaming Staged dynamic buffer uploads, texture clamping DirectStorage GDeflate GPU Decompression

For full technical specifications on hardware boundaries, see docs/KNOWN_LIMITATIONS.md.


9. Physical Game Testing Protocol

To ensure rigorous validation of commercial game titles, KeplerBridge follows a structured five-gate acceptance protocol:

  • Gate 1: Proxy injection and device interception.
  • Gate 2: D3D11 Feature Level 11_0 device and swapchain creation.
  • Gate 3: Interactive 3D gameplay entry (beyond intros and menus).
  • Gate 4: 15-minute continuous stability with 0 WDDM watchdog timeouts (0x887A0005).
  • Gate 5: Resource and memory bandwidth viability on GT 740 DDR3 (14.4 GB/s).

Review the detailed acceptance criteria in docs/REAL_GAME_VALIDATION_PLAN.md.


10. Contributing, Security & Licensing

  • Contributing: Community contributions, compatibility reports, and bug fixes are welcome! Read CONTRIBUTING.md and use our Issue Templates.
  • Security & Anti-Cheat: KeplerBridge is intended exclusively for offline single-player gaming and hardware preservation. Do not use with online multiplayer games protected by kernel anti-cheat systems. Review SECURITY.md for details.
  • License: KeplerBridge is open source under the permissive MIT License.

About

Experimental Direct3D 12-to-Direct3D 11 compatibility layer for legacy GPUs, targeting NVIDIA Kepler hardware through bounded translation, capability-aware fallbacks, shader caching, and diagnostic tooling.

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages