I have been experimenting with extending the pixel minimap’s caching to the main game map in order to render terrain more efficiently, you can view the mess here: https://github.com/DanmakuDan/Cataclysm-DDA/commit/95156a27211dd57c2c3ee38a6338ef40524592dd
The minimap was moved into its own set of classes with templates and some sprite rendering was broken out into a structure that could be reused easily in drawing. Only the terrain layer was moved to the cached system. A lot of code was moved around in cata_tiles.cpp and plenty of standards(?) violated.
Timing was taken using Retrodays 20px tileset (about 90x90 view, or almost the whole visible reality bubble) and some SDL timing calls to check how long drawing was taking.
Unfortunately, the old method takes 40 ms to render one frame vs. the new method’s 77 ms (63 spent on terrain layer alone).
Based on the results, there is probably some efficiency to be gained somewhere, and I wonder if the pixel minimap itself could be faster.
Update: I checked the performance on a computer with an integrated graphics card, and the results are reversed, 40ms for the current method, and 7 ms for the cached drawing one. It looks like the default renderer (not sure what is picked) has performance issues with a dedicated graphics card? Still investigating.