Directx Question

Post » Fri May 27, 2011 8:14 am

I'm on Vista, and have directx 11 installed. Downloaded directx 9c as has been recommended in other threads here, but I'm a little confused as to what to do next. I've unzipped and clicked the .exe file, but on dxdiag it's still showing up as directx 11. Is that right, or is there something else I need to do?
User avatar
James Potter
 
Posts: 3418
Joined: Sat Jul 07, 2007 11:40 am

Post » Fri May 27, 2011 8:21 pm

I'm on Vista, and have directx 11 installed. Downloaded directx 9c as has been recommended in other threads here, but I'm a little confused as to what to do next. I've unzipped and clicked the .exe file, but on dxdiag it's still showing up as directx 11. Is that right, or is there something else I need to do?


Installing the DirectX 9.0c Runtime Environment just adds all the old d3dx9_xx.dll files that may not have been preinstalled with DirectX11. They aren't needed for DirectX11 to run. They are for older games which may need them. My Windows 7 installed only missed a few (ie d3dx9_41.dll , *_42.dll and *_43.dll).

You still have DirectX 11 installed, and you cannot revert to DirectX 9.0c.
User avatar
Marlo Stanfield
 
Posts: 3432
Joined: Wed May 16, 2007 11:00 pm

Post » Fri May 27, 2011 3:46 pm

Installing the DirectX 9.0c Runtime Environment just adds all the old d3dx9_xx.dll files that may not have been preinstalled with DirectX11. They aren't needed for DirectX11 to run. They are for older games which may need them. My Windows 7 installed only missed a few (ie d3dx9_41.dll , *_42.dll and *_43.dll).

You still have DirectX 11 installed, and you cannot revert to DirectX 9.0c.

both can be installed simultaneously
User avatar
Scarlet Devil
 
Posts: 3410
Joined: Wed Aug 16, 2006 6:31 pm

Post » Fri May 27, 2011 7:00 am

both can be installed simultaneously


Technically no, you are just downloading the dll files used for DirectX 9.0c. The system still is DirectX 11.
User avatar
gary lee
 
Posts: 3436
Joined: Tue Jul 03, 2007 7:49 pm

Post » Fri May 27, 2011 7:19 pm

Just to clarify, are there potential issues with DirectX 11 and Morrowind, or is it just that DirectX 9.0c seems to work best?

I'm looking to buy a new pc, but since it'll be mainly for playing my very modded MW, I'm not sure what sort of card to get, or how much the DX version actually matters?

(Incidentally I found this topic using search, hence the prob very random seeming bump......... ^_^ )
User avatar
Trent Theriot
 
Posts: 3395
Joined: Sat Oct 13, 2007 3:37 am

Post » Fri May 27, 2011 3:02 pm

Just to clarify, are there potential issues with DirectX 11 and Morrowind, or is it just that DirectX 9.0c seems to work best?

I'm looking to buy a new pc, but since it'll be mainly for playing my very modded MW, I'm not sure what sort of card to get, or how much the DX version actually matters?

(Incidentally I found this topic using search, hence the prob very random seeming bump......... ^_^ )


There are no issues with DirectX 11 and Morrowind. Morrowind is an older game that only uses older DirectX subroutines, which are included with DirectX 11. However some mods require later updates to DirectX 9.0c which may not be installed on a DirectX 11 based system. Simply running the DirectX Web installler should add any older DirectX dlls.

As for graphics cards... anything designed at a mid range or gaming grade graphics card will do. The Morrowind engine is more affected by CPU performance, as opposed to most newer games which rely heavily on the GPU.
User avatar
Angela Woods
 
Posts: 3336
Joined: Fri Feb 09, 2007 2:15 pm

Post » Fri May 27, 2011 5:23 pm

I'm on Vista, and have directx 11 installed. Downloaded directx 9c as has been recommended in other threads here, but I'm a little confused as to what to do next. I've unzipped and clicked the .exe file, but on dxdiag it's still showing up as directx 11. Is that right, or is there something else I need to do?

It will continue to report DirectX 11, although you may see the 9 libraries in a few of the tabs. Don't worry about that, as long as the installer worked, you should be good.

Just to clarify, are there potential issues with DirectX 11 and Morrowind, or is it just that DirectX 9.0c seems to work best?

Morrowind doesn't and kind of can't use DX 11, it doesn't understand it. It will run, sort of, on 11. However, MGE uses some additional libraries that 11 doesn't provide at all, so you have to install them. The exact reasons are confuse and you end up in DLL-hell trying to understand strongly named assemblies, so for sanity's sake, we'll leave it at "it works". ;)

