DirectX Versions: Difference between revisions
No edit summary |
|||
(417 intermediate revisions by 26 users not shown) | |||
Line 1: | Line 1: | ||
[[ | {{LanguageBar}} | ||
{{Subpage|[[Direct3D]]}} | |||
<!-- NOTES: | |||
DirectX 7.0 or below is not supported since Source 2007 (except Portal RTX which runs on modified Src13 build) | |||
DirectX 9.0+ (dxlevel 95) is highest supported on PC (or dxlevel 92 on Mac/Linux). | |||
DirectX 9.8 (dxlevel 98) is Xbox 360 only. | |||
DirectX 10 (dxlevel 100) only available on SFM/Dota 2 pre-Reborn, but the renderer is still D3D9. | |||
--> | |||
[[File:Advanced_video_options_-_DirectX_level_highlighted.png|right|thumb|300px|Advanced Video Options, with Hardware & Software DirectX level highlighted and showing a new feature classic effects. High dynamic range moved to video options. On modern systems, the "Hardware DirectX level" (also referred to as "feature level") usually should display as "DirectX 9.0+" (or "DirectX 9.0" on any Intel graphics card).]] | |||
{{Src|3.1}} engine games (prior to {{l4d|1}}), which primarily only runs on '''Direct3D 9''', 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 {{code|[[mat_dxlevel]]}} [[cvar]], or {{code|-dxlevel}} [[command line arguments]]. Set it to 60, 70, 80, 81, 90 or 95<!-- dxlevel 98 is Xbox 360 only, so don't add it here--> to set the corresponding DirectX version; it is not possible to run at a higher level than the graphics hardware is capable of. | |||
{{Confusion|There is a misconception that changing {{code|mat_dxlevel}} or {{code|dxlevel}} will also make Source engine runs on different version of Direct3D, but this is not true as changing {{code|mat_dxlevel}} (DirectX levels), '''''does not''''' actually change '''Direct3D''' version to Direct3D 8 or earlier. Source will always run on '''Direct3D 9''' renderer (or '''Direct3D 11/12''' on [[Titanfall engine branch|some]] [[Strata Source|third-party]] engine branches). However, various DirectX 9 features, assets and shaders will be disabled or [[shader fallback|fallback]] to DirectX 8 or earlier for compatibility with older graphics card, or to improve performance with older GPUs that have poor support for DirectX 9. Older DirectX levels are also used to allow {{nvidia|1}}'s {{rr|1}} (used in {{portalrtx|name}} and upcoming {{hl2rtx|name}}, and requires fixed-function shaders) to add raytracing while also replacing DX7/DX8 level assets with PBR capable materials. | |||
Additionally, DirectX levels should not be confused with Direct3D versions. As a example, GeForce FX 5x00 by default, while support DirectX 9.0a level, the game will force the card to run at DirectX 8.0 level (or Direct3D 9 feature level 8.0) by default (according to {{code|[[#dxsupport.cfg|dxsupport.cfg]]}}), due to the graphics card known for having poor performance and graphical issues in DX9 level. | |||
}} | |||
{{note|Source games and engine branches released by Valve since {{l4d|4.1}} drop support for all DirectX 8 (or earlier) cards, aswell replaced the old DirectX feature level system with new shader & effect details option and automatic GPU memory size detection. This meant that all games running on {{l4dbranch|3.1}} (or later branches) only supports DirectX 9.0c level cards.<br>The only modern Source engine branch that still supports older DirectX levels (down to 8.0) is {{src13|4.1}}. Some third-party Source engine branch or Source successor, {{source2|1}}, will only support DirectX 11 or later cards.}} | |||
{{note|Many modern PC today equipped with modern graphics card are now DirectX 12 capable (and fully support all DirectX 9 levels and features in Source). Make alternate assets or [[shader fallback]] for older DirectX versions if you want, but almost no one will see them unless they launched the game with DirectX 8 level or have a very old graphics card, or by launching a game that utilizes {{Nvidia|name}} {{rr|name}} ({{portalrtx|1}} and {{hl2rtx|1}}).}} | |||
{{Bug|tested={{hl2}} {{portal}}|only=src13|On some modern systems, or in some games, when a {{src13|name}} game is run for the first time, the game may default to DirectX 8 level (and DirectX 9.0 level instead of 9.0+ on laptops with Intel HD Graphics or switchable integrated/dedicated GPUs). Not only this would disable certain graphical options (such as "High" shadow detail), running the game in Vulkan (DXVK, through {{code|-vulkan}}) while having DirectX 8 level would cause graphical issues and crashes.<br>To fix this issues, see '''[[#Fix DirectX 8.0 level on modern hardware|Fix DirectX 8.0 level on modern hardware]]'''. After doing the steps on that section, the Hardware DirectX level should display '''DirectX 9.0+'''. Next, configure your video settings (most systems should be able to handle "High" or "Very High" texture, model, shader, shadows, etc. easily).<br>Users must remove the {{code|-dxlevel}} command line after launching the game once to prevent the game from reset the video settings to default.}} | |||
{{Bug|tested={{hl2}}|Some effects appears to be less visible, such as the [[volumetric lighting]] model used to fake the volumetric lighting effect compared to DirectX 8 level, or DirectX 9 on older version of Half-Life 2.{{Cite|1}}{{Cite|2}} See [[/Screenshots#Train Station|Screenshots - Train Station]]}} | |||
==DirectX levels== | |||
{{toc-right}} | |||
{{Important| | |||
*In {{Src04|1}} and {{Src06|1}}, DirectX 6 level was functional but unofficially supported as Half-Life 2 and other Source games requires DirectX 7 graphics card as minimum. In {{Src07|1}} or {{Src09|1}}, both DirectX 6 and 7 support has been dropped (except RTX Remix games). | |||
*Starting with {{l4dbranch|1}} and later Source games, the DirectX levels system (aswell as all DirectX 8 and early DirectX 9 cards) was dropped in favor of shader & effect details option and automatic GPU memory size detection. | |||
*While DirectX 8 level is supported in {{src07|name}}, {{src09|name}} and {{src13|1}}, not all pre-L4D branch games support them and using it may either crashes the game or simply doesn't render any props (without {{code|.dx80.vtx}}), such as {{p3|1}}, games with [[deferred renderer|deferred renderer & deferred lighting]] (including {{bms|1}}) and other third-party Source games. | |||
}} | |||
=== <span id="DirectX 6">DirectX 6 compatibility level</span> === | |||
Referred to as "'''DirectX 6.0'''" on video settings and "{{code|dxlevel 60}}". DirectX 6-class graphics cards include the {{nvidia|1}} TNT2 and Matrox G400. | |||
These graphics card and this DirectX version are not officially supported by any Source engine branches, including 2004 and 2006, but it was functional until Source 2007. | |||
=== <span id="DirectX 7">DirectX 7 compatibility level</span> === | |||
Referred to as "'''DirectX 7.0'''" on video settings and "{{code|dxlevel 70}}". DirectX 7-class graphics cards include the {{nvidia|1}} GeForce 256, 2, 2MX and 4MX cards and the {{ATIRadeon|1|nt=0}} R100 (7xxx) series. | |||
Additionally, RTX Remix games such as {{portalrtx|2}} and the upcoming {{hl2rtx|2}} 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).{{Cite|3}} | |||
; Features | |||
* Blob shadows | |||
* Displacement map texture blending | |||
=== <span id="DirectX 8.0">DirectX 8 compatibility level</span> === | |||
{{Note|1=As mentioned above, when a {{src13|1}} game is launched for the first time, it may default to DirectX 8.0, even if you have a newer GPU.<br>A bug report can be found here: [https://github.com/ValveSoftware/Source-1-Games/issues/540 Issue 540 on GitHub]}} | |||
Referred to as "'''DirectX 8.0'''" on video settings and "{{code|dxlevel 80}}". DirectX 8-class graphics cards include the {{nvidia|1}} 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).{{Cite|4}} | |||
; Features | |||
* Refractions with the use of a ''[[Du/dv_map|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) | |||
=== <span id="DirectX 8.1">DirectX 8.1 compatibility level</span> === | |||
Referred to as "'''DirectX 8.1'''" on video settings and "{{code|dxlevel 81}}". DirectX 8.1-class graphics cards include the {{nvidia|1}} GeForce FX 5800 and 5900 and the {{ATIRadeon|1|nt=0}} 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.{{Cite|4}} But unlike other GeForce FX 5x00 cards, it runs on DirectX 8.1 level which has soft dynamic shadows. | |||
; Features | |||
* Soft edge dynamic shadows | |||
=== <span id="DirectX 9">DirectX 9 (Shader Model 2)</span>=== | |||
<span id="DirectX 9.0"></span> <!-- links with #DirectX 9.0 will lead to this section aswell. --> | |||
Introduced in December 2002, referred to as "'''DirectX 9.0'''" and "{{code|dxlevel 90}}". | |||
DirectX 9-class graphics cards include the {{nvidia|name}} GeForce 6 series (6600, 6800) and the {{ATIRadeon|name|nt=0}} 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 {{pcgw|Engine:Source#.22High.22_shadow_detail_option_is_missing|other methods listed on PCGW}}. | |||
* Normal-mapped lighting on models | |||
* Improved-quality specular effects | |||
Since {{src06|2}}: | |||
* [[HDR|High dynamic range rendering]] (disabled by default) | |||
* [[$phong|Phong]] shading | |||
* [[Color Correction]] | |||
Since {{src07|2}}: | |||
* Motion Blur | |||
Since {{hl2}} 20th anniversary: | |||
* Defaults to MSAA 4X | |||
* [[LOD]] set to "0" ({{code|r_lod}}) | |||
* Detail distance up to "4096" | |||
* [[Lightmap|Bicubic lightmap]] (disabled by default) | |||
** Also available in all {{tf2branch|1}} games, but not listed on {{code|dxsupport.cfg}}. | |||
=== <span id="DirectX 9.0c">DirectX 9.0+ - Shader Model 3</span>=== | |||
<span id="DirectX 9.0+"></span> | |||
Referred to as "DirectX 9.0c", "{{Code|dxlevel 92}}" (Mac/Linux) and "{{Code|dxlevel 95}}" (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 | |||
{{code|dxlevel 95}} (or DirectX 9.0c) was first introduced with {{src04|4}} (since the release of {{dods|1}}). {{l4dbranch|1}} games and above requires DirectX 9.0c capable GPU in order to run. | |||
{{note|{{l4dbranch|1}} uses {{code|dxlevel 92}} on Windows, alongside {{code|dxlevel 100}} on some systems. This can be only seen when using [[SourceMod]] ({{code|sm_cvar mat_dxlevel}}).}} | |||
; Features | |||
* Shader Model 3.0 | |||
* [[$lightwarptexture|Lightwarp]] support | |||
* [[HDR|High dynamic range rendering]] (enabled by default) | |||
Since {{hl2}} 20th anniversary: | |||
* Defaults to MSAA 4X | |||
* [[LOD]] set to "0" ({{code|r_lod}}) | |||
* Detail distance up to "4096" | |||
* Bicubic lightmap (enabled by default) | |||
** Also available in all {{tf2branch|1}} games, but not listed on {{code|dxsupport.cfg}}. | |||
==== <span id="DX9Ex">Direct3D 9Ex / Windows Aero DirectX extensions</span> ==== | |||
Also referred to as "DirectX 9Ex", "DX9Ex", or "D3D9Ex". This feature is exclusive to {{srcmp|2}} (since 2011), {{src13|2}} (including {{tf2branch|2}}) and {{csgo|2}} engine branch. D3D9Ex may improve/reduce performance on certain hardware, depending on the graphics driver. | |||
D3D9Ex is only available on Windows Vista or later. | |||
In {{Src13sp|1}} and {{src13mp|1}}, D3D9Ex can be disabled/enabled by toggling the "Windows Aero extensions" in Video Options > Advanced, or through {{code|mat_disable_d3d9ex}} console command. | |||
{{Bug|hidetested=1|Disabling D3D9Ex through console command or in video options does not work (tested on Windows 10/11). Using {{code|-nod3d9ex}} works, however. This issue was previously also present on {{srcmp|1}}, which has been [http://store.steampowered.com/news/7024/ fixed], but for some reasons, this was reverted or broken in {{src13|1}}.}} | |||
{{Note|Option to disable D3D9Ex via menu was removed in {{tf2branch|2}} and {{gmod|2}}, but D3D9Ex can be disabled with {{Code|-nod3d9ex}} command line.}} | |||
In {{Csgo|1}}, DX9Ex can be disabled using the {{code|-disable_d3d9ex}} command line. | |||
=== DirectX 9.0+ level on other platforms === | |||
==== Game consoles (dxlevel 97/98) ==== | |||
Referred to as "{{code|dxlevel 97}}" (PS3){{confirm}} and "{{code|dxlevel 98}}" (Xbox 360). Made specifically for both {{ps3|2.1}} and {{Xbox360|2.1}}. Equivalent to {{code|dxlevel 95}} (Shader Model 3) on PC. | |||
{{confirm|While dxlevel 97 can be only seen in Portal 2 (both PC and PS3), it is not confirmed whether the PS3 version actually uses it. See [[Talk:DirectX Versions#Portal 2 PS3|talk page]].}} | |||
{{important|This version doesn't do anything much in PC builds of any game (the game will reset to {{code|dxlevel 95}} after changing video settings). Only works for {{Xbox360|1}} or {{ps3|1}}, where it is required (and enabled by default).}} | |||
; Features | |||
* GPU [[Particle System Overview|Particle]] Physics | |||
==== Mac/Linux/Android (dxlevel 92) ==== | |||
These platform uses {{code|dxlevel 92}}, which is equivalent to both {{code|dxlevel 90}} and {{code|dxlevel 95}}, 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 {{mac|4}} and {{linux|4}}, and other platforms/operating systems that do not support Direct3D and DirectX. | |||
===<span id="DirectX 10">DirectX 10</span> === | |||
Introduced with the release of {{win7|4|nt=3}} (and it was only supported on Vista or later), DirectX 10 (and D3D10) is not supported on {{winxp|1|nt=Windows XP}}. Referred to as "{{code|dxlevel 100}}". <br> | |||
DirectX 10-class graphics cards include the {{nvidia|1}} GeForce 8/9/100/200/300 series, Intel GMA X3100, X3500, GMA 4500, and the {{ATIRadeon|1|nt=0}} HD 2000/3000 series cards. | |||
While Intel HD Graphics (2010), Intel HD 2000/3000 is technically a DX10 card, Source by default (according to {{code|dxsupport.cfg}}) forces it to run at {{code|dxlevel 90}} instead of {{code|dxlevel 95}}, 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 {{code|dxlevel 95}}, 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 {{code|dxlevel 100|preset=0}} is mentioned in {{code|dxsupport.cfg}} on all games since {{l4dbranch|1}} and above (and used by default on some systems), none of the Source engine branch actually supports and use Direct3D 10.<br>Additionally, Valve later said that DirectX 9 is still sufficient, therefore no Source engine games actually uses Direct3D 10.{{Cite|5}}<br> All of the DX10 features shown in that PDF file was already supported on "{{code|dxlevel 95}}" (DirectX 9 SM 3.0) and {{x360|1}} (which uses "{{code|dxlevel 98}}").'' | |||
==== D3D9 renderer with DX10 level ==== | |||
In {{sfm}}'''Source Filmmaker''' by default, aswell as {{l4dbranch|1}} (on some systems) up to the original release of {{Dota2|2}} (except {{portal2}} and {{csgo}}),{{Cite|6}} these games runs on DX10 level, but the renderer still remains on Direct3D 9. In {{l4d}} and {{l4d2}}, DX10 level can be only seen when using [[SourceMod]] ({{code|sm_cvar mat_dxlevel}} command). | |||
===<span id="DirectX 11">DirectX 11</span> === | |||
{{For|more DX11 features (which may or may not used in third-party {{src|1}} or {{source2|1}} engine)|[[w:Direct3D#Direct3D_11|Wikipedia's DirectX 11]] page|}} | |||
Referred to as "{{code|dxlevel 110}}". | |||
DirectX 11-class graphics cards include the {{nvidia|name}} GeForce 400 (except GeForce 405) series, Intel HD Graphics 2500, HD 4000 (2012), and the {{ATIRadeon|name|nt=0}} HD 5000 series. | |||
Like previous Intel graphics cards, Intel HD 2500/4000 is technically a DX11 card, Source by default (according to {{code|dxsupport.cfg}} with "Intel Unknown" profile) forces it to run at {{code|dxlevel 90}} instead of {{code|dxlevel 95}}, 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 | |||
{{source2|4}} 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). {{tfbranch|1}} was the first {{source|name}} 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 {{source2|4}} games | |||
** Source 2's [[VRAD (Source 2)|VRAD]] can also recognize {{code|dxlevel 120}} (DX12 level), but will be clamped to {{code|dxlevel 110}} (DX11) or {{code|dxlevel 111}} (DX11.1).{{Cite|7}} | |||
* {{strata|4}} | |||
* {{tfbranch|4}} | |||
* {{vindictus|4}} (introduced in later updates, but the game still uses {{code|dxlevel 95}} level instead.) | |||
=== <span id="DirectX 12">DirectX 12</span> === | |||
Introduced in 2015, later backported to {{win7|1|nt=2|linkto=Windows 7}} in 2019. D3D12 and DX12 are not supported on {{win8|name|nt=Windows 8}} or {{win8|name|nt=8.1}}. Referred to as "{{code|dxlevel 120}}". <br> | |||
DirectX 12-class graphics cards include the {{nvidia|1}} GeForce 900 series, Intel HD Graphics (from 2015-2016), and the {{AMDRadeon|1|nt=0}} 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 {{code|dxsupport.cfg}} with "Intel Unknown" profile) forces it to run at {{code|dxlevel 90}} instead of {{code|dxlevel 95}}, 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 | |||
{{For|more DX12/D3D12 features (which may or may not used in third-party {{src|4}} or {{source2|4}} engine)|[[w:Direct3D#Direct3D_12|Wikipedia's Direct3D 12]] page|}} | |||
*Low-level rendering API, similar to [[Vulkan]] | |||
*Shader Model 5.1 and later | |||
*Ray tracing (since {{win10|1|nt=Windows 10}} October 2018 (1809) Update, requires RT-capable GPUs) | |||
*Dynamic refresh rate (since {{win11|1|nt=2}}) | |||
= | ; Supported games | ||
{{Note|These game support D3D12, but may not have {{code|mat_dxlevel 120}}.}} | |||
* {{Apex|4}} - using {{code|-anticheat_settings{{=}}SettingsDX12.json}} [[command line argument]]. Enabled by default since March 20, 2025 update. | |||
* All games using {{Rr|3.1}} - converts D3D9 (DX7 level) to Vulkan then converted again to D3D12, but D3D12 (and {{code|dxlevel 120}}) is not actually implemented into the engine. {{Cite|3}} | |||
** {{portalrtx|4.1}} | |||
** {{hl2rtx|4.1}} | |||
== dxsupport.cfg == | |||
[[File:Dxsupport.cfg_modification_-_RTX_3060.jpg|right|thumb|300px|Result after modifying {{code|dxsupport.cfg}} on a system running NVIDIA GeForce RTX 3060. The game recognizes the card and set MSAA to 8x, and anisotropic filtering to 16x, while also marking it as recommended setting. ]] | |||
{{code|dxsupport.cfg}} is a file located at the {{code|bin}} folder of the game. It is used to automatically set the graphical settings (MSAA, anisotropic filtering, screen resolution, etc.) or DirectX versions for a specific graphics card listed on the file, when the game is first launched. Starting with Left 4 Dead, {{code|cfg/moddefaults.txt}} 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.{{Cite|4}} | |||
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 {{hl2}} 20th anniversary update, changing [[detail props]] distance to "4096", set [[Anti-aliasing#MSAA|MSAA]] to 4x and enabling Bicubic lightmaps by default when running on DirectX 9.0+ (the command itself is mislabeled as "{{code|r_bicubic_lightmap}}", instead of "{{code|r_lightmap_bicubic}}"). | |||
This file is automatically generated by "{{code|dxsupport.pl}}" [https://www.perl.org/ Perl] script, which was not included anywhere on the game folder nor the officially released {{Srcsdk13|1}} or {{as|1}} code. The file can be also manually edited to include new GPUs (such as NVIDIA GeForce RTX 3060 as a example). | |||
Additionally, {{code|dxsupport.cfg}} also includes other DirectX versions such as {{code|dxlevel 92/97/98/100}}, these only works on console ports ({{360}}, {{ps3}}), 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 {{code|dxlevel 92}} and uses [[ToGL]] to convert DirectX calls to OpenGL). | |||
DirectX | |||
GPUs not listed on the {{code|dxsupport.cfg}} 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. | |||
{| class=standard-table | |||
! DirectX levels !! Graphics card/systems !! Notes | |||
{| | |||
|- | |- | ||
| DirectX | | DirectX 6.0<br>{{code|dxlevel{{nbsp}}60}} || NVIDIA TNT2<br>Matrox G400 || Not supported on {{src07|1}} and later. | ||
|- | |- | ||
| DirectX | | DirectX 7.0<br>{{code|dxlevel 70}} || NVIDIA GeForce 256, 2, 2MX and 4MX<br>ATI Radeon R100 (7xxx) || [[RTX Remix]] games ({{portalrtx|1}}, {{hl2rtx|1}}) runs on this DirectX level, then translated to Vulkan (using DXVK) and replacing assets at the same time, then renders as Direct3D 12 (DX12).</br>Not supported on {{src07|1}} and later (outside RTX Remix). | ||
|- | |- | ||
| DirectX 8. | | DirectX 8.0<br>{{code|dxlevel 80}} || NVIDIA GeForce4 Ti and most of the GeForce FX 5x00 series<br>GeForce 6600 GT / Go 6600 || | ||
|- | |- | ||
| DirectX | | DirectX 8.1<br>{{code|dxlevel 81}} || NVIDIA GeForce FX 5800 and 5900<br>ATI Radeon 8500/9100 and 9000/9200 cards. || | ||
|} | |||
| | |||
|- | |- | ||
| DirectX | | DirectX 9.0<br>{{code|dxlevel 90}} || {{nvidia|name}} GeForce 6 series (6600, 6600 LE, 6800)<br>ATI Radeon 9500/9600, 9700/9800, X300/X600 and X800 cards<br>All Intel graphics card (incl. Intel HD 2000/3000 or later, aswell as all Intel Arc graphics card) || | ||
|- | |- | ||
| DirectX | | DirectX 9.2<br>{{code|dxlevel 92}} || Only [[ToGL]] or DXVK/Vulkan (except DXVK on Windows) (pre-L4D)<br>All GPUs and renderer (post-L4D) || | ||
|- | |- | ||
| DirectX | | DirectX 9.0+<br>{{code|dxlevel 95}} || {{nvidia|name}} GeForce 6 series (6600, 6800)<br> ATI Radeon X1000 || | ||
'''Maximum GPU detected/listed on dxsupport.cfg:''' | |||
<br>GeForce 8800, Radeon X1000 series, Intel GMA 3000/X3000 ({{src06}}) | |||
<br>GeForce GT 520 - GTX 590, Radeon HD 6000 series, Intel HD 3000 ({{src07}} - {{src13}}) | |||
<br>GeForce GT 610 - GTX 690, Radeon HD 7000/8000 series, Intel HD 4600 ({{l4d2}}) | |||
<br>GeForce 510 - GTX 590, GTX 680, Radeon HD 7000 series, Intel HD 4000 ({{p2branch}}) | |||
<br>GeForce GT 520 - GTX 590, Radeon HD 6000/7900 series, Intel HD 3000 ({{csgo}}) | |||
<br>GeForce GT 710 - GTX 780 Ti, Radeon R9 200 series, Intel Unknown only ({{tfbranch}}) | |||
|- | |- | ||
| DirectX | | DirectX 10.0<br>{{code|dxlevel{{nbsp}}100}} || All || {{l4dbranch|1}}, {{dota2|2}} (pre-Reborn) and {{sfm|1}} only. Main renderer is still Direct3D 9 (DX9). | ||
|} | |} | ||
=== | === RTX 3060 profile example === | ||
This is a example profile for the Nvidia GeForce RTX 3060, combined with [[ConVar]] taken from "Nvidia 7800 GTX" {{code|dxsupport.cfg}} profile. | |||
{| | {{expand|startcollapsed=1|title=Expand to show example| | ||
| | {{codeblock|<nowiki> "887" | ||
{ | |||
"name" "NVIDIA GeForce RTX 3060" | |||
"VendorID" "0x10de" | |||
"MinDeviceID" "0x2504" | |||
"MaxDeviceID" "0x2504" | |||
"DefaultRes" "3840" // Run the game at 4K (or maximum possible resolution your monitor support) when first launched. | |||
// (optional) Minimum GPU driver versions required to run the game | |||
"m_nDriverVersion_BuildHigh" "11" | |||
"m_nDriverVersion_BuildLow" "6371" | |||
// (optional) Minimum GPU driver versions required to run the game (Windows Vista or later) | |||
"m_nDriverVersion_Vista_BuildHigh" "11" | |||
"m_nDriverVersion_Vista_BuildLow" "6369" | |||
"CentroidHack" "1" | |||
"ConVar.mat_antialias" "8" // Set MSAA to 8x | |||
"ConVar.mat_forceaniso" "16" // Set anisotropic filtering to 16x | |||
// Detail props distance (some newer NVIDIA and ATI GPUs have "1600" detail distance), but for some reasons this was | |||
absent on later GPUs and Unknown profile by default, resulting more noticeable pop-ins of vegetation and other detail props. | |||
"ConVar.cl_detaildist" "1600" | |||
"ConVar.cl_detailfade" "400" | |||
"ConVar.r_fastzreject" "1" // Activate/deactivates a fast z-setting algorithm to take advantage of hardware with fast z reject. | |||
"ConVar.mat_motion_blur_enabled" "0" // Motion blur - disabled by default | |||
"ConVar.r_waterforcereflectentities" "1" // Water - Reflect all entities | |||
} | |||
</nowiki>}} | |||
}} | |||
== | == Fix DirectX 8.0 level on modern hardware == | ||
On some modern hardware (or systems with newer graphics card), when you start {{hl2|3.1}}, {{css|3.1}} or {{portal|3.1}} (and some {{src13|1}}) 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+. | |||
{| | |||
| | |||
| DirectX 8.0 | |||
To fix this, run the game once with {{code|-dxlevel 95}} [[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 {{code|-force_vendor_id 0x10DE -force_device_id 0xFFFF}} command line argument (works on {{src13}}, {{portal2}}, {{csgo}}, {{l4d2}}, or later Source branches since 2012-2013), or {{pcgw|Engine:Source#.22High.22_shadow_detail_option_is_missing|spoofing GPU vendor ID through DLLs file/registry edit}} (works on {{src07}} or earlier). | |||
== Sample screenshots == | |||
{{main|/Screenshots}} | |||
{{ | {{references|1= | ||
{{ref2|cite id=1|Jasper Carmack ({{Twitter|@JasperCarmack|icon=hide}}) (April 3, 2024). "{{Twitter|JasperCarmack/status/1775312261743079483|Comparing the differences between Half-Life 2 (Legacy / "DX8" shaders) on the left and (Modern) DX9+ shaders on the right.|icon=hide}}". ''{{twitter}}''. Retrieved {{#time: F d, Y }}.}} | |||
{{ref2|cite id=2|Jasper Carmack ({{Twitter|@JasperCarmack|icon=hide}}) (April 3, 2024). "{{Twitter|JasperCarmack/status/1775370362198601835|When loading the save for comparison, you need to wait a little bit because the light glows are scripted to come on after a delay. So 1 {{=}} dx8, 2 {{=}} dx9 on load, 3 {{=}} dx9 after 5 seconds|icon=hide}}". ''{{twitter}}''. Retrieved {{#time: F d, Y }}.}} | |||
{{ref2|cite id=3|In the game files, there is {{code|dxvk.conf}}, used to store RTX Remix configuration. The game itself then renders as Direct3D 12 (DX12), confirmed when using third-party applications like RivaTurner Statistics Server (RTSS).}} | |||
{{ref2|cite id=4|[https://youtu.be/Xf15h_SB1CU?t{{=}}375 This video] shows the example of DirectX 9 performance issues on GeForce FX 5x00 series card.}} | |||
{{ref2|cite id=5|[https://web.archive.org/web/20080517140112/http://www.pcgameshardware.de/aid,643448/Interview/PCGH_interview_about_Left_4_Dead_part_2/&page{{=}}2 PCGH interview about Left 4 Dead, part 2]<br>Doug Lombardi ([[Valve]]): Well I mean there is always that tradeoff between taking the time to adopt the engine to a new API, right. '''And for us we feel like there still things in DX9 that we can achieve without having to go through the pains of moving to DX 10.''' That is very worthwhile and allows us the time to concentrate on other pieces. So for us as a company and our game designs, we've looked at the tradeoff of the work to move to DX 10 and we have always kind of felt that there is not really enough there for us to delay whatever game we are working on by six to eight month just to say we've a DX10 game. The other thing that is worth mentioning too is to run DX10 natively under the API you have to have both the card and vista. If you google to the Steam hardware survey where we poll peoples machines on Steam you can see that right now there is only about thirteen percent of those people that have both, the DX 10 card and Vista. So you have to look at that as well and say is it worth to investing for thirteen percent of the audience.}} | |||
{{ref2|cite id=6|[[User:kr0tchet|User:leonidakarlach]] (June 4, 2024) - According to {{path|dota\cfg\video|txt}} (generated when the game is launched): | |||
{{codeblock|<nowiki>"setting.mindxlevel" "92" | |||
"setting.maxdxlevel" "100" | |||
"setting.dxlevel" "100" | |||
</nowiki>}} | |||
The game also report that it's using DirectX 10.0 according to the hidden VGUI Options menu by typing {{Code|gamemenucommand openoptionsdialog}}, go to Video > Advanced > Hardware DirectX level. Third-party software like RivaTurner Statistics Server (RTSS) showing that it's still uses Direct3D 9.0, however. | |||
}} | |||
{{ref2|cite id=7|[https://github.com/ValveSoftware/csgo-osx-linux/issues/3851 (CS2 Workshop Tools Hammer) Vulkan error at startup vrad3.exe (VK_ERROR_DEVICE_LOST)] - According to compile log: | |||
{{Quote|CreateDevice: Requested DX level 120, clamped to DX level 111}} | |||
}} | |||
}} | |||
[[Category:Material System]] | |||
[[Category:Graphics API]] |
Latest revision as of 20:34, 9 August 2025

Source engine games (prior to Left 4 Dead), which primarily only runs on Direct3D 9, 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 mat_dxlevel cvar, or -dxlevel 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.

Additionally, DirectX levels should not be confused with Direct3D versions. As a example, GeForce FX 5x00 by default, while support DirectX 9.0a level, the game will force the card to run at DirectX 8.0 level (or Direct3D 9 feature level 8.0) by default (according to dxsupport.cfg), due to the graphics card known for having poor performance and graphical issues in DX9 level.


The only modern Source engine branch that still supports older DirectX levels (down to 8.0) is



To fix this issues, see Fix DirectX 8.0 level on modern hardware. After doing the steps on that section, the Hardware DirectX level should display DirectX 9.0+. Next, configure your video settings (most systems should be able to handle "High" or "Very High" texture, model, shader, shadows, etc. easily).
Users must remove the -dxlevel command line after launching the game once to prevent the game from reset the video settings to default. (tested in:




DirectX levels

- In Source 2004 and Source 2006, DirectX 6 level was functional but unofficially supported as Half-Life 2 and other Source games requires DirectX 7 graphics card as minimum. In Source 2007 or Source 2009, both DirectX 6 and 7 support has been dropped (except RTX Remix games).
- Starting with Left 4 Dead engine branch and later Source games, the DirectX levels system (aswell as all DirectX 8 and early DirectX 9 cards) was dropped in favor of shader & effect details option and automatic GPU memory size detection.
- While DirectX 8 level is supported in Source 2007, Source 2009 and Source 2013, not all pre-L4D branch games support them and using it may either crashes the game or simply doesn't render any props (without .dx80.vtx), such as Postal III, games with deferred renderer & deferred lighting (including Black Mesa) and other third-party Source games.
DirectX 6 compatibility level
Referred to as "DirectX 6.0" on video settings and "dxlevel 60". DirectX 6-class graphics cards include the Nvidia TNT2 and Matrox G400.
These graphics card and this DirectX version are not officially supported by any Source engine branches, including 2004 and 2006, but it was functional until Source 2007.
DirectX 7 compatibility level
Referred to as "DirectX 7.0" on video settings and "dxlevel 70". DirectX 7-class graphics cards include the Nvidia GeForce 256, 2, 2MX and 4MX cards and the ATI Radeon R100 (7xxx) series.
Additionally, RTX Remix games such as Portal with RTX and the upcoming
Half-Life 2 RTX 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).[3]
- Features
- Blob shadows
- Displacement map texture blending
DirectX 8 compatibility level

A bug report can be found here: Issue 540 on GitHub
Referred to as "DirectX 8.0" on video settings and "dxlevel 80". DirectX 8-class graphics cards include the Nvidia 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).[4]
- 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 "dxlevel 81". DirectX 8.1-class graphics cards include the Nvidia GeForce FX 5800 and 5900 and the ATI Radeon 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.[4] 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 "dxlevel 90".
DirectX 9-class graphics cards include the Nvidia GeForce 6 series (6600, 6800) and the ATI Radeon 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
other methods listed on PCGW.
- Normal-mapped lighting on models
- Improved-quality specular effects
Since Source 2006:
- High dynamic range rendering (disabled by default)
- Phong shading
- Color Correction
Since Source 2007:
- Motion Blur
- Defaults to MSAA 4X
- LOD set to "0" (r_lod)
- Detail distance up to "4096"
- Bicubic lightmap (disabled by default)
- Also available in all Team Fortress 2 branch games, but not listed on dxsupport.cfg.
DirectX 9.0+ - Shader Model 3
Referred to as "DirectX 9.0c", "dxlevel 92" (Mac/Linux) and "dxlevel 95" (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
dxlevel 95 (or DirectX 9.0c) was first introduced with Source 2004 (since the release of Day of Defeat: Source). Left 4 Dead engine branch 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)
- Defaults to MSAA 4X
- LOD set to "0" (r_lod)
- Detail distance up to "4096"
- Bicubic lightmap (enabled by default)
- Also available in all Team Fortress 2 branch games, but not listed on dxsupport.cfg.
Direct3D 9Ex / Windows Aero DirectX extensions
Also referred to as "DirectX 9Ex", "DX9Ex", or "D3D9Ex". This feature is exclusive to Source Multiplayer (since 2011),
Source 2013 (including
Team Fortress 2 branch) and
Counter-Strike: Global Offensive engine branch. D3D9Ex may improve/reduce performance on certain hardware, depending on the graphics driver.
D3D9Ex is only available on Windows Vista or later.
In Source 2013 Singleplayer and Source 2013 Multiplayer, D3D9Ex can be disabled/enabled by toggling the "Windows Aero extensions" in Video Options > Advanced, or through mat_disable_d3d9ex console command.




In Counter-Strike: Global Offensive, DX9Ex can be disabled using the -disable_d3d9ex command line.
DirectX 9.0+ level on other platforms
Game consoles (dxlevel 97/98)
Referred to as "dxlevel 97" (PS3)[confirm] and "dxlevel 98" (Xbox 360). Made specifically for both and
. Equivalent to dxlevel 95 (Shader Model 3) on PC.


- Features
- GPU Particle Physics
Mac/Linux/Android (dxlevel 92)
These platform uses dxlevel 92, which is equivalent to both dxlevel 90 and dxlevel 95, 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 macOS and
Linux, and other platforms/operating systems that do not support Direct3D and DirectX.
DirectX 10
Introduced with the release of Windows Vista (and it was only supported on Vista or later), DirectX 10 (and D3D10) is not supported on Windows XP. Referred to as "dxlevel 100".
DirectX 10-class graphics cards include the Nvidia GeForce 8/9/100/200/300 series, Intel GMA X3100, X3500, GMA 4500, and the ATI Radeon HD 2000/3000 series cards.
While Intel HD Graphics (2010), Intel HD 2000/3000 is technically a DX10 card, Source by default (according to dxsupport.cfg) forces it to run at dxlevel 90 instead of dxlevel 95, 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 dxlevel 95, 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 dxlevel 100 is mentioned in dxsupport.cfg on all games since Left 4 Dead engine branch 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.[5]
All of the DX10 features shown in that PDF file was already supported on "dxlevel 95" (DirectX 9 SM 3.0) and Xbox 360 (which uses "dxlevel 98").
D3D9 renderer with DX10 level
In Source Filmmaker by default, aswell as Left 4 Dead engine branch (on some systems) up to the original release of
Dota 2 (except
and
),[6] 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 (sm_cvar mat_dxlevel command).
DirectX 11
Referred to as "dxlevel 110".
DirectX 11-class graphics cards include the Nvidia GeForce 400 (except GeForce 405) series, Intel HD Graphics 2500, HD 4000 (2012), and the ATI Radeon HD 5000 series.
Like previous Intel graphics cards, Intel HD 2500/4000 is technically a DX11 card, Source by default (according to dxsupport.cfg with "Intel Unknown" profile) forces it to run at dxlevel 90 instead of dxlevel 95, 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
Source 2 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). Titanfall branch was the first Source 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
Source 2 games
Strata Source
Titanfall branch
Vindictus (introduced in later updates, but the game still uses dxlevel 95 level instead.)
DirectX 12
Introduced in 2015, later backported to Windows 7 in 2019. D3D12 and DX12 are not supported on Windows 8 or 8.1. Referred to as "dxlevel 120".
DirectX 12-class graphics cards include the Nvidia GeForce 900 series, Intel HD Graphics (from 2015-2016), and the AMD Radeon 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 dxsupport.cfg with "Intel Unknown" profile) forces it to run at dxlevel 90 instead of dxlevel 95, 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 and later
- Ray tracing (since Windows 10 October 2018 (1809) Update, requires RT-capable GPUs)
- Dynamic refresh rate (since Windows 11)
- Supported games

Apex Legends - using -anticheat_settings=SettingsDX12.json command line argument. Enabled by default since March 20, 2025 update.
- All games using RTX Remix - converts D3D9 (DX7 level) to Vulkan then converted again to D3D12, but D3D12 (and dxlevel 120) is not actually implemented into the engine. [3]
dxsupport.cfg
dxsupport.cfg is a file located at the bin folder of the game. It is used to automatically set the graphical settings (MSAA, anisotropic filtering, screen resolution, etc.) or DirectX versions for a specific graphics card listed on the file, when the game is first launched. Starting with Left 4 Dead, cfg/moddefaults.txt 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.[4]
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 "r_bicubic_lightmap", instead of "r_lightmap_bicubic").
This file is automatically generated by "dxsupport.pl" Perl script, which was not included anywhere on the game folder nor the officially released Source SDK Base 2013 or Alien Swarm code. The file can be also manually edited to include new GPUs (such as NVIDIA GeForce RTX 3060 as a example).
Additionally, dxsupport.cfg also includes other DirectX versions such as dxlevel 92/97/98/100, 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 dxlevel 92 and uses ToGL to convert DirectX calls to OpenGL).
GPUs not listed on the dxsupport.cfg 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 dxlevel 60 |
NVIDIA TNT2 Matrox G400 |
Not supported on Source 2007 and later. |
DirectX 7.0 dxlevel 70 |
NVIDIA GeForce 256, 2, 2MX and 4MX ATI Radeon R100 (7xxx) |
RTX Remix games (Portal with RTX, Half-Life 2 RTX) runs on this DirectX level, then translated to Vulkan (using DXVK) and replacing assets at the same time, then renders as Direct3D 12 (DX12). Not supported on Source 2007 and later (outside RTX Remix). |
DirectX 8.0 dxlevel 80 |
NVIDIA GeForce4 Ti and most of the GeForce FX 5x00 series GeForce 6600 GT / Go 6600 |
|
DirectX 8.1 dxlevel 81 |
NVIDIA GeForce FX 5800 and 5900 ATI Radeon 8500/9100 and 9000/9200 cards. |
|
DirectX 9.0 dxlevel 90 |
Nvidia GeForce 6 series (6600, 6600 LE, 6800) ATI Radeon 9500/9600, 9700/9800, X300/X600 and X800 cards All Intel graphics card (incl. Intel HD 2000/3000 or later, aswell as all Intel Arc graphics card) |
|
DirectX 9.2 dxlevel 92 |
Only ToGL or DXVK/Vulkan (except DXVK on Windows) (pre-L4D) All GPUs and renderer (post-L4D) |
|
DirectX 9.0+ dxlevel 95 |
Nvidia GeForce 6 series (6600, 6800) ATI Radeon X1000 |
Maximum GPU detected/listed on dxsupport.cfg:
|
DirectX 10.0 dxlevel 100 |
All | Left 4 Dead engine branch, ![]() |
RTX 3060 profile example
This is a example profile for the Nvidia GeForce RTX 3060, combined with ConVar taken from "Nvidia 7800 GTX" dxsupport.cfg profile.
Fix DirectX 8.0 level on modern hardware
On some modern hardware (or systems with newer graphics card), when you start Half-Life 2, Counter-Strike: Source or Portal (and some Source 2013) 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 -dxlevel 95 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 -force_vendor_id 0x10DE -force_device_id 0xFFFF command line argument (works on ,
,
,
, or later Source branches since 2012-2013), or
spoofing GPU vendor ID through DLLs file/registry edit (works on
or earlier).
Sample screenshots
References
References | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|