<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://walbourn.github.io//feed.xml" rel="self" type="application/atom+xml" /><link href="https://walbourn.github.io//" rel="alternate" type="text/html" /><updated>2026-02-10T20:40:53+00:00</updated><id>https://walbourn.github.io//feed.xml</id><title type="html">Games for Windows and the DirectX SDK blog</title><subtitle>Technical tips, tricks, and news about game development for Microsoft platforms including desktop, Xbox, and UWP</subtitle><author><name>Chuck Walbourn</name></author><entry><title type="html">Visual Studio 2026</title><link href="https://walbourn.github.io//visual-studio-2026/" rel="alternate" type="text/html" title="Visual Studio 2026" /><published>2026-02-10T11:03:00+00:00</published><updated>2026-02-10T11:03:00+00:00</updated><id>https://walbourn.github.io//visual-studio-2026</id><content type="html" xml:base="https://walbourn.github.io//visual-studio-2026/"><![CDATA[<p>Visual Studio 2026 (a.k.a. 18.0) released late last year, so I’ve been meaning to make a post about it. The Visual C++ team has moved to a new <a href="https://devblogs.microsoft.com/cppblog/new-release-cadence-and-support-lifecycle-for-msvc-build-tools/">release cadence and lifecycle</a>, which is the first thing to read up on. The VS 2026 Redistribution packages are also available (<a href="https://aka.ms/vs/18/release/VC_redist.x86.exe">x86</a>, <a href="https://aka.ms/vs/18/release/VC_redist.x64.exe">x64</a>, <a href="https://aka.ms/vs/18/release/VC_redist.arm64.exe">arm64</a>), as well as the Remote Debugging Tools (<a href="https://aka.ms/vs/18/release/RemoteTools.x86ret.enu.exe">x86</a>, <a href="https://aka.ms/vs/18/release/RemoteTools.amd64ret.enu.exe">x64</a>, <a href="https://aka.ms/vs/18/release/RemoteTools.arm64ret.enu.exe">arm64</a>). For more information see the <a href="https://devblogs.microsoft.com/visualstudio/visual-studio-november-update-visual-studio-2026-cloud-agent-preview-and-more/">Visual Studio team blog</a>, the <a href="https://devblogs.microsoft.com/cppblog/whats-new-for-cpp-developers-in-visual-studio-2026-version-18-0/">Visual C++ Team Blog</a>, and as always the <a href="https://learn.microsoft.com/en-us/visualstudio/releases/2026/release-notes">release notes</a>.</p>

<!--more-->

<p><strong>System requirements</strong>: The <a href="https://learn.microsoft.com/en-us/visualstudio/releases/2026/vs-system-requirements">system requirements</a> for installing VS 2026 are much the same as they were for VS 2022 except for dropping Windows Server 2016. As with Visual Studio 2022 (17.4) or later, VS 2026 has a ARM64 native version of the IDE and tools available.</p>

<p>The major change here is the dropping of support for targeting many older versions of Windows that are out of their support lifecycle. <em>The Visual C++ 2026 toolset no longer supports targeting Windows 7, Windows 8, Windows 8.1, or 32-bit versions of Windows on ARM.</em></p>

<p>VS 2026 includes a new version of the C/C++ Compiler (19.50.35717.0). The <code class="language-plaintext highlighter-rouge">v145</code> Platform Toolset includes support for C++14, C++17, C++20, and C11/C17. A preview of C++23 support is available via <code class="language-plaintext highlighter-rouge">/std:c++23preview</code>. C++26 support for the Standard Library is also in progress in this release using <code class="language-plaintext highlighter-rouge">/std::c++latest</code>. See <a href="https://learn.microsoft.com/cpp/overview/visual-cpp-language-conformance">Microsoft Learn</a> for more details on the C++ language and library conformance status. Note that C11/C17 support requires Windows SDK (20348) or later. For a step-by-step guide on upgrading projects, see <a href="https://devblogs.microsoft.com/cppblog/upgrading-c-projects-to-visual-studio-2026/">this blog post</a>.</p>

<table>
  <thead>
    <tr>
      <th>18.x update</th>
      <th>C++ compiler</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>18.0.0</td>
      <td>19.50.35717.0</td>
    </tr>
    <tr>
      <td>18.0.1</td>
      <td>19.50.35718.0</td>
    </tr>
    <tr>
      <td>18.0.2</td>
      <td>19.50.35719.0</td>
    </tr>
    <tr>
      <td>18.1.0</td>
      <td>19.50.35720.0</td>
    </tr>
    <tr>
      <td>18.1.1</td>
      <td>19.50.35721.0</td>
    </tr>
    <tr>
      <td>18.2.0</td>
      <td>19.50.35722.0</td>
    </tr>
    <tr>
      <td>18.2.1</td>
      <td>19.50.35723.0</td>
    </tr>
  </tbody>
</table>

<p>The C/C++ Runtime (14.50.34710) is binary compatible with VS 2015 Update 3 through VS 2026, which means you can safely link C/C++ code built with VS 2015 Update 3, VS 2017, VS 2019, or VS 2022 with VS 2026. See <a href="https://docs.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=msvc-170">Microsoft Docs</a> for details. For a complete list of updates to the C/C++ Standard Library, see <a href="https://github.com/microsoft/STL/releases/tag/msvc-build-tools-14.50">GitHub</a>. For more details on language conformance updates, see <a href="https://devblogs.microsoft.com/cppblog/c-language-updates-in-msvc-build-tools-v14-50/">this blog post</a>.</p>

<blockquote>
  <p>VS 2026 does provide support for older MSVC toolsets as well per <a href="https://devblogs.microsoft.com/cppblog/msvc-build-tools-versions-14-30-14-43-now-available-in-visual-studio-2026/">this blog post</a>.</p>
</blockquote>

<p><strong>Compiler switches:</strong> The MSVC 19.50 compiler toolset adds a new switch <code class="language-plaintext highlighter-rouge">/Zc:u8EscapeEncoding</code> which enables C++20 conformant encoding for some <code class="language-plaintext highlighter-rouge">u8</code> sequences. Without this switch, the older non-conforming behavior is used when encoding <code class="language-plaintext highlighter-rouge">\x</code> sequences. <em>This was technically added in VS 2022 17.14.</em></p>

<p><strong>C4865 off-by-default warning:</strong> The MSVC 19.50 compiler when using <code class="language-plaintext highlighter-rouge">/Wall</code> will emit this conformance warning. For my GitHub projects, I suppressed this warning as it’s an issue that has to be addressed in the Windows SDK headers.</p>

<p><strong>ASAN:</strong> The Address Sanitizer (ASAN) in VS 2026 has been updated to support ARM64 native applications per <a href="https://devblogs.microsoft.com/cppblog/introducing-msvc-addresssanitizer-for-arm64-targets/">this blog post</a>.</p>

<p><strong>Project Templates:</strong> The <a href="https://aka.ms/gdktemplates">Microsoft GDK Templates</a> on VS Marketplace support VS 2026 including the ARM64 native version. <em>I’m working on releasing a new build of the directx-vs-templates VSIX with v145 support on GitHub.</em></p>

<p><strong>Xbox:</strong> Support for Visual Studio 2026 for the <em>Microsoft GDK with Xbox Extensions</em> will be shipped in a future update. Basic MSBuild support for the Gaming.*.x64 custom platforms via BWOI is present in the October 2025 release as part of the <em>new layouts</em> folders.</p>

