@philipwhite are you doing any sort of caching? I think, cairo is just vector graphics so it won't do it for you, and a terminal emulator most of the time should be just copying memory(cached renders of glyphs) not constantly re-rendering glyphs. With that I think even the CPU can do 60 fps full-screen with reasonable font size (assuming optimized memcpy). You'd probably need similar setup with opengl as well, because that's the best approach there too (though probably wouldn't be able to reuse any code... so mental setup). The difference is that with CPU the further optimization would be trying to identify and exploit patterns, like consecutive characters, and rendering them in one go, while with GPU you will be mostly optimizing the pipeline, that is figuring out how to update the cache of glyphs that is now in GPU memory without noticeable hiccups.