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

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 6651 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 лет себе в жопу!