Page 5 of 23

Re: Колибри 0.7.5.0

Posted: Sun Feb 08, 2009 10:59 pm
by Serge
Атауальпа

Значит координаты курсора были расчитаны для первоначального разрешения.

Re: Колибри 0.7.5.0

Posted: Tue Feb 10, 2009 4:18 pm
by Анатоль
Доброе время суток товарищи знатоки!
Вопрос от телезрителей - можно ли добавить в меню загрузки больше режимов для VESA1.2?
А то на экране 640х480х16 не то чтобы эстетического кайфа не словить, а и работать нельзя! :)
У меня видео "Цироз логики" с 1 метром мозгов на борту.
Заранее благодарен.

Re: Колибри 0.7.5.0

Posted: Tue Feb 10, 2009 4:27 pm
by <Lrz>
Рекомендую достать видео с поддержкой VESA 2.0 или более. и Озу желательно больше чем 1 мб ).

Re: Колибри 0.7.5.0

Posted: Tue Feb 10, 2009 4:36 pm
by Mario
Анатоль
Видеокарты с поддержкой Vesa 1.2 требуют процедуру переключения банков памяти, поскольку они не подерживают LFB. Процедуры переключения банков у каждой карточки зачастую индивидуальны, даже у одной фирмы и даже вроде похожих видеокарт отличающихся одной цифрой. Методики автодетктирования нету. Документации нету. Да даже если бы и была то проверять не на чем, ввиду огранченности парка компьютеров доступных одному конкретному разработчику. Люди которым требуется эта поддержка обычно закидывают свое желание на форум и благополчно сваливают больше не появляясь. Поскольку парк таких машин ограничен и с каждым годом он сокращается, то тратить время на их поддержку не самое приоритетное направление при малом количестве разработчиков в проекте.

Re: Колибри 0.7.5.0

Posted: Tue Feb 10, 2009 6:08 pm
by Анатоль
Все понимаю, но есть ноутбук с которым я проковырялся бог знает сколько чтобы его запустить, и карточка там "вставленная", плюс к тому я не могу ставить другие Оси на рабочую машину, если что, то прийдется сидеть потом без хлеба! ;)
А этот ноут я и взял для опытов с вашей ОСью, вот только незадача с видеорежимами! :(
Может подскажите где в сырцах ядра поковыряться для прикручивания других режимов?

Re: Колибри 0.7.5.0

Posted: Tue Feb 10, 2009 7:47 pm
by Galkov
У телезрителей с другого фланга тоже вопрос есть :)
Скажите, а 1280x800x32bpp - формату VESA-2.0 не соответствует :?:
((вообще-то, про себя оно говорит, что VESA-3.0))

Re: Колибри 0.7.5.0

Posted: Tue Feb 10, 2009 8:29 pm
by Maxis
Galkov
В Vesa 3.0 тоже должно быть LFB.
На ноутбуке моего брата стоит Geforce 9300GS(с собственной видео памятью) с поддержкой Vesa 3.0. Колибри именно так её определяет и без проблем работает с разрешением 1440*900*32.

Re: Колибри 0.7.5.0

Posted: Tue Feb 10, 2009 9:11 pm
by Galkov
Думаю, что Kolibri не опредяляет VESA-3.0, а просто копирует текст
А вот когда перечисляет найденные режимы, то предоставляет выбор 2.0 и 1.2 вроде бы...

У меня это примерно так :(
Galkov wrote:С видюхой тоже проблемы: квадраты прямоугольные, и круги не по циркулю
Kolibri читает интерфейс как VESA 3.0 и видит только режимы 640x480, 800x600, 1024x768
А есть еще 1280x600, 1280x720, 1280x768, 1280x800 - этот штатный в винде, в нем круги - действительно круглые
Про карту...
Если смотреть на ярлык, то это: WXGA-14"
Если на драйверы в винде, то: Mobile Intel(R) 965 Express ChipSet Family
В подробностях этого драйвера: Строка контроллера - Mobile Intel(R) GMA X3100
Ну и 256М видеоозу (что характерно - свои, от общей памяти ничего не отрезано)
На эмуле красивше все (видюха stretch делает, резкость уже не та получается, конечно) :)

Re: Колибри 0.7.5.0

Posted: Tue Feb 10, 2009 9:18 pm
by Serge
Galkov

На i965 отличная документация http://www.intellinuxgraphics.org. Так что желающие могут сделать себе и курсоры и видеорежимы и 3D.

Re: Колибри 0.7.5.0

Posted: Tue Feb 10, 2009 9:41 pm
by Galkov
Serge, спасибо конечно :)
Но это не самый мой больной вопрос: профессионально меня это не напрягает, помните наверное
Просто небольшая домашняя заморочечка
А в качестве "работы по-выходным", моя сверх-задача (многолетняя) - сделать компилятор (язык программирования) который кодит лучше человека... Ну скажем, чтобы diamond (к примеру) забросил АСМ в виду низкой эффективности конкуренции с ним в искусстве кодинга.

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

