Page 6 of 6

Posted: Sat Oct 28, 2006 3:51 pm
by andrew_programmer
Проверял работу Колибри на Pentium166MMX с видеокартой S3ViRGE-DX/GX PCI(375/385).

Дистрибутив K6.0.0.0 нормально работал.
Заменил ядро из дистрибутива 6.0.0.0 на ядро ревизии 188.После этого напроч перестала работать VESA2.0 После загрузки с дискеты компьютер перезагружается.При загрузке с диска вместо текста,показывающего процесс загрузки, появляется какая-то размазня и загрузка останавливается.
Я попробовал загрузиться в режиме [0] (640х480х16).Система загрузилась,но COM мышь не работала.

Раньше на этом компе Колибри отлично работала.


Heavyiron

Раз толку от stackinf нет, значит нужно удалять.

Posted: Sat Oct 28, 2006 11:31 pm
by Heavyiron
Дождись следующего: недолго осталось ;) Просто 188 уже немного старовата...

Posted: Mon Oct 30, 2006 8:29 am
by Mario79
В текущих версиях ядра на SVN не работают режимы 0 и 9.
Просмотрев код обнаружил, что исчезла процедура enable_mtrr, она была между
; PALETTE FOR 320x200 and 640x480 16 col
и
; LOAD DEFAULT SKIN
Код удален полностью и произошло это между 160 и 166 ревизией.
160 - ревизия работает, 166 не работает.

Posted: Mon Oct 30, 2006 4:53 pm
by Serge
Проверил в Bochs, Qemu, VirtualPC и на железе ATI x1600 Vesa 3.0. Оба режима везде работают. Попробуй загрузить для проверки в эмуляторе.
enable_mtrr заменена на init_mtrr. Она вызывается после init_kernel_heap и init_LFB. Если проблема в ней попробуй загрузиться с отключенными mtrr.

Posted: Mon Oct 30, 2006 4:58 pm
by andrew_programmer
Тестировал ядро последней ревизии( 200 ).В 0 и 9 режимах грузиться,но графика ОЧЕНЬ сильно тормозит.В 13h режиме FPS в 3DCUBE равно 13.А в 9 режиме вообще толком работать нельзя - всё сильно тормозит.В K6.0.0.0 я в 9 режиме даже в Quake играл :) с fps~20.

Posted: Mon Oct 30, 2006 5:09 pm
by Serge
Раньше была функция checkEgaCga сейчас checkVga_N13. У меня этот код тоже сильно тормозит, плеер нормально работать не может. Вообще необходимость этих режимов довольна сомнительна.

Posted: Mon Oct 30, 2006 5:11 pm
by Mario79
andrew_programmer
В том то и дело - я переписал режим 640*480*16 и он почти догоняет Vesa режим по быстродействию (ну по крайней мере перестал так сильно отставать).

Serge
Хорошо попробую без mtrr. А кстати он вроде используется только для Vesa или нет?
enable_mtrr заменена на init_mtrr. Она вызывается после init_kernel_heap и init_LFB.
В режимах 0 и 9 линейный буфер остался на прежнем месте, после модернизаций Андрея Халявина. Может быть ты пропустил в коде проверку на видеорежим, в каком нибудь месте?

Posted: Mon Oct 30, 2006 5:18 pm
by andrew_programmer
>В том то и дело - я переписал режим 640*480*16 и он почти догоняет Vesa режим по быстродействию (ну по крайней мере перестал так сильно отставать).

Я это знаю,вот поэтому и тестировал его на fps-ы.

>Вообще необходимость этих режимов довольна сомнительна.

Возможно.Если бы были 8 и 16 битные режимы,то я бы их использовал.В них бы даже vesa1.2 быстрее работала.

Posted: Mon Oct 30, 2006 5:24 pm
by Mario79
Вообще необходимость этих режимов довольна сомнительна.
На некоторых старых видеокартах только они и запускаются, так как для Vesa 1.2 нужны индивидуальные процедуры переключения банков. Отказываться от дополнительной совместимости не стоит.
А после моего переписывания вывода в 640*480*16 скорость возрала даже на Cyrix233 очень заметно.
Так что надо исправлять ситуацию. До переписывания был вообще попикселный вывод - с жуткими тормозами.
Я повторюсь - ядро ревизии 160 прекрасно работает с этими режимами.

Posted: Mon Oct 30, 2006 5:41 pm
by Serge
Нашёл причину тормозов. Дело в mtrr и в виртуальном буфере в режимах 0 и 9. Кстати теперь он создается динамически в init_LFB. Пока в режимах 0 и 9 mtrr надо отключать. Вообще это хорошая демонстрация того, как влияет кеширование памяти на быстродействие.

Posted: Mon Oct 30, 2006 10:10 pm
by diamond
Heavyiron wrote: Поступило предложение удалить приложение stackinf: это всего-лишь описание, оформленное в виде программы. Тем более текстовый файл, на который она ссылается из дистрибутива давно удален...
Предложение не представляется возможным осуществить в связи с тем, что stackcfg уже удалён :-) Поскольку информацию, содержащуюся в нём, я счёл подмножеством stack.txt/stack_ru.txt. Который, кстати, не удален из дистрибутива, а, напротив, лежит в открытом виде в каталоге Docs, а также в упакованном на рамдиске в docpak.

Posted: Mon Oct 30, 2006 11:50 pm
by Heavyiron
stackconf удален? Наверное, ты имел в виду stackinf ;)

Posted: Tue Oct 31, 2006 10:30 am
by Mario79
Serge
При отключении mtrr режимы 0 и 9 действительно работают, но заметно снижение скорости.

Posted: Tue Oct 31, 2006 3:25 pm
by Serge
В системе MTRR управляют кешированием видеопамяти. Если их отключить то быстродействие снизится во всех режимах работающих с настоящим LFB. В последнем ядре (201) init_mtrr не вызывается для режимов 0 и 9.