NVIDIA GeForce4 Ti 4400 и GeForce4 Ti 4600 (NV25)

или "Опять двадцать пять"


" На улице опять февраль,
томит нас ожиданьем,
NV справляет 25,
возможно, с опозданьем… "


В наших руках — NV25. Этот чип ждали многие. Кто-то как отголосок славных дел 3dfx (холодно); кто-то как достойный ответ на ATI RADEON 8500 (теплее); кто-то как вторую, оптимизированную и обогащенную инкарнацию NV20 (жарко). Пожалуй, на этот раз мы не будем злоупотреблять лирическими отступлениями, а сразу подойдем к сути вопроса…

Внимание! Прежде, чем приступить к прочтению данного материала, рекомендуем ознакомится с предыдущими полновесными обзорами NVIDIA GeForce3 (NV20) и ATI Radeon 8500 (R200).

Линейка продуктов

Линейка GeForce 4 базируется на двух чипах — NV17 (подробный обзор которого появится на нашем сайте несколько позже) и NV25 — главном герое этой статьи:

  • GeForce 4 Ti4600 — NV25 300 МГц ядро, 128 МБ 325(650) МГц 128 бит DDR памяти.
  • GeForce 4 Ti4400 — NV25 275 МГц ядро, 128 МБ 275(550) МГц 128 бит DDR памяти.
  • Еще одна, младшая карта на базе NV25, будет анонсирована позже.
  • GeForce 4 MX460 — 300 МГц ядро, 64 МБ 275(550) МГц 128 бит DDR памяти.
  • GeForce 4 MX440 — 270 МГц ядро, 64 МБ 200(400) МГц 128 бит DDR памяти.
  • GeForce 4 MX420 — 200 МГц ядро, 64 МБ 166 МГц 128 бит SDR памяти.
Отметим несколько важных фактов:
  1. Линейка GeForce 3 будет максимально быстро заменена новой GeForce 4 линейкой.
  2. NV17 не поддерживает (и не будет поддерживать) пиксельные и вершинные шейдеры.
  3. NV17 будет иметь аппаратный декодер MPEG2 и систему динамического управления питанием, а NV25 нет.
  4. NV17 имеет только два конвейера закраски, а NV25 четыре.
  5. NV25 имеет суперскалярный (двойной) T&L, NV17 только один.
  6. NV17 и NV25 имеют схожие контроллеры памяти (двухканальный у NV17 и четырехканальный у NV25).
  7. Оба чипа снабжены одинаковым набором систем повышения эффективной пропускной полосы памяти второго поколения (сжатие и быстрая очистка Z буффера, MSAA, HSR).
  8. NV17 имеет два встроенных контроллера LCD панелей.
  9. Оба чипа имеют два независимых RAMDAC, CRTC контроллера, интегрированные TV-Out и DVI интерфейс.

Вот такой "милый" вервольф будет оказывать наглядную силовую поддержку анонсу продуктов на базе NV25, демонстрируя передовые возможности мягкого освещения, скелетной анимации, сгенерированной вершинными шейдерами шерсти и попиксельного рельефа:

       

Теория

Структурная схема NV25



Основные архитектурные новшества NV25 (в сравнении с NV20)

Для начала посмотрим, каким предстает перед нами новый чип после прочтения массы сопутствующих его анонсу спецификаций и кратких обзоров технологий:

  1. Два независимых контроллера отображения (CRTC). Гибкая поддержка всевозможных режимов с выводом двух независимых по разрешению и содержанию буферов кадра на любые доступные приемники сигнала.
  2. Два полноценных интегрированных в чип 350 МГц RAMDAC (с 10 битной палитрой).
  3. Интегрированный в чип интерфейс TV-Out.
  4. Интегрированный в чип TDMS трансмиттер (для DVI интерфейса).
  5. Два блока интерпретации и исполнения вершинных шейдеров. Они сулят существенное увеличение скорости обработки сцен со сложной геометрией. Блоки не могут испольнять различный микрокод шейдеров, единственное назначение подобного дублирования — обработка двух вершин одновременно — служит для увеличения производительности.
  6. Усовершенствованные конвейеры закраски обеспечивают аппаратную поддержку пиксельных шейдеров до версии 1.3 включительно.
  7. По заявлениям NVIDIA, увеличена эффективная скорость закраски в режимах MSAA, теперь режимы 2x AA и Quincunx AA вызовут существенно меньшее падение производительности. Немного усовершенствован Quincunx AA (смещены позиции выборки семплов). Появился новый метод AA — 4xS.
  8. Усовершенствованная система раздельного кеширования (4 раздельных кеша для геометрии, текстур, буфера кадра и Z буфера).
  9. Усовершенствованное сжатие без потерь (1:4) и быстрая очистка Z буфера.
  10. Усовершенствованный алгоритм отброса невидимых поверхностей (Z Cull HSR).

