It’s time for some exciting news! As usual, our engineers here in the Developer Technology team have been hard at work making your life a little bit easier when developing for PowerVR devices.
Today, we’re releasing PVRPerfDoc a custom version of the Vulkan® validation layer, PerfDoc, which should make it more useful for developers working with PowerVR hardware. If that’s all you need to hear, why not check PVRPerfDoc on GitHub?
However, for the uninitiated…
What is PerfDoc?
PerfDoc is a Vulkan validation layer produced by our friends at ARM. Validation layers are important component of the Vulkan API which allows it to have a much lower CPU overhead compared to older APIs, like OpenGL® ES. Vulkan has very little in-built error checking, instead a developer can enable a layer, like the LunarG validation layer, which will check the API is being used correctly when the application is run.
So, what makes PerfDoc different from any other validation layer? Well, instead of checking whether Vulkan is being used correctly (in line with the Vulkan specification), it’s instead focused on whether the API is being used efficiently. When a Vulkan application is run with the PerfDoc layer active any errors will be reported to the application as callbacks or printed in an available console. This means inefficient uses of the API, such as creating a pipeline without a pipeline cache or using too many instanced vertex buffers, can be caught and fixed during development. Addressing the issues raised by PerfDoc can improve application performance and get the best out of Vulkan.
Unfortunately, since PerfDoc validates API usage against ARM’s performance recommendations for Mali, some of these recommendations may actually hurt performance on PowerVR hardware.
This is where we come in: we’ve forked PerfDoc to validate API usage against our own performance recommendations for PowerVR hardware.