Перейти к содержанию
    

Подскажите пож электронную документацию 2D ускорению vga карточек.

linux.

Xorg.

драйвер siliconmotion.so

Видеочип lynx3dm+.

Имеется исходные тексты xorg видеодрайвера для i86 архитектуры.

Имеется linux fbdev драйвер того же чипа.

Процессор в машине не intel & big endian.

 

Xorg при использовании linux fbdev драйвера работает ok.

 

Xorg при использовании xorg драйвера, xorg работает, но портит цвета (отсутсвует big <->little endian преобразование).

Исходные текты драйвера мало понятны вследствии отсутсвия знания, что должна делать та или иная ф-я.

Требуется скорректировать исх.тексты xorg драйвера.

Подск пож литературу, позволяющую понять, что должно происходить, например, в ф-ии "CPUToScreenColorExpandFill", "Mono8x8PatternFillRect" и пр.

 

Это в спецификации directx, opengl? Ткните пож. носом в учебник.

 

Т.е. мало понятны какие ф-ии 2D ускорения драйвер должен предоставлять xorg-серверу и что в этих ф-ях должен делать.

 

Пропадаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

linux.

Xorg.

драйвер siliconmotion.so

Видеочип lynx3dm+.

Имеется исходные тексты xorg видеодрайвера для i86 архитектуры.

Имеется linux fbdev драйвер того же чипа.

смотрите на

ftp://ftp.siliconmotion.com.tw

 

Процессор в машине не intel & big endian.

Xorg при использовании linux fbdev драйвера работает ok.

Xorg при использовании xorg драйвера, xorg работает, но портит цвета (отсутсвует big <->little endian преобразование).

В 16 bpp это может и не лечится для siliconmotion, в 501 например 16 bpp имеет вместо RGB перевернутый порядок с непоследовательным порядком зеленых бит, на bigendian машине, т. е. и byte swap не поможет.

Исходные текты драйвера мало понятны вследствии отсутсвия знания, что должна делать та или иная ф-я.

Требуется скорректировать исх.тексты xorg драйвера.

Подск пож литературу, позволяющую понять, что должно происходить, например, в ф-ии "CPUToScreenColorExpandFill", "Mono8x8PatternFillRect" и пр.

Это в спецификации directx, opengl? Ткните пож. носом в учебник.

Пропадаю.

 

Какая конечная цель, нужен драйвер?

В целом эти функции - трансляция от Х сервера к апаратуре, т. е. что собственно и есть драйвер.

Прямого описания Вы нигде не найдете. максимум полезного может быть только в руководстве по написанию видео драйвера под Х, я такого не встречал.

Вам придется все изучит по Х и делать реинженеринг драйвера, разбираться с описанием siliconmotion.

Первое - требует вагон времени, но много косвеной пользы. Второе, учитывая лаконичность (мягко говоря) док от siliconmotion ....

Самое ценое что увидел в siliconmotion Х драйвере - результат общения программистов драйвера (в свежих версиях) с разработчиками железа из siliconmotion.

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

Siliconmotion support не обеспечивает. И можно ожидать что чип имеет приличное количество багов не регистрированых, особенно если требуются функции выходящие за пределы "generic fb driver".

 

Т.е. мало понятны какие ф-ии 2D ускорения драйвер должен предоставлять xorg-серверу и что в этих ф-ях должен делать.

Пропадаю.

Как правило, те какие может обеспечить железо (или осилили разработчики драйвера). Не зная подробно сам Х драйвер, рискну заметить что чаще так.

Не обязательно все. Часто досточно основных - рисование линиии, прямоугольника (отдельно filled), иногда треугольника, главное - варианты bitblit.

И в ф-ии "CPUToScreenColorExpandFill", "Mono8x8PatternFillRect" (например), или выше/ниже по вызову, и видно как это обеспечивается, soft or hard ускорением.

Т. е. в общем, драйвер не " должен предоставлять" а могут быть реализованы в конкретном драйвере.

Не гарантирую 100% корректность, плохо знаком с Х.

 

Т.е. мало понятны какие ф-ии 2D ускорения драйвер должен предоставлять xorg-серверу и что в этих ф-ях должен делать.

С упрошением - рисование линии в 2D.

Записать в регистры чипа короординаты X1 Y1, записать в регистры чипа короординаты X2 Y2,

записать в стек 2D команд чипа саму команду, инициировать ее выполнение (если это надо).

Варианты для гор./вертик., как правило это отдельные команды.

В драйвере анализируются X1 Y1 X2 Y2 (относительное положение) и выполняется запись в регистры чипа как указано выше.

Ну если чип не имеет такой 2D команды - драйвер рисует линию в лоб, заполняя видео память пихелами.

Т. е. самому X серверу не обязательно знать что делал драйвер - 2D или программно (не прнимая во внимание shared).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...