Graphic Cards DirectX Performance doubt

nikhilesh

Disciple
the gf4mx was built for dx7,Ti for 8.1 etc

now suppose wen i play a game like NFS-U or halo on an mx 440 at 1024*768,the game will run like a snail.but why??

the gf4 mx displays only DX7 graphical information no matter which directx game u play(dx8,9etc).so wen i play halo@1024*768 isnt it displaying only dx7 info?
the card was designed to play dx 7 games at high resolutions like 1024*768/1280*1024 wen it was released isnt it?

so wen i play halo on an mx 440 it plays at dx 7 and it shud be able to handle resolutions like 1024 or 1280,but it dusnt.what is the reason behind this?
 
Well, when a call cannot be handled by hardware (gfx card), it falls back to the dx runtime (software) and ur CPU has to do all th work. So it crawls.
 
Well u may have a dx7.0 card, but the game calls for dx 9.0 right? So it uses dx 9.0 function calls.
Well, a dx 9.0 compliant card runs these functions on the gfx card itself. So it runs fast (or is supposed to anyway). But if these functions are not implemented (as in the case of an old card, or old drivers for new card), then the system must fall back to software - the dx9.0 runtime (why else wud the library be 30+ mb?). This software has to run on the CPU, or uses the GPU albeit inefficiently (manually executes tiny instructins on it one by one, ratherthan giving it to a hardware unit). So your gameplay crawls.
 
I dont think thats a very logical explaination.IF the DX9 code is being processed,then halo should look as good on a mx440 as on say a 6600gt.Does it,no?
Halo is a bad example -it is very poorly coded for the PC and even cards like 9600/5700 which should be able to handle it struggle badly to maintain a 30fps framerate.
A good example is HL2-it scales with ur card ,it can run DX7 on NV1x&R200 class hardware well at 1024x768,DX8.X for NV2x to NV3x,R25x class hardware and DX9 for R3xx,R4xx,NV4x hardware.
And I do not think a DX7 equipped machine can process full DX9 code,only that subset of it that is DX7 spec.With DX8.x and DX9,there are various grey areas of shader models from PS1.1 to PS3.0.There is a lot of heated exchnage on what is best and what is needed,but the higher ps version ur card runs generally the better for both performance and IQ.
And Halo runs fine on an XBOX with "just" a GF3.Go figure..
 
It is logical enuf.
Look suppose ur game has a function call drawCoolDude. Assume that MS has included this function in DX9.

Now a DX9 compliant card would have a hardware unit (maybe called the Person Drawer Vector Unit - hereafter referred to as PDVU) which would render a high quality image in under 0.001 seconds. So whenever ur game called drawCoolDude(), the card driver would dispatch a request to the PDVU.

But an old card would not have this PDVU. So the function call, instead of invoking a hardware function would go to the software routine coded as so

int drawCoolDude()
{
draw face;
draw butt;
draw motorbike;
.......
}

And this would have to be executed by the CPU + some more basic routines of the GPU. Hence it would slow down a lot. Therefore - to keep the game running - these calculations are done at lower accuracy.
As for how consoles have good quality, I guess they have better library routines, and more specialized compilers. Plus, all code is generated so that it can run on the GPU.
 
Hey king ,i still haven't read the 3rd and 4th post.Im still reading the second one in which you have said that the DX9 rendering is done through the software(atleast maybe some of it,according to your post) if you have a card that is below DX9 level.But then there should be some DX9 effects in the game right?But these effects aren't found on systems with cards below DX9 level,even though according to you the CPU does handle some DX9 rendering.

edit:I have read the other posts,thanks for the explanations ,that sums it up i guess.
:) :hap2:

Q.2)In case you put some 15 GF4 mx 440's in a system,it should be able to handle even the DX9 info,due to its raw speed,no matter how much load is put on software rendering .Will this happen?Or will the system still display DX7 effects?
 
nikhilesh said:
Hey king ,i still haven't read the 3rd and 4th post.Im still reading the second one in which you have said that the DX9 rendering is done through the software(atleast maybe some of it,according to your post) if you have a card that is below DX9 level.But then there should be some DX9 effects in the game right?But these effects aren't found on systems with cards below DX9 level,even though according to you the CPU does handle some DX9 rendering.

edit:I have read the other posts,thanks for the explanations ,that sums it up i guess.
:) :hap2:

Q.2)In case you put some 15 GF4 mx 440's in a system,it should be able to handle even the DX9 info,due to its raw speed,no matter how much load is put on software rendering .Will this happen?Or will the system still display DX7 effects?

No it will still do only DX7.Thats the flaw with King's explanation.
 
Halo is badly coded. Runs slow on my 9800 pro as well. So don't put halo in this question But that aside, the answer to this is simple. The MX440 doesn't have the memory bandwidth or the T&L power to handle high resolutions and high polygon counts of modern games. BTW about emulation, most vertex shaders (other than texture lookup in VS which is used for displacement mapping) can be efficiently emulated in software and that is what is done when the card doesn't natively support hardware shading (GF3 and above do support some form or the other). Pixel shading on the other hand cannot be emulated. If you try pixel shading in software (thats what the directx 9 reference rasterizer does), the fps will be <1 even with an FX-55. So if a card is DX7 and the app is dx9, the vertex shader instructions are emulated in software whereas the pixel shader instructions are just not run since the hardware is incapable of doing it.
 
nikhilesh said:
so wen i play halo on an mx 440 it plays at dx 7 and it shud be able to handle resolutions like 1024 or 1280,but it dusnt.what is the reason behind this?

well...maybe because the dx9 instructions are executed by the processor, which makes the game run slower.
 
Nope. I stand by my explanation. The card will still handle the Dx 7.0 effects only. The remaining DX9.0 stuff has to be done in software - and the bulk of that is done by the CPU.
When I say that some of the software stuff is done by GPU, I basically mean lower end stuff, like line drawing, polygon generation etc.

So if u put in 15 AMD 64s instead, and vastly improved the DX runtime library (basically it uses approximate algos rather than the exact stuff), then u cud get dx 9.0 like effects on any m/c.
 
May be DX9 effects arenot shown in the game because such thing would load the system heavily and Driver would to drop down the level the effects. Hence it's the driver which is responsible for absence of DX9 effects on DX7 card. And the reason is quite obvious , balance between image quality and performance. :)
 
What King is saying is partly right a GPU is nothing but a processor highly optimised for certain operations. Try any old game like HL 1 and run it on software mode at 1600*1200 even an FX 55 will stutter.

Also the gf4mx lacks the memory bandwith hence games struggle at high resolutions, Also Chaos in 3d mark 2005 in one of the tests one with the dragons wasnt PS emulated as well I remember getting 1 fps in that test on my rig.
 
Back
Top