Digit-Life Hardware News
17.05.2008
[01:09] Razer Launches Goliathus Speed and Control Edition Soft Mats
[00:53] Plextor Shrinks New MediaX PC-to-TV Media Player
[00:42] Daily Mailbox
[00:30] Transcend Unveils New V90P USB Flash Drive
[00:23] Microsoft Windows Now Available on One Laptop per Child XO Laptops
[00:18] IBM Research Unveils Breakthrough In Solar Farm Technology
[00:10] Creative Unleashes Sound Blaster X-Fi Titanium Fatal1ty Professional and Champion Cards
15.05.2008
[16:16] Sharp Achieves the Highest Power Density for Direct Methanol Fuel Cells (DMFC)
[16:10] Elpida Offers First DDR2 SDRAM With x32-bit I/O Configuration
14.05.2008
[21:13] Daily Mailbox
Your link here

Home Home
Latest News | Platform | Coolers | HDD/DVD | Video | Sound | Network | Imaging | Mobile
Monthly | Rightmark Tools | Search | Forum | Mailing | Links | Advertise | About Us
Digit-Life Articles Feed    Digit-Life News Feed

Latest Articles:

Gigabyte MA78GM-S2H Motherboard on AMD 780G Chipset (Socket AM2+)

NVIDIA GeForce 8800 GT Performance Scaling in Modern Games

Sapphire PURE CrossFireX 790FX Motherboard on AMD 790FX Chipset (Socket AM2+)

Passively Cooled Gigabyte GeForce 9600 GT 512MB

i3DSpeed, April 2008






NVIDIA PerfKit 5: New Tools for 3D Developers

Debug Console

Debug Console is the simplest PerfHUD mode. Debug Console allows developers to look through a list of diagnostic error messages and warnings of DirectX debug libraries, a list of resource creation events, as well as additional warnings of PerfHUD itself, and messages of a user application displayed by the OutputDebugString function.

This mode allows to clear the window after each frame to see messages for the current frame only. It may be useful in case of many errors and warnings. You can also disable gathering data with the Stop Logging option. There are no major innovations in PerfHUD 5 here. They are not necessary, this mode does its job hundred-per-cent.

Frame Debugger

Frame Debugger is one of the most impressive PerfHUD modes, the render process pauses at the current frame and you can watch it being rendered step by step, one DrawPrimitive call at a time. It helps determine problems with a wrong order of drawing objects. This tool makes it easy to find out why rendering errors appear in the process of rendering a frame. Using the scroll bar below, you can go through a frame step-by-step, which is especially useful for complex scenes with lots of draw calls and several render targets.

Having detected a frame with render artifacts in Performance Dashboard mode, you should switch to Frame Debugger and check whether a scene is drawn in the right order and correctly. As this mode freezes a user application, it has some limitations. For example, Frame Debugger will work correctly, only if an application uses standard system calls QueryPerformanceCounter or timeGetTime. There are also some other limitations, described in detail in PerfKit Documentation.

When you switch to this mode for the first time, you are shown results of the first draw call. Using the scroll bar below or left and right arrow keys on the keyboard, you can browse results of each next draw call. Geometry data used in the current draw function are highlighted with an orange wireframe. Textures are shown in the left field, buffers - in the right. Information displayed for textures and render to texture targets includes an image of the texture and its parameters (texture type: 1D, 2D, 3D, cubic, resolution, filtering method, texture format, a number of mip levels). If a draw call renders to texture targets, its contents are displayed in the center of the screen. With warnings enabled, their list is displayed in the upper part of the screen. When you click any of them, a corresponding DrawPrimitive is called.

The Advanced button will take you to the advanced mode, which offers detailed analysis of each draw call using state inspectors. The scroll bar below is still available in the advanced mode. The other part of the screen is divided into five parts - by the number of stages in a graphics pipe: Vertex Assembly, Vertex Shader, Geometry Shader, Pixel Shader, Raster Operations. Corresponding inspectors allow to browse geometry models, shaders of all types, as well as raster operations for a chosen draw call.



When you choose Vertex Assembly, PerfHUD displays information about the status of a vertex assembly unit in the current draw call. A center of the screen displays a wireframe of the geometry used in this call. There is also a side field with parameters of the draw call, formats of index and vertex buffers, their sizes, etc. In this mode, you can make sure that all geometry data are sent correctly.

In Vertex Shader State Inspector, Geometry Shader State Inspector and Pixel Shader State Inspector modes, the window displays information on the shader code used in a given draw call. It shows the vertex/geometry/pixel program and its constants and textures. The Raster Operations window displays information about ROP operations in the current draw call. It displays a frame buffer format, render state, etc. This inspector will come in handy to check whether alpha-blending works correctly. For example, you can see whether the buffer contains necessary data, if blending does not work correctly.

New options of the Frame Debugger in PerfHUD 5 include rotating a wireframe model and displaying only one draw call instead of all previous ones. A lot of texture types can be visualized: 1D, 2D, 3D, shadow maps, cubic maps, and texture arrays. Another new feature is pop-up tips with texture coordinates and texel color as you move the mouse cursor over textures and render targets:



But the most interesting feature is the Shader Edit-and-Continue mode, which allows to edit shaders and execute them. You can change programs in HLSL and .fx formats for DirectX 9 and DirectX 10 programs, it concerns all shader types: vertex, geometry, and pixel ones. You can edit shader code in a usual way - in special text fields, where you can search for text, switch between original and modified codes, as well as restore the original program. So it's much easier to detect errors and to optimize 3D applications. You don't have to quit from an application and run it again in order to change a single line in shader code. Now you can do it in a visual way.



By the way, there is a similar mode, which allows to edit render states, called "Render State Edit-and-Continue". It's similar to editing shaders - you can change render states, switch between the original and modified sets.

Alexei Berillo (sbe@ixbt.com)
October 19, 2007




Latest News | Platform | Coolers | HDD/DVD | Video | Sound | Network | Imaging | Mobile
Monthly | Rightmark Tools | Search | Forum | Mailing | Links | Advertise | About Us

Copyright © by Digit-Life.com, 1997-2008. Produced by iXBT.com
Design by Explosion