Мы не играем в "Шахматы"
реклама
Эта работа принимает участие в нашем конкурсе статей.
История началась с того, что однажды 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 |
реклама
Лента материалов раздела
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают