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

Started by
3 comments, last by MJP 10 years, 1 month ago

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

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.

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.

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).

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

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.

This topic is closed to new replies.

Advertisement