Metal на macOS - синхронизировать обновление монитора? - PullRequest
0 голосов
/ 18 ноября 2018

Я в процессе преобразования старого кода OpenGL в Metal.

В настоящее время я использую MTKView для рендеринга буфера памяти в окно. Я использую его с paused = YES, enableSetNeedsDisplay = NO и ручными вызовами draw () из моего цикла рендеринга.

Кажется, все работает, за исключением того, что я ограничен 60 кадрами в секунду без видимой причины. Я подозреваю, что Metal синхронизируется с обновлением монитора, когда я этого не хочу.

Когда я изменяю размер окна, моя частота кадров временно скачет до 150+ кадров в секунду, что говорит мне, что предел не мой.

Кто-нибудь знает, как остановить этот предел частоты кадров? Я попытался установить предпочитаемое значение FramesPerSecond в разные значения (как ниже, так и выше), но это, похоже, не дает никакого эффекта.

Заранее спасибо за любые указатели.

1 Ответ

0 голосов
/ 18 ноября 2018

Как правило, я понял это через несколько минут после того, как задал вопрос:

CAMetalLayer *c = self.layer;
c.displaySyncEnabled = NO;
...