PDA

View Full Version : ATi frame buffer read speeds



The Khan Artist
June 15th, 2003, 15:21
Well, Pete just updated his PSX GPU plugins with a special "ATi release", and here is an exceprt from the changelog:


# Now I started up several psx games which are known to use framebuffer textures/framebuffer access. Nice: in OpenGL the framebuffer texture option works very fast on ATI cards (at least on the R9700 Pro). But the framebuffer access (reading vram to system memory) has an horrible speed... at least 5 times slower than my old GF3. I've tried all kind of different color formats, and read through the ATI OpenGL extension specs, but no luck: slow. So I decided to do a new 'special game fix' (I should rename that section into 'special hardware fixes', it seems), calling it 'Mixed software FB access'. What does it do? It minimizes the real vram reading to a minimum, whenever the 'framebuffer access' modes 1 (reads), 2 (moves) and 3 (read&moves) are used, and uses software drawing instead. Unlike the FB access mode 4 (full software drawing) it will not use the soft funcs all the time, only if they are really needed, when a psx game is doing such special effects.

# Then I moved on to the D3D plugins... didn't expect much problems, but then I noticed an horrible slowdown with 'FB access' and even with 'FB textures'. Well, I did know that my D3D code to emulate such effects were optimized for older (DX6/7) hardware, but I never suspected that newer ATI cards were choking that bad at it. Anyway, since the new OGL plugin is working really nice on new cards, I didn't change anything with the D3D code, I just added the new 'Mixed software FB access' special game fix as well. Therefore: if you want to play psx games with my plugins with an ATI card, I suggest to use the OGL plugin. If (for whatever reasons) you want to use one of the D3D plugins, you should at least enable the new fix, and set the 'FB textures' option to 3 (card buffer + software), never to 2 (card buffer).


I thought I read something that with recent driver updates, the Radeon 9700 Pro was about 5 times faster than anything else at copying framebuffer to system memory. So is it really not? Or is Pete doing something wrong?

Tagrineth
July 1st, 2003, 10:03
That's odd. Even the pre-battle swirly effects in some games (Tales of Phantasia and Final Fantasy IX come to mind) stay at 59.9FPS on my Radeon 9500 Pro, using Pete's D3D6 older version. He must be doing something wrong... or maybe it's just one of ATi's famous driver bugs (tm).

Orkin
July 2nd, 2003, 02:43
I've found framebuffer access to be very slow on my Radeon 9500 Pro while working on framebuffer stuff for glN64. I had heard it was faster too, but apparently either recent driver releases slowed it down again, or there never was any truth to it.

The Khan Artist
July 2nd, 2003, 19:14
What drivers do both of you use? My All-in-Wonder 9700 Pro should be in today... :inlove:

nephalim
July 2nd, 2003, 20:38
With my M9 (Radeon 9000 equivalent,) I turned on full frame buffer emulation with Jabo's 1.5.1 while playing Majora's Mask. Not a single smidgen of a performance hit. How exactly does the card pull this off?

The Khan Artist
July 2nd, 2003, 20:44
What drivers?

nephalim
July 2nd, 2003, 23:14
Sorry, should have said, they were the Dell A03 drivers. Guess that doesn't help you much, sorry...

EDIT: The cards can definetely do this, my ATI M4 did decent framebuffer reads with Jabo's 5 (not older), it's just bad driver fever over at ATI. I think the catalyst 3.1 drivers are the best at the moment, at least i've heard that, twice I think? Try Jabo's 5 and turn on frame buffer emulation (turn off emulate clear,) and see what happens. I think it's some special function that Jabo's uses, but i'm speculating.

Tagrineth
July 3rd, 2003, 02:12
Catalyst 3.2 ran perfect, but I haven't tested anything with cat3.4 yet, and I don't have cat3.5 yet. Yay.

flow``
July 3rd, 2003, 02:29
you guys with radeon mobility cards can use catalyst drivers.. u know that right? you dont have to depend on your OEM's to provide them..

http://rage3d.com/#1057069605

nephalim
July 3rd, 2003, 03:19
I have had no issues at all with the Dell drivers so far, and they seem pretty nice, they got all the options and controls for settings that are mobile exclusive.

The Khan Artist
July 3rd, 2003, 16:41
Is there any good place to get old drivers? The DriverHeaven downloads don't seem to be working... and did Omega make a hacked 3.2?

EDIT: Yeah, it seems he did. Now I just have to find a place to download them. :P

EDIT2: Woohoo, found 'em. Me be having fun tonight!

I _am_ going to install 3.4, at least temporarily, so I can check out the nVidia Dawn demo. With the Cat 3.1 that came with my card, it complains about a missing ARB_multitexture extension. And the readme for the nVidia->ATi wrapper says it needs 3.4 anyway.

