Я так уже пробовал. Одно отличие - у меня QGLWidget, а не QOpenGLWidget (какая между ними разница - я не понял). beginNativePainting/endNativePainting ничего не исправляют.
QPainter::drawText я не использую - для сообщений у меня отдельный битмап-шрифт и отдельная процедурина вывода, тоже картинками.
Сразу было ясно, что конфликт где-то в совокупности gl-вызовов и существования QPainter-а
Сравнивая то-где-глючит и то-где-не-глючит, я нашёл только одно отличие - фпс эмулируемой машины. Поток эмулирования за раз отэмулирувает где-то 20мс (для 50Гц), но при 60Гц на эмулируемой машине в этот период может быть готово сразу 2 кадра, и соответственно 2 раза выдаётся сигнал "кадр готов". Возможно, он и засирает всё.



Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
Точно не знаю, почему так, но... До этого для перерисовки окна я делал setUpdatesEnabled(true); repaint(); setUpdatesEnabled(false); - обновления окна разрешены только здесь, чтобы система не перерисовывала его когда ей захочется.