Games for Windows and the DirectX SDK blog

Technical tips, tricks, and news about game development for Microsoft platforms including desktop, Xbox, and UWP


Project maintained by walbourn Hosted on GitHub Pages — Theme by mattgraham
Home | Posts by Tag | Posts by Month

Visual Studio 2019

visualc

Chuck Walbourn -

Visual Studio 2019 RTM (a.k.a. 16.0) is now available for download, including the updated Community edition. The VS 2019 RTM Redistribution packages are also available (x86, x64), as well as the Remote Debugging Tools (x86, x64). For more information see the Visual Studio Team blog.

Updates older than 16.11 of Visual Studio 2019 are out of their support lifecycle as of October 2022.

Windows SDK: VS 2019 RTM defaults to installing the Windows 10 October 2018 Update SDK (17763). Older Windows SDKs can be selected as optional components.

IDE: See this post for some minor IDE productivity improvements.

New Project Dialog: Note that the start-up and ‘new project dialog’ experience has changed significantly for VS 2019. See this blog post.

Compiler and CRT

VS 2019 includes a new version of the C/C++ compiler (19.20.27508). The toolset has some important performance, compilation time and link time improvements specifically driven by games scenarios. Here is a list of optimizations from earlier VS 2019 previews. For updates on the C++17/C++20 conformance, see this post.

The C/C++ Runtime (14.20.25708) is binary compatible with VS 2015 Update 3 and VS 2017, which means you can safely link code built with VS 2015 Update 3 or VS 2017 with VS 2019. See this post for details.

The VS 2017 C/C++ Runtime DLLs included vcruntime140.dll, msvcp140.dll, msvcp140_1.dll, msvcp140_2.dll, concrt140.dll, and vccorlib140.dll. VS 2019 adds vcruntime140_1.dll. Use of OpenMP also requires vcomp140.dll.

VS 2019 can target Windows 10, Windows 8.1, Windows 7 Service Pack 1, and Windows Vista Service Pack 2. Note that the Visual C++ 2019 REDIST does not support Windows 8.0, Windows 7 RTM, Windows Vista RTM, Windows Vista Service Pack 1, Windows XP RTM, Windows XP Service Pack 1, or Windows XP Service Pack 2 as these platforms are all outside their support lifecycle. See Visual Studio 2019 Product Family System Requirements

OpenMP: See this post for details on OpenMP 4 SIMD experimental support in VS 2019.

C++20 The /std:c++latest switch enables support for C++20 draft features including partial support for operator <=> (i.e. “spaceship” operator). Experimental support for modules is also available.

Note that /std:c++latest is now incompatible with /clr and /ZW (C++/CX).

C++ Code Analysis: See this post and this one for news on the latest C++ code analysis (/analyze) work. There is also an in-editor analysis experimental feature you can try, and some additional C++ Core Checker features.

Windows XP: There is no support for building for Windows XP using the latest toolset. The C++ Windows XP Support for VS 2017 (v141) tools are available as an individual optional component in the VS 2019 installer. When building using the v141_xp Platform Toolset for Windows XP Service Pack 3 target support, remember this uses the Windows 7.1A SDK. The older SDK will generate some warnings in system headers with the new toolset that have to be externally suppressed. See VS 2012 Update 1 for some additional implications for DirectX development.

Xbox One XDK: The Xbox One XDK does not support the VS 2019 toolset. Microsoft GDK supports VS 2017 and VS 2019.

GitHub: The Direct3D Game templates have been updated to support VS 2019, and the Direct3DUWPGame.vsix now supports VS 2015, VS 2017, and VS 2019. I’ve also added VS 2019 projects to DirectX Tool Kit for DX11 / DX12, DirectXTex, DirectXMesh, UVAtlas, DXUT, and Effects11 in the April 2019 releases.

Known Issue: There is a known issue for VS 2019 RTM/Update 1/Update 2 when using my Direct3D Game project templates on GitHub. If you have VS 2017 installed as well, it works. Otherwise you need to edit your devenv.exe.config. See here for the details. This issue is fixed in Update 3.

Known Issue: There is a known issue with DirectXMath where the IsNan tests can fail when building with /fp:fast due to new optimizations. This is fixed when using DirectXMath 3.14 in combination with Update 3.

Related: VS 2019 Update 1, VS 2019 Update 2, VS 2019 Update 3, VS 2019 Update 4, VS 2019 Update 5, VS 2019 Update 6, VS 2019 Update 7, VS 2019 Update 8