GPUBench Test: FpFilltest
Back to Main Page
Description
Fpfilltest measures pixel throughput when performing
a simple fragment program that fetches 1-4 values, performs two
addition operations, and writes the result out to the framebuffer.
While this functionality is similar to that provided by
floatbandwidth's streaming (sequential)
access test, fpfilltest allows for packing values into a texel of a
single texture, or spreading them across up to 4 input textures.
Equivalently, output of the shaders data can be packed into a single
render target, or spread across up to for MRT output buffers.
Common Functionality
Many of commandline options for this test are present for in other
GPUBench tests as well. Input textures are created with the same
(SIZExSIZE) dimensions as the framebuffer, thus the test rasterizes
SIZE*SIZE fragments. The --min
and --max
options set the range of sizes to be tested (in increments of
--step
or, if --exponential
is specified,
texture/framebuffer size is doubled each time until reaching the
maximum size). Supplying a range of values is useful for comparison
as well as graph generation purposes.
When packing values into texels, 1,2,3, and 4 component textures are
permitted as specified by the --components
option.
Rasterization of fragments can be controlled in two ways:
--render
specifies whether a screen covering quad or
large triangle is rasterized to generate fragments. If
--chunksize [NUM]
is provided, instead of a single
primitive being drawn, multiple primitives are issued, each covering
NUMxNUM sections of the screen. We hoped to emulate CPU-style
blocking with this feature.
Test Specific Details
By default, the test packs 'components' values into each texel of the
input textures and framebuffer. When the --usemrt
option
is specified, 'components' single component buffers are used. Thus if
'components' is set to 4 and --usemrt
is enabled, then 4
texture fetches would be performed to get the data for a shader, and
output would be spread across 4 output buffers.
Example Usage
Pixel throughput when accessing single component textures.
fpfilltest -m 512 -x 512 --components 1
Spread data across 4 textures and output to 4 buffers.
fpfilltest -m 512 -x 512 --usemrt --components 4
Commandline Usage
Usage: gpubench\bin\fpfilltest.exe <options>
Options
-m, --min=SIZE
min quad size to test (default: 512)
-x, --max=SIZE
max quad size to test (512)
-s, --step=SIZE
step size from min to max (1)
-c, --components=SIZE
number of components for texture and
render target. (4)
-r, --render=STRING
Specifies how to render the quad
quad: issues exact quad
triangle: issues large triangle (default)
-e, --exponential
flag to turn on exponential stepping
-t, --usemrt
Use MRT
-k, --chunksize=SIZE
Chunk the rendering to SIZExSIZE blocks
-n, --nocomments
No comments, just the facts.