Далее, по ходу нашего повествования, мы тщательно сверим, проверим и замерим все декларированные здесь преимущества нового чипа, дабы собственноручно убедится в степени их реальной эффективности.

Подводя итог этого списка, хочется отметить скорее эволюционный, нежели революционный характер изменений в сравнении с предыдущим творением NVIDIA (NV20). Впрочем, это неудивительно — исторически NVIDIA вначале предлагала продукт, несущий множество новых технологий, а затем выпускала более совершенный (оптимизированный) вариант на его основе, устраняя привлекшие основное внимание (за время присутствия продукта на рынке) недостатки. Вспомним TNT и TNT2, GF256 и GF2 — точно такой же парой являются на наш взгляд GF3 и GF4. И, как показывает практика предыдущих "пар", именно вторую, доведенную версию архитектуры ждет наибольший успех и признание, а следовательно и долгая (скажем так, сравнительно долгая :-) ) жизнь.

Тактико-технические характеристики

Для начала небольшое пояснение:

  1. Ускоритель нельзя рассматривать в отрыве от драйверов. Для конкретных приложений любые возможности чипа существуют лишь в меру их поддержки драйверами для двух основных API. Многие из приведенных в этой таблице характеристик могут зависеть от драйверов и верны в первую очередь для указанной версии. Более того, некоторые возможности, о наличии которых драйверы не сообщают, на проверку оказываются доступными для приложений (например, плоскости отсечения в D3D для карт NVIDIA). Мы все равно будем считать эти возможности отсутствующими — корректно написанные приложения не должны пытаться использовать вызовы и параметры, о наличии которых не отрапортовал драйвер.
  2. Большинство информации относится к Direct3D, в OpenGL эти параметры могут иметь иные значения (впрочем, это происходит крайне редко). Тому есть несколько причин, в том числе и более тесное взаимодействие этого игрового API с железом ускорителей. А также тот факт, что возможности современных ускорителей достаточно четко продиктованы спецификацией D3D.

А теперь — сводная таблица ключевых ТТХ участвующих в дальнейшем тестировании чипов и карт. Отметим, что в ближайший календарный квартал следует рассматривать ATI RADEON 8500 как основного конкурента карт на базе NV25 (GeForce 4 Ti 4600 и Ti 4600) ввиду отложенного (возможно, навсегда) запуска RADEON 8500XT и достаточно существенного промежутка времени, оставшегося до выхода первых продуктов на базе R300.

