ATI RADEON 9700 Pro 128MB


" Это он, это он, это новый Radeon!"
(почти по Маршаку)

Для начала, настоятельно рекомендуем прочитать аналитическую статью, посвященную архитектуре и спецификациям RADEON 9700 (R300)

СОДЕРЖАНИЕ

  1. Общие сведения
  2. Теоретические аспекты реализации анитиалиасинга и анизотропной фильтрации
  3. Особенности видеокарты ATI RADEON 9700 Pro 128MB
  4. Конфигурации тестовых стендов и особенности настроек драйверов
  5. Результаты тестов: коротко о 2D, предельные из DirectX 8.1 SDK и синтетические (на базе DirectX 9.0) тесты
  6. Результаты тестов: Синтетические тесты 3DMark2001 SE
  7. Результаты тестов: Игровые тесты 3DMark2001 SE
  8. Результаты тестов: Quake3 ARENA
  9. Результаты тестов: Serious Sam: The Second Encounter
  10. Результаты тестов: Return to Castle Wolfenstein
  11. Результаты тестов: Code Creatures DEMO
  12. Результаты тестов: Comanche4 DEMO
  13. Результаты тестов: Unreal Tournament 2003 DEMO
  14. Результаты тестов: AquaMark
  15. Результаты тестов: RightMark 3D
  16. Качество 3D: Анизотропная фильтрация
  17. Качество 3D: Анти-алиасинг
  18. Качество 3D в целом
  19. Выводы

В этом обзоре, мы не будем повторно описывать архитектуру или спецификации чипа RADEON 9700 (известного также под кодовым названием R300), а займемся подробным практическим исследованием его возможностей и аспектов производительности. На данный момент, линейка карт на базе различных вариантов R300 выглядит следующим образом:

  • RADEON 9700 PRO — 325 МГц чип, 128 Мбайт 310 МГц (DDR 620) 256 бит локальной памяти;
  • RADEON 9700 — 300 МГц чип, 128 Мбайт 300 МГц (DDR 600) 256 бит локальной памяти;
  • RADEON 9500 — урезанный до 4-х конвейеров чип, 128 бит локальная память;

