Jump to content

    
Sign in to follow this  
gosha

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

Recommended Posts

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-серверу и что в этих ф-ях должен делать.

 

Пропадаю.

Share this post


Link to post
Share on other sites
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).

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this