Введение

PowerVR — подразделение Imagination Technologies (ранее VideoLogic), которое разрабатывает аппаратное и программное обеспечение для 2D- и 3D-рендеринга, а также для кодирования и декодирования видео, сопутствующей обработки изображений и ускорения DirectX, OpenGL ES, OpenVG и OpenCL. PowerVR также разрабатывает AI-ускорители, называемые ускорителями нейронных сетей (NNA). Линейка продуктов PowerVR была первоначально представлена для конкуренции на рынке 3D-аппаратных ускорителей для настольных ПК, предлагая лучшее соотношение цены и производительности по сравнению с существующими продуктами, такими как решения от 3dfx Interactive. Быстрые изменения на этом рынке, особенно с появлением OpenGL и Direct3D, привели к быстрой консолидации. PowerVR представила новые версии с низким энергопотреблением, ориентированные на рынок ноутбуков. Со временем это развитие привело к созданию серии разработок, которые можно было интегрировать в системы на кристалле, подходящие для использования в портативных устройствах. Сама PowerVR не производит ускорители, а лицензирует свои IP-блоки – проекты интегральных схем и патенты – другим компаниям, таким как Texas Instruments, Intel, NEC, BlackBerry, Renesas, Samsung, Sony, STMicroelectronics, Freescale, Apple, NXP Semiconductors (ранее Philips Semiconductors) и многим другим.

Технология

Чипсет PowerVR использует метод 3D-рендеринга, известный как отложенный рендеринг на основе тайлов (часто сокращаемый как TBDR), который представляет собой рендеринг на основе тайлов в сочетании с запатентованным методом PowerVR по удалению скрытых поверхностей (HSR) и технологией иерархического планирования (HST). Когда программа генерации полигонов передает треугольники в PowerVR (драйвер), она сохраняет их в памяти в виде треугольных полос или в индексированном формате. В отличие от других архитектур, рендеринг полигонов (обычно) не выполняется до тех пор, пока вся информация о полигонах не будет собрана для текущего кадра. Кроме того, ресурсоемкие операции текстурирования и затенения пикселей (или фрагментов) откладываются, когда это возможно, до тех пор, пока не будет определена видимая поверхность пикселя – следовательно, рендеринг откладывается. Для рендеринга дисплей разделяется на прямоугольные секции в виде сетки. Каждая секция называется тайлом. С каждым тайлом связан список треугольников, которые визуально перекрывают этот тайл. Каждый тайл рендерится по очереди для создания финального изображения. Тайлы рендерятся с использованием процесса, аналогичного трассировке лучей. Лучи численно моделируются как будто они проецируются на треугольники, связанные с тайлом, и пиксель рендерится из треугольника, ближайшего к камере. Аппаратное обеспечение PowerVR обычно вычисляет глубину, связанную с каждым полигоном для одного ряда тайлов за 1 цикл. Этот метод имеет преимущество в том, что, в отличие от более традиционных иерархических систем с ранним отсечением по Z, не требуется выполнять вычисления для определения того, как выглядит полигон в области, где он заслонен другой геометрией. Он также позволяет корректно рендерить частично прозрачные полигоны, независимо от порядка их обработки приложением, генерирующим полигоны. (Эта возможность была реализована только в серии 2, включая Dreamcast и один вариант MBX. Обычно она не включена из-за отсутствия поддержки API и соображений стоимости.) Более того, поскольку рендеринг ограничен одним тайлом за раз, весь тайл может находиться в быстрой чиповой памяти, которая очищается в видеопамять перед обработкой следующего тайла. В нормальных условиях каждый тайл посещается только один раз за кадр. PowerVR является пионером отложенного рендеринга на основе тайлов. Microsoft также разработала эту идею в рамках своего заброшенного проекта Talisman. Компания Gigapixel, разрабатывавшая IP для 3D-графики на основе тайлов, была приобретена 3dfx, которая, в свою очередь, была приобретена Nvidia. Теперь известно, что Nvidia использует рендеринг тайлами в микроархитектурах Maxwell и Pascal для ограниченного количества геометрии. ARM начала разрабатывать другую крупную архитектуру на основе тайлов, известную как Mali, после приобретения Falanx. Intel использует аналогичную концепцию в своих интегрированных графических продуктах. Однако ее метод, называемый рендерингом зон, не выполняет полное удаление скрытых поверхностей (HSR) и отложенное текстурирование, следовательно, тратит пропускную способность заполнения и текстур на пиксели, которые не видны в финальном изображении. Недавние достижения в иерархическом буферировании Z эффективно включили идеи, ранее использовавшиеся только в отложенном рендеринге, включая возможность разделения сцены на тайлы и потенциальную возможность принятия или отклонения фрагментов полигонов размером с тайл. Сегодня программно-аппаратный комплекс PowerVR включает ASIC для кодирования и декодирования видео, а также для сопутствующей обработки изображений. Он также поддерживает виртуализацию и ускорение DirectX, OpenGL ES, OpenVG и OpenCL. Новейшие графические процессоры PowerVR Wizard оснащены аппаратным обеспечением Ray Tracing Unit (RTU) с фиксированной функциональностью и поддерживают гибридный рендеринг.