Мы будем исследовать старшую и единственную доступную на данный момент карту линейки — RADEON 9700 PRO. Впервые тестирование производительности и возможностей чипа проводится на DirectX 9 (бета 2). Прежде, чем приступить к практическим тестам производительности, приведем список возможностей DX9, поддерживаемых картой на данный момент (в скобках приведены оценки конкретных значений параметров):

  • Размер текстур — до 2048x2048 (стандартно)
  • Возможны неквадратные текстуры (хорошо)
  • Максимальное число источников света — 8 (стандартно)
  • Число текстурных стадий — 8 (отлично)
  • Число комбинационных стадий — 8 (стандартно)
  • Число плоскостей отсечения — 6 (отлично)
  • Максимальный размер спрайтов — 256 (отлично)
  • Максимальное число примитивов за один вызов — 65535 (спорно)
  • Размер вершинного буфера — 16777215 (отлично)
  • Максимальное число потоков вершин — 16 (отлично)
  • Максимальная версия вершинных шейдеров — 1.1 (непорядок)
  • Число констант вершинного шейдера — 256 (отлично)
  • Максимальная версия пиксельных шейдеров — 1.4 (непорядок)
  • Максимальное значение пиксельного шейдера — 3.40282E+038 (максимально число для плавающего F32 формата, отлично)
  • Режимы мультисамплинга: нет, 2, 4, 6 отсчетов (только в режиме X8R8G8B8, в режиме кадрового буфера с альфа каналом A8R8G8B8 мультисамплинг недоступен).
  • Форматы итогового буфера (хорошо):
    • D3DFMT_A8R8G8B8
    • D3DFMT_X8R8G8B8
    • D3DFMT_R5G6B5
    • D3DFMT_A1R5G5B5
    • D3DFMT_A4R4G4B4
  • Форматы буфера глубины (хорошо):
    • D3DFMT_D16_LOCKABLE
    • D3DFMT_D24S8
    • D3DFMT_D24X8
    • D3DFMT_D16
  • Форматы текстур (странно):
    • D3DFMT_A8R8G8B8
    • D3DFMT_X8R8G8B8
    • D3DFMT_R5G6B5
    • D3DFMT_X1R5G5B5
    • D3DFMT_A1R5G5B5
    • D3DFMT_A4R4G4B4
    • D3DFMT_R3G3B2
    • D3DFMT_L8
    • D3DFMT_V8U8
    • D3DFMT_L6V5U5
    • D3DFMT_X8L8V8U8
    • D3DFMT_Q8W8V8U8
    • D3DFMT_V16U16
    • D3DFMT_UYVY
    • D3DFMT_YUY2
  • Форматы кубических текстур (нормально):
    • D3DFMT_A8R8G8B8
    • D3DFMT_X8R8G8B8
    • D3DFMT_R5G6B5
    • D3DFMT_X1R5G5B5
    • D3DFMT_A1R5G5B5
    • D3DFMT_A4R4G4B4
    • D3DFMT_R3G3B2
    • D3DFMT_L8
    • D3DFMT_UYVY
    • D3DFMT_YUY2
  • Форматы объемных текстур (нормально):
    • D3DFMT_A8R8G8B8
    • D3DFMT_X8R8G8B8
    • D3DFMT_R5G6B5
    • D3DFMT_X1R5G5B5
    • D3DFMT_A1R5G5B5
    • D3DFMT_A4R4G4B4
    • D3DFMT_R3G3B2
    • D3DFMT_L8
    • D3DFMT_UYVY
    • D3DFMT_YUY2
    Режимы фильтрации обычных текстур (отлично):
    • D3DPTFILTERCAPS_MINFPOINT
    • D3DPTFILTERCAPS_MINFLINEAR
    • D3DPTFILTERCAPS_MINFANISOTROPIC
    • D3DPTFILTERCAPS_MIPFPOINT
    • D3DPTFILTERCAPS_MIPFLINEAR
    • D3DPTFILTERCAPS_MAGFPOINT
    • D3DPTFILTERCAPS_MAGFLINEAR
    • D3DPTFILTERCAPS_MAGFANISOTROPIC
  • Режимы фильтрации кубических текстур (хорошо):
    • D3DPTFILTERCAPS_MINFPOINT
    • D3DPTFILTERCAPS_MINFLINEAR
    • D3DPTFILTERCAPS_MIPFPOINT
    • D3DPTFILTERCAPS_MIPFLINEAR
    • D3DPTFILTERCAPS_MAGFPOINT
    • D3DPTFILTERCAPS_MAGFLINEAR
  • Режимы фильтрации объемных текстур (хорошо):
    • D3DPTFILTERCAPS_MINFPOINT
    • D3DPTFILTERCAPS_MINFLINEAR
    • D3DPTFILTERCAPS_MIPFPOINT
    • D3DPTFILTERCAPS_MIPFLINEAR
    • D3DPTFILTERCAPS_MAGFPOINT
    • D3DPTFILTERCAPS_MAGFLINEAR

Искушенный читатель сразу отметит, что никакого DX9 мы здесь не наблюдаем. Дело в том, что доступные на данный момент драйверы содержат лишь старый DDI8 (Direct Driver Interface 8) интерфейс для драйверов и по определению не могут предлагать выходящих за рамки DX8 возможностей. Только с появлением у нас DDI9 драйвера (судя по всему, ATI сможет предоставить его кому-либо только тогда, когда Microsoft закончит вносить изменения в DX9 и даст соответствующее разрешение) мы сможем проверить новые возможности чипа, пока же нам придется ограничиться подробным исследованием хорошо знакомых. Несмотря на то, что DX9 работает с такими драйверами без потери скорости (результаты приложений отличаются от DX8 в пределах погрешности) нам недоступны самые интересные новый возможности RADEON 9700 PRO — вторые версии пиксельных и вершинных шейдеров или плавающие форматы текстур и буфера кадров. С другой стороны, ничего не мешает нам подробно исследовать производительность и реализацию АА, анизотропной фильтрации и просто предельные характеристики чипа, такие как скорость закраски или производительность геометрического блока.

Отметим, также, что из-за раннего драйвера (или особенностей работы DX9 с DDI8) в списке поддерживаемых текстур отсутствуют какие-либо сжатые форматы.