Название карты GeForce3 Ti 500RADEON 8500GeForce 4 Ti 4600 (GeForce 4 Ti 4400)
Чип, ревизия, версия драйверов
ЧипNV20R200NV25
РевизияA5A23A03
Версия драйверов27.306.01827.30
Основные параметры
Число конвейеров444
Текстурных блоков на конвейер222
Текстур за проход464
Частота ядра, МГц240275300 (275)
Филрэйт (млн. пикселей)96011001200 (1100)
Филрэйт (млн. текселей)192022002400
RAMDAC, МГц350400 (+внешний 240)350*2
Параметры локальной памяти
Частота памяти, МГц250275325 (275)
Шина памяти, бит128 (DDR)128 (DDR)128 (DDR)
Технология, мкм0.150.150.15
Объем памяти, МБ6464128
Скорость памяти, нс3.83.62.8 (3.6)
Версия OpenGL1.31.31.3
Версия DirectX8.18.18.1
Ускорение GDI+ДаДаДа
Пиксельный конвейер
Пиксельные шейдеры1.0, 1.11.0.,1.41.0.,1.3
Диапазон вычисляемых значений цвета-1.0..+1.0-8.0..+8.0-1.0..+1.0
Текстурных стадий484
Комбинационных стадий888
Multisampling2,3,4 сэмплаНет2,3,4 сэмпла
Число плоскостей отсечения060
Вершинный конвейер
Вершинные шейдеры1.0, 1.11.0, 1.11.0, 1.1
Число потоков вершин16816
Число констант вершинного шейдера9619296
Максимум матриц для блендинга444
Индексированный блендингНетДо 57 матрицНет
Число источников света888
N-PatchesНетДаНет
RT-PatchesНетНетНет
Число примитивов1048575655361048575
Число вершин1048575167772151048575
Прочие параметры
Pure DeviceДаДаДа
Масштабирование спрайтов до642568192
3D текстурыДа (с анизотропией)Да (без MIPMAP)Да (с анизотропией)
Карты отражения (среды)Да (с анизотропией)Да (без MIPMAP)Да (с анизотропией)
Анизотропная фильтрацияДаДа (только билинейная)Да
Степень анизотропии до2,3,4 би/три линейных выборки2,3 упрощенных билинейных выборки2,3,4 би/три линейных выборки
ТуманFOGVERTEX FOGRANGE FOGTABLEFOGVERTEX FOGRANGEFOGVERTEX FOGRANGE FOGTABLE
Буфер кадра
Форматы буфера рендерингаA8R8G8B8 X8R8G8B8 R5G6B5 X1R5G5B5A8R8G8B8 X8R8G8B8 R5G6B5 A1R5G5B5 A4R4G4B4 R3G3B2A8R8G8B8 X8R8G8B8 R5G6B5 X1R5G5B5
Форматы буфера глубиныD32 D24S8 D16 D24X8D32 D24S8 D16 D24X8D32 D24S8 D16 D24X8
Форматы текстур
Максимальный размер текстур (максимальный повтор)4096x4096(8192)2048x2048(2048)4096x4096(8192)
Форматы 2D текстурA8R8G8B8 X8R8G8B8 R5G6B5 X1R5G5B5 A1R5G5B5 A4R4G4B4 P8 V8U8 L6V5U5 X8L8V8U8 DXT1 DXT2 DXT3 DXT4 DXT5 D24S8 D16 D24X8A8R8G8B8 X8R8G8B8 R5G6B5 X1R5G5B5 A1R5G5B5 A4R4G4B4 R3G3B2 L8 A8L8 V8U8 L6V5U5 X8L8V8U8 Q8W8V8U8 V16U16 W11V11U10 DXT1 DXT2 DXT3 DXT4 DXT5A8R8G8B8 X8R8G8B8 R5G6B5 X1R5G5B5 A1R5G5B5 A4R4G4B4 P8 V8U8 L6V5U5 X8L8V8U8 DXT1 DXT2 DXT3 DXT4 DXT5 D24S8 D16 D24X8
Форматы 3D текстурA8R8G8B8 X8R8G8B8 R5G6B5 X1R5G5B5 A1R5G5B5 A4R4G4B4 P8A8R8G8B8 X8R8G8B8 R5G6B5 X1R5G5B5 A1R5G5B5 A4R4G4B4 R3G3B2 L8 A8L8 Q8W8V8U8 W11V11U10 DXT1 DXT2 DXT3 DXT4 DXT5A8R8G8B8 X8R8G8B8 R5G6B5 X1R5G5B5 A1R5G5B5 A4R4G4B4 P8

