Прочёл что
cairo_push_group (cr);
// Do something
cairo_pop_group_to_source (cr);
cairo_paint (cr);
даёт халявную двойную буферизацию. Я попробовал это комбо на демке с сайта каиро но при изменения размера всёравно окно дико моргает. Может кто знает в чём я не прав?