Clootie graphics pages

Home | Articles | Projects | Delphi | C++Builder | TMT pascal | Links | About

Delphi resources - DirectX tools

Info field below contains Name / Date / Size with links to file and description field contains some notes about sample and screenshot from run-time.

Some DirectX tools implemented in Delphi

Info Description
(executable - 2,241Kb)
(source - 440Kb)

Brilinear - simple ATI Brilinear tool

Click to see full-size screenshot
This simple tool was created to compelent mine article about ATI and NVIDIA Brilinear filtering published on iXBT (English version, Russian version). With help of this tool any owner of ATI-based GPU starting from RV350 (i.e. RV350, R420 and up) can observe differences between "normal" trilinear filtering and "brilinear" filtering implemented by ATI.

Better description of what is displayed with help of this utility can be found in article referred above.
(executable - 317Kb)
(source - 339Kb)

KernelDetect - kernel detection of texture filters

Click to see full-size screenshot
This tool was created to visualize texture filtering kernels used by GPU's when performing bilinear, trilinear or anisotropic filtering. By default it visualizes filtering kernel by showing texels from texture fetched to get final color of texture sample. But by request this tool can show numeric representation of weighting matrix used to filter pixel color form texture texels.
(executable - 314Kb)
(source - 357Kb)

ReactorCritical Aniso tester / iXBT texture filtering tester

Click to see full-size screenshot Click to see full-size screenshot Click to see full-size screenshot

This tool can be used to measure texture filtering speed of GPU in various conditions: bi/trilinear, anisotropic filtering coupled with various texture stretching. Texture filtering speed can be measured either in manual mode (pic 1) or automatically over user-defined varying set of parameters (pic 2).

In addition to speed this tool allows to automatically determine quality of texture filtering. This tool and Brilinear tool above were used in "Trilinear filtering (synthetic examples)" article at Digit-Life / (English version, Russian version).

Another aim of this tool was to determine what kind of math is used to determine texture mipmap level used depending of the screen-space to texture-space mapping. This functionality is shown on Pic 3. Tool can work in couple of modes: more or less standart - "cylinder" rendering and advanced mode. "Cylinder" mode shows the same distrubution as various filtering test applications. In advanced mode texture stretching is setted based on user-defined algorithm (which itself is coded in FX texture filling shader). Later results obtained in advanced mode were compared to results of software renderer (this source code I can't post).
(executable - 397Kb)
(source - 655Kb)

VCacheDetector - Vertex cache detector test tool

Click to see full-size screenshot VCacheDetector is a tool to determine sizes of Pre-T&L and Post-T&L (or Pre-VS and Post-VS on modern hardware) cache sizes.

This is really old tool - it's coded for DirectX8 (but it still works correctly due to the way it was written) and based on tool originally used in articles back in 2001 year. Pity, but none of these articles are now available online. Most recently this tool was used in NVIDIA G70 preview on (English version, Russian version).

VCacheDetector detects cache sizes automatically. Some notes: Pre-VS cache (also often called dump memory cache) is measured in bytes; Post-VS cache size is measured in "vertex slots" (and these are not dependent on size of transformed vertex - declared as FVF or vertex declaration).

This tool also shows information returned by driver itself about it's Post-T&L / Post-VS cache sizes. But only NVIDIA and 3DLabs drivers report it.

Note: This tool can't automatically determine Post-VS cache size on ATI R300 and later GPU's due to the way new ATI hardware works.
(executable - 154Kb)
(source - 328Kb)

PSPrecision - PixelShader precision test tool

"PSPrecision" is a tool to determine precision of registers used in pixel shader 2.0 by various HW realizations.

This tool was used in iXBT / DigitLife article back when NVIDIA played with precision of registers in their NV3x series of chips. Source code is slightly updated from that was used in article.

Article links:

To compile this tool you will need D3D Sample Framework from Summer 2003 DirectX SDK.

D3DShaderDAsm - shader disassembler

This is DirectX9 pixel/vertex shader disassembler tool. Full pascal source code included. Shader disassembler includes embedded routine to export disassembled data as text output (used in compiled sample). But actually disassembler was designed to be used for shader data analysis. So other usage scenarios possible and welcome.

Download executable and source.

Please inform me of any grammar or general errors, contained on these pages, Alexey Barkovoy
Last updated: 24-Jul-2005