Прокомментируем существенные пункты:

  1. GeForce4 Ti4600 обладает более высокой тактовой частотой ядра и памяти, нежели RADEON 8500. GeForce4 Ti4400 обладает равной тактовой частотой ядра и памяти по отношению к RADEON 8500.
  2. Наконец-то, передовые продукты NVIDIA получили полноценную поддержку вывода изображений на два монитора, причем, в отличие от R200, оба полноценных 350 МГц RAMDAC интегрированы в чип NV25.
  3. Более низкая у NV25 частота RAMDAC по сравнению с первичным RAMDAC R200 (350 против 400 МГц)
  4. Схожая с NV20 и R200 организация внутренней архитектуры NV25 — 4 конвейера закраски, по два текстурных блока на каждом. Однако у R200 результаты их работы могут накапливаться два раза, в результате чего мы получаем возможность комбинировать до 6 текстур за один проход, а у NV25 мы по прежнему ограничены 4 текстурами. Впрочем, пока на рынке нет ни одного игрового приложения, способного получить существенное преимущество при использовании 6 текстур за проход. По слухам, в будущем на роль такого приложения претендует Next Doom.
  5. NVIDIA по-прежнему не поддерживает пиксельные шейдеры 1.4 (подробнее о них см. в превью R200) и, следовательно, более гибкий механизм зависимой выборки значений текстур. Реально шейдеры транслируются в настройки конвейеров выборки и комбинации, число стадий конвейера выборки текстур осталось прежним - 4 у NV25/NV20 против 8 у R200; Небольшие изменения комбинационного конвейера позволили аппаратно поддержать шейдеры 1.2 и 1.3. Отличия последних от шейдеров 1.1 не имеют отношения к организации более гибкой зависимой выборки (как хотелось бы), а связаны в основном с использованием и модификацией значений Z и другими мелкими "удобствами".
  6. Комбинационные конвейеры всех чипов имеют 8 стадий и поддерживают все декларированные DirectX 8.1 операции.
  7. Несмотря на ожидания, в доступных на данный момент драйверах для NV25 не увеличено ни число констант, которые можно задействовать в вершинных шейдерах (все так же 96 против 192 у R200), ни число команд вершинного шейдера (все так же 128). Судя по всему, никаких существенных качественных изменений, кроме дублирования T&L блока (он же интерпретатор вершинных шейдеров в одном лице) в геометрический конвейер не внесено.
  8. Ликвидировано отставание от R200 в плане стабильной работы контроллера памяти на близких к номинальным частотах — память NV25 успешно работает на одинаковой с R200 частоте при том же номинальном времени доступа. Само по себе это еще не говорит о равной эффективности — подходы R200 и NV20/NV25 в вопросах работы с памятью существенно разнятся. NV25 предпочитает мелкие блоки и эффективный четырех канальный перекрестный контроллер, R200 — крупные блоки и интенсивное совместное кеширование. Какой из подходов оказался более жизнеспособен в современных тестах и приложениях, мы увидим далее.
  9. Все карты имеют полноценные DirectX 8.1 и OpenGL 1.3 драйверы. Общепризнано, что OpenGL драйвер ATI не столь эффективен, как творение программистов NVIDIA. Однако различие между ними постепенно сокращается, и в данный момент во многом определяется тем, как работает с геометрией OpenGL программа и использует ли она индексные буферы — сам по себе R200 заметно менее эффективен в вопросах передачи геометрии через AGP нежели NV20/NV25.
  10. У NV20 и NV25 сложилась достаточно интересная ситуация в области плоскостей отсечения. По той или иной причине текущие драйверы рапортуют, что плоскостей отсечения нет, хотя на поверку оказывается, что они прекрасно работают. Причина столь странного поведения следующая: для реализации плоскостей отсечения NVIDIA использует специальный пиксельный шейдер. Т.е. при этом задействуется большая часть слотов комбинационного конвейера и приложение теряет возможность использовать собственный пиксельный шейдер и некоторые другие ресурсы. Что, в свою очередь, не соответствует стандарту DirectX — именно поэтому плоскости отсечения и были отключены на уровне рапортуемых драйвером возможностей.
  11. В NV25 по прежнему не реализована аппаратная поддержка N-Patches, скорее всего, по политическим соображениям.
  12. Драйверы NV20 и NV25 уже достаточно давно перестали поддерживать аппаратную тесселяцию гладких поверхностей (HOS на основе RT-Patches). Причина этого кроется в DirectX — в случае, когда карта не поддерживает аппаратно N-Patches, API пытается эмулировать их с помощью RT-Patches. Что, несомненно, вызывает очень медленную работу N-Patches, даже более медленную чем толковая программная эмуляция. NVIDIA была вынуждена отключить RT-Patches, дабы игры с поддержкой N-Patches не впадали в трудно объяснимый для рядового пользователя ступор на ее последних продуктах.
  13. NV25, как и NV20, не поддерживает индексированный матричный блендинг — приоритет в этом вопросе отдан шейдерам, через них можно гибко организовать любые схемы матричного блендинга.
  14. Multisampling не претерпел никаких изменений по сравнению с NV20 — все те же 2..4 сэмпла, на которые R200 по-прежнему не способен.
  15. Реализация анизотропии у NV25/NV20 и R200 существенно различаются, и каждый подход имеет свои преимущества и недостатки. Чуть далее мы уделим этому вопросу больше внимания.
  16. Диапазон значений пиксельных шейдеров NV25 по-прежнему от -1.0 до 1.0 — повышенная точность R200 осталась без ответа.
  17. Все карты поддерживают стандартный джентельменский набор форматов текстур, однако, в дополнение к нему, R200 имеет поддержку нескольких экзотических форматов для использования в шейдерах дополнительных данных (карт нормалей и смещений) с повышенной точностью передачи компонент (11 и 16 бит - V16U16, W11V11U10); NV25 и NV20, в свою очередь, позволяют использовать текстуры с форматом буфера глубины (D32, D24S8, D16, D24X8), необходимые для реализации алгоритмов затенения на основе буфера глубины (Depth Buffer Shadows). То, как этот специфичный для продуктов NVIDIA алгоритм используется приложениями в драйверах для DirectX, является некоторым отступлением от стандарта — своеобразным хаком.
  18. NV25 по-прежнему не позволяет сжимать объемные текстуры. Учитывая существенные размеры 3D-текстур, этот факт можно считать заметным недостатком драйверов или чипа. По крайней мере, когда эти пресловутые объемные текстуры наконец начнут применяться в реальных приложениях :-). В то же время, OpenGL драйвер NVIDIA предоставляет свой собственный формат сжатия 3D-текстур.
  19. NV25 поддерживает все разновидности тумана, как и NV20.



