Конференция работает на сервере Netberg

Radeon.ru

Конференция Radeon.ru

Страница 1 из 2 [ Сообщений: 52 ]  Версия для печати [+] На страницу 1, 2  След.
Показать сообщения за  Поле сортировки  
Возникла проблема артифактов после моддинга видеокарты 3DClub 9800SE. Перелапатив огромное количество сообщений на форуме и протестировав свою карту, пришел к выводу, что у меня битый Z-Buffer а не битый конвеер. Если в 3DMark2001SE установить Z-Buffer depth 16bit — то все тесты проходят без искажений. Выставив в драйвере для OpenGL опцию Force 16bit Z-Buffer я добился того, что Quake3 тоже работает нормально даже при 32bit цвете. Пока не удалось добиться того, чтобы в DirectX играх все заработало хорошо при 32bit цвете, так как не знаю как там принудительно установить Z-Buffer depth 16bit. При 16bit цвете DirectX идет нормально.

Пробовал играться с другими настройками Z-Buffer-а (даже скачал специально програмку с overclockers.ru) не помогает. Точно знаю что в DirectX 32bit цвет и 16bit Z-Buffer можно установить — 3DMark2001SE то работает! Пожалуйста, подскажите как...
Есть неплохая утилита Rage3dTweak, позволюящая настраивать многие параметры Д3Д и OpenGL. На тех же оверклокерах была статья про убирание шахмат на 9500@9700.
В том то и дело, что настройки из Rage3dTweak не помогают, необходимо именно установить 16bit Z-Buffer в Ditect3D
Вроде в старых Catalyst была такая возможность?
Dimonija в Catalyst для D3D есть форсирование 32-bit Z-buffer. если его не включать, то он останется 16-bit.
а так можно в реестре поискать ключик DefaultZBuffer и им поиграться
<BLOCKQUOTE><SPAN class=hquote>цитата:</SPAN><HR size=22><SPAN class=quote>AndreyPopov:
Dimonija в Catalyst для D3D есть форсирование 32-bit Z-buffer. если его не включать, то он останется 16-bit.
а так можно в реестре поискать ключик DefaultZBuffer и им поиграться</SPAN><HR size=22></SPAN></BLOCKQUOTE>

Спасибо. Еще нашел ключик ZFormats. Возможно он живет вместе с DefaultZBuffer и содержит список доступных bit depth для Z-Buffer, а DefaultZBuffer говорит какой должен быть активен по умолчанию. Вот список форматов для ZFormats (может кому еще сгодится):
значение ключа = значение bit depth для Z-Buffer
1 = 16
2 = 24
3 = 16 / 24
6 = 24+8
7 = 16 / 24+8
8 = 32
9 = 16 / 32
10= 24 / 32
11= 16 / 24 / 32
14= 24+8 / 32
15= 16 / 24+8 / 32

Сегодня дома буду проверять, прокатит ли это...
Dimonija ZFormats — отвечает за уровень компресии Z-буфера.
К сожалению ключики DefaultZBuffer и ZFormats не помогли. Зато помогла прога 3danalyze. В ней выставляешь z-buffer в 16 bit выбираешь exe-шник и запускаешь. Как бы добиться такого же эффекта в драйвере, чтобы не надо было постоянно запускать эту прогу?
Dimonija обратись в ветку по ATI Tray Tools, там подобная проблема обсуждается.
Dimonija
Я гляну как можно форсировать Z-Buffer.
Dimonija

имею такую же проблему, только необходимо форсировать 24bit z-buffer. карта 9500@9700 (325/270)
Шахматка проявляется в 3дмарке2001СЕ, если в настройках установить z-buffer 16 bit, при установке 24 бита — шахмат нет, такая же картина наблюдается в игре МОТОГП. В марке 2003 — на первом гейм тесте и на природе, шахмат нет, 2 и 3 тесты имеют шахматы — думаю, это из-за 32 бит z-buffer.
Твикеров перебрал много — но ни один не умеет корректно форсировать z-buffer. (или руки у меня кривые Изображение)

ключи zFormats, DefaultZBuffer не помогли
3danalyze тоже не помогла, но автор так и написал — что не на всех картах работает, поэтому много не ожидал.

также заинтересован в ключах для реестра!


Если найдете решение: разместите в этой ветке.

