Оптимизация ядерной графики

Kernel-side graphics support

POLL Ваше мнение об оптимизации GUI ядра

Total votes: 68
Оставить как было
24%
16
Убрать только CGA и VGA, оставить VESA1.2
7%
5
Оставить только VESA2-режимы (без изменения)
10%
7
Разделить 24 и 32bpp графику в условно-компилируемые блоки
26%
18
Оставить в ядре единственный 32bpp-режим
32%
22

  • art_zh
    Фигасе, а как же редактор, отладчик, файлменеджер - их что, в единый десктоп воткнуть?
    А тебе надо на рабочей системе одним глазом смотреть лопасть, а другим "Игру престолов" ? :D
    Есть простое решение проблемы.
    Делаешь рабочее приложение с окном на весь экран. Это приложение пишет в видеопамять напрямую в user mode через [LFB_BASE+адрес_пикселя]. И если пофиксить курсорный код, чтобы всегда дефолтный курсор выбирался, карта окон очень быстро будет вытеснена из кеша.
    А для отладки обычное ядро.
  • Serge wrote:А тебе надо на рабочей системе одним глазом смотреть лопасть, а другим "Игру престолов" ? :D
    Я клепаю Колибри не ради высоких хакерских идеалов.
    Но и не как товар для продажи.

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

    Да, эти окошки мне надо "одним глазом" видеть во время работы основной программы.
  • art_zh wrote:Да, эти окошки мне надо "одним глазом" видеть во время работы основной программы.
    Тебе нужно что то вроде:
    http://ru.wikipedia.org/wiki/Awesome
    http://ru.wikipedia.org/wiki/Xmonad
    http://www.pvsm.ru/linux/13637
    Spoiler:Image
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • art_zh
    Я думал речь идёт о конечном решении - железо + ядро + рабочая программа.
    Всё равно самая жрущая часть - вывод видео. Прямой доступ к видеопамяти открыт давно. Даже с обычным ядром будет неплохая экономия кеша. Главное, чтобы разрешение экрана позволяло разместить все окошки.
  • HW курсор запустился с пол-оборота.
    Теперь морока - почистить мышиный код в ядре.
  • art_zh
    Это через драйвер, или прямо железо программировал ?
  • Serge
    Через драйвер некошерно. А напрямую - 40 строчек кода
    Spoiler:
    DSC_0020.jpg
    DSC_0020.jpg (172.96 KiB)
    Viewed 6497 times
  • art_zh
    Так не честно, у тебя локальной видеопамяти нет, и GART настраивать не надо.
    Странно, во всех доках написано, что размер курсора 64х64.
  • Serge
    Что значит "нечестно"?!
    - Мне был нужен HW-курсор - он у меня есть
    - Возможно, когда-нибудь понадобится режим A2R10G10B10 - я его уже пробовал, но под него надо много всего перепиливать (весь экран в жутковатых сиренево-зеленых тонах).

    Блиттер пока не нужен. Но когда потребуется, настроить железо опять-таки будет проще напрямую, а не через монстра ATIKMS.

    Реально требуемый размер курсора - 64 х Ysize.
    Возможно, GPU взаправду грузит все 64х64, но нафига лишнюю память марать - все равно ведь хвост потом отвалится.
    Первая строчка должна быть выровнена по 4К-границе, каждая следующая - по 256.

    PS. Кстати, а что такое HW_ICON и какой в ней смысл?
  • Что значит "нечестно"?
    40 строчек нечестно. Должно быть два мегабайта с микрокодом и управление питанием и обязательно обработчики событий ACPI. А 40 строчек это читерство. :D

    HW_ICON таки аппаратная иконка, чтобы её можно было таскать мышкой по рабочему столу в Windows . Фактически тот же курсор (маленький оверлей). Я думал в R600+ их выпилили. С её помощью можно сделать второй аппаратный курсор для второй мыши.

    С курсором всё правильно, это я попутал. 64*64 ARGB как раз 4Кб, а размеры устанавливают область отсечения курсора. hot spot в этом тоже участвует каким-то хитрым образом у разных поколений. Проще всего с этим у интела. Кстати есть alpha blending курсора, только надо биты правильные установить в одном из регистров.
  • Serge wrote:
    Что значит "нечестно"?
    40 строчек нечестно. Должно быть два мегабайта с микрокодом и управление питанием и обязательно обработчики событий ACPI. А 40 строчек это читерство. :D
    .
    Spoiler:Строить собачью будку из железобетонных блоков вот это читерство, а вырубать зубилом маленькую нишу в скале совсем не читерство. И да это тоже типо шутка. :mrgreen:
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • art_zh
    Кстати ты контроллер памяти GPU не настраиваешь ? У него своё адресное пространство.
  • Serge
    Нет, там все автоматически настраивает AtomBIOS при установке графического режима, он же возвращает в ядро адрес фреймбуфера.
    Вообще, AMD в описании Fusion вер.14h убрала регистровую модель GPU (я эти адреса выдрал из твоего драйвера), а для новых SoC-систем (16-я версия) вовсе нет никакой графической инфы, даже по NDA.
    С курсором всё правильно, это я попутал. 64*64 ARGB как раз 4Кб, а размеры устанавливают область отсечения курсора.
    64*64*4 = таки 16К, надо маппить 3 лишних страницы.

    Mario
    имхо не ниша - палатка, прикрученная к склону скальными крючьями.
  • art_zh wrote:а для новых SoC-систем (16-я версия) вовсе нет никакой графической инфы, даже по NDA.
    Что они этим добьются? Сверхприбыли??? Тщеславие фирменной засекреченности?
    Отсутствие инфы у конкурентов (каких???), которых "завтра" обгонят и перегонят...?
    Н Е П О Н И М А Ю !
    art_zh wrote:Marioимхо не ниша - палатка, прикрученная к склону скальными крючьями.
    +1 :wink: экстрим, однако
  • Who is online

    Users browsing this forum: No registered users and 4 guests