Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Hardware » Драйверы и прошивки BIOS » Универсальный видеодрайвер для Windows

Модерирует : Akam1, Dr_StandBy, vertex4

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7

Открыть новую тему     Написать ответ в эту тему

bearwindows



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
**** VESA 9x/NT Project ****
 
С 2004 года разрабатываю и поддерживаю универсальный видеодрайвер для семейства Windows (9x/NT3.x/NT4.0/2000/XP/2003) основанный на стандартах VESA Bios Extensions VBE 1.x/2.0/3.0.

 
http://bearwindows.zcm.com.au/
 
Для дальнейшего улучшения кода драйвера нобходимо тестирование его на разнообразных видеокартах. Особенно интересуют результаты тестирования карт с VESA BIOS 3.0, новых карт от AMD-ATI Technologies/nVidia и более редко встречающихся карт вроде VIA/SIS/Matrox и прочих, совместимость которых пока подтверждена не полностью.
 
P.S. Не гарантируется работоспособность этих драйверов в среде Microsoft Windows Vista/7/Server2008/8/Server2012/8.1/10 и далее.

Всего записей: 141 | Зарегистр. 23-05-2007 | Отправлено: 06:12 01-06-2007 | Исправлено: bearwindows, 22:38 16-06-2023
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
запутался я что-то
почему-то винда не хочет ставить pnp-версию в автоматическом режиме - пишет что типа используется по-умолчанию драйвер , который достался от старой версии . Все режимы заблокированы. А vbenull работает.
 
вот мой edid.
было бы неплохо чтоб vbemp переключал его сразу в 1024х768х85х32

Всего записей: 4152 | Зарегистр. 22-11-2006 | Отправлено: 18:33 16-07-2007
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
результаты теста новой pre-pre-pre
 

Код:
vmctl --o
Seting 1024x768 32bit 170Hz
 

сколько должно быть знаеш
 
это до , а это после
 

Цитата:
честно говоря, не думал об этом... а это надо? (чтобы монитор пере-определялся)

это я к тому (проследи эту тему) , что пусть грузится как legacy , но продолжает работать
как pnp.
Т.е. попробуй зделать pnp-версию , которая будет грузится без помощи pnp-менеджера.
Да  , и с ключиком отключения (из Hardware Profiles)

Всего записей: 4152 | Зарегистр. 22-11-2006 | Отправлено: 23:00 16-07-2007
bearwindows



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
euheny

Цитата:
было бы неплохо чтоб vbemp переключал его сразу в 1024х768х85х32

так есть же ручная фильтрация...

Цитата:
почему-то винда не хочет ставить pnp-версию

может где-то остались ссылки на "старый" драйвер... хотя вопроса я всё равно не понял...

Цитата:
вот мой edid .

мне бы лучше на ЛОГ посмотреть... там все детали будет видно...
 

Всего записей: 141 | Зарегистр. 23-05-2007 | Отправлено: 00:31 17-07-2007
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
так есть же ручная фильтрация...

не тот случай , поскольку другим моникам убудет

Цитата:
может где-то остались ссылки на "старый" драйвер...

да нет - это видимо связано с тем , что при установке видеодрайвера требуется перезагрузка.Как бы это избежать.
Думаю суть в том , что винда делает монитор не активным. Т.е. режимы переключаются для невидимого активного монитора.
 
а лог здесь

