gosha 0 23 марта, 2009 Опубликовано 23 марта, 2009 · Жалоба 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-серверу и что в этих ф-ях должен делать. Пропадаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Vladimir_ 0 23 марта, 2009 Опубликовано 23 марта, 2009 · Жалоба 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). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться