views:

137

answers:

3

The title sums my question up pretty well: are there any open source OpenGL profilers for Linux?

The only thing I could find was gDEBugger, but it only comes with a 7 day trial and is very much closed source. I would use this for free (as in freedom) software development so paying is not an option, though I might consider accept answers for a free (as in beer) but closed application. Bonus points if it works with open source drivers (my main computer has an integrated Intel graphics card).

A: 

I would really recommend this small profiler:http://silverspaceship.com/src/iprof/, it is not bound to profiling opengl, but does so very well! Also it can use opengl to display the profiling stats, which means it is very portable.

Greget
Aside from being interactive, how is this different than gprof, oprofile, callgrind, etc.? AFACIT it does not provide any means to do proper OpenGL profiling.
Staffan
@staffan: I guess the only advantage it has is that it presents the profiling stats relative to the frametime. And you can have it running all the time, just freeze it if you experience a drop of framerate and step backwards until you see what profiling block caused the slowdown. I find it tricky to find framedrops when using static/logging profiling tools.
Greget
+2  A: 

Have a look at BuGLe. Its main target is not profiling, but it has a filter, which shows the time spent in each OpenGL call.

cypheon
+1! Not really what I need but this looks useful. And one can hope they include proper profiling support in the future.
Staffan
+1  A: 

I would use this for free software development so paying is not an option

"Free" doesn't mean "opensource".

See if NVPerfKit, NVPerfSDK are suitable for you. i've used NVPerfHud for profiling DirectX applications before, and if NVPerfKit offers even a tiny bit of PerfHud's functionality for OpenGL, it will be exactly what you're looking for.

Also, check NVIdia's OpenGL resources page.

SigTerm
+1 since this is relevant and appears to be exactly what I need. Unfortunately I do not have a NVidia graphics card.
Staffan
@Staffan: Well, you could see if this is what you want: http://developer.amd.com/gpu/StreamProfiler/Pages/default.aspx . Personally I prefer using NVidia cards for development (and haven't used ATI card in years), so I can't say if this "stream profiler" is suitable for your goals. Also, if you have card made by someone else(non-ATI, non-NVidia card), you *may* be out of luck.
SigTerm
@Staffan: Another (risky) option would be to use some kind of software OpenGL implementation and profile it using CPU profilers. The closest thing I can think of is Mesa3D, but it is not certified, and it is not totally compatible with OpenGL. To me it looks like performance data is vendor-dependent, so it is possible that there is no generic gpu profiler that is useful for every card.
SigTerm
@SigTerm: Long-term I hope there will be a profiler targetting [Gallum3D](http://en.wikipedia.org/wiki/Gallium3d)-based drivers, since that will encompass all major vendors (Intel, ATI, NVidia through the nouveau driver). I know too little about Gallium3D to know if it's technically feasible but I hope it is! For the time being, I'm stuck with my stinky integrated Intel graphics...
Staffan