Web giant Google has released a 3D debugging tool called GAPID, short for Graphics API Debugger. The tool is exactly what it says it is; it allows developers of 3D and VR applications to run a debugger on those applications while looking at the finished 3D product, rather than having to debug in an IDE or other interface, then switch to looking at the product, then switch back to the debugger. This will shorten development cycles by allowing the debugging process to happen in real time, with developers able to test all relevant functions of a 3D app or experience while analyzing the code in real time as it runs, and making changes as necessary that will go live as soon as they're written into the codebase.
GAPID is mainly made to catch GPU bugs in 3D applications, and as such, the interface and its capabilities are based around catching graphical and resource bugs. In the interface, developers can look at the resources being loaded and code being run, and can interject bugfixes at any time they see fit. When that happens, the application will update in real time to reflect the changes, and the developer can skip the step of going from debugging to iteration. This real-time debugging process not only allows a developer to skip finalization and iteration when debugging, but can be used while building to see how changes to the codebase affect the application's current processes. The interface works frame by frame in both replay and trace modes, which allows developers to break down exactly what is happening in their application at all levels at any given time, and makes it easier than ever to reproduce and isolate glitches.
GAPID is able to trace and replay functions in Vulkan and OpenGL across various platforms, but there are some limitations to each. MacOS sees the most limitations for GAPID; Mac users can only debug OpenGL applications, and can only replay OpenGL ES code. Android apps can have OpenGL ES traced, while Vulkan codebases can be both traced and replayed. Windows and Linux, meanwhile, have full support for Vulkan, but are only able to replay OpenGL ES codebases, with no tracing function available for them.