Всего записей: 4152 | Зарегистр. 22-11-2006 | Отправлено: 04:27 17-07-2007
bearwindows



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в логе все штатно. но в edid монитора нет той структуры, к-рая обрабатывается драйвером (начинается с 00,00,00,fd) а если воспользоваться т.н. VESA-списком (сделан утилитой infovbe - http://www.navozhdeniye.narod.ru/infovbe.zip)

Код:
 
dpms timings:
720x400 @ 70 Hz (VGA 640x400, IBM)    640x480 @ 60 Hz (VGA)
640x480 @ 72 Hz (VESA)    640x480 @ 75 Hz (VESA)
800x600 @ 56 Hz (VESA)
800x600 @ 72 Hz (VESA)    800x600 @ 75 Hz (VESA)
832x624 @ 75 Hz (MAC)        1024x768 @ 87i Hz (VESA)
1024x768 @ 70 Hz (VESA)
1024x768 @ 75 Hz (VESA)    1280x1024 @ 75 Hz (VESA)
reserved timings: 0x0080
STD: 640 x 480, 85 Hz    ...
 

, то он может "врать" (например у меня для 640x480 максимум по этой таблице - 85гц (это когда драйвер монитора не стоит и в системе он видится как "Plug and Play monitor") а с установленным драйвером монитора - монитор тянет 640x480x120гц). именно поэтому рекомендую все-таки ставить драйвер монитора - он содержит информацию, зачастую отстутствующую в EDID.
пример:

Код:
 
[Version]
signature="$CHICAGO$"
Class=Monitor
ClassGuid={4D36E96E-E325-11CE-BFC1-08002BE10318}
...
 
...
[Device.AddReg]
HKR,"MODES\1280,1024",Mode1,,"30-70,50-160,+,+"
HKR,,ICMProfile,0,"device.icm"
...
 

максимум вообще 160 гц.

Цитата:
которая будет грузится без помощи pnp-менеджера.

я пока не раскопал до конца как PNP-менеджер декодирует edid.
в любом случае legacy версия НЕ БУДЕТ определять монитор в принципе (by design)
просто все неподдерживаемые режимы будут "выкинуты" (так же как и для NT4/NT3, не имеющих PNP manager-а вовсе).
 
если интересует подробная расшифровка edid вот Вам чудо-DOS-программка x-vesa.
ftp://ftp.elf.stuba.sk/pub/pc/utildiag/xvesa102.zip
 
от pnp-версии тоже бы хорошо на лог поглядеть.

Всего записей: 141 | Зарегистр. 23-05-2007 | Отправлено: 07:37 17-07-2007 | Исправлено: bearwindows, 11:38 17-07-2007
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
лог
 
только сейчас заметил , что монитор не определился корректно  
толку получается от pnp-версии почти никакого.
а edid я получил от оригинального драйвера
 
так всё-таки вопросик: VBEMP может создавать записи в реестре ?
 
я зацепился за edid только лиш потому что он должен быть у каждой модели свой.
т.е. я и хотел бы его использовать вместо inf-файла.
 

Всего записей: 4152 | Зарегистр. 22-11-2006 | Отправлено: 17:51 17-07-2007
bearwindows



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
euhenio

Цитата:
монитор не определился корректно

а ключик VBE_DDC в реестре ставили в 1 ?

Всего записей: 141 | Зарегистр. 23-05-2007 | Отправлено: 20:06 17-07-2007 | Исправлено: bearwindows, 18:59 03-08-2007
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
а ключик VBE_DDC в реестре ставили в 1 ?

пробовал - ничего не дало
 
по-поводу глюков , описанных выше (с pnp-версией)
делаем следующее:
1.ставим vbemp и перезагружаемся - убеждаемся , что всё работает.
2.удаляем из HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI соответствующий ид видюхи
3.вместо него добавляем вот это :

Код:
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\sys\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0300]
"Service"="VBEMP"
"ClassGUID"="{4D36E968-E325-11CE-BFC1-08002BE10318}"

4.перезагрузка и идём в сетинг моника
 
sys это system - для оффлайна
 

Цитата:
кстати вот она:

работает !
 
только нельзя-ли для VBE_RAWEDID выбрать более удобное место ?
 
 

Всего записей: 4152 | Зарегистр. 22-11-2006 | Отправлено: 04:14 18-07-2007 | Исправлено: euheny, 04:41 18-07-2007
bearwindows



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
более удобное место ?

умеет только в "свой" раздел:

