HL2 performance boost for nV owners?

nRollo

Banned
Jan 11, 2002
10,460
0
0
http://www.nvnews.net/vbulletin/showthread.php?t=41625

This could be huge if true, and will probably be reported on more. In a nutshell, someone at Guru3d found a way to force 16bit shader precision in HL2 and no difference in IQ over 24/32 bit.

Valve coded the game to make all calls for at least 24 bit (the DX spec at the time) so now all nVidia cards running the game in DX9 run it at 32 bit shader precision. (which is why they've always been slower at HL2- they're doing more "work")

If this is the case, FX series cards should be able to run HL2 as fast or faster than 9700/9800Pros, and 6800s should be as fast or faster than their ATI counterparts.

I'd call that an unqualified "win/win" situation, everyone should be happy. (at least everyone mature enough not to have bought a card so they can say "Nyahnyah- faster at HL2! :roll: )
 

bpt8056

Senior member
Jan 31, 2001
528
0
0
I pretty much expected that Valve wouldn't use partial precision in HL2 especially since ATi gave them millions of dollars. It's certainly nice that someone was able to expose it and get substantial performance gains especially for the FX series. I wonder how much performance can be gained using the 6800 series. I don't have a copy of the game myself yet to do this so if anybody here can do it, please report back with some numbers. Thanks.
 

ZobarStyl

Senior member
Mar 3, 2004
657
0
0
While I agree with Rollo that this might give a decent boost without IQ loss in a lot of places, the statement that this will make the FX cards run at the level of 9700/9800's in DX9 mode seems a little farfetched. No amount of tweaks is going to make the FX series not suck at DX9, that's pretty much fact. However, the main implication here is that the 6800 series (which is already very competitive in HL2) was somewhat hamstringed by VALVe. Of course, this is all pending some actual screenshots showing no loss in IQ, so I'll reserve judgement for then.
 

sbuckler

Senior member
Aug 11, 2004
224
0
0
Hard op forum's talking about this too:
http://www.hardforum.com/forumdisplay.php?f=3

I'm sure iq must go down, and fps will go up, but I think we need some proper analysis to see by how much. Doesn't look pretty for valve - I liked the bit where making your FX based nvidia card look like a radeon to hl2 using 3dAnalyze made all the image artifacts go away.
 

gururu

Platinum Member
Jul 16, 2002
2,402
0
0
this is not a Valve conspiracy. you do realize that the MINIMUM specification for shader precision for DirectX 9 is 24-bit. If anything, you have to come down on Microsoft. They must have it against nVidia :roll:
 

gururu

Platinum Member
Jul 16, 2002
2,402
0
0
blaming other companies for this apparent nVidia deficiency is silly. If their cards weren't fast enough for 32-bit DX 9, why the heck did they implement it?
 

Icepick

Diamond Member
Nov 1, 2004
3,663
4
81
Very interesting post. At least the FX series owners may have a shot at running the game at a decent speed. I'd like to see some more quantitative analysis on the actual performance boost. Thanks for the link Rollo!
 

McArra

Diamond Member
May 21, 2003
3,295
0
0
Originally posted by: gururu
this is not a Valve conspiracy. you do realize that the MINIMUM specification for shader precision for DirectX 9 is 24-bit. If anything, you have to come down on Microsoft. They must have it against nVidia :roll:

That's true. Valve is following DX9 specs.
 

Genx87

Lifer
Apr 8, 2002
41,091
513
126
Originally posted by: gururu
this is not a Valve conspiracy. you do realize that the MINIMUM specification for shader precision for DirectX 9 is 24-bit. If anything, you have to come down on Microsoft. They must have it against nVidia :roll:

Microsoft added partial precision (16FP). This is the minimum spec for DX9.

 

Genx87

Lifer
Apr 8, 2002
41,091
513
126
Originally posted by: gururu
blaming other companies for this apparent nVidia deficiency is silly. If their cards weren't fast enough for 32-bit DX 9, why the heck did they implement it?

There has been several opinions raised on the subject. Ranging from wanting to go with a standard IEEE precision to professional offloading of rendering duties on their Quadro cards.

