As promised, here are my posts from another board, from which the originator of this thread, grabbed my posts.
==========
Greg Vederman said:
Oh, and Derek, seriously, has anyone mentioned lockups in BK that you're aware of? Let me know if they do. I'm going to test a copy of The Thing later today and see if I can't get the bitch to freeze on me.
Nope. Nothing so far.
I got the 9700 Pro (retail candidate) Rev A13 board from ATI quite some time ago and it came with a CDROM containing these drivers
These drivers are what Carmack was running Doom3 on at E3 and what shipped to retail. Also, Carmack was running an earlier dev board and not the Rev A13.
win9x : 07/25/2002, 4.13.01.9056
win2k : 07/25/2002, 5.13.01.6143
winxp : 07/25/2002, 6.13.10.6143
The fast track ATI dev site, has these devloper-only drivers.
win9x:08/15/2002, 4.13.01.9062
win2k:08/15/2002, 5.13.01.6166
winxp:08/15/2002, 5.13.01.6166
So far, I haven't observed
any problems with BCM or BCG and especially not with TnL
These are the latest 8500 drivers. Compare to the 9700
win9x: 07/04/2002, 4.13.01.9050
win2k:07/04/2002, 5.13.01.6118
winxp:07/04/2002, 5.13.01.6118
This brings me to another thing: benchmarking programs. All they are good for is just that,
benchmarking and aren't bloody likely to unveil
driver artifacts or problems which occur in games due to developers exposing flaws in drivers (like I do on a fairly regular basis with ATI boards, as you all know).
So, when I see arguments like
....oh, the card performed find on 3DMark 2001 SE, I go
WOT?!?! and move on with my thoughts and with the opinion that such notions are stupid, irrelevant and born of ignorance and fanboi nonsense.
Funny thing is, we have this same discussion going on right now on my
bulletin board. I have
taken ATI to task over their shoddy driver development over the years. In fact, when they read that piece, the dev relations lead and I got into a dialog in order to identify how best to approach such naggling issues.
In fact, I'm surprised that I'm still on the dev team quite frankly. I cut them
no slack whatsoever. Fact is, just around the time of the 8500, the disdain for ATI's driver development, reached and all time high and they knew that in order to propell those cards into the mainstream (and take on nVidia in the process), they had to gain gamer loyalty and appease us devs.
I have to say that while I
still think that
every one of the incompetent driver devs should be fired and that dept re-structured and actually staffed with devs who are
gamers, they have come a long way from where they were. HOWEVER, things like fog table, lighting tris which are *clearly* not to be spec lit, *llegally* switching driver states in some DX ops etc are the kind of mistakes you will only see
inexperienced developers make. And the ATI driver devs do this over and over and over and over. I mean, how the
fuck do you break fog without noticing it??!!??? The most basic and prevalent DX feature used by DX titles. I've seen people get fired for less. But yet, with seemingly each driver release, the ATI driver devs manage to flat out break even the basic functionality of their driver set.
Sure, nVidia has buggy drivers too, but I have yet to see such blatant mistakes being made. If anything, most of nVidia's driver issues stem from compatibility issues more than anything else.
IMHO, ATI has the
worst driver dev team in the history of hardware manufacturers. And Matrox have the best driver dev teams, bar none. I am on the dev team for all major hardware manufacturers and I deal with them on a fairly regular basis.
Sure, they [ATI] don't jump up and get right on something I report with the same enthusiasm as they would if Carmack called. And the reason for this is clear: my games are not mainstream enough to warrant it. Nevermind the fact that EACH and EVERY bug I've reported has been VALIDATED and CONFIRMED, then later fixed.
Example #1: When I reported a problem to them, they NEVER fixed it. But as soon as the same problem popped up on GTA3,
this is the result. I reported that problem exactly 26 days (yes, I keep very accurate email logs) before I heard back from the head of ATI dev relations on 06/20/02. I downloaded that patch, peeked at it and discovered that it only replaces a DLL. They could've fixed this back when I reported it. They didn't. I then poked at the driver under a debugger and of coure discovered that
exactly what I told them the problem was and how to fix it, is exactly what they did.
Example #2: Due to the massive sizes in my games, the Z buffer is not large enough to store it. I use a W buffer predominantly. Even that doesn't have the ranges I need, so I have my own unique technology which handles Z/W buffer partitioning
on-the-fly. On one fine morning, they flat out broke it. I reported it to them. They said they'd look into it. They never fixed it until the same problem cropped up in Morrowind as seen
here.
As to what I mentioned above about not giving some games fix priority, here is an excerpt from one of the dev relations guys. Its no secret and doesn't contain anything confidential. Draw your own conclusions and you'll see why I'm pissed about their driver development.
Derek,
I've been going through various angles trying to get people working on the bugs. The big holdup is that other critical showstoppers keep popping up and the promised assignments of the bugs gets pushed back further and further. It's hard for the driver team to justify assigning someone to a problem for a single game when getting a driver certified or fixing an OEMs bug is on the list as well. That's the straight up goods for you as requested. If you have an OEM testing your game and finding this bug then there's a better chance it will get fixed quicker, that's just a generalization and not specific to your game to be certain.
At other times (and if right now as I type this), I've had to go through hoops to put in workarounds in my rendering pipeline for blatant ATI bugs. I do this by having to query the board and writing code that does an op differently on ATI drivers in order to workaround bugs. One such example is with the ground plane. The ATI drivers have a problem with (layman speak coming up, since I don't want to confuse you non-dev folks with tech speak) mapping a texture to the same co-ord. This is required for detail texturing. Standing on the ground in BCM (ground zero) where your POV is close to the ground (standing, you are 6' tall, crouched you are about 5' tall), the ground plane would flicker on/off. Step into a vehicle or fly off in a craft (which increases your elevation) and the problem goes away.
Did they fix it? Nope. I had to workaround it. And in the end, the conclusion was that the drivers just
cannot be fixed!!!!
I swear, I have a mass of special code with spurious dabs of ZBIAS exclusions. Here is what I got from them in the end
Hi Derek,
I just finished corresponding with the driver team on the ground flickering issue and it comes down to a z-buffer precision limitation. The workaround the suggested is essentially what you've already done, to find ZBIAS values that work for you. I know it's not an optimal solution but in order to find a specific workaround for your game in the driver will cause problems in other applications most likely. The driver team now considers this a closed issue so I'm pushing onwards to the specular and w-buffer bugs.
The problem here is NOT (as I've said before) with the dev relations folks (who sent the above), who are the buffer between us and the driver dev team. Its the driver dev team and the lead in that dept who gets to decide what gets fixed, when and when a driver fix is released to us devs and then the public. If Carmack picked up the phone and told them to fix a specific problem he was having, I can almost 100% guarantee you that ALL work in the dev dept will come to a screeching halt until its fixed. What happens in this process? Us lower dev folks and naturally the gamers, end up waiting in line - and seemingly for weeks and sometimes months on end.
Does this change my opinion that the next-gen ATI boards (8500, 9700 ...) are not lackluster as some would like to think? Not by a long shot!! But until they get better at driver development, frequency of driver fixes/releases and actually paying attention to the problems of ALL game devs, they are
never going to shake this bad rep they have. Ever.
Right now, I have 4 of 8 dev machines here in my office, running an ATI board. My primary machine is hosting a 9700 PRO. And thats not because if there's a bug in the card I want to be the first to know about it. Its because I really, truly like these boards. Prior to this board, my primary machine had an 8500. I have a bunch of nVidia and Matrox boards around here as well, with my primary gaming rig currently hosting a Ti4600.
I don't care if ATI takes the #1 spot. I don't care if nVidia loses their spot like 3Dfx. Frankly, I don't give a shit if they all go out of business (good and talented people can always find work in this industry). All I care about is that whoever is developing mainstream video boards puts out products that work and that they put more emphasis and money on
driver development than they do on marketing.
==========
It's my understanding that the 9700 drivers are an entirely different code base than previous ATI drivers. Does this accord with your experience?[/quote]
Thats pure and utter
rubbish. Where'd you hear this particular piece of misleading marketing goobledegook?
And I have no problems proving it. Quite easily actually; and thats only because, good, bad or egotistical, I consider myself to be a higher level developer than most. One of
the best there is, in fact. Too bad I'm stuck in a niche and on the
outside of the farce because I'm outspoken, don't take crap from anyone and are voted
...most likely to piss everyone off at the drop of a hat.
THESE 9700 drivers I'm looking at are based on the first generation of the introduced Catalyst driver subset. Which, themselves are from the previous drivers subset but just given a fancy name and consolidated across the OS. Frankly, the whole Catalyst thing, IMO, is just a marketing sham and probably something cooked up by ATI marketing in order to
(a) show some sort of consolidation of drivers
(b) some ridiculous notion of new fancy name = new better drivers
(c) an attempt to take on and mimic nVidia's Detonator series.
In fact, nVidia did the same thing. Go off on a different driver code path, slap the Detonator monicker on it, and called it a day. We've all lapped it up since, and without complaining. Why? Well because the drivers just bloody work. More than can be said for the Catalyst drivers.
Case in point : Wasn't it in the first Catalyst driver release that they released a fix for the fog problem in GTA3? Well, guess what, the only reason
that bug and others was in there to begin with, is because the Catalyst subset were based on (as I pointed out above) on existing driver set. So, even in that first Catalyst release, the fog was broken (as I had reported
weeks earlier).
While I was typing this, I took a break to do a compare on a random DLL driver between the 6118 win2k driver for the 8500 and the 6116 win3k driver for the 9700. Lets put this way, I'm
not fucking amused that the would try to pass of the 9700 drivers as coming from an entirely new code base. Besides, I have
yet to see this claim in print. Does anyone have a link to a site with these claims? If it exists, I'll bet that it came from marketing and not driver dev or dev relations. Then again, stranger things have happened.
Sure it is possible to start from scratch, but to me, starting from scratch and
from a different code base means just that :
starting from scratch and from a different code base. Starting from scratch and from a different code base doesn't mean that you use, e.g. the same code and DLL from control panel or you execute the same branch of code to an op check (e.g. ZBIAS) in the same module at the same location....and
from a module of the same name as the previous subset (i.e. the 8500).
Do the many driver bugs you identified above apply also the the 9700 or 9000 Pro, or are they confined to the 8500 or earlier generations of ATI cards?
It depends. The problems fixed in the 8500, appear fixed in the 9700. The problems still pending on the 8500 are still pending on the 9700. Draw your own conclusions.
Example. I went in and disabled the ZBIAS checks (mentioned in my previous post above) I made for ATI boards (which I didn't have to do for Matrox, nVidia or ANY other board btw) and the problem - again - showed up on the 9700 Pro. You'd think that this is on thing that they'd actually fix in a new revision board. They didn't. So, because the boards primary architecture is true (in some respects) to the 8500, the driver channel remains the same. i.e. they can't fix it. Meanwhile, nVidia, Matrox and every other video board manufacturer in the world, don't have this problem. Is it board architecture or driver problem? Its a driver problem.
I have experience in designing PCBs back from my old days. As such, I know enough to know that this particular ZBIAS problem is at a driver level. That bit they said about not fixing it since it would break another game is true. Why? well because, quite frankly, they botched that particular aspect to begin with and most games have worked around it. To fix it, would probably mean breaking those games. Who cares about Derek Smart's games? Thank God that I was smart enough to find a workaround.
==========
/me peeks from under covers
OK, this horse ain't dead yet, so....
FYI
- They broke multi-texturing in ALL the current 9000/9700 drivers. The version on the CD and the version on the Beta site. I reported it last week. Just got confirmation five minutes ago. And I am assured that they will get a fix out asap
For you developers, let me repeat that and see if it has any impact yet. They broke multi-texturing.
Go back to what I said before How do you break table fog? Such a simple and critical driver component?. Same applies to MT.
These are shots from the upcoming Battlecruiser Generations.
Compare these two identical scenes taken from within my terrain editor
MT normal on 8500
MT broken on 9700 Pro
There are about four MT layers in that scene. The normal terrain + the detail terrain + the site texture all mapped to the same co-ord. As you can see from the broken one, the models are resting on the land (as normal) but because the MT is broken, the site texture (up which the models rest) and the two texture layers upon which the site texture rest, are not mapped. As a result, you can see right through to the water table (since this site in particular is ASL).
And on the GF4 Ti4600
MT on station (ignore that SF marine poser. He's just showing off his new duds
MT on damaged station
MT on destroyed station being rebuilt
- They removed W buffer support from the 9000/9007!! And they don't ever plan on supporting it because, according to them this will de-stabilize the driver and the card would take a significant performance hit
I didn't even know this until I saw tearing artifacts in my game recently, then peeked at the driver CAPS return values and it was telling me to, well, fuck off, I don't support W buffer So I asked ATI and they confirmed it.
So, any game (such as mine) that requires W buffer support, is, well, fucked on the 9000/9700. In the case of my games, there will be some tearing and other artifacts due to the limited resolution/range of their Z Buffer (see next issue). The good thing is that I had the hindsight (in a previous patch update), to fallback to Z buffer if the driver didn't support W buffer (which all next gen cards support btw).
Let me explain the impact of removing W buffer support from a card. They literally put the card (in this aspect) back in the realm of legacy 16 Bit cards, some of which, in fact, did support a W buffer. I guess they think that all games of the future are limited to FPS, RTS and the like - you know, games that don't need such ranges. Expect to see some problems on sims, especially flight sims with large ranges (depending on how the developers handle their buffers).
- The Z Buffer resolution/range is locked at 24 bit. No 32 Bit support. End of story. No discussion.
There you have it.
==========