<p><strong>CMake:</strong> VS 2026 ships with <a href="https://cmake.org/cmake/help/v4.1/release/4.1.html">CMake 4.1.1</a>. The included version supports the “Visual Studio 18 2026” generator, which is not in the mainline version until CMake 4.2.0.</p>

<p><strong>clang:</strong> VS 2026 includes <a href="https://releases.llvm.org/20.1.0/tools/clang/docs/ReleaseNotes.html">clang/LLVM 20.1.8</a> for Windows as an optional component. Note that the latest compiler fixes some name-mangling compat issues with MSVC 19.20 or later, but won’t be compatible with older clang-built libraries. The switch <code class="language-plaintext highlighter-rouge">-fms-compatibility-version=19.14</code> returns to the older behavior if needed.</p>]]></content><author><name>Chuck Walbourn</name></author><category term="visualc" /><summary type="html"><![CDATA[Visual Studio 2026 (a.k.a. 18.0) released late last year, so I’ve been meaning to make a post about it. The Visual C++ team has moved to a new release cadence and lifecycle, which is the first thing to read up on. The VS 2026 Redistribution packages are also available (x86, x64, arm64), as well as the Remote Debugging Tools (x86, x64, arm64). For more information see the Visual Studio team blog, the Visual C++ Team Blog, and as always the release notes.]]></summary></entry><entry><title type="html">Direct3D Game Visual Studio templates (VCPKG edition)</title><link href="https://walbourn.github.io//direct3d-game-visual-studio-templates-(vcpkg-edition)/" rel="alternate" type="text/html" title="Direct3D Game Visual Studio templates (VCPKG edition)" /><published>2025-07-23T17:01:00+00:00</published><updated>2025-07-23T17:01:00+00:00</updated><id>https://walbourn.github.io//direct3d-game-visual-studio-templates-(vcpkg-edition)</id><content type="html" xml:base="https://walbourn.github.io//direct3d-game-visual-studio-templates-(vcpkg-edition)/"><![CDATA[<p>Over the past few years, I’ve been working more with the <a href="https://vcpkg.io/">vcpkg Package Manager</a>, including support for all my GitHub projects, development of <a href="https://walbourn.github.io/vcpkg-now-supports-targeting-xbox/">xbox community triplets</a>, and adopting VCPKG for a number of game develompent workflows. In doing so, I’ve found the “vcpkg manifest mode” feature greatly simplifies integration for projects. I have therefore released a number of new Visual Studio Project templates.</p>

<!--more-->

<p>The <a href="https://github.com/walbourn/directx-vs-templates">directx-vs-templates</a> project hosts most of my templates with two new templates in the latest release: <strong>d3d11game_vcpkg</strong> and <strong>d3d12game_vcpkg</strong>. The <a href="https://github.com/walbourn/directx-vs-templates/raw/main/VSIX/Direct3DUWPGame.vsix">VSIX</a> package there lets you create MSBuild projects, and there are PowerShell scripts and files available for generating CMake versions. For more information, see <a href="https://github.com/walbourn/directx-vs-templates/wiki">the wiki</a>.</p>

<p>In addition, there is now an official <em>Microsoft GDK</em> template that uses vcpkg available on <a href="https://aka.ms/gdktemplates">Visual Studio Marketplace</a>. This includes both a MSBuild and a CMake version using the <a href="https://github.com/microsoft/vcpkg/tree/master/ports/ms-gdk">ms-gdk</a> vcpkg port so you don’t need to install the <em>Microsoft GDK</em> to build against it. The <code class="language-plaintext highlighter-rouge">README.md</code> includes a quick tutorial on adding the <em>directxtk12</em> port to the project and some basic drawing with <em>Directx Tool Kit for DX12</em>.</p>

<blockquote>
  <p>I’m working on some new samples to demonstrate building a single project with both the public <em>Microsoft GDK</em> and the NDA <em>Microsoft GDK with Xbox Extensions</em> using VCPKG for various dependancies. I’ll update this blog post with links when they are available later this summer.</p>
</blockquote>

<p>See <a href="https://walbourn.github.io/direct3d-win32-game-visual-studio-template/">Direct3D Win32 Game Visual Studio template</a> and <a href="https://walbourn.github.io/direct3d-game-visual-studio-templates-redux/">Direct3D Game Visual Studio templates (Redux)</a></p>]]></content><author><name>Chuck Walbourn</name></author><category term="direct3d" /><category term="visualc" /><category term="vcpkg" /><summary type="html"><![CDATA[Over the past few years, I’ve been working more with the vcpkg Package Manager, including support for all my GitHub projects, development of xbox community triplets, and adopting VCPKG for a number of game develompent workflows. In doing so, I’ve found the “vcpkg manifest mode” feature greatly simplifies integration for projects. I have therefore released a number of new Visual Studio Project templates.]]></summary></entry><entry><title type="html">VS 2022 Update 14</title><link href="https://walbourn.github.io//vs-2022-update-14/" rel="alternate" type="text/html" title="VS 2022 Update 14" /><published>2025-05-14T17:30:00+00:00</published><updated>2025-05-14T17:30:00+00:00</updated><id>https://walbourn.github.io//vs-2022-update-14</id><content type="html" xml:base="https://walbourn.github.io//vs-2022-update-14/"><![CDATA[<p>Visual Studio 2022 Update 14 (a.k.a. 17.14) is now available for <a href="https://visualstudio.microsoft.com/downloads/">download</a>, including the updated Community edition. For more information, see the <a href="https://devblogs.microsoft.com/visualstudio/visual-studio-2022-v17-14-is-now-generally-available/">Visual Studio Team blog</a>, <a href="https://devblogs.microsoft.com/cppblog/whats-new-for-cpp-developers-in-visual-studio-2022-17-14/">Visual C++ Team Blog</a>, and the <a href="https://learn.microsoft.com/visualstudio/releases/2022/release-notes">release notes</a>.</p>

<!--more-->

<p><em>Note that VS 2022 17.12 and 17.14 are supported through the <a href="https://docs.microsoft.com/visualstudio/productinfo/vs-servicing#long-term-servicing-channel-ltsc-support">Long Term Servicing Channel</a>.</em></p>

<blockquote>
  <p><strong>VS Content Pipeline:</strong> Note that in 17.9.3 the use of the Autodesk FBX SDK was removed due to a <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-27911">security issue</a>. The result is that the 3D Model Viewer was removed and the MeshContentTask no longer functions for converting meshes to CMO files. For Wavefront OBJ to CMO, you can use <code class="language-plaintext highlighter-rouge">meshconvert</code> in the <a href="https://github.com/microsoft/DirectXMesh">DirectXMesh</a> project. I’m looking at adding support for exporting CMO to the <a href="https://github.com/walbourn/contentexporter/issues/23">ATG Samples Content Exporter</a>.</p>
</blockquote>

<h1>Compiler and CRT</h1>

<p>VS 2022 Update 14 includes a revision of the C/C++ compiler (19.44.35207).</p>

<table>
  <thead>
    <tr>
      <th>17.14 update</th>
      <th>C++ compiler</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>17.14.0</td>
      <td>19.44.35207.1</td>
    </tr>
    <tr>
      <td>17.14.3</td>
      <td>19.44.35208.0</td>
    </tr>
    <tr>
      <td>17.14.4</td>
      <td>19.44.35209.0</td>
    </tr>
    <tr>
      <td>17.14.6</td>
      <td>19.44.35211.0</td>
    </tr>
    <tr>
      <td>17.14.9</td>
      <td>19.44.35213.0</td>
    </tr>
  </tbody>
