Repository navigation
Releases: Oblivionevil/DXUP
Release list
DXUP 1.1.0 Beta 7
DXUP runs Direct3D 7, 8, 9, 10 and 11 games on Direct3D 12. This is the seventh beta of version 1.1: Risen 3's ground is back, nine more Direct3D 9 texture formats and vertex types read as with Direct3D 9, and DXUP checks every format itself when diagnostics are on.
Note: this project was written by an AI. The code, the tests and the documentation were written by Anthropic's Claude (Claude Code). The maintainer directs the work and tests it in games.
Installation
Run DXUP-Setup-1.1.0-beta.7.exe (9 MB). It installs to C:\Program Files\DXUP and adds DXUP Manager to the Start menu, or updates an existing installation and every game's DXUP copy (close DXUP Manager first). Requirements: 64-bit Windows 10/11, .NET Framework 4.8.1 and a GPU with a Direct3D 12 driver. The setup is unsigned, so Windows SmartScreen may ask for confirmation.
Bug reports in two clicks
In DXUP Manager, select the game and go to Diagnostics:
- Record a problem, then start the game, reproduce the problem and quit the game.
- Create diagnostic package: a zip goes to your desktop and the recording goes off again.
For rendering errors, Windows' "Graphics Tools" (Settings › System › Optional features) add the D3D12 debug layer's checks to the log.
Changes since beta 6
Direct3D 7-9
- Risen 3: the ground near the camera is back. Risen 3 reads its terrain heights from an L16 (16-bit) texture in the vertex shader; DXUP kept only 8 of the bits, so the ground broke into flat terraces and the rocks beneath it showed through. L16 now keeps all 16 bits. Checked in the game against Windows' Direct3D 9.
- Missing color channels read 1, as in Direct3D 9 (Direct3D 10 and later read 0): R16F, R32F, G16R16, V8U8, V16U16, G16R16F and G32R32F textures. Shaders that read the channels these formats lack got 0 instead.
- A2R10G10B10 textures: red and blue were swapped.
- DEC3N and UDEC3 vertex elements: DEC3N was read without sign, and both now read w as 1, as Direct3D 9 does.
Self-test (Record a problem)
- With Record a problem on (or the info log), DXUP checks every texture format Direct3D 9 offers (36) and every vertex element type (17) when a game creates its Direct3D 7-9 device: known data goes in and is read back through the GPU as a game's shaders read it, the element types through the whole path of a draw, and each result is compared with what Direct3D 9 gives. Any difference is logged with the data and both values. Errors like Risen 3's terrain left no trace in the logs before. All of the fixes above were found this way and checked against Windows' Direct3D 9.
Known issues
- The changed vertex input reading is checked against Windows' Direct3D 9 in DXUP's tests (36 scenes, recorded shaders of five games) but not yet in every game; reports are welcome.
- DXUP is tested mainly on one PC with an NVIDIA GeForce RTX 5090, and in a few games on Intel Iris Xe graphics. Other NVIDIA, AMD and Intel GPUs are hardly tested yet; bug reports are welcome.
- Some Steam games with Steam's DRM (Mirror's Edge) crash when RenderDoc starts them.
- Unreal Engine 4 games (Kena, Orcs Must Die! 3) and The Witcher 3 take 3-10% more GPU time than native Direct3D 11.
dxgi.renderScalespeeds up only games that size their rendering by the swap chain.
Portable
DXUP-1.1.0-beta.7-portable.zip contains the DLLs in x64 and x86, dxup.conf.example and LICENSE.txt. Copy the DLLs of the API the game uses (and the game's bitness) next to its executable. d3d8.dll, d3d9.dll and ddraw.dll run on Direct3D 12 only with DXUP's d3d11.dll and dxgi.dll beside them. Without the manager, the diagnostics are empty files next to the DLLs: dxup_info_log.txt (log), dxup_debug.txt (debug layer), dxup_frame_dump.txt (frames, glitch reports and the self-test).
Notes
Using DXUP with online games that run anti-cheat software is at your own risk. See beta 6 (logs of what is left out), beta 5 (no pipeline waits at a game's first start), beta 4 (DXUP's own Direct3D 7-9 shader compiler), beta 3, beta 2 and beta 1 for the other changes since 1.0.0.
DXUP 1.1.0 Beta 6
DXUP runs Direct3D 7, 8, 9, 10 and 11 games on Direct3D 12. This is the sixth beta of version 1.1: it fixes Direct3D 9 objects that could go missing, and DXUP's logs now say when something is left out.
Note: this project was written by an AI. The code, the tests and the documentation were written by Anthropic's Claude (Claude Code). The maintainer directs the work and tests it in games.
Installation
Run DXUP-Setup-1.1.0-beta.6.exe (8 MB). It installs to C:\Program Files\DXUP and adds DXUP Manager to the Start menu, or updates an existing installation and every game's DXUP copy (close DXUP Manager first). Requirements: 64-bit Windows 10/11, .NET Framework 4.8.1 and a GPU with a Direct3D 12 driver. The setup is unsigned, so Windows SmartScreen may ask for confirmation.
Bug reports in two clicks
In DXUP Manager, select the game and go to Diagnostics:
- Record a problem, then start the game, reproduce the problem and quit the game.
- Create diagnostic package: a zip goes to your desktop and the recording goes off again.
For rendering errors, Windows' "Graphics Tools" (Settings › System › Optional features) add the D3D12 debug layer's checks to the log.
Changes since beta 5
Direct3D 9: missing objects
- Triangles whose vertices lie outside the range the game gives are drawn again. Games tell Direct3D 9 which vertices an indexed draw uses (
MinVertexIndex,NumVertices), and many give a range smaller than what their indices reach. Direct3D 9 drivers do not rely on it; DXUP uploaded only that range, so the triangles using the vertices beyond it were missing. DXUP now takes the range from the indices themselves (kept per index buffer range until the game writes it again). A new test compares it with Windows' Direct3D 9. - Draws with more than 8 MB of vertices from application memory were dropped; DXUP's buffer for them now grows instead.
Logs that notice what is left out
Missing objects left no trace in the logs before. Now:
- Every draw DXUP cannot draw is logged once per cause, with the reason: no vertex declaration, a shader that did not compile, no input layout (with the declaration and what the shader reads), no index buffer. With Record a problem, how many draws per frame were not drawn, for Direct3D 10/11 too (no vertex shader, a pipeline that failed to compile or is still compiling with
d3d11.asyncShaders). - Failed calls of the game (textures, surfaces, buffers, queries, locks) are logged once each with their parameters: games leave out what they cannot create.
- Draws whose indices reach beyond the vertex range the game gave are logged (the first eight), and with the info log the formats a game asked for that DXUP does not offer.
Known issues
- The missing-object fix is checked against Windows' Direct3D 9 in tests; whether it covers every case in Risen 3 is not checked in the game yet. Diagnostic packages of games with missing objects now name the draws DXUP left out, which helps with reports.
- DXUP is tested mainly on one PC with an NVIDIA GeForce RTX 5090, and in a few games on Intel Iris Xe graphics. Other NVIDIA, AMD and Intel GPUs are hardly tested yet; bug reports are welcome.
- Some Steam games with Steam's DRM (Mirror's Edge) crash when RenderDoc starts them.
- Unreal Engine 4 games (Kena, Orcs Must Die! 3) and The Witcher 3 take 3-10% more GPU time than native Direct3D 11.
dxgi.renderScalespeeds up only games that size their rendering by the swap chain.
Portable
DXUP-1.1.0-beta.6-portable.zip contains the DLLs in x64 and x86, dxup.conf.example and LICENSE.txt. Copy the DLLs of the API the game uses (and the game's bitness) next to its executable. d3d8.dll, d3d9.dll and ddraw.dll run on Direct3D 12 only with DXUP's d3d11.dll and dxgi.dll beside them. Without the manager, the diagnostics are empty files next to the DLLs: dxup_info_log.txt (log), dxup_debug.txt (debug layer), dxup_frame_dump.txt (frames and glitch reports).
Notes
Using DXUP with online games that run anti-cheat software is at your own risk. See beta 5 (no pipeline waits at a game's first start), beta 4 (DXUP's own Direct3D 7-9 shader compiler), beta 3, beta 2 and beta 1 for the other changes since 1.0.0.
DXUP 1.1.0 Beta 5
DXUP runs Direct3D 7, 8, 9, 10 and 11 games on Direct3D 12. This is the fifth beta of version 1.1: at a game's very first start, DXUP now hardly waits for the GPU driver to compile new Direct3D 12 pipelines, also with an empty driver shader cache.
Note: this project was written by an AI. The code, the tests and the documentation were written by Anthropic's Claude (Claude Code). The maintainer directs the work and tests it in games.
Installation
Run DXUP-Setup-1.1.0-beta.5.exe (8 MB). It installs to C:\Program Files\DXUP and adds DXUP Manager to the Start menu, or updates an existing installation and every game's DXUP copy (close DXUP Manager first). Requirements: 64-bit Windows 10/11, .NET Framework 4.8.1 and a GPU with a Direct3D 12 driver. The setup is unsigned, so Windows SmartScreen may ask for confirmation.
Bug reports in two clicks
In DXUP Manager, select the game and go to Diagnostics:
- Record a problem, then start the game, reproduce the problem and quit the game.
- Create diagnostic package: a zip goes to your desktop and the recording goes off again.
For rendering errors, Windows' "Graphics Tools" (Settings › System › Optional features) add the D3D12 debug layer's checks to the log.
Measured
Trine 2's first start on an RTX 5090, with NVIDIA's shader cache of the game deleted before every run:
| beta 4 | beta 5 | |
|---|---|---|
| Draws waiting for a pipeline | 26, 83 ms in all | 15, 3.4 ms in all |
| Slowest pipeline | 35 ms | 3.1 ms |
| Frames over 16.7 ms in the first 30 s | 15-17 | 5 (later starts: 3-5) |
Changes since beta 4
Pipelines (all Direct3D versions)
- New pipelines at a game's first start no longer wait for the driver: DXUP leaves out shader outputs that nothing reads, which saves GPU time, but gave the driver shader code it had not compiled yet, so the first draw of each such pipeline waited 5 to 35 ms although DXUP had the game's shaders compiled ahead. A new pipeline now starts with the shaders the driver knows, which takes a fraction of a millisecond, and the pipeline without the unread outputs is compiled in the background and replaces it, as DXVK starts with linked pipeline libraries and compiles the optimized pipeline in the background. From the second start on, the optimized pipeline comes from the disk cache.
- A game still waits briefly for a shader it draws right after creating it, before the driver could compile it.
d3d11.asyncShaders = true(Shader compilation: In the background in the manager) removes these waits too; what needs a pipeline that is not ready is then drawn a few frames later instead, and something drawn only once while loading can stay missing until it is drawn again. The manager's hint now says so.
Tests
- New test
pixel_output_masks_later; the Direct3D 8 tests also run 64-bit, against Windows' 32-bit images.
Known issues
- DXUP is tested mainly on one PC with an NVIDIA GeForce RTX 5090, and in a few games on Intel Iris Xe graphics. Other NVIDIA, AMD and Intel GPUs are hardly tested yet; bug reports are welcome.
- Some Steam games with Steam's DRM (Mirror's Edge) crash when RenderDoc starts them.
- Unreal Engine 4 games (Kena, Orcs Must Die! 3) and The Witcher 3 take 3-10% more GPU time than native Direct3D 11.
dxgi.renderScalespeeds up only games that size their rendering by the swap chain.
Portable
DXUP-1.1.0-beta.5-portable.zip contains the DLLs in x64 and x86, dxup.conf.example and LICENSE.txt. Copy the DLLs of the API the game uses (and the game's bitness) next to its executable. d3d8.dll, d3d9.dll and ddraw.dll run on Direct3D 12 only with DXUP's d3d11.dll and dxgi.dll beside them. Without the manager, the diagnostics are empty files next to the DLLs: dxup_info_log.txt (log), dxup_debug.txt (debug layer), dxup_frame_dump.txt (frames and glitch reports).
Notes
Using DXUP with online games that run anti-cheat software is at your own risk. See beta 4 (DXUP's own Direct3D 7-9 shader compiler), beta 3, beta 2 and beta 1 for the other changes since 1.0.0.
DXUP 1.1.0 Beta 4
DXUP runs Direct3D 7, 8, 9, 10 and 11 games on Direct3D 12. This is the fourth beta of version 1.1: DXUP now compiles Direct3D 7-9 shaders itself, straight from the game's shader code, in a fraction of a millisecond, as DXVK does with its own compiler. Microsoft's HLSL compiler, which took 20 to 120 ms for a large shader and showed as stutter at a game's first start, is no longer needed for them.
Note: this project was written by an AI. The code, the tests and the documentation were written by Anthropic's Claude (Claude Code). The maintainer directs the work and tests it in games.
Installation
Run DXUP-Setup-1.1.0-beta.4.exe (8 MB). It installs to C:\Program Files\DXUP and adds DXUP Manager to the Start menu, or updates an existing installation and every game's DXUP copy (close DXUP Manager first). Requirements: 64-bit Windows 10/11, .NET Framework 4.8.1 and a GPU with a Direct3D 12 driver. The setup is unsigned, so Windows SmartScreen may ask for confirmation.
Bug reports in two clicks
In DXUP Manager, select the game and go to Diagnostics:
- Record a problem, then start the game, reproduce the problem and quit the game.
- Create diagnostic package: a zip goes to your desktop and the recording goes off again.
For rendering errors, Windows' "Graphics Tools" (Settings › System › Optional features) add the D3D12 debug layer's checks to the log.
Measured
On an RTX 5090, with NVIDIA's shader cache of the game deleted before every run:
| beta 3 | beta 4 | |
|---|---|---|
| Compiling Trine 2's 61 shaders | 942 ms (slowest 50 ms) | 5.5 ms (slowest 0.2 ms) |
| Compiling Mirror's Edge's 506 shaders | 9.3 s (slowest 56 ms) | 55 ms (slowest 0.3 ms) |
| Trine 2, first start: shaders compiled while drawing | about 30, 20-120 ms each | 0 |
| Trine 2, first start: draws waiting for a pipeline | 32, 122 ms in all | 26, 83 ms in all |
| GPU time of the shaders | the same (within 1 %) |
Changes since beta 3
DXUP's own shader compiler (Direct3D 7, 8 and 9)
- Shaders are compiled by DXUP itself, from the game's Direct3D 9 shader code straight to the code Direct3D 12 takes (DXBC), when the game creates them, as Direct3D 9 drivers compile when a shader is created. Before, DXUP translated each shader to HLSL and compiled that with Microsoft's compiler: a large shader took 20 to 120 ms, and a game drawing a shader right after creating it waited for that.
- Every instruction of shader models 1.1 to 3.0 is compiled the way the HLSL path did. Checked against Windows' Direct3D 9 in 35 test cases, against the HLSL path with all shaders recorded in Trine 2, Mirror's Edge and Borderlands (636 in all, all drawn the same) and with over 3000 random shaders of every shader model.
- Shaders DXUP's compiler does not handle go through Microsoft's compiler as before (none in the games tested).
d3d9.shaderCompiler = fxcindxup.confuses Microsoft's compiler for all.
Pipelines (all Direct3D versions)
- More compiler threads while a game loads: games create their shaders by the thousand while they load, and DXUP warms each shader's stage in the driver in the background. While many of these wait, up to half the CPU's threads (at most 12, at the lowest priority) compile instead of a quarter, so the stages are ready sooner.
Known issues
- At a game's very first start, the GPU driver still compiles new Direct3D 12 pipelines while the game draws its first frames (logos, loading screens), most of all with an empty driver shader cache.
- DXUP is tested mainly on one PC with an NVIDIA GeForce RTX 5090, and in a few games on Intel Iris Xe graphics. Other NVIDIA, AMD and Intel GPUs are hardly tested yet; bug reports are welcome.
- Some Steam games with Steam's DRM (Mirror's Edge) crash when RenderDoc starts them.
- Unreal Engine 4 games (Kena, Orcs Must Die! 3) and The Witcher 3 take 3-10% more GPU time than native Direct3D 11.
dxgi.renderScalespeeds up only games that size their rendering by the swap chain.
Portable
DXUP-1.1.0-beta.4-portable.zip contains the DLLs in x64 and x86, dxup.conf.example and LICENSE.txt. Copy the DLLs of the API the game uses (and the game's bitness) next to its executable. d3d8.dll, d3d9.dll and ddraw.dll run on Direct3D 12 only with DXUP's d3d11.dll and dxgi.dll beside them. Without the manager, the diagnostics are empty files next to the DLLs: dxup_info_log.txt (log), dxup_debug.txt (debug layer), dxup_frame_dump.txt (frames and glitch reports).
Notes
Using DXUP with online games that run anti-cheat software is at your own risk. See beta 3, beta 2 and beta 1 for the other changes since 1.0.0.
DXUP 1.1.0 Beta 3
DXUP runs Direct3D 7, 8, 9, 10 and 11 games on Direct3D 12. This is the third beta of version 1.1: Direct3D 9 games stutter much less when shaders compile. As with DXVK, render states no longer make DXUP compile shaders anew while drawing, and the shaders of earlier runs are compiled as soon as the game starts. Also new: fixes for Trine 2 and for full screen on scaled displays, and games can be shown a GPU of another maker.
Note: this project was written by an AI. The code, the tests and the documentation were written by Anthropic's Claude (Claude Code). The maintainer directs the work and tests it in games.
Installation
Run DXUP-Setup-1.1.0-beta.3.exe (8 MB). It installs to C:\Program Files\DXUP and adds DXUP Manager to the Start menu, or updates an existing installation and every game's DXUP copy (close DXUP Manager first). Requirements: 64-bit Windows 10/11, .NET Framework 4.8.1 and a GPU with a Direct3D 12 driver. The setup is unsigned, so Windows SmartScreen may ask for confirmation.
Bug reports in two clicks
In DXUP Manager, select the game and go to Diagnostics:
- Record a problem, then start the game, reproduce the problem and quit the game.
- Create diagnostic package: a zip goes to your desktop and the recording goes off again.
For rendering errors, Windows' "Graphics Tools" (Settings › System › Optional features) add the D3D12 debug layer's checks to the log.
Measured
Trine 2 (Direct3D 9) on an RTX 5090, the first 30 seconds from the start, with NVIDIA's shader cache of the game deleted before every run:
| beta 2 code | beta 3 | |
|---|---|---|
| First start: frames over 16.7 ms | 19-30 | 10 |
| First start: longest frame | up to 1412 ms | 67 ms |
| Second start: shaders compiled while drawing | about 20-40 | 0 |
| Second start: draws waiting for a pipeline | some | 0 |
Changes since beta 2
Shader stutter
- Fewer shader versions compiled while drawing. Some render states made DXUP compile another version of a shader at its first draw, and that draw also waited for a pipeline new to the driver. The common ones no longer change the shader, as with DXVK: ATI2 normal maps are read through the texture view's channel mapping, and integer vertex formats (UBYTE4, SHORT2/4) are converted by the shader by a value DXUP passes at draw time. Rarer states (user clip planes, shadow map samplers, a pixel shader reading more than its vertex shader writes) still need a version of their own; from the second start on these are compiled ahead too.
- The shaders of earlier runs are compiled at the game's start, with every version the game drew, before the game asks for them (
dxup_pso_cache\d3d9_variants.binnext to the game). This also holds after DXUP updates that change how shaders are translated: they are compiled again from the game's own shader code right at the start, not when they are first drawn. - 0 times infinity or NaN, cheaper. Beta 2 computed 0 times infinity or NaN as 0 in all multiplications, as NVIDIA's Direct3D 9 driver does. Emulating that in
mulandmadnearly doubled what shaders cost to compile (Trine 2: 785 ms → 1439 ms for 61 shaders, 79 % more code for the driver), which showed as stutter. DXUP now does as DXVK on GPUs without such a multiply: 0 in the dot products (as NVIDIA's and Intel's drivers), IEEE inmulandmad(as Intel's driver).d3d9.floatEmulation = strictindxup.confrestores beta 2's behavior,falseturns it off.
Fixes
- Trine 2 crashed at the start while filling its ATI2 normal maps: Direct3D 9 drivers give ATI1 and ATI2 textures the row pitch of an 8-bit format, DXUP gave the pitch of a row of blocks. ATI2 now also reads green and red in the drivers' order (checked against Windows' Direct3D 9 in a new test).
- Full screen on scaled displays (125 %, 150 % ...): Direct3D 7-9 games without DPI awareness rendered into part of the screen (Trine 2 at 150 %: 2560x1440 of 3840x2160). Windows' own Direct3D 9, DirectDraw and DXGI make such games DPI aware when they go full screen; DXUP now does the same.
- Direct3D 9 vertices with a NaN depth (Mirror's Edge has NaN in its view-projection matrix in some frames) are handled as the driver of the GPU's maker handles them: Intel's draws them at depth 0, NVIDIA's leaves them out. Before, they were always left out. This is the suspected cause of buildings flickering black on Intel Iris Xe, not yet confirmed in the game.
d3d9.nanDepth = zeroordiscardsets it.
New
- Report the GPU as another maker's:
dxgi.spoofVendor = nvidia,amdorintelindxup.conf, or Report GPU as in DXUP Manager. The game sees a GeForce RTX 3060, Radeon RX 6700 XT or Arc A770 with a driver version in that maker's numbering, in DXGI (Direct3D 10 and 11), Direct3D 9 and 8 and DirectDraw. DXUP keeps rendering on the real GPU. For games that refuse a GPU or take other paths depending on the maker.dxgi.customVendorId,dxgi.customDeviceIdanddxgi.customDeviceDescset the ids (hex) and the name directly, as in DXVK. Games that ask the GPU's own interfaces (NVAPI, AMD AGS) or Windows (WMI, registry) still see the real one.
Diagnostics
- With the detailed log, every Direct3D 9 shader compiled while drawing is logged with the render states that asked for it, and the glitch log shows a shader's HLSL as DXUP runs it.
- Glitch reports skip camera motion: only compact patches that flicker for one or two frames are reported.
Known issues
- At the very first start of a Direct3D 9 game, shaders the game creates just before drawing them are still compiled while drawing (Microsoft's shader compiler needs 20-70 ms for large shaders). From the second start on they are compiled ahead.
- DXUP is tested mainly on one PC with an NVIDIA GeForce RTX 5090, and in a few games on Intel Iris Xe graphics. Other NVIDIA, AMD and Intel GPUs are hardly tested yet; bug reports are welcome.
- Some Steam games with Steam's DRM (Mirror's Edge) crash when RenderDoc starts them.
- Unreal Engine 4 games (Kena, Orcs Must Die! 3) and The Witcher 3 take 3-10% more GPU time than native Direct3D 11.
dxgi.renderScalespeeds up only games that size their rendering by the swap chain.
Portable
DXUP-1.1.0-beta.3-portable.zip contains the DLLs in x64 and x86, dxup.conf.example and LICENSE.txt. Copy the DLLs of the API the game uses (and the game's bitness) next to its executable. d3d8.dll, d3d9.dll and ddraw.dll run on Direct3D 12 only with DXUP's d3d11.dll and dxgi.dll beside them. Without the manager, the diagnostics are empty files next to the DLLs: dxup_info_log.txt (log), dxup_debug.txt (debug layer), dxup_frame_dump.txt (frames and glitch reports).
Notes
Using DXUP with online games that run anti-cheat software is at your own risk. See beta 2 and beta 1 for the other changes since 1.0.0.
DXUP 1.1.0 Beta 2
DXUP runs Direct3D 7, 8, 9, 10 and 11 games on Direct3D 12. This is the second beta of version 1.1: Direct3D 9 games now compute like Windows' Direct3D 9 where infinities or NaN meet zero (a likely cause of objects flickering black), and DXUP finds rendering glitches by itself and logs their cause.
Note: this project was written by an AI. The code, the tests and the documentation were written by Anthropic's Claude (Claude Code). The maintainer directs the work and tests it in games.
Installation
Run DXUP-Setup-1.1.0-beta.2.exe (7 MB). It installs to C:\Program Files\DXUP and adds DXUP Manager to the Start menu, or updates an existing installation and every game's DXUP copy (close DXUP Manager first). Requirements: 64-bit Windows 10/11, .NET Framework 4.8.1 and a GPU with a Direct3D 12 driver. The setup is unsigned, so Windows SmartScreen may ask for confirmation.
Bug reports in two clicks
In DXUP Manager, select the game and go to Diagnostics:
- Record a problem, then start the game, reproduce the problem and quit the game.
- Create diagnostic package: a zip goes to your desktop and the recording goes off again.
For rendering errors, Windows' "Graphics Tools" (Settings › System › Optional features) add the D3D12 debug layer's checks to the log.
Changes since beta 1
Fixes
- Direct3D 9: 0 times infinity or NaN. Windows' Direct3D 9 drivers give 0 for such products in
mul,madand the dot products; DXUP's shaders gave NaN, which is stored as black. Mirror's Edge, for one, has NaN in some shader constants. DXUP now computes as the drivers do (checked against Windows' Direct3D 9 in a new test);d3d9.floatEmulation = falseindxup.confrestores the old behavior. This is the suspected cause of buildings flickering black reported on Intel Iris Xe graphics, not yet confirmed there.
Diagnostics
- Glitch reports: while recording, DXUP watches every presented frame. An area that goes dark or bright for one or two frames and is back to normal afterwards is logged with its position, the glitch frame and the frame before are saved (in the package as
glitches/*.png), and the log lists the draw calls that changed against the frame before (shaders, targets, textures, constant buffers, states, dropped draws). Dark objects moving across the picture and video frames are skipped. - NaN and infinite shader constants in Direct3D 9 games are logged, with the shader and the constants it reads.
- The diagnostic package names DXUP Manager's build (version and commit), so betas can be told apart.
Known issues
- DXUP is tested on one PC with an NVIDIA GeForce RTX 5090. Other NVIDIA, AMD and Intel GPUs are hardly tested yet; bug reports are welcome.
- Some Steam games with Steam's DRM (Mirror's Edge) crash when RenderDoc starts them.
- Unreal Engine 4 games (Kena, Orcs Must Die! 3) and The Witcher 3 take 3-10% more GPU time than native Direct3D 11.
dxgi.renderScalespeeds up only games that size their rendering by the swap chain.
Portable
DXUP-1.1.0-beta.2-portable.zip contains the DLLs in x64 and x86, dxup.conf.example and LICENSE.txt. Copy the DLLs of the API the game uses (and the game's bitness) next to its executable. d3d8.dll, d3d9.dll and ddraw.dll run on Direct3D 12 only with DXUP's d3d11.dll and dxgi.dll beside them. Without the manager, the diagnostics are empty files next to the DLLs: dxup_info_log.txt (log), dxup_debug.txt (debug layer), dxup_frame_dump.txt (frames and glitch reports).
Notes
Using DXUP with online games that run anti-cheat software is at your own risk. See beta 1 for the other changes since 1.0.0.
DXUP 1.1.0 Beta 1
DXUP runs Direct3D 7, 8, 9, 10 and 11 games on Direct3D 12. This is a beta of version 1.1: it fixes a likely cause of corrupted images on other GPUs and makes bug reports a matter of two clicks. Please report problems with a diagnostic package (see below).
Note: this project was written by an AI. The code, the tests and the documentation were written by Anthropic's Claude (Claude Code). The maintainer directs the work and tests it in games.
Installation
Run DXUP-Setup-1.1.0-beta.1.exe (7 MB). It installs to C:\Program Files\DXUP and adds DXUP Manager to the Start menu, or updates an existing installation and every game's DXUP copy (close DXUP Manager first). Requirements: 64-bit Windows 10/11, .NET Framework 4.8.1 and a GPU with a Direct3D 12 driver. The setup is unsigned, so Windows SmartScreen may ask for confirmation.
Bug reports in two clicks
In DXUP Manager, select the game and go to Diagnostics:
- Record a problem, then start the game, reproduce the problem and quit the game.
- Create diagnostic package: a zip goes to your desktop and the recording goes off again.
The zip holds DXUP's log (with the D3D12 debug layer's messages when Windows' "Graphics Tools" feature is installed), the game's settings, Windows, CPU, GPU and driver versions, the game's crash reports and the last four frames as images. User and computer names and the user folder are replaced. Attach it to an issue with a short description. The game stays playable while recording (Mirror's Edge: 225 fps with everything on).
Changes since 1.0.0
Fixes
- Render targets on other GPUs: render targets that get their memory on first use (2 MB and larger) were drawn into without being cleared first. Direct3D 12 requires that, and GPUs that compress render targets can show garbage otherwise; the debug layer reported it in Mirror's Edge and Far Cry New Dawn. They are now cleared to zero, as new Direct3D 11 resources are. This is the suspected cause of the corrupted images reported on a GeForce GT 1030, a Radeon HD 7950 and a GeForce RTX 4070, but not yet confirmed on them.
- Older APIs in 64-bit games: DXUP Manager copied
d3d9.dll,d3d8.dllandddraw.dllonly when the game's executable used them. Games whose engine DLL loads Direct3D 9 (Risen) got onlyd3d11.dllanddxgi.dll. DLLs next to the executable count now, and DXUP DLLs of an older version in a game folder are brought up to date. - Detailed log: it slowed games down to a crawl (Mirror's Edge: 3.5 instead of 240 fps) and wrote 66 MB in 80 seconds. It now costs almost nothing and stays small.
- OptiScaler: DXUP's
d3d11.dllanddxgi.dllshare their DXGI adapters, as OptiScaler's overlay hooks expect.
DXUP Manager
- Diagnostics: "Record a problem" and "Create diagnostic package" (see above), plus single switches for the detailed log, D3D12 debug layer, GPU-based validation, DRED, crash log and saved frames.
- Saved frames: one image every 15 seconds, the last four kept, so a report shows the screen when the problem appeared.
- RenderDoc and PIX: start a game in RenderDoc (the game is filled in) or open PIX, for developers. Steam games get their Steam app ID, as they stop with "Application load error 5:0000065434" when started directly. PIX captures 64-bit games only, so its button is off for 32-bit games.
- Faster: the window shows at once (1.8 s instead of 4.5 s with 14 games); the games' states come in from a background check.
- Search: a search box filters the game list and the Autofind list.
Known issues
- DXUP is tested on one PC with an NVIDIA GeForce RTX 5090. Other NVIDIA, AMD and Intel GPUs are hardly tested yet; bug reports are welcome.
- Some Steam games with Steam's DRM (Mirror's Edge) crash when RenderDoc starts them.
- Unreal Engine 4 games (Kena, Orcs Must Die! 3) and The Witcher 3 take 3-10% more GPU time than native Direct3D 11.
dxgi.renderScalespeeds up only games that size their rendering by the swap chain.
Portable
DXUP-1.1.0-beta.1-portable.zip contains the DLLs in x64 and x86, dxup.conf.example and LICENSE.txt. Copy the DLLs of the API the game uses (and the game's bitness) next to its executable. d3d8.dll, d3d9.dll and ddraw.dll run on Direct3D 12 only with DXUP's d3d11.dll and dxgi.dll beside them. Without the manager, the diagnostics are empty files next to the DLLs: dxup_info_log.txt (log), dxup_debug.txt (debug layer), dxup_frame_dump.txt (frames).
Notes
Using DXUP with online games that run anti-cheat software is at your own risk.
DXUP 1.0
DXUP runs Direct3D 7, 8, 9, 10 and 11 games on Direct3D 12. This is version 1.0.
Note: this project was written by an AI. The code, the tests and the documentation were written by Anthropic's Claude (Claude Code). The maintainer directs the work and tests it in games.
Installation
Run DXUP-Setup-1.0.0.exe (7 MB). It installs to C:\Program Files\DXUP and adds DXUP Manager to the Start menu. The manager finds Steam and Battle.net games (or any .exe you pick), copies the right DLLs into each game folder (32- or 64-bit, by the game's executable) and keeps each game's settings.
- Updating: the setup keeps your games and settings and brings every game's DXUP copy up to date. Close DXUP Manager first.
- Requirements: 64-bit Windows 10/11 and .NET Framework 4.8.1. DXUP needs a GPU with a Direct3D 12 driver; without one, games run on Windows' own Direct3D 11.
The setup is unsigned, so Windows SmartScreen may ask for confirmation.
What DXUP does
- Translates DirectDraw 7 / Direct3D 7 (
ddraw.dll), Direct3D 8 (d3d8.dll), Direct3D 9 (d3d9.dll) and Direct3D 10 / 11 (d3d11.dll,dxgi.dll) to Direct3D 12, for 32- and 64-bit games. - Per-game settings, like a driver control panel: anisotropic filtering, mipmap LOD bias, MSAA and forced MSAA, supersampling (SGSSAA), VSync, pre-rendered frames, rendering at a lower resolution with DXUP's own upscaling, shader compilation in the background and precompiling the shaders of earlier runs.
Changes since 0.10.6
- License: DXUP is released under the MIT License (
LICENSE.txtin the installation and in the portable zip). - Build paths: the DLLs no longer contain the folder they were built in (their PDB is named by file name only).
- Exception handler: with the diagnostic
dxup_exception_trace.txt, DXUP's exception handler could end games that raise exceptions on threads nearly out of stack (Just Cause 2 crashed 5 s after start). It now leaves such threads alone. - Upscalers: this release comes without the DLSS, FSR and XeSS runtimes. DXUP Manager shows the upscaler settings only when they are installed.
Known issues
- DXUP is tested on one PC with an NVIDIA GeForce RTX 5090. Other NVIDIA, AMD and Intel GPUs are hardly tested yet; bug reports are welcome.
- Unreal Engine 4 games (Kena, Orcs Must Die! 3) and The Witcher 3 take 3-10% more GPU time than native Direct3D 11. Unreal's own Direct3D 12 renderer is about as slow in the same scenes.
dxgi.renderScalespeeds up only games that size their rendering by the swap chain.- With forced MSAA, Far Cry New Dawn runs slower than with 0.8.0. Its stencil-tested decals are now drawn, while 0.8.0 dropped them.
Portable
DXUP-1.0.0-portable.zip contains the DLLs in x64 and x86, dxup.conf.example and LICENSE.txt. Copy the DLLs of the API the game uses (and the game's bitness) next to its executable. d3d8.dll, d3d9.dll and ddraw.dll run on Direct3D 12 only with DXUP's d3d11.dll and dxgi.dll beside them.
Notes
Using DXUP with online games that run anti-cheat software is at your own risk.