Gamecube's memory bandwidth

Quote:
Character textures go up to 256x256x32

Surely you aren't telling me people make opaque maps in 32bit -_- I mean I know in PC world people are downright trying to waste memory as much as possible, but that's bordering on the absurd...

*Snicker*, I was going to say the same thing... :p
 
Surely you aren't telling me people make opaque maps in 32bit -_- I mean I know in PC world people are downright trying to waste memory as much as possible, but that's bordering on the absurd...

Character textures in the game are up to 256x256x32 in size. I'm not trying to eyeball on this one, Sac comes with a full editor/level builder. Accessing 24bit textures has a sizeable performance hit on nV hardware for the PC(x0%).

And the actual amount of texels accessed (with mipmaps and all) is closer to 1/10th of that. (1/30th if you are willing to believe 3dlabs PR ) - which is what is relevant for what Squeak brought up - per frame texture access.

With eight to sixty four samples per texel, how are you going to bring the texel access down to one tenth of that? Or are you saying if you ran the game like it was 1997 and used bilinear it would be?
 
Character textures in the game are up to 256x256x32 in size. I'm not trying to eyeball on this one, Sac comes with a full editor/level builder.
Our game conversion tools fully support textures up to 1024x1024x32, that doesn't mean that's what we use for opaque objects -_- And if some people DO use that... :? well I suppose it still beats wasting megabytes of memory on status strings... :p

Accessing 24bit textures has a sizeable performance hit on nV hardware for the PC(x0%).
I just don't buy that as a reasonable excuse.
Particularly since you said this was a y2k game, and GF2 class hardware takes massive fillrate hits with 32bit maps of that size, especially if you enable any filtering fancier then bilinear...
If performance is your excuse, you would use compressed maps.

With eight to sixty four samples per texel, how are you going to bring the texel access down to one tenth of that?
Just by fetching textures in units of mipmaps, the texel fetch is reduced to ~1/5th (more if your maps repeat less) - going by real world experience, I didn't use some fancy math to get that number ;)

The actual fetch done by rasterizers is in units much smaller then that, so the real access number is only gonna be lower yet. While it's true it would change with filtering used, 1/10th is probably even conservative for average case. (after all, PRLabs says it's 1/30 :D )
 
Our game conversion tools fully support textures up to 1024x1024x32, that doesn't mean that's what we use for opaque objects -_- And if some people DO use that... well I suppose it still beats wasting megabytes of memory on status strings...
You can export existing textures into editing apps, and I was wrong about the highest resolution, they use 512x512x32 for their largest textures(I used to try to avoid using them as they refuse to work without a 64MB board, been a while since I used Scapex). I'm not sure why you keep specifying opaque objects?

Particularly since you said this was a y2k game, and GF2 class hardware takes massive fillrate hits with 32bit maps of that size, especially if you enable any filtering fancier then bilinear...
If performance is your excuse, you would use compressed maps.

Compression leads to artifacts, particularly with NV1X line of hardware which uses 16bit interpolation when utilizing DXTC1(nasty banding). Not only that, but in 2K the majority of hardware in terms of installed base didn't support DXTC so the only way you could handle compression was to check for DX caps and then compress them at load time, which given the size of maps in Sac would be a lengthy process(or they could have gone the UT route and had another CD including nothing but pre compressed textures, although that would have brought the install to be quite hefty, likely the largest to date by 2K standards) .

As far as performance, Sac brought pretty much everything to its knees in 2K, even the GF2Ultra wasn't stellar in its performance with the game(although it wasn't poor, 60FPS average was certainly not viable with all details on). It is a strategy game however, so performance wasn't as big of an issue as it was with the other major, in graphics term, 2K title- Giants. By default Sac detects my rig as ideally running 800x600x16 bilinear(it has built in utility like most of the newer games do) while I'm running a GHZ Athlon, 512MB RAM and a GF2Pro450(pretty much an Ultra, 64MB 230/450).