</table>

<p>The C/C++ Runtime (14.44.35112) is binary compatible with VS 2015 Update 3 through VS 2022, which means you can safely link C/C++ code built with VS 2015 Update 3, VS 2017, or VS 2019 with VS 2022. See <a href="https://docs.microsoft.com/cpp/porting/binary-compat-2015-2017?view=msvc-170">Microsoft Docs</a> for details. A full list of updates to the <em>Standard C++ Library</em> can be found on <a href="https://github.com/microsoft/STL/wiki/Changelog#vs-2022-1714">GitHub</a>.</p>

<p><strong>C++23:</strong> See <a href="https://devblogs.microsoft.com/cppblog/c-language-updates-in-msvc-in-visual-studio-2022-17-14/">Visual C++ Team blog</a>.</p>

<p><strong>CMake:</strong> This update includes CMake <a href="https://cmake.org/cmake/help/v3.31/release/3.31.html">version 3.31</a>.</p>

<p><strong>clang:</strong> VS 2022 17.14 includes <a href="https://releases.llvm.org/19.1.0/tools/clang/docs/ReleaseNotes.html">clang/LLVM v19.1.5</a> for Windows as an optional component.</p>

<p><strong>Related</strong>: <a href="https://walbourn.github.io/visual-studio-2022/">Visual Studio 2022</a>, <a href="https://walbourn.github.io/vs-2022-update-1/">VS 2022 Update 1</a>, <a href="https://walbourn.github.io/vs-2022-update-2/">VS 2022 Update 2</a>, <a href="https://walbourn.github.io/vs-2022-update-3/">VS 2022 Update 3</a>, <a href="https://walbourn.github.io/vs-2022-update-4/">VS 2022 Update 4</a>, <a href="https://walbourn.github.io/vs-2022-update-5/">VS 2022 Update 5</a>, <a href="https://walbourn.github.io/vs-2022-update-6/">VS 2022 Update 6</a>, <a href="https://walbourn.github.io/vs-2022-update-7/">VS 2022 Update 7</a>, <a href="https://walbourn.github.io/vs-2022-update-8/">VS 2022 Update 8</a>, <a href="https://walbourn.github.io/vs-2022-update-9/">VS 2022 Update 9</a>, <a href="https://walbourn.github.io/vs-2022-update-10/">VS 2022 Update 10</a>, <a href="https://walbourn.github.io/vs-2022-update-11/">VS 2022 Update 11</a>, <a href="https://walbourn.github.io/vs-2022-update-12/">VS 2022 Update 12</a>, <a href="https://walbourn.github.io/vs-2022-update-13/">VS 2022 Update 13</a></p>]]></content><author><name>Chuck Walbourn</name></author><category term="visualc" /><summary type="html"><![CDATA[Visual Studio 2022 Update 14 (a.k.a. 17.14) is now available for download, including the updated Community edition. For more information, see the Visual Studio Team blog, Visual C++ Team Blog, and the release notes.]]></summary></entry><entry><title type="html">GitHub Project Updates 2025</title><link href="https://walbourn.github.io//github-project-updates-2025/" rel="alternate" type="text/html" title="GitHub Project Updates 2025" /><published>2025-04-23T09:37:00+00:00</published><updated>2025-04-23T09:37:00+00:00</updated><id>https://walbourn.github.io//github-project-updates-2025</id><content type="html" xml:base="https://walbourn.github.io//github-project-updates-2025/"><![CDATA[<p>I’ve completed my first releases of 2025 for my various GitHub projects, and there are some changes I felt were worth highlighting. This includes updates to <em>DirectX Tool Kit</em> for both <a href="https://github.com/microsoft/DirectXTK/releases/tag/mar2025">DX11</a> and <a href="https://github.com/microsoft/DirectXTK12/releases/tag/mar2025">DX12</a>, <a href="https://github.com/microsoft/DirectXTex/releases/tag/mar2025">DirectXTex</a>, <a href="https://github.com/microsoft/DirectXMesh/releases/tag/mar2025">DirectXMesh</a>, <a href="https://github.com/microsoft/UVAtlas/releases/tag/mar2025">UVAtlas</a>, and <a href="https://github.com/microsoft/DirectXMath/releases/tag/apr2025">DirectXMath</a> as well as a number of changes to my <a href="https://docs.microsoft.com/en-us/nuget/what-is-nuget">NuGet</a> packages in particular.</p>

<!--more-->

<h1 id="windows-7-and-windows-80-retirement">Windows 7 and Windows 8.0 Retirement</h1>

<p>I’ve removed all codepaths for supporting Windows 7 and Windows 8.0 from my libraries. The minimum supported operating system is now Windows 8.1 or later. Windows 7 hit <a href="https://walbourn.github.io/twilight-for-windows-7/">end of life</a> five years ago, and Windows 8.0 has been out of support for years as well. I could have gone so far as to remove Windows 8.1 support since that hit <a href="https://walbourn.github.io/windows-8.x-now-out-of-support/">end of life</a> two years ago, but I kept it for now primarily because I still have legacy Xbox One XDK support for a few of the libraries which uses the <code class="language-plaintext highlighter-rouge">0x0602</code> codepaths.</p>

<p>As part of these changes I simplified <em>DirectX Tool Kit for Audio</em> projects considerabilty and no longer have secondary <code class="language-plaintext highlighter-rouge">vcxproj</code> files for various XAudio2 versions. Instead, the <strong>DirectXTK_Desktop_20xx</strong> projects build for Windows 8.1 and XAudio 2.8. The <strong>DirectXTK_Desktop_20xx_Win10</strong> projects build for Windows 10 or later and use XAudio 2.9.</p>

<blockquote>
  <p>The <em>directxtk_desktop_2019</em> NuGet package no longer uses the XAudio2Redist package and just uses XAudio 2.8. The <em>directxtk[12]_desktop_win10</em> NuGet packages continue to use XAudio 2.9. If you want to use XAudio2Redist, this is still supported by the CMake projects.</p>
</blockquote>

<p>For GamePad and building using XInput, I assume XInput 1.4 is present rather than using XInput 9.1.0 for ‘downlevel’ support which was required for Windows 7. Note I actively avoid using legacy DirectX SDK XInput 1.3 as it requires legacy DXSetup to deploy and has known security bugs.</p>

<h1 id="gameinput-v1-api-support">GameInput v1 API Support</h1>

<p>Speaking of the <em>DirectX Tool Kit</em> input classes. The GameInput implementation now supports both the original <code class="language-plaintext highlighter-rouge">GAMEINPUT_API_VERSION</code> of 0 and can now build for the new <code class="language-plaintext highlighter-rouge">GAMEINPUT_API_VERSION 1</code> release from <em>Game Developer Conference</em> last month. See <a href="https://learn.microsoft.com/gaming/gdk/_content/gc/input/overviews/input-versioning">Microsoft Learn</a> for more details. GameInput v1 for PC is available on <a href="https://www.nuget.org/packages/Microsoft.GameInput">NuGet</a> and <a href="https://github.com/microsoft/vcpkg/tree/master/ports/gameinput">vcpkg</a>. Be sure to run <code class="language-plaintext highlighter-rouge">GameInputRedist.msi</code> on your development system and include it in your redistribution.</p>

