Bug 1804798 - Explicitly set auto page name (and corresponding debug flag) when inser...
[gecko.git] / docs / performance / GPU_performance.md
blob25085f41c3ac6b6537eaf2d6af0064ff94c36e91
1 # GPU Performance
3 Doing performance work with GPUs is harder than with CPUs because of the
4 asynchronous and massively parallel architecture.
6 ## Tools
8 [PIX](https://devblogs.microsoft.com/pix/introduction/) - Can do
9 timing of Direct3D calls. Works reasonably well with Firefox.
11 NVIDIA PerfHUD - Last I checked required a special build to be used.
13 NVIDIA Parallel Nsight - Haven\'t tried.
15 AMD GPU ShaderAnalyzer - Will compile a shader and show the machine code
16 and give static pipeline estimations. Not that useful for Firefox
17 because all of our shaders are pretty simple.
19 AMD GPU PerfStudio - I had trouble getting this to work, and can\'t
20 remember whether I actually did or not.
22 [Intel Graphics Performance Analyzers](http://software.intel.com/en-us/articles/intel-gpa/ "http://software.intel.com/en-us/articles/intel-gpa/")
23 - Haven\'t tried.
25 [APITrace](https://github.com/apitrace/apitrace "https://github.com/apitrace/apitrace")
26 - Open source, works OK.
28 [PVRTrace](http://www.imgtec.com/powervr/insider/pvrtrace.asp "http://www.imgtec.com/powervr/insider/pvrtrace.asp")
29 - Doesn\'t seem to emit traces on android/Nexus S. Looks like it\'s
30 designed for X11-based linux-ARM devices, OMAP3 is mentioned a lot in
31 the docs \...
33 ## Guides
35 [Accurately Profiling Direct3D API Calls (Direct3D
36 9)](http://msdn.microsoft.com/en-us/library/bb172234%28v=vs.85%29.aspx "http://msdn.microsoft.com/en-us/library/bb172234(v=vs.85).aspx")
37 Suggests avoiding normal profilers like xperf and instead measuring the
38 time to flush the command buffer.
40 [OS X - Best Practices for Working with Texture
41 Data](http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_texturedata/opengl_texturedata.html "http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_texturedata/opengl_texturedata.html")
42 - Sort of old, but still useful.