A Vulkan port of Doom 3 BFG Edition
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Doom 3: BFG Edition


Unzip doom3vk.zip into your Doom 3 BFG Edition install folder (by default it will be C:\Program Files (x86)\Steam\steamapps\common\DOOM 3 BFG Edition). Run doom3vk.exe and enjoy; the original doom3 executable installed by Steam is left as-is if you want to do side-by-side comparisons.


Watch on Vimeo


  • As Bink code wasn't included in the GPL release, Bink videos don't render. This includes obvious things like prerendered cutscenes (of which there aren't many - most narrative is through in-game cinematics), and some less obvious things like certain GUI elements (e.g. the spinning Mars in the background of the main menu or camera views on GUI surfaces). This means that if you spot a visual element "missing" it's almost certainly a Bink element.
  • No stereoscopic rendering support since I don't have the hardware to test it on.
  • "It works on my machine", but I don't have a wide range of hardware to test on. None of this has been tested on AMD machines.
  • To the best of my knowledge in terms of an actual playthrough there is nothing in this release that is straight-up broken: application/renderer behaviour are a match between OpenGL and Vulkan, motion blur and other postprocessing effects work, Doom/DoomII work perfectly, etc. -- but this is a big game, it's possible I've missed something somewhere.
  • The executable will launch with Vulkan by default if available and fall back to OpenGL if it can't get a Vulkan context (e.g. on older hardware); if you would prefer to force launching with OpenGL instead then you can choose it from the Settings -> System menu or launch with +set r_openGL 1
  • The Brightness setting has been temporarily hidden from the UI to make room for the Renderer setting; adjustment can still be doing via config/console if needed (r_brightness accepts values between 0.5 and 2.0) - if you've adjusted this in base BFG then the config will carry over anyway.


  • Some debug render tools work (e.g. shadow stencil visualisation) but some don't (e.g. depth buffer visualisation)
  • There is still some further performance left on the table in various places.
  • The "Renderer" string in the settings menu will only display in english currently.


  • The DirectX June 2010 SDK is required for all build configurations.
  • The Vulkan SDK is required for build configurations that include Vulkan support. Without it, you can still build the GL-only configurations which will work like regular BFG. Tested on, but there's no reason not to use the latest available (or whatever your VULKAN_SDK points to).
  • If VULKAN_SDK and DXSDK_DIR are defined in your PATH then the solution will build out of the box in VS2015 with no configuration required.
  • In the solution config you can choose GL-only or GL/Vulkan combined. There is no Vulkan-only config, in part because there exists no Windows PC that can run Vulkan but not run OpenGL and there is no benefit in destructive porting.
  • There are a lot of compiler warnings which means /WX is disabled for the time being. They are all generated by code that was present in the original GPL release and arose from changes in compiler behaviour between msvc14 and earlier versions. They will be fixed over time.
  • If you modify any shaders run the buildshaders.ps1 PowerShell script and it will output the SPIRV to your doom3 install/runtime dir; you will need to update the path in the script if you installed the game to a non-default location.

Original README/license

Can be found at BFGREADME.md and COPYING.txt.