Определите, будет ли Quartz Composition в QCView визуализироваться с помощью программного или аппаратного обеспечения - PullRequest
0 голосов
/ 05 февраля 2011

У меня есть ощущение, что есть комбинации Cocoa Quartz Compositions и GPU, которые не могут быть обработаны GPU и которые используют программный рендер, даже если Core Image «ускоряется» нормально.Как бы я обнаружил такую ​​ситуацию?

Или, в более общем смысле, как мне обнаружить, что машина слишком слаба для обработки определенной композиции определенного размера, без фактического воспроизведения композиции и измерения FPS?

(Измерение FPSвоспроизведение композиции в скрытом окне вряд ли сработает, поскольку QCView может обнаружить эту ситуацию и оптимизировать всю операцию или ее части. И даже если он этого не сделал сегодня, он может начать делать это со следующим обновлениемот Apple - это было бы ненадежное решение.)

Обновление: Чтобы быть более тщательным, я написал некоторый код для проверки рендеринга композиции с полным разрешением в упорядоченном, но правильно подобранном окне., пытаясь заставить рендер произойти с [self startRendering];[self snapshotImage];[self stopRendering];.Сначала это занимало время, которое выглядело разумным, пока не оказалось, что медленный компьютер быстрее выполнял этот тест, чем быстрый.;) На самом деле медленная машина визуализирует композицию со скоростью 2,24 FPS против 27 FPS на быстрой машине.

1 Ответ

1 голос
/ 12 февраля 2011

Полагаю, вы спрашиваете, чтобы можно было сделать более простую анимацию для более слабых систем?

Один из вариантов может состоять в проверке аппаратной строки пользователя, как указано здесь: Набор микросхем GPUОбнаружение .

glGetString может возвращать GL_VENDOR, GL_RENDERER, GL_VERSION или GL_EXTENSIONS.Вы можете теоретически использовать GL_VENDOR, чтобы идентифицировать Intel GMA как слишком медленные, или сравнить GL_RENDERER со списком известных неэффективных графических процессоров.Если вы пишете код только для 10.6+, вам нужно сравнивать только графические процессоры, используемые в Intel Mac, поэтому список не должен быть слишком длинным.

Возможно, это не совсем элегантное решениеищу, но это надо сделать.Я также предоставил бы пользователю возможность выбора графики более высокого или более низкого качества, если он пожелает.

...