Приведем список доступных на данный момент OpenGL расширений и версию OpenGL ICD:

ATI, Radeon 9700 x86/SSE2, version 1.3.3259 NVIDIA, GeForce4 Ti 4600/AGP/SSE2, version 1.3.1 ATI, Radeon 8500 DDR x86/SSE2, version 1.3.2475
GL_ARB_depth_texture GL_ARB_imaging GL_ARB_multitexture
GL_ARB_multitexture GL_ARB_multisample GL_ARB_texture_border_clamp
GL_ARB_point_parameters GL_ARB_multitexture GL_ARB_texture_compression
GL_ARB_shadow GL_ARB_texture_border_clamp GL_ARB_texture_cube_map
GL_ARB_shadow_ambient GL_ARB_texture_compression GL_ARB_texture_env_add
GL_ARB_texture_border_clamp GL_ARB_texture_cube_map GL_ARB_texture_env_combine
GL_ARB_texture_compression GL_ARB_texture_env_add GL_ARB_texture_env_crossbar
GL_ARB_texture_cube_map GL_ARB_texture_env_combine GL_ARB_texture_env_dot3
GL_ARB_texture_env_add GL_ARB_texture_env_dot3 GL_ARB_transpose_matrix
GL_ARB_texture_env_combine GL_ARB_transpose_matrix GL_ARB_vertex_blend
GL_ARB_texture_env_crossbar GL_S3_s3tc GL_ARB_window_pos
GL_ARB_texture_env_dot3 GL_EXT_abgr GL_S3_s3tc
GL_ARB_transpose_matrix GL_EXT_bgra GL_ATI_element_array
GL_ARB_vertex_blend GL_EXT_blend_color GL_ATI_envmap_bumpmap
GL_ARB_vertex_program GL_EXT_blend_minmax GL_ATI_fragment_shader
GL_ARB_window_pos GL_EXT_blend_subtract GL_ATI_map_object_buffer
GL_S3_s3tc GL_EXT_compiled_vertex_array GL_ATI_pn_triangles
GL_ATI_element_array GL_EXT_separate_specular_color GL_ATI_texture_mirror_once
GL_ATI_envmap_bumpmap GL_EXT_fog_coord GL_ATI_vertex_array_object
GL_ATI_fragment_shader GL_EXT_multi_draw_arrays GL_ATI_vertex_streams
GL_ATI_map_object_buffer GL_EXT_packed_pixels GL_ATIX_texture_env_combine3
GL_ATI_separate_stencil GL_EXT_paletted_texture GL_ATIX_texture_env_route
GL_ATI_texture_mirror_once GL_EXT_point_parameters GL_ATIX_vertex_shader_output_point_size
GL_ATI_vertex_array_object GL_EXT_rescale_normal GL_EXT_abgr
GL_ATI_vertex_streams GL_EXT_clip_volume_hint GL_EXT_bgra
GL_ATIX_texture_env_route GL_EXT_draw_range_elements GL_EXT_blend_color
GL_ATIX_vertex_shader_output_point_size GL_EXT_shared_texture_palette GL_EXT_blend_func_separate
GL_EXT_abgr GL_EXT_stencil_wrap GL_EXT_blend_minmax
GL_EXT_bgra GL_EXT_texture3D GL_EXT_blend_subtract
GL_EXT_blend_color GL_EXT_texture_compression_s3tc GL_EXT_clip_volume_hint
GL_EXT_blend_func_separate GL_EXT_texture_edge_clamp GL_EXT_compiled_vertex_array
GL_EXT_blend_minmax GL_EXT_texture_env_add GL_EXT_draw_range_elements
GL_EXT_blend_subtract GL_EXT_texture_env_combine GL_EXT_fog_coord
GL_EXT_clip_volume_hint GL_EXT_texture_env_dot3 GL_EXT_packed_pixels
GL_EXT_compiled_vertex_array GL_EXT_texture_cube_map GL_EXT_point_parameters
GL_EXT_draw_range_elements GL_EXT_texture_filter_anisotropic GL_ARB_point_parameters
GL_EXT_fog_coord GL_EXT_texture_lod GL_EXT_rescale_normal
GL_EXT_packed_pixels GL_EXT_texture_lod_bias GL_EXT_secondary_color
GL_EXT_point_parameters GL_EXT_texture_object GL_EXT_separate_specular_color
GL_EXT_rescale_normal GL_EXT_vertex_array GL_EXT_stencil_wrap
GL_EXT_secondary_color GL_EXT_vertex_weighting GL_EXT_texgen_reflection
GL_EXT_separate_specular_color GL_HP_occlusion_test GL_EXT_texture_env_add
GL_EXT_stencil_wrap GL_IBM_texture_mirrored_repeat GL_EXT_texture3D
GL_EXT_texgen_reflection GL_KTX_buffer_region GL_EXT_texture_compression_s3tc
GL_EXT_texture_env_add GL_NV_blend_square GL_EXT_texture_cube_map
GL_EXT_texture3D GL_NV_copy_depth_to_color GL_EXT_texture_edge_clamp
GL_EXT_texture_compression_s3tc GL_NV_evaluators GL_EXT_texture_env_combine
GL_EXT_texture_cube_map GL_NV_fence GL_EXT_texture_env_dot3
GL_EXT_texture_edge_clamp GL_NV_fog_distance GL_EXT_texture_lod_bias
GL_EXT_texture_env_combine GL_NV_light_max_exponent GL_EXT_texture_filter_anisotropic
GL_EXT_texture_env_dot3 GL_NV_multisample_filter_hint GL_EXT_texture_object
GL_EXT_texture_filter_anisotropic GL_NV_occlusion_query GL_EXT_vertex_array
GL_EXT_texture_lod_bias GL_NV_packed_depth_stencil GL_EXT_vertex_shader
GL_EXT_texture_object GL_NV_point_sprite GL_KTX_buffer_region
GL_EXT_vertex_array GL_NV_register_combiners GL_NV_texgen_reflection
GL_EXT_vertex_shader GL_NV_register_combiners2 GL_NV_blend_square
GL_HP_occlusion_test GL_NV_texgen_reflection GL_SGI_texture_edge_clamp
GL_KTX_buffer_region GL_NV_texture_compression_vtc GL_SGIS_texture_border_clamp
GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_SGIS_texture_lod
GL_NV_blend_square GL_NV_texture_rectangle GL_SGIS_generate_mipmap
GL_SGI_texture_edge_clamp GL_NV_texture_shader GL_SGIS_multitexture
GL_SGIS_texture_border_clamp GL_NV_texture_shader2 GL_WIN_swap_hint
GL_SGIS_texture_lod GL_NV_texture_shader3 WGL_EXT_extensions_string
GL_SGIS_generate_mipmap GL_NV_vertex_array_range WGL_EXT_swap_control
GL_SGIS_multitexture GL_NV_vertex_array_range2 -
GL_WIN_swap_hint GL_NV_vertex_program -
WGL_EXT_extensions_string GL_NV_vertex_program1_1 -
WGL_EXT_swap_control GL_SGIS_generate_mipmap -
GL_ARB_multisample GL_SGIS_multitexture -
- GL_SGIS_texture_lod -
- GL_SGIX_depth_texture -
- GL_SGIX_shadow -
- GL_WIN_swap_hint -
- WGL_EXT_swap_control -