The actual fetch done by rasterizers is in units much smaller then that, so the real access number is only gonna be lower yet. While it's true it would change with filtering used, 1/10th is probably even conservative for average case.

If you compare anisotropic(w/tri) to bilinear, how would you not increase the fetch rate by at least a factor of four, or are you taking cache in to account excluding fetches?
 
No, you really don't. Using Sacrifice as an example you have three texture layers(base, light, detail or Dot3) under normal conditions. Character textures go up to 256x256x32, that's not bg or sky, simply characters(and those aren't one texture per character, each body segment has its own texture). You can have over fifty characters on screen at once. If you had no texturing at all for any of the background, you would still chew up over 20MBs worth of textures. For the backgrounds, on top of the three texture layers there are also 'scars' which include both burn marks from spells and blood from kills. You can end up with five texture layers easily over everything in the game. I'm not using some bleeding edge game here either, Sac came out back in 2K. The game won't even allow you to turn the texture detail up unless you have a 64MB gfx board, it still shows improvement running 128MB too.

PCs and xbox obviously have very similar texturing capabilities, just look at UT 2 and UC 2003. Therefore wouldn’t it be safe to conclude that PCs must have around the same per frame bandwidth for textures as xbox? A very optimistic guess would be that xbox has around 2.0Gb for the same purpose as the EE to GS bus on PS2, or about 20Mb per frame.
Granted PCs has bigger buffers than xbox, but the effect that would have in masking lower resolution textures on xbox is minimal, although it would explain what PC 3D cards does with the extra bandwidth (10.4Gb on geForce 4 versus 6.4 on xbox).
 
PCs and xbox obviously have very similar texturing capabilities, just look at UT 2 and UC 2003. Therefore wouldn’t it be safe to conclude that PCs must have around the same per frame bandwidth for textures as xbox?

The PC has significantly more bandwith for texture access, at leat comparing the best to the best. The R9700Pro is just under 20GB/sec just for graphics operations while the XBox has 6.4GB/sec for the entire system. Obviously not all of that is utilized for texturing alone, but framebuffer and geometry utilization is still going to leave you more bandwith for texture access then the XBox has total. The XBox has 6.4GB/sec total system bandwith while my rather old GF2Pro has 6.7GB/sec.

You do have the option of DXTC1 on both platforms giving you 6:1 compression, but the PC has this edge combined with far greater bandwith and memory.

A very optimistic guess would be that xbox has around 2.0Gb for the same purpose as the EE to GS bus on PS2, or about 20Mb per frame.

I would say the Box is likely closer to double that figure, around 3.5-4GB/sec. The CPU in the Box is limited to ~1GB/sec, it isn't going to be chewing up that much bandwith.

Comparing UC to UT2K3 may not show that big of a riff, wait until Mafia hits the Box. I would wager a significant amount that the texture detail will be reduced enormously(it has to be).
 
A very optimistic guess would be that xbox has around 2.0Gb for the same purpose as the EE to GS bus on PS2, or about 20Mb per frame.

I would say the Box is likely closer to double that figure, around 3.5-4GB/sec. The CPU in the Box is limited to ~1GB/sec, it isn't going to be chewing up that much bandwith.

Comparing UC to UT2K3 may not show that big of a riff, wait until Mafia hits the Box. I would wager a significant amount that the texture detail will be reduced enormously(it has to be).

The DDR memory in xbox has a theoretical bandwidth of 6.4 Gb/sec. but from what I’ve heard, real world performance is around 4.0 Gb/sec. because the double data rate access doesn’t work every time.
From the 4.0 Gb you have to subtract CPU bandwidth (which you probably are going to want to use as much as you can), frame and Z-buffer R/W, sound and general latency which is the highest of all the 4 nextgen consoles. So 2.0 doesn’t seem to low for me.

If Mafia represents state of the art in PC texturing I ain’t to impressed :)
The textures in the year old HALO IMO have much more detail and depth than Mafias.
 
Back
Top