<blockquote>
  <p>To make use of GameInput v1 on PC, use the CMake option <code class="language-plaintext highlighter-rouge">BUILD_GAMEINPUT</code>. The <em>directxtk</em> and <em>directxk12</em> vcpkg ports both offer <em>gameinput</em> features.</p>
</blockquote>

<blockquote>
  <p>For Xbox One and Xbox Series X|S using the Microsoft GDK with Xbox extensions, it still uses the GameInput v0 API.</p>
</blockquote>

<h1 id="directx-tool-kit-for-audio">DirectX Tool Kit for Audio</h1>

<p>In my original implementation using X3DAudio for <em>DirectX Toolkit for Audio</em>, I made use of <code class="language-plaintext highlighter-rouge">X3DAUDIO_CALCULATE_MATRIX | X3DAUDIO_CALCULATE_DOPPLER | X3DAUDIO_CALCULATE_LPF_DIRECT</code> and if there was reverb I also added <code class="language-plaintext highlighter-rouge">X3DAUDIO_CALCULATE_LPF_REVERB | X3DAUDIO_CALCULATE_REVERB</code>. I also set the use of <code class="language-plaintext highlighter-rouge">X3DAUDIO_CALCULATE_REDIRECT_TO_LFE</code> for speaker configs with an LFE channel.</p>

<p>I reworked this implementation as follows:</p>

<ul>
  <li>
    <p><strong>AudioEngine_DisableLFERedirect</strong> turns off the default use of <code class="language-plaintext highlighter-rouge">X3DAUDIO_CALCULATE_REDIRECT_TO_LFE</code> if the speaker config has a LFE channel.</p>
  </li>
  <li>
    <p><strong>AudioEngine_DisableDopplerEffect</strong> turns off the use of <code class="language-plaintext highlighter-rouge">X3DAUDIO_CALCULATE_DOPPLER</code> for all cases.</p>
  </li>
  <li>
    <p><strong>AudioEngine_ZeroCenter3D</strong> adds the use of <code class="language-plaintext highlighter-rouge">X3DAUDIO_CALCULATE_ZEROCENTER</code> for all cases.</p>
  </li>
  <li>
    <p>The <strong>SoundEffectInstance_UseRedirectLFE</strong> was originally marked as ‘internal only’ but is now used to enable <code class="language-plaintext highlighter-rouge">X3DAUDIO_CALCULATE_REDIRECT_TO_LFE</code> on a per-voice basis if you are also using <em>AudioEngine_DisableLFERedirect</em>.</p>
  </li>
  <li>
    <p>The <strong>SoundEffectInstance_ZeroCenter3D</strong> flags allows setting <code class="language-plaintext highlighter-rouge">X3DAUDIO_CALCULATE_ZEROCENTER</code> on a per-voice basis if not using <em>AudioEngine_ZeroCenter3D</em>.</p>
  </li>
</ul>

<blockquote>
  <p>For the <em>DirectX Tool Kit for DX11</em> CMake project, I renamed the option <code class="language-plaintext highlighter-rouge">BUILD_XAUDIO_WIN7</code> to <code class="language-plaintext highlighter-rouge">BUILD_XAUDIO_REDIST</code> which is consistent with <em>DirectX Tool Kit for DX12</em>.</p>
</blockquote>

<blockquote>
  <p>The latest <a href="https://aka.ms/XAudio2Redist">XAudio2Redist</a> now includes x86, x64, and ARM64 binaries.</p>
</blockquote>

<h1 id="deprecation-of-arm64-using-vs-2019">Deprecation of ARM64 using VS 2019</h1>

<p>In a recent service release of <a href="https://walbourn.github.io/windows-sdk-for-windows-11,-version-24h2/">Windows 11 SDK (26100)</a>, support for VS 2019 when building for ARM64 was dropped. I have made all ARM64 binaries use VS 2022 per the recommendation of the compiler team.</p>

<ul>
  <li>
    <p>The <em>xyz_desktop_2019</em> NuGet packages now support only x86 and x64 and are built with VS 2019. This is forward compatible for VS 2022 as well.</p>
  </li>
  <li>
    <p>The <em>xyz_uwp</em> NuGet packages all require VS 2022 as of last October 2024 releases.</p>
  </li>
  <li>
    <p>The <em>xyz_desktop_win10</em> NuGet packges are built with VS 2022 and include x86, x64, and ARM64. Note I added new <em>directxtk12_desktop_win10</em> and <em>uvatlas_desktop_win10</em> NuGet packages for this scenario.</p>
  </li>
</ul>

<p>Windows on ARM 32-bit support was removed last year due to deprecation per <a href="https://learn.microsoft.com/windows/arm/arm32-to-arm64">Microsoft Learn</a>.</p>

<h1 id="cmake-support-for-generating-shared-library-dlls">CMake support for generating shared library DLLs</h1>

<p>For many years, I have focused on only supporting C++ static linking for my GitHub projects. I have occassionaly gotten requests for DLL shared lib support, but didn’t want to manage a lot of extra <code class="language-plaintext highlighter-rouge">vcxproj</code> files and macros. I’ve since added support to the CMake projects using <code class="language-plaintext highlighter-rouge">BUILD_SHARED_LIBS</code>. The GitHub projects can therefore be built as either static C++ libraries or DLLs using CMake. The MSBuild projects are all still C++ static libraries only.</p>

<p>For vcpkg scenarios, this means that if you use <em>x64-windows</em> then you will get a DLL instead of a static C++ library for these projects. The CMake target will automatically set the required import preprocessor define. For vcpkg+MSBuild integration, you have to define it in your project settings directly.</p>

<table>
  <thead>
    <tr>
      <th>Library as a DLL</th>
      <th>Preprocessor define</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>DirectXTex</td>
      <td><code>DIRECTX_TEX_IMPORT</code></td>
    </tr>
    <tr>
      <td>DirectXMesh</td>
      <td><code>DIRECTX_MESH_IMPORT</code></td>
    </tr>
    <tr>
      <td>DirectXTK<br />DirectXTK12</td>
      <td><code>DIRECTX_TOOLKIT_IMPORT</code></td>
    </tr>
    <tr>
      <td>UVAtlas</td>
      <td><code>UVATLAS_IMPORT</code></td>
    </tr>
  </tbody>
</table>

<p>If you still want a static C++ library, then use <em>-static</em> or <em>-static-md</em> triplets instead (i.e. <em>x64-windows-static-md</em>).</p>

<blockquote>
  <p>In the process of adding this functionality, I found a bug in the <a href="https://walbourn.github.io/vcpkg-now-supports-targeting-xbox/">xbox community triplets</a> toolchain file when building for a DLL instead of as a static library. This is fixed as of <a href="https://github.com/microsoft/vcpkg/commit/20224c957c951946400d69c8a2891f31dfbce2cf">this commit</a>.</p>
</blockquote>

<p>BTW, the <em>ctest</em> test suites for these projects all support either <code class="language-plaintext highlighter-rouge">BUILD_SHARED_LIBS</code> setting. Some of the additional ‘white box’ tests are skipped in the DLL version since those entry-points are not exported.</p>

<h1 id="directxmath">DirectXMath</h1>

<p>The DirectXMath 3.20b release is a minor update. The only code change is that the <code class="language-plaintext highlighter-rouge">XM_DEPRECATED</code> macro will use the C++14 <code class="language-plaintext highlighter-rouge">[[deprecated]]</code> standard attribute instead of various compiler-specific solutions when appropriate.</p>