Теоретические аспекты реализации анитиалиасинга и анизотропной фильтрации

В отличие от предыдущего чипа, в R300 исправлена вызвавшая множество нареканий особенность реализации анизотропии на основе RIP-маппинга — теперь ей не страшен поворот вокруг оси Z. Вне зависимости от угла наклона плоскости относительно этой оси, анизотропия работает как положено. Интересно, что, вопреки большинству мнений, эта особенность не была недостатком самой методики RIP маппинга, а лишь конкретной особенностью его конкретной реализации в предыдущих чипах ATI. Впрочем, за более корректную реализацию, которую мы наблюдаем теперь в R300, придется заплатить несколько увеличившимся падением производительности (впрочем, далее мы подробно исследуем этот вопрос).

AA тоже претерпел изменения. Как и раньше, выбирается одна из псевдослучайных хаотических масок с двумя, четырьмя или шестью семплами (главное отличие от NVIDIA, где маска хоть и зависит от метода сглаживания, но всегда одинакова). Но, на этот раз, семплы выбираются методом мультисамплинга, как и в чипах NVIDIA. Следует ожидать, что скорость закраски самих полигонов существенно возрастет, на их краях ситуация (внешняя) останется прежней, но, потенциально, края под прозрачными полигонами будут обрабатываться неверно. Чтож, это расплата за повышенную скорость АА. Далее мы подробно исследуем скорость и качество АА на практике.