Приведем, для полноты картины, полный список OpenGL расширений поддерживаемых NV25 с текущими драйверами:

GL_VENDOR: NVIDIA Corporation

GL_RENDERER: GeForce4 Ti 4400/AGP/SSE2

GL_VERSION: 1.3.1

GL_EXTENSIONS:

  • GL_ARB_imaging
  • GL_ARB_multisample
  • GL_ARB_multitexture
  • GL_ARB_texture_border_clamp
  • GL_ARB_texture_compression
  • GL_ARB_texture_cube_map
  • GL_ARB_texture_env_add
  • GL_ARB_texture_env_combine
  • GL_ARB_texture_env_dot3
  • GL_ARB_transpose_matrix
  • GL_S3_s3tc
  • GL_EXT_abgr
  • GL_EXT_bgra
  • GL_EXT_blend_color
  • GL_EXT_blend_minmax
  • GL_EXT_blend_subtract
  • GL_EXT_compiled_vertex_array
  • GL_EXT_draw_range_elements
  • GL_EXT_fog_coord
  • GL_EXT_multi_draw_arrays
  • GL_EXT_packed_pixels
  • GL_EXT_paletted_texture
  • GL_EXT_point_parameters
  • GL_EXT_rescale_normal
  • GL_EXT_secondary_color
  • GL_EXT_separate_specular_color
  • GL_EXT_shared_texture_palette
  • GL_EXT_stencil_wrap
  • GL_EXT_texture3D
  • GL_EXT_texture_compression_s3tc
  • GL_EXT_texture_edge_clamp
  • GL_EXT_texture_env_add
  • GL_EXT_texture_env_combine
  • GL_EXT_texture_env_dot3
  • GL_EXT_texture_cube_map
  • GL_EXT_texture_filter_anisotropic
  • GL_EXT_texture_lod
  • GL_EXT_texture_lod_bias
  • GL_EXT_texture_object
  • GL_EXT_vertex_array
  • GL_EXT_vertex_weighting
  • GL_HP_occlusion_test
  • GL_IBM_texture_mirrored_repeat
  • GL_KTX_buffer_region
  • GL_NV_blend_square
  • GL_NV_copy_depth_to_color
  • GL_NV_evaluators
  • GL_NV_fence
  • GL_NV_fog_distance
  • GL_NV_light_max_exponent
  • GL_NV_multisample_filter_hint
  • GL_NV_occlusion_query
  • GL_NV_packed_depth_stencil
  • GL_NV_point_sprite
  • GL_NV_register_combiners
  • GL_NV_register_combiners2
  • GL_NV_texgen_reflection
  • GL_NV_texture_compression_vtc
  • GL_NV_texture_env_combine4
  • GL_NV_texture_rectangle
  • GL_NV_texture_shader
  • GL_NV_texture_shader2
  • GL_NV_texture_shader3
  • GL_NV_vertex_array_range
  • GL_NV_vertex_array_range2
  • GL_NV_vertex_program
  • GL_NV_vertex_program1_1
  • GL_SGIS_generate_mipmap
  • GL_SGIS_multitexture
  • GL_SGIS_texture_lod
  • GL_SGIX_depth_texture
  • GL_SGIX_shadow
  • GL_WIN_swap_hint
  • WGL_EXT_swap_control

