Video memory mysteries

Originally published 2002 in Atomic: Maximum Power Computing
Last modified 03-Dec-2011.

 

Video cards with 64Mb of memory on them are common items these days. 64Mb of very speedy Double Data Rate memory, even. The (relatively) cheap GeForce4 MX 440 uses DDR memory with a doubled 200MHz default clock speed; that's the same speed as the memory on the GeForce2 Pro and the GeForce3 Ti200.

Current high end cards - your top-flight Radeons, your full GeForce4s - have 128Mb of memory.

Which raises the question - why?

Do you need that much?

Working out how much memory a given display mode needs for 2D video purposes is easy. Screen width in pixels times screen height in pixels times bits of colour data per pixel equals bits in the frame buffer - the block of memory that the graphics card feeds to its digital-to-analogue hardware to create the monitor image (or which the graphics card just massages into a digital data stream, if you're one of those yuppies with digital DVI screens).

If you're running your PC in 1600 by 1200 resolution, with 32 bit colour, then that's a total of 61,440,000 bits for the whole display. Which is 7,680,000 bytes, which is 7,500 kilobytes, which is about 7.32 megabytes. It's not 7.5 megabytes, because there are 1024 bytes in a kilobyte and 1024 kilobytes in a megabyte. This is something that marketing people conveniently forget when they're telling you how big hard drives are. But I digress.

If you're using "double buffering" (more informatively referred to as page flipping) - and, today, you almost certainly are - then that doubles this memory requirement. Double buffering renders the upcoming frame into another area of memory from the frame buffer, so the incoming data doesn't affect the currently-displayed frame.

Even at 1600 by 1200, though, 16Mb is still plenty for double buffered 2D video. Heck, it's enough for triple buffering, if you drop your resolution to 1280 by 960.

Full Scene Anti-Aliasing (FSAA) can eat a lot more memory. Basically, all flavours of FSAA render more pixels than they have to, and then average them out to give a final image with smoother diagonal edges. Jaggy diagonals look bad enough in still frames; they look even worse when there's animation going on, causing the stair-steps to "crawl" up and down the lines.

FSAA doesn't change the amount of memory needed for the final display buffer or its double- or triple-buffered cousins, but it adds yet another buffer, for the intermediate higher resolution data, that's two or four times as big as any of the others.

But, assuming 2X FSAA and double buffering, we still haven't used up all of the memory on a humble 32Mb video card.

All of the rest of the modern graphics card memory budget is taken up by 3D data.

Some of the 3D data is the Z-buffer and stencil buffer. The Z-buffer is used to determine what's in front of what in the rendered scene; the stencil buffer is another piece of unnecessary-pixel-rendering-avoidance technology. Current chipsets are able to make these buffers much smaller than the final display buffer.

Depending on your video card and the... software... (coughgamecough) you're running, you may also be using a significant amount of the card's memory for vertex data - low-level rendering information for objects in the game world - and related purposes. Modern video cards with lots of hardware rendering capability can handle all sorts of serious rendering tasks that'd otherwise fall to the CPU; it doesn't take a ton of memory to do them, but it takes some, and the card always uses some of its memory as scratch space anyway.

A quicker and dirtier strategy, which works on dumber cards, is to dump lots of pre-calculated vertex data in the card's memory so it can just display the correct pre-calculated version of an object for each frame, without having to calculate anything itself. That takes more RAM.

The real RAM hogs, though, are textures and their relatives - light maps, bump maps, and so on. All of the stuff that goes on the surfaces of objects so they don't have the construction-paper-model look of relatively-old-school 3D games (objects in truly old-school 3D games, of course, have no surfaces at all).

The amount of memory textures take up varies massively, depending on how many textures are actually needed at once, and what resolution they are, and what colour depth they are (they don't have to have the same bit depth as the final display), and whether they're compressed or not in the card's memory. You can change all of this stuff, and so there are umpteen possible texture memory loads for any given game.

If you blow your memory budget - use up more video RAM than your graphics card has - AGP graphics cards can use "AGP texturing" - allowing system memory to be used for textures and accessed quickly, over the AGP bus.

Unfortunately, AGP isn't actually fast enough to make this practical. AGP 4X is the fastest AGP flavour in common use as I write this; it has a peak bandwidth of about one gigabyte of data per second. The DDR memory on a GeForce4 MX 440 moves six gigabytes per second.

AGP 8X, which is just trickling onto the market now, doesn't make a big difference to this. AGP texturing is always going to suck compared with on-card texture memory.

It's possible to use more than 64Mb of video memory, with current software. FSAA in high resolutions, along with a decent slab of high detail textures, can push up the RAM usage enough to do it.

But since most 21 inch monitors don't have enough phosphor dots to clearly display 1600 by 1200 in the first place, and smaller screens are even worse, adding FSAA at those resolutions doesn't make much of a difference. People do it, but there's not much reason to.

Similarly, pro 3D rendering software can make use of a ton of video memory if you're previewing your troupe of hairy spiders all mapped with different high-res Old Masters and all juggling shiny teapots mapped with different high-res Belgian whoopee cushion erotica. That scene will rotate faster in your preview window if you've got more space for textures on the video card.

For most people, though, 64Mb is still plenty.

As I write this towards the end of 2002, some current games have enough texture detail to break a 64Mb budget even without FSAA, if you crank all of the quality sliders to max. Games are written for the most popular hardware, not for the most powerful hardware, though. So you still won't find anything that won't run fine on a 64Mb card; worst case scenario, you'll just have to reduce the texture detail one or two notches from the maximum setting.

If you're not doing some odd pro-3D job that involves tons of vast textures, and you don't have a display that'll let you see the difference between FSAA and non-FSAA in Extreme Resolution, then staying under 64Mb is easy, and will stay that way for a while yet.

Other columns

Learning to love depreciation

Overclockers: Get in early!

Stuff I Hate

Why Macs annoy me

USB: It's worth what you pay

"Great product! Doesn't work!"

The virus I want to see

Lies, damned lies and marketing

Unconventional wisdom

How not to e-mail me

Dan's Quick Guide to Memory Effect, You Idiots

Your computer is not alive

What's the point of robot pets?

Learning from spam

Why it doesn't matter whether censorware works

The price of power

The CPU Cooler Snap Judgement Guide

Avoiding electrocution

Video memory mysteries

New ways to be wrong

Clearing the VR hurdles

Not So Super

Do you have a license for that Athlon?

Cool bananas

Getting rid of the disks

LCDs, CRTs, and geese

Filling up the laptop

IMAX computing

Digital couch potatoes, arise!

Invisible miracles

Those darn wires

Wossit cost, then?

PFC decoded

Cheap high-res TV: Forget it.

V-Pr0n

Dan Squints At The Future, Again

The programmable matter revolution

Sounding better

Reality Plus™!

I want my Tidy-Bot!

Less go, more show

In search of stupidity

It's SnitchCam time!

Power struggle

Speakers versus headphones

Getting paid to play

Hurdles on the upgrade path

Hatin' on lithium ion

Wanted: Cheap giant bit barrel

The screen you'll be using tomorrow

Cool gadget. Ten bucks.

Open Sesame!

Absolutely accurate predictions

The truth about everything

Burr walnut computing

Nothing new behind the lens

Do it yourself. Almost.

The quest for physicality

Tool time

Pretty PCs - the quest continues

The USB drive time bomb

Closer to quietness

Stuff You Should Want

The modular car

Dumb smart houses

Enough already with the megapixels

Inching toward the NAS of our dreams

Older than dirt

The Synthetics are coming

Pr0nBack!

Game Over is nigh

The Embarrassingly Easy Case Mod

Dumb then, smart now

Fuel cells - are we there yet?

A PC full of magnets

Knowledge is weakness

One Laptop Per Me

The Land of Wind, Ghosts and Minimised Windows

Things that change, things that don't

Water power

Great interface disasters

Doughnut-shaped universes

Grease and hard drive change

Save me!

Impossible antenna, only $50!

I'm ready for my upgrade

The Great Apathetic Revolution

Protect the Wi-Fi wilderness!

Wi-Fi pirate radio

The benign botnet

Meet the new DRM, same as the old DRM

Your laptop is lying to you

Welcome to super-surveillance

Lemon-fresh power supplies

A>B>C>A!

Internet washing machines, and magic rip-off boxes

GPGPU and the Law of New Features

Are you going to believe me, or your lying eyes?

We're all prisoners of game theory

I think I'm turning cyborg-ese, I really think so

Half an ounce of electrons

Next stop, clay tablets

A bold new computer metaphor

Won't someone PLEASE think of the hard drives?!

Alternate history

From aerial torpedoes to RoboCars

How fast is a hard drive? How long is a piece of string?

"In tonight's episode of Fallout 4..."

How hot is too hot?

Nerd Skill Number One

What'll be free next?

Out: Hot rods. In: Robots.

500 gig per second, if we don't get a flat

No spaceship? No sale.

The shifting goalposts of AI

Steal This Education

Next stop: Hardware piracy

A hundred years of EULAs

The triumph of niceness

The daily grind

Speed kings

Alt-tCRASH

Game crazy

Five trillion bits flying in loose formation

Cannibalise the corpses!

One-note NPCs

Big Brother is watching you play

Have you wasted enough time today?

The newt hits! You die...

Stuck in the foothills

A modest censorship proposal

In Praise of the Fisheye

Filenames.WTF

The death of the manual

Of magic lanterns, and MMORPGs

When you have eliminated the impossible...

Welcome to dream-land

Welcome to my museum

Stomp, don't sprint!

Grinding myself down

Pathfinding to everywhere

A deadly mouse trap

If it looks random, it probably isn't

Identical voices and phantom swords

Boing!

Socialised entertainment

Warfare. Aliens. Car crashes. ENTERTAINMENT!

On the h4xx0ring of p4sswordZ

Seeing past the normal

Science versus SoftRAM

Righteous bits

Random... ish... numbers

I get letters

Money for nothing

Of course you'd download a car. Or a gun!

A comforting lie



Give Dan some money!
(and no-one gets hurt)