Over the past few month we've been getting reports of problems with the DirectX SDK (June 2010) setup failing for customers displaying an installation error when it gets to point of installing the "redistributable packages". This particular problem has been traced to an issue with the Visual C++ 2010 Redistributable Package version 10.0.30319 (RTM). When the 10.0.40219 (Service Pack 1) version is already present on the system, the 10.0.30319 (RTM) version returns a failure instead of a success as was expected.

The work-around for this issue is straight-forward:

(1) Remove the Visual C++ 2010 Redistributable Package version 10.0.40219 (Service Pack 1) from the system (both x86 and x64 if applicable). This can be easily done via a command-line with administrator rights:

(3) Reinstall the Visual C++ 2010 Redistributable Package version 10.0.40219 (Service Pack 1). On an x64 system, you should install both the x86 and x64 versions of the C++ REDIST. Be sure to install the most current version available, which at this point is the KB 2565063 with a security fix.

Note: This issue does not affect earlier version of the DirectX SDK which deploy the VS 2005 / VS 2008 CRT REDIST and do not deploy the VS 2010 CRT REDIST. This issue does not affect the DirectX End-User Runtime web or stand-alone installer as those packages do not deploy any version of the VC++ CRT.

Setup writers: If you are creating a deployment for your application and you are using VS 2010, it is recommended you use the Service Pack 1 version and not the RTM version to avoid this issue. You should also consider picking up the updated version of the DirectX End-User Runtime Package if you are deploying DirectX SDK components with your application, and of course fully understand the issues detailed in this earlier blog post.

FCIV: This of course assumes you actually have an uncorrupted copy of the DirectX SDK setup package. The best way to validate this it to run fciv -sha1 DXSDK_Jun10.exe and verify you get 8fe98c00fde0f524760bb9021f438bd7d9304a69 dxsdk_jun10.exe

But the article "Where is the DirectX SDK" neither covers WHEN a new DX-SDK is coming nor can we see, which version it is. Also I find it not very comfortable to download a complete new Windows SDK when a new DX SDK has been released. And one has no oversight of news about a new DX SDK. That was not the best idea in my opinion.

Also I'm wondering where the DirectX End-User Redistributables are. Are they integrated into the Windows SDK, too?

"Because the Windows SDK is the primary developer SDK for Windows, we now ship DirectX as part of the Windows SDK.

…

For access to historical versions of these DirectX SDK tools and technologies, download previous versions of the DirectX SDK from the Microsoft Download Center. We shipped the last version of the DirectX SDK in June 2010."

"Any project that uses run-time shader compilation will need to have D3DCOMPILER_44.DLL copied to the local executable path for the project. This DLL is available in this sub-directory of the Windows SDK install under %ProgramFiles(x86)%Windows Kits8.0RedistD3D<arch> where <arch> is x86 and x64.

The D3DCOMPILER_44.DLL from the Windows SDK is not a system component and should not be copied to the Windows system directory. You can redistribute this DLL to other machines with your application as a side-by-side DLL."

NOTE: The same is true of D3DCSX (we didn't call it out here because it's not used by any DirectX SDK sample)

One chief advantage of having the DX SDK separate was its much faster turnaround. We used to get SDK updates every 2 or 3 months, and there were pretty significant improvements between each version of the SDK.

The Windows SDK has, by contrast, been updated at best once per year, and rarely had the same kind of improved tools or new functionality that was provided by the DX SDK.

So, when D3D is now part of the Windows SDK, does this mean we should no longer expect to see significant improvements to D3D SDK-wise? Is PIX and all the other tools and libraries provided by the SDK basically set in stone, with only incremental updates and bugfixes basically synchronized with OS releases?

Additionally it's not good to hear, that the new SDK Components (XAudio, XInput) will not be available for Windows 7. Want Microsoft the force the customers to buy Windows 8? For Vista there was a platform update to use it with DX 11. But DX 11.1 should only be available for Windows 8? Why? Because there are voices that say Windows 8 will flop? Not the best idea Microsoft ever had, I think.

"Direct3D" has since ~2004 changed at the pace of the Windows OS release cycle (major release, Service Packs, etc.). Frequent DirectX SDK releases have not changed "Direct3D" any faster than the OS cycle for some time, and there's no news here in this regard. I can certainly understand that the perception was that more frequent DirectX SDK releases meant lots of frequent improvements here, but that not really been what has transpired in recent years.

The "PIX for Windows" tool is part of Visual Studio, so that is the release cycle to expect there. The good news is that they have more people working on the new VS version than have been available to work on PIX for Windows for many years.

The HLSL compiler (FXC, D3DCompiler*.DLL), D3DCSX, the debug layer, and the reference device have not always been updated in every "DirectX SDK" release of the past few years. The HLSL compiler has certainly had a lot of major and minor updates over the years, but fast servicing here has often resulted in regressions as well which has required yet more fast servicing. I don't personally believe the Windows SDK release cycle is a significant problem for the expected pace of this work going forward.

Samples and some tools (aka DirectXTex) are delievered via the Windows code gallery code.msdn.microsoft.com so the release cycle is basically continuous there. There have also been numerous minor updates made here on this blog. By pulling the samples and various 'miscellaneous tools' out of the new Windows SDK, this both lessens the need for extremely frequent releases, as well as addresses a chief complaint of the Windows SDK just being too big.