<p>The primary purpose of this release was to update the CMake project to add <code class="language-plaintext highlighter-rouge">BUILD_XDSP</code>, <code class="language-plaintext highlighter-rouge">BUILD_SHMATH</code>, <code class="language-plaintext highlighter-rouge">BUILD_DX11</code>, and <code class="language-plaintext highlighter-rouge">BUILD_DX12</code> options for the optional <a href="https://walbourn.github.io/xdsp-h-digital-signal-processing-helper-functions/">XDSP</a> and <a href="https://walbourn.github.io/spherical-harmonics-math/">SHMath</a> libraries, which are used by the latest vcpkg port.</p>

<h1 id="future-plans">Future plans</h1>

<p>I have a few feature requests pending that I will be working on over the coming months. The main ‘break change’ I plan for later this year is to move the CMake minimum version up to 3.21 instead of 3.20. Visual Studio 2019 16.11 only came with CMake 3.20 which is why I currently use that, and Visual Studio 2022 originally shipped with 3.21. You can combine newer CMake installs with the VS 2019 toolset, but for now I wanted to keep it simple.</p>]]></content><author><name>Chuck Walbourn</name></author><category term="github" /><category term="vcpkg" /><summary type="html"><![CDATA[I’ve completed my first releases of 2025 for my various GitHub projects, and there are some changes I felt were worth highlighting. This includes updates to DirectX Tool Kit for both DX11 and DX12, DirectXTex, DirectXMesh, UVAtlas, and DirectXMath as well as a number of changes to my NuGet packages in particular.]]></summary></entry><entry><title type="html">VS 2022 Update 13</title><link href="https://walbourn.github.io//vs-2022-update-13/" rel="alternate" type="text/html" title="VS 2022 Update 13" /><published>2025-02-24T11:23:00+00:00</published><updated>2025-02-24T11:23:00+00:00</updated><id>https://walbourn.github.io//vs-2022-update-13</id><content type="html" xml:base="https://walbourn.github.io//vs-2022-update-13/"><![CDATA[<p>Visual Studio 2022 Update 13 (a.k.a. 17.13) is now available for <a href="https://visualstudio.microsoft.com/downloads/">download</a>, including the updated Community edition. For more information, see the <a href="https://devblogs.microsoft.com/visualstudio/visual-studio-2022-v17-13-is-now-available/">Visual Studio Team blog</a>, <a href="https://devblogs.microsoft.com/cppblog/whats-new-for-c-developers-in-visual-studio-2022-17-13/">Visual C++ Team Blog</a>, and the <a href="https://learn.microsoft.com/visualstudio/releases/2022/release-notes">release notes</a>.</p>

<!--more-->

<p><em>Note that VS 2022 17.12 and 17.14 are supported through the <a href="https://docs.microsoft.com/visualstudio/productinfo/vs-servicing#long-term-servicing-channel-ltsc-support">Long Term Servicing Channel</a>.</em></p>

<blockquote>
  <p><strong>VS Content Pipeline:</strong> Note that in 17.9.3 the use of the Autodesk FBX SDK was removed due to a <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-27911">security issue</a>. The result is that the 3D Model Viewer was removed and the MeshContentTask no longer functions for converting meshes to CMO files. For Wavefront OBJ to CMO, you can use <code class="language-plaintext highlighter-rouge">meshconvert</code> in the <a href="https://github.com/microsoft/DirectXMesh">DirectXMesh</a> project. I’m looking at adding support for exporting CMO to the <a href="https://github.com/walbourn/contentexporter/issues/23">ATG Samples Content Exporter</a>.</p>
</blockquote>

<h1>Compiler and CRT</h1>

<p>VS 2022 Update 13 includes a revision of the C/C++ compiler (19.43.34808).</p>

<table>
  <thead>
    <tr>
      <th>17.13 update</th>
      <th>C++ compiler</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>17.13.0</td>
      <td>19.43.34808.0</td>
    </tr>
    <tr>
      <td>17.13.3</td>
      <td>19.43.34809.0</td>
    </tr>
    <tr>
      <td>17.13.6</td>
      <td>19.43.34810.0</td>
    </tr>
  </tbody>
</table>

<p>The C/C++ Runtime (14.42.34433) from Update 12 is unchanged. A full list of updates to the <em>Standard C++ Library</em> can be found on <a href="https://github.com/microsoft/STL/wiki/Changelog#vs-2022-1713">GitHub</a>.</p>

<p><strong>C++23:</strong> This compiler adds a new C++23 language feature. See <a href="https://devblogs.microsoft.com/cppblog/msvc-compiler-updates-in-visual-studio-2022-version-17-13/">Visual C++ Team blog</a>.</p>

<p><strong>CMake:</strong> This update includes CMake <a href="https://cmake.org/cmake/help/v3.30/release/3.30.html">version 3.30</a>.</p>

<p><strong>Xbox:</strong> The Address Sanitizer (ASAN) DLL in 17.13.0 was not compatible with the Xbox Game OS. A servicing fix for this issue was made in 17.13.3.</p>

<p><strong>clang:</strong> VS 2022 17.13 includes <a href="https://releases.llvm.org/19.1.0/tools/clang/docs/ReleaseNotes.html">clang/LLVM v19.1.1</a> for Windows as an optional component.</p>

<p><strong>Related</strong>: <a href="https://walbourn.github.io/visual-studio-2022/">Visual Studio 2022</a>, <a href="https://walbourn.github.io/vs-2022-update-1/">VS 2022 Update 1</a>, <a href="https://walbourn.github.io/vs-2022-update-2/">VS 2022 Update 2</a>, <a href="https://walbourn.github.io/vs-2022-update-3/">VS 2022 Update 3</a>, <a href="https://walbourn.github.io/vs-2022-update-4/">VS 2022 Update 4</a>, <a href="https://walbourn.github.io/vs-2022-update-5/">VS 2022 Update 5</a>, <a href="https://walbourn.github.io/vs-2022-update-6/">VS 2022 Update 6</a>, <a href="https://walbourn.github.io/vs-2022-update-7/">VS 2022 Update 7</a>, <a href="https://walbourn.github.io/vs-2022-update-8/">VS 2022 Update 8</a>, <a href="https://walbourn.github.io/vs-2022-update-9/">VS 2022 Update 9</a>, <a href="https://walbourn.github.io/vs-2022-update-10/">VS 2022 Update 10</a>, <a href="https://walbourn.github.io/vs-2022-update-11/">VS 2022 Update 11</a>, <a href="https://walbourn.github.io/vs-2022-update-12/">VS 2022 Update 12</a></p>]]></content><author><name>Chuck Walbourn</name></author><category term="visualc" /><summary type="html"><![CDATA[Visual Studio 2022 Update 13 (a.k.a. 17.13) is now available for download, including the updated Community edition. For more information, see the Visual Studio Team blog, Visual C++ Team Blog, and the release notes.]]></summary></entry><entry><title type="html">VS 2022 Update 12</title><link href="https://walbourn.github.io//vs-2022-update-12/" rel="alternate" type="text/html" title="VS 2022 Update 12" /><published>2024-11-12T16:28:00+00:00</published><updated>2024-11-12T16:28:00+00:00</updated><id>https://walbourn.github.io//vs-2022-update-12</id><content type="html" xml:base="https://walbourn.github.io//vs-2022-update-12/"><![CDATA[<p>Visual Studio 2022 Update 12 (a.k.a. 17.12) is now available for <a href="https://visualstudio.microsoft.com/downloads/">download</a>, including the updated Community edition. For more information, see the <a href="https://devblogs.microsoft.com/visualstudio/visual-studio-2022-v17-12-with-dotnet-9/">Visual Studio Team blog</a>, <a href="https://devblogs.microsoft.com/cppblog/whats-new-for-c-developers-in-visual-studio-2022-17-12/">Visual C++ Team Blog</a>, and the <a href="https://learn.microsoft.com/visualstudio/releases/2022/release-notes">release notes</a>.</p>

