This OpenGL benchmark is focused on the pixel processing unit (pixel pipelines).
A 3D scene with 5 objects and 3 dynamic lights is rendered. Each object casts soft shadows
and the filtering of soft shadows is performed by a 7x7 filter. The benchmark exploits the latest 3D features like
the vertex buffer objects (VBO), the framebuffer objects (FBO) and a GL 2.0 codepath. This benchmark is based on an
experimental branch of the oZone3D engine (v3.x).
The filtering of the shadow edges is the biggest difficulty of soft shadows and it is a very GPU power consuming task.
So this benchmark can be used to quickly know the performances in OpenGL 2.0 of the new graphics cards generation.
Besides, the benchmark has two modes of running: with and without dynamic branching in the pixel shader.
The mode with dynamic branching is new and allows to see the impact of this fundamental functionality of the shader
The benchmark is started by executing the oZone3D_SoftShadows_Benchmark.exe file. The following interface
appears (from the version 1.5.0):
There are two Run Mode:
Benchmark: starts the benchmark in performance measure mode. It is the default mode.
Stability Test: starts the benchmark in stability test mode. This mode is useful to test your
graphics card during your overcloking sessions. In this mode, the 3D scene is rendered until the user presses the [ESC] key.
In Benchmark Mode, the performance measure lasts 1 minute. At the end of the benchmark, just read
the o3Marks score in the following dialog box:
The o3Mark score is simple: it is the number of frames that have been displayed during the benchmark. So the higher
the score, the more powerful the graphics card.
In order to exploit the SLI or Crossfire systems, the benchmark runs in fullscreen mode with a resolution
of 1280x1024 / 32 bits.
The benchmark offers two Options:
Use Dynamic Branching: enables the dynamic branching in the pixels shaders.
Fullscreen: starts the benchmark in fullscreen mode. In Benchmark Mode, the Fullscreen option is
Due to the large number of texture lookup in the pixel shaders, the Soft Shadows Benchmark requires at least a GeFORCE 6*** and higher
or a Radeon X1*** and higher.
Some technical details
The filtering of the shadow edges uses a 7x7 convolution kernel (see the following tutorial for further information
on convolution kernels: Image Filtering). The convolution kernel parameters
are passed to the pixel shader via the GLSL uniform arrays. Currently, this version works fine on nVidia Geforce 6*** and 7***
and on ATI X1*** graphics controllers. Some old graphic controllers based on the Radeon R300 or R400 GPU (like the X700 for example) can not
execute this benchmark because this kind of GPU supports only 32 texture fetches per pixel shader. The benchmark needs
at least 49 texture fetches.
The soft shadows module uses a 2048x2048 / 24 bits depth map. This depth map (or shadow map) is attached to a framebuffer
object (FBO) for the render to texture (RTT). Since ATI's GPUs do not support linear filtering of depth maps, only
a nearest filtering is performed on depth map.
The meshes use the vertex buffer objects (VBO) to speed up the rendering.
The gpu-shaders codepath uses the new GLSL API of OpenGL 2.0. The new oZone3D engine does not use anymore the old ARB
functions of the OpenGL Shading Language API.
This table is updated regularly with scores found in the forums over the web. You can also post your result in the following thread: [OpenGL Benchmark] Soft Shadows.
Version 1.5.4 - January 22, 2007
Bugfix: the startup and result dialog boxes display problem is fixed.
The problem came from the XP style used. Thanks to TuKo from www.swissclockers.ch for
Version 1.5.2 - January 9, 2007
Bugfix: now graphics memory is correctly freed at the end of the benchmark. You can launch several intances of the benchmark and keep open
all score dialog boxes in order to compare the results. Thanks to www.pcgameshardware.de.
Version 1.5.0 - January 7, 2007
Feature: Display of system information in the score dialog box.
Feature: Added a startup dialog box in order to select the options (benchmark or stability test modes,
fullscreen or windowed mode, enabling or disabling dynamic branching).