VGO is Un-Intuitive

Submitted by epreisz on Sat, 11/17/2007 - 03:09.

VGO is Un-intuitive

Intuition can be your enemy when optimizing games. This element of VGO makes it very interesting, yet also somewhat frustrating. VGO is only intuitive when understanding every element of what you are optimizing, which is sometimes very difficult or nearly impossible. This is especially true when video games utilize proprietary hardware and software solutions. Using your intuition involves assumptions. The inability to reliably make assumptions about how your code executes is the bane of optimizing video games.

Simply using a 3rd party’s API and achieving correct results is not a sufficient enough condition to assume we are achieving optimal results. When using a 3rd party’s API or hardware, we must understand the assumptions that the 3rd party developer made while developing there interface. For graphics APIs, these assumptions are not intuitive, and if a programmer doesn’t understand them, it is unlikely that you are using their API efficiently. When we use an API to achieve correct, yet un-optimal results, we are abusing the API.

Hardware developers sometimes design implementations that are unintuitive. Graphics processing hardware can contradict years of knowledge accumulated during traditional software processing. Hardware implementations, aside from the overhead required to set up the hardware, will execute much faster than software implementations.

Write-combine buffers provide an excellent example of how a hardware implementation can change the way we write our software. Dynamic vertex buffers utilize write-combined memory. Write-combined memory does not travel through our cache system like other implementations of memory. Instead, write-combined memory writes to an intermediary buffer, similar to a cache line, called a write-combined buffer.

The write-combined buffer eventually writes to system memory in bursts of batched memory. If we update all 64 bytes of a write-combined buffer, it will write to memory in one burst. If we update only a portion of that memory, it writes in 8 byte increments. Is it intuitive to believe that writing more data in c++ can be faster than writing less? This is the case with write combined buffers. Therefore, if we are updating a vertex buffer using the CPU, it is faster to update all values of a vertex even if they haven’t changed.

Guessing where your bottlenecks and hotspots reside does not work. At least, it does not work well. It is an interesting challenge to look at an application and determine what is the likely performance bottleneck or hotspot using only a visual inspection of the rendered scene. And although you might be able to determine what may be the limiting factor, it is improbable that you can always be accurate without using tools, reviewing the source code, or following a process. Using intuition to determine where bottlenecks and hotspots lie may work sometimes, but not always.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Viagra

LBaPJMD Viagra iqfEOG Buy Cialis Online >:]]

Buy Viagra online

XlkHIS Buy Viagra online LsWavX Cialis AnmQO

Buy Viagra online

Viagra

mnhUYPe Viagra 5392 Ambien VqtNLB Cialis >:]]

Cheap viagra

EuANEf Cheap viagra 0748 Valium 0796 Cialis 7404

Viagra

qWffmI Viagra 8932 Xanax online wvShdO Buy Cialis 5332

Viagra

HnRtPM Viagra TLNQUt Phentermine FciIX Buy Cialis 5622

Cialis

kxGhaAY Cialis %-[[[ Buy Viagra 3832 Ultram fCeRmv

Xanax online

UBtRsoZm Xanax online 9469 Cialis 5080 Buy Phentermine =-] Buy Valium TZmoxY Viagra 1878 Ambien 8]]]

Viagra

Valium

GLTtLL Valium >:-[ Viagra IWMYJH Cialis 9367 Buy Ambien ZnRBc Buy Phentermine HirFi Cheap Xanax wDcbSG

Buy Tramadol

EKjdnWQ Buy Tramadol >:-OOO Phentermine online 0300 Buy Xanax >:-OOO

Buy Viagra

SdpZYzBR Buy Viagra 2851 Buy Cialis %-[[[

Viagra

adYgwnhU Viagra fcEfol Cialis fWCFCr

Buy Viagra online

aBSqsV Buy Viagra online Yzxor

Buy Cialis Online

Cheap Valium

Cheap viagra

Viagra

Cheap Ambien

Buy Viagra online

Viagra

oFFshW Viagra Cialis

Phentermine online

Viagra

Xanax

Cheap viagra

Cheap Phentermine

Viagra

iJRZqfD Viagra Buy Cialis

Valium

Buy Viagra

Phentermine online

Cheap viagra

Buy Phentermine

Buy Viagra online

Cheap viagra

Cheap Valium

Cheap Phentermine

Cheap viagra

Valium online

Buy Viagra

Viagra

Valium

Viagra

sQuZPC Viagra Cialis

Buy Viagra online

Phentermine

ATzFqlo Phentermine Xanax

Buy Viagra online

Buy Viagra

Cheap viagra

Cheap Xanax

Cialis