- 12 June 2020
- Benjamin Anuworakarn
The eagerly awaited first release of the PowerVR SDK and Tools for 2020 is here.
Despite the challenging conditions across the world, DevTech has been continuing its work to produce the best graphics development tools on the market.
For anyone who just wants to grab the new version of our tools straight away.
So, what’s new?
PVRCarbon
PVRCarbon is our API tracing and debugging tool for OpenGL ES and Vulkan. It provides a deep level of insight into exactly how an application interacts with the graphics API. It also has a simple application recording interface, allowing you to record API calls on remote devices with just a few clicks. Recordings can be played back on any PVRCarbon-supported device for true cross-platform analysis.
We’ve added a slew of powerful new analysis features to PVRCarbon this time, so it’s easier than ever to debug and refine your application.
Static Application Analysis
PVRCarbon now performs static analysis automatically as soon as recordings are loaded. This will give you an instant report of any issues with the application and recommendations on how to fix them. This report can be filtered based on the type of issue, including API errors, shader errors, and different levels of warning.
Visible Call List
PVRCarbon now also allows filtering of displayed API calls based on API, frame, call type, and UID. This allows you to get rid of the noise and focus your analysis on exactly what’s causing an issue.
Additional Updates
As always, we’ve got plenty of smaller updates and bug fixes for PVRCarbon including:
- The GUI has a new Dark Fusion theme (see the screenshots above). This is the default theme, but the system default colours can be re-selected in the preferences window.
- The splash screen has been updated to include links to recently opened files, the remote recorder widget, as well as the various licence files.
- PVRCarbon has some new command-line interfaces including static analysis. The static analysis CLI will produce the same output as the static analysis widget in the GUI.
PVRTune
PVRTune is our world-leading hardware profiling and application analysis tool. It collates hardware data sources into hundreds of toggleable counters which are displayed in the GUI. These counters give an idea of exactly how an application is stressing different parts of the GPU and can make it much easier to see where performance bottlenecks are coming from.
So, what’s new with PVRTune?
Logcat Window
We’ve added a logcat widget which streams the logcat output from an Android device.
This output can be filtered based on pid, tag, and priority. For more information on logcat, take a look at the Android Developer user guide.
Dark Fusion Theme
Similarly to PVRCarbon, PVRTune now has a Dark Fusion theme. This is the default colour scheme, but the original system default can be re-selected in the preferences window.
PVRTune Complete
As some of you may already know, in addition to PVRTune Developer (the version freely available from our website) we also have PVRTune Complete.
The updates for PVRTune Complete include:
- Support for capturing ‘Tile Lifetime Tracking’ (TLT) data. PVRTune will automatically generate a tile heatmap from the captured TLT data, which can be viewed via the ‘Resource Viewer’ widget.
Note: TLT data is only available from IMG A-Series devices. - Improved handling of device power events. PVRTune now takes into account that some power events are device domain power up/down while others are device power on/off. This prevents occurrences of incorrect HWR regions being shown on the timing graph.
- A new “Schedule Resource Capture” widget has been added to the connection page. This allows users to queue up resource captures before a connection to a device has been established. Note that this feature is only available when using remote deployment and selecting an app for PVRTune to start. This enables PVRTune to automatically select the appropriate PID and GLES context ID. Furthermore, this option will enable Client API EGL and Client API GLES PVRPerfServer timing options. Due to the latency between PVRTune and the driver, requests are not guaranteed to match frame numbers exactly.
- Updates to the Resource Viewer UI, including improved performance when thumbnails of captured resources are being generated.
PowerVR SDK
The PowerVR SDK is our graphics development package which simplifies development for PowerVR devices. It consists of two main parts:
Examples
A collection of OpenGL ES, Vulkan, and OpenCL application examples. These examples cover a broad range of scenarios from starting your first application to implementing efficient physically-based rendering.
In this release, we’ve got several updates to our examples including:
- Adding the Multithreading example for OpenGL ES. This example shows how a shared context bound to a worker thread can be used to load assets asynchronously while something else is rendered on the main thread.
- Enhancing the IntroducingPVRCamera example to correctly handle different aspect ratios between the framebuffer and the camera output. The example uses the PVRCamera library to get the hardware camera of a device and applies a simple colour inversion shader.
- Porting the basic rendering (BumpMapping) example for OpenGL ES. This example demonstrates how to use a normal map to implement bumpmapping using the PowerVR Framework.
Framework
The SDK Framework is a set of C++ modules that provide a backbone for your OpenGL ES or Vulkan applications. These modules eliminate much of the boilerplate code from your applications, allowing you to focus on the more interesting parts of development.
Updates for the SDK Framework include:
- Upgrading the PVRCamera framework module. The Android runtime permission system is now implemented and the asynchronous permissions functionality now also works.
- Updating the pvr::utils::createOnScreenXXX interfaces. Previously these would not work correctly with the Multisampling example and other more complicated interfaces. The current interface (createOnScreenFboAndRenderpass, createSwapChainAndDepthStencilImageAndViews) is now deprecated and will be removed in a future version. The new interface (createOnScreenSwapchainRenderpassFramebuffers) is replacing these two calls.
- Enabling the use of the Vulkan extension VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT.
Deployment
We’ve decided to update how we release both the PowerVR SDK and the tools this time.
You can now download each of our tools separately. We feel this will reduce our footprint on your system by letting you select exactly which tools you’d like to download and install.
The SDK will now only be released through GitHub. The latest version is already waiting in our repository. So, why not take a look?