Page 7 of 8

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Thu Mar 15, 2012 7:50 pm
by Mario
SVN r. 2468 исправление связанное с r.2430 (и соответственно более новыми). Теперь за один оборот планировщика можно прибить только 1 поток. В противном случае приложение крешится при попытке дважды убить один и тот же поток. Хорошо заметно на ICON при нажатии "Применить" - вызывается процедура убиения всех ICON кроме себя любимого. Случайным образом выпадает вторая попытка убить поток, поскольку ядро еще не успело его грохнуть.

Решение не идеальное, если кто может сделать лучше - делайте.
Меня уже этот эффект домино если честно достал - уже какая исправляющая ревизия. :?

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Mon Mar 19, 2012 2:52 pm
by Mario
SVN r. 2472 - исправление для r. 2430 (некорректная работа со стеком)
SVN r. 2477 - исправление для r. 2446 (неправильно отображение градиентной заливки)

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 12:02 am
by Mario
SVN r. 2480 - исправление для r. 2446. Для Qemu и нестандартных видеокарт. К сожалению [BytesPerScanLine] не всегда равно [_display.width]*[ScreenBPP]/8

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 7:34 pm
by hidnplayr
Problems with virtualbox 4.1.10r76836
KolibriOS hangs shortly after the blue screen. When the black screen appears, a part of the first letter gets drawn (see screenshot)
r2479 works ok, later versions show this bug.

I tried modes 1024*768*24 bpp and 800*600*32bpp

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 8:35 pm
by Mario
hidnplayr
It may be worth it to upgrade to the latest version of VirtualBox?
I really did not discover the problem on VirtualBox 4.1.8.

To All
У кого-нибудь еще есть проблема с VirtualBox?

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 9:54 pm
by hidnplayr
This is the latest version of virtualbox. But maybe it has nothing to do with virtualbox at all... ?

The problem only occurs when i set ram to 64 Mb, i tried 512 now and all works!

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 10:01 pm
by SoUrcerer
Aha, then try to downgrade from 4.1.10 to 4.1.9 :D May be it's bug in VirtualBox?

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 10:29 pm
by Mario
hidnplayr wrote:This is the latest version of virtualbox. But maybe it has nothing to do with virtualbox at all... ?

The problem only occurs when i set ram to 64 Mb, i tried 512 now and all works!
Oh, sorry - I was not attentive. :?

I suspect that the new version of VirtualBox spoils the memory. I used to store data replaced the multiplication by [BytesPerScanLine]

I have added here's the procedure before to r. 2480
Spoiler:

Code: Select all

align 4
calculate_fast_getting_offset_for_WinMapAddress:
; calculate data area for fast getting offset to _WinMapAddress
        xor     eax, eax
        mov     ecx, [_display.height]
        inc     ecx
        mov     edi, d_width_calc_area
        cld
@@:
        stosd
        add     eax, [_display.width]
        dec     ecx
        jnz     @r
        ret
I added this procedure in the r. 2480
Spoiler:

Code: Select all

align 4
calculate_fast_getting_offset_for_LFB:
; calculate data area for fast getting offset to LFB
        xor     eax, eax
        mov     ecx, [_display.height]
        inc     ecx
        mov     edi, BPSLine_calc_area
        cld
@@:
        stosd
        add     eax, [BytesPerScanLine]
        dec     ecx
        jnz     @r
        ret
All the difference is only in the address for storing data:
d_width_calc_area equ (OS_BASE+0x0005000)
BPSLine_calc_area equ (OS_BASE+0x0339000)

I can try to replace:

Code: Select all

dec ecx
to the

Code: Select all

dec ecx
cmp ecx,0
I need to repeat this mistake to any case to find out for sure.

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 10:34 pm
by some_man
запускал на Virtualbox 4.1.8 r75467
пробовал режимы 1024*768*24 и 800*600*32 - оба работают :)
ОС Колибри брал тут http://builds.kolibrios.org/new-stack/svn2479-img.7z
в Virtualbox ставил параметры: видеопамять - 32 МБ; оперативка - 128 МБ
попробовал и при оперативке 64 Мб: первый раз повисла, второй раз завилась и работала.. :D

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 10:44 pm
by Mario
some_man wrote:ОС Колибри брал тут http://builds.kolibrios.org/new-stack/svn2479-img.7z
Какое отношение бранч нового сетевого стека имеет к изменениям в основной ветке ядра?

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 10:49 pm
by some_man
Извиняюсь... Не ту ночную сборку запустил... :mrgreen:

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 10:50 pm
by hidnplayr
I tried #2483 on vmware with 64 Mbyte RAM and same happens as in virtual box.

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 10:57 pm
by Mario
Damn! In Qemu error is present too.
I used the 128 Mb of RAM and no error was shown. When Qemu using 64 Mb error happens.

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 11:00 pm
by some_man
R2483 на Virtualbox:
при оперативке 64 Мб - не заводится,
при оперативке 128 Мб - заводтся!

Re: Shadow buffer - моргающий курсор или так жить нельзя...

Posted: Tue Mar 20, 2012 11:01 pm
by Mario
Спасибо. Больше тестировать эту ошибку не нужно. Я отловил ее в Qemu.