Page 3 of 10

Posted: Fri Jan 27, 2006 8:12 pm
by EXIS
mike у меня появился Radeon 8500 копирую твой драйвер в Колибри 0.5.2.0 но он "неправильно" работает
Виден только черный экран и курсор мыши на экране... Может нужна старая версия ядра? Какая?

Posted: Fri Jan 27, 2006 10:23 pm
by mike.dld
С момента последнего выпуска ATI драйвера изменялся набор интерфейсных графических функций, так что нужно изменять ядро. В любом случае, я не гарантирую, что в каком-либо из старых дистрибов или даже в Колибри набор такой, какой нужен. В любом случае, даже при добавлении этих функций в таблицу придётся изменять ядро. Так что, подожди немного, я не хочу дорабатывать драйвер в преддверии больших изменений ядра (а точнее, разработки и внедрения драйверной модели). Однако, как я обещал Андрею и Марату, некоторые элементы нового видеодрайвера будут внедрены на этих выходных; предварительный список: возможность загрузки при всех реально доступных разрешениях (но только для 24- и 32-битных режимов), изменение функционирования минимизации/максимизации/свёртывания окон, системная функция установки рабочей области экрана (в основном для @panel). Возможно, но не факт, будет добавлена кнопка максимизации/рестора размеров окна плюс соответствующая системная функция, а также внедрён новый формат скинов. Естественно, никто не исключает форс-мажорных обстоятельств, но я очень постараюсь реализовать заявленное. Тем более что обещаниями сыты все.

Posted: Tue Aug 15, 2006 1:15 am
by mike.dld
Залил сегодня gfx_kernel на SVN: svn://kolibrios.org/kernel/branches/gfx_kernel

Проблемы на данный момент:
  1. не поддерживаются окна с произвольной формой; хочется отойти от текущих функций, и задавать регион набором прямоугольников
  2. остаются следы под курсором мыши (видимо, он невовремя прячется, или показывается); заметно при перемещении окон
  3. не рисуются произвольные линии (только вертикальные и горизонтальные)
  4. vmode, основанный на VESA, находится не в ядре, а в драйвере; должен быть внедрён в ядро, с удалением vesa20.inc и подобных, а драйвер оставить для их переопределения функциями для специфических видеокарт (например, функциями, использующими хардварные возможности видеокарт)
  5. не нажимаются кнопки, если окно имеет отрицательные координаты по X или Y (легко исправляется)
  6. курсор рисуется через putpixel, нужно через putimage, или ещё как-то, чтобы уменьшить его мерцание
  7. некоторые проблемы с (calculate/set)screen; нужно определиться, где нужен их вызов, а где нет. плюс, формировать прямоугольники для клиппинга только для заданной области (сейчас каждый раз формируются для всего экрана); calculatescreen приравнен к setscreen, что также свидетельствует о необходимости переосмысления вызовов этих функций в ядре
  8. некоторые баги в boot(code/vesa).inc - нужно перерисовывать фон под таблицей режимов, добавить индикатор скролла, рисовать столько режимов сколько есть (то есть рисовать 2, если их 2, при том, что в таблицу влазит по высоте 4), сохранять выбранный режим, изначально устанавливать курсор на доступный режим (чтобы не попадало на недоступный), добавлять 2 стандартных режима в список при его формировании (320x200x8 и 640x480x4)
  9. в образе должен быть файл arrow.cur - 32-битный курсор размера 32х32
  10. <... что-то ещё ...>
Все желающие приглашаются для помощи в разработке и оптимизации (работы и там и там хватает). Естественно, работа должна быть согласована. Сам драйвер находится в [...]/gfx_kernel/vmode

Posted: Tue Aug 15, 2006 11:11 am
by Serge
Русская версия не компилируется
bootvesa.inc
mov [es:s_vesa.ver-0x10000], ah
undefined symbol
английская загружает дискету и сразу уходит в перезагрузку.
пары cli/sti лучше заменить на безопасные pushf cli / popf иначе будут разрешаться ранее маскированные прерывания. Такая была раньше при вызове boot_log

Posted: Tue Aug 15, 2006 11:16 am
by mike.dld
Да, русская версия не ассемблируется - строки не педелеланы.
Про английскую интереснее. Какая-нибудь дополнительная информация?

Posted: Tue Aug 15, 2006 12:18 pm
by andrew_programmer
mike.dld

Насколько я понял 4-ый пункт,ты хочеш сделать подгружаемый драйвер видеокарты.
Я согласен на 100%,что драйверы должны быть подгружаемыми(даже драйверы VESA).


P.S.