I think looking at the FX series of cards it is pretty clear partial precision was designed for the gaming card and FP32 was for the Quadro cards.

Edit:

btw my understanding is the 6800 pipeline is designed for FP32 from the ground up. Meaning it will run FP16 and FP32 at the same speed. Where as the FX pipeline can run two as many ops through its pipeline if it is FP16 vs FP32. So I am not sure how much of a performance increase the 6800s can get out of this. The FX cards could see a substantial increase in performance.

 

Todd33

Diamond Member
Oct 16, 2003
7,842
2
81
Ya, ths won't help the 6800 series, they have no problem with DX9 shaders.
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: Genx87
Originally posted by: gururu
this is not a Valve conspiracy. you do realize that the MINIMUM specification for shader precision for DirectX 9 is 24-bit. If anything, you have to come down on Microsoft. They must have it against nVidia :roll:

Microsoft added partial precision (16FP). This is the minimum spec for DX9.

Yes and no. While FP16 is supported as part of the standard, a card that *only* did FP16 would not be DX9 compliant. You still have to support FP24 or FP32 for a card to be a "DX9" part.
 

Genx87

Lifer
Apr 8, 2002
41,091
513
126
While that may be true. The FX does support FP32 which is higher than the full precision of DX9.
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: Genx87
While that may be true. The FX does support FP32 which is higher than the full precision of DX9.

:confused: ???

I didn't think that was in dispute. To recap:

MS says DX9 (at least with SM2.0) = FP24, with optional FP16 support. NVIDIA does only FP16 and FP32 -- so they have to run FP24 shaders in FP32 (which they do very slowly on GeForceFX hardware). ATI runs everything at full speed at FP24.

HL2 normally requests that everything is run at FP24, which hoses GeForceFX cards in DX9 mode. Someone discovered a way to force it to run in FP16 and says there's no/minimal image quality loss (although it appears nobody has done any in-depth testing), and it makes GeForceFX hardware actually run acceptably in DX9 mode. Various parties are crying "foul" and claiming huge ATI/Valve conspiracies and the like because Valve didn't bend over backwards and support partial precision shaders for NVIDIA.

I think that about sums it up.
 

sbuckler

Senior member
Aug 11, 2004
224
0
0
Originally posted by: Matthias99
Originally posted by: Genx87
While that may be true. The FX does support FP32 which is higher than the full precision of DX9.

:confused: ???

I didn't think that was in dispute. To recap:

MS says DX9 (at least with SM2.0) = FP24, with optional FP16 support. NVIDIA does only FP16 and FP32 -- so they have to run FP24 shaders in FP32 (which they do very slowly on GeForceFX hardware). ATI runs everything at full speed at FP24.

HL2 normally requests that everything is run at FP24, which hoses GeForceFX cards in DX9 mode. Someone discovered a way to force it to run in FP16 and says there's no/minimal image quality loss (although it appears nobody has done any in-depth testing), and it makes GeForceFX hardware actually run acceptably in DX9 mode. Various parties are crying "foul" and claiming huge ATI/Valve conspiracies and the like because Valve didn't bend over backwards and support partial precision shaders for NVIDIA.

I think that about sums it up.


FP24 is partial precision when compared to FP32, it's all relative and I'm sure MS doesn't make up it's mind then force ati and nvidia to follow some spec, they just play middle man and try to come up with something that supports the features on the cards both companies produce.

If the tweak really works (I await an indepth review) valve could have added a simple checkbox in the renderer options which made the engine use FP16 everywhere, and switched FX cards to use DX9 path with this option ticked by default. It seems a bit unfair on all those tens of thousands of paying customers using FX hardware that they should needlessly have to run with worse visuals.

Would be interesting to try the same trick with farcry.
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: sbuckler
FP24 is partial precision when compared to FP32, it's all relative and I'm sure MS doesn't make up it's mind then force ati and nvidia to follow some spec, they just play middle man and try to come up with something that supports the features on the cards both companies produce.

