Problems
- If
you have problems, please download the debug build and mail me
the "debug.log" and the "HAL_featureset.txt" including a dxdiag log
file !
- build 130a
- compiled
with the latest Intel 9.0 Compiler
- linked
against the latest Microsoft DirectX SDK (Juni 2005)
- fixed
a shader bug (Combination Effect) on ATi R3xx / R4xx cards
- required
D3DX
library build 26
- build
130 was a wrong debug build with unfinished code in it!!!
- build 129
- compiled
with the latest Intel 8.1 Compiler
- linked
against the latest Microsoft HLSL Compiler (October 2004)
- added
version 1.0 of the ShaderMark v2.1 Chart Maker , which requires the .NET
Framewrok v1.1

- build
128
- fixes
an normalization bug in the HLSL_envmap.fx therefore new MSE values are
needed, if you want to use the picture quality MSE comparision test and
the some benchmark results will change
- fixes
the GeForce FX crash bug
- build
125
- fixes
the MRT detection bug of the GeForce FX - however the crash bug on the
GeForce FX is still under investigation!!!
- fixed
a CTD (crash to desktop) on some systems
- fixed
a resource allocation problem with shader 25 and 26, which could affect
the performance!!!
- Picture
Quality Mode bitmaps are now removed when deleting old ShaderMark
results
IMPORTANT - Driver & GPU requirements
- The
minimum system spec. is a shader model 2_0 card with DirectX 9.0c
installed!
- ATi:
You need the latest Catalyst
4.9 in order to run ShaderMark v2.1 - the Shadow Mapping (shader
20) and Bump Mapping (shader 19) issues will be fixed in one of the
next
Catalyst Releases!!!
- NVIDIA:
Please use the latest WHQL
66.31
Driver from Station-Drivers,
the 61.77 won't work!!!
What's new or changed in v2.1?
- it's
now free for all, no limited shareware version anymore
- reduced
cpu + driver overhead through redundant render state filtering
- GPU
performance optimized resource allocation
- support
for shader model 2_b and 3_0
- nearly
all shaders undergone changes and fixes
- testing
of >2_0 shaders
- dynamic
pixel shader flow control testing
- floating
point texture filtering performance testing
- multiple
render target performance testing
- multiple
shader test
- mean
square error (MSE) calculation in the image quality test - hardware
rasterizer vs. Microsoft reference rasterizer
Overview
ShaderMark
2.1 is a DirectX 9.0
pixel shader benchmark. All pixel and vertex shader code is written in
Microsoft’s High Level Shading Language. ShaderMark provides the
possibility to
use different compiler targets and advanced options. It also features a
picture
quality comparison based on mean square error (MSE) values.
Motivation
Currently
there is no DirectX 9.0
HLSL pixel shader benchmark on the market. Futuremark's 3DMark03
(www.futuremark.com) and Massive's AquaMark 3.0 (www.aquamark.com) are
bases on
hand written assembler shaders or partly HLSL shaders. HLSL is the
future of
shader development! The HLSL shader compiler and its different profiles
have to
be tested and this gap fills ShaderMark v2.1. Driver cheating is also
an issue.
With ShaderMark, it is easily possible to change the underlying HLSL
shader
code which makes it impossible to “optimize” a driver for a certain
shader, instead
of the whole shader pipeline. ShaderMark v2.1 is also the first pixel
shader
benchmark, which measures the performance of the new shader model 3.0
Picture
Quality Mode
The picture
quality mode allows
comparison of the Microsoft reference rasterizer with the current
hardware
rasterizer. This works only for the default (1024x768x32 with No FSAA)
settings! It will calculate an MSE for every shader. The MSE values
give a
rough overview of how close the hardware renderer matches the Microsoft
reference
rasterizer:
shader
2 mse:
0.56019783
shader
3 mse:
0.54107634
shader
4 mse:
0.52548536
shader
5 mse:
0.52206866
shader
6 mse:
0.53719330
shader
7 mse:
0.43692334
shader
8 mse:
0.71990108
shader
9 mse:
0.40015380
shader
10 mse:
1.38709068
shader
11 mse:
0.64171155
shader
12 mse:
0.60582860
shader
13 mse:
0.66471100
shader
14 mse:
0.33196863
shader
15 mse:
1.29484272
shader
16 mse:
0.89861202
shader
17 mse:
0.30872790
shader
19 mse:
0.85641289
shader
20 mse:
0.56255150
shader
21 mse:
0.56256898
shader
22 mse:
7.91011810
shader
23 mse:
8.11475976
shader
24 mse:
8.11018531
shader
25 mse:
0.53177166
shader
26 mse:
0.53177166
The smaller
the values, the better.
Shader 18 isn’t included, because the hair animation would invalidate
the
results.
Community
and Overall Points
Sorry, no
community and no overall
points. You should play games, not benchmarks ;).
If you want
just one result, take shader
19 (Combination Effect)!
Technical
Features
- HLSL shaders
only
- pixel/vertex
shader targets: ps_2_0, ps_2_a, ps_2_b, ps_3_0 / vs_2_0, vs_2_a, vs_3_0
with it’s advanced features
- multiple
render targets
- sRGB textures
- support for
floating point textures and render targets (A16B16G16R16F,
A32B32G32R32Fand R32F)
- picture
quality mode with Mean Square Error calculation based on the picture
quality of the Microsoft Reference Rasterizer
- gamma
correction through DAC or frame buffer write (FBW)
low quality DAC
high quality FBW
- most shaders
uses an IBL (image based lighting) texture
- auto
generated mipmaps
- command line
mode for batch runs
- width range
of display options can be changed
- shader
execution is based on the hardware’s feature set, if specific features
are not supported, the specific shader(s) will not work, for example
the floating point texture shaders won’t work on NVIDIA’s GeForceFX
5xxx / S3’s DeltaChrome and XGI’s Volari cards
Basic Shaders
Features
required:
·
vs_2_0
/ ps_2_0 shaders
·
auto
generated mipmaps
·
floating
point textures
- (shader 1)
ps1.1, ps1.4, ps2_0 and ps3.0 precision test (exponent + mantissa bits)
- (shader 2)
directional diffuse lightning

