Search Unity

We will be removing support for DirectX 9 on the Windows platforms; as a result Windows XP will no longer be supported by default.

When will it happen?

Unity 2017.3

Why is this necessary?

Due to diminishing hardware numbers and the loss of platform support from Microsoft, we have come to the conclusion that continued support of the DirectX 9 API is no longer feasible and is working against us when it comes to developing new features in Unity. It has become increasingly difficult to support and maintain feature parity across several DirectX API versions (9, 11, and 12).

With the rise of new graphics APIs, we feel that Unity continues to have excellent coverage of the hardware and API choices available now and in the future.

What are the next steps?

With Unity 2017.3 both the Unity Editor and the Standalone player will no longer support DirectX 9.

Furthermore, we have investigated the known crash issues related to DirectX 11 and established that these are generally caused by outdated drivers. We intend to find a solution that will prevent these types of crashes in the future and will continue to monitor and resolve issues as they appear.

We would very much like to hear from you if:

  • You have workflows or existing setups that require continued use of DirectX 9
  • If you are aware of any bugs or feature behavior that previously required a downgrade of graphics API to DirectX 9 (“-force-d3d9” command line argument)

Please use the blog post comment section, our forums, or the Unity Bug Reporter to contact us with any feedback.

How to continue supporting Windows XP:

Continued support for the Windows XP platform is possible by manually setting the Graphics APIs for Windows to use OpenGL.

To do this find the Player Rendering Settings located in the Editor menu: Edit > Project Settings > Player.

Disable the Auto Graphics API for Windows checkbox and select the OpenGL option as Graphics APIs for Windows.

Note that in order to have OpenGL support on Windows XP, the system has to have DX10/GL3 class GPU and fairly recent graphics drivers installed (generally drivers from year 2010 or later should work).

References:

  1. Unity hardware statistics
  2. Steam GPU hardware statistics

35 Comments

Subscribe to comments

