Не видно NSOpenGLView замедляет всю систему
Я делаю приложение Mac OS X (10.8.3) OpenGL, используя NSOpenGLView и CVDisplayLink для управления вызовами метода рендеринга.
Приложение работает нормально, но когда окно закрывается или находится в другом пространстве (в основном, когда по какой-то причине не видно), вся система начинает работать медленно.
Я протестировал и профилировал его несколькими способами, и вот что я нашел:
- Процессор в норме, потребление процессора не увеличивается
- Память тоже хорошо, объем выделяемой памяти не меняется
- В мониторе драйверов OpenGL время "CPU Wait for GPU" увеличивается
- Также делает "CPU Wait for Free OpenGL Command Buffer" (я думаю, что это проблема)
- Если вызовы отрисовки OpenGL не генерируются, компьютер работает нормально.
Я предполагаю, что невидимый NSOpenGLView каким-то образом меняет поведение, и это делает мое приложение более потребляющим GPU.
Есть идеи, что может пойти не так?