Зарание благодарен!
ZOOOM
Похоже решение кроется в модифицировании directX или драйверов для видеокарты. После вызова функции Direct2dCreate9 обычно вызывают ::CreateDevice — я попробовал, если туда передать правильный параметр, то это устанавливает нужный z-buffer. Теперь дело за малым — модифицировать CreateDevice Изображение
Если кто может оказать помощь в этом вопросе — буду рад.

пс. А реестром ни чего не добиться, я уже все перепробовал.
Dimonija,

а подробнее процедуру можно?

сегодня буду мучать ATtool, может поможет.
завтра отпишусь.
Правка драйвера, ИМХО — правка реестра, вот узнать бы какой имеено файл из пакет отвечат за настройку буфера, его бы подправить Изображение.

Ray Adams, нам ответу не даст. Вроде спец по дровам, и форсирование добавил.

P.S. Если у меня мысль, что во всем виноват 7 и 8 directы, когда rivatuner дает инфу, он там пишет шота типа:
$ffffffffff ---------------------------------------------------
$ffffffffff IDirect3D7 HAL capabilities
$ffffffffff ---------------------------------------------------

....................................
$0600000001 dwDeviceRenderBitDepth : 00000500
$06000c0001 DDBD_8 : no
$06000b0001 DDBD_16 : yes
$06000a0001 DDBD_24 : no
$0600090001 DDBD_32 : yes
$0600000002 dwDeviceZBufferBitDepth : 00000600
$06000c0002 DDBD_8 : no
$06000b0002 DDBD_16 : yes
$06000a0002 DDBD_24 : no
$0600090002 DDBD_32 : no
...................................
Может в этом дело! (данные с другого девайса, но на 9500@9700 — почти таже картина),
Кто знает — HELP!
ЕЩЕ мысль, может попробовать пойти другим путем, может не включать режим по умолчанию, может — другие просто отключить!

ВОПРОС: Как отключить Z-buffer depth 16bit и 32 bit? или для Dimonija 24 bit и 32 бит.?

В моем случае 16 бит и 32.

Кто знает, все тот же HELP!

ДОБАВЛЮ еще инфы: провел ряд тестов- результаты:
1. шахмат нет во всех режимах (при разных настройках):
-quake 3A и все геймы на его движке;
-Серьезный сэм 1 и 2;
-Unreal turnament все версии;
-Painkiller.

2. шахмат нет только 24 битном режиме:
— 3dmark 01;
— MOTOGP.

3. шахматы есть:
— 3dmark 01(16 bit)/03(default) (только в тестах 2 и 3, в марке 03 и в regrol-e);
— Far Cry (при любых настройках), ИМХО 24 битную глубину я не нашел как включить.
— Silent Storm: Часовые (как включить 24 бит — я не нашел).

ТЕСТЫ ПРОДОЛЖАЮТСЯ.

p.s. интересный факт в СЭМЕ при установке рендеринга OpenGL карточка определяется как 9700, а при Direct3D — 9500

ЕЩЕ ИНФА: думал что ломаны дрова для переделки ничем кроме одного файла не отличаются, вчерась проверил соответствие настроек дров 9500 ориг. и 9500 лом. — есть некоторые отличия — експортировал настройки 9500 ориг. и поставил на 9500 лом. — разгон и 9700 осталось — ничего не понимаю.

[Исправлено: ZOOOM : 03-06-2004 09:39]
для правки DirectX делаю свой вклад — есть такая запись в реестре (шо с ней делать не знаю):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Direct3D\DX6TextureEnumInclusionList]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Direct3D\DX6TextureEnumInclusionList\16 bit Bump DuDv]
"ddpf"="00080000 0 16 ff ff00 0 0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Direct3D\DX6TextureEnumInclusionList\16 bit BumpLum DuDv]
"ddpf"="000C0000 0 16 1f 3e0 fc00 0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Direct3D\DX6TextureEnumInclusionList\16 bit Luminance Alpha]
"ddpf"="00020001 0 16 ff 0 0 ff00"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Direct3D\DX6TextureEnumInclusionList\24 bit BumpLum DuDv]
"ddpf"="000C0000 0 24 ff ff00 ff0000 0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Direct3D\DX6TextureEnumInclusionList\8 bit Luminance]
"ddpf"="00020000 0 8 ff 0 0 0"


Вроде дело в ней. Замена ключей 24 bit в остальных режимах мне не помогла.