Я так понимаю,что gfx ядро это более усовершенствованное(в плане графических возможностей) ядро Колибри/Меос графические возможности которого ,после доведения до задуманного, будут перенесены в ядро Колибри.

Posted: Tue Aug 15, 2006 12:26 pm
by mike.dld
Вот не знаю. Я хочу текущий драйвер веса, который в vmode.mdr находится, перенести в ядро, а vmode.mdr использовать для изготовления специфических драйверов. Иначе, текущая реализация VESA в ядре несовместима с моим подходом, и будут проблемы.
Кто не в курсе, при загрузке ядро загружает файл vmode.mdr, и вызывает из него функцию инициализации видеодрайвера; если таковой нет - ничего не произойдёт, и будут использоваться втроенные функции.

//на PS: да, так и есть

Кстати, ты не сообщил свой результат... загружается? работает?

Posted: Tue Aug 15, 2006 2:43 pm
by andrew_programmer
mike.dld

Теперь понял.Ты хочеш переопределить vmode.mdr для использования возможностей аппаратного ускорения видеокарт,а не для инициализации видеодрайвера.

А вот скачать gfx ядро я,к сожалению,не могу.У меня нет программы для работы с svn.И скачать её не могу( gprs связь неустойчивая).
Если есть возможность,то выложи пожалуйста в разделе "скачать" на сайте rolibrios.org или ещё где-нибудь.

Posted: Tue Aug 15, 2006 3:20 pm
by Heavyiron
andrew_programmer and all, ядро и все необходимое можно взять здесь: ссылка устарела
Все три файла нужно поместить в образ!

Posted: Tue Aug 15, 2006 3:31 pm
by nn2
Прежде чем говорить что ссылка битая, вставьте `r` после `b`

Короче: http://heavyiron.kolibrios.org/gfx_kernel.7z

Posted: Tue Aug 15, 2006 8:54 pm
by andrew_programmer
У меня gfx ядро нормально грузиться.Просто нужно до загрузки выбрать пункт a) ,а в нем какой-нибудь из поддерживаемых графических режимов.

В 16 битном режиме FPS выдаваемые 7-ой функцией значительно выше.Это очень пригодилось бы для слабых компьютеров( типа Pentium90,Pentium100) .

Вот если бы еще доделать 8 битные ренимы,то было бы совсем хорошо.Ведь иногда необходимо работать при высоком разрешении и качество графики неважно(к примеру если необходимоо строить графики функций и работать с ними).

Posted: Tue Aug 15, 2006 9:22 pm
by mike.dld
andrew_programmer
В таблице отображаются все доступные режимы, и со всеми битовыми режимами ядро умеет работать: 4 (пока что только для VGA) и 8, 15, 16, 24, 32 (для VESA).

Serge
Понял с помощью других людей, в чём у тебя была проблема. Наиболее вероятно, что ты не скопировал *все* нужные файлы в образ (потому что я их не перечислил). Как правильно заметил Heavyiron, файлов должно быть три: kernel.mnt (ядро), vmode.mdr (драйвер, собирается из папки ./vmode) и arrow.cur (32-битный курсор размером 32х32).

Posted: Tue Aug 15, 2006 11:47 pm
by Serge
mike.dld
У меня загрузилось с файлами которые выложил Heavyiron. Но система работает нестабильно. Не запускаются программы из меню. Не запускаются многие демки. Когда меню закрывается часть содержимого остается на экране и т.д

Posted: Wed Aug 16, 2006 1:02 am
by andrew_programmer
mike.dld

Я незнаю,может та версия которая выложена для скачивания не поддерживает 4 и 8 бит на пиксель.У меня работают только режимы 16 и 32 битные (они помечены в таблице галочками).А вот режимы 4 и 8 бит отказываются работать - при попытке загрузить ядро выдаётся сообщение "bits ??".
Я точно знаю,что моя видеокарта поддерживает 4-х и 8-ми битные режимы(я сам лично с ними работал).

Posted: Wed Aug 16, 2006 10:46 am
by mike.dld
Serge
Смотри пункт 5. Из-за этого же (отрицательные координаты не везде введены) не перерисовывается фон под меню (система думает, что там и не было окна, => событие о перерисовке не посылается). Так что твои выводы по поводу "нестабильно" очень скоропалительные. "Нестабильно" - это если бы система перезагружалась или подвисала каждые 2 минуты.

andrew_programmer
В таблице галочками помечены только те режимы, список которых был получен через интерфейс VESA. Принудительный выбор режима, на котором не стоит галочки не имеет никакого смысла, и более того - будет невозможен в финальной версии ядра, так как номер этого режима неизвестен, и следовательно его невозможно установить.