- (shader 3)
directional phong lightning

- (shader 4)
point phong lightning

- (shader 5)
spot phong lightning

- (shader 6)
directional anisotropic lighting

- (shader 7)
fresnel reflections

- (shader 8)
car paint shader (multiple layers)

- (shader 9)
environment mapping

- (shader 10)
bump environment mapping

- (shader 11)
bump mapping with phong lighting

- (shader 12)
self shadowing bump mapping with phong lighting

- (shader 13)
procedural stone shader

- (shader 14)
procedural wood shader

- (shader 15)
procedural tile shader

- (shader 16)
refraction and reflection shader with phong lighting

- (shader 17)
BRDF-phong/anisotropic lighting

- (shader 18)
fur shader (shells+fins)

- (shader 19)
combination effect

Advanced
Shaders
·
vs_2_0
/ ps_2_0 or vs_2_x / ps_2_x or vs_3_0 / ps_3_0 shaders
·
multiple
render targets
·
floating
point textures
·
floating
point texture filtering
- (shader 20)
dual layer shadow map with 8x8 jittered percentage closer filter
without flow control - (2_x shaders required)

- (shader 21)
dual layer shadow map with 8x8 jittered percentage closer filter with
flow control - (3_0 shaders required)

- (shader 22)
HDR shader - low quality version without filtering - (2_0 shaders
required)

- (shader 23)
HDR shader - high quality version with floating point filtering - (2_0
shaders required + floating point filtering)

- (shader 24)
HDR shader - high quality version without floating point -
filtering(2_x shaders required)

- (shader 25)
NPR non photorealistic rendering using 1 render target and two passes -
(2_0 shaders required)

- (shader 26)
NPR non photorealistic rendering using 2 render target and one pass(2_0
shaders required + multiple render targets)

Shader
Details
- performance
impact of heavy alpha blending
- shader 18
(Fur Shader With Anisotropic Lighting) makes heavy use of alpha blending
- performance
impact of multiple shaders switches
- shader 19
(Combination Effect) uses many shaders, therefore it can be used to
examine the overall performance when many shaders are used
- performance
impact of dynamic flow control
- shader 20
(Dual Layer 8x8 PCF Shadow Mapping without Flow Control)
- shader 21
(Dual Layer 8x8 PCF Shadow Mapping with Flow Control)
- both shaders
produce the same output, but shader 21 will be faster, if dynamic pixel
shader flow control is efficient enough
- performance
impact of floating point filtering
- shader 22
(High Dynamic Range Shader - low quality version without filtering)
uses floating point or integer filtering only in the last stage and a
13x13 gaussian filter kernel to fit into 2_0 shaders
- shader 23
(High Dynamic Range Shader - high quality with fp filtering) uses
floating point filtering to reduce the gaussian filter kernel to 9x9
- shader 24
(High Dynamic Range Shader - high quality without fp filtering) uses no
floating point filtering and therefore requires a 25x25 gaussian filter
kernel to achieve the 100% same output as shader 23
- performance
impact of multiple render targets
- shader 25
(Per Pixel Edge Detection And Hatching Shader using 1 RT and 2 Passes)
- shader 26
(Per Pixel Edge Detection And Hatching Shader using 2 RTs and 1 Pass)
- with these
two shaders, you can compare multi pass 1RT vs. single pass 2RTs
rendering performance and therefore see how efficient MRTs (multiple
render targets) are handled
Download
Mirrors - Full Package