GLperf 3.1.2


Author

John F. Spitzer <spit@sgi.com>
ISD Performance Engineering
Silicon Graphics Computer Systems
Mail Stop 3L-916
2011 N. Shoreline Blvd.
Mountain View, CA 94043-1389

Abstract

GLperf is a tool developed to measure performance of OpenGL on a given system. It enables you to explicitly set the state of OpenGL and the kind of data you will be sending down. My foremost goal was to provide flexibility in measuring performance over a wide range of states and scenarios. You should use this tool as you would a magnifying glass -- to closely inspect performance in specific sections of OpenGL.

Invocation

GLperf [-d] [-p] [-s] [-u] input_file [< input_file]

where -d specifies delta output, default is no delta
where -p specifies pixel metrics (e.g. pixels/sec), default is objects
where -s specifies default state delta output, default is no default state delta
where -u specifies microsecond timings, default is objects per second
input_file is the name of the input file

GLperf will also take input from standard input if no input file is given.

Highlights of GLperf

  1. Ease of Use
  2. Functional Completeness

Ease of Use

GLperf provides a simple yet flexible input file format for specifying the OpenGL primitives you want to time. This format enables GLperf objects to be defined (e.g. a line strip) with different attributes (e.g. line width).

Attributes

Attributes can be local or global. Local attributes apply only to one object definition, while global attributes apply to all definitions which follow it in the input file. I'll provide more on this later, but it enables you to, say, set all tests to have an RGB or color index visual, without explicitly setting it in each test definition. Attributes can be specified by giving a value, a list of values, a range, a wildcard or a printf statement. A value might be:
(TexMagFilter GL_LINEAR)
where we want the Texture Magnification Filter to be set to GL_LINEAR.
Attribute Lists
You can also list the values you want run. For example,
(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!
Attribute Ranges
Another method of specifying values is to give a range. Ranges can be defined over both (decimal or hex) integer and floating point numbers. The "step" value defaults to 1, but can be set to any non-zero number. For example, if we wanted to vary the number of objects drawn per Begin/End construct, we could have the following line in the input specification:
(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.
Attribute Wildcards
Yet another method of choosing attribute values is to use a wildcard. This will give all possible values for a given attribute. For example,
(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.
The Printf Attribute
A special case of attribute value is the 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)
}

Assigning the Same Attributes to Multiple Properties
If you would like to two or more properties to be assigned the same set of attributes, you can simply do this by enclosing them in brackets. For instance, if you would like to draw progressively larger square glDrawPixels, you could do this: 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)
}

Comments

GLperf input files may contain either C or C++ style comments. C comments are the standard /* */ 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.

Functional Completeness

GLperf was designed to allow you to change most attributes that could affect performance. This includes many of the OpenGL state variables (e.g. Depth Functions, Alpha Functions, Fogging Functions, Texture Options, Polygon Mode, Number of Lights, etc.). In addition to these, you may specify:

Extendability

GLperf has been written in an object-oriented manner to keep a leash on the vast amount of state information and to minimize the amount of code replication through use of inheritance. This version is coded in C and uses lex and yacc to parse the input language. Since all the data is contained in an object hierarchy, all processing of that data is restricted to one class, which can be easily extended to handle more or different information. Additionally, GLperf supports multiple inheritance, so that localization of data can be maximized. This is particularly useful in the testing of image operators (ReadPixels, DrawPixels, CopyPixels, etc.) I'll be talking about the object hierarchy in detail a little later.

Input File Format

The input file format can be described by the following grammar:
Suite -> GlobalProperty Suite | TestDescription Suite | TestDescription
TestDescription -> TestName | TestName { LocalPropertyList }
LocalPropertyList -> Property | Property LocalPropertyList
GlobalProperty -> Property
Property -> ( PropertyName AttributeValue )
AttributeValue -> Range | List | Wildcard
Range -> 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 | *


