История и Теория
Уже несколько лет подряд тайлы пытаются пробить себе дорогу на рынок акселераторов 3D графики. И хотя до сих пор процесс шел не особенно успешно, подобные попытки выглядят каждый раз все более и более внушительными и аргументированными. Особенно в свете столь наболевшей проблемы нехватки пропускной полосы памяти современных ускорителей, построенных по классической архитектуре. Imagination Technologies давно и успешно разрабатывает тайловые чипы семейств PowerVR (на данный момент существует уже 3 семейства чипов, вскоре планируется еще одно), физическим же производством чипов занимается STMicroelectronics. Кстати, число произведенных чипов тайловых ускорителей уже давно перевалило за десятки миллионов, но до сих пор большинство из них устанавливались в различные игровые приставки и автоматы:
Отметим, что чипы второй серии (PowerVR Series 2) использовались в двух достаточно распространенных приставках и на PC. Мы хорошо помним провал PC чипа PVR250 (Neon), в основном из-за проблем с производством чипов и карт, после чего Imagination Technologies и отказались от услуг NEC в пользу STM. Но это все история, а сегодняшний день гораздо более интересен. Серия 3 замахивается на автомобильные компьютеры и даже (!) на мобильные применения. Причем, судя по всему, не в смысле ноутбуков, а в смысле мобильных телефонов и PDA. Кроме PC чипов, присутствуют set-top боксы и еще одна аркадная приставка. В мире же топовых 3D приставок KYRO подобным чипам сейчас конкурировать сложно — ужасающая мощь PSX2 или XBox напугала его создателей. Но, возможно, к следующему поколению (Series 4) они оправятся от испуга.
Итак, спецификации KYRO II:
- Технология 0.18
- Тактовая частота ядра 175 МГц
- Тактовая частота шины памяти 175 МГц (синхронизирована с ядром)
- 128 бит SDR интерфейс с памятью, объем до 64 Мб
- Тайловая архитектура рендеринга, размер тайла 32х16 точек
- Два пиксельных конвейера, по одному текстурному блоку на каждом
- Возможность комбинировать до 8 текстур за один проход
- Произвольные настройки фильтрации для каждой текстуры (би- и трилинейная, анизотропная с числом сэмплов до 16)
- Эффективная реализация FSAA не требующая увеличения размера хранимого в локальной памяти чипа буфера кадра
- Эффективный рендеринг — текстурируются только видимые пикселы, не требуется сохранять значения глубины в локальной памяти, реальный филлрэйт равен эффективному (350 миллионов пикселей в секунду)
- Отсутствует блок аппаратного T&L
- AGP 1х/2x/4x интерфейс
- Аппаратная реализация DotProduct3 и EMBM BumpMapping
- TMDS трансмиттер (возможно появление карт с цифровым DVI интерфейсом)
Глядя на спецификации, становится ясно, что отсутствие KYRO II на выше приведенной схеме совершенно не меняет картины — KYRO II всего лишь разогнанный и немного переработанный вариант KYRO I. Лучшая технология (0.18 вместо 0.25) позволила поднять частоту и сократить энергопотребление. Кроме того, несколько увеличено число транзисторов, вероятно, не только для увеличения тактовой частоты конвейера за счет уменьшения сложности его стадий, но и для реализации более совершенного контроллера памяти (схемы кэширования). По большому счету, все это лишь косметика — архитектура рендеринга не претерпела никаких существенных изменений. По-прежнему нет T&L и по-прежнему чип находится где то между DX7 (к нему он ближе, если не принимать во внимание отсутствие T&L) и DX6 по набору своих возможностей. Для любителей кардинальных революций порекомендуем ждать следующего поколения чипов (Series 4) — именно там мы наконец увидим аппаратный T&L и, возможно, overbright lighting (вычисление освещения и закраска с повышенной точностью передачи цветов; возможность обрабатывать значения больше 1).
А пока давайте сфокусируемся на том, что мы имеем — KYRO II и его интерпретация тайлового подхода.
Итак, Z буфер у нас отсутствует как класс. Точнее, он есть, но только в самом чипе и размером ровно с один тайл (размер тайла 32х16 точек). Также, на чипе хранятся все цвета точек тайла, с точностью 32 бита. Разумеется, доступ к внутричиповому буферу тайла обеспечивается оптимально — не только с максимальной скоростью, но для некоторых задач еще и параллельно. Построение изображения организуется следующим образом:
- Драйвер накапливает в памяти полный список всех треугольников сцены, передаваемых ему для отрисовки программой (недостаток — их нельзя сразу передавать на карту). Треугольники трансформируются и освещаются (T&L) программно (напомню, что аппаратный блок T&L отсутствует), именно поэтому результаты KYRO существенно зависят от тестовой платформы.
- Все треугольники отправляются на ускоритель, который аппаратно определяет для каждого треугольника тайлы, в которые он попадает. Фактически, для каждого тайла составляется список номеров попадающих в него треугольников (этот процесс называется binning).
- Когда списки полностью составлены, ускоритель начинает отрисовывать тайл за тайлом:
- В буфере глубины, полностью находящемся внутри чипа, определяется видимый (ближайший) треугольник для каждой точки. Фактически, это делается с использованием стандартной технологии определения видимости на основе буфера глубины (Z). Однако, в отличии от обычных ускорителей, проверка глубины воплняется парралельно, сразу для 32 точек треугольника (одна строчка тайла) и на этом этапе значения цвета еще не вычисляются а просто запоминается номер видимого треугольника для каждой точки тайла. Таким образом, скорость определения видимых точек значительно выше, нежели в случае традиционной архитектуры. Если OverDraw сцены не превышает 16 (32/2, что очень маловероятно даже в будущих приложениях), определение видимых точек выполняется гораздо быстрее закраски (2 за такт) и не является сдерживающим фактором.
- Между тем, пока идет определение видимых точек текущего тайла, видимые точки предыдущего неспешно текстурируются во внутрений буфер цветов (32х16, 32 бит на точку) двумя параллельными пиксельными конвейерами. Вычисляются и комбинируются значения текстур (от 1 до 8, с различными установками фильтрации) и результат записывается в соответствующую точку. Каждый конвейер имеет по одному текстурному блоку, но результаты работы блока могут накапливаться до 8 раз и затем комбинироваться. Разумеется, это требует увеличения числа тактов, но все равно, это гораздо выгоднее многопроходного построения изображения классическим методом, с использованием не более двух текстур за проход.
- После прорисовки тайл полностью записывается в буфер кадра, но данные глубины туда не записываются и теряются безвозвратно (Вообще-то через драйвер можно включить режим, в котором Z буфер все же будет записываться в память для последующего использования в том или ином виде, но это существенно замедлит работу ускорителя). Экономится полоса пропускания памяти, запись делается один раз и сразу большим пакетом. Для реализации многопроходного рендеринга нам необходимо сначала собрать вместе все треугольники со всех проходов, попадающие в текущий тайл и вывести их в него, за один раз. Разумеется, это неудобно с точки зрения расхода системной памяти, но необходимо терпеть ради получаемой экономии пропускной полосы и fillrate.
При наличии столь гибкого механизма комбинации текстур, практически в любом приложении можно обойтись и без многопроходного рендеринга, но большинство современных игр не могут эффективно воспользоваться возможностью комбинировать до 8 текстур сразу, и по-прежнему будут строить изображение в несколько проходов, комбинируя по две текстуры за раз.
Благодаря полной отрисовке тайла во внутреннем буфере (где точность представления цвета всегда 32 бита), сильно повышается визуальное качество изображений, построенных в 16 битном режиме — во время многопроходного построения на обычном ускорителе все промежуточные данные обрезаются до 16 бит, здесь же это происходит только с окончательными значениями.
Как бы там ни было, тайловый рендеринг требует переосмысления классического подхода к построению изображения. Появление DX8 с его настройкой стадий, файлами эффектов и пиксельными шейдерами вселяет некий оптимизм — многопроходное построение изображение будет постепенно вытесняться этими технологиями из приложений.
Тайловая архитектура здорово снижает требования к пропускной полосе памяти. Но сами по себе спецификации KYRO II выглядят несколько бледно — всего два конвейера с одним текстурным блоком на каждом, SDR память и чип на частоте 175 МГц. В случае большого объема текстур, фильтруемых с учетом большого количества сэмплов (трилинейная или анизотропная фильтрация), даже тайловая архитектура не спасет этот чип, он будет ограничен пропускной полосой своей памяти по текстурам. А в режиме FSAA — величиной fillrate, пускай и очень эффективного. Конечно, если на помощь не придет сжатие текстур S3TC (об этом чуть далее). Но вот насколько строгими будут эти ограничения и определит, выиграет ли чип у классических ускорителей или нет. Впрочем, об этом далее.
Сам по себе KYRO II может стать серьезной угрозой недорогим чипам NVIDIA и ATI, дело за маркетингом. Но еще более интересно, на что будет способен первый чип из Series 4 — новый тайловый ускоритель с аппаратным T&L, 4 конвейерами закраски и, возможно, с пиксельными шейдерами. Судя по всему, ждать его анонса осталось недолго. Если маркетинг не подачает, именно он сможет составить серьезную и широкую конкуренцию ускорителям классической архитектуры. Разумеется, если создатели KYRO будут и далее совершенствовать искусство написания драйверов, к которым, пока еще есть некоторые нарекания. В защиту STM отметим, что драйверы, вышедшие одновременно с KYRO II, обеспечили существенный прирост производительности даже для первого чипа.
Плата
Опытный образец карты KYRO II от Imagination Technologies снабжен AGP x2 интерфейсом (сам чип поддерживает 4х, но все производимые в данный момент карты снабжаются 2х) и 32 Мб SDR SDRAM памяти, размещенной в 4-х микросхемах на лицевой стороне PCB.
Микросхемы памяти произведены Samsung, номинальное время выборки 5 ns, что соответствует частоте 200 МГц. Однако модули, как и сам графический процессор, функционируют на частоте 175 МГц.
Дизайн платы (как вы, наверное, уже заметили по самой верхней фотографии), очень сходен с дизайном серийно выпускаемой карты VideoLogic Vivid! на базе первого чипа KYRO (на нашем сайте вскоре появится и ее обзор). В общем, ничего лишнего, только чип и модули памяти, да схема TV-out, традиционно снабженная S-Video выходом.
PCB- ярко-зеленого цвета, размеры самой карты довольно невелики. На процессор приклеен обычный кулер с вентилятором.
Разгон
Несмотря на то, что PowerStrip последней версии (3.0 beta123) умеет работать с KYRO II, разгон карты на частоту свыше 180 МГц невозможен из-за появления очень сильных артефактов (напоминаем, что частоты чипа и памяти жестко синхронизированы), судя по всему, основным ограничивающим фактором является чип. Нет никакого смысла пытаться разогнать эту карту.
Установка и драйверы
Рассмотрим конфигурацию тестовых стендов, на которых проводились испытания карты на базе KYRO II:
- Стенд на базе Pentium III:
- процессор Intel Pentium III 1000 MHz:
- системная плата Chaintech 6OJV (i815);
- оперативная память 256 MB PC133;
- жесткий диск IBM DPTA 20GB;
- операционная система Windows 98 SE;
- Стенд на базе Athlon:
- процессор AMD Athlon 1200 MHz:
- системная плата Soltek 75KAV-X (VIA KT133A);
- оперативная память 256 MB PC133;
- жесткий диск Fujitsu 10GB;
- операционная система Windows 98 SE;
На стенде использовались мониторы ViewSonic P810 (21") и ViewSonic P817 (21").
При тестировании мы использовали драйверы от STM версии 1.00.7.056. VSync был отключен.
Как видно из приведенного скриншота, среди настроек драйвера есть регулировки анти-алиасинга, возможность активизации анизотропной фильтрации, форсирование трилинейной фильтрации и компрессия текстур. Но что все эти возможности реально дают пользователю, мы узнаем ниже.
Для сравнительного анализа были использованы результаты следующих видеокарт: ATI RADEON 32MB SDR, ATI RADEON 32MB DDR, Leadtek WinFast GeForce2 MX/DVI, VideoLogic Vivid! (KYRO), AOpen PA256 Deluxe (GeForce2 GTS).
Результаты тестов
В области 2D-графики все в норме. Качество на уровне карт на NVIDIA GeForce2, от именитых производителей, и, возможно, карт ATI на базе RADEON. Впрочем, и у первого KYRO проблем с 2D не было.
Приступим к оценке 3D производительности видеокарты. В качестве инструментария мы использовали следующие программы:
- id Software Quake3 v.1.17 — игровой тест, демонстрирующий работу платы в OpenGL с использованием стандартного демо-бенчмарка demo002;
- Rage Expendable (timedemo) — игровой тест, демонстрирующий работу платы в Direct3D в режиме мультитекстурирования;
- Epic Games Unreal v.2.25f — игровой тест, демонстрирующий работу платы в Direct3D в режиме мультитекстурирования.
Для оценки качественных параметров в дополнение к вышеперечисленным использовались следующие игры:
- Ritual F.A.K.K.2;
- PlanetMoon Giants;
- Lionhead Studios Black&White.
Quake3 Arena
Стандартный тест
Тестирование проводилось в двух режимах: Fast (демонстрирует работу карты в 16-битном цвете) и High Quality (демонстрирует работу карты в 32-битном цвете).
Хорошо видно, что в 16-битном цвете KYRO II занимает стабильное второе место после GeForce2 GTS и только в 1600х1200 его догоняет RADEON DDR. А вот в 32-битном цвете оптимизированная для большой нагрузки на шину памяти архитектура RADEON DDR дает о себе знать. KYRO II, все еще отставая от GeForce2 GTS, идет вровень с RADEON DDR, и только в разрешении 1600х1200 сказывается наличие SDR-памяти, в результате чего RADEON DDR выходит даже на первую позицию. О чем это говорит? Двухконвейерный (с одним текстурным модулем на каждом конвейере) чип KYRO II "утер нос" RADEON-у, у которого хоть и тоже два конвейера, но на каждом по 3 текстурника (то, что один из трех TMU пока не работает — сейчас несущественно). Пусть частота работы у последнего и несколько ниже, но не стоит забывать, что он снабжен быстрой DDR-памятью. А KYRO II спокойно справляется с таким же объемом работ, имея в наличии лишь SDR-память. Тем не менее, GeForce2 GTS все равно берет верх своими 4-мя конвейерами с 2-ю текстурниками на каждом и отличными OpenGL драйверами, однако показательно, что вчетверо более слабый с точки зрения числа конвейеров и текстурников KYRO II лишь немного отстает от GeForce2 GTS. Вот оно, преимущество тайловой архитектуры.
Компрессия текстур
Тестирование проводилось в двух режимах: 16-битный цвет и 32-битный цвет при максимально возможном качестве.
Как известно, Quake3 при активизации S3TC-технологии (переменная r_ext_compress_textures 1) начинает работать в режиме автокомпрессии. Это дает свои плюсы и минусы. Плюсы в том, что суммарный объем сжатых текстур меньше, и поэтому экономится пропускная способность видеопамяти. Минусы в том, что изначально все текстуры в Quake3 не были сжаты, и не рассчитаны на потерю в качестве после компрессии. Поэтому обязательно будет наблюдаться некоторое ухудшение качества. У каждой карты оно свое, об этом мы уже писали в 3DGiТогах. Что получается в этом плане у KYRO II, я покажу чуть ниже, а сейчас давайте посмотрим на приведенные ранее диаграммы (16-битный цвет). Прирост скорости от применения S3TC у RADEON-карт минимален из-за достаточного запаса пропускной способности памяти, а также благодаря наличию технологии HyperZ, экономящей полосу пропускания видеопамяти. Прирост по скорости у GeForce2 MX/GTS также мал, что тоже объяснимо (в 16-битном цвете пропускной способности памяти еще достаточно).
Кроме того, необходимо еще раз подчеркнуть выдающееся визуальное качество изображения в режимах с 16 битной глубиной цвета, получаемое благодаря внутреннему расчету (с точностью 32 бита) блендинга различных проходов рендеринга. Подобное качество недоступно для ускорителей с обычной архитектурой.
Раз уж речь зашла о режиме тестирования с наилучшим качеством, то нелишне будет напомнить, что в данном тесте принимает участие трилинейная фильтрация. Мы знаем, что у KYRO/KYRO II она реализована честно, а не через аппроксимацию. Также хорошо известно, что при подобной архитектуре конвейеров (2 конвейера и по одному TMU на каждом), например, у NVIDIA Riva TNT2 при условии принудительного включения честной трилинейки наблюдается просто катастрофическое падение производительности. Поэтому давайте посмотрим, как обстоит дело при отключенной трилинейной фильтрации в 32-битном цвете:
Что мы можем видеть? Прирост производительности без трилинейки у KYRO II настолько велик, что эта карта смогла легко обогнать даже NVIDIA GeForce2 GTS! Вот как это выглядит в процентах:
Вы только посмотрите, насколько сильно просаживается KYRO II при активизации трилинейной фильтрации! И как мало при этом падает скорость у GeForce2 GTS. В данном случае, классическому ускорителю помогает не только большое количество конвейеров и текстурных блоков, но и более широкая пропускная полоса памяти — не следует забывать что объем прокачевыемых текстур при применении трилинейной фильтрации возрастает. При включении S3TC трилинейная фильтрация обходится нам существенно дешевле:
Падение снова на лицо, хотя и не столь катастрофическое. Впрочем, у конкурентов оно еще ниже. Для KYRO II оно слабо зависит от разрешения (в отличии от GeForce2), что наводит на мысли о недостаточно fillrate — большее число конвейеров закраски позволило бы KYRO II полностью раскрыть свой потенциал. Что интересно, прекрасно сбалансированный RADEON существенно превзошел по этому параметру даже тайловую архитектуру KYRO II.
Итак, мы вернулись к S3TC. Выше мы уже упомянули о приростах по скорости при активизации S3TC. И вот KYRO II нас удивила достаточно приличным скачком производительности:
Впрочем, KYRO также на высоте. Вы только посмотрите на это разительное отличие от других карт! Я пока не буду делать выводов, а перейду к 32-битному цвету.
Посмотрите, как у всех карт подросло различие в производительности без и с применением S3TC! Почти все карты в данном случае упираются в нехватку пропускной способности видеопамяти, а S3TC, разгружая последнюю, помогает поднять скорость. KYRO II в 32-битном цвете при активной S3TC запросто догнал GeForce2 GTS (и даже немного обогнал), хотя у последнего прирост производительности тоже весьма ощутим!
Какие впечатляющие цифры прироста! Обратите внимание на то, что в 1600х1200 у многих карт ситуация с пропускной способностью памяти стала настолько критичной, что даже S3TC перестала существенно помогать, и прирост сократился. А у KYRO и KYRO II все по-прежнему на высоте. Сказывается основное преимущество тайловой архитектуры — объем пересылаемой в буфер кадра и обратно информации в несколько раз ниже, а в большом разрешении это играет определяющую роль
И еще. Сравните производительность KYRO II в 16- и 32-битном цвете при активной S3TC. Разницы почти нет. Тайловая архитектура при помощи S3TC практически полностью освобождает чип ограничений в лице пропускной способности видеопамяти (как известно, внутри чипа KYRO оперирует с 32-битным цветом во всех случаях) и упирается только в тактовую частоту чипа и число конвейеров / текстурных модулей.
А что же с потерей качества? Давайте посмотрим:
Как мы видим, потери имеются, но они не фатальны. В 3DGiТогах мы сравнивали качество компрессии текстур в режиме автокомпрессии, и самым безобразным было положение карт на базе чипов NVIDIA.
Giants
S3TC — вопросы качества
Однако до сего момента мы вели речь об игре, которая управляет автокомпрессией текстур, сами текстуры при сжатии не столь сильно страдали в качестве. Но в настройках драйверов есть возможность форсировать S3TC для всех игр. Давайте посмотрим на примере Giants, к чему приведет включение S3TC в играх, изначально не рассчитанных на использование этой технологии:
В данном случае потери катастрофичны. Все пятна света на воде, получаемые при помощи карт освещения (lightmaps), превратились в убогие квадраты. Это огромный минус, свойственный автокомпрессии. Мы вынуждены констатировать, что S3TC в автоматическом режиме на любых ускорителях желательно использовать только в тех играх, которые изначально были рассчитаны на применение компрессии текстур. Для примера приведем кадры из других игр (Expendable и Unreal) также изобилующих ужасными артефактми в режиме автокомпрессии:
Подобные артефакты к сожалению, не позволяют играть во многие игры с использованием автокомпрессии, способной (особенно в случае трилинейной фильтрации и AA) заметно увеличить производительность KYRO II. Именно поэтому мы стараемся приводит результаты как с использованием S3TC так и без оного, оставляя выбор за читателями статьи (и их любимыми играми).