Тем не менее, я хотел бы отображать как можно больше кадров - как это сделать?
Не с Qt. Qt получает полный контроль над циклом событий, таким образом, не предоставляя вам никаких средств для непосредственного выполнения операций в режиме ожидания. Стандартный способ выполнения незанятых операций в Qt - это использование QTime с таймаутом 0.
Другой возможностью было использование второго потока только для операций OpenGL. Однако для надежной работы вы должны создать выделенный контекст OpenGL для этого одного потока.
Qt просто не подходит для тех программ, в которых основная задача основного цикла - рендеринг изображений, а ввод и управление событиями - вторичны.