realXtend / tundra

realXtend Tundra SDK, a 3D virtual world application platform.
www.realxtend.org
Apache License 2.0
84 stars 70 forks source link

Do not prompt for installing DX SDK if host system Windows 8 or newer #733

Closed Stinkfist0 closed 11 years ago

Stinkfist0 commented 11 years ago

Windows 8 and newer should have the necessary DX runtime DLLs available.

jonnenauha commented 11 years ago

I know Windows 7 does not ship DX9 in the operating system. And I doubt that Windown 8 would either. Win7 ships with DX10 and system probably updates it automatically. Win8 I suspect ships with both DX10 and DX11.x and keeps them up to date.

Our meshmon installer ships the tiny online installer for dx9 and check the registry (afaik) if its already installed and skips it. Or it might have been that the online installer actually does that correctly before downloading/installing anything.

For me this is a non-issue. Its best to guarantee that DX 9.0c is installed than to trust it from the operating system and leave users with a non-rendering client and no idea what to do about it.

cadaver commented 11 years ago

If you can test with a clean Win8 install that has not fetched updates ever, that Tundra can run without the DX redistributable installation, then this change would be OK to make.

However I generally agree with @jonnenauha that in these cases it's better to be safe than sorry. You see eg. Steam games install redistributables "unnecessarily" just to be sure.

Stinkfist0 commented 11 years ago

F. ex. when running the Windows performance test on Windows 8, there are specific tests for Direct3D9, which is rather strong indication that the DX9 parts should be in place by default. This doesn't happen (no explicit mention at least) f.ex. on my old Vista computer (no possibility to test 7 for me currently).

cadaver commented 11 years ago

Windows from XP onward does have the DX9 installed by default, but the question is if the OS has new enough D3DX libraries that contain the shader compiler that Ogre uses.

Stinkfist0 commented 11 years ago

Anyways, this isn't an urgent issue, but an idea how to make the current heavy Tundra installation more lighter and effortless. The DX SDK is around 300 megabytes after all, from which only a fraction is required. Alternatively (or additionally), would it be possible (license permitting) to deploy only the necessary DX DLLs with Tundra?

cadaver commented 11 years ago

From http://gamedev.stackexchange.com/questions/7858/how-to-deal-with-d3dx-dll-hell, there is not a legal way to distribute the DLL Ogre requires:

"As of the June 2010 SDK, you allowed to redistribute anything in the "Redist" directory and when doing so you must include certain components (DSetup32.dll, DSetup.dll, DXSetup.exe, DXupdate.cab and dxdllreg_x86.cab). The Redist directory includes the .cab files for the D3DX DLLs, but not the DLLs themselves so you are out of luck."

jonnenauha commented 11 years ago

@cadaver You mean > Win XP ships the full DX 9.0c runtime that we need? I still think thats not the case, as you noted it might be missing some things Ogre probably needs (?!). Maybe the d3d9.dll is somewhere in there though :) Our clients with just the operating system (>XP) can start Rocket but will see a black screen, rendering wont work.

@Stinkfist0 Why would the installer install the full DirectX SDK? Afaik it uses the 9.0c web installer that will certainly download some stuff but I would not think its 300 megs? :) When I've ran the web installer its a pretty quick operation, if you have everything already it afaik does nothing but the verion checks. The SDK you need for development is big as it has libs, headers, examples etc.

cadaver commented 11 years ago

WinXP ships d3d9.dll but most certainly does not ship a new enough D3DX dll.

Stinkfist0 commented 11 years ago

@jonnenauha @cadaver Doh, the NSIS installer has DX9 setup, not DX SDK. I thought it had unnecessarily the full DX SDK installer for some odd reason. In this case having DX9 installer is just fine.