Actually, that's exactly what MS did (designed a spec and stuck to it). NVIDIA built an FP16/FP32 part (the NV3X) despite that and hoped that they could force FP32 to become the de-facto DX9 standard, but ATI designed to the MS spec of FP24. As it turns out, the GFFX cards are painfully slow running FP32 shaders anyway, making their FP24/FP32 DX9 performance really, really bad.

If the tweak really works (I await an indepth review) valve could have added a simple checkbox in the renderer options which made the engine use FP16 everywhere, and switched FX cards to use DX9 path with this option ticked by default. It seems a bit unfair on all those tens of thousands of paying customers using FX hardware that they should needlessly have to run with worse visuals.

I'm guessing there is *some* reason they didn't just do this (or that NVIDIA didn't make their drivers do this when running HL2). It's not clear how much the performance increases (one person at Guru3D reported "20-30%", but with no details on what they tested), or if there are graphical anomolies or reduced quality. Definitely not enough information yet to tell what's really going on here.

Would be interesting to try the same trick with farcry.

I believe FarCry already uses a mixed-mode path that runs some shaders in FP16 precision -- although I don't know how many. I know Doom3 definitely runs some shaders in FP16 (they use an NVIDIA openGL extension to dynamically run some of them at different precision levels; this was beaten to death while Doom3 was in development and shortly after it came out).
 

nRollo

Banned
Jan 11, 2002
10,460
0
0
Originally posted by: gururu
blaming other companies for this apparent nVidia deficiency is silly. If their cards weren't fast enough for 32-bit DX 9, why the heck did they implement it?

Perhaps to give developers the tools they needed to code for what everyone knew the spec would end up with? (32bit)

Unlike ATI who don't really seem to care about vendor relations, nVidia has a huge partnership with the software community. They were the first to bring hardware T/L to market, the first to bring FP32, and the first to bring SM3. (among others)

Games are in development for years. You can't just expect developers to work in 24 bit SM2 for all of 2003 and 2004 because ATI can't get the 32 bit SM3 together can you, Gururu? It would stagnate the industry to the level the tech has been at since fall 2002?

 

Ackmed

Diamond Member
Oct 1, 2003
8,499
560
126
Originally posted by: gururu
this is not a Valve conspiracy. you do realize that the MINIMUM specification for shader precision for DirectX 9 is 24-bit. If anything, you have to come down on Microsoft. They must have it against nVidia :roll:


Quoted because people like to look over the obvious.
 

DAPUNISHER

Super Moderator CPU Forum Mod and Elite Member
Super Moderator
Aug 22, 2001
32,069
32,594
146
So with all the finger pointing aside, does this mean FX owners will get a needed speed boost using the DX9 path in HL2 without much of an IQ problem? If so I say nice! The Humus thing that is in the drivers now helped ATI owners out didn't it? So it would be good if the reverse happened now :) or am I mixed up?
 

Todd33

Diamond Member
Oct 16, 2003
7,842
2
81
16 bit = 65,536 levels
24 bit = 16,777,216 levels

I don't see how this will have zero impact on the image unless the extra precision wasn't used at all. It is simple to do a diff on the image, I guess we will find out soon. Anyhow, it is a nice tweak, ATI should have included an option. I don't like the chip makers getting in bed with the developers, it doesn't help the end user at all.
 

Drayvn

Golden Member
Jun 23, 2004
1,008
0
0
Originally posted by: Rollo
Originally posted by: gururu
blaming other companies for this apparent nVidia deficiency is silly. If their cards weren't fast enough for 32-bit DX 9, why the heck did they implement it?

Perhaps to give developers the tools they needed to code for what everyone knew the spec would end up with? (32bit)

Unlike ATI who don't really seem to care about vendor relations, nVidia has a huge partnership with the software community. They were the first to bring hardware T/L to market, the first to bring FP32, and the first to bring SM3. (among others)

Games are in development for years. You can't just expect developers to work in 24 bit SM2 for all of 2003 and 2004 because ATI can't get the 32 bit SM3 together can you, Gururu? It would stagnate the industry to the level the tech has been at since fall 2002?


Even tho ATi worked towards DX9 standards, Microsofts standards. Which also if u think about it, software developers also work towards...

Why implement something so that ur the first to have it, wouldnt it be best to bring it out when it worked well instead of not very.

All software developers are working with 24 bit SM2 because they HAVE to because of the DX9 standard that is out there. 24bit and SM2 are the minimum requirements, meaning that there could be better improvements but still they are limited to the confines of the API like DX9 have put on it, they cannot expand past that, so they can only go up to 32bit and SM3. 32bit for the FX range was disastrous and gave it very low performance, while SM3 is still only emerging and is mostly unused in games, tho they are being implemented in partial effect. They cant bring out a game which has a higher standard like 64 bit SM4 can they if there are no APIs out to support it at the time.

Games are in development for years. You can't just expect developers to work in 24 bit SM2 for all of 2003 and 2004 because ATI can't get the 32 bit SM3 together can you, Gururu? It would stagnate the industry to the level the tech has been at since fall 2002?

You said games are in development for years, then what about UE3 that is being developed right now, and right now they are developing to the standard of an API, another piece of software, it isnt the hardware that gives developers what they need, as they build their games and develop them towards APIs like Microsofts. And so do hardware companies, otherwise it would be a mix bag of goodies that no developer could ever hope to build their engines towards. So to answer that quote above, its not up to the hardware developers to decide what to build there cards towards, its up to the company that makes the programming tools. Of course after that, its up to the hardware developer to add in extra bonuses if they want to, and then its up to the software developer to take it. But again as uve said games are in development for years, so going back to my example, UE3 is working towards DX10 standards, and thats what hardware will support when it is released, and when the hardware is released and has these extra bonuses the developers of UE3 wont be able to take advantage of these things as its close to deadline to publish the game. Only games coming out well after the standard API is released will be able to add these extras in.

Obviously ATi was slightly off footed when the 6800 and SM3 and that increasingly more and more games are having it in PARTIAL use at the moment. And again from many reviewers and techies the differences between 24bit and 32bit is negligable. Compare those 2 to 16 bit and there are is a significant amount of difference.

And then with the advent of SLI for both companies where we could possibly see no more refresh cards and no more 6 to 9 month refresh cycles, there is no way that we will be seeing different standards and new innovations in cards for at least 18 to 24 months.
 

MegaWorks

Diamond Member
Jan 26, 2004
3,819
1
0
Originally posted by: Rollo

Unlike ATI who don't really seem to care about vendor relations, nVidia has a huge partnership with the software community. They were the first to bring hardware T/L to market, the first to bring FP32, and the first to bring SM3. (among others)

Games are in development for years. You can't just expect developers to work in 24 bit SM2 for all of 2003 and 2004 because ATI can't get the 32 bit SM3 together can you, Gururu? It would stagnate the industry to the level the tech has been at since fall 2002?

Another "Why Nvidia is better than Ati" thread by Rollo, you simply cannot stop won't you.
 

nitromullet

Diamond Member
Jan 7, 2004
9,031
36
91
And then with the advent of SLI for both companies where we could possibly see no more refresh cards and no more 6 to 9 month refresh cycles, there is no way that we will be seeing different standards and new innovations in cards for at least 18 to 24 months.
That is all relative... SLI, 32-bit, and SM3 won't be new for nVidia, but it appears that they would be for ATi. Maybe they will get these out the door in the next 6 to 9 months... Oh yeah, I forgot, their next planned move is to re-release their old core again with a slight speed bump.

Anyway, back on topic, has anyone seen any benches or screenshots of NV30 running 16-bit floating point precision under DirectX9. My old FX is in my fiance's PC, and I really don't feel lile loading HL2 via Steam on her rig to test this. .
 

ronnn

Diamond Member
May 22, 2003
3,918
0
71
I don't think it has anything to do with Ati being better than Nvidia. Probably as said in the beyond3d forums, Valve had a lot of bugs to work out and never did get all the functions working. No time to work on a series of cards (58 - 5900) that are used by very few of their customers. Just a normal business decision. If this fix does help owners of these cards, well so much the better. Hl2 is a good game and I am all for increased performance for all. :beer: