Не видно 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.

Есть идеи, что может пойти не так?

0 ответов

Другие вопросы по тегам