Код:
Ветка : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Vbemp\Device0
или HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Vgasave\Device0 в legacy режиме
Ключ : VBE_EDID
Значение : (REG_BINARY)


Всего записей: 141 | Зарегистр. 23-05-2007 | Отправлено: 06:47 18-07-2007 | Исправлено: bearwindows, 18:59 03-08-2007
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
умеет только в !"свой" раздел.

ну хоть какое-нибудь другое место - без <bla-bla-bla> , на худой конец в файл какой
 
а можно-ли "Stand By" для legacy ?
 

Цитата:
делаем следующее:

так пробовал это ?

Всего записей: 4152 | Зарегистр. 22-11-2006 | Отправлено: 01:14 19-07-2007
bearwindows



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
так пробовал это ?

у меня и так все работает.

Цитата:
а можно-ли "Stand By" для legacy ?

PowerManagement пашет только для PNP-версий (только к PNP-драйверу Windows PNP-manger дает команды на standby/suspend/resume). Может Вам "упереться" и раскопать наконец почему нормальная PNP-версия не работает также корректно, как в WindowsXP/WinPE, а то бороться с внутренней организацией Windows как-то неохота (Драйвер ведь писался в строгом соответствии с документаций Microsoft). Тем более что PNP и PowerManagement давно и так замечательно отлажены. Помните что legacy-режим оставлен Microsoft ИСКЛЮЧИТЕЛЬНО для VGA.SYS и не-PNP карт  ( вроде ISA/MCA/EISA/VLB ) которые вообще практически не встречаются в природе.
 
Кстати обычные драйвера видеокарт ( вроде Intel/ATI(AMD)/nVidia ) РАБОТАЮТ ПОД MobileOS ?
А корень проблем с PNP-версией ( как я думаю )  лежит в отсутствии каких-то нужных ключей в реестре или файлов в составе MobileOS.

Всего записей: 141 | Зарегистр. 23-05-2007 | Отправлено: 07:52 19-07-2007 | Исправлено: bearwindows, 18:56 03-08-2007
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
у меня и так все работает.

да уж не сомневаюсь - но мне нужно чтобы работало именно так.
ведь универсальны драйвер (во всяком случае в моём понимании) - это тот который работает при смене железки(uniata).

Цитата:
Драйвер ведь писался в строгом соответствии с документаций Microsoft

вот как раз Vista и создаётся из этой идеологии (а ты думал откуда ?)

Цитата:
Кстати обычные драйвера видеокарт ( вроде Intel/ATI(AMD)/nVidia ) РАБОТАЮТ ПОД MobileOS ?

ну конечно же !

Цитата:
но мне нужна "на руки" сама MobileOS

она обычно собирается надеюсь достаточно хорошо описанными способами.
 
ещё лог - vbe3 не пашет.
 
 

Всего записей: 4152 | Зарегистр. 22-11-2006 | Отправлено: 01:49 20-07-2007
bearwindows



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 vbe3 не пашет.


Код:
 
[9758:64:1920.0008] VESA/VBE BIOS Present (2.00, 32768 Kb)
[9758:64:1920.0009] OEM String: (0x20000100) ATI RADEON III
[9758:64:1920.0009] OEM VendorName: (0x2000010F) ATI Technologies Inc.
[9758:64:1920.0009] OEM ProductName: (0x20000125) R100
[9758:64:1920.0009] OEM OemProductRev: (0x2000012A) 01.00
[9758:64:1920.0009] Found 56 mode(s)
 

Эта карта VBE3 не умеет в принципе (см. первую строчку).
А еще проблемы есть? В логе вроде всё штатно. рекомендутся все-таки ставить VBE_ALIGN=1.
 АТИ-шки не умеют VBE3, даже если это декларируется номером версии (пример -  Radeon X700 и выше).  
nVidia-карты BCЕ умеют VBE3 (кроме серий GeForce 5xxx/6xxx/7xxx....?).  
Intel-ы - BCЕ после 82810/82815-ых чипсетов.  
 

