PDA

View Full Version : Let's see the 3D Mark 2003 IQ issues differently, shall we?


Pages : [1] 2 3 4 5 6

Uttar
03-30-03, 07:34 AM
Hey everyone,

I've gotten quite annoyed by all of the noise going into the GeForce FX overbright issues in GT4: Mother Nature.

Because of this, people want to compare the GeForce FX 5x00 43.03 drivers with the Radeon 9x00.
Well let me say you one thing: that doesn't make sense.

I'm not a lame nVidia fanboy who is going to say you that 3DMark didn't program the thing correctly, that those IQ issues are unimportant, stuff like that. No, that's even worse.

What I'm annoyed by, however, is that people fail to realize that with the 43.45 drivers, there are no apparent IQ issues in GT1, GT2 and GT3 - only in GT4.
If there are issues in those games, I stand corrected. But so far, no one has shown me any.

Okay, so what's my point? My point is that any serious programmer, or at least any programmer who's a nVidia registered developer ( and there are a *lot* of them ) , would program GT2 & GT3 in a way more similar to what nVidia did by doing driver hacks.
But the same programmer wouldn't implement what nVidia did for GT4.

So what?

Well, the 3DMark 2003 score is calculated by multiplying the game scores by different numbers, then adding the results.
And the numbers are *public*

So why couldn't we calculate the GeForce FX score manually, if we truly wanted to be fair?

Considering the 3DMark 2003 results from http://www.darkcrow.co.kr/Review/Review_Content.asp?board_idx=146 and the method explained at http://www.beyond3d.com/articles/3dmark03/intro/index.php?p=4#score

We've got, using 43.03 for GT4 and 43.45 for GT1, GT2 & GT3:

1306.7 +
1287.6 +
1361.19 +
595.98
= 4551

That's better than the 43.03 score of 3288, ain't it? But it's obviously worse than the 43.45 score of 5379.

Oh, sure, nVidia is still "cheating" for GT1, GT2 and GT3 considering that. But what proofs you they aren't going to cheat similarly in real games, too? If it doesn't result in IQ issues, I personally don't care.

In hope you people don't consider me as a faboy after this,


Uttar

Onde Pik
03-30-03, 08:26 AM
My 3d knowlege is much more limited than most of you guys, but the "accepted truth" is that Nvidia forces FP16 in 3DMark03 right?

So arent we seing an example of FP16 being enough to correctly display some scenes and insufficient for the last scene?

Well if Nvidia start implementing this in games well I don't think I would care as long as it was impossible to see or feel the diffrence. That is, I wouldnt care if it wasnt for the fact that DX9 requires atleast 24bit. (It does right?)

Uttar
03-30-03, 09:01 AM
The "accepted truth" is that nVidia at least forces FP16 in 3DMark03.
They probably do even more than that, including precompiling the shaders to make them more efficient than what their drivers could do with a normal shader, and maybe they even use INT12 in some areas ( although that's really not sure at all, and it's in fact quite unlikely )

DX9 requires at least FP24 for most operations. But programmers can say a specific operation needs at least FP16 - that's why I say any serious programmer probably wouldn't do it the way Futuremark did it.

IMO, the best thing nVidia could do is manually setting FP16 for things that they think FP16 would be sufficent on. It might not give as much of a performance boost as forcing FP16 everywhere, but it would certainly be better than using FP32 everywhere!

And no one could complain about lower image quality too, if nVidia did it right.


Uttar

StealthHawk
03-30-03, 10:11 AM
Originally posted by Uttar
And no one could complain about lower image quality too, if nVidia did it right.

that's the point, isn't it? they already got caught lowering IQ in GT4 with those special 42.xx drivers that have the same problem as the new 43.45 drivers. the IQ should have been fixed, nvidia has had ample time.

optimizing is fine, but optimizing and lower IQ is not :nono:

ChrisRay
03-30-03, 10:21 AM
Well I do know Game Test 1, 2, 3 do not require FP 24 bit precision.

digitalwanderer
03-30-03, 10:27 AM
WHQL.


It doesn't really matter who thinks what about 3dm2k3, I think it's just an indicator of their problems with WHQL certification.

Are they really gonna try and only put out "official but uncertified" drivers from now until NV35? :confused:

