- System -> CPU to GPU and multithreading
- Application -> game code
- Microcode -> lowest level (tied very closely to hardware)
Optimizations should start at the higher level and work way down. Microcode optimizations can be benefital but will only work with certain configurations (good for consoles, not for PCs).
If GPU is > 90% utilization, should look for a GPU bottleneck first, if lower then CPU (app code, driver, etc) should be looked at.
PerfHud (tool from Nvidia).
- In version 6 of this tool, no special driver is needed (retail drivers have instrumenation hooks already in place).
- SLI Optimizations can be discovered with this tool
- API Call Data Mining (both in tool and export to own data analysis offline)
- Shader Visualization / Texture Visualization
- Hot key mapping to trigger user defined options (for debugging).
The demo shown was Marble Blast Ultra (pc version). There were optimizations shown.
Next demo was with Crysis.
- Programmers should start putting PerfMarkers in their code now. These will help later.
- API Time Graph is a new feature in beta
- Perf hints (single and SLI) are given
- Subtotals in Frame Profiler
- Break (_int3) on draw calls (new feature)
- Support for 32bit apps on 64bit OS (was not previously supported natively by driver)
There were some OpenGL tools discussed.