When graphics go wrong, you need the best tools by your side. When they’re free to download, all the better. Imagination Technologies’ PowerVR tools make up a suite of essentials for embedded systems development, designed to save time creating and debugging OpenGL ES applications regardless of whether you’re dealing with a middleware solution like Unreal or rolling your own in-house code.
Imagination’s tools are designed for all stages of development, and make diving into your rendering engine’s API calls, shaders and buffers a far less arduous process. In addition, the tools require no code-level changes, which means that you don’t have to worry about custom debug builds for investigations – any binary will suffice.
Up first is PVRTrace, Imagination’s OpenGL ES capture and analysis tool. With it, you get a set of recording libraries that sit between your application and the host OpenGL ES driver, a GUI- based tool for analysing the recordings once gathered, and an on-device playback tool. Data in hand, you can use PVRTrace to inspect the API calls and data contained, as well as visualise framebuffer attachments (colour, depth and stencil data), and render a pie chart displaying where GPU cycles are being spent. It’ll also analyse your API calls and look for ways to improve performance.
All of these features are available from within an easy-to-use environment, offering features such as a widget for playing back entire frames, ranges of draw calls or individual draws. The frame scrubber in the bottom-right corner of PVRTrace allows you to step or jump between recorded frames, with a drop- down for switching from normal rendering to basic wireframe, and special viewing modes such as PowerVR Depth Complexity, which estimates the GPU’s hidden-surface removal, and a pixel heatmap for instantly seeing which shaders are proving the most costly.
PVRTune picks up from there as the PowerVR GPU performance analysis tool, its job being to pull the GPU performance metrics from the driver and visualise the data. Immediate issues are caught with GPU task timing data (vertex, fragment and compute), with high-level and low-level GPU, CPU and memory counters provided for in-depth analysis – for example, understanding the load of specific hardware blocks responsible for tasks such as shader execution and Hidden Surface Removal (HSR) overdraw reduction. Naturally, everything is provided in real time, providing fine-grain performance data to drill into at will.
Next comes PVRShaderEditor, intended as a lightweight but powerful tool for developing optimised shaders for PowerVR GPUs. Key features include GLSL ES syntax highlighting, per-line cycle count estimates, and simulated performance estimates – with specific compilers for all PowerVR architectures. Additionally, the tool generates realtime instruction disassembly when PowerVR Rogue compilers are active, enabling you to see exactly how your shader will be executed by the GPU. This makes it easy to get a feel for how your new shaders will work, without having to have actual devices on hand.
Imagination offers comprehensive documentation for each component, including basic text and video guides for every tool, dedicated user manuals and quick starts, and architecture guides covering deeper information such as supported extensions and performance recommendations. You can also find several related blog articles, ranging from how to capture an individual render to using regular expression searches in PVRTrace.
Imagination’s tools are crossplatform, requiring a minimum of Windows Vista, Mac OS X 10.8 or, on Linux, Ubuntu 12.04. Other tools available include PVRTexTool for texture compression, PVRGeoPOD for exporting 3D scenes to the PowerVR Object Data optimised format, shader composer PVRShaman, and PVRMonitor, an on-device hardware profiling tool for Android that allows rapid visibility of performance fluctuations at the highest frame rates. The suite is available to download now from powervrinsider.com.
While the tools are designed to be easy to use, you’re never left on your own: support from Imagination is available to all, with a forum for posing questions, a confidential ticketing system for more specific queries, and even the ability to request personal assistance.