ChrisRay
03-30-03, 10:53 AM
Digital. Microsoft don't care about futuremark, They will get certified drivers, Futuremark be damned,

Because Nvidia is not forcing 16 bit precision unless specifically requested.

Uttar
03-30-03, 10:58 AM
Originally posted by ChrisRay
Digital. Microsoft don't care about futuremark, They will get certified drivers, Futuremark be damned,

Because Nvidia is not forcing 16 bit precision unless specifically requested.

I sadly believe you're right...
That's why I'm proposing this approach.


Uttar

digitalwanderer
03-30-03, 12:44 PM
Originally posted by ChrisRay
Digital. Microsoft don't care about futuremark, They will get certified drivers, Futuremark be damned,

Because Nvidia is not forcing 16 bit precision unless specifically requested.

So nVidia is just going to use 16-bit precision unless the application/game SPECIFICALLY calls for 24FP? :confused:

:thinker:

:mad:

<HRRRRM!>

Do I EVEN want to ask if you think that all DX9 apps will call for 24FP by default or do you think they'll query the driver for a preference? :rolleyes:


(Damn it, I just didn't want them to be able to wiggle their way out of this that easily!)

ChrisRay
03-30-03, 02:58 PM
Originally posted by digitalwanderer
So nVidia is just going to use 16-bit precision unless the application/game SPECIFICALLY calls for 24FP? :confused:

:thinker:

:mad:

<HRRRRM!>

Do I EVEN want to ask if you think that all DX9 apps will call for 24FP by default or do you think they'll query the driver for a preference? :rolleyes:


(Damn it, I just didn't want them to be able to wiggle their way out of this that easily!)


To be honest, I think it will depend upon the ap. It might be similar to vsync, "Aplication preference" And or always force 16 or always force 32 bit.

I really don't know.

I don't really know what to think of the scenerio right now, Do I believe 16 bit precision is enough for games of today and possibly tommorrow? ya I think 16 bit will be plenty,


Do I think this is good PR for Nvidia? No I do not, Nvidia is damned if they do and damned if they don't. I'm thankful that I'm in a situation where I can watch and see without tramatically being affected by whats to come.

in the end tho I think most vendors will opt to use 16 bit on both ATI and Nvidia cards, I have two reasons to believe this. Performance and negligable IQ increases, And Nvidia's influence in the gaming division right now.


I sadly believe you're right...
That's why I'm proposing this approach

Not quite sure I follow here? ;)

What exactly are you proposing?

Uttar
03-30-03, 03:27 PM
Originally posted by ChrisRay
Not quite sure I follow here? ;)

What exactly are you proposing?

Manually composing the 3DMark 2003 score to get something more fair than what we're gonna get using only one driver set.
That's what the original post explains :P


Uttar

Captain Beige
03-30-03, 03:35 PM
Originally posted by ChrisRay
To be honest, I think it will depend upon the ap. It might be similar to vsync, "Aplication preference" And or always force 16 or always force 32 bit.

I really don't know.

I don't really know what to think of the scenerio right now, Do I believe 16 bit precision is enough for games of today and possibly tommorrow? ya I think 16 bit will be plenty,


Do I think this is good PR for Nvidia? No I do not, Nvidia is damned if they do and damned if they don't. I'm thankful that I'm in a situation where I can watch and see without tramatically being affected by whats to come.

in the end tho I think most vendors will opt to use 16 bit on both ATI and Nvidia cards, I have two reasons to believe this. Performance and negligable IQ increases, And Nvidia's influence in the gaming division right now.




Not quite sure I follow here? ;)

What exactly are you proposing?

ATI cards don't support FP16, only FP24, since FP24 is part of the DX9 specification but FP16 is not and is therefore useless for a true DX9 card. this is not like vsync. vsync is an option not part of a standard. nvidia cards using FP16 unless specifically asked for FP32 is ridiculous.

it would be like a company claiming to have an equal oportunities policy but discriminating against people unless you specifically told them not to be prejudiced against every possible kind of lifestyle and if you accidentally left anyone out they'd bully them until they accpeted lower pay, and then saying it was okay because you didn't say you wanted them to be treated fairly and boasting about how great they are at cutting costs.