А теперь, как обычно перед анализом результатов тестирования, мы рассмотрим непосредственно саму карту.

Плата

Карта снабжена интерфейсом AGP x4/x8, 128 МБ локальной памяти DDR SDRAM (восемь микросхем, размещенных на лицевой и оборотной сторонах PCB).

На карте установлены микросхемы памяти Samsung марки K4D26323RA-GC2A, форм-фактора BGA. Максимальная частота работы — 350 (700) МГц, поэтому можно сделать вывод, что время выборки — 2,8 нс, а не 2,2, как было указано ранее в некоторых обзорах. По умолчанию память работает на частоте 310 (620) МГц

Микросхемы памяти в новой BGA-упаковке уже стали весьма популярными среди производителей видеокарт, и мы не станем лишний раз рссказывать о преимуществах использования микросхем в таких корпусах.

ATI RADEON 9700 Pro 128MB

Перед нами карта весьма обычного, на первый взгляд, дизайна. Разумеется, наличие 256-битной высокоскоростной шины не может не привести к усложнению PCB. Но, если на платах от Matrox и 3Dlabs мы видели наличие большого экрана, предохраняющего от наводок, то здесь он имеется только в левой части PCB:


А основная часть PCB, где расположены микросхемы памяти и чип, не защищена никаким экранированием:


Интересной особенностью карты является обязательное внешнее питание. В комплект поставки входит переходник-разветвитель, позволяющий без проблем подключить к плате стандартный "хвост" от блока питания:


Карта снабжена обычным набором интерфейсных разъемов: VGA, DVI и TV-out (S-Video). Для подключения TV-out через RCA в комплект поставки входит соответствующий переходник.

Если рассматривать PCB дальше, мы заметим, что правая ее часть очень похожа на RADEON 8500, особенно в плане расположения микросхем памяти. А вот радиатор на чипе — довольно большого размера, что традициям ATI несвойственно :-).



Хотя, в данном случае, это вынужденная мера, поскольку GPU (вернее, VPU, отвыкаем от старых названий :-) очень сильно греется (сказывается огромное число транзисторов при частоте 325 МГц и технологии .15 микрон). Кстати, обратите внимание на форму упаковки самого процессора:


Как мы видим, FCPGA корпусовка процессоров с перевернутым открытым кристаллом дошла и до графических чипов. В статье про Matrox Parhelia я удивлялся размерам корпуса, хотя понятно, что в случае оной сверху примерно такого же по размеру чипа установлена теплоотводящая металлическая крышка, а здесь ее нет. В наличии огромное число выводов (все же 256-битная шина).

На этом рассмотрение самой карты мы заканчиваем. Сразу скажу, что вас ожидает вторая часть материала по RADEON 9700 Pro, в котором мы подробно рассмотрим особенности работы карты при выводе на два монитора и TV-out (в рамках данного материала, по причине небольшого времени на исследование карты мы не успеваем это проанализировать. К тому же, во второй части читатели смогут ознакомиться с работой AGP8x).

Заглянем в коробку, где вместе с картой можно найти:

два диска с ПО (драйверы, MMC 7.8 и др.) и маркетинговыми материалами, переходник S-Video-to-RCA весьма непривычного маленького размера (без кабеля), переходник DVI-to-d-Sub.

А вот и сама коробка, в которой будут продаваться платы RADEON 9700 PRO:

Обратите внимание на надпись в правом нижнем углу. Известно, что на Quakecon'2002 такие карты показывали только в специально привезенных системных блоках, не говоря уж про то, что обещанные подарочные наборы за $450 (куда входит RADEON 9700 Pro, сувениры, невышедшая еще игра DOOM III — ее обешали бесплатно прислать позже — и пульт ДУ от ATI) вовсе не продавались, а лишь принимались заказы на них (многие участники мероприятия были очень разочарованы таким обманом).

