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.3259NVIDIA, GeForce4 Ti 4600/AGP/SSE2, version 1.3.1ATI, Radeon 8500 DDR x86/SSE2, version 1.3.2475
GL_ARB_depth_textureGL_ARB_imagingGL_ARB_multitexture
GL_ARB_multitextureGL_ARB_multisampleGL_ARB_texture_border_clamp
GL_ARB_point_parametersGL_ARB_multitextureGL_ARB_texture_compression
GL_ARB_shadowGL_ARB_texture_border_clampGL_ARB_texture_cube_map
GL_ARB_shadow_ambientGL_ARB_texture_compressionGL_ARB_texture_env_add
GL_ARB_texture_border_clampGL_ARB_texture_cube_mapGL_ARB_texture_env_combine
GL_ARB_texture_compressionGL_ARB_texture_env_addGL_ARB_texture_env_crossbar
GL_ARB_texture_cube_mapGL_ARB_texture_env_combineGL_ARB_texture_env_dot3
GL_ARB_texture_env_addGL_ARB_texture_env_dot3GL_ARB_transpose_matrix
GL_ARB_texture_env_combineGL_ARB_transpose_matrixGL_ARB_vertex_blend
GL_ARB_texture_env_crossbarGL_S3_s3tcGL_ARB_window_pos
GL_ARB_texture_env_dot3GL_EXT_abgrGL_S3_s3tc
GL_ARB_transpose_matrixGL_EXT_bgraGL_ATI_element_array
GL_ARB_vertex_blendGL_EXT_blend_colorGL_ATI_envmap_bumpmap
GL_ARB_vertex_programGL_EXT_blend_minmaxGL_ATI_fragment_shader
GL_ARB_window_posGL_EXT_blend_subtractGL_ATI_map_object_buffer
GL_S3_s3tcGL_EXT_compiled_vertex_arrayGL_ATI_pn_triangles
GL_ATI_element_arrayGL_EXT_separate_specular_colorGL_ATI_texture_mirror_once
GL_ATI_envmap_bumpmapGL_EXT_fog_coordGL_ATI_vertex_array_object
GL_ATI_fragment_shaderGL_EXT_multi_draw_arraysGL_ATI_vertex_streams
GL_ATI_map_object_bufferGL_EXT_packed_pixelsGL_ATIX_texture_env_combine3
GL_ATI_separate_stencilGL_EXT_paletted_textureGL_ATIX_texture_env_route
GL_ATI_texture_mirror_onceGL_EXT_point_parametersGL_ATIX_vertex_shader_output_point_size
GL_ATI_vertex_array_objectGL_EXT_rescale_normalGL_EXT_abgr
GL_ATI_vertex_streamsGL_EXT_clip_volume_hintGL_EXT_bgra
GL_ATIX_texture_env_routeGL_EXT_draw_range_elementsGL_EXT_blend_color
GL_ATIX_vertex_shader_output_point_sizeGL_EXT_shared_texture_paletteGL_EXT_blend_func_separate
GL_EXT_abgrGL_EXT_stencil_wrapGL_EXT_blend_minmax
GL_EXT_bgraGL_EXT_texture3DGL_EXT_blend_subtract
GL_EXT_blend_colorGL_EXT_texture_compression_s3tcGL_EXT_clip_volume_hint
GL_EXT_blend_func_separateGL_EXT_texture_edge_clampGL_EXT_compiled_vertex_array
GL_EXT_blend_minmaxGL_EXT_texture_env_addGL_EXT_draw_range_elements
GL_EXT_blend_subtractGL_EXT_texture_env_combineGL_EXT_fog_coord
GL_EXT_clip_volume_hintGL_EXT_texture_env_dot3GL_EXT_packed_pixels
GL_EXT_compiled_vertex_arrayGL_EXT_texture_cube_mapGL_EXT_point_parameters
GL_EXT_draw_range_elementsGL_EXT_texture_filter_anisotropicGL_ARB_point_parameters
GL_EXT_fog_coordGL_EXT_texture_lodGL_EXT_rescale_normal
GL_EXT_packed_pixelsGL_EXT_texture_lod_biasGL_EXT_secondary_color
GL_EXT_point_parametersGL_EXT_texture_objectGL_EXT_separate_specular_color
GL_EXT_rescale_normalGL_EXT_vertex_arrayGL_EXT_stencil_wrap
GL_EXT_secondary_colorGL_EXT_vertex_weightingGL_EXT_texgen_reflection
GL_EXT_separate_specular_colorGL_HP_occlusion_testGL_EXT_texture_env_add
GL_EXT_stencil_wrapGL_IBM_texture_mirrored_repeatGL_EXT_texture3D
GL_EXT_texgen_reflectionGL_KTX_buffer_regionGL_EXT_texture_compression_s3tc
GL_EXT_texture_env_addGL_NV_blend_squareGL_EXT_texture_cube_map
GL_EXT_texture3DGL_NV_copy_depth_to_colorGL_EXT_texture_edge_clamp
GL_EXT_texture_compression_s3tcGL_NV_evaluatorsGL_EXT_texture_env_combine
GL_EXT_texture_cube_mapGL_NV_fenceGL_EXT_texture_env_dot3
GL_EXT_texture_edge_clampGL_NV_fog_distanceGL_EXT_texture_lod_bias
GL_EXT_texture_env_combineGL_NV_light_max_exponentGL_EXT_texture_filter_anisotropic
GL_EXT_texture_env_dot3GL_NV_multisample_filter_hintGL_EXT_texture_object
GL_EXT_texture_filter_anisotropicGL_NV_occlusion_queryGL_EXT_vertex_array
GL_EXT_texture_lod_biasGL_NV_packed_depth_stencilGL_EXT_vertex_shader
GL_EXT_texture_objectGL_NV_point_spriteGL_KTX_buffer_region
GL_EXT_vertex_arrayGL_NV_register_combinersGL_NV_texgen_reflection
GL_EXT_vertex_shaderGL_NV_register_combiners2GL_NV_blend_square
GL_HP_occlusion_testGL_NV_texgen_reflectionGL_SGI_texture_edge_clamp
GL_KTX_buffer_regionGL_NV_texture_compression_vtcGL_SGIS_texture_border_clamp
GL_NV_texgen_reflectionGL_NV_texture_env_combine4GL_SGIS_texture_lod
GL_NV_blend_squareGL_NV_texture_rectangleGL_SGIS_generate_mipmap
GL_SGI_texture_edge_clampGL_NV_texture_shaderGL_SGIS_multitexture
GL_SGIS_texture_border_clampGL_NV_texture_shader2GL_WIN_swap_hint
GL_SGIS_texture_lodGL_NV_texture_shader3WGL_EXT_extensions_string
GL_SGIS_generate_mipmapGL_NV_vertex_array_rangeWGL_EXT_swap_control
GL_SGIS_multitextureGL_NV_vertex_array_range2-
GL_WIN_swap_hintGL_NV_vertex_program-
WGL_EXT_extensions_stringGL_NV_vertex_program1_1-
WGL_EXT_swap_controlGL_SGIS_generate_mipmap-
GL_ARB_multisampleGL_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, за оперативную помощь в тестировании




23 августа 2002 Г.