У меня есть приложение WebGL, которое я разрабатываю, и я столкнулся с довольно серьезными проблемами производительности с Retina Display Macbook Pros. Я тестирую 15-дюймовый Macbook с графическим процессором Intel Iris Pro, рендеринг с полным разрешением, который дает мне разрешение холста 3810x2030 с полноэкранным окном Chrome. Мое приложение отображает около 100 тыс. Вершин на фрейм.
Теперь, когда я установил приложение для работы с соотношением пикселей устройства 1 (что означает отсутствие масштабирования сетчатки), производительность приложения прочная, никогда не опускается ниже 60 кадров в секунду, но качество изображения неприемлемо. Когда я переключаюсь на соотношение пикселей устройства сетчатки, которое равно 2, качество изображения значительно улучшается, но частота кадров падает до 20-30 кадров в секунду.
Теперь я не чуждо программированию на GPU, поэтому причины, по которым это происходит, очевидны для меня. Что мне интересно, кто-нибудь там нашел какие-либо обходные пути или способы оптимизации рисунка WebGL для дисплеев с ультравысоким разрешением с плохими графическими процессорами, такими как Retina Macbook Pro? Существуют ли какие-либо неочевидные подсказки или трюки, найденные людьми через пробную версию и ошибку, чтобы решить эту проблему или, по крайней мере, сделать ее немного лучше?
Любая помощь будет оценена по достоинству. Спасибо.
Изменить: небольшое обновление с интересным открытием. Я поместил окно своего браузера на внешний дисплей, подключенный к Macbook, а при рендеринге в DPR 1, производительность еще выше на внешнем дисплее, чем на macbook, даже с точно таким же разрешением, и изображение качество намного лучше.
Таким образом, даже если вы визуализируете масштабируемую фреймбуфер на Macbook Pro, он все еще масштабирует его, что, вероятно, является причиной низкого качества изображения (он масштабирует его с помощью билинейной фильтрации, делая его более размытым, чем это было бы если исходное изображение было отображено незатронутым).