Открыть сервис

Quartz 2D Extreme

Quartz 2D Extreme — это аппаратно-ускоренная реализация двумерного графического движка Quartz 2D, входящего в состав операционной системы macOS (ранее Mac OS X). Разработанная компанией Apple, данная технология была призвана перенести обработку векторной графики, рендеринг шрифтов, композитинг и другие операции двумерной графики с центрального процессора (CPU) на графический процессор (GPU), что должно было повысить производительность и снизить нагрузку на систему.

История

Технология Quartz 2D Extreme была впервые анонсирована и представлена на конференции Worldwide Developers Conference (WWDC) в 2003 году. Изначально она позиционировалась как часть будущей версии Mac OS X 10.4 «Tiger», однако её внедрение затянулось. В финальной версии Mac OS X 10.4 (выпущена в 2005 году) поддержка Quartz 2D Extreme была включена, но по умолчанию отключена. Для её активации требовалось использование специальной утилиты Quartz Debug, входящей в состав инструментов для разработчиков (Xcode Tools).

В последующих версиях операционной системы, вплоть до Mac OS X 10.6 «Snow Leopard» (2009 год), Quartz 2D Extreme оставалась экспериментальной функцией. В Snow Leopard Apple значительно переработала графический стек, и технология была полностью интегрирована в систему под названием QuartzGL. Однако уже в Mac OS X 10.7 «Lion» (2011 год) и последующих версиях поддержка QuartzGL была ограничена или удалена, так как Apple перешла на использование более современного и универсального фреймворка Metal, который обеспечивает низкоуровневый доступ к GPU.

Принцип работы

Основная задача Quartz 2D Extreme заключалась в ускорении рендеринга графики, выполняемого движком Quartz 2D. В обычном режиме Quartz 2D использует центральный процессор для выполнения всех операций: отрисовки линий, заливки фигур, работы с градиентами, прозрачностью и текстом. Это создавало значительную нагрузку на CPU, особенно при работе с большими документами, сложными векторными иллюстрациями или интерфейсами с высокой плотностью пикселей.

Quartz 2D Extreme перенаправлял эти вычисления на графический процессор, который изначально оптимизирован для параллельной обработки больших массивов данных, характерных для графических задач. Для этого использовались шейдеры — небольшие программы, выполняемые на GPU. Технология базировалась на стандарте OpenGL, который обеспечивал программный интерфейс для взаимодействия с графическим ускорителем.

Преимущества и недостатки

Преимущества

  • Снижение нагрузки на CPU: Освобождение центрального процессора от задач рендеринга позволяло ему выполнять другие вычисления, что потенциально повышало общую отзывчивость системы.
  • Потенциальное повышение производительности: Для задач, хорошо параллелящихся (например, работа с большими растровыми изображениями или сложными векторными сценами), использование GPU могло дать значительный прирост скорости.
  • Улучшение работы с прозрачностью и композитингом: GPU эффективно обрабатывает операции наложения слоёв и смешивания цветов, что критически важно для интерфейсов с прозрачными элементами (например, в Exposé или Dashboard).

Недостатки

  • Нестабильность и ошибки: В ранних версиях технология была нестабильна, вызывала артефакты, искажения и сбои в работе некоторых приложений.
  • Ограниченная поддержка: Не все графические операции Quartz 2D были перенесены на GPU. Например, некоторые сложные алгоритмы растеризации шрифтов или специфические эффекты по-прежнему выполнялись на CPU, что приводило к смешанному рендерингу и снижению эффективности.
  • Проблемы с совместимостью: Не все модели GPU поддерживали необходимые функции OpenGL, что ограничивало круг пользователей, которые могли воспользоваться ускорением.
  • Отсутствие заметного прироста в типичных сценариях: Для большинства повседневных задач (просмотр веб-страниц, работа с текстом, простые изображения) разница в производительности была незаметна, а в некоторых случаях (например, при рендеринге сложного текста) производительность даже снижалась.

Применение

Quartz 2D Extreme был ориентирован на профессиональных пользователей, работающих с ресурсоёмкими приложениями:

Однако из-за вышеперечисленных недостатков технология не получила широкого распространения. Большинство разработчиков не включали её поддержку в свои приложения, а пользователи редко активировали её вручную.

QuartzGL

В Mac OS X 10.6 «Snow Leopard» технология Quartz 2D Extreme была переименована в QuartzGL. В этой версии Apple попыталась исправить недостатки предшественника. QuartzGL был включён по умолчанию для некоторых приложений, таких как Preview и iPhoto, но оставался отключённым для большинства сторонних программ. Для его активации по-прежнему требовалось использование Quartz Debug.

В Mac OS X 10.7 «Lion» поддержка QuartzGL была значительно сокращена. В более поздних версиях macOS (начиная с OS X 10.9 «Mavericks») Apple представила фреймворк Metal, который пришёл на смену OpenGL и стал основным низкоуровневым API для работы с GPU. Metal обеспечивает более прямой и эффективный доступ к аппаратному обеспечению, что позволило реализовать аппаратное ускорение двумерной графики на более качественном уровне, чем Quartz 2D Extreme.

Критика

Quartz 2D Extreme подвергался критике за неоправданно сложную настройку, нестабильность и отсутствие заметного улучшения производительности в большинстве сценариев. Многие пользователи и разработчики отмечали, что технология была скорее экспериментальной, чем готовой к массовому использованию. Отсутствие прозрачной документации и API для разработчиков также препятствовало её внедрению.

Источники

  • Apple Inc. (2003). WWDC 2003 Session Notes: Quartz 2D Extreme.
  • Apple Inc. (2005). Mac OS X 10.4 Tiger Developer Documentation.
  • Apple Inc. (2009). Mac OS X 10.6 Snow Leopard Developer Documentation.
  • Siracusa, J. (2009). Mac OS X 10.6 Snow Leopard: the Ars Technica review. Ars Technica.
  • Apple Inc. (2011). Mac OS X 10.7 Lion Developer Documentation.
  • Apple Inc. (2014). Metal Programming Guide.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →