Advertisement Jump to content
Sign in to follow this  
Hassanbasil

can Direct3D applications developed on VS2013 be deployed on older OSes?

This topic is 1781 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello!

 

I'm running Windows 8.1 with Visual Studio Ultimate 2013. I'm trying to deploy my Direct3D applications on older OSes, specifically Windows 8.0 or possibly Windows 7. The application does not seem to run on Windows 8.0 due to D3DCompiler_47.dll not existing. I tried including the DLLs in Windows Kits\8.1\Redist\D3D\x86\ with the application, but it does not respond to execution (nothing happens when I run).

 

What exactly am I missing? Is there a legitimate redistributable package for Direct3D 11/11.1?

 

Regards,

Hasan Al-Jawaheri

Share this post


Link to post
Share on other sites
Advertisement

Seems like Direct X SDK has been moved to Windows SDK from Windows 8.

 

http://msdn.microsoft.com/en-us/library/windows/desktop/ee663275%28v=vs.85%29.aspx

 

Windows 8.1 SDK is located here:

 

http://msdn.microsoft.com/en-us/windows/desktop/bg162891.aspx

 

EDIT: Oh sorry, was a bit quick to read your question...

 

I think this article answers your question:

 

http://blogs.msdn.com/b/chuckw/archive/2010/09/08/not-so-direct-setup.aspx

 

See the three points at the end of the article.

Edited by aregee

Share this post


Link to post
Share on other sites

Thanks for the reply!

 

Turns out some interfaces, such as ID3DDevice2, are not supported on earlier versions of windows. And so were ID2D1Factory2 and many other interfaces. I had to downgrade the interfaces to previous versions (e.g ID3DDevice1 instead of 2). I really have no clue how they relate or work but I'm fine with it, I don't think I needed them anyway.

Share this post


Link to post
Share on other sites

its always best to start with a minimum target machine in mind - hardware, OS version, and directx version. as you write code, you make sure any API calls you use are supported by the minimum target machine. you can then add options for higher end features on later versions of windows and directx, and newer hardware. then enable them during install if you find later versions of windows or directx or newer hardware. how "backward compatible" your software is will determine the maximum possible installed base, IE how many people have PCs that can run your game, and therefore might buy it.

 

I'm using vs2012 to write games that are software backward compatible to something like directx9.0c and windows 2000 or maybe even XP. minimum hardware is something like a dual core with onboard graphics chip (about a 2-3 year old baseline machine).   Minimum target is a 2 year old baseline pc with onboard graphics only, directx9.0c, and windows 7. But it will probably run on even older PCs (IE Vista machines).

Share this post


Link to post
Share on other sites

Yeah it's pretty weird. Back in D3D9 days, things were confusing because there were cap bits. With D3D10 MS made everything dead simple, but required Vista and new hardware. With D3D10.1 and D3D11 things got more complicated since there were feature levels, but this was still better than caps bits. With D3D11.1 and 11.2 caps bits are back (but there's still feature levels!), they require a new OS version*, and things are more confusing than ever.

 

*Technically D3D11.1 was back-ported to Win7, but in a extremely limited way. They basically back-ported everything required for new Direct2D functionality so that IE could use it, but didn't back-port the new D3D functionality since it was tied to a WDDM version. This meant that the new 11.1 interfaces were available, but you couldn't actually use any of the new stuff exposed by them because the 11_1 feature level wasn't supported. So yeah, confusing as hell.

Edited by MJP

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!