Всего записей: 141 | Зарегистр. 23-05-2007 | Отправлено: 07:37 20-07-2007 | Исправлено: bearwindows, 21:46 28-10-2007
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Эта карта VBE3 не умеет в принципе (см. первую строчку).

похоже VBE себя исжил...
 
производителя всего реально три и у каждого видимо свой механизм управления видеокартой. Не так уж и много - может такая модель драйвера была бы более универсальной.
 

Цитата:
А еще проблемы есть?

но ведь не возможно продолжать с морганием - скорее всего только это.
 

Цитата:
Автоматическая фильтрация (VBE_EDID=1) будет доведена до ума в ближайшие дни.  

надеюсь на лучшее ... , но мне не даёт покоя pnp-версия.

Всего записей: 4152 | Зарегистр. 22-11-2006 | Отправлено: 05:20 21-07-2007 | Исправлено: euheny, 05:35 21-07-2007
bearwindows



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
euhenio

Цитата:
похоже VBE себя исжил...

На заметку напомню: нередко попадаются и НОВЫЕ карты с глюками.
1) Карты на базе GeForce 5xxx / 6xxx (7xxx 8xxx ?) имея на борту VBE30 BIOS не умеют частоты выше 60Hz.
Читал, что это сделано как раз из-за широкого распространения LCD-моников. Я, кстати, как и вы до сих пор LCD-шки совсем не уважаю. :|
2) Карты на базе Intel 8xx / 9xx имея на борту VBE30 BIOS определяют размер буфера кадра 832кб (при реальных 1mb...8mb) не позволяя поставить даже 800x600x16bit (800x600x2=960000 > 832kb).
На материнских платах от Intel я правда такого ещё не встречал. Но ведь не только Intel делает платы на Intel-чипсетах. :|

Всего записей: 141 | Зарегистр. 23-05-2007 | Отправлено: 16:39 21-07-2007 | Исправлено: bearwindows, 23:55 22-07-2007
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
На заметку напомню: нередко попадаются и НОВЫЕ карты с глюками.

так я как раз о том же :
 
1.детектим карту
2.выбираем механизм управления
3....
 
1.механизм управления должен быть один и тот же для одного производителя
2.механизм управления получаем у производителя (надеюсь это не проблема)
 

Цитата:
Давно хотел спросить

сюда
 

Цитата:
вот очередная бета:

стало чуть лучше , а можеш с высокой вероятность определить тип моника ?
 
 
а что с продвинутой pnp-версией ?

Всего записей: 4152 | Зарегистр. 22-11-2006 | Отправлено: 03:18 22-07-2007 | Исправлено: euheny, 03:55 22-07-2007
bearwindows



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
а что с продвинутой pnp-версией ?

Попробуйте новую версию. дайте лог и укажите какие VBE_??? ключи в реестре использовались. в прошлый раз когда давали лог ключ VBE_DDC ЖЕЛЕЗНО не был установлен в 1 - это видно в логе:

Код:
 
Used command line:
DbgPrintLog.exe --run:user --nowait VBEMP.log  
----- End of Log header -----
[00:00:00.0015] VBEMP VESA/VBE USWC VBE30 driver build 15jul2007 (NT51/NT52).
[9758:64:1920.0005] .DriverEntry() called
[9758:64:1920.0005] .VideoPortInitialize().BusType(0x0F) init...
[9758:64:1920.0005] .VideoPortInitialize().BusType(0x0F): OK (0x0000)
[9758:64:1920.0002] .VBEFindAdapter(Bustype: 0x05, BusNo: 0x01) called
[9758:64:1920.0003]  Bus 01 Dev 00 Fun 00  03 - 10DE:0110 -> VGA Adapter
...
...
[9758:64:1920.0006] .VBEGetChildDescriptor() called, ChildIndex = 0x00000001, Size = 0x00000100
!!! если здесь пусто, значит VBE_DDC=0 или нет такого ключа в реестре.
[9758:64:1920.0006] .VBEGetChildDescriptor(): found a non-DDC monitor (0xFFFFFFFF)
[9758:64:1920.0007] .VBEGetChildDescriptor() called, ChildIndex = 0x00000002, Size = 0x00000100
 