AlphaWolf
July 3rd, 2003, 18:20
I use the catalyst drivers on my mobility, the 3.2 drivers are absolute shit though. 3.4 and 3.5 *work*, but 3.1 is by far the best.

The Khan Artist
July 3rd, 2003, 19:16
I tried 3.1 with Jabo's D3D6 1.4. I don't know why I chose that plugin, but that's all I had time to try last night.

Framebuffer performance was horrid, and Jabo's plugin refused to do FSAA.

Milkdrop ran vastly better than it ever has before, though. :D

nephalim
July 3rd, 2003, 20:02
No no use Jabo's 1.5, 1.5 had it's framebuffer engine completely rewritten, which is what made framebuffer emulation feasible on my old M4. With 1.4, the performance was horrible.

I think there is some special method for fast framebuffer that needs to be specially coded, for ATi cards.

URAMetroid
July 4th, 2003, 01:41
I tried 3.1 with Jabo's D3D6 1.4. I don't know why I chose that plugin, but that's all I had time to try last night.

Framebuffer performance was horrid, and Jabo's plugin refused to do FSAA.

Milkdrop ran vastly better than it ever has before, though. :D
Did you download the ATI control panel?
And if so, turn off Application preference (for antialiasing), and set your settings for antialiasing, and Jabo's plugin should see antialiasing available.

The Khan Artist
July 4th, 2003, 13:30
Well, I installed the Cat 3.5 drivers (yes, and Control Panel), and this is what I get with Jabo's 1.5.

Take a good look at the yellow fences in Zelda - see how they don't get antialiased? And yet most other surfaces do. Same with aniso.

The Khan Artist
July 4th, 2003, 13:44
Unreal Tourney looks horrid too... some polygons flicker, and there are z-buffer problems with some of the lights.

Using the UTPG Path 451 with the D3D renderer.

The Khan Artist
July 4th, 2003, 14:46
OK, I installed Omega's hacked 3.2 Cats... Unreal Tourney looks almost perfect, except for the fact that it doesn't get FSAA. Nothing does. Jabo's plugin doesn't even detect that my card supports it.

*sigh*

nephalim
July 4th, 2003, 20:45
Your problems lie in the horribly bugged catalyst drivers, but I think you already know that. Try 3.0/3.1

fivefeet8
July 4th, 2003, 21:27
Gotta love ATI's driver support. They fix less things than they break. :rolleyes:

Tagrineth
July 4th, 2003, 21:29
Well, I installed the Cat 3.5 drivers (yes, and Control Panel), and this is what I get with Jabo's 1.5.

Take a good look at the yellow fences in Zelda - see how they don't get antialiased? And yet most other surfaces do. Same with aniso.
Uh... hun, the fences are called 'alpha textures' and those don't get anti-aliased by multi-sampling, ever. Period. Ever played Counter-Strike with AA and looked at the fences?

radTube
July 5th, 2003, 12:01
This thread reminds me of the times when I bought my r8500... except that back then the drivers actually deserved the negative attention. Oh well. I'm glad nVidia at least keeps releasing those bugless drivers of theirs.

The Khan Artist
July 6th, 2003, 04:39
@Tagrineth:

Actually, I've never played Counter-Strike. :D But I'll take your word for the fences. Do you know any articles that explain why this occurs? I always like to be informed about these kinds of things.

And I found a fix for all my UT problems... and then some.
http://cwdohnal.home.mindspring.com/utglr/

Tagrineth
July 7th, 2003, 00:40
This thread reminds me of the times when I bought my r8500... except that back then the drivers actually deserved the negative attention. Oh well. I'm glad nVidia at least keeps releasing those bugless drivers of theirs.
Um. Dude. That statement deserves a beautiful bitch-slapping. "Bugless nVidia drivers"? Not by a very, very long shot.

Even while Carmack was trumpeting the nVidia "Golden Standard" drivers, people had lists of which Detonator versions were most compatible with which games.

And Carmack's latest statement was that nVidia's drivers were "A LITTLE BIT" better than ATi's.

Hell, I think even nVidia knows how "bugless" their drivers are, considering a new Detonator set gets released/leaked every other week... if they're so 'bugless' why so many revisions?


@Khan Artist: I can tell you exactly what's wrong with Alpha Textures. Multi-sampled AA is designed to look for polygon edges. There are rarely polygon edges in alpha textures (the whole point is they alleviate the need for mass polys). Ergo multi-sampling can't detect the aliased edges, and doesn't anti-alias them. Super-sampling (ATi R2x0, nVidia NV1x, 3dfx VSA-100, SiS 315 and lower, PowerVR series 2 and 3) over-samples the entire scene (3dfx could do 'targeted' AA but it required some extra code) and thus does catch the textures.

