Введение
Серия видеокарт Radeon R100 — это первое поколение графических чипов Radeon от ATI Technologies. В линейке реализовано 3D-ускорение на базе Direct3D 7.0 и OpenGL 1.3, и все модели, кроме начального уровня, перекладывают вычисления геометрии на аппаратный модуль трансформации и освещения (T&L), что стало значительным улучшением функциональности и производительности по сравнению с предшествующей архитектурой Rage. Процессоры также поддерживают ускорение 2D GUI, ускорение видео и вывод изображения на несколько дисплеев. "R100" — это кодовое название разработки первого выпущенного графического процессора этого поколения, который послужил основой для множества последующих продуктов.
The Radeon R100 is the first generation of Radeon graphics chips from ATI Technologies. The line features 3D acceleration based upon Direct3D 7.0 and OpenGL 1.3, and all but the entry level versions offloading host geometry calculations to a hardware transform and lighting (T&L) engine, a major improvement in features and performance compared to the preceding Rage design. The processors also include 2D GUI acceleration, video acceleration, and multiple display outputs. "R100" refers to the development codename of the initially released GPU of the generation. It is the basis for a variety of other succeeding products.
Архитектура
Первое поколение GPU Radeon было запущено в 2000 году и первоначально имело кодовое название Rage 6 (позже R100), как преемник устаревшего Rage 128 Pro от ATI, который не мог конкурировать с GeForce 256. В месяцы, предшествовавшие запуску, карта также упоминалась как Radeon 256, возможно, чтобы провести сравнение с конкурирующей картой Nvidia, однако это название было отменено с выходом финального продукта. R100 был изготовлен по 180-нм технологическому процессу. Как и GeForce, Radeon R100 оснащен аппаратным блоком трансформации и освещения (T&L) для выполнения геометрических вычислений, что разгружает центральный процессор компьютера. В 3D-рендеринге процессор может записывать 2 пикселя в буфер кадров и применять 3 текстурных фильтра на пиксель за такт. Это обычно называют конфигурацией 2×3 или двухконвейерной архитектурой с 3 TMU на конвейер. Что касается конкурентов Radeon, GeForce 256 имеет конфигурацию 4×1, GeForce2 GTS – 4×2, а 3dfx Voodoo 5 5500 – 2×1+2×1 SLI. К сожалению, третий текстурный блок редко использовался в играх в течение срока службы карты, поскольку программное обеспечение редко выполняло более чем двойную текстуризацию. С точки зрения рендеринга, архитектура "Pixel Tapestry" поддерживала Environment Mapped Bump Mapping (EMBM) и Dot Product (Dot3) Bump Mapping, предлагая наиболее полную поддержку Bump Mapping на тот момент, наряду с более старым методом Emboss. Radeon также представил новую технологию оптимизации пропускной способности памяти и снижения перерисовки, названную HyperZ. Она в основном повышает общую эффективность процессов 3D-рендеринга. Состоящая из трех различных функций, она позволяет Radeon демонстрировать высокую конкурентоспособность по сравнению с конкурирующими решениями, имеющими на бумаге более высокую скорость заполнения и пропускную способность. ATI выпустила демонстрацию своей новой карты в реальном времени, чтобы продемонстрировать ее новые возможности. Демонстрация Radeon's Ark представляет собой научно-фантастическую среду с активным использованием таких функций, как многослойные текстуры для визуальных эффектов и детализации. Среди эффектов – отображение неровностей на основе карт окружения, детальные текстуры, отражения в стекле и зеркалах, реалистичная симуляция воды, карты освещения, сжатие текстур, плоские отражающие поверхности и видимость на основе порталов. По производительности Radeon уступает GeForce2 в большинстве тестов, даже при активированном HyperZ. Разница в производительности была особенно заметна при 16-битном цвете, где GeForce2 GTS и Voodoo 5 5500 значительно опережали. Однако Radeon мог сократить отставание и иногда превосходить своего самого быстрого конкурента, GeForce2 GTS, при 32-битном цвете. Помимо нового 3D-оборудования, Radeon также представил деинтерлейсинг видео на уровне пикселя в MPEG 2-кодек ATI, поддерживающий HDTV.
Шейдеры пикселей R100
ГПУ на базе R100 обладают перспективными возможностями программируемого затенения в своих конвейерах; однако чипы недостаточно гибки для поддержки спецификации Microsoft Direct3D для Pixel Shader 1.1. Инженер ATI в 2001 году прояснил это в сообщении на форуме: до финального релиза DirectX 8.0, Microsoft решила, что лучше реализовать расширенные возможности RADEON и GeForce{2} для многотекстурирования через расширения SetTextureStageState, а не через интерфейс пиксельных шейдеров. На это есть ряд практических технических причин. Многие из тех же вычислений, которые можно выполнять с помощью пиксельных шейдеров, можно выполнить через SetTextureStageState, особенно с улучшениями SetTextureStageState в DirectX 8.0. В итоге, DirectX 8.0 предоставляет доступ к 99% возможностей RADEON в его пиксельном конвейере, не усложняя интерфейс "0.5" пиксельного шейдера. Кроме того, важно понимать, что термин "шейдер" – крайне неоднозначный в графике. Мы, производители оборудования, стали часто использовать слово "шейдер", когда научились выполнять поэлементное умножение (dot product) для каждого пикселя (т.е. с чипами RADEON / GF поколения). Еще раньше "ATI shader op" было нашим OpenGL-расширением для многотекстурирования на Rage 128 (которое позже было заменено расширением multivendor EXT texture env combine). В Quake III есть ".shader" файлы, которые используются для описания освещения материалов. Это лишь несколько примеров использования слова "шейдер" в игровой индустрии (не говоря уже о кинопроизводстве, где используются различные типы шейдеров, включая те, что применяются в Pixar RenderMan). С финальным релизом DirectX 8.0 термин "шейдер" стал более устоявшимся, поскольку он фактически используется в интерфейсе, который разработчики используют для написания программ, а не просто как отраслевой жаргон. В DirectX 8.0 существует две версии пиксельных шейдеров: 1.0 и 1.1. (В будущих версиях DirectX появятся шейдеры 2.0, 3.0 и так далее.) В связи с вышесказанным, RADEON не поддерживает ни одну из версий пиксельных шейдеров в DirectX 8.0. Некоторые пользователи изменяли реестр, заставляя драйвер экспортировать номер версии пиксельного шейдера 1.0 в 3DMark2001. Это приводит к тому, что 3DMark2001 считает, что может запускать определенные тесты. Конечно, мы не должны аварийно завершать работу при этом, но вы заставляете (утечку и/или неподдерживаемый) драйвер идти по пути, для которого он не предназначен. Чип не поддерживает пиксельные шейдеры 1.0 или 1.1, поэтому вы не увидите корректного рендеринга, даже если не произойдет сбой. Тот факт, что этот ключ реестра существует, указывает на то, что мы проводили эксперименты с драйвером, а не на то, что мы близки к завершению реализации пиксельных шейдеров на RADEON. Пиксельные шейдеры 1.0 и 1.1 в DirectX 8.0 не поддерживаются RADEON и никогда не будут поддерживаться. Аппаратная часть просто не способна выполнить требования для поддержки шейдеров 1.0 или 1.1. Это также справедливо для GeForce и GeForce2.
prior to the final release of DirectX 8.0, Microsoft decided that it was better to expose the RADEON's and GeForce{2}'s extended multitexture capabilities via the extensions to SetTextureStageState instead of via the pixel shader interface. There are various practical technical reasons for this. Much of the same math that can be done with pixel shaders can be done via SetTextureStageState , especially with the enhancements to SetTextureStageState in DirectX 8.0. At the end of the day, this means that DirectX 8.0 exposes 99% of what the RADEON can do in its pixel pipe without adding the complexity of a "0.5" pixel shader interface. Additionally, you have to understand that the phrase "shader" is an incredibly ambiguous graphics term. Basically, we hardware manufacturers started using the word "shader" a lot once we were able to do per pixel dot products (i. e. the RADEON / GF generation of chips). Even earlier than that, "ATI shader op" was our multitexture OpenGL extension on Rage 128 (which was replaced by the multivendor EXT texture env combine extension). Quake III has ". shader" files it uses to describe how materials are lit. These are just a few examples of the use of the word shader in the game industry (nevermind the movie production industry which uses many different types of shaders, including those used by Pixar's RenderMan). With the final release of DirectX 8.0, the term "shader" has become more crystallized in that it is actually used in the interface that developers use to write their programs rather than just general "industry lingo." In DirectX 8.0, there are two versions of pixel shaders: 1.0 and 1.1. (Future releases of DirectX will have 2.0 shaders, 3.0 shaders and so on.) Because of what I stated earlier, RADEON doesn't support either of the pixel shader versions in DirectX 8.0. Some of you have tweaked the registry and gotten the driver to export a 1.0 pixel shader version number to 3DMark2001. This causes 3DMark2001 to think it can run certain tests. Surely, we shouldn't crash when you do this, but you are forcing the (leaked and/or unsupported) driver down a path it isn't intended to ever go. The chip doesn't support 1.0 or 1.1 pixel shaders, therefore you won't see correct rendering even if we don't crash. The fact that that registry key exists indicates that we did some experiments in the driver, not that we are half way done implementing pixel shaders on RADEON. DirectX 8.0's 1.0 and 1.1 pixel shaders are not supported by RADEON and never will be. The silicon just can't do what is required to support 1.0 or 1.1 shaders. This is also true of GeForce and GeForce2.
R100
Первыми версиями Radeon (R100) были Radeon DDR, доступные весной 2000 года в конфигурациях 32 МБ или 64 МБ; 64-мегабайтная карта имела немного более высокую тактовую частоту и поддержку VIVO (видеовход/видеовыход). Тактовая частота ядра составляла 183 МГц, а тактовая частота 5,5 нс DDR SDRAM-памяти – 183 МГц DDR (эффективная частота 366 МГц). R100 представил HyperZ – раннюю технологию отсечения (возможно, вдохновлённую Tile Rendering, присутствующей в чипах St Microelectronics PowerVR), которая стала ключевым направлением в развитии графики и оптимизации рендеринга от поколения к поколению. Её можно считать первой картой, использующей оптимизацию Z-буфера и основанной не на tile-рендеринге (и, следовательно, совместимой с DX7). Эти карты производились до середины 2001 года, когда их фактически заменил Radeon 7500 (RV200). В середине 2000 года был выпущен более медленный и недолговечный Radeon SDR (с 32 МБ памяти SDRAM) для конкуренции с GeForce2 MX. Также в 2000 году появилась OEM-версия Radeon LE 32 МБ DDR. В отличие от обычного Radeon DDR от ATI, LE производилась компанией Athlon Micro из графических процессоров Radeon, не соответствующих спецификациям и изначально предназначенных для азиатского рынка OEM. Карта работала на пониженной тактовой частоте 143 МГц как для графического процессора, так и для памяти, а функция Hyper Z была отключена. Несмотря на эти ограничения, Radeon LE был конкурентоспособен с другими моделями того времени, такими как GeForce 2 MX и Radeon SDR. Однако, в отличие от конкурентов, LE обладал значительным потенциалом производительности: HyperZ можно было включить через изменение системного реестра, а также существовал запас для разгона. Более поздние драйверы не различают Radeon LE и другие карты Radeon R100, и аппаратная поддержка HyperZ включена по умолчанию, хотя на картах с дефектным оборудованием HyperZ могут возникать визуальные артефакты. В 2001 году была выпущена недолговечная версия Radeon R100 с 64 МБ SDR под названием Radeon 7200. После прекращения производства этой и всех более ранних карт Radeon R100, серия R100 стала известна как Radeon 7200 в соответствии с новой схемой именования ATI.
RV100
Была создана бюджетная версия R100 под названием Radeon VE, позже известная как Radeon 7000 в 2001 году, когда ATI провела ребрендинг своей продукции. RV100 имеет только один пиксельный конвейер, не поддерживает аппаратные T&L, оснащен 64-битной шиной памяти и не имеет HyperZ. Однако в нем реализована поддержка двух мониторов HydraVision и интегрирован второй RAMDAC в графический процессор (для Hydravision). С точки зрения 3D-производительности, Radeon VE уступал GeForce2 MX того же периода, хотя его возможности многодисплейной поддержки были значительно лучше, чем у GeForce2 MX. Matrox G450 обеспечивает наилучшую поддержку двух дисплеев среди графических процессоров, но при этом обладает самой низкой 3D-производительностью. RV100 стал основой для мобильного решения Mobility Radeon.
РВ200
Radeon 7500 (RV200) – это, по сути, уменьшенный техпроцесс R100, реализованный в новом 150-нм производственном процессе. Повышенная плотность и различные улучшения архитектуры позволили графическому процессору работать на более высоких тактовых частотах. Это также позволило видеокарте работать с асинхронным тактированием, в то время как оригинальный R100 всегда синхронизировался с оперативной памятью. Это был первый графический процессор ATI, соответствующий стандарту Direct3D 7 и поддерживающий работу с двумя мониторами (Hydravision). Radeon 7500 был представлен во второй половине 2001 года одновременно с Radeon 8500 (R200). Он использовал интерфейс Accelerated Graphics Port (AGP) 4x. Примерно в то же время, когда были анонсированы Radeon 8500 и 7500, компания Nvidia, как конкурент, выпустила свои GeForce 3 Ti500 и Ti200. 8500 и Ti500 были прямыми конкурентами, а вот 7500 и Ti200 – нет. Настольная версия Radeon 7500 обычно поставлялась с тактовой частотой ядра 290 МГц и памяти 230 МГц. Она конкурировала с GeForce2 Ti, а затем с GeForce4 MX440.