The only components that have really 'slowed down' from where we've been in the past few years has been XINPUT and XAUDIO2–well, just XAUDIO2 since XINPUT 1.3 hasn't changed since April 2007. These have become Windows OS components so these technologies are indeed likely to only change at the Windows OS release cycle. XAUDIO 2.7 and XINPUT 1.3 in the DirectX SDK continue to be available for developers working on Windows 7 titles. The majority of changes in XAUDIO 2.8 and XINPUT 1.4 are to support the needs of Windows 8 Metro style applications, not major new features over the existing versions. I would not expect the incremental changes to XAUDIO 2.8 or XINPUT 1.4 to really be percieved as a lever to "force the customers to buy Windows 8".

DirectX 11.1 is expected to be available in some form on Windows 7, and that is likely to be the same kinds of things that were released in the DirectX 11 on Windows Vista: "Direct3D", "DXGI", "WDDM", "WARP", "WIC", "Direct2D", and "DirectWrite". Details here are TBD. We plan to release an updated XUSB driver (the one that is used by XINPUT) via WIndows Update as well which should address most known issues for XINPUT 1.3 on Windows 7 as well.

DirectXMath (aka XNAMath version 3.x) is releasing through the Windows SDK as well, but as a fully inline header implementation it is not difficult to provide faster servicing here if needed. There is nothing OS specific to this component and it works on older versions of the OS just fine–the only real limitation here is that you can't use it with a compiler older than VS 2010.

i had error s1023 aswell but nothing posted here worked, but going through the DirectX.log file i managed to pinpoint the error i had, it was something wrong with accessing or corrupted d3dx9_31.dll to d3dx9_43.dll files in c:windowsSysWOW64 and c:windowsSystem32 so i moved them away temporarily to see if that would work and it did! So finally after hours of wasting time i got it working 🙂

Will DirectX support stereoscopic 3D any time soon? I also have an idea for A.I. visual detection system using a secondary graphics card. I'll put it here, because i cant sign into the forums:

An Ai visual detection system based on actual color, possibly using an older secondary video card like PhysX can, working in tandem with the game engine. It involves taking a lower resolution screenshot of the player and randomly analyzing a sample of pixels around the player and comparing that to a random sample of pixels of the player and comparing the difference. Players with a separate video card could up the amount of sampling and the resolution of the shots and the amount of shots over time. The difference shouldn't be the only factor of course, player movement speed, Ai current awareness state, etc could factor in. Great for sandbox games where the A.I. comprise the only real antagonists.

@John: That's why I recommend the command-line option above. You don't need to find it that way. Also make sure you follow the instructions with FCIV to validate that you are using a uncorrupted copy of the setup program. You also don't mention what OS you are using…

The problem this is addressing is not affected by VS 2012 or by the VS 2010 product. It's specifically the VS 2010 REDIST packages.

Note that if you are using VS 2012, you should be aware of the major changes to the Windows 8.0 SDK that comes with it w.r.t. to the legacy DirectX SDK. You can also use the Windows 8.0 SDK with VS 2010.

just uninstall Microsoft Visual C++ 2010 Redistributable Package version 10.0.40219 (Service Pack 1) from the system (both x86 and x64 if applicable) and turn off the antivirous protection then install Direct SDK june 2010

You never need to install the DirectX SDK which is for developers building games to get a retail game to work. Instead use the DirectX End-User Redistribution Package DXWSETUP or DXSETUP keeping in mind that it doesn't actually "install DirectX".

@dx – First, have you done the FCIV check mentioned above to ensure you have an uncorrupted copy of the DXSDK Setup?

The problem appears to center on the legacy Managed DirectX 1.1 assemblies. These require the .NET 2.0/3.5 Runtime to be enabled, which it should be on Windows 7. You should try running the latest April 2011 refresh of DXSETUP to see if that succeeds on your system, and manually check to see that you have .NET 2.0 installed.

2. Tried to refresh to DXSetup. the hyperlink u have given is going to some japanese microsoft site, so not able to understand what have to be done here . I triend to find any updated version for directx after jun2010 but not able to find one.

3. tried to installed .net frame 2.0 . It was not already there.

Getting : This product is not supported on windows vista (but my machine is windows 7)

Today I ran into the same problem as dx, except I have a fresh install of Windows 7. I remember running into this installation problem back when I was using VS2010 but I have VS2015 (Community Edition) installed now, with no VS2010 Redistributables installed. I already had .NET 2.0 installed.

The only difference between this and previous installations was having VS2015 installed, so I uninstalled the VS2015 runtimes, restarted my computer, and then the DirectX SDK installation worked.

It looks like the VS2015 redistributables have the same or similar incompatibilities the VS2010 redistributables had.

I came across this page after trying Arma 3 begun playing without sound. I found a BattleEye log error relating to XAudio2_7. I found that related to DirectX. I’ve gone through this entire troubleshooting method and I am STILL GETTING ERROR CODE: S21023

*I have removed both “Visual C++ 2010 Redistributable Package version 10.0.40219 (Service Pack 1) packages” using cmd in admin rights
*I downloaded the DXSDK_Jun10.exe from Microsoft and validated it with fciv (got the same number you highlighted)

My log errors are below (it appears the error occurs around XAudio during the installation). I do not know what to do. Please help if you can.

The problem this blog post is discussing is specific to the VC REDIST packages for VS 2010 RTM interacting poorly with a system with a VS 2010 SP1 or later REDIST already installed. Based on the content of your log, you have something *else* wrong with your system.

Basically you are getting a ERROR_BAD_EXE_FORMAT when the system tries to verify XAudio2_0.dll is installed. It is likely that you have a corrupt system drive. You should try out basic system repair for your operating system, free up disk space, etc.