DirectX Versions: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
(Cleaning up everything.)
Line 4: Line 4:
To test lower-quality DirectX levels on a more advanced graphics card, use the [[mat_dxlevel]] [[cvar]]. Set it to 60, 70, 80, 81, 90, 95 or 98 ({{360}}) to set the corresponding DirectX version; it is not possible to run at a higher level than the graphics hardware is capable of.
To test lower-quality DirectX levels on a more advanced graphics card, use the [[mat_dxlevel]] [[cvar]]. Set it to 60, 70, 80, 81, 90, 95 or 98 ({{360}}) to set the corresponding DirectX version; it is not possible to run at a higher level than the graphics hardware is capable of.


{{ModernImportant|Please note that this has ''nothing to do with'' changing the '''Direct3D''' renderer ('''D3D''' for short, incorrectly refers to ''DirectX renderer'') to use Direct3D 8 or older. Source will always run on '''Direct3D 9''' (or '''Direct3D 11/12''' on [[Titanfall_engine_branch|some]] [[Strata_Source|third-party]] branches). However, the materials, effects and shaders will be changed or disabled for compatibility with older GPUs that predates Direct3D 9, or to allow modern tools such as {{nvidia|4}}'s {{rr|4}} (also used in {{portalrtx|2}} and upcoming {{hl2rtx|2}}), which currently only support DX9 (D3D9) or earlier (with compatibility level 8.x or lower, or with fixed function pipelines), to work properly.}}
{{ModernImportant|Please note that changing {{code|mat_dxlevel}}, does not change the '''Direct3D''' renderer (incorrectly refers to ''DirectX renderer'') to render the game on Direct3D 8 or older. Source will always run on '''Direct3D 9''' (or '''Direct3D 11/12''' on [[Titanfall_engine_branch|some]] [[Strata_Source|third-party]] branches). However, the materials, effects and shaders will be changed or disabled for compatibility with older GPUs that predates Direct3D 9, or to allow modern tools such as {{nvidia|1}}'s {{rr|3.1}} (also used in {{portalrtx|2}} and upcoming {{hl2rtx|2}}), which currently only support DX9 or earlier (with compatibility level 8.x or lower, or with fixed function pipelines), to work properly.}}
 
{{note|Source games and engine branches released by Valve since {{l4d|4.1}} no longer support all DirectX compatibility levels below DirectX 9.0c, aswell replaced the old DirectX compatibility level with new shader & effect details option. The only modern Source engine branch that still supports older DirectX versions (down to 8.0) is {{src13|4.1}}. Some third-party Source engine branch or Source successor, {{source2|1}}, will only support DirectX 11 (including the Direct3D renderer) or later.}}
{{note|Source games and engine branches released by Valve since {{l4d|4}} no longer support DirectX compatibility levels below DirectX 9.0c, aswell replaced the old DirectX compatibility level with new shader & effect details option. The only modern Source engine branch that still supports older DirectX versions (down to 8.0) is {{src13|4}}. Some third-party Source engine branch or Source successor, {{source2|1}}, will only support DirectX 11 (including the Direct3D renderer) or later.}}
{{note|On most modern PCs with modern GPUs, these always run with DX11 or newer (and fully support all DX9 features in Source). Players running on DX8 level cards or older on systems with [[Steam]] are [https://store.steampowered.com/hwsurvey/directx/ non-existent] (according to Steam Survey). Make alternate assets if you want, but without using RTX Remix tools, almost no one will see them unless they launched the game with -dxlevel 80/81 manually or have a very old system, or by launching a game that utilizes {{Nvidia|name}} {{rr|name}}, which was only used in {{Portalrtx|2}} and {{hl2rtx|2}}, used to convert most of the DX8 level graphics, or by triggering a bug that {{src13|2}} commonly had which only occurs on some modern systems.}}
{{note|On most modern PCs with modern GPUs, these always run with DX11 or newer (and fully support all DX9 features in Source). Players running on DX8 level cards or older on systems with [[Steam]] are [https://store.steampowered.com/hwsurvey/directx/ non-existent] (according to Steam Survey). Make alternate assets if you want, but almost no one will see them unless they launched the game with -dxlevel 80/81 manually or have a very old system, or by launching a game that utilizes {{Nvidia|2}} {{rr|2}}, which was only used in {{Portalrtx|4}} and {{hl2rtx|4}}, used to convert most of the DX8 level graphics, or by triggering a bug that {{src13|4}} commonly had which only occurs on some modern systems.}}
{{Bug|only=src13|On some modern systems, when a {{src13|4}} game is run for the first time, the game may default to DirectX 8 materials.<br>To fix this, run the game once with {{code|-dxlevel 95}} command line option, change your video settings, then save by clicking OK (or Apply then OK), then close the game, open it again, it should show as Software DirectX level: '''DirectX 9.0+''' on the video options.}}
{{Bug|only=src13|On some modern systems, when a {{src13|4}} game is run for the first time, the game may default to DirectX 8 materials.<br>To fix this, run the game once with {{code|-dxlevel 95}} command line option, change your video settings, then save by clicking OK (or Apply then OK), then close the game, open it again, it should show as Software DirectX level: '''DirectX 9.0+''' on the video options.}}
{{Bug|Some effects appears to be missing (or barely visible), such as {{Code|[[func_illusionary]]}} used for fake [[volumetric lighting]], or the game looks more desaturated compared to DirectX 8 mode.{{Cite|1}}{{Cite|2}} See [[#Train Station]]}}
{{Bug|Some effects appears to be missing (or barely visible), such as {{Code|[[func_illusionary]]}} used for fake [[volumetric lighting]], or the game looks more desaturated compared to DirectX 8 mode.{{Cite|1}}{{Cite|2}} See [[#Train Station]]}}
Line 13: Line 12:
==DirectX Capabilities==
==DirectX Capabilities==
{{toc-right}}
{{toc-right}}
{{Warning|Since {{Src06|4}}, DirectX 6 is no longer supported.
{{Warning|Since {{Src06|2}}, DirectX 6 is no longer supported, and in {{Src07|2}} or {{Src09|2}}, DirectX 7 is no longer supported.<br>
Since {{Src07|4}} or {{Src09|4}}, DirectX 7 is no longer supported.<br>
Starting with {{l4dbranch|2}} and later Source games, all DirectX 8 versions, are no longer supported. Cards that doesn't support DirectX 9.0c are also dropped.<br>
Starting with {{l4dbranch|4}} and later Source games, all DirectX 8 versions, are no longer supported. Cards that doesn't support DirectX 9.0c are also dropped.<br>
In {{Portalrtx|2}} and in other RTX Remix Source games, the game will run on DirectX 7 or 8 mode in order to make {{rr|2}} work. Also, when using Vulkan renderer on non-RTX Remix games, using {{code|dxlevel}} lower than 90, such as 80/81 for DirectX 8 will cause the game to not render properly.
In {{Portalrtx|4}} and in other RTX Remix Source games, the game will run on DirectX 7 or 8 mode in order to make {{rr|4}} work. Also, when using Vulkan renderer on non-RTX Remix games, using {{code|dxlevel}} lower than 90, such as 80/81 for DirectX 8 will cause the game to not render properly.
}}
}}
=== <span id="DirectX 6">DirectX 6 / D3D9 with DX6 compatibility level</span> ===
=== <span id="DirectX 6">DirectX 6 compatibility level</span> ===
Introduced in August 1998, referred to as "'''DirectX 6.0'''" and "{{code|dxlevel 60}}".
Introduced in August 1998, referred to as "'''DirectX 6.0'''" and "{{code|dxlevel 60}}".


DirectX 6-class graphics cards include the {{nvidia|3.1}} TNT2 and Matrox G400.
DirectX 6-class graphics cards include the {{nvidia|1}} TNT2 and Matrox G400.


=== <span id="DirectX 7">DirectX 7 / D3D9 with DX7 compatibility level</span> ===
=== <span id="DirectX 7">DirectX 7 compatibility level</span> ===
Introduced in September 1999, referred to as "'''DirectX 7.0'''" and "{{code|dxlevel 70}}".
Introduced in September 1999, referred to as "'''DirectX 7.0'''" and "{{code|dxlevel 70}}".


DirectX 7-class graphics cards include the {{nvidia|3.1}} GeForce 256, 2, 2MX and 4MX cards and the {{ATIRadeon|3.1|nt=0}} 7xxx series.
DirectX 7-class graphics cards include the {{nvidia|1}} GeForce 256, 2, 2MX and 4MX cards and the {{ATIRadeon|1|nt=0}} 7xxx series.
{{Note|RTX Remix games such as {{portalrtx|4}} and the upcoming {{hl2rtx|4}} render the graphics in this DirectX level with D3D9 renderer, or possibly in DX8 level mode, by replacing the textures and lighting with raytraced ones, then rendering in [[Vulkan]] after converting D3D9 to Vulkan.}}
{{Note|RTX Remix games such as {{portalrtx|2}} and the upcoming {{hl2rtx|2}} render the graphics in this DirectX level with D3D9 renderer, or possibly in DX8 level mode, by replacing the textures and lighting with raytraced ones, then rendering in [[Vulkan]] after converting D3D9 to Vulkan.}}
====Features====
====Features====
* Blob shadows
* Blob shadows
* Displacement map texture blending
* Displacement map texture blending


=== <span id="DirectX 8.0">DirectX 8.0 / D3D9 with DX8 compatibility level</span> ===
=== <span id="DirectX 8.0">DirectX 8 compatibility level</span> ===
Introduced in November 2000, referred to as "'''DirectX 8.0'''" and "{{code|dxlevel 80}}".
Introduced in November 2000, referred to as "'''DirectX 8.0'''" and "{{code|dxlevel 80}}".


DirectX 8-class graphics cards include the {{nvidia|3.1}} GeForce4 Ti and most of the GeForce FX 5x00 series (while technically DirectX 9 cards, the latter suffer from major performance problems with the DX9 rendering path).
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 with the DX9 rendering path).


{{Note|1=Due to a bug in some {{src13|4}} games, when the 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]}}
{{Note|1=Due to a bug in some {{src13|4}} games, when the 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]}}
Line 47: Line 45:
* Low-quality reflective water (used sparingly)
* Low-quality reflective water (used sparingly)


=== <span id="DirectX 8.1">DirectX 8.1 / D3D9 with DX8.1 compatibility level</span> ===
=== <span id="DirectX 8.1">DirectX 8.1 compatibility level</span> ===
Referred to as "'''DirectX 8.1'''" and "{{code|dxlevel 81}}".
Referred to as "'''DirectX 8.1'''" and "{{code|dxlevel 81}}".


Included in {{winxp|4|nt=0}} or later, also available on {{win9x|4}} 98/98SE/ME, 2000.
Included in {{winxp|4|nt=0}} or later, also available on {{win9x|4}} 98/98SE/ME, 2000.


DirectX 8.1-class graphics cards include the {{nvidia|3.1}} GeForce FX 5800 and 5900 and the {{ATIRadeon|3.1|nt=0}} 8500/9100 and 9000/9200 cards.
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.
====Features====
====Features====
* Soft edge dynamic shadows
* Soft edge dynamic shadows


=== <span id="DirectX 9">DirectX 9 / D3D9 (Shader Model 2)</span>===
=== <span id="DirectX 9">DirectX 9 (Shader Model 2)</span>===
Introduced in December 2002, referred to as "'''DirectX 9.0'''" and "{{code|dxlevel 90}}".
Introduced in December 2002, referred to as "'''DirectX 9.0'''" and "{{code|dxlevel 90}}".


Included in {{winxp|1|nt=0}} SP2 or later, also available on {{win9x|1}} 98/98SE/ME, 2000.
Included in {{winxp|1|nt=0}} SP2 or later, also available on {{win9x|1}} 98/98SE/ME, 2000.


DirectX 9-class graphics cards include the {{nvidia|3.1}} GeForce 6600 and 6800 series and the {{ATIRadeon|3.1|nt=0}} 9500/9600, 9700/9800, X300/X600 and X800 cards.  
DirectX 9-class graphics cards include the {{nvidia|name}} GeForce 6600 and 6800 series and the {{ATIRadeon|name|nt=0}} 9500/9600, 9700/9800, X300/X600 and X800 cards.  
====Features====
====Features====
* Refractions with the use of a bump-map
* Refractions with the use of a bump-map
Line 69: Line 67:
* Normal-mapped lighting on models
* Normal-mapped lighting on models
* Improved-quality specular effects
* Improved-quality specular effects
Since {{src06|4}}:
Since {{src06|2}}:
* [[HDR|High dynamic range rendering]] (disabled by default)
* [[HDR|High dynamic range rendering]] (disabled by default)
* [[$phong|Phong]] shading
* [[$phong|Phong]] shading
* [[Color Correction]]
* [[Color Correction]]
Since {{src07|4}}:
Since {{src07|2}}:
* Motion Blur
* Motion Blur


Line 79: Line 77:
This is equivalent to dxlevel 95, but use the translator [[ToGL]] to convert the DirectX calls to [[OpenGL]] calls. Only on {{mac|4}} and {{linux|4}}, and other platforms/operating systems that do not support Direct3D and DirectX.
This is equivalent to dxlevel 95, but use the translator [[ToGL]] to convert the DirectX calls to [[OpenGL]] calls. Only on {{mac|4}} and {{linux|4}}, and other platforms/operating systems that do not support Direct3D and DirectX.


=== <span id="DirectX 9.0c">DirectX 9 / D3D9.0c - Shader Model 3 {{since|{{src06|4.1}}}} </span>===
=== <span id="DirectX 9.0c">DirectX 9.0c - Shader Model 3 {{since|{{src06|4.1}}}} </span>===
Referred to as "DirectX 9.0+" and "dxlevel 95". Last version supported for all version of Windows 98/98SE/ME/2000 and XP, aswell as last version of DirectX 9/D3D9. Older {{source2|1}} games like {{dota2|2}} previously supported Direct3D 9, before it was dropped in 2021.
Referred to as "DirectX 9.0+" and "dxlevel 95". Last version supported for all version of Windows 98/98SE/ME/2000 and XP, aswell as last version of DirectX/Direct3D 9. Older {{source2|1}} games like {{dota2|2}} previously supported Direct3D 9, before it was dropped in 2021.


{{l4dbranch|4}} games and above requires DirectX 9.0c in order to play.
{{l4dbranch|4}} games and above requires DirectX 9.0c in order to play.
Line 88: Line 86:
* [[HDR|High dynamic range rendering]] (enabled by default)
* [[HDR|High dynamic range rendering]] (enabled by default)


===== DX9.8/DX9.0c for Xbox 360 =====
===== DX9.0c on Xbox 360 =====
Referred to as "{{code|dxlevel 98}}". Made specifically for {{Xbox360|4.1}}.
Referred to as "{{code|dxlevel 98}}". Made specifically for {{Xbox360|2.1}}.
{{warning|Doesn't work or 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|3.1}}, where it is required.}}
{{warning|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|3.1}}, where it is required (and enabled by default).}}


======Features======
======Features======
* GPU [[Particle System Overview|Particle]] Physics
* GPU [[Particle System Overview|Particle]] Physics
'''Differences of dxlevel 95 (DX9 SM 3.0) and 98 (DX9.0c on X360)''' (according to <code>"dxsupport.cfg"</code> on {{hl2|4}}):<br>
*Default resolution from 1024x768 (dxlevel 95) to 640x480 (dxlevel 98).
*<code>"mat_forceaniso" "1"</code> (dxlevel 95) > <code>"8"</code> (dxlevel 98)<br>
*<code>"mat_forcehardwaresync" "1"</code> (dxlevel 95) > <code>"0"</code> (dxlevel 98)<br>
*<code>"r_waterforcereflectentities" "0"</code> (dxlevel 95) > <code>"1"</code> (dxlevel 98)<br>


===== <span id="DX9Ex">DX9Ex / Windows Aero DirectX extensions</span> =====
===== <span id="DX9Ex">DX9Ex / Windows Aero DirectX extensions</span> =====
Line 108: Line 100:
In {{Csgo|4}}, DX9Ex can be disabled using the {{code|-disable_d3d9ex}} command line.
In {{Csgo|4}}, DX9Ex can be disabled using the {{code|-disable_d3d9ex}} command line.


===<span id="DirectX 10">DirectX 10 / D3D10 (DXGI)</span> ===
===<span id="DirectX 10">DirectX 10</span> ===
Introduced in November 2006 with the release of {{win7|4|nt=3}}, and only supports the said operating systems, DX10 is not supported on {{winxp|1|nt=Windows XP}}. Referred to as "{{code|dxlevel 100}}". <br>
Introduced in November 2006 with the release of {{win7|4|nt=3}}, and only supports the said operating systems, DX10 is not supported on {{winxp|1|nt=Windows XP}}. Referred to as "{{code|dxlevel 100}}". <br>


DirectX 10-class graphics cards include the {{nvidia|2}} GeForce 8 series, Intel GMA X3100, X3500, GMA 4500, Intel HD Graphics (2010) and the {{ATIRadeon|2|nt=0}} HD 2000/3000 series cards.
DirectX 10-class graphics cards include the {{nvidia|1}} GeForce 8 series, Intel GMA X3100, X3500, GMA 4500, Intel HD Graphics (2010) and the {{ATIRadeon|1|nt=0}} HD 2000/3000 series cards.


==== Games with Direct3D 10 (DX10) support ====
====Features====
*Shader Model 4.0


==== Supported games ====
''There are currently no Source engine branch which actually render in Direct3D 10 (aka DX10 mode) despite being mentioned in this [https://cdn.akamai.steamstatic.com/apps/valve/2008/GDC2008_PostProcessingInTheOrangeBox.pdf GDC 2008 PDF which shows some differences]. Additionally, Valve said that DirectX 9 is still sufficient, therefore no Source engine are rendered using Direct3D 10.{{Cite|4}}<br> All of the DX10 features shown in that PDF file were already available in "{{code|dxlevel 95}}" (DirectX 9 SM 3.0) and {{x360|4}} (which uses "{{code|dxlevel 98}}").''
''There are currently no Source engine branch which actually render in Direct3D 10 (aka DX10 mode) despite being mentioned in this [https://cdn.akamai.steamstatic.com/apps/valve/2008/GDC2008_PostProcessingInTheOrangeBox.pdf GDC 2008 PDF which shows some differences]. Additionally, Valve said that DirectX 9 is still sufficient, therefore no Source engine are rendered using Direct3D 10.{{Cite|4}}<br> All of the DX10 features shown in that PDF file were already available in "{{code|dxlevel 95}}" (DirectX 9 SM 3.0) and {{x360|4}} (which uses "{{code|dxlevel 98}}").''


====DX9/D3D9 renderer with DX10 feature level {{only|{{sfm|4.1|nt=0}}, {{dota2|4.1|nt=1}}}}====
====DX9/D3D9 renderer with DX10 features {{only|{{sfm|4.1|nt=0}}, {{dota2|4.1|nt=1}}}}====
{{note|This version is only used in {{sfm}}'''Source Filmmaker''' by default, aswell as the original release of {{Dota2|4}},{{Cite|3}} and does nothing on other Source games. This will '''NOT''' enable Direct3D 10 at all unless the engine is modified.}}
{{note|This version is only used in {{sfm}}'''Source Filmmaker''' by default, aswell as the original release of {{Dota2|4}},{{Cite|3}} and does nothing on other Source games. This will '''NOT''' enable Direct3D 10 at all unless the engine is modified.}}


===<span id="DirectX 11">DirectX 11 / D3D11 (DXGI)</span> ===  
===<span id="DirectX 11">DirectX 11</span> ===  
{{For|more DX11 features (which may or may not used in third-party {{src|4}} or {{source2|4}} engine)|[[w:Direct3D#Direct3D_11|Wikipedia's DirectX 11]] page|}}
{{For|more DX11 features (which may or may not used in third-party {{src|4}} or {{source2|4}} engine)|[[w:Direct3D#Direct3D_11|Wikipedia's DirectX 11]] page|}}


Introduced in 2009 with the release of {{win7|4|nt=2}}, DirectX 11 requires {{win7|1|nt=3}} (with SP2 & Platform Update installed) and later, and some later DX11 versions require Windows 7, 8 or later. Referred to as "{{code|dxlevel 110}}".
Introduced in 2009 with the release of {{win7|4|nt=2}}, DirectX 11 requires {{win7|1|nt=3}} (with SP2 & Platform Update installed) and later, and some later DX11 versions require Windows 7, 8 or later. Referred to as "{{code|dxlevel 110}}".


DirectX 11-class graphics cards include the {{nvidia|2}} GeForce 400 (except GeForce 405) series, Intel HD Graphics 2500, HD 4000 (2012), and the {{ATIRadeon|2|nt=0}} HD 5000 series.
DirectX 11-class graphics cards include the {{nvidia|1}} GeForce 400 (except GeForce 405) series, Intel HD Graphics 2500, HD 4000 (2012), and the {{ATIRadeon|1|nt=0}} HD 5000 series.


{{source2|4}} natively supports and runs on this version of DirectX by default, but previous versions are also available for older hardware that only support DX9 (except in {{dota2|4}} since 2021 update). Prior to {{source2|3.1}} (and other {{src|3.1}} third-party branch) releases, {{tfbranch|4}} was the only {{source|4}} branch that supported DX11.
{{source2|4}} natively supports and runs on this version of DirectX by default, but previous versions are also available for older hardware that only support DX9 (except in {{dota2|4}} since 2021 update). Prior to {{source2|2}} (and other {{src|1}} third-party branch) releases, {{tfbranch|4}} was the only {{source|4}} branch that supported DX11.
====Features====
====Features====
*Shader Model 5.0
*Shader Model 5.0
*Multithreaded rendering
*Multithreaded rendering


==== Games with Direct3D 11 (DX11) support ====
==== Supported games ====
* All {{source2|4}} games
* All {{source2|4}} games
* {{strata|4}}
* {{strata|4}}
Line 138: Line 132:
* {{vindictus|4}}
* {{vindictus|4}}


=== <span id="DirectX 12">DirectX 12 / D3D12 (DXGI)</span> ===
=== <span id="DirectX 12">DirectX 12</span> ===
Introduced in 2015 with the release of {{win10|4|nt=2}}, later backported in 2019  to {{win7|2|nt=2|linkto=Windows 7}}. DX12 and D3D12 are not supported on {{win8|1|nt=Windows 8|linkto=8}} or {{win8|1|nt=8.1|linkto=8.1}}. Referred to as "{{code|dxlevel 120}}". <br>
Introduced in 2015 with the release of {{win10|4|nt=2}}, later backported in 2019  to {{win7|2|nt=2|linkto=Windows 7}}. DX12 are not supported on {{win8|1|nt=Windows 8|linkto=8}} or {{win8|1|nt=8.1|linkto=8.1}}. Referred to as "{{code|dxlevel 120}}". <br>


DirectX 12-class graphics cards include the {{nvidia|2}} GeForce 900 series, Intel HD Graphics (from 2015-2016), and the {{AMDRadeon|2|nt=0}} 200 (GCN 2.0), Radeon 300 series cards.
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.


{{note|This is only available in {{apex|4}}. It can be enabled using {{code|-eac_launcher_settings SettingsDX12.json}} launch options.<br> There are currently no {{source2|1}} games that use DirectX 12 (or the D3D12 renderer).}}
==== Supported games ====
* {{Apex|4}} - using {{code|-eac_launcher_settings SettingsDX12.json}} [[command line argument]]


====Features====
====Features====
Line 154: Line 149:


==Sample screenshots==
==Sample screenshots==
{{Note|All {{hl2|4}} screenshots shown here (except the one from [[#Train Station|Train Station]] section) applies to older versions of the Source engine. Starting with {{src07|4}} or {{src09|4}}, most version of DirectX/D3D feature levels except DX8 were dropped, while DX9 added support for HDR and other newer graphical features not present in older engine branches.<br>
{{Note|All {{hl2|4}} screenshots shown here (except the one from [[#Train Station|Train Station]] section) applies to older versions of the Source engine. Starting with {{src07|1}} or {{src09|1}}, most version of DirectX/D3D feature levels except DX8 were dropped, while DX9 added support for HDR and other newer graphical features not present in older engine branches.<br>
Additionally, all screenshots appeared to be based off the default settings (with the exception of [[#Train Station|Train Station]] screenshots with maximum settings and MSAA 8X), with no anti-aliasing and little to no anisotropic filtering (or bilinear/trilinear texture filtering).}}
Additionally, all screenshots appeared to be based off the default settings (with the exception of [[#Train Station|Train Station]] screenshots with maximum settings and MSAA 8X), with no anti-aliasing and little to no anisotropic filtering (or bilinear/trilinear texture filtering).}}
==={{hl2}} Canals===
==={{hl2}} Canals===

Revision as of 23:21, 17 June 2024

English (en)日本語 (ja)Русский (ru)Translate (Translate)

This is 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 test lower-quality DirectX levels on a more advanced graphics card, use the mat_dxlevel cvar. Set it to 60, 70, 80, 81, 90, 95 or 98 (Xbox 360) to set the corresponding DirectX version; it is not possible to run at a higher level than the graphics hardware is capable of.

Icon-Important.pngImportant:Please note that changing mat_dxlevel, does not change the Direct3D renderer (incorrectly refers to DirectX renderer) to render the game on Direct3D 8 or older. Source will always run on Direct3D 9 (or Direct3D 11/12 on some third-party branches). However, the materials, effects and shaders will be changed or disabled for compatibility with older GPUs that predates Direct3D 9, or to allow modern tools such as Nvidia's RTX Remix (also used in Portal with RTX Portal with RTX and upcoming Half-Life 2 RTX Half-Life 2 RTX), which currently only support DX9 or earlier (with compatibility level 8.x or lower, or with fixed function pipelines), to work properly.
Note.pngNote:Source games and engine branches released by Valve since Left 4 Dead Left 4 Dead no longer support all DirectX compatibility levels below DirectX 9.0c, aswell replaced the old DirectX compatibility level with new shader & effect details option. The only modern Source engine branch that still supports older DirectX versions (down to 8.0) is Source 2013 Source 2013. Some third-party Source engine branch or Source successor, Source 2, will only support DirectX 11 (including the Direct3D renderer) or later.
Note.pngNote:On most modern PCs with modern GPUs, these always run with DX11 or newer (and fully support all DX9 features in Source). Players running on DX8 level cards or older on systems with Steam are non-existent (according to Steam Survey). Make alternate assets if you want, but without using RTX Remix tools, almost no one will see them unless they launched the game with -dxlevel 80/81 manually or have a very old system, or by launching a game that utilizes Nvidia RTX Remix, which was only used in Portal with RTX Portal with RTX and Half-Life 2 RTX Half-Life 2 RTX, used to convert most of the DX8 level graphics, or by triggering a bug that Source 2013 Source 2013 commonly had which only occurs on some modern systems.
Icon-Bug.pngBug:On some modern systems, when a Source 2013 Source 2013 game is run for the first time, the game may default to DirectX 8 materials.
To fix this, run the game once with -dxlevel 95 command line option, change your video settings, then save by clicking OK (or Apply then OK), then close the game, open it again, it should show as Software DirectX level: DirectX 9.0+ on the video options.  [todo tested in ?]
Icon-Bug.pngBug:Some effects appears to be missing (or barely visible), such as func_illusionary used for fake volumetric lighting, or the game looks more desaturated compared to DirectX 8 mode.[1][2] See #Train Station  [todo tested in ?]

DirectX Capabilities

Warning.pngWarning:Since Source 2006 Source 2006, DirectX 6 is no longer supported, and in Source 2007 Source 2007 or Source 2009 Source 2009, DirectX 7 is no longer supported.

Starting with Left 4 Dead engine branch Left 4 Dead engine branch and later Source games, all DirectX 8 versions, are no longer supported. Cards that doesn't support DirectX 9.0c are also dropped.
In Portal with RTX Portal with RTX and in other RTX Remix Source games, the game will run on DirectX 7 or 8 mode in order to make RTX Remix RTX Remix work. Also, when using Vulkan renderer on non-RTX Remix games, using dxlevel lower than 90, such as 80/81 for DirectX 8 will cause the game to not render properly.

DirectX 6 compatibility level

Introduced in August 1998, referred to as "DirectX 6.0" and "dxlevel 60".

DirectX 6-class graphics cards include the Nvidia TNT2 and Matrox G400.

DirectX 7 compatibility level

Introduced in September 1999, referred to as "DirectX 7.0" and "dxlevel 70".

DirectX 7-class graphics cards include the Nvidia GeForce 256, 2, 2MX and 4MX cards and the ATI Radeon 7xxx series.

Note.pngNote:RTX Remix games such as Portal with RTX Portal with RTX and the upcoming Half-Life 2 RTX Half-Life 2 RTX render the graphics in this DirectX level with D3D9 renderer, or possibly in DX8 level mode, by replacing the textures and lighting with raytraced ones, then rendering in Vulkan after converting D3D9 to Vulkan.

Features

  • Blob shadows
  • Displacement map texture blending

DirectX 8 compatibility level

Introduced in November 2000, referred to as "DirectX 8.0" 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 with the DX9 rendering path).

Note.pngNote:Due to a bug in some Source 2013 Source 2013 games, when the game is launched for the first time, it may default to DirectX 8.0, even if you have a newer GPU.
A bug report can be found here: Issue 540 on GitHub
Note.pngNote:RTX Remix games such as Portal with RTX Portal with RTX and the upcoming Half-Life 2 RTX Half-Life 2 RTX render the graphics in this DirectX level with D3D9 renderer, or possibly in DX7 level mode, by replacing the textures and lighting with raytraced ones, then rendering in Vulkan after converting D3D9 to Vulkan.

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" and "dxlevel 81".

Included in Windows Windows XP or later, also available on Windows Windows 98/98SE/ME, 2000.

DirectX 8.1-class graphics cards include the Nvidia GeForce FX 5800 and 5900 and the ATI Radeon 8500/9100 and 9000/9200 cards.

Features

  • Soft edge dynamic shadows

DirectX 9 (Shader Model 2)

Introduced in December 2002, referred to as "DirectX 9.0" and "dxlevel 90".

Included in Windows XP SP2 or later, also available on Windows 98/98SE/ME, 2000.

DirectX 9-class graphics cards include the Nvidia GeForce 6600 and 6800 series and the ATI Radeon 9500/9600, 9700/9800, X300/X600 and X800 cards.

Features

  • 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 (except on Intel GPUs by default).
  • Normal-mapped lighting on models
  • Improved-quality specular effects

Since Source 2006 Source 2006:

Since Source 2007 Source 2007:

  • Motion Blur
"dxlevel 92"

This is equivalent to dxlevel 95, but use the translator ToGL to convert the DirectX calls to OpenGL calls. Only on macOS macOS and Linux Linux, and other platforms/operating systems that do not support Direct3D and DirectX.

DirectX 9.0c - Shader Model 3 (in all games since Source 2006 Source 2006)

Referred to as "DirectX 9.0+" and "dxlevel 95". Last version supported for all version of Windows 98/98SE/ME/2000 and XP, aswell as last version of DirectX/Direct3D 9. Older Source 2 games like Dota 2 Dota 2 previously supported Direct3D 9, before it was dropped in 2021.

Left 4 Dead engine branch Left 4 Dead engine branch games and above requires DirectX 9.0c in order to play.

Features

DX9.0c on Xbox 360

Referred to as "dxlevel 98". Made specifically for Xbox 360.

Warning.pngWarning:Doesn't do anything much in PC builds of any game (the game will reset to dxlevel 95 after changing video settings). Only works for Xbox 360, where it is required (and enabled by default).
Features
DX9Ex / Windows Aero DirectX extensions

(only in Source 2013 Counter-Strike: Global Offensive) DX9Ex may improve/reduce performance on certain hardware, depending on graphics driver. Works the same as "dxlevel 95".

In Source 2013 Source 2013, DX9Ex 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 Counter-Strike: Global Offensive, DX9Ex can be disabled using the -disable_d3d9ex command line.

DirectX 10

Introduced in November 2006 with the release of Windows Windows Vista, and only supports the said operating systems, DX10 is not supported on Windows XP. Referred to as "dxlevel 100".

DirectX 10-class graphics cards include the Nvidia GeForce 8 series, Intel GMA X3100, X3500, GMA 4500, Intel HD Graphics (2010) and the ATI Radeon HD 2000/3000 series cards.

Features

  • Shader Model 4.0

Supported games

There are currently no Source engine branch which actually render in Direct3D 10 (aka DX10 mode) despite being mentioned in this GDC 2008 PDF which shows some differences. Additionally, Valve said that DirectX 9 is still sufficient, therefore no Source engine are rendered using Direct3D 10.[4]
All of the DX10 features shown in that PDF file were already available in "dxlevel 95" (DirectX 9 SM 3.0) and Xbox 360 Xbox 360 (which uses "dxlevel 98").

DX9/D3D9 renderer with DX10 features (only in Source Filmmaker SFM, Dota 2 Dota 2 (pre-Reborn))

Note.pngNote:This version is only used in Source FilmmakerSource Filmmaker by default, aswell as the original release of Dota 2 Dota 2,[3] and does nothing on other Source games. This will NOT enable Direct3D 10 at all unless the engine is modified.

DirectX 11

For more DX11 features (which may or may not used in third-party Source Source or Source 2 Source 2 engine), see Wikipedia's DirectX 11 page.

Introduced in 2009 with the release of Windows Windows 7, DirectX 11 requires Windows Vista (with SP2 & Platform Update installed) and later, and some later DX11 versions require Windows 7, 8 or later. 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.

Source 2 Source 2 natively supports and runs on this version of DirectX by default, but previous versions are also available for older hardware that only support DX9 (except in Dota 2 Dota 2 since 2021 update). Prior to Source 2 Source 2 (and other Source third-party branch) releases, Titanfall branch Titanfall branch was the only Source Source branch that supported DX11.

Features

  • Shader Model 5.0
  • Multithreaded rendering

Supported games

DirectX 12

Introduced in 2015 with the release of Windows Windows 10, later backported in 2019 to Windows Windows 7. 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.

Supported games

Features

For more DX12/D3D12 features (which may or may not used in third-party Source Source or Source 2 Source 2 engine), see Wikipedia's Direct3D 12 page.
  • Low-level rendering API, similar to Vulkan
  • Shader Model 5.1
  • Raytracing (since Windows October 2018 Update)
    • Note.pngNote:This ray tracing feature is also available in Portal RTX, but it's uses a different renderer (Vulkan) with DirectX 8 feature level.
  • Dynamic refresh rate (since Windows 11)

Sample screenshots

Note.pngNote:All Half-Life 2 Half-Life 2 screenshots shown here (except the one from Train Station section) applies to older versions of the Source engine. Starting with Source 2007 or Source 2009, most version of DirectX/D3D feature levels except DX8 were dropped, while DX9 added support for HDR and other newer graphical features not present in older engine branches.
Additionally, all screenshots appeared to be based off the default settings (with the exception of Train Station screenshots with maximum settings and MSAA 8X), with no anti-aliasing and little to no anisotropic filtering (or bilinear/trilinear texture filtering).

Half-Life 2 Canals

These screenshots demonstrate displacement map texture blending, directional lightmaps and cubemapped then reflective water.

Old Engine New Engine (Source 2013)
DirectX 6.0 Old Engine - DirectX 6.0 (dxlevel 60) Unsupported since Source 2006
DirectX 7.0 Old Engine - DirectX 7.0 (dxlevel 70) Unsupported since Source 2007
DirectX 8.0 Old Engine - DirectX 8.0 (dxlevel 80) New Engine - DirectX 8.0 (dxlevel 80)
DirectX 8.1 Old Engine - DirectX 8.1 (dxlevel 81) New Engine - DirectX 8.1 (dxlevel 81)
DirectX 9.0+ Old Engine - DirectX 9.0+ (dxlevel 90) New Engine - DirectX 9.0+ (dxlevel 95)

Half-Life 2 Dropship

These screenshots show shadow quality at different rendering levels, ranging from none to soft, dynamic shadows.

Old Engine New Engine (Source 2013)
DirectX 6.0 Old Engine - DirectX 6.0 (dxlevel 60) Unsupported since Source 2006
DirectX 7.0 Old Engine - DirectX 7.0 (dxlevel 70) Unsupported since Source 2007
DirectX 8.0 Old Engine - DirectX 8.0 (dxlevel 80) New Engine - DirectX 8.0 (dxlevel 80)
DirectX 8.1 Old Engine - DirectX 8.1 (dxlevel 81) New Engine - DirectX 8.1 (dxlevel 81)
DirectX 9.0+ Old Engine - DirectX 9.0+ (dxlevel 90) New Engine - DirectX 9.0+ (dxlevel 95)

Half-Life 2 Storm drain

These screenshots show directional lightmaps and cube-mapped specular effects.

DirectX 6.0 Old Engine - DirectX 6.0 (dxlevel 60)
DirectX 7.0 Old Engine - DirectX 7.0 (dxlevel 70)
DirectX 8.0 Old Engine - DirectX 8.0 (dxlevel 80)
DirectX 8.1 Old Engine - DirectX 8.1 (dxlevel 81)
DirectX 9.0+ Old Engine - DirectX 9.0+ (dxlevel 90)

Half-Life 2 Zombie

These screenshots demonstrate the use of normal-mapping on models. The final shot has full, normal-mapped lighting.

DirectX 6.0 Old Engine - DirectX 6.0+ (dxlevel 60)
DirectX 7.0 Old Engine - DirectX 7.0+ (dxlevel 70)
DirectX 8.0 Old Engine - DirectX 8.0+ (dxlevel 80)
DirectX 8.1 Old Engine - DirectX 8.1+ (dxlevel 81)
DirectX 9.0+ Old Engine - DirectX 9.0+ (dxlevel 90)

Half-Life 2 Train Station (fake volumetric lighting)

These screenshots shows the differences between DirectX 8 and 9 on the fake volumetric lighting. The volumetric lighting was less visible with some effects missing on DX9, compared to DX8,[1][2] likely because of a bug introduced since Source 2007 Source 2007/Source 2009 Source 2009.[confirm]

Note.pngNote:This screenshot was taken from the latest version of Half-Life 2 Half-Life 2, which runs on Source 2013 Source 2013, on maximum possible settings, so there might be differences in older versions of Half-Life 2 Half-Life 2.
DirectX 8.0 New Engine - DirectX 8.0 (dxlevel 80)
DirectX 8.1 New Engine - DirectX 8.1 (dxlevel 81)
DirectX 9.0+ New Engine - DirectX 9.0+ (dxlevel 90)
DirectX 9.0+ (after reloading the map) New Engine - DirectX 9.0+, after reloading the map (dxlevel 90)

Portal Portals

These screenshots compares the texture and particles quality on the portals.

DirectX 7.0 and earlier Unsupported and non-functional. Screenshot identical to DirectX 8.0.
DirectX 8.0 Portals on DirectX 8.0 (dxlevel 80)
DirectX 8.1 Portals on DirectX 8.1 (dxlevel 81)
DirectX 9.0+ Portals on DirectX 9.0+ (dxlevel 95)


References

References
3. User:leonidakarlach (June 4, 2024) - According to 🖿dota\cfg\video.txt (generated when the game is launched):
"setting.mindxlevel" "92" "setting.maxdxlevel" "100" "setting.dxlevel" "100"
.
4. PCGH interview about Left 4 Dead, part 2
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..