Мы не играем в "Шахматы"


Эта работа принимает участие в нашем конкурсе статей.


История началась с того, что однажды 3D производительности моей видеоплаты GeForce 2Ti стало катастрофически не хватать. Новости о переделке плат Radeon 9500 в 9700, будоражили разум потрясающими перспективами сэкономить ~150$ и получить высочайшую производительность. К тому времени, когда я основательно созрел приобрести столь ценную для оверклокера вещь, платы эти пропали из прайс-листов компьютерных фирм, но в прайсах некоторых можно было ещё встретить Radeon 9500 64Mb DDR. Соответственно, едем куда поближе, берём плату и переделываем её в раритетный Radeon 9500Pro 64Mb, но как я ошибался! Поездка в фирму завершилась довольно-таки благополучно и за 145 у.е. я приобрёл неплохую железку и ехать далеко не пришлось. Вот он “красный дракон” Radeon:

Вот я и дома. Аккуратно вынимаю из AGP слота свою старую GeForce 2Ti, на её место ставлю красную "боевую" плату, далее загрузка системы, установка драйверов и последующая "обработка" Riva Tuner'ом, запуск 3DMark2001SE. Загрузка сцены и тут же приходящий в голову первый вопрос: "Что за артефакты?". Испробовал буквально все методы лечения, от загона в номинал FSB до снижения референсных частот платы, но тщетно, результат нулевой, разумеется, если всё вернуть обратно - вернуться к 4 пиксельным конвейерам, то всё работает просто великолепно, но какой русский не любит быстрой езды? Оставалось только одно - спросить на форуме о такой проблеме. Результат не заставил себя долго ждать, ответ был единственным и неумолимым: "Конвейеры битые! Ничего не поможет, хоть ты тресни!". Правда, был и другой более позитивный ответ: "Пробуй отключать HierarchicalZ чем-нибудь вроде Rage3D Tweak, некоторым помогает!".

Раздобыть Rage3D Tweaker было нетрудной задачей. Отключение HierarchicalZ - никак не повлияло на сложившуюся ситуацию, тогда я продолжил играться с Z-Buffer'ом - выключил абсолютно все, что с ним связано. Старания даром не прошли, результатом чего стало полное отсутствие артефактов в D3D. В OpenGL проблема осталась и решить её Rage3D Tweaker'ом не представлялось возможным. Вот пример артефактов в Quake 3 Arena с ними и без них:

Цветовая инверсия лучше всего показывает артефакты.





После полутора недель мучительных поисков ответа, проблема наконец-то разрешилась. Открыл HEX-редактором драйвер ATi OpenGL и повыдёргивал из него огромное количество шифрованных ключей реестра, затем их импортировал в раздел реестра драйвера OpenGL\Private с помощью программы, написанной за 5 минут. Я понимаю, что эти методы далеко не профессиональны, но в данной ситуации все средства были хороши.

Запуск Quake 3 Arena, артефактов замечено не было, но были огромные потери производительности, даже в разрешении 640*480 можно было в среднем получить 2Fps. Стал постепенно удалять импортированные ключи из реестра, потом появилась скорость, а артефакты не проявлялись. За 2 часа таких испытаний, я таким опытным путём обнаружил, что нужный реестровый ключ это - rf23twwl2ODyp. Параметр типа DWORD со значением "0" убирал артефакты, как будто их и не было, а впоследствии от Unwinder'а я узнал, что этот ключ отвечает за быструю отчистку Z-Buffer'а, но в программе Rage3D Tweaker в настройках OpenGL была возможность отключить Fast ZMask Clear! В Rage3D Tweaker этот реестровый ключ был - "enableFastZMaskClear", что не совсем верно и поэтому эффективность программы в данном случае сводилась к нулю.

Так, теперь хорошо бы выяснить, как отключение Z-Mask в D3D и rf23twwl2ODyp в OpenGL влияет на 3D производительность:

Тестовая платформа:

  • Процессор: Intel Celeron 2.2Ггц o/c 2.93Ггц
  • Память: 2 * 256Mb DDR400 M-tec. (TwinMOS)
  • Системная плата: ASUS P4P800
  • Жёсткий диск: Fujitsu MPG 40Gb ATA100
  • Видеокарты:
    • Sapphire ATi Radeon 9500 64Mb DDR – схема 8*1
    • Gainward nVidia GeForce 4Ti4800SE
  • Тесты: Mad Onion 3DMark2001SE, ID Quake 3 Arena (Demo ASUS Unkind vs. AKILES OTG)

Итак, 3DMark2001SE:

Разница не такая и большая, а 600 "попугаев" - это не настолько много. Теперь проведём замеры в Quake 3 Arena:





Да, производительность резко проседает при отключении rf23twwl2ODyp. В низких разрешениях разница не особо заметна, но в высоких разрешениях (1600*1200) производительность платы падает примерно на 37% (относительно результата с включенным Z-Mask), что довольно-таки здорово сказывается на геймплее. Игры с этими артефактами, т.е. с "шахматкой" подвели меня к написанию собственной программы (450КБ), которая помогает лишь в некоторых случаях, но ведь помогает!

Вот скриншот программы:

Программа позволяет показывать информацию о видеокарте и все изменения производятся "на лету".

В заключение обзора этой наболевшей проблемы хочу выразить свою благодарность:

Unwinder'у aka Алексею Николайчуку
Antone_Takoi - дизайнеру и голд-тестеру программы

А также остальным тестерам, которые внесли огромный вклад в развитие программы:

pEEp [show]
Alex Daniloff
* Maxim *
Alex_Uragan
alexii
Andryu
Vava
Suharok
Sachaaaa
Shroomz
Gary191965
Nostromo
Palamino
Sergeo
Telegram-канал @overclockers_news - это удобный способ следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Страницы материала
Страница 1 из 0
Оценитe материал
рейтинг: 4.6 из 5
голосов: 60


Возможно вас заинтересует

Популярные новости

Сейчас обсуждают