А посему, просто пытаюсь проконсультироваться, мой режим вываливается из всех стандартов и нужны персональные дрова, или просто не все стандарты мы освоили ???
Когда понимаешь причины, вроде как и беда меньше кажется :D

Re: Колибри 0.7.5.0

Posted: Wed Feb 11, 2009 9:42 am
by Mario
Galkov
А посему, просто пытаюсь проконсультироваться, мой режим вываливается из всех стандартов и нужны персональные дрова, или просто не все стандарты мы освоили ???
Есть стандартные Vesa 2 режимы 640*480*24 или 32, 800*600*24 или 32, 1024*768*24 или 32, 1280*1024*24 или 32. Это поддерживается при условии что видюха и монитор обеспечивают эти режимы.
Все остальное может поддерживаться, а может не поддерживаться.

Re: Колибри 0.7.5.0

Posted: Wed Feb 11, 2009 10:01 am
by mike.dld
Подтверждая слова Марата, это дело производителя видеокарты - реализовывать или нет нестандартные разрешения. Мне кажется вполне логичным с их стороны добавлять нестандартные, но в то же время родные для матрицы ноутбука разрешения (речь о настольных компьютерах не идёт, там заранее неизвестно, какой будет монитор). У меня так же не было проблем с 1280x800, когда я тестировал gfx_kernel на своём лаптопе.

Насчёт определения версии VESA - она именно определяется из структуры, возвращаемой BIOS'ом (а не просто выводится строка). В gfx_kernel реализация (насколько я сейчас могу помнить) была такова, что в таблицу режимов попадали все доступные, при этом если находился режим с одинаковым разрешением и битностью для 1.2 и 2.0 - использовался 2.0. Для 1.2 было написано несколько подпрограмм переключения банков и небольшая подпрограмма определения подходящей в зависимости от видеокарты. Естественно, при этом никто не гарантировал, что на какой-нибудь видеокарте ни одна из подпрограмм не подойдёт и всё равно ничего не будет работать. Не знаю вот, как сделано сейчас, после переноса Lrz этой функциональности в trunk.

В vesa_probe (моей программе определения возможностей видео), которая легла в основу gfx_kernel, я в последней версии начал было добавлять чтение DCC и EDID, чтобы попытаться определить разрешения поддерживаемые не только видеокартой, но и самим монитором, что давало бы бОльшую свободу. Не доделал. А так, глядишь и фишки 3.0 использовал бы :)

Re: Колибри 0.7.5.0

Posted: Wed Feb 11, 2009 11:46 am
by Heavyiron
Кстати, у меня при загрузке на реальной машине видны видеорежимы, которые не поддерживаются, хотя Lrz это вроде правил. Чуть позже опишу подробнее.

Re: Колибри 0.7.5.0

Posted: Wed Feb 11, 2009 12:46 pm
by <Lrz>

Code: Select all

        test    [es:mi.ModeAttributes],00000001b   ;videomode support ?
        jz      @f
        test    [es:mi.ModeAttributes],00010000b   ;picture ?
        jz      @f
        test    [es:mi.ModeAttributes],10000000b   ;LFB ?
        jz      @f

        cmp     [es:mi.BitsPerPixel], 24	;It show only videomodes to have support 24 and 32 bpp
        jb      @f
Видеорежимы, которые имеют меньше чем 24 бит на пиксель не должны отображаться в blue screen. В коде приведена выборка видеорежимов, которые сооствествуют данному критерию.
Критерии проверки - поддерживается видео режим, графический режим, если ли LFB буфер, поддерживается ли 24 и более бит на пиксель.
Как получаем информацию о VESA режиме:

Code: Select all

print_vesa_info:
        _setcursor 5,2

        mov     [es:vi.VESASignature],'VBE2'
        mov     ax,0x4F00
        mov     di,vi      ;0xa000
        int     0x10
        or      ah,ah
        jz      @f
        mov     [es:vi.VESASignature],'VESA'
        mov     ax,$4F00
        mov     di,vi
        int     0x10
        or      ah,ah
        jnz     .exit
  @@:
        cmp     [es:vi.VESASignature],'VESA'
        jne     .exit
        cmp     [es:vi.VESAVersion],0x0100
        jb      .exit
        jmp     .vesaok2

  .exit:
        mov     si,novesa
        call    printplain
        ret

  .vesaok2:
        mov     ax,[es:vi.VESAVersion]
        add     ax,'00'

        mov     [s_vesa.ver], ah
        mov     [s_vesa.ver+2], al
        mov     si,s_vesa
        call    printplain

        _setcursor 4,2
        mov     si,word[es:vi.OemStringPtr]
        mov     di,si

        push    ds
        mov     ds,word[es:vi.OemStringPtr+2]
        call    printplain
        pop     ds

        ret
Код почти соответствует коду GFX_kernel

Re: Колибри 0.7.5.0

Posted: Wed Feb 11, 2009 12:50 pm
by Heavyiron
ясно, просто у меня еще можно выбрать:
1400×1050×32
1600×1200×32
1856×1392×32
1920×1440×32
Естественно, что ни один из них правильно не работает