Technically no, you are just downloading the dll files used for DirectX 9.0c. The system still is DirectX 11.

No, they can be installed simultaneously. That's exactly what's going on here, you're installing 9.0c June 2010 alongside the latest version of 11.

DirectX is simply a collection of libraries defining an interface with the video drivers. It is the DLLs. When you download and install them, you're installing DirectX 9.0c. In fact, every version of 9.0c comes with every previous version, so you don't only have 9 and 11 installed, you have each sub-version of 9 (hence the D3DX_44.dll and such that's often referenced).
User avatar
Kayla Bee
 
Posts: 3349
Joined: Fri Aug 24, 2007 5:34 pm

Post » Fri May 27, 2011 6:45 am

It will continue to report DirectX 11, although you may see the 9 libraries in a few of the tabs. Don't worry about that, as long as the installer worked, you should be good.


Morrowind doesn't and kind of can't use DX 11, it doesn't understand it. It will run, sort of, on 11. However, MGE uses some additional libraries that 11 doesn't provide at all, so you have to install them. The exact reasons are confuse and you end up in DLL-hell trying to understand strongly named assemblies, so for sanity's sake, we'll leave it at "it works". ;)


No, they can be installed simultaneously. That's exactly what's going on here, you're installing 9.0c June 2010 alongside the latest version of 11.

DirectX is simply a collection of libraries defining an interface with the video drivers. It is the DLLs. When you download and install them, you're installing DirectX 9.0c. In fact, every version of 9.0c comes with every previous version, so you don't only have 9 and 11 installed, you have each sub-version of 9 (hence the D3DX_44.dll and such that's often referenced).


I don't consider that having directx 9.0c installed... Basically DirectX 11 has some Direct3D 9 Extensions loaded, but maybe not all of them. Usually you don't need the newer ones, but if you need to install them you use the DirectX 9.0c web installer to add them. DirectX 11 also includes Direct3D 10.1 Extensions from DirectX 10 and 11.

AFAIK you only have DirectX 11 installed as you can only have one DirectX version active. Now I believe Windows Vista/7 have Direct3D 10.x installed but Direct3D 9 is virtualized. So DirectX 11 can run Direct3D 9 extenstions that were included with/made for DirectX 9.0c.
User avatar
Tanya
 
Posts: 3358
Joined: Fri Feb 16, 2007 6:01 am

Post » Fri May 27, 2011 8:28 pm

DirectX 9.0c is a particular set of libraries containing specific code. These libraries define a particular set of behaviors and an interface to the kernel-mode drivers, as well as exporting a particular set of COM objects.

When you install DX9 on a system, you're not modifying 11 at all. DX11 has absolutely nothing to do with this, actually; the exact same behavior occurs on Windows XP with only the basic installation of DirectX 9.0c. What you're doing is adding additional libraries which are referenced by name in the executable, and so, required. There's no "loading" of "Direct3D 9 Extensions" by DX11. 11 is, in most cases, blissfully unaware (and entirely uncaring) that any 9 binaries exist on the system. 11 doesn't need them and probably wouldn't know how to use them if it did, considering the broad changes in architecture between 9 and 11.

Now, officially you can only have one version of DirectX installed in the registry and recognized as the latest, and installing a previous version will not change that. When you install 9, it'll still report 11, because the system is designed to report the latest present version but also recognize previous runtimes. Which is the whole point of installing the 9.0c runtimes, because 11 doesn't include them by default. "Installing" DirectX consists of putting the libraries on the system and registering them as known COM libraries, which is what's going on here (both steps are required for DX9 to be used by programs).

But, there's a reason it's called the DirectX installer! It installs DX9, the same as it would do under XP. You may want to read up on how dynamic libraries are handled under the Windows PE linking system and the component object model that Microsoft so loves.

The bottom line is you're installing parts of DirectX 9 alongside (or under, if you'd rather call it that) DirectX 11.

And on a technical note, it's not just the D3D9 modules (which aren't "extensions"). The ones that usually cause people the bother are the D3DX libraries, which are a more advanced set of objects and methods.
User avatar
kelly thomson
 
Posts: 3380
Joined: Thu Jun 22, 2006 12:18 pm

Post » Fri May 27, 2011 12:40 pm

DirectX 9.0c is a particular set of libraries containing specific code. These libraries define a particular set of behaviors and an interface to the kernel-mode drivers, as well as exporting a particular set of COM objects.