<!--more-->

<p><em>Note that VS 2022 17.10, 17.12, and 17.14 are supported through the <a href="https://docs.microsoft.com/visualstudio/productinfo/vs-servicing#long-term-servicing-channel-ltsc-support">Long Term Servicing Channel</a>.</em></p>

<blockquote>
  <p><strong>VS Content Pipeline:</strong> Note that in 17.9.3 the use of the Autodesk FBX SDK was removed due to a <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-27911">security issue</a>. The result is that the 3D Model Viewer was removed and the MeshContentTask no longer functions for converting meshes to CMO files. For Wavefront OBJ to CMO, you can use <code class="language-plaintext highlighter-rouge">meshconvert</code> in the <a href="https://github.com/microsoft/DirectXMesh">DirectXMesh</a> project. I’m looking at adding support for exporting CMO to the <a href="https://github.com/walbourn/contentexporter/issues/23">ATG Samples Content Exporter</a>.</p>
</blockquote>

<h1>Compiler and CRT</h1>

<p>VS 2022 Update 12 includes a revision of the C/C++ compiler (19.42.34433).</p>

<table>
  <thead>
    <tr>
      <th>17.12 update</th>
      <th>C++ compiler</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>17.12.0</td>
      <td>19.42.34433.0</td>
    </tr>
    <tr>
      <td>17.12.2</td>
      <td>19.42.34435.0</td>
    </tr>
    <tr>
      <td>17.12.4</td>
      <td>19.42.34436.0</td>
    </tr>
  </tbody>
</table>

<p>The C/C++ Runtime (14.42.34433) is binary compatible with VS 2015 Update 3 through VS 2022, which means you can safely link C/C++ code built with VS 2015 Update 3, VS 2017, or VS 2019 with VS 2022. See <a href="https://docs.microsoft.com/cpp/porting/binary-compat-2015-2017?view=msvc-170">Microsoft Docs</a> for details. A full list of updates to the <em>Standard C++ Library</em> can be found on <a href="https://github.com/microsoft/STL/wiki/Changelog#vs-2022-1712">GitHub</a>.</p>

<p><strong>C++23:</strong> This compiler adds a new C++23 language feature. See <a href="https://devblogs.microsoft.com/cppblog/msvc-compiler-language-updates-in-visual-studio-2022-version-17-12/">Visual C++ Team blog</a>.</p>

<p><strong>Xbox:</strong> The Address Sanitizer (ASAN) DLL in 17.12.0 was not compatible with the Xbox Game OS. A servicing fix for this issue was made in 17.12.6.</p>

<p><strong>clang:</strong> VS 2022 17.12 includes <a href="https://releases.llvm.org/18.1.8/tools/clang/docs/ReleaseNotes.html">clang/LLVM v18.1.8</a> for Windows as an optional component.</p>

<p><strong>Related</strong>: <a href="https://walbourn.github.io/visual-studio-2022/">Visual Studio 2022</a>, <a href="https://walbourn.github.io/vs-2022-update-1/">VS 2022 Update 1</a>, <a href="https://walbourn.github.io/vs-2022-update-2/">VS 2022 Update 2</a>, <a href="https://walbourn.github.io/vs-2022-update-3/">VS 2022 Update 3</a>, <a href="https://walbourn.github.io/vs-2022-update-4/">VS 2022 Update 4</a>, <a href="https://walbourn.github.io/vs-2022-update-5/">VS 2022 Update 5</a>, <a href="https://walbourn.github.io/vs-2022-update-6/">VS 2022 Update 6</a>, <a href="https://walbourn.github.io/vs-2022-update-7/">VS 2022 Update 7</a>, <a href="https://walbourn.github.io/vs-2022-update-8/">VS 2022 Update 8</a>, <a href="https://walbourn.github.io/vs-2022-update-9/">VS 2022 Update 9</a>, <a href="https://walbourn.github.io/vs-2022-update-10/">VS 2022 Update 10</a>, <a href="https://walbourn.github.io/vs-2022-update-11/">VS 2022 Update 11</a></p>]]></content><author><name>Chuck Walbourn</name></author><category term="visualc" /><summary type="html"><![CDATA[Visual Studio 2022 Update 12 (a.k.a. 17.12) is now available for download, including the updated Community edition. For more information, see the Visual Studio Team blog, Visual C++ Team Blog, and the release notes.]]></summary></entry><entry><title type="html">Windows SDK for Windows 11, Version 24H2</title><link href="https://walbourn.github.io//windows-sdk-for-windows-11,-version-24h2/" rel="alternate" type="text/html" title="Windows SDK for Windows 11, Version 24H2" /><published>2024-10-22T21:50:00+00:00</published><updated>2024-10-22T21:50:00+00:00</updated><id>https://walbourn.github.io//windows-sdk-for-windows-11,-version-24h2</id><content type="html" xml:base="https://walbourn.github.io//windows-sdk-for-windows-11,-version-24h2/"><![CDATA[<p><em>Windows 11 “2024 Update”</em> (Version 24H2, Build 26100) was widely released this month. The Windows SDK for Windows 11, Version 24H2 (10.0.26100) is available for <a href="https://aka.ms/windowssdk">download</a>, and is offered as an optional component in <a href="https://visualstudio.microsoft.com/vs/">Visual Studio 2022</a>.</p>

<!--more-->

<p><strong>DirectX 12:</strong> This Windows SDK has version 1.612 of the headers which is between the <em>DirectX Agility SDK</em> 1.611 and 1.613 releases. This includes up to <code class="language-plaintext highlighter-rouge">ID3D12Device14</code>, <code class="language-plaintext highlighter-rouge">ID3D12GraphicsCommandList10</code>, and <code class="language-plaintext highlighter-rouge">D3D12_FEATURE_D3D12_OPTIONS21</code>. These headers also define <code class="language-plaintext highlighter-rouge">D3D_SHADER_MODEL_6_8</code>, <code class="language-plaintext highlighter-rouge">D3D_SHADER_MODEL_6_9</code>, <code class="language-plaintext highlighter-rouge">D3D_ROOT_SIGNATURE_VERSION_1_2</code>, <code class="language-plaintext highlighter-rouge">D3D12_HEAP_TYPE_GPU_UPLOAD</code>, <code class="language-plaintext highlighter-rouge">D3D_FEATURE_LEVEL_1_0_GENERIC</code>, and <code class="language-plaintext highlighter-rouge">D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN</code>.</p>

<p><strong>DirectXMath:</strong> This Windows SDK includes version <a href="https://github.com/microsoft/DirectXMath/releases">3.19</a> which has some minor updates for MinGW, Clang/LLVM, and GNUC compatibility.</p>