И, для сравнения, такой же список в исполнении последних драйверов R200:

GL_VENDOR: ATI Technologies Inc.

GL_RENDERER: Radeon 8500 DDR x86/SSE2

GL_VERSION: 1.3.2475 WinXP Release

GL_EXTENSIONS:

  • GL_ARB_multitexture
  • GL_ARB_texture_border_clamp
  • GL_ARB_texture_compression
  • GL_ARB_texture_cube_map
  • GL_ARB_texture_env_add
  • GL_ARB_texture_env_combine
  • GL_ARB_texture_env_crossbar
  • GL_ARB_texture_env_dot3
  • GL_ARB_transpose_matrix
  • GL_ARB_vertex_blend
  • GL_ARB_window_pos
  • GL_S3_s3tc
  • GL_ATI_element_array
  • GL_ATI_envmap_bumpmap
  • GL_ATI_fragment_shader
  • GL_ATI_map_object_buffer
  • GL_ATI_pn_triangles
  • GL_ATI_texture_mirror_once
  • GL_ATI_vertex_array_object
  • GL_ATI_vertex_streams
  • GL_ATIX_texture_env_combine3
  • GL_ATIX_texture_env_route
  • GL_ATIX_vertex_shader_output_point_size
  • GL_EXT_abgr
  • GL_EXT_bgra
  • GL_EXT_blend_color
  • GL_EXT_blend_func_separate
  • GL_EXT_blend_minmax
  • GL_EXT_blend_subtract
  • GL_EXT_clip_volume_hint
  • GL_EXT_compiled_vertex_array
  • GL_EXT_draw_range_elements
  • GL_EXT_fog_coord
  • GL_EXT_packed_pixels
  • GL_EXT_point_parameters
  • GL_ARB_point_parameters
  • GL_EXT_rescale_normal
  • GL_EXT_secondary_color
  • GL_EXT_separate_specular_color
  • GL_EXT_stencil_wrap
  • GL_EXT_texgen_reflection
  • GL_EXT_texture_env_add
  • GL_EXT_texture3D
  • GL_EXT_texture_compression_s3tc
  • GL_EXT_texture_cube_map
  • GL_EXT_texture_edge_clamp
  • GL_EXT_texture_env_combine
  • GL_EXT_texture_env_dot3
  • GL_EXT_texture_lod_bias
  • GL_EXT_texture_filter_anisotropic
  • GL_EXT_texture_object
  • GL_EXT_vertex_array
  • GL_EXT_vertex_shader
  • GL_KTX_buffer_region
  • GL_NV_texgen_reflection
  • GL_NV_blend_square
  • GL_SGI_texture_edge_clamp
  • GL_SGIS_texture_border_clamp
  • GL_SGIS_texture_lod
  • GL_SGIS_generate_mipmap
  • GL_SGIS_multitexture
  • GL_WIN_swap_hint
  • WGL_EXT_extensions_string
  • WGL_EXT_swap_control

Закончив с представлением новых графических процессоров, обратим внимание на видеоплаты, которые базируются на двух вариантах NV25: GeForce4 Ti 4400 и 4600.





Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.