(TexMagFilter GL_LINEAR)
where we want the Texture Magnification Filter to be set to GL_LINEAR
.
(TexMinFilter GL_NEAREST GL_LINEAR_MIPMAP_LINEAR)
would result in two runs being made, one with the Texture Minification Filter
set to GL_NEAREST
, the next with it set to
GL_LINEAR_MIPMAP_LINEAR
. If
multiple attribute lists are given, the Cartesian product of the lists is
calculated. Be careful, this can result in an enormous amount of tests!
(ObjsPerBeginEnd from 100 to 10 step -10)
This would set the number of objects to values {100, 90, 80, 70, 60, 50, 40,
30, 20, 10 }. Notice that negative step values are perfectly legal.
You can also step by a percentage of the current value, like:
(ObjsPerBeginEnd from 1 to 256 step 100%)
This would set the number of objects to powers of 2: {1, 2, 4, 8, 16, 32, 64, 128, 256}.
Negative step percentages, like step values, are legal as well.
(Fog *)
or
(Fog ALL)
would produce tests that would have the FogMode parameter set to values {
Off, GL_LINEAR, GL_EXP, GL_EXP2
}. Choosing a wildcard on
a type which
is not enumerated (e.g. Size
) will produce an error.
printf
statement,
which is restricted to use with the UserString
property.
This attribute allows you to construct a printf statement of your
choice, using property names as arguments to the printf
function.
For example,
TriangleStripTest {
(UserString printf("Triangle strip: %.0f pixels", Size))
(Size from 20 to 100 step 20)
}
is equivalent to the following five tests:
TriangleStripTest {
(UserString "Triangle strip: 20 pixels")
(Size 20)
}
TriangleStripTest {
(UserString "Triangle strip: 40 pixels")
(Size 40)
}
TriangleStripTest {
(UserString "Triangle strip: 60 pixels")
(Size 60)
}
TriangleStripTest {
(UserString "Triangle strip: 80 pixels")
(Size 80)
}
TriangleStripTest {
(UserString "Triangle strip: 100 pixels")
(Size 100)
}
DrawPixelsTest {
([ImageWidth ImageHeight] 16 32 64 128)
}
This is substantially more succinct than the other option:
DrawPixelsTest {
(ImageWidth 16)
(ImageHeight 16)
}
DrawPixelsTest {
(ImageWidth 32)
(ImageHeight 32)
}
DrawPixelsTest {
(ImageWidth 64)
(ImageHeight 64)
}
DrawPixelsTest {
(ImageWidth 128)
(ImageHeight 128)
}
/* */
kind, and C++ are the type which start
with //
and continue to the end of the line. To allow easy creation of input
files, GLperf provides a decent amount of syntactic and semantic error
checking.
In addition to providing flexible specification of tests to run, I have attempted to also provide flexible reporting options. With the enormous amount of state information present in each test, it is not easy to devise a simple reporting mechanism. The standard format allows one line per attribute and specifies in detail which attributes are set to what. You may also choose the "delta" (-d) option which will only show which values have changed from the previous test. Additionally, you can select whether you want the timing metrics to be reported in objects per second or microseconds per object. The microsecond metric is selected by the -u flag. You may also wish to view the performance in terms of pixels rather than objects. The -p flag will allow you to do this.
{
LocalPropertyList }
(
PropertyName AttributeValue )
from
int to
int | from
int to
int step
int | from
int to
int step
int % |
from
float to
float |
from
float to
float step
float |
from
float to
float step
float %
List -> Value | Value List
Value -> Enumerated | float | int | 0xhex
Wildcard -> ALL
| *
Test ------ Drawn ------ Primitive ------ Vertex ------ Points | | | | | | | ------ Linear ------ Lines | | | | | | | | | ------ LineStrip | | | | | | | | | ------ LineLoop | | | | | | | ------ Polygonal ----- Triangles | | | | | | | ----- TriangleStrip | | | | | | | ----- TriangleFan | | | | | | | ----- Quads | | | | | | | ----- QuadStrip | | | | | | | ----- Polygon | | | | | ------ RasterPos ----- Bitmap {Image} | | | | | ----- Text | | | | | ----- DrawPixels {Image, TransferMap, Zoom} | | | | | ----- CopyPixels {Image, TransferMap, Zoom} | | | ------ Clear | ------ Transform | ------ ReadPixels {Image, TransferMap} | ------ TexImage {Image, TransferMap}Classes shown in brackets are additional inherited classes (i.e. multiple inheritance).
Property/String Names | Description | Settable? | Printed? | |||
BitmapWidth Width of Bitmap |
Width of bitmap (width defaults to ImageWidth unless this is set, in which case this sets the subimage width) | Yes | Yes | |||
BitmapHeight Height of Bitmap |
Height of bitmap (height defaults to ImageHeight unless this is set, in which case this sets the subimage height) | Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
ClearColorBuffer Clear Color Buffer |
Clear the Color Buffer |
|
True |
Yes | Yes | |
ClearDepthBuffer Clear Depth Buffer |
Clear the Depth Buffer |
|
False |
Yes | Yes | |
ClearStencilBuffer Clear Stencil Buffer |
Clear the Stencil Buffer |
|
False |
Yes | Yes | |
ClearAccumBuffer Clear Accumulation Buffer |
Clear the Accumulation Buffer |
|
False |
Yes | Yes | |
ClearIndex Clear Index |
Index value to clear to in color index mode | Yes | Yes | |||
ClearColor Clear Color |
Color to clear to in RGB/RGBA mode |
|
Black |
Yes | Yes | |
PointDraw Draw Point Between Clears |
Draws a point between clears to preclude cheating |
|
Off |
Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
CopyPixelsWidth Width of CopyPixels |
Width of CopyPixels call | Yes | Yes | |||
CopyPixelsHeight Height of CopyPixels |
Height of CopyPixels call | Yes | Yes | |||
CopyPixelsType Type of CopyPixels |
Type of CopyPixels call - specifies what kind of buffer to copy |
|
GL_COLOR |
Yes | Yes | |
ReadBuffer Read Buffer |
Specifies what buffer to copy from (the source of the CopyPixels) |
|
GL_FRONT |
Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
DrawPixelsWidth Width of DrawPixels |
Width of DrawPixels call (width defaults to ImageWidth unless DrawPixelsWidth is set, in which case it sets the subimage width) | Yes | Yes | |||
DrawPixelsHeight Height of DrawPixels |
Height of DrawPixels call (height defaults to ImageHeight unless DrawPixelsHeight is set, in which case it sets the subimage height) | Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
DrawableType Drawable Type |
Target drawable (this currently only supports rendering to windows) |
|
WindowDraw |
Yes | Yes | |
RenderMode Render Mode |
Render mode (currently only supports GL_RENDER) |
|
GL_RENDER |
Yes | Yes | |
Dither Dither Enabled |
Dithering state |
|
On |
Yes | Yes | |
DrawBuffer Draw Buffer |
Buffer destination of drawing |
|
GL_FRONT |
Yes | Yes | |
ColorMask Color Mask Enabled |
Color masking state - argument specifies boolean flags passed to glColorMask |
|
TTTT |
Yes | Yes | |
IndexMask Index Mask Enabled |
Index Mask value | Yes | Yes | |||
Scissor Scissoring Enabled |
Scissor test state |
|
Off |
Yes | Yes | |
ScissorX Scissor X |
X coordinate of scissor rectangle's origin | Yes | Yes | |||
ScissorY Scissor Y |
Y coordinate of scissor rectangle's origin | Yes | Yes | |||
ScissorWidth Scissor Width |
Width of scissor rectangle | Yes | Yes | |||
ScissorHeight Scissor Height |
Height of scissor rectangle | Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
ImageFormat Image Format |
Format of the Image Data |
|
GL_RGBA |
Yes | Yes | |
ImageType Image Type |
Type of the Image Data |
|
GL_UNSIGNED_BYTE |
Yes | Yes | |
ImageAlignment Image Alignment |
PixelStore Alignment of the Image Data |
|
4 |
Yes | Yes | |
ImageSwapBytes Image Swap Bytes |
PixelStore Swap Bytes State of the Image Data |
|
False |
Yes | Yes | |
ImageLSBFirst Image LSB First |
PixelStore LSB First State of the Image Data, pertains to Bitmap ImageType only |
|
False |
Yes | Yes | |
ImageWidth Image Width |
This is the width of the image data allocated in memory. Under some circumstances, a subimage of this image may be written or read into. This is where ImageWidth is larger than DrawPixelsWidth, ReadPixelsWidth, CopyPixelsWidth, BitmapWidth, or TexImageWidth. By default, these parameters will be equal to ImageWidth unless explicitly set by the user. If these parameters are larger than ImageWidth, they will be clamped to ImageWidth (this is not a bug!). This property has no meaning in the CopyPixels case. | Yes | Yes | |||
ImageHeight Image Height |
This is the height of the image data allocated in memory. Under some circumstances, a subimage of this image may be written or read into. This is where ImageHeight is larger than DrawPixelsHeight, ReadPixelsHeight, CopyPixelsHeight, BitmapHeight, or TexImageHeight. By default, these parameters will be equal to ImageHeight unless explicitly set by the user. If these parameters are larger than ImageHeight, they will be clamped to ImageHeight (this is not a bug!). This property has no meaning in the CopyPixels case. | Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
LineWidth Line Width |
Line width | Yes | Yes | |||
LineStipple Line Stippling Enabled |
Line stipple enable state |
|
Off |
Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
PolygonSides Number of Sides in Polygon |
Number of sides on a polygon | Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
Aspect Aspect |
Ratio of height of polygon to its width | Yes | Yes | |||
PolygonModeFront Polygon Rasterization Mode/Front Side |
Polygon Rasterization Mode/Front Side |
|
GL_FILL |
Yes | Yes | |
PolygonModeBack Polygon Rasterization Mode/Back Side |
Polygon Rasterization Mode/Back Side |
|
GL_FILL |
Yes | Yes | |
PolygonStipple Polygon Stippling Enabled |
Polygon Stipple enable state |
|
Off |
Yes | Yes | |
TwoSided Two Sided Lighting |
Two sided lighting enable state |
|
Off |
Yes | Yes | |
CullFace Cull Face Mode |
Face culling method |
|
Off |
Yes | Yes | |
FacingFront Fraction of Polygons Facing Front |
Fraction of primitives that are facing front, FacingBack + FacingFront must equal 1.0 | Yes | Yes | |||
FacingBack Fraction of Polygons Facing Back |
Fraction of primitives that are facing back, FacingBack + FacingFront must equal 1.0 | Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
ColorDim Dimension of Color Data |
Dimension of Color Data | Yes | Yes | |||
Projection Projection Matrix Type |
Projection Matrix Type |
|
Perspective |
Yes | Yes | |
AcceptObjs Fraction of Primitives Trivially Accepted |
Fraction of primitives that are trivially accepted, ClipObjs + AcceptObjs + RejectObjs must equal 1.0 | Yes | Yes | |||
RejectObjs Fraction of Primitives Trivially Rejected |
Fraction of primitives that are trivially rejected, ClipObjs + AcceptObjs + RejectObjs must equal 1.0 | Yes | Yes | |||
ClipObjs Fraction of Primitives Clipped |
Fraction of primitives that are clipped by window, ClipObjs + AcceptObjs + RejectObjs must equal 1.0 | Yes | Yes | |||
DepthOrder Vertex/RasterPos Depth Ordering |
Z Order of drawn primitives |
|
Coplanar |
Yes | Yes | |
TexGen Texture Generation |
Texture generation method |
|
Off |
Yes | Yes | |
TexTarget Texture Target |
Texture enable state |
|
Off |
Yes | Yes | |
TexWidth Texture Width |
Texture image width (level 0) | Yes | Yes | |||
TexHeight Texture Height |
Texture image height (level 0) | Yes | Yes | |||
TexDepth Texture Depth |
Texture image depth (level 0), (supported only with GL_EXT_texture3D) | Yes | Yes | |||
TexExtent Texture Extent |
Texture image extent (fourth dimension), (supported only with GL_SGIS_texture4D) | Yes | Yes | |||
TexBorder Texture Border |
Width of texture border | Yes | Yes | |||
TexComps Internal Texture Components |
Number of components in or internal format of the texture image (those formats other than 1, 2, 3, 4, only supported with GL_EXT_texture) (dual and quad formats only supported with GL_SGIS_texture_select) |
|
3 |
Yes | Yes | |
TexCompSelect Texture Component Selected |
Texture component that is selected (only supported with GL_SGIS_texture_select) | Yes | Yes | |||
TexLOD Texture Level Of Detail |
Texture level of detail for computed texture coordinates of primitives | Yes | Yes | |||
TexMagFilter Texture Magnification Filter |
Texture magnification filter (filter4 only with GL_SGIS_texture_filter4, detail only with GL_SGIS_detail_texture, sharpen only with GL_SGIS_sharpen_texture) |
|
GL_NEAREST |
Yes | Yes | |
TexMinFilter Texture Minification Filter |
Texture minification filter (filter4 only with GL_SGIS_texture_filter4) |
|
GL_NEAREST |
Yes | Yes | |
TexWrapS Texture Wrap S |
Texture wrapping mode for S coordinate (clamp to border only with GL_SGIS_texture_border_clamp, clamp to edge only with GL_SGIS_texture_edge_clamp) |
|
GL_REPEAT |
Yes | Yes | |
TexWrapT Texture Wrap T |
Texture wrapping mode for T coordinate (clamp to border only with GL_SGIS_texture_border_clamp, clamp to edge only with GL_SGIS_texture_edge_clamp) |
|
GL_REPEAT |
Yes | Yes | |
TexWrapR Texture Wrap R |
Texture wrapping mode for R coordinate (clamp to border only with GL_SGIS_texture_border_clamp, clamp to edge only with GL_SGIS_texture_edge_clamp) |
|
GL_REPEAT |
Yes | Yes | |
TexWrapQ Texture Wrap Q |
Texture wrapping mode for Q coordinate (clamp to border only with GL_SGIS_texture_border_clamp, clamp to edge only with GL_SGIS_texture_edge_clamp) |
|
GL_REPEAT |
Yes | Yes | |
PostTexFilterRedScale Post Texture Filter Red Scale Factor |
Post-filtering texture scale value for texel's red component (only with GL_SGIX_texture_scale_bias) | Yes | Yes | |||
PostTexFilterRedBias Post Texture Filter Red Bias Factor |
Post-filtering texture bias value for texel's red component (only with GL_SGIX_texture_scale_bias) | Yes | Yes | |||
PostTexFilterGreenScale Post Texture Filter Green Scale Factor |
Post-filtering texture scale value for texel's green component (only with GL_SGIX_texture_scale_bias) | Yes | Yes | |||
PostTexFilterGreenBias Post Texture Filter Green Bias Factor |
Post-filtering texture bias value for texel's green component (only with GL_SGIX_texture_scale_bias) | Yes | Yes | |||
PostTexFilterBlueScale Post Texture Filter Blue Scale Factor |
Post-filtering texture scale value for texel's blue component (only with GL_SGIX_texture_scale_bias) | Yes | Yes | |||
PostTexFilterBlueBias Post Texture Filter Blue Bias Factor |
Post-filtering texture bias value for texel's blue component (only with GL_SGIX_texture_scale_bias) | Yes | Yes | |||
PostTexFilterAlphaScale Post Texture Filter Alpha Scale Factor |
Post-filtering texture scale value for texel's alpha component (only with GL_SGIX_texture_scale_bias) | Yes | Yes | |||
PostTexFilterAlphaBias Post Texture Filter Alpha Bias Factor |
Post-filtering texture bias value for texel's alpha component (only with GL_SGIX_texture_scale_bias) | Yes | Yes | |||
TexColorTable Texture Color Table Enabled |
Texture color table enable state (only with GL_SGI_texture_color_table) |
|
False |
Yes | Yes | |
TexColorTableWidth Texture Color Table Width |
Texture color table width (only with GL_SGI_texture_color_table) | Yes | Yes | |||
TexColorTableInternalFormat Texture Color Table Internal Format |
Texture color table internal format (only with GL_SGI_texture_color_table) |
|
GL_RGBA8_EXT |
Yes | Yes | |
TexFunc Texture Function |
Texture function (replace only with GL_EXT_texture) |
|
GL_DECAL |
Yes | Yes | |
TexDetailWidth Detail Texture Width |
Detail texture width (only with GL_SGIS_detail_texture) | Yes | Yes | |||
TexDetailHeight Detail Texture Height |
Detail texture height (only with GL_SGIS_detail_texture) | Yes | Yes | |||
TexDetailLevel Detail Texture Level |
Detail texture level (only with GL_SGIS_detail_texture) | Yes | Yes | |||
TexDetailMode Detail Texture Mode |
Detail texture mode (only with GL_SGIS_detail_texture) |
|
GL_ADD |
Yes | Yes | |
Fog Fogging Mode |
Fogging state and parameter |
|
Off |
Yes | Yes | |
AlphaTest Alpha Test Function |
Alpha test function |
|
Off |
Yes | Yes | |
AlphaRef Alpha Reference Value |
Alpha reference value | Yes | Yes | |||
StencilTest Stencil Test Function |
Stencil test function |
|
Off |
Yes | Yes | |
DepthTest Depth Test Function |
Depth test function |
|
Off |
Yes | Yes | |
DepthMask Depth Mask |
Depth buffer write enable state |
|
On |
Yes | Yes | |
Blend Blend Enabled |
Blend enable state |
|
Off |
Yes | Yes | |
BlendEquation Blend Equation |
Blending equation (logic op only with GL_EXT_blend_logic_op, min/max only with GL_EXT_blend_minmax, subtract modes only with GL_EXT_blend_subtract) |
|
GL_FUNC_ADD_EXT |
Yes | Yes | |
SrcBlendFunc Source Blend Function |
Source blending function (constant color/alpha only with GL_EXT_blend_color) |
|
GL_ONE |
Yes | Yes | |
DstBlendFunc Destination Blend Function |
Destination blend function (constant color/alpha only with GL_EXT_blend_color) |
|
GL_ONE |
Yes | Yes | |
LogicOp Logical Operation |
Bitwise logical operation (only performed with color index visuals/pixel formats) |
|
Off |
Yes | Yes | |
Multisample Multisample Antialiasing |
Multisample antialiasing enable state |
|
Off |
Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
TwistsPerStrip Twists Per Quad Strip |
Number of twists in each quad strip. To get results from this, you must specify FacingFront and FacingBack values different than the default. | Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
RasterPosDim Dimension of RasterPos Data |
Dimension of RasterPos data | Yes | Yes | |||
ColorData Color/Index Data |
Color or index data associated with coordinate data |
|
None |
Yes | Yes | |
TexData Texture Coordinate Data |
Texture coordinate data associated with coordinate data |
|
None |
Yes | Yes | |
ClipAmount Amount of Image/Bitmap/Text that is Clipped |
Fraction of Image/Bitmap/Text that is clipped out by window (only ClipObjs objects are clipped) | Yes | Yes | |||
ClipMode Manner in which Image/Bitmap/Text is Clipped |
Manner in which Image/Bitmap/Text is clipped by window |
|
Random |
Yes | Yes | |
DrawOrder Order in which Images/Bitmaps/Text are Drawn |
Order in which Images/Bitmaps/Text are read out of memory and drawn on screen |
|
Spaced |
Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
ReadPixelsWidth Width of ReadPixels |
Width of ReadPixels call; usually defaults to ImageWidth, but if set, allows user to sub-read into a wider image in memory) | Yes | Yes | |||
ReadPixelsHeight Height of ReadPixels |
Height of ReadPixels call; usually defaults to ImageHeight, but if set, allows user to sub-read into a taller image in memory) | Yes | Yes | |||
ReadBuffer Read Buffer |
Specifies what buffer to read from (the source of the ReadPixels) (aux buffers not supported on all systems) |
|
GL_FRONT |
Yes | Yes | |
ReadOrder Order in which Images/Bitmaps/Text are Read |
Order in which Images are read into system memory |
|
Spaced |
Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
TestType Test Type |
Primitive type being tested |
|
ClearTest |
No | Yes | |
FileName GLperf Script File Name |
File name of GLperf script | Yes | Yes | |||
UserString User Defined String |
String to be defined by script writer for easier reading/parsing of results | Yes | No | |||
PrintModeDelta Print Mode Delta |
If True, same as setting -d on command line, where successive tests in the report are deltas of previous tests of the same TestType |
|
False |
Yes | Yes | |
PrintModeStateDelta Print Mode Delta from Default State |
If True, same as setting -s on command line, where tests in the report are deltas of the default GLperf state |
|
False |
Yes | Yes | |
PrintModeMicrosec Print Mode Microseconds |
If True, same as setting -u on command line, where results in the report are measured in microseconds rather than frequency (e.g. usec/triangle rather than triangles/sec) |
|
False |
Yes | Yes | |
PrintModePixels Print Mode Pixels Per Second |
If True, same as setting -p on command line, where results in the report are measured in pixels rather than objects. (e.g. pixels/sec rather than triangles/sec) |
|
False |
Yes | Yes | |
GLperfVersion GLperf Version |
Version of GLperf that is being run | No | Yes | |||
ExecuteMode Execute Mode |
Mode of test execution |
|
Immediate |
Yes | Yes | |
Objs Number of Objects |
Number of objects allocated and defined in memory and traversed. This can have many different meanings. For instance, for Points, it is simply the number of vertexes to be traversed in the loop. For images (DrawPixels, ReadPixels, TexImage, etc.) it is the number of complete images to be sequenced through in the loop. | Yes | Yes | |||
Iterations Iterations |
Number of "screenfulls" done per timing period. If set, it takes precedence over MinimumTime | Yes | No | |||
Reps Repetitions |
Number of timing periods performed per test | Yes | No | |||
MinimumTime Test Time |
Approximate number of seconds per timing period | Yes | No | |||
LoopUnroll Vertices Unrolled in Inner Loop |
Number of vertices unrolled in the inner traversal loop. This number must be evenly divisible by the number of vertices in a facet (e.g. triangles - 3, lines - 2, quads - 4, line strip - 1, quad strip - 2) OR the number of vertices in a facet must be evenlydivisible by the number of vertices unrolled. Also, an optional compile time option must be set to support values other than one (see README). | Yes | Yes | |||
LoopFuncPtrs Function Pointers Used in Inner Loop |
Function pointers are used for all function calls within the timing loop (e.g. glVertex, glColor, glNormal, glTexCoord, glBegin, glEnd, etc.) An optional compile time option must be set to support this feature (see README). |
|
Off |
Yes | Yes | |
DataAlignment Modulo 4096 of Data Alignment |
Modulo 4096 value of data alignment | Yes | Yes | |||
Month Month |
Month test was run | No | Yes | |||
Day Day |
Day test was run | No | Yes | |||
Year Year |
Year test was run | No | Yes | |||
Host Host |
Host on which test was run | No | Yes | |||
HostOperatingSystem Operating System |
Operating system on which test was run | No | Yes | |||
HostOperatingSystemVersion Operating System Version |
Version of operating system on which test was run | No | Yes | |||
HostVendor Host Vendor |
Hardware vendor of host on which test was run | No | Yes | |||
HostModel Host Model |
Model of host on which test was run | No | Yes | |||
HostCPU Host CPU |
CPU type of host on which test was run | No | Yes | |||
HostCPUCount Host CPU Count |
Number of CPUs on host on which test was run | No | Yes | |||
HostMemorySize Host Memory Size |
Memory Size of host on which test was run | No | Yes | |||
HostPrimaryCacheSize Host Primary Cache Size |
Primary cache size of host on which test was run | No | Yes | |||
HostSecondaryCacheSize Host Secondary Cache Size |
Secondary cache size of host on which test was run | No | Yes | |||
WindowSystem Window System |
Windowing system of host on which test was run | No | Yes | |||
DriverVersion Driver Version |
Driver version of host on which test was run | No | Yes | |||
OpenGLVendor OpenGL Vendor |
OpenGL vendor of host on which test was run | No | Yes | |||
OpenGLVersion OpenGL Version |
OpenGL version of host on which test was run | No | Yes | |||
OpenGLExtensions OpenGL Extensions |
OpenGL extensions of host on which test was run | No | Yes | |||
OpenGLRenderer OpenGL Renderer |
OpenGL renderer of host on which test was run | No | Yes | |||
OpenGLClientVendor OpenGL Client Vendor |
OpenGL client vendor of host on which test was run | No | Yes | |||
OpenGLClientVersion OpenGL Client Version |
OpenGL client version of host on which test was run | No | Yes | |||
OpenGLClientExtensions OpenGL Client Extensions |
OpenGL client extensions of host on which test was run | No | Yes | |||
GLUVersion GLU Version |
GLU version of host on which test was run | No | Yes | |||
GLUExtensions GLU Extensions |
GLU extensions of host on which test was run | No | Yes | |||
DirectRender Direct Rendering |
Direct rendering enable state |
|
True |
Yes | Yes | |
DoubleBuffer Double Buffer |
Double buffer visual enable state |
|
True |
Yes | Yes | |
Stereo Stereo |
Stereo visual enable state |
|
False |
Yes | Yes | |
Rgba RGBA |
RGBA visual enable state |
|
True |
Yes | Yes | |
IndexSize Color Index Size |
Indicates the minimum index size necessary in the visual/pixel format | Yes | Yes | |||
RedSize Red Size |
Indicates the minimum red size necessary in the visual/pixel format | Yes | Yes | |||
GreenSize Green Size |
Indicates the minimum green size necessary in the visual/pixel format | Yes | Yes | |||
BlueSize Blue Size |
Indicates the minimum blue size necessary in the visual/pixel format | Yes | Yes | |||
AlphaSize Alpha Size |
Indicates the minimum alpha size necessary in the visual/pixel format | Yes | Yes | |||
AccumRedSize Accum Red Size |
Indicates the minimum accumulation buffer red size necessary in the visual/pixel format | Yes | Yes | |||
AccumGreenSize Accum Green Size |
Indicates the minimum accumulation buffer green size necessary in the visual/pixel format | Yes | Yes | |||
AccumBlueSize Accum Blue Size |
Indicates the minimum accumulation buffer blue size necessary in the visual/pixel format | Yes | Yes | |||
AccumAlphaSize Accum Alpha Size |
Indicates the minimum accumulation buffer alpha size necessary in the visual/pixel format | Yes | Yes | |||
DepthSize Depth Size |
Indicates the minimum depth buffer size necessary in the visual/pixel format | Yes | Yes | |||
StencilSize Stencil Size |
Indicates the minimum stencil buffer size necessary in the visual/pixel format | Yes | Yes | |||
AuxBuffers Auxiliary Buffer Count |
Number of aux buffers that are necessary/available | Yes | Yes | |||
SampleBuffers Multisample Buffer Count |
Number of multisample buffers that are necessary/available | Yes | Yes | |||
SamplesPerPixel Multisamples Per Pixel |
Multisamples requested per pixel | Yes | Yes | |||
FrameBufferLevel Frame BufferLevel |
Framebuffer level (0 is mainplanes, negative is underlay, positive is overlay) | Yes | Yes | |||
VisualId Visual ID |
Indicates the visual ID of the desired visual (only applies to X, PM) | Yes | Yes | |||
VisualClass Visual Class |
Visual class |
|
-1 |
No | Yes | |
WindowWidth Window Width |
Width of test window in pixels | Yes | Yes | |||
WindowHeight Window Height |
Height of test window in pixels | Yes | Yes | |||
ScreenWidth Screen Width |
Width of screen in pixels | Yes | Yes | |||
ScreenHeight Screen Height |
Height of screen in pixels | Yes | Yes | |||
DisplayName Display |
Name of X Display | No | Yes | |||
OpenGLServerVendor OpenGL Server Vendor |
OpenGL server vendor of host on which test was run | No | Yes | |||
OpenGLServerVersion OpenGL Server Version |
OpenGL server version of host on which test was run | No | Yes | |||
OpenGLServerExtensions OpenGL Server Extensions |
OpenGL server extensions of host on which test was run | No | Yes | |||
GLXVersion GLX Server Version |
GLX server version of host on which test was run | No | Yes | |||
GLXExtensions GLX Server Extensions |
GLX server extensions of host on which test was run | No | Yes | |||
ScreenNumber Screen Number |
X Screen Number of host on which test was run | No | Yes | |||
SharedMemConnection Shared Memory Connection |
Shared memory connection state |
|
False |
No | Yes |
Property/String Names | Description | Settable? | Printed? | |||
ImageDepth Image Depth |
This is the depth of the texture image allocated in memory. Under one circumstance, a subimage of this image may be written. This is where ImageDepth is larger than TexImageDepth. By default, this parameter will be equal to ImageDepth unless explicitly set by the user. If TexImageDepth is larger than ImageDepth, it will be clamped to ImageDepth (this is not a bug!). (Supported only with GL_EXT_texture3D) | Yes | Yes | |||
ImageExtent Image Extent |
This is the extent (fourth dimension) of the texture image allocated in memory. Under one circumstance, a subimage of this image may be written. This is where ImageExtent is larger than TexImageExtent. By default, this parameter will be equal to ImageExtent unless explicitly set by the user. If TexImageExtent is larger than ImageExtent, it will be clamped to ImageExtent (this is not a bug!). (Supported only with GL_SGIS_texture4D) | Yes | Yes | |||
TexImageTarget TexImage Target |
Target of TexImage call |
|
GL_TEXTURE_2D |
Yes | Yes | |
TexImageWidth Width of TexImage |
Width of TexImage call (width defaults to ImageWidth unless TexImageWidth is set, in which case it sets the subimage width) | Yes | Yes | |||
TexImageHeight Height of TexImage |
Height of TexImage call (height defaults to ImageHeight unless TexImageHeight is set, in which case it sets the subimage height) | Yes | Yes | |||
TexImageDepth Depth of TexImage |
Depth of TexImage call (depth defaults to ImageDepth unless TexImageDepth is set, in which case it sets the subimage depth) (Supported only with GL_EXT_texture3D) | Yes | Yes | |||
TexImageExtent Extent of TexImage |
offset(texImageExtent), | Yes | Yes | |||
TexImageComps TexImage Ccmponents |
Internal components/format of texture image |
|
3 |
Yes | Yes | |
TexImageBorder Border of TexImage |
Width of TexImage border | Yes | Yes | |||
SubTexImageWidth Width of SubTexImage |
Width of SubTexImage call (width defaults to TexImageWidth unless SubTexImageWidth is set, in which case it sets the subtexture width) (only with GL_EXT_subtexture) | Yes | Yes | |||
SubTexImageHeight Height of SubTexImage |
Height of SubTexImage call (height defaults to TexImageHeight unless SubTexImageHeight is set, in which case it sets the subtexture height) (only with GL_EXT_subtexture) | Yes | Yes | |||
SubTexImageDepth Depth of SubTexImage |
Depth of SubTexImage call (width defaults to TexImageDepth unless SubTexImageDepth is set, in which case it sets the subtexture depth) (only with GL_EXT_subtexture and GL_EXT_texture3D) | Yes | Yes | |||
ResidentTexObjs Number of Resident Texture Objects |
Number of resident texture objects (out of Objs). This is not a settable property, but can be helpful in analyzing the performance of swapping texture objects. | No | Yes | |||
TexImageSrc Source of Texture Image |
Specifies where you will be loading your texture image from (the source of the texture image). Each option has vastly different semantics. SystemMemory forces the TexImage to be done from system memory with every call. DisplayList preloads the TexImage in a display list and then calls that list within the timing loop. This can be thought of as "binding" the texture on some systems. TexObj preloads the TexImage in a texture object and binds the texture(s) within the timing loop. Framebuffer allows the use of the copy_texture extension to copy an image out of the framebuffer into texture memory. (TexObj requires GL_EXT_texture_object, Framebuffer requires GL_EXT_copy_texture) |
|
SystemMemory |
Yes | Yes | |
TexImageLevel Texture Image Level |
Specifies the level at which to load the texture image | Yes | Yes | |||
TexImageBaseLevel Base Texture Image Level |
Specifies base texture mipmap level for use within the texture LOD extension (requires GL_SGI_texture_lod) | Yes | Yes | |||
TexImageMaximumLevel Maximum Texture Image Level |
Specifies maximum texture mipmap level for use within the texture LOD extension (requires GL_SGI_texture_lod) | Yes | Yes | |||
TexImageMipmap Method of Calculating Mipmaps |
Specifies how you will be using mipmaps with the texture loads. None specifies that no mipmaps will be used. PreCalculate specifies that the mipmaps will be calculated prior to timing, but that the mipmaps will all be loaded within the loop. gluBuildMipmap requests that the mipmaps be generated within the timing loop using glu routines. If the generate_mipmap extension is supported, GenerateMipmapExt allows automatic generation of the mipmaps within the timing loop. (GenerateMipmapExt requires GL_SGIS_generate_mipmap) |
|
None |
Yes | Yes | |
ObjDraw Object Drawn Between TexImage Loads |
Draws object between TexImage calls to force loading |
|
None |
Yes | Yes | |
DrawOrder Order in which TexImage sections are Drawn |
Order in which subimage TexImages are pulled out of memory and loaded |
|
Spaced |
Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
CharFont Character Font |
Name of the font to use for drawing text |
|
f9x15 |
Yes | Yes | |
CharsPerString Characters Per String |
Number of characters per string drawn | Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
MapColor PixelMap Color |
Enable mapping of pixel colors using pixel maps |
|
False |
Yes | Yes | |
MapStencil PixelMap Stencil |
Enable mapping of stencil values using pixel maps |
|
False |
Yes | Yes | |
RedScale PixelTransfer Red Scale Factor |
PixelTransfer red scale factor | Yes | Yes | |||
RedBias PixelTransfer Red Bias Factor |
PixelTransfer red bias factor | Yes | Yes | |||
GreenScale PixelTransfer Green Scale Factor |
PixelTransfer green scale factor | Yes | Yes | |||
GreenBias PixelTransfer Green Bias Factor |
PixelTransfer green bias factor | Yes | Yes | |||
BlueScale PixelTransfer Blue Scale Factor |
PixelTransfer blue scale factor | Yes | Yes | |||
BlueBias PixelTransfer Blue Bias Factor |
PixelTransfer blue bias factor | Yes | Yes | |||
AlphaScale PixelTransfer Alpha Scale Factor |
PixelTransfer alpha scale factor | Yes | Yes | |||
AlphaBias PixelTransfer Alpha Bias Factor |
PixelTransfer alpha bias factor | Yes | Yes | |||
IndexShift PixelTransfer Index Shift |
PixelTransfer index shift | Yes | Yes | |||
IndexOffset PixelTransfer Index Offset |
PixelTransfer index offset | Yes | Yes | |||
DepthScale PixelTransfer Depth Scale Factor |
PixelTransfer depth scale factor | Yes | Yes | |||
DepthBias PixelTransfer Depth Bias Factor |
PixelTransfer depth bias factor | Yes | Yes | |||
RtoRMapSize PixelMap R to R Size |
PixelMap Red to Red map size | Yes | Yes | |||
GtoGMapSize PixelMap G to G Size |
PixelMap Green to Green map size | Yes | Yes | |||
BtoBMapSize PixelMap B to B Size |
PixelMap Blue to Blue map size | Yes | Yes | |||
AtoAMapSize PixelMap A to A Size |
PixelMap Alpha to Alpha map size | Yes | Yes | |||
ItoRMapSize PixelMap I to R Size |
PixelMap Index to Red map size | Yes | Yes | |||
ItoGMapSize PixelMap I to G Size |
PixelMap Index to Green map size | Yes | Yes | |||
ItoBMapSize PixelMap I to B Size |
PixelMap Index to Blue map size | Yes | Yes | |||
ItoAMapSize PixelMap I to A Size |
PixelMap Index to Alpha map size | Yes | Yes | |||
ItoIMapSize PixelMap I to I Size |
PixelMap Index to Index map size | Yes | Yes | |||
StoSMapSize PixelMap S to S Size |
PixelMap Stencil to Stencil map size | Yes | Yes | |||
ColorTable Color Table Enabled |
Color table enable state (only with GL_SGI_color_table) |
|
False |
Yes | Yes | |
ColorTableWidth Color Table Width |
Color table width (only with GL_SGI_color_table) | Yes | Yes | |||
ColorTableInternalFormat Color Table Internal Format |
Color table internal format (only with GL_SGI_color_table) |
|
GL_RGBA8_EXT |
Yes | Yes | |
ConvolutionTarget Convolution Target |
Type of convolution operation (only with GL_EXT_convolution) |
|
None |
Yes | Yes | |
ConvolutionInternalFormat Convolution Internal Format |
Internal format of covolution operation (only with GL_EXT_convolution) |
|
GL_RGBA |
Yes | Yes | |
ConvolutionWidth Convolution Width |
Width of kernel for covolution operation (only with GL_EXT_convolution) | Yes | Yes | |||
ConvolutionHeight Convolution Height |
Height of kernel for covolution operation (only with GL_EXT_convolution) | Yes | Yes | |||
ConvolutionRedScale Convolution Red Scale Factor |
Post convolution red scale factor (only with GL_EXT_convolution) | Yes | Yes | |||
ConvolutionRedBias Convolution Red Bias Factor |
Post convolution red bias factor (only with GL_EXT_convolution) | Yes | Yes | |||
ConvolutionGreenScale Convolution Green Scale Factor |
Post convolution green scale factor (only with GL_EXT_convolution) | Yes | Yes | |||
ConvolutionGreenBias Convolution Green Bias Factor |
Post convolution green bias factor (only with GL_EXT_convolution) | Yes | Yes | |||
ConvolutionBlueScale Convolution Blue Scale Factor |
Post convolution blue scale factor (only with GL_EXT_convolution) | Yes | Yes | |||
ConvolutionBlueBias Convolution Blue Bias Factor |
Post convolution blue bias factor (only with GL_EXT_convolution) | Yes | Yes | |||
ConvolutionAlphaScale Convolution Alpha Scale Factor |
Post convolution alpha scale factor (only with GL_EXT_convolution) | Yes | Yes | |||
ConvolutionAlphaBias Convolution Alpha Bias Factor |
Post convolution alpha bias factor (only with GL_EXT_convolution) | Yes | Yes | |||
PostConvolutionColorTable Post Convolution Color Table Enabled |
Post convolution color table enable state (only with GL_SGI_color_table) |
|
False |
Yes | Yes | |
PostConvolutionColorTableWidth Post Convolution Color Table Width |
Post convolution color table width (only with GL_SGI_color_table) | Yes | Yes | |||
PostConvolutionColorTableInternalFormat Post Convolution Color Table Internal Format |
Post convolution color table internal format (only with GL_SGI_color_table) |
|
GL_RGBA8_EXT |
Yes | Yes | |
ColorMatrixRed0 Color Matrix Red 0 |
Color Matrix Red 0 (zeroth element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixRed1 Color Matrix Red 1 |
Color Matrix Red 1 (first element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixRed2 Color Matrix Red 2 |
Color Matrix Red 2 (second element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixRed3 Color Matrix Red 3 |
Color Matrix Red 3 (third element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixGreen0 Color Matrix Green 0 |
Color Matrix Green 0 (zeroth element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixGreen1 Color Matrix Green 1 |
Color Matrix Green 1 (first element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixGreen2 Color Matrix Green 2 |
Color Matrix Green 2 (second element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixGreen3 Color Matrix Green 3 |
Color Matrix Green 3 (third element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixBlue0 Color Matrix Blue 0 |
Color Matrix Blue 0 (zeroth element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixBlue1 Color Matrix Blue 1 |
Color Matrix Blue 1 (first element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixBlue2 Color Matrix Blue 2 |
Color Matrix Blue 2 (second element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixBlue3 Color Matrix Blue 3 |
Color Matrix Blue 3 (third element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixAlpha0 Color Matrix Alpha 0 |
Color Matrix Alpha 0 (zeroth element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixAlpha1 Color Matrix Alpha 1 |
Color Matrix Alpha 1 (first element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixAlpha2 Color Matrix Alpha 2 |
Color Matrix Alpha 2 (second element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixAlpha3 Color Matrix Alpha 3 |
Color Matrix Alpha 3 (third element in red vector) (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixRedScale Color Matrix Red Scale Factor |
Post color matrix red scale factor (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixRedBias Color Matrix Red Bias Factor |
Post color matrix red bias factor (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixGreenScale Color Matrix Green Scale Factor |
Post color matrix green scale factor (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixGreenBias Color Matrix Green Bias Factor |
Post color matrix green bias factor (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixBlueScale Color Matrix Blue Scale Factor |
Post color matrix blue scale factor (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixBlueBias Color Matrix Blue Bias Factor |
Post color matrix blue bias factor (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixAlphaScale Color Matrix Alpha Scale Factor |
Post color matrix alpha scale factor (only with GL_SGI_color_matrix) | Yes | Yes | |||
ColorMatrixAlphaBias Color Matrix Alpha Bias Factor |
Post color matrix alpha bias factor (only with GL_SGI_color_matrix) | Yes | Yes | |||
PostColorMatrixColorTable Post Color Matrix Color Table Enabled |
Post color matrix color table enable state (only with GL_SGI_color_table) |
|
False |
Yes | Yes | |
PostColorMatrixColorTableWidth Post Color Matrix Color Table Width |
Post color matrix color table width (only with GL_SGI_color_table) | Yes | Yes | |||
PostColorMatrixColorTableInternalFormat Post Color Matrix Color Table Internal Format |
Post color matrix color table internal format (only with GL_SGI_color_table) |
|
GL_RGBA8_EXT |
Yes | Yes | |
Histogram Histogram Enabled |
Histogram enable state (only with GL_EXT_histogram) |
|
False |
Yes | Yes | |
HistogramWidth Histogram Width |
Histogram width (only with GL_EXT_histogram) | Yes | Yes | |||
HistogramInternalFormat Histogram Internal Format |
Histogram internal format (only with GL_EXT_histogram) |
|
GL_RGBA8_EXT |
Yes | Yes | |
HistogramSink Histogram Sink |
Histogram sink - pixels thrown out after statistics are taken (only with GL_EXT_histogram) |
|
False |
Yes | Yes | |
Minmax Minmax Enabled |
Minmax enable state (only with GL_EXT_histogram) |
|
False |
Yes | Yes | |
MinmaxInternalFormat Minmax Internal Format |
Minmax internal format (only with GL_EXT_histogram) |
|
GL_RGBA8_EXT |
Yes | Yes | |
MinmaxSink Minmax Sink |
Minmax sink - pixels thrown out after statistics are taken (only with GL_EXT_histogram) |
|
False |
Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
TwistsPerStrip Twists Per Triangle Strip |
Number of twists in each triangle strip. To get results from this, you must specify FacingFront and FacingBack values other than the default | Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
VertexArray Use Vertex Array Extension |
Use vertex array extension to define vertices and accompanying data (requires GL_EXT_vertex_array) |
|
False |
Yes | Yes | |
VertexArray11 Use 1.1 Vertex Arrays |
Use OpenGL 1.1 definition for vertex arrays to define vertices (require OpenGL 1.1) |
|
False |
Yes | Yes | |
Size Primitive Size |
Size of single primitive in pixels | Yes | Yes | |||
ObjsPerBeginEnd Objects Per Begin/End Structure |
Number of objects defined between each pair of glBegin and glEnd calls | Yes | Yes | |||
VertexDim Dimension of Vertex Data |
Dimension of vertex data (may be limited by choice of compile time flags to 3 only, see README) | Yes | Yes | |||
Orientation Orientation |
Orientation on each primitive around its center |
|
Random |
Yes | Yes | |
Antialias Antialiasing |
Anti-aliased (smooth) drawing enable state, with quality hint data |
|
Off |
Yes | Yes | |
ColorData Color/Index Data |
Color data associated with vertex data |
|
None |
Yes | Yes | |
NormalData Normal Data |
Normal data associated with vertex data |
|
None |
Yes | Yes | |
TexData Texture Coordinate Data |
Texture coordinate data associated with vertex data |
|
None |
Yes | Yes | |
LockArrays Use LockArraysSGI |
Use LockArraysSGI (requires GL_SGI_compiled_vertex_array) |
|
None |
Yes | Yes | |
DrawElements Use DrawElements |
Use DrawElements for vertex array data (requires OpenGL 1.1) |
|
None |
Yes | Yes | |
InterleavedData Interleaved Data |
Interleave vertex array data (requires OpenGL 1.1) |
|
None |
Yes | Yes | |
ShadeModel Shading Model |
Shading model state |
|
GL_SMOOTH |
Yes | Yes | |
LocalLights Number of Local Lights |
Number of local lights | Yes | Yes | |||
InfiniteLights Number of Infinite Lights |
Number of infinite lights | Yes | Yes | |||
SpecularComponent Specular Component |
Material specular component is non-zero when On |
|
On |
Yes | Yes | |
Shininess Shininess |
Material's shininess (or specular exponent) | Yes | Yes | |||
LocalViewer Local Viewer |
Local viewer enable state |
|
Off |
Yes | Yes | |
ColorMaterialMode Color Material Properties |
Component(s) changed with ColorMaterial call |
|
GL_AMBIENT_AND_DIFFUSE |
Yes | Yes | |
ColorMaterialSide Color Material Side |
Side on which the material will change with ColorMaterial |
|
GL_FRONT |
Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
TransformType Transform Type |
Type of transform to test |
|
Rotate |
Yes | Yes | |
PointDraw Draw Point Between Transforms |
Enables a point to be drawn between transforms to foil lazy evaluation |
|
Off |
Yes | Yes | |
PushPop Push and Pop Around Transforms |
Enables a push to be done before the transform and a pop afterwards |
|
Off |
Yes | Yes |
Property/String Names | Description | Settable? | Printed? | |||
PixelZoomX Pixel Zoom X |
Pixel Zoom X factor | Yes | Yes | |||
PixelZoomY Pixel Zoom Y |
Pixel Zoom Y factor | Yes | Yes |
// Lit triangle example TrianglesTest { (InfiniteLights *) // Cycle through all possible number of lights (NormalData PerVertex) // Supply one normal per vertex }Alternately, you could do the same thing by using a range instead of a wildcard:
// Lit triangle example TrianglesTest { (InfiniteLights from 0 to 8) // Cycle through all possible number of lights (NormalData PerVertex) // Supply one normal per vertex }The attributes used in examples above are both local attributes. This means that they only affect tests created by that one test description. Global attributes do not occur in a test description but lie outside them, and affect all test descriptions which follow. Here's an example:
// Global attribute example // These are our two global attributes (AcceptObjs .5) // 50% of primitives will be trivially accepted (RejectObjs .5) // 50% of primitives will be trivially rejected // Here are our test descriptions PointsTest // Do a point test, 50/50 accept/reject LinesTest // Do a lines test, 50/50 accept/reject TrianglesTest // Do a triangles test, 50/50 accept/rejectNotice that the global attribute affected the three test descriptions that followed. If a global attribute does not pertain to a test description which follows, it is harmless. For instance,
(LineWidth 2) // Global attribute PointsTest // LineWidth doesn't apply to Points, attribute // is ignored LinesTest // Global attribute correctly applied to LinesWe have seen that one test description can create many tests by varying values within an attribute. You are not limited to varying just one attribute. For example,
PolygonTest { (NormalData PerVertex) (InfiniteLights from 1 to 2) (LocalLights 1 2) }This would result in the Cartesian product of all the various attribute values. In this case, four tests would arise from this one test description:
(InfiniteLights 1 2) TrianglesTest { (InfiniteLights 1) // WARNING! This is the second time it's been used. }
This will result in two identical tests. This is certainly not counter-intuitive, but should be avoided.
If an attribute belonging to an abstract class doesn't apply to a child class, multiple identical tests can occur. For example:
(ShadeModel GL_FLAT GL_SMOOTH) PointsTestHere, flat-shaded and smooth-shaded points are identical, but this definition will create two cases anyway. Luckily, there aren't many cases of this.
ColorMaterial has no effect in Color Index mode, thus a material must be sent down every time instead. This has not been implemented in GLperf yet.
Stencil test operations have not been implemented yet.
Accumulation buffer operations have not been implemented yet.
Thanks to Michael Gold (SGI) for adding vertex arrays and porting the code to Windows95. Thanks to Suzy Deffeyes (IBM) for porting the code to OS/2 WARP. Thanks to Thomax Rix (Intergraph) for porting to WindowsNT. Also, thanks to Kevin Rushforth and Travis Bryson (both SUN) for their keen eyes and diligence -- they improved GLperf in many ways.
Thanks to Barry Minor (IBM) for coding the better part of the layout code and for doing the TextureImage module in the first version. Thanks to Chris Mussack (IBM) for his invaluable architectural advice during the design of GLperf.