<p><strong>NuGet</strong>: The Windows SDK is also offered via <a href="https://www.nuget.org/profiles/WindowsSDK">NuGet</a>.</p>

<p><strong>ARM64/AArch64</strong>: The Windows SDK (26100) does not support VS 2019 for Win32 on ARM64/AArch64 development as of 10.0.26100.1882, and VS 2022 is highly recommended for all Windows on ARM64 development. Note that ARM32/AArch32 is <a href="https://learn.microsoft.com/windows/arm/arm32-to-arm64">deprecated</a>.</p>

<p><b>Related:</b> <a href="https://walbourn.github.io/windows-sdk-for-windows-11/">Windows SDK for Windows 11</a>, <a href="https://walbourn.github.io/windows-sdk-for-windows-11,-version-22h2/">Windows SDK for Windows 11, Version 22H2</a></p>]]></content><author><name>Chuck Walbourn</name></author><category term="windowssdk" /><summary type="html"><![CDATA[Windows 11 “2024 Update” (Version 24H2, Build 26100) was widely released this month. The Windows SDK for Windows 11, Version 24H2 (10.0.26100) is available for download, and is offered as an optional component in Visual Studio 2022.]]></summary></entry><entry><title type="html">VS 2022 Update 11</title><link href="https://walbourn.github.io//vs-2022-update-11/" rel="alternate" type="text/html" title="VS 2022 Update 11" /><published>2024-08-15T10:26:00+00:00</published><updated>2024-08-15T10:26:00+00:00</updated><id>https://walbourn.github.io//vs-2022-update-11</id><content type="html" xml:base="https://walbourn.github.io//vs-2022-update-11/"><![CDATA[<p>Visual Studio 2022 Update 11 (a.k.a. 17.11) is now available for <a href="https://visualstudio.microsoft.com/downloads/">download</a>, including the updated Community edition. For more information, see the <a href="https://devblogs.microsoft.com/visualstudio/visual-studio-2022-v17-11-your-feedback-in-action/">Visual Studio Team blog</a>, <a href="https://devblogs.microsoft.com/cppblog/whats-new-for-c-developers-in-visual-studio-2022-17-11/">Visual C++ Team Blog</a>, and the <a href="https://learn.microsoft.com/visualstudio/releases/2022/release-notes">release notes</a>.</p>

<!--more-->

<p><em>Note that VS 2022 17.10, 17.12, and 17.14 are supported through the <a href="https://docs.microsoft.com/visualstudio/productinfo/vs-servicing#long-term-servicing-channel-ltsc-support">Long Term Servicing Channel</a>.</em></p>

<blockquote>
  <p><strong>VS Content Pipeline:</strong> Note that in 17.9.3 the use of the Autodesk FBX SDK was removed due to a <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-27911">security issue</a>. The result is that the 3D Model Viewer was removed and the MeshContentTask no longer functions for converting meshes to CMO files. For Wavefront OBJ to CMO, you can use <code class="language-plaintext highlighter-rouge">meshconvert</code> in the <a href="https://github.com/microsoft/DirectXMesh">DirectXMesh</a> project. I’m looking at adding support for exporting CMO to the <a href="https://github.com/walbourn/contentexporter/issues/23">ATG Samples Content Exporter</a>.</p>
</blockquote>

<h1>Compiler and CRT</h1>

<p>VS 2022 Update 11 includes a revision of the C/C++ compiler (19.41.34120.0).</p>

<table>
  <thead>
    <tr>
      <th>17.11 update</th>
      <th>C++ compiler</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>17.11.0</td>
      <td>19.41.34120.0</td>
    </tr>
    <tr>
      <td>17.11.5</td>
      <td>19.41.34123.0</td>
    </tr>
  </tbody>
</table>

<p>The C/C++ Runtime (14.40.33810) from Update 10 is unchanged. A full list of updates to the <em>Standard C++ Library</em> can be found on <a href="https://github.com/microsoft/STL/wiki/Changelog#vs-2022-1711">GitHub</a>.</p>

<p><strong>CMake:</strong> This update includes CMake <a href="https://cmake.org/cmake/help/v3.29/release/3.29.html">version 3.29</a>.</p>

<p><strong>Related</strong>: <a href="https://walbourn.github.io/visual-studio-2022/">Visual Studio 2022</a>, <a href="https://walbourn.github.io/vs-2022-update-1/">VS 2022 Update 1</a>, <a href="https://walbourn.github.io/vs-2022-update-2/">VS 2022 Update 2</a>, <a href="https://walbourn.github.io/vs-2022-update-3/">VS 2022 Update 3</a>, <a href="https://walbourn.github.io/vs-2022-update-4/">VS 2022 Update 4</a>, <a href="https://walbourn.github.io/vs-2022-update-5/">VS 2022 Update 5</a>, <a href="https://walbourn.github.io/vs-2022-update-6/">VS 2022 Update 6</a>, <a href="https://walbourn.github.io/vs-2022-update-7/">VS 2022 Update 7</a>, <a href="https://walbourn.github.io/vs-2022-update-8/">VS 2022 Update 8</a>, <a href="https://walbourn.github.io/vs-2022-update-9/">VS 2022 Update 9</a>, <a href="https://walbourn.github.io/vs-2022-update-10/">VS 2022 Update 10</a></p>]]></content><author><name>Chuck Walbourn</name></author><category term="visualc" /><summary type="html"><![CDATA[Visual Studio 2022 Update 11 (a.k.a. 17.11) is now available for download, including the updated Community edition. For more information, see the Visual Studio Team blog, Visual C++ Team Blog, and the release notes.]]></summary></entry><entry><title type="html">VS 2022 Update 10</title><link href="https://walbourn.github.io//vs-2022-update-10/" rel="alternate" type="text/html" title="VS 2022 Update 10" /><published>2024-05-23T11:05:00+00:00</published><updated>2024-05-23T11:05:00+00:00</updated><id>https://walbourn.github.io//vs-2022-update-10</id><content type="html" xml:base="https://walbourn.github.io//vs-2022-update-10/"><![CDATA[<p>Visual Studio 2022 Update 10 (a.k.a. 17.10) is now available for <a href="https://visualstudio.microsoft.com/downloads/">download</a>, including the updated Community edition. For more information, see the <a href="https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-10-now-available/">Visual Studio Team blog</a>, <a href="https://devblogs.microsoft.com/cppblog/whats-new-for-cpp-developers-in-visual-studio-2022-17-10/">Visual C++ Team Blog</a>, and the <a href="https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes#17.10.0">release notes</a>.</p>

<!--more-->

<p><em>Visual Studio 17.0 - 17.10 are out of their <a href="https://learn.microsoft.com/lifecycle/products/visual-studio-2022">support lifecycle</a> as of <b>January 2026</b>.</em></p>

<blockquote>
  <p><strong>VS Content Pipeline:</strong> Note that in 17.9.3 the use of the Autodesk FBX SDK was removed due to a <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-27911">security issue</a>. The result is that the 3D Model Viewer was removed and the MeshContentTask no longer functions for converting meshes to CMO files. For Wavefront OBJ to CMO, you can use <code class="language-plaintext highlighter-rouge">meshconvert</code> in the <a href="https://github.com/microsoft/DirectXMesh">DirectXMesh</a> project. I’m looking at adding support for exporting CMO to the <a href="https://github.com/walbourn/contentexporter/issues/23">ATG Samples Content Exporter</a>.</p>