The Khan Artist
July 7th, 2003, 00:45
Um. Dude. That statement deserves a beautiful bitch-slapping. "Bugless nVidia drivers"? Not by a very, very long shot.


I think he was being sarcastic.



@Khan Artist: I can tell you exactly what's wrong with Alpha Textures. Multi-sampled AA is designed to look for polygon edges. There are rarely polygon edges in alpha textures (the whole point is they alleviate the need for mass polys). Ergo multi-sampling can't detect the aliased edges, and doesn't anti-alias them. Super-sampling (ATi R2x0, nVidia NV1x, 3dfx VSA-100, SiS 315 and lower, PowerVR series 2 and 3) over-samples the entire scene (3dfx could do 'targeted' AA but it required some extra code) and thus does catch the textures.

OK, that makes perfect sense. Thanks.

Wouldn't it be possible to, say, perform edge detection on the texture, then clip and tesselate? This would be a lot of work on the software side, but modern video cards could more than handle it.

Remote
July 7th, 2003, 00:46
Indeed, it's all about reputation. In the common eye, when ATI releases new drivers it's to fix what's broken and when nVidia does the same thing it's because they found a way to squeese out a little bit more performance...

Tagrineth
July 7th, 2003, 01:12
Wouldn't it be possible to, say, perform edge detection on the texture, then clip and tesselate? This would be a lot of work on the software side, but modern video cards could more than handle it.

Video cards, yes. Processors (which would need to do that texture edge-check), no.

The Khan Artist
July 7th, 2003, 01:31
Yeah, I guess it would be rather CPU-intensive... but the results could be cached.

ector
July 7th, 2003, 01:44
khan, of course that would be possible, but it would take a tremendous amount of work to do, and I doubt the gfx plugin authors care so much about a few fences =)

The Khan Artist
July 7th, 2003, 02:29
I know, but can't a guy dream? :getlost: :naughty:

Tagrineth
July 7th, 2003, 08:05
Yeah, I guess it would be rather CPU-intensive... but the results could be cached.
You can't cache it. The moment you move it'd have to be dumped and re-tested... because what if the texture animates? Or shifts in any way whatsoever?

nephalim
July 7th, 2003, 09:45
It would be a ridiculous performance trade-off for a few fences...it'll be incorporated into the GPU's of new cards soon...or not...

radTube
July 7th, 2003, 10:08
I think he was being sarcastic.


I was being sarcastic... gotta remember those smilies next time :rolleyes:.

nVidia is like the micro$oft of the video card industry. They couldn't care less about their customers. They actually seem to treat their customers as just another necessary evil. Driver-guru Omegadrive's take on the subject: http://www.omegacorner.com/

Sorry about going OT once again...

The Khan Artist
July 9th, 2003, 21:18
OK, OK, then is it possible to simply make the 9700 do supersampling?

Tagrineth
July 9th, 2003, 21:50
Not currently.

ector
July 10th, 2003, 00:00
Oh yes you could with some tricks.. for example, render at 4x resolution to a texture, and use blending or a pixel shader to downsample.. Or render four times with slight offsets and use a pixel shader to average them.

Tagrineth
July 10th, 2003, 00:44
ector, you do realise that looks like absolute crap compared to real AA? Hell, it looks like absolute crap period...

Not to mention it'd MURDER performance, even more so than native 4x supersampling would.

Edit: Easier way to do "4x Supersampling", create four render targets each at a slight offset and blend them with a pixel shader... but again, it'd either look really bad and/or be really impressively slow.

ector
July 10th, 2003, 10:01
Edit: Easier way to do "4x Supersampling", create four render targets each at a slight offset and blend them with a pixel shader... but again, it'd either look really bad and/or be really impressively slow.

Well that's what I mean you would do.. It would produce the same results as 4x supersampling which at leasts smoothes stuff out a little, and the new radeons are ridiculously fast so speed wouldn't be much of a problem since what we're talking about is emulating the N64 =)

Tagrineth
July 10th, 2003, 21:43
ector, the new Radeons are ridiculously fast, yes, but you're talking about 4X or more frame buffer size and 4X the fill rate requirement, plus a surely somewhat complicated weighted pixel shader to merge them, and 4X the bandwidth requirement. The FPS would be divided by slightly more than 4. Even on the latest Radeons, that's kinda slow. It just isn't worth it.

Instead we could go faster and let the graphics plugin sort the polys the same way the N64 does and then use Line AA, same as N64. It'd have a better result and it'd be faster. The latest Radeons support line AA (though it needs to be enabled in a tweaker).

ector
July 10th, 2003, 23:11
Sure, but that still wouldn't solve the alphatest-textured fences, which was the whole point of the entire discussion =)

Tagrineth
July 11th, 2003, 01:28
Er, duh, I'm retarded. Sorry!

Remote
July 11th, 2003, 01:32
lol, true although quite educative anyways...