When you install DX9 on a system, you're not modifying 11 at all. DX11 has absolutely nothing to do with this, actually; the exact same behavior occurs on Windows XP with only the basic installation of DirectX 9.0c. What you're doing is adding additional libraries which are referenced by name in the executable, and so, required. There's no "loading" of "Direct3D 9 Extensions" by DX11. 11 is, in most cases, blissfully unaware (and entirely uncaring) that any 9 binaries exist on the system. 11 doesn't need them and probably wouldn't know how to use them if it did, considering the broad changes in architecture between 9 and 11.

Now, officially you can only have one version of DirectX installed in the registry and recognized as the latest, and installing a previous version will not change that. When you install 9, it'll still report 11, because the system is designed to report the latest present version but also recognize previous runtimes. Which is the whole point of installing the 9.0c runtimes, because 11 doesn't include them by default. "Installing" DirectX consists of putting the libraries on the system and registering them as known COM libraries, which is what's going on here (both steps are required for DX9 to be used by programs).

But, there's a reason it's called the DirectX installer! It installs DX9, the same as it would do under XP. You may want to read up on how dynamic libraries are handled under the Windows PE linking system and the component object model that Microsoft so loves.

The bottom line is you're installing parts of DirectX 9 alongside (or under, if you'd rather call it that) DirectX 11.

And on a technical note, it's not just the D3D9 modules (which aren't "extensions"). The ones that usually cause people the bother are the D3DX libraries, which are a more advanced set of objects and methods.


When you download "DirectX 9.0c Runtime Enviroment" you are simply downloading the d3dx9 dll files (which are d3d 9 extensions). This is why Vista/7 have DirectX9.0Ex, Direct3D 9 calls are only used when Direct3D 11 (or 10 if Vista isn't patch) aren't available. For example if a DirectX 9.0c era game wants a Direct3D 9 driver then DirectX11 uses DirectX9.0Ex to virtualize the driver using Direct3D 9 files loaded. DirectX 11 is still controlling everything.

Vista and Windows 7 already include components of DirectX 9.0 before you download the Runtime enviroment. The only thing downloading the DirectX9.0c RE does is verify that you have all of the legacy components.
User avatar
Wayland Neace
 
Posts: 3430
Joined: Sat Aug 11, 2007 9:01 am

Post » Fri May 27, 2011 5:10 am

When you download "DirectX 9.0c Runtime Enviroment" you are simply downloading the d3dx9 dll files (which are d3d 9 extensions). This is why Vista/7 have DirectX9.0Ex, Direct3D 9 calls are only used when Direct3D 11 (or 10 if Vista isn't patch) aren't available. For example if a DirectX 9.0c era game wants a Direct3D 9 driver then DirectX11 uses DirectX9.0Ex to virtualize the driver using Direct3D 9 files loaded. DirectX 11 is still controlling everything.

Vista and Windows 7 already include components of DirectX 9.0 before you download the Runtime enviroment. The only thing downloading the DirectX9.0c RE does is verify that you have all of the legacy components.


No, the D3D9Ex interface is the extended interface, the D3DX9 files are a set of advanced (but not extended) interfaces. They support the complex features of the system, Effects and such, but are completely separate from the Ex interface (the D3DX functions do not form an additional interface, they add additional objects and methods to the existing library, where as Ex defines a extended and not as compatible interface above the existing one). The D3DX libraries are available on XP and earlier, the Ex interface is generally not. When a game using DX 9 (Morrowind for example) calls a D3DX function, it's not calling a magical D3DXEx9/11 function as you say, it's calling the D3DX function in the 9.0c library.

You are correct that there are some components of DX 9 included with 10/11, in a way: the basics required to run some programs are there, but the D3DX libraries are not included with either 9, 10, or 11 in the default or minimal installs on any supported operating system. The DirectX 9.0c runtime installer does verify you have all the components of 9.0c (which can't be properly be considered legacy, since the last update was relatively recent). Thus, you must install the full set of runtime libraries for it to function. Installing in this case involves copying them to the appropriate folder and registering them as COM objects with the system, which was my whole point. You are installing them, there's no two ways about that.

In any case, I'm done debating this. If you're interested in what actually happens, I recommend you check the MSDN and other documents on DirectX, and possibly look at the installer, installer documentation and binaries themselves. Perhaps attach a debugger and see which libraries are used and how by your programs. It's quite fascinating.
User avatar
Breautiful
 
Posts: 3539
Joined: Tue Jan 16, 2007 6:51 am


Return to III - Morrowind