Comments are closed.

  1. Unity Player [version: Unity 5.6.0f3_497a0f351392]

    d3d11.dll caused an Access Violation (0xc0000005)
    in module d3d11.dll at 0033:f150cff9.
    i have this problem in rust game and i have gforce 630gt can you help

  2. actually, since unity 5x, all my built games doesn’t run correctly on most of XP based machines, mainly if it uses intel gpu.

    when i use standard materials or built in terrain system, i got a flat purple material. the only way that i can develop xp-compatibe games is using vertex shaders or set camera rendering to vertex lit and building my own terrain model with vertex shader material. so deprecating dx9 will not have impact on my projects.

    1. Aras Pranckevičius

      July 14, 2017 at 9:48 am

      Intel makes about 20 different GPUs. Do you have details on which models it has problems? We do QA testing on various Intel GPUs and haven’t noticed problems.

  3. When unity start moving to support .NET 4.5+ and C# 7 and ditch this old 3.5?

    1. Richard Griffiths

      July 12, 2017 at 9:53 pm

      Unity 2017.1 (just released) supports experimental .net 4.5 now. C#6 is supported too. Give them time to get C#7 over.

    2. Alkis Tsapanidis

      July 14, 2017 at 2:42 pm

      What, you mean like they have done in public beta for the past 6 months and as on a public stable release literally now, on 2017.1? Granted, .Net 4.6 support is experimental still and language support is at C# 6, not 7, but it is there.

  4. We set DX9 as the default renderer for our game and it instantly wiped away 99% of ‘I get nothing but a black/purple screen’ complaints from people with older computers. It wouldn’t make sense for us to require a DX11 GPU since we have a 2D game with no complex lighting.

    As far as Windows XP support goes, I wasn’t even aware that Unity still supported it — users with XP are not able to play our game at all; it just crashes on launch! Interesting.

    Our hope is that the OpenGL renderer will not require support for GL 3+…

    1. Aras Pranckevičius

      July 14, 2017 at 9:47 am

      Do you have details on which hardware configurations (GPU models, driver versions etc.) had this problem? We’d very much like to fix that.

  5. Tommaso Lintrami

    July 11, 2017 at 10:22 am

    The end of this Month

  6. If you do this, please add an option in the Launcher to choose between Exclusive Fullscreen and Fullscreen Window.

    For my game, I configured DX11 to be Fullscreen Window and DX9 to be Exclusive Fullscreen, so when the users have a problem with the Fullscreen Window (eg: VSync doesn’t work), then I tell them to switch to DX9 and it usually fixes their graphics issue.

  7. Those are good news, more time for Unity Developers to focus on other task and improvements, backward compatibility slows down working on new features and causes more issues.

  8. Aurimas Blažulionis

    July 11, 2017 at 8:49 am

    I think it is completely fine if OpenGL gets added to the end of the API list by default.

  9. Better shaders please

  10. Dx9 renders faster than dx10 and 11.
    Thx for removing that speed up ;)

    1. Aras Pranckevičius

      July 14, 2017 at 9:46 am

      Hmm, that’s the opposite of my experience; in the various tests that I have done DX11 is usually quite a bit faster. If you have details on where DX9 is faster, we’d love to know about it!

      1. https://forum.unity3d.com/threads/questions-about-deprecating-directx-9.482593/

        Sorry, when I said dx11, in reality it was dx11 on dx10 gpu, so it is slower because of that.
        Sumarized, in Windows 7 with this laptop (i5 2540m, a 6 years old cpu, HD 3000) you can only use dx9 (fast enough) or dx11 (slow). Opengl only works with linux.

        Thank you a lot!

  11. If you need a DX9 build, use any Unity build before 2017.3. It’s an admittedly fair balance of resources and needs, Unity has to serve the greater needs of the many. (Which has to be getting photo-realistic, high FPS rendering that competes with Unreal!)

  12. The only reason I still used DX9 was for exclusive fullscreen mode so it would work with Nvidia Geforce Stream Share. It’s a super finicky program. Not the end of the world, though.

  13. Alex Vanden Abeele

    July 10, 2017 at 8:01 pm

    As you said yourself, we had quite a lot of users who had troubles with their drivers and who were forced to downgrade to dx9. This happened with the automatic update to windows 10 on HP devices.

  14. JustAQuestion

    July 10, 2017 at 7:18 pm

    Steam survey shows <3% players with DX9
    http://store.steampowered.com/hwsurvey/

    So, who cares.

    1. 125 million active users * 0.03 = 3.75 million people…

  15. What about GPUs with dx 10 support? I see that 10% of steam users have such GPUs. Can Unity games work on these GPUs?

    1. DX10 GPU’s are supported through the DX11 API

  16. This is great! We need Unity to keep moving on at a fast pace and not be afraid to deprecate old technologies that keeps holding it back

  17. Thanks for the old configurations. Another raison to stay on 5.6.x :(

  18. Robert Cummings

    July 10, 2017 at 5:49 pm

    Regarding people who wish to continue deploying to DX9:

    The workaround with opengl is fine I think, it’s not as if they will be using any features from newer versions of Unity that I can see (rendering wise at least).

  19. I understand that we’re in the minority, but we’re still asked, very often, about running the game on old laptops that don’t have very good (if any) 3D GPU. Many of our customers need the DX9 option just to make the game run on their systems.

    1. Can’t it be fulfilled with OpenGL? There shouldn’t be much hassle turning to OpenGL?

    2. Aras Pranckevičius

      July 10, 2017 at 5:46 pm

      If they don’t have any GPU, then DX9 won’t work for them either.

      Would be good to know what kinds of GPUs these old laptops actually have. DX9 GPUs are *literally* over 10 years old by now. You still actually have customers who are running your games on year 2004 hardware?

      1. I’ve got no complaints about this change but I do also seem to have a fair amount of players on graphics cards that don’t support DX11. Almost always it’s the Intel® HD Graphics 3000 from 2011 which only supports up to DirectX 10.1.

      2. Will this drop DX10 support as well? The one non-DX11 card that a lot of users still seem to have is the Intel HD 3000 from 2011. Despite the release date it’s a DirectX 10.1 card.

        1. Oops, didn’t seem like my comment worked but I guess it was just delayed. ¯\_(ツ)_/¯

        2. Aras Pranckevičius

          July 14, 2017 at 9:45 am

          DX10.0 and 10.1 GPUs will still be supported just fine.

  20. When will Unity 2017.3 be shipping?

    1. Aras Pranckevičius

      July 10, 2017 at 5:46 pm

      Probably towards end of 2017.