GDI Performance Tests (Compact 7)
3/12/2014
The Graphics Device Interface Performance Tests (GDI) assesses the performance of common display operations. This test can help you with the following design and development tasks:
Optimize a display driver.
Decide which display driver meets your performance requirements.
Identify which operations to perform in hardware instead of software.
Decide which hardware functionality to support in a display chipset.
Test Prerequisites
Your device must meet the following requirements before you run this test.
The following table shows the hardware requirement for the gdipTest.
Requirement | Description |
---|---|
Display hardware |
This test requires that you include a display driver in the OS design that is appropriate for the display hardware on your target device |
The following table shows the software requirements for the gdipTest.
Requirements | Description |
---|---|
Tux.exe |
Tux test harness, required for executing the test |
Kato.dll |
Kato logging engine, required for logging test data |
Gdip.dll |
Library containing the test |
Allropsscript.txt, Iescript.txt, Rdpscript.txt, or Srccopysizes.txt |
Script files. You can also write a custom script file. |
Subtests
The table below lists the subtests included in this test.
SubTest ID | Description |
---|---|
100 |
BitBlt: This function transfers pixels from a specified source rectangle to a specified destination rectangle, altering the pixels according to the selected raster operation (ROP) code. Following parameters are used in this scenario: Source =Handle to the source device context. Dest =Handle to the destination device context. ROP =Specifies a raster-operation code. These codes define how the color data for the source rectangle is to be combined with the color data for the destination rectangle to achieve the final color. Width =Specifies the logical width of the source and destination rectangles. Height =Specifies the logical height of the source and the destination rectangles. |
101 |
PatBlt This function paints the given rectangle using the brush that is currently selected into the specified device context. The brush pixels and the surface pixels are combined according to the specified raster operation. Following parameters are used in this scenario: Dest=Handle to the device context. Brush=Type of brush selected for painting ROP=Specifies the raster operation code. Width=Specifies the width, in logical units, of the rectangle. Height=Specifies the height, in logical units, of the rectangle |
102 |
DrawText: This function draws formatted text in the specified rectangle. It formats the text according to the specified format method. In this scenario following parameters are used Dest=Handle to the device context. FontHeight=Height of text to be drawn FontWeight=Weight of text to be drawn Width=Width of rectangle Height=Height of rectangle |
103 |
Polyline This function draws a series of line segments by connecting the points in the specified array. Following parameters are used: Dest=Handle to a device context. ROP2=Specifies the raster operation code. Pen=Type of pen used to draw line segments BkMode=Background can be 'OPAQUE' or 'TRANSPARENT'. Pens are affected by background Coordinates0=(x,y),(x,y),..... Coordinates1=(x,y),(x,y),..... |
104 |
MaskBlt: This function combines the color data for the source and destination bitmaps using the specified mask and raster operation. In this scenario, the following parameters are used: Source=Handle to the device context from which the bitmap is to be copied. It must be zero if the dwRop parameter specifies a raster operation that does not include a source. Dest= Handle to the destination device context. ROP=Handle to the device context from which the bitmap is to be copied. It must be zero if the dwRop parameter specifies a raster operation that does not include a source. Width=Specifies the width, in logical units, of the destination rectangle and source bitmap. Height=Specifies the height, in logical units, of the destination rectangle and source bitmap |
105 |
BitBlt: This function transfers pixels from a specified source rectangle to a specified destination rectangle, altering the pixels according to the selected raster operation (ROP) code. Following parameters are used in this scenario: Source =Handle to the source device context. Dest =Handle to the destination device context. ROP =Specifies a raster-operation code. These codes define how the color data for the source rectangle is to be combined with the color data for the destination rectangle to achieve the final color. Width =Specifies the logical width of the source and destination rectangles. Height =Specifies the logical height of the source and the destination rectangles. |
106 |
MaskBlt: This function combines the color data for the source and destination bitmaps using the specified mask and raster operation. In this scenario, the following parameters are used Source=Handle to the device context from which the bitmap is to be copied. It must be zero if the dwRop parameter specifies a raster operation that does not include a source. Dest= Handle to the destination device context. ROP=Handle to the device context from which the bitmap is to be copied. It must be zero if the dwRop parameter specifies a raster operation that does not include a source. Width=Specifies the width, in logical units, of the destination rectangle and source bitmap. Height=Specifies the height, in logical units, of the destination rectangle and source bitmap |
107 |
BitBlt: This function transfers pixels from a specified source rectangle to a specified destination rectangle, altering the pixels according to the selected raster operation (ROP) code. Following parameters are used in this scenario: Source =Handle to the source device context. Dest =Handle to the destination device context. ROP =Specifies a raster-operation code. These codes define how the color data for the source rectangle is to be combined with the color data for the destination rectangle to achieve the final color. Width =Specifies the logical width of the source and destination rectangles. Height =Specifies the logical height of the source and the destination rectangles. |
108 |
Polyline This function draws a series of line segments by connecting the points in the specified array. Following parameters are used: Dest=Handle to a device context. ROP2=Specifies the raster operation code. Pen=Type of pen used to draw line segments BkMode=Background can be 'OPAQUE' or 'TRANSPARENT'. Pens are affected by background Coordinates0=(x,y),(x,y),..... Coordinates1=(x,y),(x,y),..... |
109 |
BitBlt: This function transfers pixels from a specified source rectangle to a specified destination rectangle, altering the pixels according to the selected raster operation (ROP) code. Following parameters are used in this scenario: Source =Handle to the source device context. Dest =Handle to the destination device context. ROP =Specifies a raster-operation code. These codes define how the color data for the source rectangle is to be combined with the color data for the destination rectangle to achieve the final color. Width =Specifies the logical width of the source and destination rectangles. Height =Specifies the logical height of the source and the destination rectangles. |
110 |
PatBlt This function paints the given rectangle using the brush that is currently selected into the specified device context. The brush pixels and the surface pixels are combined according to the specified raster operation. Following parameters are used in this scenario: Dest=Handle to the device context. Brush=Type of brush selected for painting ROP=Specifies the raster operation code. Width=Specifies the width, in logical units, of the rectangle. Height=Specifies the height, in logical units, of the rectangle |
111 |
BitBlt: This function transfers pixels from a specified source rectangle to a specified destination rectangle, altering the pixels according to the selected raster operation (ROP) code. Following parameters are used in this scenario: Source =Handle to the source device context. Dest =Handle to the destination device context. ROP =Specifies a raster-operation code. These codes define how the color data for the source rectangle is to be combined with the color data for the destination rectangle to achieve the final color. Width =Specifies the logical width of the source and destination rectangles. Height =Specifies the logical height of the source and the destination rectangles. |
112 |
PatBlt This function paints the given rectangle using the brush that is currently selected into the specified device context. The brush pixels and the surface pixels are combined according to the specified raster operation. Following parameters are used in this scenario: Dest=Handle to the device context. Brush=Type of brush selected for painting ROP=Specifies the raster operation code. Width=Specifies the width, in logical units, of the rectangle. Height=Specifies the height, in logical units, of the rectangle |
113 |
BitBlt: This function transfers pixels from a specified source rectangle to a specified destination rectangle, altering the pixels according to the selected raster operation (ROP) code. Following parameters are used in this scenario: Source =Handle to the source device context. Dest =Handle to the destination device context. ROP =Specifies a raster-operation code. These codes define how the color data for the source rectangle is to be combined with the color data for the destination rectangle to achieve the final color. Width =Specifies the logical width of the source and destination rectangles. Height =Specifies the logical height of the source and the destination rectangles. |
114 |
BitBlt: This function transfers pixels from a specified source rectangle to a specified destination rectangle, altering the pixels according to the selected raster operation (ROP) code. Following parameters are used in this scenario: Source =Handle to the source device context. Dest =Handle to the destination device context. ROP =Specifies a raster-operation code. These codes define how the color data for the source rectangle is to be combined with the color data for the destination rectangle to achieve the final color. Width =Specifies the logical width of the source and destination rectangles. Height =Specifies the logical height of the source and the destination rectangles. |
115 |
BitBlt: This function transfers pixels from a specified source rectangle to a specified destination rectangle, altering the pixels according to the selected raster operation (ROP) code. Following parameters are used in this scenario: Source =Handle to the source device context. Dest =Handle to the destination device context. ROP =Specifies a raster-operation code. These codes define how the color data for the source rectangle is to be combined with the color data for the destination rectangle to achieve the final color. Width =Specifies the logical width of the source and destination rectangles. Height =Specifies the logical height of the source and the destination rectangles. |
116 |
BitBlt: This function transfers pixels from a specified source rectangle to a specified destination rectangle, altering the pixels according to the selected raster operation (ROP) code. Following parameters are used in this scenario: Source =Handle to the source device context. Dest =Handle to the destination device context. ROP =Specifies a raster-operation code. These codes define how the color data for the source rectangle is to be combined with the color data for the destination rectangle to achieve the final color. Width =Specifies the logical width of the source and destination rectangles. Height =Specifies the logical height of the source and the destination rectangles. |
117 |
DrawText This function draws formatted text in the specified rectangle. It formats the text according to the specified format method. In this scenario following parameters are used Dest=Handle to the device context. FontHeight=Height of text to be drawn FontWeight=Weight of text to be drawn Width=Width of rectangle Height=Height of rectangle |
118 |
PatBlt This function paints the given rectangle using the brush that is currently selected into the specified device context. The brush pixels and the surface pixels are combined according to the specified raster operation. Following parameters are used in this scenario: Dest=Handle to the device context. Brush=Type of brush selected for painting ROP=Specifies the raster operation code. Width=Specifies the width, in logical units, of the rectangle. Height=Specifies the height, in logical units, of the rectangle |
119 |
PatBlt This function paints the given rectangle using the brush that is currently selected into the specified device context. The brush pixels and the surface pixels are combined according to the specified raster operation. Following parameters are used in this scenario: Dest=Handle to the device context. Brush=Type of brush selected for painting ROP=Specifies the raster operation code. Width=Specifies the width, in logical units, of the rectangle. Height=Specifies the height, in logical units, of the rectangle |
Setting Up the Test
The Windows Embedded Compact Test Kit (CTK) provides four scripts that you can use with the Graphics Device Interface Performance Test.
You can also write a custom script to test a specific function or mimic an application to help you tune the performance of your target device.
While writing a script, consider the following guidelines:
Use the # character to identify a line as a comment.
In a list, use a comma to separate values.
If a comma-separated list is too long for a single line, use a backslash (\) character at the end of the line, and then continue the list on the next line.
With a group of values, for example a list of rectangle coordinates, surround each group with parentheses to make the script easier to read.
The following table shows scripts for the Graphics Device Interface Performance Test that the CTK provides.
Script | Description |
---|---|
Allropsscript.txt |
Determines which raster operations (ROPs) a display driver accelerates and then tests the accelerated ROPs. |
Iescript.txt |
Generates information that might help you optimize common display driver operations in a run-time image |
Rdpscript.txt |
Generates information that might help you optimize common display driver operations in a run-time image that includes Remote Desktop Protocol (RDP). |
Srccopysizes.txt |
Generates information that shows how display driver operations scale with number of pixels transferred |
Running the Test
The gdip Test executes the tux -o -d gdip.dll -c "/s iescript.txt" command line on default execution.
The following table shows the command-line options for the Graphics Device Interface Performance Test, which are in "" after -c.
Command-line parameter | Description |
---|---|
/s <scriptfile.txt> |
Specifies the path and file name of a script file. |
/v <0|1|2> |
Specifies the level of verbosity of status information provided by the test. You can specify a value between 0 and 3, inclusive. The default value is 2. |
/f <logresult.csv> |
Sends test results to a file at a path and file name that you specify. |
/x |
Result Log in XML Format |
/d |
Perf Results Sent to Debug Output |
Notes:
/d and /f are mutually exclusive
/d and /x are mutually exclusive
The following table shows test cases and supported keywords for the Graphics Device Interface Performance Test that you can specify in a script file.
Test case | Supported keywords | Notes |
---|---|---|
[BitBlt] |
Source=value,Dest=value,ROP=ROP3_value,Brush=value,Coordinates=(left, top, width, height, source_left, source_top), (left, top, width, height, source_left, source_top), ...,Height=min-max,Width=min-max,Heightstep=increment,Widthstep=increment |
Use the Coordinates keyword, or use the Height, Width, Heightstep, and Widthstep keywords. For Height and Width, you can specify a single value. If you specify a range for Height or Width, specify an increment for Heightstep and Widthstep, respectively. |
[MaskBitBlt] |
Source=value,Dest=value,ROP=ROP4_value,Brush=value,Coordinates=(left, top, width, height, source_left, source_top), (left, top, width, height, source_left, source_top), ...,Height=min-max,Width=min-max,Heightstep=increment,Widthstep=increment |
Use the Coordinates keyword, or use the Height, Width, Heightstep, and Widthstep keywords. For Height and Width, you can specify a single value. If you specify a range for Height or Width, specify an increment for Heightstep and Widthstep, respectively. |
[PatBlt] |
Dest=value,ROP=ROP3_value,Brush=value,Coordinates=(left, top, width, height), (left, top, width, height), ...,Height=min-max,Width=min-max, Heightstep=increment,Widthstep=increment |
Use the Coordinates keyword, or use the Height, Width, Heightstep, and Widthstep keywords. For Height and Width, you can specify a single value. If you specify a range for Height or Width, specify an increment for Heightstep and Widthstep, respectively. |
[StretchBlt] |
Source=value,Dest=value,ROP=Rop3_value,Brush=value,StretchMode=value,Coordinates=(left, top, width, height, source_left, source_top, source_width, source_height), (left, top, width, height, source_left, source_top, source_width, source_height), ...,Height=min-max,Width=min-max,Heightstep=increment,Widthstep=increment |
Use the Coordinates keyword or use the Height, Width, Heightstep, and Widthstep keywords. These keywords are mutually exclusive .For Height and Width, you can specify a single value. If you specify a range for Height or Width, specify an increment for Heightstep and Widthstep, respectively. If you do not specify a Coordinates keyword and instead specify a range of rectangles, the test assumes that the source and destination rectangles have the same width and height. |
[AlphaBlend] |
Source=value,Dest=value,Brush=value,BlendFunction=value,Coordinates=(left, top, width, height, source_left, source_top, source_width, source_height), (left, top, width, height, source_left, source_top, source_width, source_height), ...,Height=min-max,Width=min-max, Heightstep=increment,Widthstep=increment |
Use the Coordinates keyword, or use the Height, Width, Heightstep, and Widthstep keywords. For Height and Width, you can specify a single value. If you specify a range for Height or Width, specify an increment for Heightstep and Widthstep, respectively. If you do not specify a Coordinates keyword and instead specify a range of rectangles, the test assumes that the source and destination rectangles have the same width and height. |
[TransparentBlt] |
Source=value,Dest=value,Coordinates=(left, top, width, height, source_left, source_top, source_width, source_height), (left, top, width, height, source_left, source_top, source_width, source_height), ...,Height=min-max,Width=min-max,Heightstep=increment,Widthstep=increment |
Use the Coordinates keyword, or use the Height, Width, Heightstep, and Widthstep keywords .For Height and Width, you can specify a single value. If you specify a range for Height or Width, specify an increment for Heightstep and Widthstep, respectively. If you do not specify a Coordinates keyword and instead specify a range of rectangles, the test assumes that the source and destination rectangles have the same width and height. |
[SetPixel] |
Dest=value,Coordinates=(x, y), (x, y), ... |
The default value for the Coordinates keyword is (1, 1). |
[GetPixel] |
Dest=value,Coordinates=(x, y), (x, y), ... |
The default value for the Coordinates keyword is (1, 1). |
[FillRgn] |
Dest=value,Brush=value |
None. |
[LineTo] |
Dest=value,ROP=value,Pen=value |
None. |
[Polygon] |
Dest=value,ROP=value,Brush=value,Pen=value,Coordinates0=(x, y), (x, y), ...,Coordinates1=(x, y), (x, y), ......CoordinatesN=(x, y), (x, y), ... |
None. |
[Polyline] |
Dest=value,ROP=ROP2_value,Pen=value,Coordinates0=(x, y), (x, y), ...Coordinates1=(x, y), (x, y), ......CoordinatesN=(x, y), (x, y), ... |
None. |
[Ellipse] |
Dest=value,ROP=ROP2_value,Brush=value,Pen=value,Coordinates=(left, top, right, bottom), (left, top, right, bottom),...,Top=offset,Left=offset, Height=min-max,Width=min-max,Heightstep=increment,Widthstep=increment |
Use the Coordinates keyword, or use the Top, Left, Height, Width, Heightstep, and Widthstep keywords. For Height and Width, you can specify a single value. If you specify a range for Height or Width, specify an increment for Heightstep and Widthstep, respectively. |
[RoundRect] |
Dest=value,ROP=ROP2_value,Brush=value,Pen=value,Coordinates=(left, top, right, bottom, ellipse_width, ellipse_height), (left, top, right, bottom, ellipse_width, ellipse_height),Top=offset,Left=offset,RectHeight=min-max,RectWidth=min-max,RectHeightstep=increment, RectWidthstep=increment,EllipseHeight=min-max,EllipseWidth=min-max,EllipseHeightstep=increment,EllipseWidthstep=increment |
Use the Coordinates keyword, or use the Top, Left, RectHeight, RectWidth, RectHeightstep, RectWidthstep, EllipseHeight, EllipseWidth, EllipseHeightstep, and EllipseWidthstep keywords. For RectHeight, RectWidth, EllipseHeight, and EllipseWidth, you can specify a single value. If you specify a range for RectHeight, RectWidth, EllipseHeight, or EllipseWidth, specify an increment for RectHeightstep, RectWidthstep, EllipseHeightstep, and EllipseWidthstep, respectively. |
[Rectangle] |
Dest=value,ROP=ROP2_value,Brush=value,Pen=value,Coordinates=(left, top, right, bottom), (left, top, right,bottom), ...,Top=offset, Left=offset,Height=min-max,Width=min-max,Heightstep=increment,Widthstep=increment |
Use the Coordinates keyword, or use the Top, Left, Height, Width, Heightstep, and Widthstep keywords .For Height and Width, you can specify a single value. If you specify a range for Height or Width, specify an increment for Heightstep and Widthstep, respectively. |
[ExtTextOut] |
Dest=value,<One or more font-related keywords>,<One or more string-related keywords>,PositionCoordinates=(x, y), (x,y),..., ClipCoordinates=(left, top, right, bottom), (left, top, right, bottom), ...,Top=offset,Left=offset,Height=min-max,Width=min-max,Heightstep = increment,Widthstep=increment,Clipped=0 or 1,Opaque=0 or 1 |
For information about font-related keywords, see Font-related Keywords for a Script for the Graphics Device Interface Performance Test. For information about string-related keywords, see String-related Keywords for a Script for the Graphics Device Interface Performance Test. The default value for the PositionCoordinates keyword is (1, 1).Use the ClipCoordinates keyword, or use the Top, Left, Height, Width, Heightstep, and Widthstep keywords. For Height and Width, you can specify a single value. If you specify a range for Height or Width, specify an increment for Heightstep and Widthstep, respectively. For keywords that can have a value of 0 or 1, setting the value to 1 enables the associated functionality. Setting the value to zero disables the associated functionality. |
[DrawText] |
Dest=value,<One or more font-related keywords>,<One or more string-related keywords>,FormatCoordinates=(left, top, right, bottom), (left, top, right, bottom), ...,Top=offset,Left=offset,Height=min-max,Width=min-max,Heightstep=increment,Widthstep=increment,DT_BOTTOM=0 or 1, DT_CALCRECT=0 or 1,DT_CENTER=0 or 1,DT_EXPANDTABS=0 or 1,DT_INTERNAL=0 or 1,DT_LEFT=0 or 1,DT_NOCLIP=0 or 1,DT_NOPREFIX=0 or 1, DT_RIGHT=0 or 1,DT_SINGLELINE=0 or 1,DT_TABSTOP=0 or 1,DT_TOP=0 or 1,DT_VCENTER=0 or 1,DT_WORDBREAK=0 or 1 |
For information about font-related keywords, see Font-related Keywords for a Script for the Graphics Device Interface Performance Test. For information about string-related keywords, see String-related Keywords for a Script for the Graphics Device Interface Performance Test. Use the FormatCoordinates keyword, or use the Top, Left, Height, Width, Heightstep, and Widthstep keywords. For Height and Width, you can specify a single value. If you specify a range for Height or Width, specify an increment for Heightstep and Widthstep, respectively. For keywords that can have a value of 0 or 1, setting the value to 1 enables the associated functionality. |
The following table shows keywords that you can use with any test case in a script file for the Graphics Device Interface Performance Test.
Keyword | Acceptable value | Description |
---|---|---|
Iterations |
A positive integer |
Specifies the number of times that the benchmark engine samples a particular test case. By default, the number of iterations depends on the standard deviation of an initial sample. |
Confidence |
An integer between 0 and 100, inclusive |
Specifies the sensitivity of a test case to the standard deviation of a function. The higher the value that you specify for Confidence, the longer the test case runs. The default value for Confidence is 75. |
MaxRunTime |
A value greater than zero |
Specifies, in minutes, the maximum time for which a test case can run. The default value is 10 minutes. |
FlushICache |
0 or 1 |
If set to 1, specifies that the instruction cache be flushed between test runs. |
FlushDCache |
0 or 1 |
If set to 0, specifies that the instruction cache be flushed between test runs. |
RgnRects |
(left, top, right, bottom),(left, top, right, bottom), ... |
Specifies the location of the sides of each rectangle. |
MinNumberOfRgns |
An integer between 0 and the value of RgnRects, inclusive |
Specifies the minimum number of rectangles to use when creating a region. |
MaxNumberOfRgns |
A nonnegative integer |
Specifies the maximum number of rectangles to use when creating a region. The default value is the value of RgnRects. |
RgnStep |
A positive integer |
Specifies how many rectangles to add to the rectangle count for each iteration. For example, if the value of RgnRects is 10, MinNumberOfRegions is 0, and RgnStep is 1, the test iterates from using 1 rectangle to using 10 rectangles in steps of 1 rectangle. The result is 10 separate samplings. |
CombineMode |
RGN_AND RGN_COPY RGN_DIFF RGN_OR RGN_XOR |
Specifies that you want to combine a region with the primary region. |
The following table shows keywords that you can use with some test cases in a script file for the Graphics Device Interface Performance Test.
Keyword | Acceptable value | Description |
---|---|---|
BlendFunction |
PPA , SCA ,SCA_<hexadecimal SCA value> , PPA&SCA_<hexadecimal SCA value> |
Specifies whether to use a source-constant, alpha-blend operation or a per-pixel, alpha-blend operation, or both operations simultaneously. You can specify a hexadecimal value between 0x00 and 0xFF for the source constant in an alpha blend operation. |
Brush |
BLACK, DKGRAY, GRAY , HOLLOW, LTGRAY, NULL, WHITE, Pattern<width>x<height>_<bpp> ,Solid |
Specifies the type of brush to use. If you specify Pattern without specifying width, height, and bit depth, the test uses a brush with a height of 8 pixels, a width of 8 pixels, and a bit depth of 16 bits per pixel. |
Dest |
Primary, System_Memory ,Video_Memory, DIB<bpp>_<colors><bit mask, if applicable> |
Specifies the destination surface. You can specify multiple values separated by commas. The default value for this keyword is Primary. The value <bpp> specifies bits per pixel. Acceptable values for <bpp> are 1, 2, 4, 8, 16, 24, or 32. Acceptable values for <colors> are PAL, BGR, or RGB. PAL specifies the system palette. Acceptable values for <bit mask, if applicable> are 4444, 565, 555, 1555, 8888, 888, or 4444. |
Pen |
NULL<width>, BLACK , WHITE, SOLID<width>, DASH<width> |
Specifies the type of pen to use. For each type of pen, you can specify a BkMode value that is associated with the surface into which the pen is selected. For BkMode, you can specify a value of OPAQUE or TRANSPARENT. If you specify multiple modes separated by commas, the test runs for each mode in the list. |
ROP |
(1) ROP2:<0xXX hexadecimal ROP value>, <0xXX hexadecimal ROP value>,All (2) ROP3: <0xXXXXXXXX hexadecimal ROP value>, <0xXXXXXXXX hexadecimal ROP value>,All (3)ROP4:(<0xXXXXXXXX hexadecimal ROP value>, <0xXXXXXXXX hexadecimal ROP value>), (<0xXXXXXXXX hexadecimal ROP value>, <0xXXXXXXXX hexadecimal ROP value>) |
Specifies the type of raster operation (ROP).For ROP2, if you do not specify a value, the test uses R2_COPYPEN. If you specify a value of All, the test runs all 16 ROP2 raster operations. For ROP3, if you do not specify a value, the test uses SRCCOPY. If you specify a value of All, the test runs all 256 ROP3 raster operations. For ROP4, if you do not specify a value, the test uses MAKEROP4(SRCCOPY, SRCCOPY). |
Source |
Primary,System_Memory,Video_Memory,DIB<bpp>_<colors><bit mask, if applicable> |
Specifies the source surface. You can specify multiple values separated by commas. The default value for this keyword is Primary. The value <bpp> specifies bits per pixel. Acceptable values for <bpp> are 1, 2, 4, 8, 16, 24, or 32.Acceptable values for <colors> are PAL, BGR, or RGB. PAL specifies the system palette. Acceptable values for <bit mask, if applicable> are 4444, 565, 555, 1555, 8888, 888, or 4444. |
StretchMode |
BINLINEAR,BLACKONWHITE |
Specifies a mode for stretch operations. If you specify multiple modes separated by commas, the test runs for each mode in the list. |
The following table shows font-related keywords that you can use with some test cases in a script file for the Graphics Device Interface Performance Test.
Keyword | Acceptable value | Description |
---|---|---|
FontHeight |
<array of numerical values> |
Specifies the font height. The default value for this keyword is zero. |
FontWidth |
<array of numerical values> |
Specifies the font width. The default value for this keyword is zero. |
Escapement |
<array of numerical values> |
Specifies the escapement and orientation of the font. The default value for this keyword is zero. |
FontWeight |
FW_DONTCARE,FW_THIN,FW_EXTRALIGHT,FW_LIGHT,FW_NORMAL,FW_MEDIUM,FW_SEMIBOLD,FW_BOLD,FW_EXTRABOLD, FW_HEAVY |
Specifies the font weight. You can specify multiple values. The default value for this keyword is FW_NORMAL. |
Italics |
0 or 1 |
If set to 1, specifies that the font is italic. |
Underline |
0 or 1 |
If set to 1, specifies that the font is underlined. |
StrikeOut |
0 or 1 |
If set to 1, specifies that the font is strikethrough. |
CharSet |
ANSI_CHARSET,CHINESEBIG5_CHARSET,EASTEUROPE_CHARSET,GREEK_CHARSET,MAC_CHARSET,RUSSIAN_CHARSET, SYMBOL_CHARSET,BALTIC_CHARSET,DEFAULT_CHARSET,GB2312_CHARSET,OEM_CHARSET,SHIFTJIS_CHARSET,TURKISH_CHARSET,JOHAB_CHARSET,HEBREW_CHARSET,ARABIC_CHARSET,THAI_CHARSET |
Specifies the character set. You can specify multiple values .The default value for this keyword is DEFAULT_CHARSET. |
OutPrecision |
OUT_DEFAULT_PRECIS,OUT_RASTER_PRECIS,OUT_STRING_PRECIS |
Specifies the output precision. You can specify multiple values. The default value for this keyword is OUT_DEFAULT_PRECIS. |
ClipPrecision |
CLIP_DEFAULT_PRECIS,CLIP_CHARACTER_PRECIS,CLIP_STROKE_PRECIS |
Specifies the clipping precision. You can specify multiple values. The default value for this keyword is CLIP_DEFAULT_PRECIS. |
Quality |
ANTIALIASED_QUALITY,NONANTIALIASED_QUALITY,CLEARTYPE_COMPAT_QUALITY,CLEARTYPE_QUALITY,DEFAULT_QUALITY, DRAFT_QUALITY |
Specifies the font quality. You can specify multiple values. The default value for this keyword is DEFAULT_QUALITY. |
Pitch |
DEFAULT_PITCH,FIXED_PITCH,VARIABLE_PITCH |
Specifies the font pitch. You can specify multiple values. The default value for this keyword is DEFAULT_PITCH. |
Family |
FF_DECORATIVE,FF_DONTCARE,FF_MODERN,FF_ROMAN,FF_SCRIPT,FF_SWISS |
Specifies the font family. You can specify multiple values. The default value for this keyword is FF_DONTCARE. |
FaceName |
<name of font to use> |
Specifies the name of the font. |
The following table shows string-related keywords that you can use with some test cases in a script file for the Graphics Device Interface Performance Test.
Keyword | Acceptable value | Description |
---|---|---|
String0 |
Any string |
A single string to test |
Unicode0 |
Array of Unicode values |
A single array of Unicode values to test. |
String0,String1.......,StringN |
For each keyword, any string |
Multiple strings to test. |
Unicode0,Unicode1,......,UnicodeN |
For each keyword, an array of Unicode values |
Multiple arrays of Unicode values to test |
Verifying the Test
The Graphics Device Interface Performance Test can write test results to a .csv file at a location that you specify by using the -f command-line parameter.
The first line of the .csv file provides a test description that shows the global settings specified in the script file. The second line provides a label for each piece of data in the subsequent lines. The subsequent lines show the tested conditions and the corresponding performance data. For each tested condition, the test reports a minimum, maximum, mean, and standard deviation score. To view the data in the .csv file, you might want to import the .csv file into a spreadsheet application.
Because hardware performs the same operation in less time than software, you might be able to determine where operations are performed by observing the time required to complete each operation.
Below is the sample snapshot for BitBlt test.
BitBlt | Count | 10 |
---|---|---|
BitBlt |
Min |
36 |
BitBlt |
Max |
131 |
BitBlt |
Mean |
120 |
BitBlt |
StdDev |
29 |
BitBlt |
CV% |
24 |
Troubleshooting the Test
When you run the Graphics Device Interface Performance Test, the CTK temporarily copies files to the root directory of the target device. Before running the test, verify that there is at least 0.4 megabytes (MB) of free space in the root directory of the target device. If there is not sufficient space in the root directory of the target device, the test cannot run.
For additional platform specific issues, consult the CTK articles on the TechNet wiki.