ИМХО, Ключ defaultzbuffer устанавливает глубину буфера по умолчанию, но не форсирует ее. ключ zformats вроде определяет доступные режимы работы зю-буфера, но вроде не отключает не нужные.
ZOOOM
Подробнее про процедуру: Она называется Direct3D9::CreateDevice() и описана в хедере d3dx9.h, живет в d3d9.dll. Естественно это справедливо для DirectX9. Мне уже удалось ее подправить и самое интересное — кое что заработало. Сейчас ситуация следующая:

1. Direct3d примеры от Microsoft входящие в dx9sdk
При родной d3d9.dll: 16bit z-buffer — шахмат нет, 24bit z-buffer — шахматы есть
При патченой d3d9.dll: 16bit z-buffer — шахмат нет, 24bit z-buffer — шахмат нет

2. Silent storm (SS2)
При родной d3d9.dll: 16bit z-buffer — шахмат нет, 24bit z-buffer — шахматы есть
При патченой d3d9.dll: 16bit z-buffer — шахмат нет, 24bit z-buffer -шахматы есть

Чтобы в Silent storm выставить 16bit z-buffer надо поставить режим — 16bit цвет,
соответственно чтобы поставить 24bit z-buffer надо поставить режим — 32bit цвет
Еще нашел функцию Direct3D9::CheckDeviceFormat() — она проверяет доступен ли данный формат (в том числе и zbuffer) на видюхе, есть мысль сделать, чтобы она говорила, что 16-bit(24-bit) zbuffer недоступен.
Dimonija,
сори, но я не силен в програминге, где взять хедер d3dx9.h и чем с ним что делать?
Где найти функции Direct3D9::CreateDevice() и Direct3D9::CheckDeviceFormat()?
Если можно опиши или дай ссылочку где это можно почитать?

ИМХО, с 9Х все нормально (так как при использовании 9Х в марке тесты проходят нормально), проблемы в 8Х именно он работает 32 битным буфером

Silent storm при установке 32 биного цвета — ставит 32 битный z-буфер.

ИМХО, тебе проще ставь все настройки на 16 битную палитру и directX настроит под неё 16 битный буфер.

P.S. попробуй FAR CRY в конфиге поставь 16 бит цвету и буферу — если шахмат не будет — твой режим 16 бит.
Dimonija,
если это не очень сложно, может попробуешь отключить для меня 16 и 32 битные режимы

заранее спасибо
ZOOOM
На счет функций — все это можно найти в DirectX SDK на сайте MicroSoft-a

На моей 9800SE вроде вообще 32 zbuffer не поддерживается. Поддерживается только 24+8 (Zbuffer+Stencil). У тебя я думаю тоже так. Так что в Silent storm ставится все-таки 24 zbuffer (по крайней мере у меня).

Нужна какая-нибудь не толстая direct3D демка (для DirectX9), на которой стабильно идут шахматы. Я на ней отлажусь.
С CheckDeviceFormat() буду разбираться сегодня вечером. Можешь кинуть мне сообщение на u_dimona@pisem.net я тебе завтра намылю то, что у меня получилось для твоего случая. Но учти, что это будет для DirectX9
да, установка 16 битного цвета полностью решает мою проблему, но хочется то поиграть в тот же Silent storm при 32 битном цвете.
Dimonija,
24+8 (Zbuffer+Stencil) именно в таком режиме у меня и не шахматит, но Silent storm — у меня шахматит, поэтому предпологаю что 32 бита.

отмылится не смогу, пость в эту ветку — пусть все знают Изображение. Не толстая демка в ATI tool имеется.
ZOOOM
В ATI tool у меня нет шахмат, получается у нас с тобой пока только Silent storm по шахматам дублируется.

В DirectX SDK есть такая утилита DXCapsViewer.exe. Она в том числе показывает какие режимы Zbuffer/Stencil доступны. У меня там 32 zbuffer нет. И демка с поддержкой 32 zbuffer у меня не пошла (сам написал).

Как сюда файлы постить то?
Dimonija,
не знаю как файлы постить, если можешь куда-нить запость и ссылочку дай, ну и на мыло свое попробую зайти, и если можешь кинь ссылочку на DirectX SDK.

а в Far CRY как у тебя дела обстоят?
Сегодня буду пробовать отследить изменения в реестре при установке разных настроек в 3dmarke 2001 — d понедельник отпишусь.

Большое спасибо за терпение Изображение.
ZOOOM
Скачал я вчера демки от ATi — они как раз 24+8bit, у меня без искажений не идут. Буду я менять эту видюху, из нее уже ни чего не выжмешь Изображение