Всего записей: 141 | Зарегистр. 23-05-2007 | Отправлено: 07:56 22-07-2007 | Исправлено: bearwindows, 07:35 23-07-2007
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
то есть LCD или CRT ?

ну точнее плоский (корпус) или CRT
 

Цитата:
Тем более есть разные ситуации...

ну я вобщем предложил только
 
чем плоха идея "умного управления" картой - в обход int10
snap варезный и мёртвый , оригинальные уж больно тяжелы и не универсальны
 
я вообще не понимаю как до сих пор существует такая огромная ниша в этой области
хотя конечно виновата идеология $MS$
 

Цитата:
Попробуйте новую версию...

Я не о DDC , а о том что pnpmgr не может установить VBEMP. Предположу , что виноват desk.cpl , который соглашается работать только при ручной установке. Я конечно помню , что vbemp-pnp это ручная версия , однако этого недостатка лишён vbemp-legacy
 
а можно-ли из edid вытащить блок модели , а то весь он великоват ?
 
установив ручной фильтр (85Hz) c последней версией наконец-то получил работающий   vmctl --o
 

Всего записей: 4152 | Зарегистр. 22-11-2006 | Отправлено: 21:38 22-07-2007
bearwindows



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. РУЧНАЯ фильтрация управляется ключом VBE_FILTER (REG_BINARY), примеры:

Код:
 
08,00,06,00,00,00,00,00 - выключает все 800x600 режимы
08,00,06,00,00,00,00,56 - выключает все 800x600 режимы с частотой выше 56гц
08,00,06,00,00,70,00,85 - выключает все 800x600 режимы с частотой выше 85гц и ниже 70гц
00,00,00,00,00,00,01,00 - выключает все режимы с частотой выше 100гц
 

строчек может быть ДО 32 штук не более.
Аналогичная система применена в драйверах от ATI(AMD) - ключ DALRestrictedModesBCD1
 
2. АВТОМАТИЧЕСКАЯ фильтрация управляется ключом VBE_EDID (REG_DWORD),  =1 или =0.
При включенном режиме ( VBE_EDID=1 ) в ключ VBE_RAWEDID пишется содержимое EDID.
"Разбор" EDID-блока ЗАВЕРШЕН.
 
3.  Оба режима фильтрации (VBE_DDC / VBE_EDID) можно использовать вместе.

Цитата:
... виноват desk.cpl

Забыл сказать, что для WinPE я использую ИСКЛЮЧИТЕЛЬНО desk.cpl от Windows2000. Может и Вам поможет?

Всего записей: 141 | Зарегистр. 23-05-2007 | Отправлено: 00:03 23-07-2007 | Исправлено: bearwindows, 23:09 26-12-2007
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
вот очередная бета

а изменения какие ?

Цитата:
desk.cpl от Windows2000.

попробую конечно , но это не выход

Цитата:
Это чё - под каждую карту свою отдельную механизьму писать. А как же принцип универсальности?

так это и есть принцип универсальности драйвера - под каждую железку умеет самостоятельно подстраиваться (опять упомяну uniata)

Цитата:
да и карты одного семейства в прямом программировании могут сильно отличаться между собой. я в этом убедился на примере карт от intel.

а я убедился что с этим нет проблем для x и y , ну конечно я предполагаю что значения , кот вносятся в реестр из inf не влияют на это дело и карта не слишком древняя.
 
это направление (направление для развития - если оно предполагается ) в любом случае единствеено правильное.
 
 
 

Всего записей: 4152 | Зарегистр. 22-11-2006 | Отправлено: 01:54 23-07-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7

Компьютерный форум Ru.Board » Hardware » Драйверы и прошивки BIOS » Универсальный видеодрайвер для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru