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

DirectXMath 3.10


Originally posted to Chuck Walbourn's Blog on MSDN,

DirectXMath version 3.10 is included in the Windows 10 Creators Update SDK (15063) which is installed with Visual Studio 2017.

The new version includes the following:

  • Added XMVectorSum for horizontal adds
  • ARMv8 intrinsics use for ARM64 platform (division, rounding, half-precision conversion)
  • Added SSE3 codepaths using opt-in _XM_SSE3_INTRINSICS_
  • XMVectorRound fix for no-intrinsics to match round-to-nearest (even)
  • XMStoreFloat3SE fix when max channel isn't a perfect power of 2
  • constexpr conformance fix and workaround for compiler bug in VS 2015 RTM
  • Remove support for VS 2012 compilers
  • Remove ``__vector4i`` deprecated type


For the Windows x86 and Windows x64 platforms, the DirectXMath library assumes you are using SSE/SSE2 as support for those is required by the platform (see this blog post for details). If you use the /arch switch with AVX or AVX2, it makes use of additional instruction sets including SSE3, SSE4.1, AVX, and F16C. Previously you could enable the SSE 4.1/SSE3 optimizations together, but now with DirectXMath 3.10, the SSE3 optimizations can be enabled independently via the _XM_SSE3_INTRINSICS_ control define. Officially SSE3 is not required by the base Windows platform, but it’s support is very wide-spread so you can choose to require SSE3 even without requiring SSE4.1 or AVX/AVX2. See this blog post.


This version can also be obtained via NuGet which will work with Visual Studio 2013 and Visual Studio 2015. DirectXMath no longer supports VS 2012.


In addition to shipping with the Windows SDK and the Xbox One XDK, DirectXMath is also available on GitHub under the MIT license.

Related: Known Issues: DirectXMath 3.03, DirectXMath 3.06, DirectXMath 3.07, DirectXMath 3.08, DirectXMath 3.09, DirectXMath 3.11