DirectX Versions

engine games (prior to ), has a DirectX level systems to provide compatibility with older (DX8 or earlier) or weaker DirectX 9-capable GPUs, by disabling certain graphical features not available (or works poorly) in older/weaker graphics card and lowering the graphical settings.
Each section has a description of what each version of DirectX is capable of, for reference when creating fallback materials for older GPUs with lower DirectX feature levels. Under each heading are features not available in previous versions of DirectX.
To run the game with lower DirectX levels on the newer graphics card, use the cvar, or command line arguments. Set it to 60, 70, 80, 81, 90 or 95 to set the corresponding DirectX version; it is not possible to run at a higher level than the graphics hardware is capable of. 
==DirectX levels==
=== DirectX 6 compatibility level ===
Referred to as "DirectX 6.0" on video settings and "". DirectX 6-class graphics cards include the TNT2 and Matrox G400.
These graphics card and this DirectX version are not officially supported by Valve, but still functional until Source 2007.
=== DirectX 7 compatibility level ===
Referred to as "DirectX 7.0" on video settings and "". DirectX 7-class graphics cards include the GeForce 256, 2, 2MX and 4MX cards and the R100 (7xxx) series.
Additionally, RTX Remix games such as and the upcoming uses DirectX 7 level, then replacing the textures, models and lighting with PBR textures and ray-traced lighting, then renders in Vulkan (using DXVK) before converting again to Direct3D 12 (DX12).
; Features
* Blob shadows
* Displacement map texture blending
=== DirectX 8 compatibility level ===
Referred to as "DirectX 8.0" on video settings and "". DirectX 8-class graphics cards include the GeForce4 Ti and most of the GeForce FX 5x00 series (while technically DirectX 9 cards, the latter suffer from major performance problems and graphical glitches with the DX9 rendering path).
; Features
* Refractions with the use of a du/dv map
* Dynamic shadows
* Directional lighting on world brushes using normal maps
* Cube-mapped specular effects
* Cube-mapped water
* Low-quality reflective water (used sparingly)
=== DirectX 8.1 compatibility level ===
Referred to as "DirectX 8.1" on video settings and "". DirectX 8.1-class graphics cards include the GeForce FX 5800 and 5900 and the 8500/9100 and 9000/9200 cards.
Like most of the GeForce FX 5x00 series card, both FX 5800 and 5900 (which are DX9 cards) also suffers from performance issues and graphical glitches on DirectX 9 level. But unlike other GeForce FX 5x00 cards, it runs on DirectX 8.1 level which has soft dynamic shadows.
; Features
* Soft edge dynamic shadows
=== DirectX 9 (Shader Model 2)===
 
Introduced in December 2002, referred to as "DirectX 9.0" and "".
DirectX 9-class graphics cards include the GeForce 6 series (6600, 6800) and the 9500/9600, 9700/9800, X300/X600 and X800 cards. 
; Features
* Shader Model 2.0, 2.0a and 2.0b
* Refractions with the use of a bump-map
* High-quality reflective water (used frequently)
* Softer edge dynamic shadows
** This means that the "High" shadows detail option will be visible and can be selected.
** To enable High shadows on Intel GPUs, use "-force_vendor_id 0x10DE -force_device_id 0x1088", tricking the game into thinking that the user has a "NVIDIA GeForce GTX 590", enabling High shadows.
** The command above may not be available in older Source games prior to 2012/2013, you can workaround this using .
* Normal-mapped lighting on models
* Improved-quality specular effects
Since :
* High dynamic range rendering (disabled by default)
* Phong shading
* Color Correction
Since :
* Motion Blur
Since 20th anniversary:
* Defaults to MSAA 4X
* LOD set to "0" ()
* Detail distance up to "4096"
=== DirectX 9.0+ - Shader Model 3===
Referred to as "DirectX 9.0c", "" (Mac/Linux) and "" (Windows), aswell as "Direct3D 9.0c". This is the last version of Direct3D that support all version of Windows 98/98SE/ME/2000 and XP.
DirectX 9.0+/Direct3D 9.0c class graphics card includes Nvidia GeForce 6 series (6600, 6800) and ATI Radeon X1000.
; Supported games
 (or DirectX 9.0c) was first introduced with , and later . games and above requires DirectX 9.0c capable GPU in order to run.
