Проверка доступности аппаратного ускорения? (Тестирование доступно)
Я написал CSS, который использует -webkit-transform, -webkit -спектива и несколько подобных. Мой дизайн выглядит как колени на машинах, где доступно аппаратное ускорение, но практически невозможно, когда нет. Как я могу проверить доступность аппаратного ускорения и предоставить запасной CSS?
Примечание: запустите chrome://gpu-internals/, чтобы вручную проверить доступность.
1 ответ
К сожалению, ответ, кажется, "ты не можешь (пока)".
Проект Modernizr перечисляет ускорение HW среди своих "необнаружимых": https://github.com/Modernizr/Modernizr/wiki/Undetectables.
Частично проблема заключается в том, что ускорение HW используется в каждом конкретном случае при рендеринге чего-либо на странице. Таким образом, даже если браузер теоретически может поддерживать ускорение HW, будет ли оно использоваться для какой-либо операции (перевод, переход, перерисовка и т. Д.), Заранее неизвестно.
Вы могли бы представить схему обнаружения, которая использует профилирование для обнаружения изменений в производительности с / без ускорения HW, но вещи, которые используют ускорение HW, происходят в слое вне поля зрения страницы. Вы не можете, например, определить частоту кадров перехода, даже если вы можете надежно включить / отключить ускорение HW.
API рендеринга webkit выглядит как место, где эта информация может быть доступна, но он не выглядит доступным через Javascript уровня страницы (даже если к узлам в DOM прикреплены объекты RenderObject): https: //www.webkit. орг / блог / 114 / WebCore-рендеринг-I-на-основа /
Похоже, что единственно приемлемым вариантом является пользовательский агент, сниффинг по списку известных ускоренных браузеров (хм).