Using OpenGL Driver Monitor
OpenGL Driver Monitor is a developer tool that lets you investigate how the graphics processing unit (GPU) works on a system-wide basis. Using it, you can:
Inspect the renderers available on an OS X system
See what OpenGL extensions each renderer supports
Monitor rendering parameters and resources in real-time
Track the interaction between the GPU and the CPU
This chapter provides an overview of OpenGL Driver Monitor and shows how you can use it to look at and track OpenGL parameters.
For most cases, the default values that OpenGL Driver Monitor uses are optimal. Before you start using the driver monitor for the first time, you might want to familiarize yourself with its preferences to see whether the default values are acceptable for your needs.
To set preferences:
Choose OpenGL Driver Monitor > Preferences.
Adjust the sampling interval.
OpenGL Driver Monitor measures data throughput in bytes per sampling interval. For example, the default sampling interval is 1 second, so the data throughput is in bytes per second.
If you change the sampling interval, the OpenGL Driver Monitor measures values for that interval; the values are not normalized to a 1 second interval. For example, if you set the sampling interval to 2 seconds, and the throughput value is 500 bytes, the reported sampling rate is 500 bytes per interval which, in this case, is 250 bytes per second.
Adjust the maximum data samples.
The value is the maximum number bytes per sampling interval. The default is 2048.
Adjust graph colors.
If you don’t like that default colors for the graph background or graph labels, click the color wells and choose other colors.
Select whether or not to use descriptive parameter names.
OpenGL Driver Monitor provides a list of parameters from which you choose the ones you want to track. You can either view the list as the symbolic names used by driver monitor (such as
finishAll2DWaitTime) or as descriptive names (such as 2D Command Data, AGP Data Unmapped, CPU Wait for Operations to Finish).
If you want to monitor this computer remotely, select “Enable remote monitor.“
See “Monitoring an OpenGL Driver Remotely” for additional details.
Click Apply to commit to the changes you made. Then click OK to close the Preferences window.
Collecting and Viewing Data
OpenGL Driver Monitor lets you collect system-wide data for a specific OpenGL driver. You can collect data for the system that you are running the driver monitor on or a system that you already set up for remote monitoring. (See “Monitoring an OpenGL Driver Remotely.”) The next few sections show how to collect the data.
After OpenGL Driver Monitor launches, choose a driver to investigate from the Monitors > Driver Monitors menu. Most systems have only one driver, but if your system has more than one graphics card installed, you’ll see more than one entry. After choosing a driver, the driver window opens with a view of an empty graph. You’ll notice that the Driver Monitor Parameters list below the graph is empty.
Click Parameters to open a drawer that lists all the driver parameters that you can monitor. Hover the pointer over a parameter name to see its description. See also “OpenGL Driver Monitor Parameters” for definitions of the parameter names and for cross-references between the symbolic name and the descriptive name for a parameter.
Either double-click each of the parameters (shown in Figure 1-1) you want to monitor, or drag them to the Driver Monitor Parameters list below the graph. As you might expect, not all parameters are equally useful for every scenario. You’ll need to choose accordingly.
Keep in mind that the parameters shown in Figure 1-1 are for a particular driver. Not all drivers support the same parameters, so it’s possible that the list you see doesn’t match either what’s shown in the figure or what’s listed in the glossary.
You’ll notice that when you see similarly named parameters, one of them is typically a “super parameter.” The value of a super parameter includes the values of all its “child parameters.” For example, the super parameter
commandBytes (Total Command Data) includes all quantities represented by the similarly named parameters
command2DBytes (2D Command Data),
commandGLBytes (OpenGL Command Data), and
commandDVDBytes (DVD Command Data).
Viewing Graphed Data
After you choose a parameter, OpenGL Driver Monitor adds it to the Driver Monitor Parameter list and starts to display data on the graph and in the columns next to the parameter name. Figure 1-2 shows the driver monitor graph window after displaying two parameters—CPU Wait for CPU and Current Free Video Memory. If you prefer to use colors other than the default ones for graphing the values, click the color well for a parameter and choose another from the color panel that appears.
The y-axis values on the left side of the graph are values that represent different units depending on the parameter. The y-axis values on the right side represent percentages. Keep the following in mind when reading the graph:
Time-based parameters values represent nanoseconds. For example, 1 giga-nanosecond (or 1G, as shown on the graph) represents about 1 second spent on an operation. If the sampling interval is 1 second, then the percentage is 100%.
Parameters that represent counts are absolute numbers, with quantities measured once per sampling interval. Counts are not affected by the length of the sampling interval, but may vary during the interval.
You can adjust the scale of the x-axis and the base (log or linear) of the y-axis to help you see changes in the values.
Viewing Tabular Data
You can view the data in tabular format if you prefer. This lets you compare running values among the parameters you are monitoring, as shown in Figure 1-3.
Enabling and Disabling Parameters
You enable and disable the driver monitor parameters that you are monitoring by using the Action pop-up menu shown in Figure 1-4. You can also click the Show column to show or hide data for a particular parameter.
Looking at Renderer Information
An OpenGL Driver has at least two renderers associated with it—one hardware renderer and one software renderer. You can take a look at what each renderer supports by choosing Monitors > Renderer Information. Then, when the OpenGL Renderer Info window opens, you can click each of the disclosure triangles to view the settings for a particular renderer.
As Figure 1-5 shows, you can view the vender name and version, the OpenGL extensions that the driver supports, the buffer modes, various processing capabilities, and so on.
If you want to view renderer information for renderers other than those on your system, you can set up remote monitoring on the computers whose renderers you want to inspect. See “Monitoring an OpenGL Driver Remotely.”
Monitoring an OpenGL Driver Remotely
Before you can monitor an OpenGL driver on a remote computer, you need to enable remote monitoring on that computer by following these steps:
Launch OpenGL Driver Monitor on the computer that you want to monitor remotely.
Choose OpenGL Driver Monitor > Preferences.
Click “Enable remote monitor.“
Make a note of the remote monitor name. You’ll need this later.
To monitor a computer after you enable remote monitoring:
Launch OpenGL Driver Monitor on the computer that you plan to monitor from.
Choose Monitors > Connect To.
When the remote host window opens (see Figure 1-6), select the name of the computer you want to monitor and click Choose.
Collect, view, and interpret data the same way you would for a local OpenGL driver.