Where TestName is one of:
  • BitmapTest
  • ClearTest
  • CopyPixelsTest
  • DrawPixelsTest
  • LineLoopTest
  • LineStripTest
  • LinesTest
  • PointsTest
  • PolygonTest
  • QuadStripTest
  • QuadsTest
  • ReadPixelsTest
  • TexImageTest
  • TextTest
  • TransformTest
  • TriangleFanTest
  • TriangleStripTest
  • TrianglesTest


  • Where PropertyName is one of:
    AcceptObjs DstBlendFunc PostTexFilterGreenBias
    AccumAlphaSize ExecuteMode PostTexFilterGreenScale
    AccumBlueSize FacingBack PostTexFilterRedBias
    AccumGreenSize FacingFront PostTexFilterRedScale
    AccumRedSize FeedbackType PrintModeDelta
    AlphaBias FileName PrintModeMicrosec
    AlphaRef Fog PrintModePixels
    AlphaScale FrameBufferLevel PrintModeStateDelta
    AlphaSize GLUExtensions Projection
    AlphaTest GLUVersion PushPop
    Antialias GLXExtensions RasterPosDim
    Aspect GLXVersion ReadBuffer
    AtoAMapSize GLperfVersion ReadOrder
    AuxBuffers GreenBias ReadPixelsHeight
    BitmapHeight GreenScale ReadPixelsWidth
    BitmapWidth GreenSize RedBias
    Blend GtoGMapSize RedScale
    BlendEquation Histogram RedSize
    BlueBias HistogramInternalFormat RejectObjs
    BlueScale HistogramSink RenderMode
    BlueSize HistogramWidth Reps
    BtoBMapSize Host ResidentTexObjs
    CharFont HostCPU Rgba
    CharsPerString HostCPUCount RtoRMapSize
    ClearAccumBuffer HostMemorySize SampleBuffers
    ClearColor HostModel SamplesPerPixel
    ClearColorBuffer HostOperatingSystem Scissor
    ClearDepthBuffer HostOperatingSystemVersion ScissorHeight
    ClearIndex HostPrimaryCacheSize ScissorWidth
    ClearStencilBuffer HostSecondaryCacheSize ScissorX
    ClipAmount HostVendor ScissorY
    ClipMode ImageAlignment ScreenHeight
    ClipObjs ImageDepth ScreenNumber
    ColorData ImageExtent ScreenWidth
    ColorDim ImageFormat ShadeModel
    ColorMask ImageHeight SharedMemConnection
    ColorMaterialMode ImageLSBFirst Shininess
    ColorMaterialSide ImageSwapBytes Size
    ColorMatrixAlpha0 ImageType SpecularComponent
    ColorMatrixAlpha1 ImageWidth SrcBlendFunc
    ColorMatrixAlpha2 IndexMask StencilSize
    ColorMatrixAlpha3 IndexOffset StencilTest
    ColorMatrixAlphaBias IndexShift Stereo
    ColorMatrixAlphaScale IndexSize StoSMapSize
    ColorMatrixBlue0 InfiniteLights SubTexImageDepth
    ColorMatrixBlue1 InterleavedData SubTexImageHeight
    ColorMatrixBlue2 Iterations SubTexImageWidth
    ColorMatrixBlue3 ItoAMapSize TestType
    ColorMatrixBlueBias ItoBMapSize TexBorder
    ColorMatrixBlueScale ItoGMapSize TexColorTable
    ColorMatrixGreen0 ItoIMapSize TexColorTableInternalFormat
    ColorMatrixGreen1 ItoRMapSize TexColorTableWidth
    ColorMatrixGreen2 LineStipple TexCompSelect
    ColorMatrixGreen3 LineWidth TexComps
    ColorMatrixGreenBias LocalLights TexData
    ColorMatrixGreenScale LocalViewer TexDepth
    ColorMatrixRed0 LockArrays TexDetailHeight
    ColorMatrixRed1 LogicOp TexDetailLevel
    ColorMatrixRed2 LoopFuncPtrs TexDetailMode
    ColorMatrixRed3 LoopUnroll TexDetailWidth
    ColorMatrixRedBias MapColor TexExtent
    ColorMatrixRedScale MapStencil TexFunc
    ColorTable MinimumTime TexGen
    ColorTableInternalFormat Minmax TexHeight
    ColorTableWidth MinmaxInternalFormat TexImageBaseLevel
    ConvolutionAlphaBias MinmaxSink TexImageBorder
    ConvolutionAlphaScale Month TexImageComps
    ConvolutionBlueBias Multisample TexImageDepth
    ConvolutionBlueScale NormalData TexImageExtent
    ConvolutionGreenBias ObjDraw TexImageHeight
    ConvolutionGreenScale Objs TexImageLevel
    ConvolutionHeight ObjsPerBeginEnd TexImageMaximumLevel
    ConvolutionInternalFormat OpenGLClientExtensions TexImageMipmap
    ConvolutionRedBias OpenGLClientVendor TexImageSrc
    ConvolutionRedScale OpenGLClientVersion TexImageTarget
    ConvolutionTarget OpenGLExtensions TexImageWidth
    ConvolutionWidth OpenGLRenderer TexLOD
    CopyPixelsHeight OpenGLServerExtensions TexMagFilter
    CopyPixelsType OpenGLServerVendor TexMinFilter
    CopyPixelsWidth OpenGLServerVersion TexTarget
    CullFace OpenGLVendor TexWidth
    DataAlignment OpenGLVersion TexWrapQ
    Day Orientation TexWrapR
    DepthBias PixelZoomX TexWrapS
    DepthMask PixelZoomY TexWrapT
    DepthOrder PointDraw TransformType
    DepthScale PolygonModeBack TwistsPerStrip
    DepthSize PolygonModeFront TwoSided
    DepthTest PolygonSides UserString
    DirectRender PolygonStipple VertexArray
    DisplayName PostColorMatrixColorTable VertexArray11
    Dither PostColorMatrixColorTableInternalFormat VertexDim
    DoubleBuffer PostColorMatrixColorTableWidth VisualClass
    DrawBuffer PostConvolutionColorTable VisualId
    DrawElements PostConvolutionColorTableInternalFormat VisualType
    DrawOrder PostConvolutionColorTableWidth WindowHeight
    DrawPixelsHeight PostTexFilterAlphaBias WindowSystem
    DrawPixelsWidth PostTexFilterAlphaScale WindowWidth
    DrawableType PostTexFilterBlueBias Year
    DriverVersion PostTexFilterBlueScale

    Where Enumerated is one of the permissible values listed in the property description tables below.

    Class Hierarchy and Data Organization

    A Suite Object is created when an input file is parsed. It consists of a set of Test objects. The Test class hierarchy is as follows:
      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).
    The data stored in each class is as follows:

    Properties for Bitmap Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    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)
    RangedInteger
    [1, 2048]
    -1
    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)
    RangedInteger
    [1, 2048]
    -1
    Yes Yes

    Properties for Clear Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    ClearColorBuffer
    Clear Color Buffer
    Clear the Color Buffer
    Enumerated
    • True
    • False
    True
    Yes Yes
    ClearDepthBuffer
    Clear Depth Buffer
    Clear the Depth Buffer
    Enumerated
    • True
    • False
    False
    Yes Yes
    ClearStencilBuffer
    Clear Stencil Buffer
    Clear the Stencil Buffer
    Enumerated
    • True
    • False
    False
    Yes Yes
    ClearAccumBuffer
    Clear Accumulation Buffer
    Clear the Accumulation Buffer
    Enumerated
    • True
    • False
    False
    Yes Yes
    ClearIndex
    Clear Index
    Index value to clear to in color index mode
    RangedFloatOrInt
    [0.0, 4096.0]
    0.0
    Yes Yes
    ClearColor
    Clear Color
    Color to clear to in RGB/RGBA mode
    Enumerated
    • Red
    • Green
    • Blue
    • Cyan
    • Magenta
    • Yellow
    • White
    • Grey
    • Black
    Black
    Yes Yes
    PointDraw
    Draw Point Between Clears
    Draws a point between clears to preclude cheating
    Enumerated
    • On
    • Off
    Off
    Yes Yes

    Properties for CopyPixels Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    CopyPixelsWidth
    Width of CopyPixels
    Width of CopyPixels call
    RangedInteger
    [1, 2048]
    64
    Yes Yes
    CopyPixelsHeight
    Height of CopyPixels
    Height of CopyPixels call
    RangedInteger
    [1, 2048]
    64
    Yes Yes
    CopyPixelsType
    Type of CopyPixels
    Type of CopyPixels call - specifies what kind of buffer to copy
    Enumerated
    • GL_COLOR
    • GL_DEPTH
    • GL_STENCIL
    GL_COLOR
    Yes Yes
    ReadBuffer
    Read Buffer
    Specifies what buffer to copy from (the source of the CopyPixels)
    Enumerated
    • GL_FRONT_LEFT
    • GL_FRONT_RIGHT
    • GL_BACK_LEFT
    • GL_BACK_RIGHT
    • GL_FRONT
    • GL_BACK
    • GL_LEFT
    • GL_RIGHT
    • GL_AUX0
    • GL_AUX1
    • GL_AUX2
    • GL_AUX3
    GL_FRONT
    Yes Yes

    Properties for DrawPixels Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    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)
    RangedInteger
    [1, 2048]
    -1
    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)
    RangedInteger
    [1, 2048]
    -1
    Yes Yes

    Properties for Drawn Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    DrawableType
    Drawable Type
    Target drawable (this currently only supports rendering to windows)
    Enumerated
    • WindowDraw
    WindowDraw
    Yes Yes
    RenderMode
    Render Mode
    Render mode (currently only supports GL_RENDER)
    Enumerated
    • GL_RENDER
    GL_RENDER
    Yes Yes
    Dither
    Dither Enabled
    Dithering state
    Enumerated
    • On
    • Off
    On
    Yes Yes
    DrawBuffer
    Draw Buffer
    Buffer destination of drawing
    Enumerated
    • GL_NONE
    • GL_FRONT_LEFT
    • GL_FRONT_RIGHT
    • GL_BACK_LEFT
    • GL_BACK_RIGHT
    • GL_FRONT
    • GL_BACK
    • GL_FRONT_AND_BACK
    • GL_LEFT
    • GL_RIGHT
    • GL_AUX0
    • GL_AUX1
    • GL_AUX2
    • GL_AUX3
    GL_FRONT
    Yes Yes
    ColorMask
    Color Mask Enabled
    Color masking state - argument specifies boolean flags passed to glColorMask
    Enumerated
    • TTTT
    • TTTF
    • TTFT
    • TTFF
    • TFTT
    • TFTF
    • TFFT
    • TFFF
    • FTTT
    • FTTF
    • FTFT
    • FTFF
    • FFTT
    • FFTF
    • FFFT
    • FFFF
    TTTT
    Yes Yes
    IndexMask
    Index Mask Enabled
    Index Mask value
    RangedHexInteger
    [0, 0xffff]
    0xffff
    Yes Yes
    Scissor
    Scissoring Enabled
    Scissor test state
    Enumerated
    • On
    • Off
    Off
    Yes Yes
    ScissorX
    Scissor X
    X coordinate of scissor rectangle's origin
    RangedInteger
    [0, 2048]
    0
    Yes Yes
    ScissorY
    Scissor Y
    Y coordinate of scissor rectangle's origin
    RangedInteger
    [0, 2048]
    0
    Yes Yes
    ScissorWidth
    Scissor Width
    Width of scissor rectangle
    RangedInteger
    [0, 2048]
    -1
    Yes Yes
    ScissorHeight
    Scissor Height
    Height of scissor rectangle
    RangedInteger
    [0, 2048]
    -1
    Yes Yes

    Properties for Image Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    ImageFormat
    Image Format
    Format of the Image Data
    Enumerated
    • GL_COLOR_INDEX
    • GL_STENCIL_INDEX
    • GL_DEPTH_COMPONENT
    • GL_RED
    • GL_GREEN
    • GL_BLUE
    • GL_ALPHA
    • GL_LUMINANCE
    • GL_LUMINANCE_ALPHA
    • GL_RGB
    • GL_RGBA
    • GL_ABGR_EXT
    GL_RGBA
    Yes Yes
    ImageType
    Image Type
    Type of the Image Data
    Enumerated
    • GL_BITMAP
    • GL_UNSIGNED_BYTE
    • GL_BYTE
    • GL_UNSIGNED_SHORT
    • GL_SHORT
    • GL_UNSIGNED_INT
    • GL_INT
    • GL_FLOAT
    • GL_UNSIGNED_BYTE_3_3_2_EXT
    • GL_UNSIGNED_SHORT_4_4_4_4_EXT
    • GL_UNSIGNED_SHORT_5_5_5_1_EXT
    • GL_UNSIGNED_INT_8_8_8_8_EXT
    • GL_UNSIGNED_INT_10_10_10_2_EXT
    GL_UNSIGNED_BYTE
    Yes Yes
    ImageAlignment
    Image Alignment
    PixelStore Alignment of the Image Data
    Enumerated
    • 1
    • 2
    • 4
    • 8
    4
    Yes Yes
    ImageSwapBytes
    Image Swap Bytes
    PixelStore Swap Bytes State of the Image Data
    Enumerated
    • True
    • False
    False
    Yes Yes
    ImageLSBFirst
    Image LSB First
    PixelStore LSB First State of the Image Data, pertains to Bitmap ImageType only
    Enumerated
    • True
    • False
    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.
    RangedInteger
    [1, 65536]
    64
    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.
    RangedInteger
    [1, 65536]
    64
    Yes Yes

    Properties for Linear Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    LineWidth
    Line Width
    Line width
    RangedFloatOrInt
    [0.0, 1000.0]
    1.0
    Yes Yes
    LineStipple
    Line Stippling Enabled
    Line stipple enable state
    Enumerated
    • On
    • Off
    Off
    Yes Yes

    Properties for Polygon Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    PolygonSides
    Number of Sides in Polygon
    Number of sides on a polygon
    RangedInteger
    [3, 99]
    4
    Yes Yes

    Properties for Polygonal Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    Aspect
    Aspect
    Ratio of height of polygon to its width
    RangedFloatOrInt
    [0.01, 100.0]
    1.0
    Yes Yes
    PolygonModeFront
    Polygon Rasterization Mode/Front Side
    Polygon Rasterization Mode/Front Side
    Enumerated
    • GL_POINT
    • GL_LINE
    • GL_FILL
    GL_FILL
    Yes Yes
    PolygonModeBack
    Polygon Rasterization Mode/Back Side
    Polygon Rasterization Mode/Back Side
    Enumerated
    • GL_POINT
    • GL_LINE
    • GL_FILL
    GL_FILL
    Yes Yes
    PolygonStipple
    Polygon Stippling Enabled
    Polygon Stipple enable state
    Enumerated
    • On
    • Off
    Off
    Yes Yes
    TwoSided
    Two Sided Lighting
    Two sided lighting enable state
    Enumerated
    • On
    • Off
    Off
    Yes Yes
    CullFace
    Cull Face Mode
    Face culling method
    Enumerated
    • Off
    • GL_FRONT
    • GL_BACK
    • GL_FRONT_AND_BACK
    Off
    Yes Yes
    FacingFront
    Fraction of Polygons Facing Front
    Fraction of primitives that are facing front, FacingBack + FacingFront must equal 1.0
    RangedFloat
    [0.0, 1.0]
    1.0
    Yes Yes
    FacingBack
    Fraction of Polygons Facing Back
    Fraction of primitives that are facing back, FacingBack + FacingFront must equal 1.0
    RangedFloat
    [0.0, 1.0]
    0.0
    Yes Yes

    Properties for Primitive Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    ColorDim
    Dimension of Color Data
    Dimension of Color Data
    RangedInteger
    [3, 4]
    3
    Yes Yes
    Projection
    Projection Matrix Type
    Projection Matrix Type
    Enumerated
    • Parallel
    • Perspective
    Perspective
    Yes Yes
    AcceptObjs
    Fraction of Primitives Trivially Accepted
    Fraction of primitives that are trivially accepted, ClipObjs + AcceptObjs + RejectObjs must equal 1.0
    RangedFloat
    [0.0, 1.0]
    1.0
    Yes Yes
    RejectObjs
    Fraction of Primitives Trivially Rejected
    Fraction of primitives that are trivially rejected, ClipObjs + AcceptObjs + RejectObjs must equal 1.0
    RangedFloat
    [0.0, 1.0]
    0.0
    Yes Yes
    ClipObjs
    Fraction of Primitives Clipped
    Fraction of primitives that are clipped by window, ClipObjs + AcceptObjs + RejectObjs must equal 1.0
    RangedFloat
    [0.0, 1.0]
    0.0
    Yes Yes
    DepthOrder
    Vertex/RasterPos Depth Ordering
    Z Order of drawn primitives
    Enumerated
    • Coplanar
    • Random
    • BackToFront
    • FrontToBack
    Coplanar
    Yes Yes
    TexGen
    Texture Generation
    Texture generation method
    Enumerated
    • Off
    • GL_SPHERE_MAP
    • GL_EYE_LINEAR
    • GL_OBJECT_LINEAR
    Off
    Yes Yes
    TexTarget
    Texture Target
    Texture enable state
    Enumerated
    • Off
    • GL_TEXTURE_1D
    • GL_TEXTURE_2D
    • GL_TEXTURE_3D_EXT
    Off
    Yes Yes
    TexWidth
    Texture Width
    Texture image width (level 0)
    RangedInteger
    [1, 65536]
    64
    Yes Yes
    TexHeight
    Texture Height
    Texture image height (level 0)
    RangedInteger
    [1, 65536]
    64
    Yes Yes
    TexDepth
    Texture Depth
    Texture image depth (level 0), (supported only with GL_EXT_texture3D)
    RangedInteger
    [1, 65536]
    64
    Yes Yes
    TexExtent
    Texture Extent
    Texture image extent (fourth dimension), (supported only with GL_SGIS_texture4D)
    RangedInteger
    [1, 65536]
    1
    Yes Yes
    TexBorder
    Texture Border
    Width of texture border
    RangedInteger
    [0, 1]
    0
    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)
    Enumerated
    • 1
    • 2
    • 3
    • 4
    • GL_ALPHA
    • GL_ALPHA4_EXT
    • GL_ALPHA8_EXT
    • GL_ALPHA12_EXT
    • GL_ALPHA16_EXT
    • GL_LUMINANCE
    • GL_LUMINANCE4_EXT
    • GL_LUMINANCE8_EXT
    • GL_LUMINANCE12_EXT
    • GL_LUMINANCE16_EXT
    • GL_LUMINANCE_ALPHA
    • GL_LUMINANCE4_ALPHA4_EXT
    • GL_LUMINANCE6_ALPHA2_EXT
    • GL_LUMINANCE8_ALPHA8_EXT
    • GL_LUMINANCE12_ALPHA4_EXT
    • GL_LUMINANCE12_ALPHA12_EXT
    • GL_LUMINANCE16_ALPHA16_EXT
    • GL_INTENSITY_EXT
    • GL_INTENSITY4_EXT
    • GL_INTENSITY8_EXT
    • GL_INTENSITY12_EXT
    • GL_INTENSITY16_EXT
    • GL_RGB
    • GL_RGB2_EXT
    • GL_RGB4_EXT
    • GL_RGB5_EXT
    • GL_RGB5_A1_EXT
    • GL_RGB8_EXT
    • GL_RGB10_EXT
    • GL_RGB10_A2_EXT
    • GL_RGB12_EXT
    • GL_RGB16_EXT
    • GL_RGBA
    • GL_RGBA2_EXT
    • GL_RGBA4_EXT
    • GL_RGBA8_EXT
    • GL_RGBA12_EXT
    • GL_RGBA16_EXT
    • GL_DUAL_ALPHA4_SGIS
    • GL_DUAL_ALPHA8_SGIS
    • GL_DUAL_ALPHA12_SGIS
    • GL_DUAL_ALPHA16_SGIS
    • GL_DUAL_LUMINANCE4_SGIS
    • GL_DUAL_LUMINANCE8_SGIS
    • GL_DUAL_LUMINANCE12_SGIS
    • GL_DUAL_LUMINANCE16_SGIS
    • GL_DUAL_INTENSITY4_SGIS
    • GL_DUAL_INTENSITY8_SGIS
    • GL_DUAL_INTENSITY12_SGIS
    • GL_DUAL_INTENSITY16_SGIS
    • GL_DUAL_LUMINANCE_ALPHA4_SGIS
    • GL_DUAL_LUMINANCE_ALPHA8_SGIS
    • GL_QUAD_ALPHA4_SGIS
    • GL_QUAD_ALPHA8_SGIS
    • GL_QUAD_LUMINANCE4_SGIS
    • GL_QUAD_LUMINANCE8_SGIS
    • GL_QUAD_INTENSITY4_SGIS
    • GL_QUAD_INTENSITY8_SGIS
    3
    Yes Yes
    TexCompSelect
    Texture Component Selected
    Texture component that is selected (only supported with GL_SGIS_texture_select)
    RangedInteger
    [0, 3]
    0
    Yes Yes
    TexLOD
    Texture Level Of Detail
    Texture level of detail for computed texture coordinates of primitives
    RangedFloatOrInt
    [-32., 32.]
    0.
    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)
    Enumerated
    • GL_NEAREST
    • GL_LINEAR
    • GL_FILTER4_SGIS
    • GL_LINEAR_DETAIL_SGIS
    • GL_LINEAR_DETAIL_ALPHA_SGIS
    • GL_LINEAR_DETAIL_COLOR_SGIS
    • GL_LINEAR_SHARPEN_SGIS
    • GL_LINEAR_SHARPEN_ALPHA_SGIS
    • GL_LINEAR_SHARPEN_COLOR_SGIS
    GL_NEAREST
    Yes Yes
    TexMinFilter
    Texture Minification Filter
    Texture minification filter (filter4 only with GL_SGIS_texture_filter4)
    Enumerated
    • GL_NEAREST
    • GL_LINEAR
    • GL_FILTER4_SGIS
    • GL_NEAREST_MIPMAP_NEAREST
    • GL_NEAREST_MIPMAP_LINEAR
    • GL_LINEAR_MIPMAP_NEAREST
    • GL_LINEAR_MIPMAP_LINEAR
    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)
    Enumerated
    • GL_CLAMP
    • GL_REPEAT
    • GL_CLAMP_TO_BORDER_SGIS
    • GL_CLAMP_TO_EDGE_SGIS
    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)
    Enumerated
    • GL_CLAMP
    • GL_REPEAT
    • GL_CLAMP_TO_BORDER_SGIS
    • GL_CLAMP_TO_EDGE_SGIS
    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)
    Enumerated
    • GL_CLAMP
    • GL_REPEAT
    • GL_CLAMP_TO_BORDER_SGIS
    • GL_CLAMP_TO_EDGE_SGIS
    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)
    Enumerated
    • GL_CLAMP
    • GL_REPEAT
    • GL_CLAMP_TO_BORDER_SGIS
    • GL_CLAMP_TO_EDGE_SGIS
    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)
    UnrangedFloatOrInt
    Any Float
    1.
    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)
    UnrangedFloatOrInt
    Any Float
    0.
    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)
    UnrangedFloatOrInt
    Any Float
    1.
    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)
    UnrangedFloatOrInt
    Any Float
    0.
    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)
    UnrangedFloatOrInt
    Any Float
    1.
    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)
    UnrangedFloatOrInt
    Any Float
    0.
    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)
    UnrangedFloatOrInt
    Any Float
    1.
    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)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    TexColorTable
    Texture Color Table Enabled
    Texture color table enable state (only with GL_SGI_texture_color_table)
    Enumerated
    • True
    • False
    False
    Yes Yes
    TexColorTableWidth
    Texture Color Table Width
    Texture color table width (only with GL_SGI_texture_color_table)
    RangedInteger
    [1, 65536]
    256
    Yes Yes
    TexColorTableInternalFormat
    Texture Color Table Internal Format
    Texture color table internal format (only with GL_SGI_texture_color_table)
    Enumerated
    • 1
    • 2
    • 3
    • 4
    • GL_ALPHA
    • GL_ALPHA4_EXT
    • GL_ALPHA8_EXT
    • GL_ALPHA12_EXT
    • GL_ALPHA16_EXT
    • GL_LUMINANCE
    • GL_LUMINANCE4_EXT
    • GL_LUMINANCE8_EXT
    • GL_LUMINANCE12_EXT
    • GL_LUMINANCE16_EXT
    • GL_LUMINANCE_ALPHA
    • GL_LUMINANCE4_ALPHA4_EXT
    • GL_LUMINANCE6_ALPHA2_EXT
    • GL_LUMINANCE8_ALPHA8_EXT
    • GL_LUMINANCE12_ALPHA4_EXT
    • GL_LUMINANCE12_ALPHA12_EXT
    • GL_LUMINANCE16_ALPHA16_EXT
    • GL_INTENSITY_EXT
    • GL_INTENSITY4_EXT
    • GL_INTENSITY8_EXT
    • GL_INTENSITY12_EXT
    • GL_INTENSITY16_EXT
    • GL_RGB
    • GL_RGB2_EXT
    • GL_RGB4_EXT
    • GL_RGB5_EXT
    • GL_RGB5_A1_EXT
    • GL_RGB8_EXT
    • GL_RGB10_EXT
    • GL_RGB10_A2_EXT
    • GL_RGB12_EXT
    • GL_RGB16_EXT
    • GL_RGBA
    • GL_RGBA2_EXT
    • GL_RGBA4_EXT
    • GL_RGBA8_EXT
    • GL_RGBA12_EXT
    • GL_RGBA16_EXT
    GL_RGBA8_EXT
    Yes Yes
    TexFunc
    Texture Function
    Texture function (replace only with GL_EXT_texture)
    Enumerated
    • GL_MODULATE
    • GL_BLEND
    • GL_DECAL
    • GL_REPLACE_EXT
    GL_DECAL
    Yes Yes
    TexDetailWidth
    Detail Texture Width
    Detail texture width (only with GL_SGIS_detail_texture)
    RangedInteger
    [1, 1024]
    256
    Yes Yes
    TexDetailHeight
    Detail Texture Height
    Detail texture height (only with GL_SGIS_detail_texture)
    RangedInteger
    [1, 1024]
    256
    Yes Yes
    TexDetailLevel
    Detail Texture Level
    Detail texture level (only with GL_SGIS_detail_texture)
    RangedInteger
    [0, 1024]
    4
    Yes Yes
    TexDetailMode
    Detail Texture Mode
    Detail texture mode (only with GL_SGIS_detail_texture)
    Enumerated
    • GL_MODULATE
    • GL_ADD
    GL_ADD
    Yes Yes
    Fog
    Fogging Mode
    Fogging state and parameter
    Enumerated
    • Off
    • GL_LINEAR
    • GL_EXP
    • GL_EXP2
    Off
    Yes Yes
    AlphaTest
    Alpha Test Function
    Alpha test function
    Enumerated
    • Off
    • GL_NEVER
    • GL_LESS
    • GL_EQUAL
    • GL_LEQUAL
    • GL_GREATER
    • GL_NOTEQUAL
    • GL_GEQUAL
    • GL_ALWAYS
    Off
    Yes Yes
    AlphaRef
    Alpha Reference Value
    Alpha reference value
    RangedFloat
    [0.0, 1.0]
    0.0
    Yes Yes
    StencilTest
    Stencil Test Function
    Stencil test function
    Enumerated
    • Off
    • GL_NEVER
    • GL_LESS
    • GL_EQUAL
    • GL_LEQUAL
    • GL_GREATER
    • GL_NOTEQUAL
    • GL_GEQUAL
    • GL_ALWAYS
    Off
    Yes Yes
    DepthTest
    Depth Test Function
    Depth test function
    Enumerated
    • Off
    • GL_NEVER
    • GL_LESS
    • GL_EQUAL
    • GL_LEQUAL
    • GL_GREATER
    • GL_NOTEQUAL
    • GL_GEQUAL
    • GL_ALWAYS
    Off
    Yes Yes
    DepthMask
    Depth Mask
    Depth buffer write enable state
    Enumerated
    • Off
    • On
    On
    Yes Yes
    Blend
    Blend Enabled
    Blend enable state
    Enumerated
    • Off
    • On
    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)
    Enumerated
    • GL_FUNC_ADD_EXT
    • GL_LOGIC_OP
    • GL_MIN_EXT
    • GL_MAX_EXT
    • GL_FUNC_SUBTRACT_EXT
    • GL_FUNC_REVERSE_SUBTRACT_EXT
    GL_FUNC_ADD_EXT
    Yes Yes
    SrcBlendFunc
    Source Blend Function
    Source blending function (constant color/alpha only with GL_EXT_blend_color)
    Enumerated
    • GL_ZERO
    • GL_ONE
    • GL_DST_COLOR
    • GL_ONE_MINUS_DST_COLOR
    • GL_SRC_ALPHA
    • GL_ONE_MINUS_SRC_ALPHA
    • GL_DST_ALPHA
    • GL_ONE_MINUS_DST_ALPHA
    • GL_SRC_ALPHA_SATURATE
    • GL_CONSTANT_COLOR_EXT
    • GL_ONE_MINUS_CONSTANT_COLOR_EXT
    • GL_CONSTANT_ALPHA_EXT
    • GL_ONE_MINUS_CONSTANT_ALPHA_EXT
    GL_ONE
    Yes Yes
    DstBlendFunc
    Destination Blend Function
    Destination blend function (constant color/alpha only with GL_EXT_blend_color)
    Enumerated
    • GL_ZERO
    • GL_ONE
    • GL_SRC_COLOR
    • GL_ONE_MINUS_SRC_COLOR
    • GL_SRC_ALPHA
    • GL_ONE_MINUS_SRC_ALPHA
    • GL_DST_ALPHA
    • GL_ONE_MINUS_DST_ALPHA
    • GL_CONSTANT_COLOR_EXT
    • GL_ONE_MINUS_CONSTANT_COLOR_EXT
    • GL_CONSTANT_ALPHA_EXT
    • GL_ONE_MINUS_CONSTANT_ALPHA_EXT
    GL_ONE
    Yes Yes
    LogicOp
    Logical Operation
    Bitwise logical operation (only performed with color index visuals/pixel formats)
    Enumerated
    • Off
    • GL_AND
    • GL_AND_INVERTED
    • GL_AND_REVERSE
    • GL_CLEAR
    • GL_COPY
    • GL_COPY_INVERTED
    • GL_EQUIV
    • GL_INVERT
    • GL_NAND
    • GL_NOOP
    • GL_NOR
    • GL_OR
    • GL_OR_INVERTED
    • GL_OR_REVERSE
    • GL_SET
    • GL_XOR
    Off
    Yes Yes
    Multisample
    Multisample Antialiasing
    Multisample antialiasing enable state
    Enumerated
    • Off
    • On
    Off
    Yes Yes

    Properties for QuadStrip Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    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.
    RangedInteger
    [0, 100000]
    0
    Yes Yes

    Properties for RasterPos Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    RasterPosDim
    Dimension of RasterPos Data
    Dimension of RasterPos data
    RangedInteger
    [2, 3]
    3
    Yes Yes
    ColorData
    Color/Index Data
    Color or index data associated with coordinate data
    Enumerated
    • None
    • PerRasterPos
    None
    Yes Yes
    TexData
    Texture Coordinate Data
    Texture coordinate data associated with coordinate data
    Enumerated
    • None
    • PerRasterPos
    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)
    RangedFloat
    [0.0, 1.0]
    0.5
    Yes Yes
    ClipMode
    Manner in which Image/Bitmap/Text is Clipped
    Manner in which Image/Bitmap/Text is clipped by window
    Enumerated
    • Horizontal
    • Vertical
    • Random
    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
    Enumerated
    • Serial
    • Spaced
    Spaced
    Yes Yes

    Properties for ReadPixels Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    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)
    RangedInteger
    [1, 2048]
    -1
    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)
    RangedInteger
    [1, 2048]
    -1
    Yes Yes
    ReadBuffer
    Read Buffer
    Specifies what buffer to read from (the source of the ReadPixels) (aux buffers not supported on all systems)
    Enumerated
    • GL_FRONT_LEFT
    • GL_FRONT_RIGHT
    • GL_BACK_LEFT
    • GL_BACK_RIGHT
    • GL_FRONT
    • GL_BACK
    • GL_LEFT
    • GL_RIGHT
    • GL_AUX0
    • GL_AUX1
    • GL_AUX2
    • GL_AUX3
    GL_FRONT
    Yes Yes
    ReadOrder
    Order in which Images/Bitmaps/Text are Read
    Order in which Images are read into system memory
    Enumerated
    • Serial
    • Spaced
    Spaced
    Yes Yes

    Properties for Test Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    TestType
    Test Type
    Primitive type being tested
    Enumerated
    • ClearTest
    • TransformTest
    • PointsTest
    • LinesTest
    • LineLoopTest
    • LineStripTest
    • TrianglesTest
    • TriangleStripTest
    • TriangleFanTest
    • QuadsTest
    • QuadStripTest
    • PolygonTest
    • DrawPixelsTest
    • CopyPixelsTest
    • BitmapTest
    • TextTest
    • ReadPixelsTest
    • TexImageTest
    ClearTest
    No Yes
    FileName
    GLperf Script File Name
    File name of GLperf script
    StringType
    Any String
    "None"
    Yes Yes
    UserString
    User Defined String
    String to be defined by script writer for easier reading/parsing of results
    PrintfStringType
    See Printf Syntax
    "None"
    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
    Enumerated
    • False
    • True
    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
    Enumerated
    • False
    • True
    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)
    Enumerated
    • False
    • True
    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)
    Enumerated
    • False
    • True
    False
    Yes Yes
    GLperfVersion
    GLperf Version
    Version of GLperf that is being run
    StringType
    Any String
    "3.0.9"
    No Yes
    ExecuteMode
    Execute Mode
    Mode of test execution
    Enumerated
    • Immediate
    • Compile
    • CallList
    • CompileExecute
    • DestroyList
    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.
    RangedInteger
    [1, 1000000]
    1
    Yes Yes
    Iterations
    Iterations
    Number of "screenfulls" done per timing period. If set, it takes precedence over MinimumTime
    RangedInteger
    [1, 100000]
    -1
    Yes No
    Reps
    Repetitions
    Number of timing periods performed per test
    RangedInteger
    [1, 100000]
    1
    Yes No
    MinimumTime
    Test Time
    Approximate number of seconds per timing period
    RangedInteger
    [1, 100000]
    5
    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).
    RangedInteger
    [1, 8]
    1
    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).
    Enumerated
    • Off
    • On
    Off
    Yes Yes
    DataAlignment
    Modulo 4096 of Data Alignment
    Modulo 4096 value of data alignment
    RangedInteger
    [0, 4095]
    0
    Yes Yes
    Month
    Month
    Month test was run
    RangedInteger
    [1, 12]
    -1
    No Yes
    Day
    Day
    Day test was run
    RangedInteger
    [1, 31]
    -1
    No Yes
    Year
    Year
    Year test was run
    RangedInteger
    [1994, 2010]
    -1
    No Yes
    Host
    Host
    Host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    HostOperatingSystem
    Operating System
    Operating system on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    HostOperatingSystemVersion
    Operating System Version
    Version of operating system on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    HostVendor
    Host Vendor
    Hardware vendor of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    HostModel
    Host Model
    Model of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    HostCPU
    Host CPU
    CPU type of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    HostCPUCount
    Host CPU Count
    Number of CPUs on host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    HostMemorySize
    Host Memory Size
    Memory Size of host on which test was run
    UnrangedInteger
    Any Integer
    -1
    No Yes
    HostPrimaryCacheSize
    Host Primary Cache Size
    Primary cache size of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    HostSecondaryCacheSize
    Host Secondary Cache Size
    Secondary cache size of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    WindowSystem
    Window System
    Windowing system of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    DriverVersion
    Driver Version
    Driver version of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    OpenGLVendor
    OpenGL Vendor
    OpenGL vendor of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    OpenGLVersion
    OpenGL Version
    OpenGL version of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    OpenGLExtensions
    OpenGL Extensions
    OpenGL extensions of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    OpenGLRenderer
    OpenGL Renderer
    OpenGL renderer of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    OpenGLClientVendor
    OpenGL Client Vendor
    OpenGL client vendor of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    OpenGLClientVersion
    OpenGL Client Version
    OpenGL client version of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    OpenGLClientExtensions
    OpenGL Client Extensions
    OpenGL client extensions of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    GLUVersion
    GLU Version
    GLU version of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    GLUExtensions
    GLU Extensions
    GLU extensions of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    DirectRender
    Direct Rendering
    Direct rendering enable state
    Enumerated
    • True
    • False
    True
    Yes Yes
    DoubleBuffer
    Double Buffer
    Double buffer visual enable state
    Enumerated
    • True
    • False
    True
    Yes Yes
    Stereo
    Stereo
    Stereo visual enable state
    Enumerated
    • True
    • False
    False
    Yes Yes
    Rgba
    RGBA
    RGBA visual enable state
    Enumerated
    • True
    • False
    True
    Yes Yes
    IndexSize
    Color Index Size
    Indicates the minimum index size necessary in the visual/pixel format
    UnrangedInteger
    Any Integer
    0
    Yes Yes
    RedSize
    Red Size
    Indicates the minimum red size necessary in the visual/pixel format
    UnrangedInteger
    Any Integer
    1
    Yes Yes
    GreenSize
    Green Size
    Indicates the minimum green size necessary in the visual/pixel format
    UnrangedInteger
    Any Integer
    1
    Yes Yes
    BlueSize
    Blue Size
    Indicates the minimum blue size necessary in the visual/pixel format
    UnrangedInteger
    Any Integer
    1
    Yes Yes
    AlphaSize
    Alpha Size
    Indicates the minimum alpha size necessary in the visual/pixel format
    UnrangedInteger
    Any Integer
    0
    Yes Yes
    AccumRedSize
    Accum Red Size
    Indicates the minimum accumulation buffer red size necessary in the visual/pixel format
    UnrangedInteger
    Any Integer
    0
    Yes Yes
    AccumGreenSize
    Accum Green Size
    Indicates the minimum accumulation buffer green size necessary in the visual/pixel format
    UnrangedInteger
    Any Integer
    0
    Yes Yes
    AccumBlueSize
    Accum Blue Size
    Indicates the minimum accumulation buffer blue size necessary in the visual/pixel format
    UnrangedInteger
    Any Integer
    0
    Yes Yes
    AccumAlphaSize
    Accum Alpha Size
    Indicates the minimum accumulation buffer alpha size necessary in the visual/pixel format
    UnrangedInteger
    Any Integer
    0
    Yes Yes
    DepthSize
    Depth Size
    Indicates the minimum depth buffer size necessary in the visual/pixel format
    UnrangedInteger
    Any Integer
    1
    Yes Yes
    StencilSize
    Stencil Size
    Indicates the minimum stencil buffer size necessary in the visual/pixel format
    UnrangedInteger
    Any Integer
    0
    Yes Yes
    AuxBuffers
    Auxiliary Buffer Count
    Number of aux buffers that are necessary/available
    UnrangedInteger
    Any Integer
    0
    Yes Yes
    SampleBuffers
    Multisample Buffer Count
    Number of multisample buffers that are necessary/available
    RangedInteger
    [0, 1]
    0
    Yes Yes
    SamplesPerPixel
    Multisamples Per Pixel
    Multisamples requested per pixel
    RangedInteger
    [0, 16]
    0
    Yes Yes
    FrameBufferLevel
    Frame BufferLevel
    Framebuffer level (0 is mainplanes, negative is underlay, positive is overlay)
    UnrangedInteger
    Any Integer
    0
    Yes Yes
    VisualId
    Visual ID
    Indicates the visual ID of the desired visual (only applies to X, PM)
    UnrangedHexInteger
    Any Integer
    NoVisual
    Yes Yes
    VisualClass
    Visual Class
    Visual class
    Enumerated
    • StaticGray
    • GrayScale
    • StaticColor
    • PseudoColor
    • TrueColor
    • DirectColor
    -1
    No Yes
    WindowWidth
    Window Width
    Width of test window in pixels
    RangedInteger
    [100, 2048]
    384
    Yes Yes
    WindowHeight
    Window Height
    Height of test window in pixels
    RangedInteger
    [100, 2048]
    384
    Yes Yes
    ScreenWidth
    Screen Width
    Width of screen in pixels
    {
    [100, 2048]
    384
    Yes Yes
    ScreenHeight
    Screen Height
    Height of screen in pixels
    {
    [100, 2048]
    384
    Yes Yes
    DisplayName
    Display
    Name of X Display
    StringType
    Any String
    "unknown"
    No Yes
    OpenGLServerVendor
    OpenGL Server Vendor
    OpenGL server vendor of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    OpenGLServerVersion
    OpenGL Server Version
    OpenGL server version of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    OpenGLServerExtensions
    OpenGL Server Extensions
    OpenGL server extensions of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    GLXVersion
    GLX Server Version
    GLX server version of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    GLXExtensions
    GLX Server Extensions
    GLX server extensions of host on which test was run
    StringType
    Any String
    "unknown"
    No Yes
    ScreenNumber
    Screen Number
    X Screen Number of host on which test was run
    UnrangedInteger
    Any Integer
    -1
    No Yes
    SharedMemConnection
    Shared Memory Connection
    Shared memory connection state
    Enumerated
    • True
    • False
    False
    No Yes

    Properties for TexImage Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    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)
    RangedInteger
    [1, 2048]
    1
    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)
    RangedInteger
    [1, 2048]
    1
    Yes Yes
    TexImageTarget
    TexImage Target
    Target of TexImage call
    Enumerated
    • GL_TEXTURE_1D
    • GL_TEXTURE_2D
    • GL_DETAIL_TEXTURE_2D_SGIS
    • GL_TEXTURE_3D_EXT
    • GL_TEXTURE_4D_SGIS
    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)
    RangedInteger
    [1, 2048]
    -1
    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)
    RangedInteger
    [1, 2048]
    -1
    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)
    RangedInteger
    [1, 2048]
    -1
    Yes Yes
    TexImageExtent
    Extent of TexImage
    offset(texImageExtent),
    RangedInteger
    [1, 2048]
    -1
    Yes Yes
    TexImageComps
    TexImage Ccmponents
    Internal components/format of texture image
    Enumerated
    • 1
    • 2
    • 3
    • 4
    • GL_ALPHA
    • GL_ALPHA4_EXT
    • GL_ALPHA8_EXT
    • GL_ALPHA12_EXT
    • GL_ALPHA16_EXT
    • GL_LUMINANCE
    • GL_LUMINANCE4_EXT
    • GL_LUMINANCE8_EXT
    • GL_LUMINANCE12_EXT
    • GL_LUMINANCE16_EXT
    • GL_LUMINANCE_ALPHA
    • GL_LUMINANCE4_ALPHA4_EXT
    • GL_LUMINANCE6_ALPHA2_EXT
    • GL_LUMINANCE8_ALPHA8_EXT
    • GL_LUMINANCE12_ALPHA4_EXT
    • GL_LUMINANCE12_ALPHA12_EXT
    • GL_LUMINANCE16_ALPHA16_EXT
    • GL_INTENSITY_EXT
    • GL_INTENSITY4_EXT
    • GL_INTENSITY8_EXT
    • GL_INTENSITY12_EXT
    • GL_INTENSITY16_EXT
    • GL_RGB
    • GL_RGB2_EXT
    • GL_RGB4_EXT
    • GL_RGB5_EXT
    • GL_RGB5_A1_EXT
    • GL_RGB8_EXT
    • GL_RGB10_EXT
    • GL_RGB10_A2_EXT
    • GL_RGB12_EXT
    • GL_RGB16_EXT
    • GL_RGBA
    • GL_RGBA2_EXT
    • GL_RGBA4_EXT
    • GL_RGBA8_EXT
    • GL_RGBA12_EXT
    • GL_RGBA16_EXT
    • GL_DUAL_ALPHA4_SGIS
    • GL_DUAL_ALPHA8_SGIS
    • GL_DUAL_ALPHA12_SGIS
    • GL_DUAL_ALPHA16_SGIS
    • GL_DUAL_LUMINANCE4_SGIS
    • GL_DUAL_LUMINANCE8_SGIS
    • GL_DUAL_LUMINANCE12_SGIS
    • GL_DUAL_LUMINANCE16_SGIS
    • GL_DUAL_INTENSITY4_SGIS
    • GL_DUAL_INTENSITY8_SGIS
    • GL_DUAL_INTENSITY12_SGIS
    • GL_DUAL_INTENSITY16_SGIS
    • GL_DUAL_LUMINANCE_ALPHA4_SGIS
    • GL_DUAL_LUMINANCE_ALPHA8_SGIS
    • GL_QUAD_ALPHA4_SGIS
    • GL_QUAD_ALPHA8_SGIS
    • GL_QUAD_LUMINANCE4_SGIS
    • GL_QUAD_LUMINANCE8_SGIS
    • GL_QUAD_INTENSITY4_SGIS
    • GL_QUAD_INTENSITY8_SGIS
    3
    Yes Yes
    TexImageBorder
    Border of TexImage
    Width of TexImage border
    RangedInteger
    [0, 2]
    0
    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)
    RangedInteger
    [1, 2048]
    -1
    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)
    RangedInteger
    [1, 2048]
    -1
    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)
    RangedInteger
    [1, 2048]
    -1
    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.
    RangedInteger
    [1, 1024]
    -1
    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)
    Enumerated
    • SystemMemory
    • DisplayList
    • TexObj
    • Framebuffer
    SystemMemory
    Yes Yes
    TexImageLevel
    Texture Image Level
    Specifies the level at which to load the texture image
    RangedInteger
    [0, 31]
    0
    Yes Yes
    TexImageBaseLevel
    Base Texture Image Level
    Specifies base texture mipmap level for use within the texture LOD extension (requires GL_SGI_texture_lod)
    RangedInteger
    [0, 31]
    0
    Yes Yes
    TexImageMaximumLevel
    Maximum Texture Image Level
    Specifies maximum texture mipmap level for use within the texture LOD extension (requires GL_SGI_texture_lod)
    RangedInteger
    [0, 31]
    -1
    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)
    Enumerated
    • None
    • PreCalculate
    • gluBuildMipmap
    • GenerateMipmapExt
    None
    Yes Yes
    ObjDraw
    Object Drawn Between TexImage Loads
    Draws object between TexImage calls to force loading
    Enumerated
    • None
    • TexturedPoint
    • TexturedTriangle
    None
    Yes Yes
    DrawOrder
    Order in which TexImage sections are Drawn
    Order in which subimage TexImages are pulled out of memory and loaded
    Enumerated
    • Serial
    • Spaced
    Spaced
    Yes Yes

    Properties for Text Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    CharFont
    Character Font
    Name of the font to use for drawing text
    Enumerated
    • f8x13
    • f9x15
    • timR10
    • timR24
    • helvR10
    • helvR12
    • helvR18
    f9x15
    Yes Yes
    CharsPerString
    Characters Per String
    Number of characters per string drawn
    RangedInteger
    [1, 1024]
    16
    Yes Yes

    Properties for TransferMap Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    MapColor
    PixelMap Color
    Enable mapping of pixel colors using pixel maps
    Enumerated
    • True
    • False
    False
    Yes Yes
    MapStencil
    PixelMap Stencil
    Enable mapping of stencil values using pixel maps
    Enumerated
    • True
    • False
    False
    Yes Yes
    RedScale
    PixelTransfer Red Scale Factor
    PixelTransfer red scale factor
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    RedBias
    PixelTransfer Red Bias Factor
    PixelTransfer red bias factor
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    GreenScale
    PixelTransfer Green Scale Factor
    PixelTransfer green scale factor
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    GreenBias
    PixelTransfer Green Bias Factor
    PixelTransfer green bias factor
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    BlueScale
    PixelTransfer Blue Scale Factor
    PixelTransfer blue scale factor
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    BlueBias
    PixelTransfer Blue Bias Factor
    PixelTransfer blue bias factor
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    AlphaScale
    PixelTransfer Alpha Scale Factor
    PixelTransfer alpha scale factor
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    AlphaBias
    PixelTransfer Alpha Bias Factor
    PixelTransfer alpha bias factor
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    IndexShift
    PixelTransfer Index Shift
    PixelTransfer index shift
    UnrangedInteger
    Any Integer
    0
    Yes Yes
    IndexOffset
    PixelTransfer Index Offset
    PixelTransfer index offset
    UnrangedInteger
    Any Integer
    0
    Yes Yes
    DepthScale
    PixelTransfer Depth Scale Factor
    PixelTransfer depth scale factor
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    DepthBias
    PixelTransfer Depth Bias Factor
    PixelTransfer depth bias factor
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    RtoRMapSize
    PixelMap R to R Size
    PixelMap Red to Red map size
    RangedInteger
    [1, 65536]
    1
    Yes Yes
    GtoGMapSize
    PixelMap G to G Size
    PixelMap Green to Green map size
    RangedInteger
    [1, 65536]
    1
    Yes Yes
    BtoBMapSize
    PixelMap B to B Size
    PixelMap Blue to Blue map size
    RangedInteger
    [1, 65536]
    1
    Yes Yes
    AtoAMapSize
    PixelMap A to A Size
    PixelMap Alpha to Alpha map size
    RangedInteger
    [1, 65536]
    1
    Yes Yes
    ItoRMapSize
    PixelMap I to R Size
    PixelMap Index to Red map size
    RangedInteger
    [1, 65536]
    1
    Yes Yes
    ItoGMapSize
    PixelMap I to G Size
    PixelMap Index to Green map size
    RangedInteger
    [1, 65536]
    1
    Yes Yes
    ItoBMapSize
    PixelMap I to B Size
    PixelMap Index to Blue map size
    RangedInteger
    [1, 65536]
    1
    Yes Yes
    ItoAMapSize
    PixelMap I to A Size
    PixelMap Index to Alpha map size
    RangedInteger
    [1, 65536]
    1
    Yes Yes
    ItoIMapSize
    PixelMap I to I Size
    PixelMap Index to Index map size
    RangedInteger
    [1, 65536]
    1
    Yes Yes
    StoSMapSize
    PixelMap S to S Size
    PixelMap Stencil to Stencil map size
    RangedInteger
    [1, 65536]
    1
    Yes Yes
    ColorTable
    Color Table Enabled
    Color table enable state (only with GL_SGI_color_table)
    Enumerated
    • True
    • False
    False
    Yes Yes
    ColorTableWidth
    Color Table Width
    Color table width (only with GL_SGI_color_table)
    RangedInteger
    [1, 65536]
    256
    Yes Yes
    ColorTableInternalFormat
    Color Table Internal Format
    Color table internal format (only with GL_SGI_color_table)
    Enumerated
    • 1
    • 2
    • 3
    • 4
    • GL_ALPHA
    • GL_ALPHA4_EXT
    • GL_ALPHA8_EXT
    • GL_ALPHA12_EXT
    • GL_ALPHA16_EXT
    • GL_LUMINANCE
    • GL_LUMINANCE4_EXT
    • GL_LUMINANCE8_EXT
    • GL_LUMINANCE12_EXT
    • GL_LUMINANCE16_EXT
    • GL_LUMINANCE_ALPHA
    • GL_LUMINANCE4_ALPHA4_EXT
    • GL_LUMINANCE6_ALPHA2_EXT
    • GL_LUMINANCE8_ALPHA8_EXT
    • GL_LUMINANCE12_ALPHA4_EXT
    • GL_LUMINANCE12_ALPHA12_EXT
    • GL_LUMINANCE16_ALPHA16_EXT
    • GL_INTENSITY_EXT
    • GL_INTENSITY4_EXT
    • GL_INTENSITY8_EXT
    • GL_INTENSITY12_EXT
    • GL_INTENSITY16_EXT
    • GL_RGB
    • GL_RGB2_EXT
    • GL_RGB4_EXT
    • GL_RGB5_EXT
    • GL_RGB5_A1_EXT
    • GL_RGB8_EXT
    • GL_RGB10_EXT
    • GL_RGB10_A2_EXT
    • GL_RGB12_EXT
    • GL_RGB16_EXT
    • GL_RGBA
    • GL_RGBA2_EXT
    • GL_RGBA4_EXT
    • GL_RGBA8_EXT
    • GL_RGBA12_EXT
    • GL_RGBA16_EXT
    GL_RGBA8_EXT
    Yes Yes
    ConvolutionTarget
    Convolution Target
    Type of convolution operation (only with GL_EXT_convolution)
    Enumerated
    • None
    • GL_CONVOLUTION_1D_EXT
    • GL_CONVOLUTION_2D_EXT
    • GL_SEPARABLE_2D_EXT
    None
    Yes Yes
    ConvolutionInternalFormat
    Convolution Internal Format
    Internal format of covolution operation (only with GL_EXT_convolution)
    Enumerated
    • GL_LUMINANCE
    • GL_LUMINANCE_ALPHA
    • GL_INTENSITY_EXT
    • GL_RGB
    • GL_RGBA
    GL_RGBA
    Yes Yes
    ConvolutionWidth
    Convolution Width
    Width of kernel for covolution operation (only with GL_EXT_convolution)
    RangedInteger
    [1, 1024]
    3
    Yes Yes
    ConvolutionHeight
    Convolution Height
    Height of kernel for covolution operation (only with GL_EXT_convolution)
    RangedInteger
    [1, 1024]
    3
    Yes Yes
    ConvolutionRedScale
    Convolution Red Scale Factor
    Post convolution red scale factor (only with GL_EXT_convolution)
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    ConvolutionRedBias
    Convolution Red Bias Factor
    Post convolution red bias factor (only with GL_EXT_convolution)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ConvolutionGreenScale
    Convolution Green Scale Factor
    Post convolution green scale factor (only with GL_EXT_convolution)
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    ConvolutionGreenBias
    Convolution Green Bias Factor
    Post convolution green bias factor (only with GL_EXT_convolution)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ConvolutionBlueScale
    Convolution Blue Scale Factor
    Post convolution blue scale factor (only with GL_EXT_convolution)
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    ConvolutionBlueBias
    Convolution Blue Bias Factor
    Post convolution blue bias factor (only with GL_EXT_convolution)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ConvolutionAlphaScale
    Convolution Alpha Scale Factor
    Post convolution alpha scale factor (only with GL_EXT_convolution)
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    ConvolutionAlphaBias
    Convolution Alpha Bias Factor
    Post convolution alpha bias factor (only with GL_EXT_convolution)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    PostConvolutionColorTable
    Post Convolution Color Table Enabled
    Post convolution color table enable state (only with GL_SGI_color_table)
    Enumerated
    • True
    • False
    False
    Yes Yes
    PostConvolutionColorTableWidth
    Post Convolution Color Table Width
    Post convolution color table width (only with GL_SGI_color_table)
    RangedInteger
    [1, 65536]
    256
    Yes Yes
    PostConvolutionColorTableInternalFormat
    Post Convolution Color Table Internal Format
    Post convolution color table internal format (only with GL_SGI_color_table)
    Enumerated
    • 1
    • 2
    • 3
    • 4
    • GL_ALPHA
    • GL_ALPHA4_EXT
    • GL_ALPHA8_EXT
    • GL_ALPHA12_EXT
    • GL_ALPHA16_EXT
    • GL_LUMINANCE
    • GL_LUMINANCE4_EXT
    • GL_LUMINANCE8_EXT
    • GL_LUMINANCE12_EXT
    • GL_LUMINANCE16_EXT
    • GL_LUMINANCE_ALPHA
    • GL_LUMINANCE4_ALPHA4_EXT
    • GL_LUMINANCE6_ALPHA2_EXT
    • GL_LUMINANCE8_ALPHA8_EXT
    • GL_LUMINANCE12_ALPHA4_EXT
    • GL_LUMINANCE12_ALPHA12_EXT
    • GL_LUMINANCE16_ALPHA16_EXT
    • GL_INTENSITY_EXT
    • GL_INTENSITY4_EXT
    • GL_INTENSITY8_EXT
    • GL_INTENSITY12_EXT
    • GL_INTENSITY16_EXT
    • GL_RGB
    • GL_RGB2_EXT
    • GL_RGB4_EXT
    • GL_RGB5_EXT
    • GL_RGB5_A1_EXT
    • GL_RGB8_EXT
    • GL_RGB10_EXT
    • GL_RGB10_A2_EXT
    • GL_RGB12_EXT
    • GL_RGB16_EXT
    • GL_RGBA
    • GL_RGBA2_EXT
    • GL_RGBA4_EXT
    • GL_RGBA8_EXT
    • GL_RGBA12_EXT
    • GL_RGBA16_EXT
    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)
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    ColorMatrixRed1
    Color Matrix Red 1
    Color Matrix Red 1 (first element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixRed2
    Color Matrix Red 2
    Color Matrix Red 2 (second element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixRed3
    Color Matrix Red 3
    Color Matrix Red 3 (third element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixGreen0
    Color Matrix Green 0
    Color Matrix Green 0 (zeroth element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixGreen1
    Color Matrix Green 1
    Color Matrix Green 1 (first element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    ColorMatrixGreen2
    Color Matrix Green 2
    Color Matrix Green 2 (second element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixGreen3
    Color Matrix Green 3
    Color Matrix Green 3 (third element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixBlue0
    Color Matrix Blue 0
    Color Matrix Blue 0 (zeroth element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixBlue1
    Color Matrix Blue 1
    Color Matrix Blue 1 (first element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixBlue2
    Color Matrix Blue 2
    Color Matrix Blue 2 (second element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    ColorMatrixBlue3
    Color Matrix Blue 3
    Color Matrix Blue 3 (third element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixAlpha0
    Color Matrix Alpha 0
    Color Matrix Alpha 0 (zeroth element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixAlpha1
    Color Matrix Alpha 1
    Color Matrix Alpha 1 (first element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixAlpha2
    Color Matrix Alpha 2
    Color Matrix Alpha 2 (second element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixAlpha3
    Color Matrix Alpha 3
    Color Matrix Alpha 3 (third element in red vector) (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    ColorMatrixRedScale
    Color Matrix Red Scale Factor
    Post color matrix red scale factor (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    ColorMatrixRedBias
    Color Matrix Red Bias Factor
    Post color matrix red bias factor (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixGreenScale
    Color Matrix Green Scale Factor
    Post color matrix green scale factor (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    ColorMatrixGreenBias
    Color Matrix Green Bias Factor
    Post color matrix green bias factor (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixBlueScale
    Color Matrix Blue Scale Factor
    Post color matrix blue scale factor (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    ColorMatrixBlueBias
    Color Matrix Blue Bias Factor
    Post color matrix blue bias factor (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    ColorMatrixAlphaScale
    Color Matrix Alpha Scale Factor
    Post color matrix alpha scale factor (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    1.
    Yes Yes
    ColorMatrixAlphaBias
    Color Matrix Alpha Bias Factor
    Post color matrix alpha bias factor (only with GL_SGI_color_matrix)
    UnrangedFloatOrInt
    Any Float
    0.
    Yes Yes
    PostColorMatrixColorTable
    Post Color Matrix Color Table Enabled
    Post color matrix color table enable state (only with GL_SGI_color_table)
    Enumerated
    • True
    • False
    False
    Yes Yes
    PostColorMatrixColorTableWidth
    Post Color Matrix Color Table Width
    Post color matrix color table width (only with GL_SGI_color_table)
    RangedInteger
    [1, 65536]
    256
    Yes Yes
    PostColorMatrixColorTableInternalFormat
    Post Color Matrix Color Table Internal Format
    Post color matrix color table internal format (only with GL_SGI_color_table)
    Enumerated
    • 1
    • 2
    • 3
    • 4
    • GL_ALPHA
    • GL_ALPHA4_EXT
    • GL_ALPHA8_EXT
    • GL_ALPHA12_EXT
    • GL_ALPHA16_EXT
    • GL_LUMINANCE
    • GL_LUMINANCE4_EXT
    • GL_LUMINANCE8_EXT
    • GL_LUMINANCE12_EXT
    • GL_LUMINANCE16_EXT
    • GL_LUMINANCE_ALPHA
    • GL_LUMINANCE4_ALPHA4_EXT
    • GL_LUMINANCE6_ALPHA2_EXT
    • GL_LUMINANCE8_ALPHA8_EXT
    • GL_LUMINANCE12_ALPHA4_EXT
    • GL_LUMINANCE12_ALPHA12_EXT
    • GL_LUMINANCE16_ALPHA16_EXT
    • GL_INTENSITY_EXT
    • GL_INTENSITY4_EXT
    • GL_INTENSITY8_EXT
    • GL_INTENSITY12_EXT
    • GL_INTENSITY16_EXT
    • GL_RGB
    • GL_RGB2_EXT
    • GL_RGB4_EXT
    • GL_RGB5_EXT
    • GL_RGB5_A1_EXT
    • GL_RGB8_EXT
    • GL_RGB10_EXT
    • GL_RGB10_A2_EXT
    • GL_RGB12_EXT
    • GL_RGB16_EXT
    • GL_RGBA
    • GL_RGBA2_EXT
    • GL_RGBA4_EXT
    • GL_RGBA8_EXT
    • GL_RGBA12_EXT
    • GL_RGBA16_EXT
    GL_RGBA8_EXT
    Yes Yes
    Histogram
    Histogram Enabled
    Histogram enable state (only with GL_EXT_histogram)
    Enumerated
    • True
    • False
    False
    Yes Yes
    HistogramWidth
    Histogram Width
    Histogram width (only with GL_EXT_histogram)
    RangedInteger
    [1, 65536]
    256
    Yes Yes
    HistogramInternalFormat
    Histogram Internal Format
    Histogram internal format (only with GL_EXT_histogram)
    Enumerated
    • GL_ALPHA
    • GL_ALPHA4_EXT
    • GL_ALPHA8_EXT
    • GL_ALPHA12_EXT
    • GL_ALPHA16_EXT
    • GL_LUMINANCE
    • GL_LUMINANCE4_EXT
    • GL_LUMINANCE8_EXT
    • GL_LUMINANCE12_EXT
    • GL_LUMINANCE16_EXT
    • GL_LUMINANCE_ALPHA
    • GL_LUMINANCE4_ALPHA4_EXT
    • GL_LUMINANCE6_ALPHA2_EXT
    • GL_LUMINANCE8_ALPHA8_EXT
    • GL_LUMINANCE12_ALPHA4_EXT
    • GL_LUMINANCE12_ALPHA12_EXT
    • GL_LUMINANCE16_ALPHA16_EXT
    • GL_RGB
    • GL_RGB2_EXT
    • GL_RGB4_EXT
    • GL_RGB5_EXT
    • GL_RGB5_A1_EXT
    • GL_RGB8_EXT
    • GL_RGB10_EXT
    • GL_RGB10_A2_EXT
    • GL_RGB12_EXT
    • GL_RGB16_EXT
    • GL_RGBA
    • GL_RGBA2_EXT
    • GL_RGBA4_EXT
    • GL_RGBA8_EXT
    • GL_RGBA12_EXT
    • GL_RGBA16_EXT
    GL_RGBA8_EXT
    Yes Yes
    HistogramSink
    Histogram Sink
    Histogram sink - pixels thrown out after statistics are taken (only with GL_EXT_histogram)
    Enumerated
    • True
    • False
    False
    Yes Yes
    Minmax
    Minmax Enabled
    Minmax enable state (only with GL_EXT_histogram)
    Enumerated
    • True
    • False
    False
    Yes Yes
    MinmaxInternalFormat
    Minmax Internal Format
    Minmax internal format (only with GL_EXT_histogram)
    Enumerated
    • GL_ALPHA
    • GL_ALPHA4_EXT
    • GL_ALPHA8_EXT
    • GL_ALPHA12_EXT
    • GL_ALPHA16_EXT
    • GL_LUMINANCE
    • GL_LUMINANCE4_EXT
    • GL_LUMINANCE8_EXT
    • GL_LUMINANCE12_EXT
    • GL_LUMINANCE16_EXT
    • GL_LUMINANCE_ALPHA
    • GL_LUMINANCE4_ALPHA4_EXT
    • GL_LUMINANCE6_ALPHA2_EXT
    • GL_LUMINANCE8_ALPHA8_EXT
    • GL_LUMINANCE12_ALPHA4_EXT
    • GL_LUMINANCE12_ALPHA12_EXT
    • GL_LUMINANCE16_ALPHA16_EXT
    • GL_RGB
    • GL_RGB2_EXT
    • GL_RGB4_EXT
    • GL_RGB5_EXT
    • GL_RGB5_A1_EXT
    • GL_RGB8_EXT
    • GL_RGB10_EXT
    • GL_RGB10_A2_EXT
    • GL_RGB12_EXT
    • GL_RGB16_EXT
    • GL_RGBA
    • GL_RGBA2_EXT
    • GL_RGBA4_EXT
    • GL_RGBA8_EXT
    • GL_RGBA12_EXT
    • GL_RGBA16_EXT
    GL_RGBA8_EXT
    Yes Yes
    MinmaxSink
    Minmax Sink
    Minmax sink - pixels thrown out after statistics are taken (only with GL_EXT_histogram)
    Enumerated
    • True
    • False
    False
    Yes Yes

    Properties for TriangleStrip Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    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
    RangedInteger
    [0, 100000]
    0
    Yes Yes

    Properties for Vertex Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    VertexArray
    Use Vertex Array Extension
    Use vertex array extension to define vertices and accompanying data (requires GL_EXT_vertex_array)
    Enumerated
    • False
    • True
    False
    Yes Yes
    VertexArray11
    Use 1.1 Vertex Arrays
    Use OpenGL 1.1 definition for vertex arrays to define vertices (require OpenGL 1.1)
    Enumerated
    • False
    • True
    False
    Yes Yes
    Size
    Primitive Size
    Size of single primitive in pixels
    RangedFloatOrInt
    [.01, 10000000]
    10.0
    Yes Yes
    ObjsPerBeginEnd
    Objects Per Begin/End Structure
    Number of objects defined between each pair of glBegin and glEnd calls
    RangedInteger
    [1, 100000]
    120
    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)
    RangedInteger
    [2, 3]
    3
    Yes Yes
    Orientation
    Orientation
    Orientation on each primitive around its center
    Enumerated
    • Random
    • Vertical
    • Horizontal
    Random
    Yes Yes
    Antialias
    Antialiasing
    Anti-aliased (smooth) drawing enable state, with quality hint data
    Enumerated
    • Off
    • On
    • GL_DONT_CARE
    • GL_FASTEST
    • GL_NICEST
    Off
    Yes Yes
    ColorData
    Color/Index Data
    Color data associated with vertex data
    Enumerated
    • None
    • PerFacet
    • PerVertex
    None
    Yes Yes
    NormalData
    Normal Data
    Normal data associated with vertex data
    Enumerated
    • None
    • PerFacet
    • PerVertex
    None
    Yes Yes
    TexData
    Texture Coordinate Data
    Texture coordinate data associated with vertex data
    Enumerated
    • None
    • PerVertex
    None
    Yes Yes
    LockArrays
    Use LockArraysSGI
    Use LockArraysSGI (requires GL_SGI_compiled_vertex_array)
    Enumerated
    • False
    • True
    None
    Yes Yes
    DrawElements
    Use DrawElements
    Use DrawElements for vertex array data (requires OpenGL 1.1)
    Enumerated
    • False
    • True
    None
    Yes Yes
    InterleavedData
    Interleaved Data
    Interleave vertex array data (requires OpenGL 1.1)
    Enumerated
    • False
    • True
    None
    Yes Yes
    ShadeModel
    Shading Model
    Shading model state
    Enumerated
    • GL_SMOOTH
    • GL_FLAT
    GL_SMOOTH
    Yes Yes
    LocalLights
    Number of Local Lights
    Number of local lights
    RangedInteger
    [0, 8]
    0
    Yes Yes
    InfiniteLights
    Number of Infinite Lights
    Number of infinite lights
    RangedInteger
    [0, 8]
    0
    Yes Yes
    SpecularComponent
    Specular Component
    Material specular component is non-zero when On
    Enumerated
    • On
    • Off
    On
    Yes Yes
    Shininess
    Shininess
    Material's shininess (or specular exponent)
    RangedFloatOrInt
    [0.0, 128.0]
    10.0
    Yes Yes
    LocalViewer
    Local Viewer
    Local viewer enable state
    Enumerated
    • Off
    • On
    Off
    Yes Yes
    ColorMaterialMode
    Color Material Properties
    Component(s) changed with ColorMaterial call
    Enumerated
    • GL_EMISSION
    • GL_AMBIENT
    • GL_DIFFUSE
    • GL_SPECULAR
    • GL_AMBIENT_AND_DIFFUSE
    GL_AMBIENT_AND_DIFFUSE
    Yes Yes
    ColorMaterialSide
    Color Material Side
    Side on which the material will change with ColorMaterial
    Enumerated
    • GL_FRONT
    • GL_BACK
    • GL_FRONT_AND_BACK
    GL_FRONT
    Yes Yes

    Properties for Transform Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    TransformType
    Transform Type
    Type of transform to test
    Enumerated
    • Translate
    • Rotate
    • Scale
    • Perspective
    • Ortho
    • Ortho2
    • Frustum
    Rotate
    Yes Yes
    PointDraw
    Draw Point Between Transforms
    Enables a point to be drawn between transforms to foil lazy evaluation
    Enumerated
    • On
    • Off
    Off
    Yes Yes
    PushPop
    Push and Pop Around Transforms
    Enables a push to be done before the transform and a pop afterwards
    Enumerated
    • On
    • Off
    Off
    Yes Yes

    Properties for Zoom Class

    Property/String Names Description
    Type
    Possible Values
    Default Value
    Settable? Printed?
    PixelZoomX
    Pixel Zoom X
    Pixel Zoom X factor
    UnrangedFloat
    Any Float
    1.0
    Yes Yes
    PixelZoomY
    Pixel Zoom Y
    Pixel Zoom Y factor
    UnrangedFloat
    Any Float
    1.0
    Yes Yes

    Examples

    Let's say you want to measure the effects of lights on drawing triangles. You could do this:
      // 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/reject
    
    Notice 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 Lines
    
    We 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:
    1. Polygon Test: NormalData PerVertex, InfiniteLights 1, LocalLights 1
    2. Polygon Test: NormalData PerVertex, InfiniteLights 1, LocalLights 2
    3. Polygon Test: NormalData PerVertex, InfiniteLights 2, LocalLights 1
    4. Polygon Test: NormalData PerVertex, InfiniteLights 2, LocalLights 2

    Warnings, Bugs and Additional Work

    You shouldn't specify an attribute twice -- for example, once as a global attribute and once as a local:
      (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)
      PointsTest 
    
    Here, 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.


    Acknowledgements

    Many thanks to John Dennis (DEC) for porting the C version of GLperf to the Digital Equipment machines and restructuring a large part of the include files. John also caught and fixed many type mismatches and questionable coding practices that I used in the C version. John also submitted all the environment querying mechanisms and integrated them into GLperf.

    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.