Cotita
03-30-03, 03:50 PM
I think its acceptable that nvidia use FP32 for application settings, a FP16/FP32mix for quality settings and use FP16 for performance settings.

Nutty
03-30-03, 04:27 PM
Some things are FP32, even in the "hacked" drivers. Texture addressing for one is always FP32 addressing.

I dont think its bad that nvidia will use FP16 instead of FP32 unless specifically asked.

Its just the same as using "int" in C/C++. You dont know the size of int, but when you use it you dont care. You just want it fast. On some systems its 32bit on some its 16bit.

IF you really need 32bit, then you make sure you get 32bit, by choosing a more appropriate integer format. The compiler merely uses the most appropriate size for the hardware.

Same thing here.. IF you dont specifically request that a certain thing _must_ be FP32, then the compiler in nvidia's drivers will optimize it to use FP16.

I cant see what the problem is, as long as the image looks right.

MuFu
03-30-03, 04:35 PM
They are probably swapping out GT4 shader code for CineFX-optimised routines compiled into the drivers. That'd explain the apparent geometry quirks and suprisingly good performance given the results of the synth tests.

MuFu.

ChrisRay
03-30-03, 05:04 PM
Originally posted by Captain Beige
ATI cards don't support FP16, only FP24, since FP24 is part of the DX9 specification but FP16 is not and is therefore useless for a true DX9 card. this is not like vsync. vsync is an option not part of a standard. nvidia cards using FP16 unless specifically asked for FP32 is ridiculous.

it would be like a company claiming to have an equal oportunities policy but discriminating against people unless you specifically told them not to be prejudiced against every possible kind of lifestyle and if you accidentally left anyone out they'd bully them until they accpeted lower pay, and then saying it was okay because you didn't say you wanted them to be treated fairly and boasting about how great they are at cutting costs.

Errm ATI cards fully support Floating Point 16 bit precision, Using the r200 pathway on Doom 3 is ran in 16 bit precision.

I dunno where the heck you learned that the r300 cannot do 16 bit precision.

And Vsync used to be part of DX specification. Microsoft would not certify any drivers that allowed for Vsync to be turned for until like the year 2001.

digitalwanderer
03-30-03, 05:13 PM
....I don't really understand it all when you guys get all "techy" on me, I just hate to see nVidia weaseling there way out of this with a whimper and no roar! :(