Разгон

Когда мы только начали исследовать работу карты на штатных частотах, то пришли к выводу, что при таком нагреве наверняка разгон будет почти невозможен. А он оказался возможен! И даже очень! Последняя версия (3.21) PowerStrip уже умеет работать с RADEON 9700.

ATI RADEON 9700 Pro 128MB 325/620 -> 350/700 MHz

По правде говоря, чип смог работать и на 370 МГц, но никаких приростов относительно 350 МГц в обычных режимах работы карты (без АА и/или анизотропии) мы уже не обнаружили, После анонса материала мы еще раз прогнали карту на 370 МГц, но под максимальной нагрузкой и убедились, что стабильность работы имеется. Поэтому на диаграммах ниже мы приводим эти результаты (полоски имеют "кирпичную" раскраску). Мы видим, что, несмотря на огромную сложность процессора и его высокий температурный режим, потенциал разгона имеется. Не последнюю роль сыграла здесь FCPGA корпусовка. Кроме того, мы не можем и отрицать возможности того, что для сэмплов компания ATI отбирала самые лучшие чипы. Напомним, что

  • при разгоне обязательным условием является наличие дополнительного охлаждения, в частности, обдувающего карту (прежде всего, ее память) вентилятора:

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

Установка и драйверы

Рассмотрим конфигурацию тестового стенда, на котором проводились испытания карт:

  • Компьютер на базе Pentium 4 (Socket 478):
    • процессор Intel Pentium 4 2200 (L2=512K);
    • системная плата ASUS P4T-E (i850);
    • оперативная память 512 MB RDRAM PC800;
    • жесткий диск Quantum FB AS 20GB;
    • операционная система Windows XP.

На стенде использовались мониторы ViewSonic P810 (21") и ViewSonic P817 (21"). Тестирование на другом стенде на базе AMD Athlon XP мы проведем во второй части материала, к тому же, там будет исследование работы карты на AGP8x (на базе VIA KT400).

При тестировании применялись драйверы от ATI версии 6.143 (отмечу, что этот драйвер предназначен только для карт серии RADEON 9***, поддержки карт прежнего выпуска нет. Нет пока?) VSync отключен, компрессия текстур отключена. Установлен DirectX 9.0 beta2.

Для сравнительного анализа приведены результаты уже знакомых читателям видеокарт:

  • ASUS V8460Ultra (GeForce4 Ti 4600, 300/325 (650) МГц, 128 МБ, driver 30.82);
  • Matrox Parhelia (220/275 (550) МГц, 128 МБ, driver 2.31);
  • Gigabyte MAYA AP128DG-H RADEON 8500 Deluxe (275/275 (550) МГц, 128 МБ, driver 6.118).

Настройки драйверов









Отметим сразу, что на сегодня выпущены только драйверы DirectX 8! Выход драйверов DirectX 9.0 ожидается только в октябре. Что касается настроек управления, то они почти стандартны для всей новой серии драйверов CATALYST, за исключением настроек работы RADEON 9700 в части анти-алиасинга (SmoothVision II) и анизотропии. Как мы видим, у анизотропной фильтрации есть возможность выбора режима ее работы (кроме уровней): производительность/качество. Ниже мы рассмотрим, чем же режимы отличаются (вкратце скажу, что возможностью/невозможностью функционирования трилинейной фильтрации совместно с анизотропией).

Что касается АА, то, как уже говорилось, наконец-то мы видим упорядочивание этой функции. Вместо кучи мало кому понятных режимов производительность/качество совместно с уровнями АА, мы видим три режима 2х, 4х и 6х. Что избавляет пользователя от того, чтобы ломать голову над выбором. Ниже мы рассмотрим работу самых интересных режимов 4х и 6х.

На этом рассмотрение особенностей драйверов мы заканчиваем.



Благодарим Филиппа Герасимова, одного из авторов и главного программиста DirectX тестов пакета RightMark 3D, за оперативную помощь в тестировании




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

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

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

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