</blockquote>

<h1>Compiler and CRT</h1>

<p>VS 2022 Update 10 includes a revision of the C/C++ compiler (19.40.33808.0).</p>

<table>
  <thead>
    <tr>
      <th>17.10 update</th>
      <th>C++ compiler</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>17.10.0</td>
      <td>19.40.33808.0</td>
    </tr>
    <tr>
      <td>17.10.1</td>
      <td>19.40.33811.0</td>
    </tr>
    <tr>
      <td>17.10.4</td>
      <td>19.40.33812.0</td>
    </tr>
    <tr>
      <td>17.10.5</td>
      <td>19.40.33813.0</td>
    </tr>
    <tr>
      <td>17.10.6</td>
      <td>19.40.33814.0</td>
    </tr>
  </tbody>
</table>

<p>The C/C++ Runtime (14.40.33810) is binary compatible with VS 2015 Update 3 through VS 2022, which means you can safely link C/C++ code built with VS 2015 Update 3, VS 2017, or VS 2019 with VS 2022. See <a href="https://docs.microsoft.com/cpp/porting/binary-compat-2015-2017?view=msvc-170">Microsoft Docs</a> for details. A full list of updates to the <em>Standard C++ Library</em> can be found on <a href="https://github.com/microsoft/STL/wiki/Changelog#vs-2022-1710">GitHub</a>.</p>

<p><strong>Related</strong>: <a href="https://walbourn.github.io/visual-studio-2022/">Visual Studio 2022</a>, <a href="https://walbourn.github.io/vs-2022-update-1/">VS 2022 Update 1</a>, <a href="https://walbourn.github.io/vs-2022-update-2/">VS 2022 Update 2</a>, <a href="https://walbourn.github.io/vs-2022-update-3/">VS 2022 Update 3</a>, <a href="https://walbourn.github.io/vs-2022-update-4/">VS 2022 Update 4</a>, <a href="https://walbourn.github.io/vs-2022-update-5/">VS 2022 Update 5</a>, <a href="https://walbourn.github.io/vs-2022-update-6/">VS 2022 Update 6</a>, <a href="https://walbourn.github.io/vs-2022-update-7/">VS 2022 Update 7</a>, <a href="https://walbourn.github.io/vs-2022-update-8/">VS 2022 Update 8</a>, <a href="https://walbourn.github.io/vs-2022-update-9/">VS 2022 Update 9</a></p>]]></content><author><name>Chuck Walbourn</name></author><category term="visualc" /><summary type="html"><![CDATA[Visual Studio 2022 Update 10 (a.k.a. 17.10) is now available for download, including the updated Community edition. For more information, see the Visual Studio Team blog, Visual C++ Team Blog, and the release notes.]]></summary></entry><entry><title type="html">VS 2022 Update 9</title><link href="https://walbourn.github.io//vs-2022-update-9/" rel="alternate" type="text/html" title="VS 2022 Update 9" /><published>2024-02-13T12:41:00+00:00</published><updated>2024-02-13T12:41:00+00:00</updated><id>https://walbourn.github.io//vs-2022-update-9</id><content type="html" xml:base="https://walbourn.github.io//vs-2022-update-9/"><![CDATA[<p>Visual Studio 2022 Update 9 (a.k.a. 17.9) is now available for <a href="https://visualstudio.microsoft.com/downloads/">download</a>, including the updated Community edition. For more information, see the <a href="https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-9-now-available/">Visual Studio Team blog</a> and the <a href="https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes#17.9.0">release notes</a>.</p>

<!--more-->

<p><em>Visual Studio 17.0 - 17.10 are out of their <a href="https://learn.microsoft.com/lifecycle/products/visual-studio-2022">support lifecycle</a> as of <b>January 2026</b>.</em></p>

<blockquote>
  <p><strong>VS Content Pipeline:</strong> Note that in 17.9.3 the use of the Autodesk FBX SDK was removed due to a <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-27911">security issue</a>. The result is that the 3D Model Viewer was removed and the MeshContentTask no longer functions for converting meshes to CMO files. For Wavefront OBJ to CMO, you can use <code class="language-plaintext highlighter-rouge">meshconvert</code> in the <a href="https://github.com/microsoft/DirectXMesh">DirectXMesh</a> project. I’m looking at adding support for exporting CMO to the <a href="https://github.com/walbourn/contentexporter/issues/23">ATG Samples Content Exporter</a>.</p>
</blockquote>

<h1>Compiler and CRT</h1>

<p>VS 2022 Update 9 includes a revision of the C/C++ compiler (19.39.33519.0). See <a href="https://devblogs.microsoft.com/cppblog/msvc-backend-updates-since-visual-studio-2022-version-17-3/">this blog post</a> for information on recent codegen improvements.</p>

<table>
  <thead>
    <tr>
      <th>17.9 update</th>
      <th>C++ compiler</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>17.9.0</td>
      <td>19.39.33519.0</td>
    </tr>
    <tr>
      <td>17.9.1</td>
      <td>19.39.33520.0</td>
    </tr>
    <tr>
      <td>17.9.2</td>
      <td>19.39.33521.0</td>
    </tr>
    <tr>
      <td>17.9.3</td>
      <td>19.39.33522.0</td>
    </tr>
    <tr>
      <td>17.9.4</td>
      <td>19.39.33523.0</td>
    </tr>
  </tbody>
</table>

<p>The C/C++ Runtime (14.38.33135) from Update 8 is unchanged. A full list of updates to the <em>Standard C++ Library</em> can be found on <a href="https://github.com/microsoft/STL/wiki/Changelog#vs-2022-179">GitHub</a>.</p>

<p><strong>VS 2019 (v142):</strong> The VS 2019 toolset included in update 17.9.1 has been updated to 14.29.30154.0 to match the current VS 2019 (16.11) servicing.</p>

<p><strong>CMake:</strong> This update includes CMake <a href="https://cmake.org/cmake/help/v3.28/release/3.28.html">version 3.28</a>.</p>

<p><strong>clang:</strong> VS 2022 17.9 includes <a href="https://releases.llvm.org/17.0.1/docs/ReleaseNotes.html">clang/LLVM v17.0.3</a> for Windows as an optional component.</p>

<p><strong>Related</strong>: <a href="https://walbourn.github.io/visual-studio-2022/">Visual Studio 2022</a>, <a href="https://walbourn.github.io/vs-2022-update-1/">VS 2022 Update 1</a>, <a href="https://walbourn.github.io/vs-2022-update-2/">VS 2022 Update 2</a>, <a href="https://walbourn.github.io/vs-2022-update-3/">VS 2022 Update 3</a>, <a href="https://walbourn.github.io/vs-2022-update-4/">VS 2022 Update 4</a>, <a href="https://walbourn.github.io/vs-2022-update-5/">VS 2022 Update 5</a>, <a href="https://walbourn.github.io/vs-2022-update-6/">VS 2022 Update 6</a>, <a href="https://walbourn.github.io/vs-2022-update-7/">VS 2022 Update 7</a>, <a href="https://walbourn.github.io/vs-2022-update-8/">VS 2022 Update 8</a></p>]]></content><author><name>Chuck Walbourn</name></author><category term="visualc" /><summary type="html"><![CDATA[Visual Studio 2022 Update 9 (a.k.a. 17.9) is now available for download, including the updated Community edition. For more information, see the Visual Studio Team blog and the release notes.]]></summary></entry></feed>