I’ve posted technical articles to the Imagination Technologies blog sporadically over the last few years as I’ve found the time to write content. My most recent article received more attention than I expected so, in lieu of new content to post on this blog, I thought I’d cross reference a few IMG articles that still get a decent number of hits :)
Why GPUs don’t like to share – a guide to improve your renderer on PowerVR-based platforms
This article discusses the performance implications of modifying buffers and textures from the CPU-side while GPU read operations on those resources are still pending. The driver behaviour discussed is specific to PowerVR, but all GPU vendors have to deal with these problems (either by stalling the CPU when writes are issued or by orphaning/ghosting buffers).
You can find the full article here.
Understanding OpenGL ES: Multi-thread and multi-window rendering
Multi-threaded rendering in OpenGL ES can be tricky. You have to carefully consider the type of work that can be issued to a background thread and ensure signals are sent to the primary thread when a resource is ready for use. It’s also quite easy to shoot yourself in the foot and make performance worse if you naively call functions that are more costly than they seem, e.g. eglMakeCurrent().
In this article, I’ve listed a number of best practices for multi-thread and multi-window rendering in OpenGL ES. You can find the full article here.
Panel of graphics experts discusses Vulkan at the Khronos Paris chapter
At the end of January 2016, I attended the Khronos Paris Chapter’s first meetup and took part in a panel discussion on the Khronos Group’s new Vulkan graphics and compute API. It was an extremely useful event for me, as I’ve only been working with the API for a few months and still have a lot of learn about it.
Following the event, I decided to write an overview of some of the talking points I found most interesting. You can find the full article here.