PowerVR SDK and Tools 2020 Release 2 now available

Share on linkedin
Share on twitter
Share on facebook
Share on reddit
Share on digg
Share on email

We all know that 2020 has been quite a challenging year, but we hope you’re doing well. Over the last few months, here in DevTech, we’ve been working hard to get this new release out for you and the time has now come for our second release of the PowerVR SDK and Tools of 2020.

For anyone who just wants to grab the new version of our tools straight away – click here:

So, what’s new with this latest release? Let’s take a quick look at a few of the major changes.

PVRTexTool

PVRTexTool is our texture encoding and pre-processing tool which is designed to make it easy to optimise your application textures.

There have been a number of significant updates to PVRTexTool in this release, including some powerful new features and a visual overhaul.

GUI Overhaul

pvrtextoolgui sdk texture

This is the brand new PVRTexTool GUI. As you can see in this image, we’ve added a new dark theme and improved the overall layout and responsiveness of the GUI. The new layout provides as much space as possible for your textures allowing you to examine them in more detail.

PVRTexLib Redesign

Additionally, we’ve updated and redesigned the PVRTexLib libraries we offer. PVRTexLib allows you to use all of the texture processing features of PVRTexTool within your application, including encoding, resizing, and mipmap generation.

We now have three different ways of accessing the PVRTexLib functionality:

  • A brand new, pure C interface
  • A re-designed C++ interface which wraps the C interface. This makes it more convenient to integrate PVRTexLib into C++ applications.
  • A Python binding library, PVRTexLibPy. This enables users to access all PVRTexLib functionality from within a Python script.
  • All of these interfaces are packaged with PVRTexTool in the Library folder. The C interface can be included in a project using the PVRTexlib.h header file while the C++ wrapper is found in PVRTexLib.hpp.

The PVRTexLibPy interface can be accessed from a Python script using a simple ‘import’ statement when the library file is in the same location as the script.

It is important to note that the new API is not compatible with older versions of the PVRTexLib library.

Equirectangular to Cubemap

We’ve added support for creating a cubemap texture from an equirectangular image. You can do this from the GUI or using a new option in the PVRTexTool CLI, equi2cube. An equirectangular image is a projection of a sphere onto a rectangular image. They are often used for environment maps. The equirectangular image must have an aspect ratio of 2:1 in order to be accepted.

compose cubemap 2

Inf and NaN Highlighting

PVRTexTool now supports visualisation of NaN and Inf pixel values for floating-point formats. These values are highlighted with a particular colour in order to make them more obvious. You can change the highlight colour by going to “View” -> “Change Nan/Inf Colour”.

tune Inf visualisation

Other Changes

There also a few additional more minor changes to PVRTexTool:

  • Our PVRTexTool plugins now support Autodesk 3ds Max 2019/20 and Autodesk Maya 2018. Plugins for older versions of these tools are also still supplied with PVRTexTool.
  • Added support for ASTC HDR compressed formats, as well as BC4 and BC5 formats
  • PVRTexTool now supports a greater range of PVRTC modes when compressing texture. The supported PVRTC quality modes include:
    Low (2 passes), Normal (4/5 passes), High (6 passes), Very High (8 passes), Thorough (16 passes) and Best (32 passes).
  • PVRTexLib has been updated to allow loading and saving to KTX2 files
  • We’ve also added support for BASISU formats including BASISU_ETC1S and BASISU_UASTC
  • Finally, PVRTexTool now supports RGBM and RGBD (shared multiplier and shared divisor) formats

PVRCarbon

PVRCarbon is our API tracing and debugging tool for OpenGL® ES and Vulkan®. It allows a deep level of insight into exactly how an application and graphics API interact. It also has a simple application recording interface, allowing you to record API calls on remote devices with just a few clicks. PVRCarbon recordings store the API calls of the application which can be played back in the GUI, allowing the exact reproduction of the application output. Recordings can be played back on any device which can run PVRCarbon for true cross-platform analysis.

pvrcarbon gui

We’ve added various new features and bug fixes to this version of PVRCarbon, so it’s easier than ever to debug and refine your application.

Frame Analysis

One of the major new features of this release is frame analysis.

frame analysis gui

You can now examine a single frame of your application in detail, including stepping through individual draw calls.

You can also analyse the entire API render state and view objects such as shaders, textures, and framebuffers.

carbon object viewer

carbon object viewer framebuffer

The frame analysis GUI is available for both Vulkan and OpenGL ES applications. You can analyse a frame in your recording by scrubbing to the desired frame and hitting the ‘Analyse the current frame’ button in the Analysis window.

It is important to note that you can only analyse recordings which have been captured on PVRCarbon 20.2 and later. Analysis is disabled on any recordings captured on previous versions.

Analysed frames will appear in a list in this window. Clicking a frame will automatically open the frame analysis tool. Analysis data is stored in pvrcbna files which are completely independent of their original recordings. These files can also be generated using a new command-line tool which is included with PVRCarbon.

Android Layers

PVRCarbon is now packaged with an Android OpenGL ES recording layer. This can be used on Android 10 onwards instead of the driver replacement libraries that are installed by the PVRCarbonInstaller.sh script. This is the recommended and safest way to perform standalone/system recordings on Android 10+ and relegates PVRCarbonInstaller.sh to use on legacy Android versions only.

In addition to this, the remote recorder now utilises Android 10+ functionality to set up PVRCarbon for recording, if available.

The remote recorder is the simplest and easiest way to get a recording from a remote device. In most cases, you won’t need to bother with installing recording layers manually.

OpenGL SC Support

We’ve added an OpenGL SC 2.0 recording library to PVRCarbon. OpenGL SC is OpenGL Safety Critical.  It’s designed to help with the development of applications that are safety-critical in markets such as automotive.