; Features
* Shader Model 3.0
* Lightwarp support
* High dynamic range rendering (enabled by default)
Since 20th anniversary:
* Defaults to MSAA 4X
* LOD set to "0" ()
* Detail distance up to "4096"
* Bicubic lightmap
==== Direct3D 9Ex / Windows Aero DirectX extensions ====
Also referred to as "DirectX 9Ex", "DX9Ex", or "D3D9Ex". This feature is exclusive to and engine branch. DX9Ex may improve/reduce performance on certain hardware, depending on the graphics driver.
DX9Ex is only available on Windows Vista or later.
In , DX9Ex can be disabled/enabled by toggling the "Windows Aero extensions" in Video Options > Advanced, or through console command. 
In , DX9Ex can be disabled using the command line.
=== DirectX 9.0+ level on other platforms ===
==== Game consoles (dxlevel 97/98) ====
Referred to as "" (PS3) and "" (Xbox 360). Made specifically for both and . Equivalent to (Shader Model 3) on PC.
; Features
* GPU Particle Physics
==== Mac/Linux/Android (dxlevel 92) ====
These platform uses , which is equivalent to both and , but use the translator ToGL (which has partial Shader Model 3.0 support) to convert the DirectX calls to OpenGL calls, or uses DXVK to convert DirectX calls to Vulkan. Only on and , and other platforms/operating systems that do not support Direct3D and DirectX.
===DirectX 10 ===
Introduced with the release of (and it was only supported on Vista or later), DirectX 10 (and D3D10) is not supported on . Referred to as "". 
DirectX 10-class graphics cards include the GeForce 8/9/100/200/300 series, Intel GMA X3100, X3500, GMA 4500, and the HD 2000/3000 series cards.
While Intel HD Graphics (2010), Intel HD 2000/3000 is technically a DX10 card, Source by default (according to ) forces it to run at instead of , even if you launch the game for the first time with Nvidia/AMD high performance GPUs on a laptop with dual switchable GPU (integrated and dedicated). Also similarly on these Nvidia and ATI/AMD card, it will always run on , since none of the Source engine game actually runs on D3D10 (but Dota 2 (pre-Reborn) and SFM, does use DX10 hardware/feature level.
; Features
*Unified shader pipeline (fixed-function pipeline has been dropped)
*Shader Model 4.x
; Supported games
While is mentioned in on all games since and above (and used by default on some systems), none of the Source engine branch actually supports and use Direct3D 10.Additionally, Valve later said that DirectX 9 is still sufficient, therefore no Source engine games actually uses Direct3D 10. All of the DX10 features shown in that PDF file was already supported on "" (DirectX 9 SM 3.0) and (which uses "").
==== D3D9 renderer with DX10 level ====
In Source Filmmaker by default, aswell as (on some systems) up to the original release of (except and ), these games runs on DX10 level, but the renderer still remains on Direct3D 9. In and , DX10 level can be only seen when using SourceMod ( command).
===DirectX 11 === 
Referred to as "".
DirectX 11-class graphics cards include the GeForce 400 (except GeForce 405) series, Intel HD Graphics 2500, HD 4000 (2012), and the HD 5000 series.
Like previous Intel graphics cards, Intel HD 2500/4000 is technically a DX11 card, Source by default (according to with "Intel Unknown" profile) forces it to run at instead of , even if you launch the game for the first time with Nvidia/AMD high performance GPUs on a laptop with dual switchable GPU (integrated and dedicated).
; Features
*Shader Model 5.0
*Multithreaded rendering
*Support for Tessellation
; Supported games
 natively supports and runs on Direct3D 11 by default, but Source 2 also supports Direct3D 9 for older DX9 GPUs (support was dropped in 2021 with Dota 2 update, with only SteamVR Home still support DX9). was the first branch that supported D3D11.
Direct3D 11 also has backward compatibility support for DirectX 10 or earlier feature level cards, but some later games may require DirectX 11 level cards.
* All games
** Source 2's VRAD can also recognize (DX12 level), but will be clamped to (DX11) or (DX11.1).
* 
* 
* (introduced in later updates, but the game still uses level instead.)
=== DirectX 12 ===
Introduced in 2015, later backported to in 2019. D3D12 and DX12 are not supported on or . Referred to as "". 
DirectX 12-class graphics cards include the GeForce 900 series, Intel HD Graphics (from 2015-2016), and the 200 (GCN 2.0), Radeon 300 series cards.
Like previous Intel graphics cards, while these are technically a DX12 card, Source by default (according to with "Intel Unknown" profile) forces it to run at instead of , even if you launch the game for the first time with Nvidia/AMD high performance GPUs on a laptop with dual switchable GPU (integrated and dedicated).
; Features
*Low-level rendering API, similar to Vulkan
*Shader Model 5.1
*Ray tracing (since October 2018 (1809) Update, requires RT-capable GPUs)
*Dynamic refresh rate (since )
; Supported games
* - using command line argument - enables Direct3D 12.
* All games using (including ) - converts D3D9 (DX7 level) to Vulkan then converted again to D3D12.
== dxsupport.cfg ==
 is a file located at the folder of the game. It is used to set the graphical settings (MSAA, anisotropic filtering, etc.) or DirectX versions for a specific graphics card listed on the file. Starting with Left 4 Dead, is used for the same purpose.
For example, on the system with GeForce FX 5900, the game will first detect the exact card and load the "GeForce FX 5900" profile according to its "VendorID" (0x10de) and "DeviceID" (0x0334), then set the default launch resolution to 800x600, DirectX level 8.1 (with max level 9.0), disable motion blur and set Anisotropic filtering to 2X. The GeForce FX 5900 along with other FX 5x00 series are technically DX9 card, but as mentioned above, it suffered from poor performance and graphical glitches with DX9 rendering path.
Over time, this file was later updated to include new GPUs up to the GeForce 500 series or Radeon HD 6000 series (in most Source games), and later in 20th anniversary update, changing detail props distance to "4096", set MSAA to 4x and enabling Bicubic lightmaps by default when running on DirectX 9.0+ (the command itself is mislabeled as "", instead of ""). 
This file is automatically generated by "" Perl script, which was not included anywhere on the game folder nor the officially released or code. The file can be also manually edited to include new GPUs (such as NVIDIA GeForce RTX 3060 as a example).
Additionally, also includes other DirectX versions such as , these only works on console ports (, ), L4D branch, Dota 2 and SFM (all 3 are only Source games run on DirectX 10 level, but using D3D9 renderer), or platforms such as Mac/Linux (which uses and uses ToGL to convert DirectX calls to OpenGL).
GPUs not listed on the will instead load the "NVidia/ATI/Intel Unknown" and set certain graphics to low and anti-aliasing to disabled (or MSAA 4x since 20th anniversary) by default, sometime this can cause a bug that the game defaults to DirectX 8 level even on modern hardware. The game may also default to DirectX 9.0 instead of 9.0+ (95) when running on a laptop with dual switchable GPU (integrated Intel & dedicated Nvidia/AMD), this issues does not affect integrated AMD GPUs.
DirectX levels	Graphics card/systems 	Notes
DirectX 6.0 	NVIDIA TNT2Matrox G400 	
DirectX 7.0 	NVIDIA GeForce 256, 2, 2MX and 4MXATI Radeon R100 (7xxx) 	
DirectX 8.0 	NVIDIA GeForce4 Ti and most of the GeForce FX 5x00 seriesGeForce 6600 GT / Go 6600 	
DirectX 8.1 	NVIDIA GeForce FX 5800 and 5900ATI Radeon 8500/9100 and 9000/9200 cards. 	
DirectX 9.0 	GeForce 6 series (6600, 6600 LE, 6800)ATI Radeon 9500/9600, 9700/9800, X300/X600 and X800 cardsAll Intel graphics card (incl. Intel HD 2000/3000 or later, aswell as all Intel Arc graphics card)	
DirectX 9.2 	Only ToGL or DXVK/Vulkan (except DXVK on Windows) (pre-L4D)All GPUs and renderer (post-L4D) 	
DirectX 9.0+ 	GeForce 6 series (6600, 6800) ATI Radeon X1000 	
Maximum GPU detected/listed on dxsupport.cfg:
GeForce 8800, Radeon X1000 series, Intel GMA 3000/X3000 ()
GeForce GT 520 - GTX 590, Radeon HD 6000 series, Intel HD 3000 ( - )
GeForce GT 610 - GTX 690, Radeon HD 7000/8000 series, Intel HD 4600 ()
GeForce 510 - GTX 590, GTX 680, Radeon HD 7000 series, Intel HD 4000 ()
GeForce GT 520 - GTX 590, Radeon HD 6000/7900 series, Intel HD 3000 ()
GeForce GT 710 - GTX 780 Ti, Radeon R9 200 series, Intel Unknown only ()
DirectX 10.0 	All 	, (pre-Reborn) and only. Main renderer is still D3D9.
=== RTX 3060 profile example ===
This is a example profile for the Nvidia GeForce RTX 3060, combined with ConVar taken from "Nvidia 7800 GTX" profile.
== Fix DirectX 8.0 level on modern hardware ==
On some modern hardware (or systems with newer graphics card), when you start , or (and some ) games for the first time, the game may default to DirectX 8 level, or DirectX 9.0 (on laptops with dual switchable GPUs, systems with Intel HD Graphics/Intel Arc) instead of DirectX 9.0+.
To fix this, run the game once with command line argument (or launch options), then quit the game and remove the command line (to prevent the game from changing video settings to default). The "Hardware DirectX level" should display as DirectX 9.0+ on the video options. Also, to fix "High" shadow detail missing on Intel graphics card, use command line argument (works on , , , , or later Source branches since 2012-2013), or (works on or earlier).
==Sample screenshots==
=== Canals===
These screenshots demonstrate displacement map texture blending, directional lightmaps and cubemapped then reflective water.
DirectX levels	Old Engine	New Engine () 	20th Anniversary
DirectX 6.0 	 	Unsupported since	
DirectX 7.0 	 	Unsupported since	
DirectX 8.0 	 	 	
DirectX 8.1 	 	 	
DirectX 9.0+ 	 	 	
=== Dropship===
These screenshots show shadow quality at different rendering levels, ranging from none to soft, dynamic shadows.
DirectX levels	Old Engine	New Engine () 	20th Anniversary
DirectX 6.0 	 	Unsupported since	
DirectX 7.0 	 	Unsupported since	
DirectX 8.0 	 	 	
DirectX 8.1 	 	 	
DirectX 9.0+ 	 	 	
=== Storm drain===
These screenshots show directional lightmaps and cube-mapped specular effects.
DirectX levels	Old Engine	New Engine () 	20th Anniversary
DirectX 6.0 	 	Unsupported since	
DirectX 7.0 	 	Unsupported since	
DirectX 8.0 	 	 	
DirectX 8.1 	 	 	
DirectX 9.0+ 	 	 	
=== Zombie===
These screenshots demonstrate the use of normal-mapping on models. The final shot has full, normal-mapped lighting.
DirectX levels	Old Engine	New Engine () 	20th Anniversary
DirectX 6.0 	 	Unsupported since	
DirectX 7.0 	 	Unsupported since	
DirectX 8.0 	 	 	
DirectX 8.1 	 	 	
DirectX 9.0+ 	 	 	
=== Train Station (fake volumetric lighting)===
These screenshots shows the differences between DirectX 8 and 9 on the fake volumetric lighting. While the DirectX 9.0+ volumetric lighting on Old Engine was slightly less visible compared to DX8 counterpart, the volumetric lighting on New Engine DX9 was even less visible (or nearly invisible) compared to Old Engine's DX9, probably due to a bug (or changes to the lighting/shaders) on Source 2007 and later. This has been fixed in .
DirectX levels	Old Engine	New Engine () 	20th Anniversary
DirectX 6.0 	 	Unsupported since	
DirectX 7.0 	 	Unsupported since	
DirectX 8.0 	 	 	
DirectX 8.1 	 	 	
DirectX 9.0+ 	 	 	
=== Portals===
These screenshots compares the texture and particles quality on the portals. Also added here as it's the only game which support DX7 level, but with all of it's materials replaced with PBR-capable materials and real-time ray-traced lighting.
DirectX levels 	Image
DirectX 7.0 and earlier	Unsupported and non-functional. Screenshot identical to DirectX 8.0.
DirectX 7.0( only) 	
DirectX 8.0 	
DirectX 8.1 	
DirectX 9.0+(LDR) 	
DirectX 9.0+(HDR) 	
Category:Material System
Category:Graphics API