(Yeah, this comming from the guy who's all excited he just bought a Gainward GF4 4400 GS (http://www.nvnews.net/vbulletin/showthread.php?s=&threadid=9317). Yes, I am a hypocrite. ) :rolleyes:

walkndude
03-30-03, 05:23 PM
Chris, the r300 is fixed at 24fp.

It will run any application that asks for 16fp at 24fp... not a good or a bad thing just the way its designed...

Chalnoth
03-30-03, 05:24 PM
I think the problem is that DirectX offers no way to expose FX12 functionality (12-bit integer).

Since the FX can execute FX12 and floating-point ops in serial, this is a major problem for the performance of the FX.

ChrisRay
03-30-03, 05:36 PM
Originally posted by walkndude
Chris, the r300 is fixed at 24fp.

It will run any application that asks for 16fp at 24fp... not a good or a bad thing just the way its designed...


Hmm From what I have read, The Radeon 9700 Pro supports 64 Bit floating point frame buffers,

To me that actually seems very limited, As doom 3 is run in 16 bit precision on the r200 pathway.

My understanding of DirectX 9.0 thats actually overkill forcing 24 bit all the time in situations where its not neccasary


This is my understanding of the DirectX 9.0 specifications.

Hardware Support:
ATI R3xx - offers 16FP and 24FP (32-bit formats must therefore be reduced) pixel shader precision
NVIDIA NV3x - offers 16FP and 32FP pixel shader precision

DX9 specification requirements:
PS2.0 registers
colour = 8-bit integer only


constant float = minimum 16-bit FP but this limits the actual number of constants that can be used


input texture coordinate = minimum 24-bit FP, preferred 32-bit FP, 16-bit FP partial precision for dependent reads(

sampler = minimum 16-bit FP to support 16-bit texture formats

temporary = minimum 16-bit to support anything taken from a 16-bit FP source

StealthHawk
03-30-03, 10:21 PM
Originally posted by ChrisRay
Well I do know Game Test 1, 2, 3 do not require FP 24 bit precision.

this is true, because they do not use DX9 :p

StealthHawk
03-30-03, 10:45 PM
Originally posted by ChrisRay
Errm ATI cards fully support Floating Point 16 bit precision, Using the r200 pathway on Doom 3 is ran in 16 bit precision.

I dunno where the heck you learned that the r300 cannot do 16 bit precision.

And Vsync used to be part of DX specification. Microsoft would not certify any drivers that allowed for Vsync to be turned for until like the year 2001.

I don't know where you heard R300 can do FP16, I have never heard that stated, and it does not seem likely. people "in the know" always say that R300 does not support FP16, and does not support true 128bit color either(FP32). we all know it's max is FP24.

i'm not really sure where you heard the R200 pathway uses 16bit floating point precision, AFAIK Carmack has never explicitly stated such a thing.

Carmack said this in his .planThe reason for this is that ATI does everything at high precision all the time, while Nvidia internally supports three different precisions with different performances. To make it even more complicated, the exact precision that ATI uses is in between the floating point precisions offered by Nvidia, so when Nvidia runs fragment programs, they are at a higher precision than ATI's, which is some justification for the slower speed. Nvidia assures me that there is a lot of room for improving the fragment program performance with improved driver compiler technology.

he says that ATI does everything in "high precision all the time." he also says that nvidia supports 3 formats, which we know to be INT12, FP16, and FP32.

he then says that "the exact precision ATI uses in in between the floating point precisions offered by Nvidia." again, nvidia offers FP16, and FP32, this suggests that the R300 can only use FP24.

ChrisRay
03-30-03, 11:37 PM
I don't know where you heard R300 can do FP16, I have never heard that stated, and it does not seem likely. people "in the know" always say that R300 does not support FP16, and does not support true 128bit color either(FP32). we all know it's max is FP24.

i'm not really sure where you heard the R200 pathway uses 16bit floating point precision, AFAIK Carmack has never explicitly stated such a thing

Where I got that was from mis representation of its specs from ATI,

Then again ATI specifically states it supports 128 bit precision too :rolleyes:

According to their specifications its support 64 bit floating frame buffers, But thats another things,

Since aparently its just 24 bit downsampling to 16 bit (which I think is retarded for any given number of reasons)

And ya, Carmack does state the r200 uses 16 bit precision in Its shading, It has too. To support r200 features. So therefore, The R300 is aparently down sampling its quality, Which isn't exactly a good representation of performance.

Actually carmack openly supports 16 bit precision over 24 bit and 32 bit. This can be seen in his beyond3d interview

IMO being strictly 24 bit is ATis Gift and its curse, Because they won't benefit from good programming such as carmacks precision modifiers in 16 bit, As 24 bit isn't really offering any IQ over 16 bit.

But they also have the benefit of being "just enough" For specifications,


Either or, I think ATIS implementation of its floating point precision kinda leaves a little bit to be desired. Expecially when you consider DirectX 9.0 current specification. As ATis card is just a bare minimum for DX 9.0 I'm not quite sure they chose to stick with strict 24 bit precision. DX 9.0 specifications be damned. Probably to save Die space on their already crazily overloaded 0.15 micron proccess.

From a programmers point of view, They leave little room for modification or tweaking, And thats always a bad thing, I can see why John Carmack Stated he has become limited by the r300 programmability. Kinda disapointing to me. Oh well.

StealthHawk
03-31-03, 12:18 AM
Originally posted by ChrisRay
And ya, Carmack does state the r200 uses 16 bit precision in Its shading, It has too. To support r200 features. So therefore, The R300 is aparently down sampling its quality, Which isn't exactly a good representation of performance.

can you explain this? why does the R200 path "have to" use FP16 for the R300?

ChrisRay
03-31-03, 12:30 AM
Originally posted by StealthHawk
can you explain this? why does the R200 path "have to" use FP16 for the R300?

Actually I believe its 16 bit fixed, Because its using r200 pixel shader functions, I'm not sure how backward compatible the R300 is, Meaning if isd Pixel Shader 1.4 is seperate or if the Pixel Shader 2.0 does the 1.4 Shaders like the Nvidia card,

So therefore I can only speculate.