OpenGL SC recordings can be played back on both OpenGL ES 3.1+ and OpenGL SC 2.0 drivers.

Trimming Recordings

Finally, we’ve added more options to export and trim your OpenGL ES recordings in PVRCarbon. When you save a recording you have the option to select a frame range. This allows you to trim any unwanted frames from either end of the recording. This functionality is also available in the CLI tool, PVRCarbonTrim, which is packaged with PVRCarbon. You can also do the same when exporting recordings as debuggable C++ projects.

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.

PVRTune uses a remote recorder to automatically deploy to a remote device. This means you can gather performance data easily over a network or USB without having to install anything manually on your device.

pvrtune gui

So, what’s new with PVRTune?

SSH Log Widget

We’ve added a new SSH Log widget. This widget receives the command line output from PVRPerfServer and the application being recorded. PVRPerfServer is a utility that is automatically deployed when using the PVRTune remote recorder. It gathers the performance data and sends it across to PVRTune. The SSH Log can be a really useful debugging tool when trying to identify issues with PVRTune recording or the application itself.

PVRTune Complete – Counter and Counter Group Editing Updates

PVRTune Complete is the fully-featured version of PVRTune. This version provides access to more detailed GPU information, allowing you to perform in-depth performance analysis. PVRTune Complete is only available under NDA so please contact the Developer Technology team ([email protected]) if you would like to request a copy.

We’ve spent a lot of time this release working to improve our counter and counter group editing interfaces. We’ve added options to export or import counter groups as CSV files. This will allow you to store and edit counter groups outside of PVRTune, making it easier for many people in a team to have the exact same counters. You can now also edit CPU counters within counter groups

Additionally, we’ve improved the usability of the Create New Counter dialog by remodelling the GUI. The available counters are now shown in a tree view which should make it much easier to find exactly what you’re looking for, particularly while also using the filter box.

These changes will make it much easier for you to create your own custom counters and counter groups.

tunecomplete counter editor

PowerVR SDK

The PowerVR SDK consists of our graphics development framework and a set of application examples. The Framework is a collection of modules for common 3D graphics tasks and cross-platform deployment. This means that you can focus purely on writing the graphics application itself instead of rewriting boilerplate code. The SDK examples show you how to use various techniques and tools together to make really high-performance graphics applications. 80+ examples are currently provided which are implemented across multiple APIs such as OpenGL ES, Vulkan, OpenCL and so on.

In this release we’ve created a new matrix multiplication example using Vulkan. This example is a headless Vulkan application which means it is launched from the command line without a window or surface. The example runs a SGEMM (Single Precision General Matrix Multiplication) benchmark using a couple of different methods.

These different methods explore the performance impact of:

  • different buffer memory layouts
  • utilising the local memory in different ways
  • different amounts of work per thread and vector processing

As with most of our SDK examples, this example makes extensive use of the SDK Framework.

The PowerVR SDK is available through our GitHub repository, so if you’re interested why not take a look?

That’s all folks…

There are many more bug fixes and improvements under the hood for our tools and SDK – far too many to list here, but if you’re interested, take a look at the Release Notes.

PowerVR Tools and SDK 2020 Release 2 is available to download now – why wait?

Benjamin Anuworakarn

Benjamin Anuworakarn

Ben Anuworakarn is a technical author in the PowerVR Developer Technology team and has a computer science engineering background. Primarily responsible for producing and maintaining both internal and external documentation, he has a knack for coming up with solutions to problems that don't exist yet. You can find him either clacking away at his keyboard or shuffling trading cards every few hours.

1 thought on “PowerVR SDK and Tools 2020 Release 2 now available”

  1. Thank you Imagination for Power VR SDK, please support Vulkan more better as soon as possible. We we can test your Vulkan 1.2 driver on mobile platform?

    Reply

Please leave a comment below

Comment policy: We love comments and appreciate the time that readers spend to share ideas and give feedback. However, all comments are manually moderated and those deemed to be spam or solely promotional will be deleted. We respect your privacy and will not publish your personal details.

Blog Contact

If you have any enquiries regarding any of our blog posts, please contact:

United Kingdom

[email protected]
Tel: +44 (0)1923 260 511

Search by Tag

Search by Author

Related blog articles

b series imgic technology hero banner

PowerVR SDK and Tools 21.1 Out Now – including ray tracing simulator

The sun is starting to come out, people are returning to society, and potentially most exciting; we at DevTech are releasing a new version of the PowerVR SDK and Tools. The PowerVR SDK contains not only our graphics development framework, but also a handful of example applications that show you not only how to implement certain techniques, but also make the most out of your PowerVR platforms. Between the modules that help you deploy cross-platform or libraries that let you focus on the actual code rather than boilerplate setup; our SDK has everything you need to hit the ground running with making a high-performance application. We’re starting with the SDK, rather than the tools this time, because this first talking point is a pretty big one, we think. 

Read More »
Beaglebone Black

Fun with PowerVR and the BeagleBone Black: Low-Cost Development Made Easy

Development boards are cool and the BeagleBone® Black (BBB) is one of the more interesting ones around. This widely available tiny board costs around £35 and will boot Linux is only 10 seconds so anyone interested in development can get stuck in quickly. The Introduction to Mobile Graphics course has been recently revamped for 2020 for the Imagination’s University Programme and the widely available, low-cost BBB is an ideal platform for student teaching and exercises based on OpenGL® ES2.0, instead of an expensive standard PC.

Read More »
pvrtune complete

What is PVRTune Complete?

PVR Tune Complete highlights exactly what the application is doing at the GPU level, helping to identify any bottlenecks in the compute stage, the renderer, and the tiler.

Read More »

Connect

Sign up to receive the latest news and product updates from Imagination straight to your inbox.