Transparent Compression of Graphical Buffers for Mobile GPUs

This proposal has been rejected.


One Line Summary

A proof-of-concept solution for transparent compression of memory buffers managed by GPU kernel drivers (Mali Utgard and Midgard).


Smart phone devices, recently released to the market, have high-resolution displays and utilize GPUs for accelerated rendering of graphics and parallel computing. Many user applications use complex graphical primitives and heavy textures without attention to efficient management of consumed memory. Since most of mobile GPUs don’t have any dedicated memory and use the system’s one – optimization of graphical memory consumption is a big deal. Lower quantity of memory causes low ability to cache applications, this results to worse interactivity.

Our team has developed a number of PoC modifications to Mali (Utgard, Midgard) kernel drivers for transparent unmapping and compression of page frames temporary unused by GPU. The main problem is that even different revisions of the same driver’s version have notable differences in internals and data structures. Kernel drivers for GPUs of other vendors (Adreno, PowerVR) use discordant terminology and approaches. Thus, there is no common point that could allow making abstract, generic solution performing well for any mobile GPU driver. And this is a question of a dispute: how the approach can be generalized to be useful for different GPU vendors. The second question is that the PoCs work aside the Linux MM and don’t reuse LRUs, swapping and other facilities. May be it is the time to think about some reasonable extension to the memory manager.


memory management, GPU, swap, compression


  • Sergei Rogachev

    Samsung R&D Institute Rus


    Sergei Rogachev is a systems developer in Samsung R&D Institute Rus. He is mainly responsible for research projects related to advanced memory management techniques and debugging tools e.g. software COMA (cache only memory architecture) for Linux, network swapping, transparent compression of GPU memory, etc.

Leave a private comment to organizers about this proposal