Technical tips, tricks, and news about game development for Microsoft platforms including desktop, Xbox, and UWP
DirectXMath version 3.09 is included in theWindows 10 Anniversary Update SDK (14393) that ships with VS 2015 Update 3 when you install theWindows Tools 1.4.1 and select the 10.0.14393Target PlatformVersion (see thisblog post).
The new version includes the following:
/arch:AVX or /arch:AVX2XMConvertToRadians, and XMConvertToDegreesXMXDEC4, XMDECN4, XMDEC4, and associated Load & Store functions as deprecated.These are vestiges of Xbox 360 support and will be removed in a future release.XMMatrixPerspectiveFov* to reduce user confusion when relying on IntelliSenseXMU565, XMUNIBBLE4 constructors take uint8_t instead ofint8_tThe DirectXMath library assumes on x86 and x64 that bothSSE and SSE2 are always supported. Later instruction sets are not always supported on PCs, and to avoid the penalty of additional guarded code paths or runtime selection the library avoids using them. As I’ve covered in the past, you can use specific versions in your own guarded code paths as the developer can pick a high-enough level to do the runtime selection to amortize the penalties involved.
For fixed-platforms like the Xbox One, however, the library can rely on additional instructions being present. These optimizations are now also available in the Windows version of DirectXMath when built using the/arch:AVX or/arch:AVX2 switches. Keep in mind that the resulting EXE or DLL only works correctly on systems withAVX and/orAVX2 support, so you should ensure that these binaries are only used on such systems (XMVerifyCPUSupport will perform the additional tests as appropriate when built with these switches).
In addition to shipping with the Windows SDK and the Xbox One XDK, DirectXMath is now also available onGitHub under theMIT license. This repo also includes all the extension libraries such asSpherical Harmonics math,XDSP, etc.
The GitHub’s master branch is already host to a new revision in progress for a future DirectXMath 3.10 release.
Related:Known Issues: DirectXMath 3.03,DirectXMath 3.06,DirectXMath 3.07,DirectXMath 3.08,DirectXMath 3.10,DirectXMath 3.11