Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

This may be too advanced, but you could try using oprofile to analyze your system as the program is running. It can give you a report on where the time goes, which perhaps may give ideas on how to tweak things, or, at least, create a better bug report for the driver maintainers...

Install oprofile using:

# yum install oprofile

As root, start a profiling session using:

# opcontrol --start

Then launch your program as normal (not as root!).

After a while of the activity you're trying to analyze, stop the profiling session (as root) using:

# opcontrol --stop

You should then be able to generate a report using:

# opreport --symbols |less

which will show every process that was running, how much time each one took.

Some time will be spent by the program you're running, some by the X server. You can zero in on the program in question by passing the path to it e.g.:

# opreport --symbols /usr/bin/wine |less

to see what a specific process was spending its time on. You'll want the debuginfo packages installed for wine and for the X server. See http://oprofile.sourceforge.net/examples/ for some examples of the kind of output you'll see.

This may give clues as to whether the issue is in terms of the number of polygons being drawn, or the number of pixels, or the complexity of the shaders, or some other unexpected issue, and whether or not it's actually managing to use the GPU, or whether the CPU is having to do the work instead. However, to figure all of this out will likely require knowledge of 3D programming. It should at least make for a better bug report...

Hope this is helpful