Low-Level GLSL Optimisation for PowerVR

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

With the release of the updated PowerVR SDK & Tools 2017 R2 last month, it’s time to take a look at some of the new content packaged that is included alongside it. In this post we’ll take a closer look at the PowerVR Low-Level GLSL Optimisation document – our guide to wringing every last drop of performance out of the PowerVR Rogue architecture. GLSL stands for OpenGL Shading Language, which is normally associated with high-level operations, but there are some low-level optimisations a developer can do that are often overlooked.

When it comes to the PowerVR Rogue architecture, shader performance generally depends on the number of cycles required to execute a shader. The architecture offers a variety of options for executing multiple instructions in the USC (Unified Shader Cluster) ALU (Arithmetic and Logic Unit) pipeline within a single cycle, depending on the configuration, of course. It is possible, for example, to execute two F16 SOP (Sum of Products) instructions, any F32 to F16 conversions, and the move/output/pack instruction, all in a single cycle.

Alternatively, you could execute an FP32 Multiply-Add instruction (MAD), along with an FP32/INT32 MAD/UNPACK instruction, a test (conditional) instruction, and the move/output/pack instruction in one cycle. Math expressions should be written in MAD form in order to take advantage of the USC cores.

Another trick to optimising your work involving the PowerVR Rogue architecture is to take advantage of the fact that in some cases modifiers like abs(), neg(), and clamp(…, 0.0, 1.0), are free under certain conditions. When used on an input to an operation, abs() and neg() are turned into free modifiers by the compiler. On the other hand, clamp(…, 0.0, 1.0) turns into a free modifier when used on the output of an operation.

Thanks to these optimisations, your application will not only use less power to run but have lower hardware requirements as well.

Want to know even more ways to optimise your application? Then download the PowerVR Low-Level GLSL Optimisation document for yourself and find even more ways to leverage the PowerVR Rogue architecture in your favour!

Follow Imagination Technologies on social media on Twitter @ImaginationTech and on LinkedInFacebook and Google+.

Lukasz Furmaniak

Lukasz Furmaniak

Lukasz Furmaniak is a Technical Author within the Imagination Technologies Developer Technology team generating and editing user manuals for PowerVR. In his spare time, he enjoys console and tabletop gaming and also hosts and produces a collaborative storytelling podcast called "The Tritone Gambit".

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

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 »
android background

The Android Invasion: Imagination GPU IP buddies up with Google-powered devices

Google Android continues to have the lion share of the mobile market, powering around 75% of all smartphones and tablets, making it the most used operating system in the world. Imagination’s PowerVR architecture-based IP and the Android OS are bedfellows, with a host of devices based on Android coming to market all the time. Here we list a few that have appeared in Q4 2020.

Read More »
pvrtextoolgui sunrise 2

PowerVR SDK and Tools 2020 Release 2 now available

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 DevTec, 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. So, what’s new with this latest release? Let’s take a quick look at a few of the major changes.

Read More »

Connect

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