Тестирование видеокарт на дому. Горе отамбиций
Тестирование видеокарт на дому. Горе от амбиций
Маркетинг
Продавцы видеокарт очень неплохо пользуются тем, что покупатель часто не понимает, что же он покупает, поэтому лучше покупателю все же что-то знать о том или ином продукте больше, чем рассказывает продавец. На помощь нам приходят многочисленные тесты, в которых приводятся результаты производительности нескольких образцов на конкретном программном обеспечении. Отметим, что тесты должны проводиться независимым специалистом, т.е. таким, который не будет завышать результаты тестирования для одного образца и не будет занижать результаты тестирования другого. Хотят ли участвовать в тестах сами производители карточек? Нет. Потому что потенциальный покупатель может узнать много лишнего.
Не нужно думать, что дешевизна видеокарты не отражается на качестве ее исполнения как в аппаратном смысле, так и программном. Хорошая видеокарта будет всегда стоить больше, чем 100 USD. Объясняется это просто. В руках у Вас высокотехнологичный кусок железа, который стоит не более 10-20USD. Большая часть денег уходит на разработку драйверов. Написание драйверов на практике всегда будет делом самым важным. Если не уверены в этом, то попробуйте обойтись без них.
Почему Витя не играет в Quake?
(Прошу прощение за случайные совпадения имени моего героя)
Витя из соседнего подъезда достаточно простой человек. Наигравшись вдоволь в Quake 3, он понял, что он имеет полное право оценивать видеокарты и критиковать ПО, на котором его Quake3 не сделан (как он думает). Он знает, как считать FPS, знает, какого у него цвета компьютер и при каком разрешении у него быстрей всего работает Quake. Он уверен, что только он умеет тестировать видеокарты. Остальные аргументы и факты просто проходят мимо его ушей. Так вот! Нельзя уметь тестировать карточки без семи пядей во лбу. Можно только пробовать тестировать. Пробовать буду и я, но даже не тестировать, а только анализировать.
Для начала приведем пример такой простоты.
Витя, который оценивает видеокарты nVidia TNT2 и S3 Savage4 по приложениям вроде QUAKE 3, говорит типичное предложение: "Тестирование проводилось на компьютере с процессором Intel Celeron 450 (4.5x100), материнской платой Chaintech 6BTA2 на базе чипсета Intel BX440 и 128 Мб PC100 оперативной памяти". Далее приводит диаграммы, где показаны результаты тестов при разных разрешениях: 640x480, 800x600, 1024x768. Одна видеокарта дает плохие показатели, а другая показывает чудеса. Вроде бы, все нормально, но если бы подобный тест делал профессионал (их не так много, и у них не бывает времени, чтобы заниматься подобной чепухой), то он бы не стал ограничиваться теми данными, которые мило преподносит обыватель, приведенный выше. Кроме того, он опишет в более загадочном свете (не всем дано понять), что дало бы возможность пользователю взвесить происходящее и получить пищу для размышления, а не скупые цифры FPS. Мы же не характеризуем человека с лопатой в руках: "может копать, а может не копать". Человек может быть высоким и стройным, а может быть сутулым, низкорослым. Кроме того, он может знать математику и физику или вообще не знать математики начальной школы. Видеокарта тоже, как и человек, имеет больше характеристик, чем можно описать любым тестом. Предположим ситуацию, что вы знакомитесь с человеком, о котором говорят как об отличном специалисте с красным дипломом. По специальности он механик. Через час общения вы узнаете, что с ним Вы не можете говорить на некоторые темы его же механики. Почему? Потому что в то время как все студенты-"троешники" сидели на лекциях и писали конспекты, он участвовал в самодеятельности (типа КВН) и его отсутствие ему простили и на что-то закрыли глаза. Теперь проведите аналогию к видеокартам и Вы поймете, что истина где-то рядом. Не существует идеальной видеокарты, как, собственно говоря, студента и преподавателя. Конечно, производитель видеокарт скажет: "Видеокарта выдалась превосходной!". Продавцу тоже не хочется говорить покупателю о браке, о "шаткости конструкции" и повторит фразу производителя. И тот же студент, приходя с дипломом на предприятие, скажет: "вот мой красный диплом, я отличный специалист".
Итак, каких же наш главный герой Витя не дает данных в тесте:
1. На какой операционной системе проводилось тестирование?
Хотя бы потому это надо знать, что ВSP метод, на котором строится движок Quake 3, завязан на таком коде, где в игровом цикле (game loop) память может очень много раз захватываться и освобождаться (Alloc и Free). Отсюда и возможные скачки в скорости работы движка. Надо просто не знать принципиальную разницу между сервисом OS W2K и Win9x (например, DPMI), чтобы заниматься такой чепухой, как тестирование видеокарт на базе Quake 2 или 3.
2. Если давать данные о процессоре Intel Celeron 450, то нужно указывать размер кэша, а также название модели и маркировку класса качества, чтобы знать, как часто допускает "огрехи" процессор.
3. Если говорить про FPS, то нужно упомянуть про "кадровый гасящий". Нужно догадываться, что он включен? Зачем тогда вообще описывать разрешения (resolution), когда нет самой главной информации. Ведь наличие Vsync может послужить ограничением количества кадров в тесте.
4. В конце концов, какая версия драйверов была установлена на момент тестирования?
Это далеко не все вопросы. Вопросов еще осталось свыше 10000, но это те самые первые, которые пришли в голову, т.к. хочется иметь некое представление о чистоте грязи (именно грязи) в эксперименте.
MS DirectX против SGI OpenGl
Пять лет назад появилась первая прослойка тех амбициозных особ, которым Microsoft причиняет жуткую боль, и при выборе средства эти особы просто не могут отдать предпочтение Microsoft средствам. Зато при выборе видеокарты они покупают чуть ли не самый дешевый вариант, который не поддерживает и на 50% их любимец OpenGl.
Microsoft не сидела эти годы сложа руки. MS DirectX 7.0 готов, а OpenGl уже не обновляет свой SDK полтора года. Мы наблюдаем картину, когда видеокарты полных ходом используют новые возможности, которые есть в MS DirectX, но которых нет в самой последней версии OpenGl. Значит уже сегодня у Квейкера дома Ge Force 256 (NV10) не используется на 50% всех своих возможностей.
И вот совсем недавно появилась MS DirectX 8.0 Beta, которая будет служить основным графическим интерфейсом для X-BOX. Не нужно надеяться, что появление OpenMl просто капитально изменит положение на рынке. Загадывать наперед не будем, но любителям обсудить директорский состав Microsoft дадим в руки Red Hat и понаблюдаем за тем, как они будут ее устанавливать и работать с OpenGl под Linux.
Имея MS DirectX 7.0 SDK, уже давно можно создавать ПО под ускоритель для достаточно широкого круга чипсетов:
3Dfx Voodoo Graphics
3Dfx Voodoo II
3Dfx Voodoo III
3Dfx Voodoo Rush
3Dfx Voodoo Banshee
3Dfx VSA-100 (!)
3Dlabs Permedia 2
3Dlabs Permedia 3
ATI Radeon 256
ATI Rage 128
ATI Rage Fury
ATI Rage Pro
ATI XPERT
Intel i740
Intel i752
Matrox G200
Matrox G400
nVidia Riva 128
nVidia Riva 128ZX
nVidia TNT
nVidia TNT2
nVidia TNT2 Ultra
nVidia NV10 (GeForce 256)
nVidia NV11 (!)
nVidia NV15 (!)
Number Nine Revolution
PowerVR PCX2
Rendition V1000
Rendition V2100
Rendition V2200
S3 Savage3D
S3 Savage4
S3 Savage2000
Если среди них нет Вашего, то можете считать, что вы просто не интересны производителю, который Вам его продал. Тестирование нужно не только Вашей железке, но и драйверу. Как проверить драйвер?
Берем стандартную утилиту DXCapsViewer из MS DirectX 7.0 SDK и смотрим в возможностях Microsoft Direct3D Hardware acceleration through Direct3D HAL (Direct3D HAL) на то, какой у нас чипсет и как его возможностями умело управляет драйвер.
Сразу видим в первых строчках:
1. CANRENDERAFTERFLIP
От того, что написано тут — Yes or No, — зависит возможность видеокарты делать Flip страниц видеопамяти.
2. TEXTURESYSTEMMEMORY
Через несколько строчек ниже мы узнаем о том, можем ли мы работать с текстурами в системной памяти или обходиться нужно только видеопамятью.
3. TEXTUREVIDEOMEMORY
Так мы узнаем о том, можем ли мы работать с текстурами в видеопамяти.
4. TLVERTEXSYSTEMEMORY и TLVERTEXVIDEOMEMORY
Узнаем о возможностях при работе с "транслитными" точками. Хотя и понятно, что чаще мы это делаем все еще в системной памяти. Однако тип памяти для случая с текстурами играет большую роль, т.к. видеопамяти не бывает много.
5. HWTRANSFORMANDLIGHT
Поддержкой аппаратной визуализации источников света похвастаться могут не многие производители, а поэтому на данном этапе не мешало бы, чтобы этот момент был отмечен Yes.
6. HWRASTERIZATION
Такая возможность должна быть, т.к. незачем и все остальное без аппаратной растеризации.
Далее смотрим "Misc" таблицу для S3 Savage4/3DFX Voodoo Banshee:
DeviceRenderBitDepth=Yes/ Yes
8 = No/No
16 = Yes/Yes
24 = No/No
32 = Yes/No
DeviceZBufferBitDepth = Yes/Yes
8 = No/ No
16 = Yes/Yes
24 = No/No
32 = No/No
MinTextureWidth = 1/1
MinTextureHeight = 1/1
MaxTextureWidth = 2 048/256
MaxTextureHeight = 2 048/256
MaxTextureRepeat = 0/32768
MaxTextureAspectRatio = 0/256
MaxAnisotropy = 0/1
GuardBandLeft = Yes/No
GuardBandTop = Yes/No
GuardBandRight = Yes/No
GuardBandBottom = Yes/No
ExtentsAdjust = No/No
FVFCaps = Yes/Yes
MaxTextureBlendStages = Yes/Yes
MaxSimultaneousTextures = Yes/Yes
MaxActiveLights = Yes/Yes
MaxVertexW = No/No
MaxUserClipPlanes = Yes/Yes
MaxVertexBlendMatrices = Yes/Yes
Теперь мы видим, что S3 Savage 4 какой-то монстр по сравнению с 3DFX Voodoo Banshee. Чтобы такого впечатления не сложилось, проанализируем вкратце описанное.
DeviceRenderBitDepth и DeviceZBufferBitDepth — то самое, без чего видеокарту можно назвать железкой. Далее посмотрим на MaxTextureWidth и MaxTextureHeight, т.к. размеры текстур вещь важная, но только в том случае, если аппаратный растерайзер способен выводить огромные текстуры с подобающей скоростью. Для S3 Savage4 хватило бы только текстур размером 256x256, чтобы в игру было невыносимо играть.
И, пожалуй, ответ драйвера о наличии GuardBand по всем краям экрана не лучший вариант, т.к. после этого MS DirectX перестает заботиться о том, куда выводит свои треугольники. Если же S3 не правильно реализовала эту Guard (защиту от попадания за границы рабочей зоны экрана), то это приведет к генерации исключения и, как следствие, необходимости в нажатии клавиши Reset. Драйверы же Voodoo сознаются честно, что гарантий от прорисовки за пределами зоны нет, а поэтому пусть DirectX(Direct3D) сам занимается клиппингом (отсечением). Единственным плюсом S3 можно считать в этом случае — 32-битный рендеринг.
Это далеко не вся информация, которую может дать DirectX о текущем драйвере.
Вы должны посмотреть на то, как у драйвера дела c TriangleCaps, с Shade, c Fog и прочее, о чем я сейчас и расскажу.
Что требуется от возможностей StencilCaps.
Неплохо иметь возможности работы с Stencil Buffer, но это пока не сильно востребовано в играх.
Что требуется от возможностей TextureOpCaps.
SELECTARG1 = Yes
SELECTARG2 = Yes
MODULATE =Yes
ADD = Yes
Это как минимум.
BLENDDIFFUSEALPHA Yes
BLENDTEXTUREALPHA Yes
Иначе не увидите LensFlare (Солнце и линзы).
Что требуется от возможностей VertexProcCaps.
Все, что там есть. Без них ускоритель не полноценен.
Что требуется от возможностей Triangle Caps-> Z Compare.
Просто необходимо, чтобы все было Yes.
NEVER =Yes
LESS =Yes
EQUAL =Yes
LESSEQUAL =Yes
GREATER =Yes
NOTEQUAL =Yes
GREATEREQUAL =Yes
ALWAYS =Yes
Что требуется от возможностей Triangle Caps-> Alpha Compare.
Таблица должна быть идентична Triangle Caps-> Z Compare, т.к. Alpha Compare — это наш BillBoarding. BillBoarding — это, например, когда хотят упростить модель дерева и устанавливают 2 полигона крестом, и у нас создается впечатление, что дерево трехмерное. Alpha Compare занимается тем, что указывает в растре с изображением дерева те места, которые не нужно изображать (чтобы поближе познакомиться с такими деревьями, можете с www.developers.f2s.com скачать мою демо-J12).
Что требуется от возможностей Triangle Caps-> Fog.
Получите хотя бы такую картину, и уже будет неплохо:
FOGVERTEX =Yes
FOGTABLE =Yes
FOGRANGE =Yes
WFOG =Yes
ZFOG =Yes
FOG FLAT =Yes
FOG GOURAUD =Yes
FOG PHONG =Yes
Что требуется от возможностей Triangle Caps-> Shade.
COLOR FLAT RGB = Yes
COLOR GOURAUD RGB = Yes
SPECULAR FLAT MONO = Yes
SPECULAR FLAT RGB = Yes
SPECULAR GOURAUD MONO = Yes
SPECULAR GOURAUD RGB = Yes
ALPHA FLAT BLEND = Yes
ALPHA GOURAUD BLEND = Yes
FOG FLAT = Yes
FOG GOURAUD = Yes
Если у вас эти все возможности есть, то значит можно "лепить" достаточно цветные и красивые сцены с приятным освещением. Отсутствие чего-либо из SPECULAR говорит о том, что не видать Вам спекулярного освещения, а оно очень приятно показывает металлические и пластмассовые объекты в гармонии с текстурой и диффузным цветом. Отсутствие SPECULAR может привести к тому, что любимые игры (или которые смогли бы быть любимыми) не смогут работать на Вашей видеокарте (к примеру, Rendition Verite).
Что требуется от возможностей Triangle Caps-> Texture Filter.
Укажу то самое основное, что очень любят указывать в тестах:
NEAREST = Yes (Point samling)
LINEAR = Yes (bi-linear filtering)
MIPNEAREST = Yes (Mip-Map with Point samling)
MIPLINEAR = Yes (Mip-Map with bi-linear filtering)
Текстурные фильтры всегда спасают самые некрасивые сцены.
Что требуется от возможностей Texture Formats.
Вот какие форматы текстур поддерживает S3 Savage4:
*16 bit 565 / RGB
*16 bit 1555 / RGB ALPHAPIXELS
*16 bit 4444 / RGB ALPHAPIXELS
32 bit 8888 / RGB ALPHAPIXELS
DXT1 / FOURCC
DXT2 / FOURCC
DXT3 / FOURCC
DXT4 / FOURCC
DXT5 / FOURCC
*8 bit / RGB PAL8
А вот какие форматы текстур поддерживает 3DFX Voodoo Banshee:
*16 bit 565 / RGB
*16 bit 1555 / RGB ALPHAPIXELS
*16 bit 4444 / RGB ALPHAPIXELS
8 bit 332 / RGB
*8 bit / RGB PAL8
16 bit 8332 / RGB ALPHAPIXELS
8 bit 8 / LUMINANCE
8 bit 44 / LUMINANCE ALPHAPIXELS
16 bit 88 / LUMINANCE ALPHAPIXELS
Те форматы, которые отмечены (*), являются некой "нитью совместимости" между видеокартами для разработчика игр, и отсутствие какого-либо из них — недобрый знак.
Что касается остальных возможностей драйвера, то они не менее важны, но, описывая их, можно написать целую серию статей, посвященных только одной утилите. К тому же утилита описывает только те возможности, которые нужны для игр, где используют MS DirectX7.0, а не OpenGl. квейкеру подобный анализ будет безразличен.
Давайте теперь добавим к результатам теста еще некоторые характеристики. К примеру, забота о пользователе, профессиональный уровень системных программистов, которые пишут нам с вами так необходимые драйверы, возможности и их отсутствие, приводя конкретные факты, а не сравнительные тесты. Иногда, видеокарты настолько различны по своему уровню, что их рядом ставить просто не имеет смысла, т.к. такие тесты покажут контраст (отрыв), но не более того. Бессмысленно сравнивать показания Savage4 с TNT2, потому что у первой видеокарты пока нормального драйвера нет. Они настолько различны, что одна мысль сравнения их под OpenGl бросает в гомерический смех. Это больше похоже на обывательски простодушную глупость и не более того.
Если по-детски объективно оценивать и сравнивать Quake3 с тем, что мы видим в одном только RollCage, то можно сделать жестокие выводы в отношении OpenGl. Очень трудно развеять миф, т.к. фанаты просто не видят ошибок в OpenGl, а вот когда где-то Microsoft допускает ошибку, то камни летят увесистые. Сейчас поговорим о том, при помощи чего же сделаны TUROK2 и другие игры, не использующие OpenGl.
Microsoft DirectX — средство, без которого геймер не услышал бы ни трехмерного звука, ни смог бы подержаться за руль с обратной связью, ни смог бы поиграть по сети. Игры, вроде Quake 3, пользуются OpenGl, но это только тогда, когда дело касается графики, а все остальные отсутствующие компоненты берут из Microsoft DirectX. Так нужен нам DirectX или нет?
Профессиональные программисты в области создания игр, вроде Кармак, очень скоро могут быть задавлены программистами, которые не поверили в то, что Direct3D Immediate Mode плох. Рынок игр под Microsoft DirectX (Direct3D Immediate Mode) растет. Что же касается профессиональных конструкторских программ, то рынок пока дружит с OpenGl. Вовсе не означает, что OpenGl вымрет, как мамонт (сильно серьезное средство). Просто сейчас в отсутствии его новой версии под Win32 (или как OpenMl) он стал сильно отставать от Microsoft Direct3D Immediate Mode. Будем надеяться, что OpenGl не отстанет от DirectX, потому что плохо, когда нет выбора и конкуренции средств.
Теперь вспомним последние новости рынка операционных систем. Произошло разделение Microsoft на части. Почему большая часть людей не рвется под Linux? Все просто — не развалилась Microsoft, а только разделилась, и такие процессы, обычно, не проводятся так быстро, как нарезка хлеба. За время деления Microsoft продукты станут настолько дешевле, что бесплатная продукция Linux мало кого будет интересовать (а может, как альтернатива, окрепнет еще сильней). MS DirectX не работает под Linux (драйверы под Linux — другие). Не будет работать и большое количество других приложений Win32 (все равно эмуляция), которые были написаны, учитывая особенности Microsoft Windows. Возьмем только малую часть, которую Linux придется сделать. Написать драйверы для всевозможных сканеров (или суметь заставить производителей сделать это, во что слабо верится), для видеократ (это уже поздно), для звуковых плат и прочее, прочее... У них еще работы на пять лет вперед. Зато теперь у многих деятелей появилось ощущение, что Microsoft не мешает, и это переполняет их чувства. Большевики уже показали, что на развалинах одного мира нельзя построить свой новый и хороший. Так давайте не будем впадать в крайности. У Linux не серьезная база, чтобы стать первым номером на рынке. Хотя, нельзя не отметить превосходство Linux в некоторых областях. На Linux можно построить очень неплохой сервер. Можно корректировать и менять все, что захочется в исходном тексте рабочей системы, но это же не серьезно. Сделай сам? Когда же работать или играть? А где стандарты, которые являются хранилищем наших знаний? Конкуренция — это единственный процесс, который мы еще можем контролировать (в этом выражается наша свобода — свобода выбора), и вмешиваться сюда законом (каким бы он ни был справедливым) тоже нельзя, даже если речь о монополистах. Теперь давайте дадим оценку событиям, происходящим на рынке видеокарт в то время, как Microsoft стала жертвой нравов дикого Запада. А ничего на рынке не рухнуло. ATI нас решила порадовать своим новым Radeon 256. NVidiа показывает свой дорогой Gforсe 256 (или NV11 и NV15). Драйверы все пишутся под MS Windows 2000, NT4, 95, 98. А зачем что-то менять? Нечего бояться, пока трудятся для нас многочисленные писатели драйверов.
Кстати, рынок видеокарт не терпит производителей, которые не умеют качественно писать драйверы. По-другому занять выгодные ниши на рынке видеокарт просто невозможно. Бедная S3, не может до сих пор найти нормальных системных программистов, которые написали бы ей полноценные драйверы. Такие же проблемы у множества других производителей. Каким же должен быть писатель драйверов? Достаточно сложный человек, т.к. одновременно должен разбираться серьезно в 3D графике и быть хорошим системным программистом. Такое просто невозможно. Человек не может фанатично увлекаться двумя областями сразу, а поэтому этих золотых людей единицы на планете. Что касается 3DFX и nVidia, то можно отметить, что у них эти единицы работают. Вот их работу мы и оплачиваем, когда покупаем видеокарты.
Тесты без Vsync и амбиции тестера
Какая разница, при каком разрешении тестируется Quake, если не указано самого главного — частоты обновления адаптера (имеется в виду "кадровый гасящий")? Если в тесте все-таки ожидался следующий вертикальный "пробел" (Wait for Vertical Blank), то тогда чему он равен? 60Hz, 75Hz, 85Hz, 100Hz, 120Hz? Почему про это ни слова не говорит Витя? Ведь смешно смотреть на тесты. Кадров выходит по тесту всегда почему-то не более чем 50 с лишним (это ближе к частоте обновления, равной 60Hz). Отсюда делаешь вывод, что тест Витя делает за своим 14'' монитором, где частота 60Hz — это норма при разрешении 640x480. Может, эти выводы немного не соответствует реальности, но все же отсутствие информации о частоте обновления показывает некомпетентность испытателя.
Все нормальные люди указали бы в своем эксперименте режим (Vsync mode), при котором они испытывали свои видеокарты. Если будете тестировать Voodoo2 на Turok2 без Vsync Mode, то вы получите все 100-116 кадров, но смысл будет в этом количестве кадров только тогда, когда у вас будет монитор 17'' или 19'', который будет держать 100-120Hz.
Будем надеяться, что в дальнейшем тесты будут проводить более компетентные люди, которые могут похвастаться, что прошли стажировку на заводах производителей вроде Advanced Integration Research, ATI Technologies Inc., Boca Research Inc., Canopus Corporation, Cardinal Technologies, Cirrus Logic, Western Digital, Willow Peripherals и др.
Павел Горбунов,
paul@developers.f2s.com
www.developers.f2s.com
(c) Компьютерная газета
Маркетинг
Продавцы видеокарт очень неплохо пользуются тем, что покупатель часто не понимает, что же он покупает, поэтому лучше покупателю все же что-то знать о том или ином продукте больше, чем рассказывает продавец. На помощь нам приходят многочисленные тесты, в которых приводятся результаты производительности нескольких образцов на конкретном программном обеспечении. Отметим, что тесты должны проводиться независимым специалистом, т.е. таким, который не будет завышать результаты тестирования для одного образца и не будет занижать результаты тестирования другого. Хотят ли участвовать в тестах сами производители карточек? Нет. Потому что потенциальный покупатель может узнать много лишнего.
Не нужно думать, что дешевизна видеокарты не отражается на качестве ее исполнения как в аппаратном смысле, так и программном. Хорошая видеокарта будет всегда стоить больше, чем 100 USD. Объясняется это просто. В руках у Вас высокотехнологичный кусок железа, который стоит не более 10-20USD. Большая часть денег уходит на разработку драйверов. Написание драйверов на практике всегда будет делом самым важным. Если не уверены в этом, то попробуйте обойтись без них.
Почему Витя не играет в Quake?
(Прошу прощение за случайные совпадения имени моего героя)
Витя из соседнего подъезда достаточно простой человек. Наигравшись вдоволь в Quake 3, он понял, что он имеет полное право оценивать видеокарты и критиковать ПО, на котором его Quake3 не сделан (как он думает). Он знает, как считать FPS, знает, какого у него цвета компьютер и при каком разрешении у него быстрей всего работает Quake. Он уверен, что только он умеет тестировать видеокарты. Остальные аргументы и факты просто проходят мимо его ушей. Так вот! Нельзя уметь тестировать карточки без семи пядей во лбу. Можно только пробовать тестировать. Пробовать буду и я, но даже не тестировать, а только анализировать.
Для начала приведем пример такой простоты.
Витя, который оценивает видеокарты nVidia TNT2 и S3 Savage4 по приложениям вроде QUAKE 3, говорит типичное предложение: "Тестирование проводилось на компьютере с процессором Intel Celeron 450 (4.5x100), материнской платой Chaintech 6BTA2 на базе чипсета Intel BX440 и 128 Мб PC100 оперативной памяти". Далее приводит диаграммы, где показаны результаты тестов при разных разрешениях: 640x480, 800x600, 1024x768. Одна видеокарта дает плохие показатели, а другая показывает чудеса. Вроде бы, все нормально, но если бы подобный тест делал профессионал (их не так много, и у них не бывает времени, чтобы заниматься подобной чепухой), то он бы не стал ограничиваться теми данными, которые мило преподносит обыватель, приведенный выше. Кроме того, он опишет в более загадочном свете (не всем дано понять), что дало бы возможность пользователю взвесить происходящее и получить пищу для размышления, а не скупые цифры FPS. Мы же не характеризуем человека с лопатой в руках: "может копать, а может не копать". Человек может быть высоким и стройным, а может быть сутулым, низкорослым. Кроме того, он может знать математику и физику или вообще не знать математики начальной школы. Видеокарта тоже, как и человек, имеет больше характеристик, чем можно описать любым тестом. Предположим ситуацию, что вы знакомитесь с человеком, о котором говорят как об отличном специалисте с красным дипломом. По специальности он механик. Через час общения вы узнаете, что с ним Вы не можете говорить на некоторые темы его же механики. Почему? Потому что в то время как все студенты-"троешники" сидели на лекциях и писали конспекты, он участвовал в самодеятельности (типа КВН) и его отсутствие ему простили и на что-то закрыли глаза. Теперь проведите аналогию к видеокартам и Вы поймете, что истина где-то рядом. Не существует идеальной видеокарты, как, собственно говоря, студента и преподавателя. Конечно, производитель видеокарт скажет: "Видеокарта выдалась превосходной!". Продавцу тоже не хочется говорить покупателю о браке, о "шаткости конструкции" и повторит фразу производителя. И тот же студент, приходя с дипломом на предприятие, скажет: "вот мой красный диплом, я отличный специалист".
Итак, каких же наш главный герой Витя не дает данных в тесте:
1. На какой операционной системе проводилось тестирование?
Хотя бы потому это надо знать, что ВSP метод, на котором строится движок Quake 3, завязан на таком коде, где в игровом цикле (game loop) память может очень много раз захватываться и освобождаться (Alloc и Free). Отсюда и возможные скачки в скорости работы движка. Надо просто не знать принципиальную разницу между сервисом OS W2K и Win9x (например, DPMI), чтобы заниматься такой чепухой, как тестирование видеокарт на базе Quake 2 или 3.
2. Если давать данные о процессоре Intel Celeron 450, то нужно указывать размер кэша, а также название модели и маркировку класса качества, чтобы знать, как часто допускает "огрехи" процессор.
3. Если говорить про FPS, то нужно упомянуть про "кадровый гасящий". Нужно догадываться, что он включен? Зачем тогда вообще описывать разрешения (resolution), когда нет самой главной информации. Ведь наличие Vsync может послужить ограничением количества кадров в тесте.
4. В конце концов, какая версия драйверов была установлена на момент тестирования?
Это далеко не все вопросы. Вопросов еще осталось свыше 10000, но это те самые первые, которые пришли в голову, т.к. хочется иметь некое представление о чистоте грязи (именно грязи) в эксперименте.
MS DirectX против SGI OpenGl
Пять лет назад появилась первая прослойка тех амбициозных особ, которым Microsoft причиняет жуткую боль, и при выборе средства эти особы просто не могут отдать предпочтение Microsoft средствам. Зато при выборе видеокарты они покупают чуть ли не самый дешевый вариант, который не поддерживает и на 50% их любимец OpenGl.
Microsoft не сидела эти годы сложа руки. MS DirectX 7.0 готов, а OpenGl уже не обновляет свой SDK полтора года. Мы наблюдаем картину, когда видеокарты полных ходом используют новые возможности, которые есть в MS DirectX, но которых нет в самой последней версии OpenGl. Значит уже сегодня у Квейкера дома Ge Force 256 (NV10) не используется на 50% всех своих возможностей.
И вот совсем недавно появилась MS DirectX 8.0 Beta, которая будет служить основным графическим интерфейсом для X-BOX. Не нужно надеяться, что появление OpenMl просто капитально изменит положение на рынке. Загадывать наперед не будем, но любителям обсудить директорский состав Microsoft дадим в руки Red Hat и понаблюдаем за тем, как они будут ее устанавливать и работать с OpenGl под Linux.
Имея MS DirectX 7.0 SDK, уже давно можно создавать ПО под ускоритель для достаточно широкого круга чипсетов:
3Dfx Voodoo Graphics
3Dfx Voodoo II
3Dfx Voodoo III
3Dfx Voodoo Rush
3Dfx Voodoo Banshee
3Dfx VSA-100 (!)
3Dlabs Permedia 2
3Dlabs Permedia 3
ATI Radeon 256
ATI Rage 128
ATI Rage Fury
ATI Rage Pro
ATI XPERT
Intel i740
Intel i752
Matrox G200
Matrox G400
nVidia Riva 128
nVidia Riva 128ZX
nVidia TNT
nVidia TNT2
nVidia TNT2 Ultra
nVidia NV10 (GeForce 256)
nVidia NV11 (!)
nVidia NV15 (!)
Number Nine Revolution
PowerVR PCX2
Rendition V1000
Rendition V2100
Rendition V2200
S3 Savage3D
S3 Savage4
S3 Savage2000
Если среди них нет Вашего, то можете считать, что вы просто не интересны производителю, который Вам его продал. Тестирование нужно не только Вашей железке, но и драйверу. Как проверить драйвер?
Берем стандартную утилиту DXCapsViewer из MS DirectX 7.0 SDK и смотрим в возможностях Microsoft Direct3D Hardware acceleration through Direct3D HAL (Direct3D HAL) на то, какой у нас чипсет и как его возможностями умело управляет драйвер.
Сразу видим в первых строчках:
1. CANRENDERAFTERFLIP
От того, что написано тут — Yes or No, — зависит возможность видеокарты делать Flip страниц видеопамяти.
2. TEXTURESYSTEMMEMORY
Через несколько строчек ниже мы узнаем о том, можем ли мы работать с текстурами в системной памяти или обходиться нужно только видеопамятью.
3. TEXTUREVIDEOMEMORY
Так мы узнаем о том, можем ли мы работать с текстурами в видеопамяти.
4. TLVERTEXSYSTEMEMORY и TLVERTEXVIDEOMEMORY
Узнаем о возможностях при работе с "транслитными" точками. Хотя и понятно, что чаще мы это делаем все еще в системной памяти. Однако тип памяти для случая с текстурами играет большую роль, т.к. видеопамяти не бывает много.
5. HWTRANSFORMANDLIGHT
Поддержкой аппаратной визуализации источников света похвастаться могут не многие производители, а поэтому на данном этапе не мешало бы, чтобы этот момент был отмечен Yes.
6. HWRASTERIZATION
Такая возможность должна быть, т.к. незачем и все остальное без аппаратной растеризации.
Далее смотрим "Misc" таблицу для S3 Savage4/3DFX Voodoo Banshee:
DeviceRenderBitDepth=Yes/ Yes
8 = No/No
16 = Yes/Yes
24 = No/No
32 = Yes/No
DeviceZBufferBitDepth = Yes/Yes
8 = No/ No
16 = Yes/Yes
24 = No/No
32 = No/No
MinTextureWidth = 1/1
MinTextureHeight = 1/1
MaxTextureWidth = 2 048/256
MaxTextureHeight = 2 048/256
MaxTextureRepeat = 0/32768
MaxTextureAspectRatio = 0/256
MaxAnisotropy = 0/1
GuardBandLeft = Yes/No
GuardBandTop = Yes/No
GuardBandRight = Yes/No
GuardBandBottom = Yes/No
ExtentsAdjust = No/No
FVFCaps = Yes/Yes
MaxTextureBlendStages = Yes/Yes
MaxSimultaneousTextures = Yes/Yes
MaxActiveLights = Yes/Yes
MaxVertexW = No/No
MaxUserClipPlanes = Yes/Yes
MaxVertexBlendMatrices = Yes/Yes
Теперь мы видим, что S3 Savage 4 какой-то монстр по сравнению с 3DFX Voodoo Banshee. Чтобы такого впечатления не сложилось, проанализируем вкратце описанное.
DeviceRenderBitDepth и DeviceZBufferBitDepth — то самое, без чего видеокарту можно назвать железкой. Далее посмотрим на MaxTextureWidth и MaxTextureHeight, т.к. размеры текстур вещь важная, но только в том случае, если аппаратный растерайзер способен выводить огромные текстуры с подобающей скоростью. Для S3 Savage4 хватило бы только текстур размером 256x256, чтобы в игру было невыносимо играть.
И, пожалуй, ответ драйвера о наличии GuardBand по всем краям экрана не лучший вариант, т.к. после этого MS DirectX перестает заботиться о том, куда выводит свои треугольники. Если же S3 не правильно реализовала эту Guard (защиту от попадания за границы рабочей зоны экрана), то это приведет к генерации исключения и, как следствие, необходимости в нажатии клавиши Reset. Драйверы же Voodoo сознаются честно, что гарантий от прорисовки за пределами зоны нет, а поэтому пусть DirectX(Direct3D) сам занимается клиппингом (отсечением). Единственным плюсом S3 можно считать в этом случае — 32-битный рендеринг.
Это далеко не вся информация, которую может дать DirectX о текущем драйвере.
Вы должны посмотреть на то, как у драйвера дела c TriangleCaps, с Shade, c Fog и прочее, о чем я сейчас и расскажу.
Что требуется от возможностей StencilCaps.
Неплохо иметь возможности работы с Stencil Buffer, но это пока не сильно востребовано в играх.
Что требуется от возможностей TextureOpCaps.
SELECTARG1 = Yes
SELECTARG2 = Yes
MODULATE =Yes
ADD = Yes
Это как минимум.
BLENDDIFFUSEALPHA Yes
BLENDTEXTUREALPHA Yes
Иначе не увидите LensFlare (Солнце и линзы).
Что требуется от возможностей VertexProcCaps.
Все, что там есть. Без них ускоритель не полноценен.
Что требуется от возможностей Triangle Caps-> Z Compare.
Просто необходимо, чтобы все было Yes.
NEVER =Yes
LESS =Yes
EQUAL =Yes
LESSEQUAL =Yes
GREATER =Yes
NOTEQUAL =Yes
GREATEREQUAL =Yes
ALWAYS =Yes
Что требуется от возможностей Triangle Caps-> Alpha Compare.
Таблица должна быть идентична Triangle Caps-> Z Compare, т.к. Alpha Compare — это наш BillBoarding. BillBoarding — это, например, когда хотят упростить модель дерева и устанавливают 2 полигона крестом, и у нас создается впечатление, что дерево трехмерное. Alpha Compare занимается тем, что указывает в растре с изображением дерева те места, которые не нужно изображать (чтобы поближе познакомиться с такими деревьями, можете с www.developers.f2s.com скачать мою демо-J12).
Что требуется от возможностей Triangle Caps-> Fog.
Получите хотя бы такую картину, и уже будет неплохо:
FOGVERTEX =Yes
FOGTABLE =Yes
FOGRANGE =Yes
WFOG =Yes
ZFOG =Yes
FOG FLAT =Yes
FOG GOURAUD =Yes
FOG PHONG =Yes
Что требуется от возможностей Triangle Caps-> Shade.
COLOR FLAT RGB = Yes
COLOR GOURAUD RGB = Yes
SPECULAR FLAT MONO = Yes
SPECULAR FLAT RGB = Yes
SPECULAR GOURAUD MONO = Yes
SPECULAR GOURAUD RGB = Yes
ALPHA FLAT BLEND = Yes
ALPHA GOURAUD BLEND = Yes
FOG FLAT = Yes
FOG GOURAUD = Yes
Если у вас эти все возможности есть, то значит можно "лепить" достаточно цветные и красивые сцены с приятным освещением. Отсутствие чего-либо из SPECULAR говорит о том, что не видать Вам спекулярного освещения, а оно очень приятно показывает металлические и пластмассовые объекты в гармонии с текстурой и диффузным цветом. Отсутствие SPECULAR может привести к тому, что любимые игры (или которые смогли бы быть любимыми) не смогут работать на Вашей видеокарте (к примеру, Rendition Verite).
Что требуется от возможностей Triangle Caps-> Texture Filter.
Укажу то самое основное, что очень любят указывать в тестах:
NEAREST = Yes (Point samling)
LINEAR = Yes (bi-linear filtering)
MIPNEAREST = Yes (Mip-Map with Point samling)
MIPLINEAR = Yes (Mip-Map with bi-linear filtering)
Текстурные фильтры всегда спасают самые некрасивые сцены.
Что требуется от возможностей Texture Formats.
Вот какие форматы текстур поддерживает S3 Savage4:
*16 bit 565 / RGB
*16 bit 1555 / RGB ALPHAPIXELS
*16 bit 4444 / RGB ALPHAPIXELS
32 bit 8888 / RGB ALPHAPIXELS
DXT1 / FOURCC
DXT2 / FOURCC
DXT3 / FOURCC
DXT4 / FOURCC
DXT5 / FOURCC
*8 bit / RGB PAL8
А вот какие форматы текстур поддерживает 3DFX Voodoo Banshee:
*16 bit 565 / RGB
*16 bit 1555 / RGB ALPHAPIXELS
*16 bit 4444 / RGB ALPHAPIXELS
8 bit 332 / RGB
*8 bit / RGB PAL8
16 bit 8332 / RGB ALPHAPIXELS
8 bit 8 / LUMINANCE
8 bit 44 / LUMINANCE ALPHAPIXELS
16 bit 88 / LUMINANCE ALPHAPIXELS
Те форматы, которые отмечены (*), являются некой "нитью совместимости" между видеокартами для разработчика игр, и отсутствие какого-либо из них — недобрый знак.
Что касается остальных возможностей драйвера, то они не менее важны, но, описывая их, можно написать целую серию статей, посвященных только одной утилите. К тому же утилита описывает только те возможности, которые нужны для игр, где используют MS DirectX7.0, а не OpenGl. квейкеру подобный анализ будет безразличен.
Давайте теперь добавим к результатам теста еще некоторые характеристики. К примеру, забота о пользователе, профессиональный уровень системных программистов, которые пишут нам с вами так необходимые драйверы, возможности и их отсутствие, приводя конкретные факты, а не сравнительные тесты. Иногда, видеокарты настолько различны по своему уровню, что их рядом ставить просто не имеет смысла, т.к. такие тесты покажут контраст (отрыв), но не более того. Бессмысленно сравнивать показания Savage4 с TNT2, потому что у первой видеокарты пока нормального драйвера нет. Они настолько различны, что одна мысль сравнения их под OpenGl бросает в гомерический смех. Это больше похоже на обывательски простодушную глупость и не более того.
Если по-детски объективно оценивать и сравнивать Quake3 с тем, что мы видим в одном только RollCage, то можно сделать жестокие выводы в отношении OpenGl. Очень трудно развеять миф, т.к. фанаты просто не видят ошибок в OpenGl, а вот когда где-то Microsoft допускает ошибку, то камни летят увесистые. Сейчас поговорим о том, при помощи чего же сделаны TUROK2 и другие игры, не использующие OpenGl.
Microsoft DirectX — средство, без которого геймер не услышал бы ни трехмерного звука, ни смог бы подержаться за руль с обратной связью, ни смог бы поиграть по сети. Игры, вроде Quake 3, пользуются OpenGl, но это только тогда, когда дело касается графики, а все остальные отсутствующие компоненты берут из Microsoft DirectX. Так нужен нам DirectX или нет?
Профессиональные программисты в области создания игр, вроде Кармак, очень скоро могут быть задавлены программистами, которые не поверили в то, что Direct3D Immediate Mode плох. Рынок игр под Microsoft DirectX (Direct3D Immediate Mode) растет. Что же касается профессиональных конструкторских программ, то рынок пока дружит с OpenGl. Вовсе не означает, что OpenGl вымрет, как мамонт (сильно серьезное средство). Просто сейчас в отсутствии его новой версии под Win32 (или как OpenMl) он стал сильно отставать от Microsoft Direct3D Immediate Mode. Будем надеяться, что OpenGl не отстанет от DirectX, потому что плохо, когда нет выбора и конкуренции средств.
Теперь вспомним последние новости рынка операционных систем. Произошло разделение Microsoft на части. Почему большая часть людей не рвется под Linux? Все просто — не развалилась Microsoft, а только разделилась, и такие процессы, обычно, не проводятся так быстро, как нарезка хлеба. За время деления Microsoft продукты станут настолько дешевле, что бесплатная продукция Linux мало кого будет интересовать (а может, как альтернатива, окрепнет еще сильней). MS DirectX не работает под Linux (драйверы под Linux — другие). Не будет работать и большое количество других приложений Win32 (все равно эмуляция), которые были написаны, учитывая особенности Microsoft Windows. Возьмем только малую часть, которую Linux придется сделать. Написать драйверы для всевозможных сканеров (или суметь заставить производителей сделать это, во что слабо верится), для видеократ (это уже поздно), для звуковых плат и прочее, прочее... У них еще работы на пять лет вперед. Зато теперь у многих деятелей появилось ощущение, что Microsoft не мешает, и это переполняет их чувства. Большевики уже показали, что на развалинах одного мира нельзя построить свой новый и хороший. Так давайте не будем впадать в крайности. У Linux не серьезная база, чтобы стать первым номером на рынке. Хотя, нельзя не отметить превосходство Linux в некоторых областях. На Linux можно построить очень неплохой сервер. Можно корректировать и менять все, что захочется в исходном тексте рабочей системы, но это же не серьезно. Сделай сам? Когда же работать или играть? А где стандарты, которые являются хранилищем наших знаний? Конкуренция — это единственный процесс, который мы еще можем контролировать (в этом выражается наша свобода — свобода выбора), и вмешиваться сюда законом (каким бы он ни был справедливым) тоже нельзя, даже если речь о монополистах. Теперь давайте дадим оценку событиям, происходящим на рынке видеокарт в то время, как Microsoft стала жертвой нравов дикого Запада. А ничего на рынке не рухнуло. ATI нас решила порадовать своим новым Radeon 256. NVidiа показывает свой дорогой Gforсe 256 (или NV11 и NV15). Драйверы все пишутся под MS Windows 2000, NT4, 95, 98. А зачем что-то менять? Нечего бояться, пока трудятся для нас многочисленные писатели драйверов.
Кстати, рынок видеокарт не терпит производителей, которые не умеют качественно писать драйверы. По-другому занять выгодные ниши на рынке видеокарт просто невозможно. Бедная S3, не может до сих пор найти нормальных системных программистов, которые написали бы ей полноценные драйверы. Такие же проблемы у множества других производителей. Каким же должен быть писатель драйверов? Достаточно сложный человек, т.к. одновременно должен разбираться серьезно в 3D графике и быть хорошим системным программистом. Такое просто невозможно. Человек не может фанатично увлекаться двумя областями сразу, а поэтому этих золотых людей единицы на планете. Что касается 3DFX и nVidia, то можно отметить, что у них эти единицы работают. Вот их работу мы и оплачиваем, когда покупаем видеокарты.
Тесты без Vsync и амбиции тестера
Какая разница, при каком разрешении тестируется Quake, если не указано самого главного — частоты обновления адаптера (имеется в виду "кадровый гасящий")? Если в тесте все-таки ожидался следующий вертикальный "пробел" (Wait for Vertical Blank), то тогда чему он равен? 60Hz, 75Hz, 85Hz, 100Hz, 120Hz? Почему про это ни слова не говорит Витя? Ведь смешно смотреть на тесты. Кадров выходит по тесту всегда почему-то не более чем 50 с лишним (это ближе к частоте обновления, равной 60Hz). Отсюда делаешь вывод, что тест Витя делает за своим 14'' монитором, где частота 60Hz — это норма при разрешении 640x480. Может, эти выводы немного не соответствует реальности, но все же отсутствие информации о частоте обновления показывает некомпетентность испытателя.
Все нормальные люди указали бы в своем эксперименте режим (Vsync mode), при котором они испытывали свои видеокарты. Если будете тестировать Voodoo2 на Turok2 без Vsync Mode, то вы получите все 100-116 кадров, но смысл будет в этом количестве кадров только тогда, когда у вас будет монитор 17'' или 19'', который будет держать 100-120Hz.
Будем надеяться, что в дальнейшем тесты будут проводить более компетентные люди, которые могут похвастаться, что прошли стажировку на заводах производителей вроде Advanced Integration Research, ATI Technologies Inc., Boca Research Inc., Canopus Corporation, Cardinal Technologies, Cirrus Logic, Western Digital, Willow Peripherals и др.
Павел Горбунов,
paul@developers.f2s.com
www.developers.f2s.com
(c) Компьютерная газета
Компьютерная газета. Статья была опубликована в номере 31 за 2000 год в рубрике hard :: video