>если можешь кинь ссылочку на DirectX SDK.\

218Mb — http://download.microsoft.com/download/b/6/a/b6ab32f3-39e8-4096-9445-d38e6675de85/dx90bsdk.exe


>а в Far CRY как у тебя дела обстоят?\

Я его не запускал еще — он жирный очень, а у меня хард только 30 метров...


>Сегодня буду пробовать отследить изменения в реестре при...\

Гиблое дело этот реестр — не трать время
ZOOOM
А DLL-ку эту я тебе в понедельник принесу, поправлю ее на 24 bit. Скачай демки от ATi (они кстати на 16bit вообще не идут)посмотри как они пойдут у тебя:
http://www.ati.com/developer/demos/r9800.html
Покопал я реест да и дровишки.
Ключ defaultzbuffer не иметт отношения к драйверу вообще, я не смог найти его ни в одной dll от каталиста, а вот в Контрольной Панели он есть! Изображение
Далее ZFormats — для R3xxx кажется вообще не функционирует Изображение, и скорее всего работает только под R1xx,R2xx. Если с OpenGL проблем нет для форсирования глубины, то с D3D это не так просто и видимо не получится через простое редактирование реестра. Видимо надо патчить ati3duag.dll. Там скорее всего должна быть таблица для ZBuffers.
Буду копать дальше
Dimonija,
в двух из трех вообще не шахматит

шахматит лишь в "non photorealistic rendering" и то частично, только в той части где более продвинутые тени.

насчет замены КАРТОЧКИ или поспеши (новая линейка на подходе или подожди ИМХО, разница между полноценным 9800 сократится), за ссылочку спасибо но такой метраж мне не утянуть.
Ray Adams,

спасибо за неугосаемый интузиазм, и за желание помочь, ждем успешных результатов.
Mne segodnja son prisnilsja,4to vrubaju komp,a na desktope shahmati Изображение , utrom dolgo smejalsja Изображение

[Исправлено: AndreyPopov : 04-06-2004 22:19]
RoaXchLV,
на geforce MX400 — шахмат не бывает Изображение

[Исправлено: AndreyPopov : 04-06-2004 22:20]
RoaXchLV , ZOOOM все не относящиеся к теме — называется оффтипиком и требует соответсвующего выделения, если не хотите, чтобы ваши посты удалялись.
AndreyPopov,
сори.

Ray Adams,
Dimonija,

Решил временно проблему шахмат в Часовых, залез в настроечный файл и отключил все тени, — шахмат не стало.
тоже самое проделал c Far cry, шахматы частично пропали, теперь шахматы только в воде на горизонте.

Есть мысль, что на самом деле, не глубина цвета дает эффект шахмат, а шаблоны (stencils), если отключить эти стенсилы — ИМХО шахматы уйдут.
ZOOOM

>Есть мысль, что на самом деле, не глубина цвета дает эффект шахмат, а шаблоны (stencils), если отключить эти стенсилы — ИМХО шахматы уйдут.\


Тут у кого как, я эти стенцилы отрубал — на 24bit не помогало. Кстати карту я поменял — теперь доволен как слон. Забыл тебе длл притащить, она еще актуальна для тебя?
Dimonija,
актуальна (z-buffer = 24 bit+0 stencils), спасибо!


AndreyPopov, снова сори за офф-топик,
Dimonija, что взял?
ZOOOM
Поменял на то же самое — Club3D Radeon 9800SE 128Mb, 256bit — Шахмат нет. В моем случае это единственное правильное решение было — так как многий софт (в частности ATI Demos) на 16bit zbuffer вообще не пойдет. Silent storm наконец-то нормально пошел! Изображение
А вообще то что будет нормально работать я буду запускать на 16bit буффере — так как на нем немного быстрее все пашет. Завтра принесу тебе свои наработки, главное было бы куда их кинуть.
Выкладываю патч для d3d9.dll. Пропатчена функция IDirect3D9::CreateDevice на предмет установки "32-bit z-buffer bit depth using 24 bits for the depth channel and 8 bits for the stencil channel". Патч актуален для DirectX9b (d3d9.dll 1,634,304b).

Вот сам патч:
|<IDirect3D9::CreateDevice — set 24+8 ZBuffer+Stencil patched by Dimonija>
DirectX9

