Про производительность не скажу, т.к. сравнить не с чем было, но вполне устраивала.
1100*1100
А просто блитинг картинки такого размера с частотой 10Гц загружал процессор на 1-2% (intel 865, 700MHz, devg-extreme.so)
Хм... А как создать gf_context? Где об этом можно почитать?
В винде у меня нечто похожее: создаю контекст вызовом wglCreateContext, затем вызываю wglMakeCurrent, дальше идёт вывод графики, а в конце работы программы вызов wglDeleteContext. Графика выводится в специальный контекст, а для обновления картинки на экране используется SwapBuffers, в качестве параметра принимающая контекст окна, в котором её нужно отобразить.