Diagnose and understand the GPU behavior of your application using GAPID

Hello, Habr! I present to you the translation of the article Diagnose and understand your app's GPU behavior with GAPID , by Andrey Voloshin.

Designing for 3D is complicated. Regardless of whether you use your own API for graphics or enlist the help of your favorite game engine, there are thousands of graphic commands that must be perfectly combined to create beautiful three-dimensional images on phones, desktop PCs or VR headsets.

GAPID (Graphics API Debugger)Is a new tool that helps developers diagnose rendering and performance issues with their applications. Using the GAPID, you can track the trace of your application and each step for each graphic command. This allows you to visualize how your final image is created and isolate problematic calls, so you spend less time debugging through the trial version.

GAPID supports OpenGL ES on Android and Vulkan on Android, Windows, and Linux.

image
Debugging in action, one call at a time, the

GAPID not only allows you to diagnose problems with your rendering commands, but also acts as a tool for quickly conducting experiments and immediately sees how these changes will affect the presented frame.

Here are some examples where a GAPID can help you isolate and fix problems with your application:

What does a GPU do?


image
Why doesn't my text appear ?!

Working with the graphics API can be frustrating when you get an unexpected result, whether it's a blank screen, an inverted triangle, or a missing grid. As a standalone debugger, GAPID allows you to track these applications and then verify calls. You can pinpoint which team produced the wrong result by looking at the framebuffer and checking the status at that point to help you diagnose the problem.

What happens if I do X?


image
Using GAPIDs to edit shader code

Even when a program works as expected, sometimes you want to experiment. GAPID lets you optionally modify API calls and shaders so you can test things like:

  • What if I used a different texture on this object?
  • What if I changed the heyday calculation in this shader?

With GAPID, you can now iterate over the look of your application without recompiling the application or restoring your assets.

Whether you're creating an awesome new board game with Vulkan or an awesomely impressive VR experience on Android, we hope that GAPID will save you time and help you get the most out of your GPU. To get started with GAPID and see how effective it is, download it , grab your favorite app and record the trace !

Author: Andrey Voloshin, software engineer
Link to original

Also popular now: