Which path will NV40 use in Doom3?

PeterAce

Regular
Any guesses on which precision the NV40 will render Doom3 at (FP16 or FP32)?

Will the NV40 have a specific code path or will it run the ARB2 path?
 
I'd imagine the ARB2 path would be most preferable in terms of IQ for NV40 and it shouldn't have too much of a greater overhead and the NV30 path (although free FP16 normalisation would be good for performance).
 
PeterAce said:
Any guesses on which precision the NV40 will render Doom3 at (FP16 or FP32)?

Will the NV40 have a specific code path or will it run the ARB2 path?

I'm guessing that Carmack will make a special path for the NV4X. Assuming that there's something to gain by doing that that is. Otherwise it'll probably use the ARB2 path by default.
 
NV_fragment_program2 (when it's released) will give Carmack more precise control over coissue/dualissue/complex op scheduling, so he may op to go there rather than leave it up to the driver compiler.

ARB2 will probably run "full speed", but remember, JC is the guy who wrote

Code:
float InvSqrt (float x)
{
  float xhalf = 0.5f*x;
  int i= *(int*)&x;
  i = 0x5f3759df - (i >> 1); // This line hides a LOT of math!
  x = *(float*)&i;
  x = x*(1.5f - xhalf*x*x); // repeat this statement for a better approximation
  return x;
}

:)
 
991060 said:
Somebody explain DC's code line by line? 8)
It's a function that accepts a floating point number as an argument and then return another floating point number as it's result, after some dead hard maths are done it.
 
Diplo said:
It's a function that accepts a floating point number as an argument and then return another floating point number as it's result, after some dead hard maths are done it.

Its the detail on math I want to understand. ;)
 
DemoCoder said:
Really? I always suspected that, but I could never find any attribution except to Quake3 src.
To be fair at the moment I can't say where or when I read/heard that code is
by Mr. Abrash..but I have this feeling :)

991060 said:
Somebody explain DC's code line by line?
That code takes a positive float number as input and return its inverse squared root (f(x) = 1/sqrt(x)).
It uses the a well known Newton formula to find functions roots plus some tricky trick based on how 32 bit single precision floating point numbers are represented/stored. Even hw implementations on current GPU uses the same main idea.

ciao,
Marco
 
NV30 path or ABR2 path which is faster because they have comparble quality but we are talking about fps here folks 300 fps always looks better then 270 fps.
 
bloodbob said:
NV30 path or ABR2 path which is faster because they have comparble quality but we are talking about fps here folks 300 fps always looks better then 270 fps.

Unfortuantely, in DOOM3 60FPS or 300FPS won't make much difference. :LOL:
 
I would consider it strange if Carmack coded a custom path for NV40. I would see no reason for it. ARB should be the default path.

However, Carmack has said the he was comitted to a GLSL / GL 2.0 path IIRC based on his experience with 3DLabs' chips, so NV40 may be able to run a "fragment_program2" path via compliation from GLSL....though I shouldn't make a big differece AGAIK.
 
Would it be possible to add a "soft shadow" path for NV40 & R420 because of their massively increased fillrate?
 
I'd be surprised if it doesn't default to the NV30 path for the extra speed (no matter how small).

991060 said:
Would it be possible to add a "soft shadow" path for NV40 & R420 because of their massively increased fillrate?

Won't happen.
 
991060 said:
Would it be possible to add a "soft shadow" path for NV40 & R420 because of their massively increased fillrate?

I doubt it but ati or nvidia could pay out $250k and do it themself ( well thats how much it is for a IHV to mod the Q3 engine ).
 
Back
Top