Low-Level GLSL Optimisation for PowerVR

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+.
 

Leave a Comment

Search by Tag

Search for posts by tag.

Search by Author

Search for posts by one of our authors.

Featured posts
Popular posts

Blog Contact

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

United Kingdom

benny.har-even@imgtec.com
Tel: +44 (0)1923 260 511

Related blog articles

What is PowerVR Automotive? Register NOW to hear our webinar.

The automotive industry is going through many changes and that is having a huge impact on the semiconductor IP industry. The vehicle will move from being predominantly mechanical to primarily a computer on wheels enabling a future of self-driving cars,

Image-based lighting

PowerVR Tools and SDK 2018 Release 2 now available

Here’s an early Christmas present for graphics developers – the release of the latest version of our PowerVR Tools and SDK! The headline features for this release include some exciting new examples demonstrating new techniques in our SDK, and some very

on stage in China

PVRIC4 a hit at ICCAD 2018 in China

Imagination’s PVRIC4 image compression tech garnered plenty of attention at the recent ICCAD China 2018 symposium, which took place on 29th and 30th November at the Zhuhai International Convention & Exhibition Centre, China. The annual event focusses on integrated circuit

The ultimate embedded GPUs for the latest applications

Introducing PowerVR Series9XEP, Series9XMP, and Series9XTP As Benjamin Franklin once said, only three things in life are certain: death, taxes and the ongoing rapid advancement of GPUs for embedded applications*. Proving his point, this week, Imagination has once again pushed

Stay up-to-date with Imagination

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

  • This field is for validation purposes and should be left unchanged.