CreateDevice
D3D9.DLL
0006F080: 64 E9
0006F081: A1 71
0006F082: 00 04
0006F085: 00 90
0006F4F6: 90 8B
0006F4F7: 90 44
0006F4F8: 90 24
0006F4F9: 90 18
0006F4FD: 90 EB
0006F4FE: 90 47
0006F546: 90 C7
0006F547: 90 40
0006F548: 90 28
0006F549: 90 4B
0006F54A: 90 00
0006F54B: 90 00
0006F54C: 90 00
0006F54D: 90 EB
0006F54E: 90 33
0006F582: 90 64
0006F583: 90 A1
0006F584: 90 00
0006F585: 90 00
0006F586: 90 00
0006F587: 90 00
0006F588: 90 E9
0006F589: 90 F8
0006F58A: 90 FA
0006F58B: 90 FF
0006F58C: 90 FF

[Исправлено: Dimonija : 09-06-2004 12:11]
Теперь о том, как его использовать. Скопируйте патч в текстовый файлик d3d9.crk. Найдите в интернете утилитку crk2com и запустите ее со следующими параметрами: crk2com d3d9.crk d3d9.com
В результате получите файл d3d9.com. В директорию тестируемой проги скопируйте d3d9.dll из windows\system32 и полученный d3d9.com. Запустите d3d9.com — он пропатчит d3d9.dll. Теперь можно запускать вашу прогу.
Данный патч не дает 100% форсирования ZBuffer — т.к. существуют еще другие функции которые надо бы переписать подобным образом, такие как CreateDepthStencilSurface(), IDirect3DDevice9::Reset() и др.

По адресу 0006F549: находится байт 4B (75 в десятичной) он и выставляет значение ZBuffer-а. Если надо будет подставить другое значение буффера воспользуйтесь этой таблицей (из MSDN):

D3DFMT_D16_LOCKABLE 70 16-bit z-buffer bit depth.
D3DFMT_D32 71 32-bit z-buffer bit depth.
D3DFMT_D15S1 73 16-bit z-buffer bit depth where 15 bits are reserved for the depth channel and 1 bit is reserved for the stencil channel.
D3DFMT_D24S8 75 32-bit z-buffer bit depth using 24 bits for the depth channel and 8 bits for the stencil channel.
D3DFMT_D24X8 77 32-bit z-buffer bit depth using 24 bits for the depth channel.
D3DFMT_D24X4S4 79 32-bit z-buffer bit depth using 24 bits for the depth channel and 4 bits for the stencil channel.
D3DFMT_D32F_LOCKABLE 82 A lockable format where the depth value is represented as a standard Institute of Electrical and Electronics Engineers (IEEE) floating-point number.
D3DFMT_D24FS8 83 A non-lockable format that contains 24 bits of depth (in a 24-bit floating point format — 20e4) and 8 bits of stencil.
D3DFMT_D16 80 16-bit z-buffer bit depth.
D3DFMT_VERTEXDATA 100 Describes a vertex buffer surface.
D3DFMT_INDEX16 101 16-bit index buffer bit depth.
D3DFMT_INDEX32 102 32-bit index buffer bit depth.
Dimonija, спасибо за детальное описание, поздравляю с удачным приобретением...

Но при работе с утилитой crk2com запрашивается: "enter cracker name " — что делать?
ZOOOM
У меня тоже в тестах 2003 во 2, 3, и тролях кубики, но в Форкрай этих кубиков нет и все чисто работает до тех пор пока я не ставлю Анизотропик на Максимум, тогда появляются кубики на текстурах, а как подхожу ближе к текстуре видны уже не кубики, а грань этих текстур (белые точки по краям)
Snip,
шахматы у тебя точно есть — просто их сразу не увидешь. Как это можно проверить: некоторые (прочитал где-то на этом сайте) советуют инвертировать цвета (сделать скриншот и сделать его негатив). Я же проверяю шахматы в Far cry в воде отрисовка дальних объктов осуществляеться с использованием зю-буфера, — шахматы очевидны.

Шахматная проблема у всех решается по своему, после долгих эксперементов со своехей карточкой пришел к выводу что у меня проблемы с шаблонами (stensils) в режиме 24+8 z-buffer и в режиме 16 бит (вот только не знаю есть там шаблоны или их там нет).

тестируй на наличие шахмат в разных приложениях — если найдешь что-то общее — отключай (если сможешь).
Новая тема    Ответить  [ Сообщений: 52 ]  На страницу 1, 2  След.


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Удалить cookies конференции

Пишите нам | Radeon.ru