Board.KolibriOS.org
https://board.kolibrios.org/

Shadow buffer - моргающий курсор или так жить нельзя...
https://board.kolibrios.org/viewtopic.php?f=36&t=2019
Page 2 of 8

Author:  Serge [ Wed Feb 29, 2012 3:25 am ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

Mario
Я всё тестировал несколько раз и в разный режимах. Картинка - это обычное тестирование, аналогичное твоему. Перекрытие окна позволяет оценить влияние скорости записи в видеопамять и очень познавательно. Толстый кеш нивелирует влияние shadowfb полностью. Если там и есть упор, то не в лишнюю запись в shadowfb, а в промахи ветвления. А если есть запись в видеопамять то всё упирается в неё. У меня это главный тормоз.

Author:  Mario [ Wed Feb 29, 2012 3:28 am ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

Dell Inspiron N7010 (Intel i5) видео от Intel

Стандартное ядро:
Spoiler: Show
Attachment:
1.png
1.png [ 4.9 KiB | Viewed 2090 times ]

Ядро с не моргающим указателем мыши:
Spoiler: Show
Attachment:
2.png
2.png [ 4.85 KiB | Viewed 2090 times ]

Шестеренки выдают 895 и 538 попугаев соответственно.

Author:  Serge [ Wed Feb 29, 2012 3:35 am ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

Mario
Сделай тесты с перекрытием окна, интересно сравнить запись в видеопамять.

Author:  Mario [ Wed Feb 29, 2012 3:42 am ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

С перекрытием сделал для Roverbook U800
Spoiler: Show
Attachment:
3.png
3.png [ 4.88 KiB | Viewed 2086 times ]

Относительно стандартного окна прирост ни нас только большой, что впрочем объяснимо - обе памяти LFB и SHDB суть есть одна и та же память.

Author:  Mario [ Wed Feb 29, 2012 3:49 am ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

Вот для Dell Inspiron N7010 (Intel i5) видео от Intel - есть некоторый прирост с перекрытием:
Spoiler: Show
Attachment:
3.png
3.png [ 4.47 KiB | Viewed 2086 times ]


З.Ы. Можно обратить внимание на дичайший прирост в рисовании вертикальных и свободных линий. Где то в какой то теме форума вы с Артемом уже натолкнулись на проседание видеопамяти при рисовании линий.

Author:  Serge [ Wed Feb 29, 2012 4:02 am ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

Всё же накосячил. Небольшая просадка есть, но небольшая. А с перекрытием окна новое ядро быстрее. Инфа 146% :D .
Spoiler: Show
Слева новое ядро. Во всех тестах Single Pixel быстрее.
Attachment:
MGB2.png
MGB2.png [ 6.27 KiB | Viewed 2085 times ]

Author:  Mario [ Wed Feb 29, 2012 4:06 am ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

Ты это... смотри там - торсионные поля не открой заново, с этими 146%. Нам еще нового путена всея РФии выбирать.

Я одного не пойму почему с перекрытием быстрее? Оно ведь и там и там к LFB и SBF не обращается - отсечка идет до. Как оно быстрее то становится? Единственно я куда не попадя понавтыкал Align 4 может это оно сказывается?

Author:  Serge [ Wed Feb 29, 2012 4:14 am ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

Mario
Не, на этот раз всё точно. Кстати, интересно проверить варианты- запись сначала в shadow а потом в видеопамять и наоборот. И ветвления посмотреть. На них можно сэкономить такты.

Author:  Mario [ Wed Feb 29, 2012 4:16 am ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

Хрен там, а не точно! Я сейчас проверил обычное ядро с перекрытием - результаты почти 1 в 1 на Dell. Ну, есть погрешность порядка пары процентов конечно. Ты не учел что при перекрытии в любом случае никуда ничего не записывается.

Author:  Serge [ Wed Feb 29, 2012 4:27 am ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

Mario
Не пишется, но у меня прирост несколько процентов по всем позициям кроме текста. Точно не погрешность. Если ты выравнивал циклы и ещё что-то менял, то объяснимо. Больше всего на PIcture. Если эти 16% процентов только за счет выравнивания циклов то скажу одно: "Вот вы три байта сэкономили, а Elpida разорилась !".
Spoiler: Show
Тесты с перекрытием. Слева новое ядро.
Attachment:
MGB3.png
MGB3.png [ 6.5 KiB | Viewed 2081 times ]

Author:  Mario [ Wed Feb 29, 2012 5:06 am ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

Я каждую метку перехода в Vesa20.inc выравнивал, а еще в коде отрисовки курсора. А то что прирост от выравнивания есть - это я давно уже тут же ан форуме прочитал. Помнится первым про это Иван Поддубный сказал. Можно в ядре много чего выравнять, не знаю только какой процент распухания коду это придаст.

Author:  Serge [ Wed Feb 29, 2012 5:48 am ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

Если цикл без ветвлений, очень хорошо на 16 байт. Даже минимальное выравнивание на 4 байта дает прирост.

Author:  Wildwest [ Wed Feb 29, 2012 1:40 pm ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

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

Author:  Mario [ Wed Feb 29, 2012 5:58 pm ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

Не в обиду, но в правду:
Quote:
Закон Х.Л. Менкена.
Кто умеет делать - делает. Кто не умеет - учит.

Дополнение Мартина.
Кто не может учить - управляет.


Читать пост, где я выложил ядро - почему часть показателе хуже! Потому что штраф для кэша процессора! Большой кэш - меньше штраф!

Author:  Wildwest [ Wed Feb 29, 2012 7:07 pm ]
Post subject:  Re: Shadow buffer - моргающий курсор или так жить нельзя...

свежий взгляд со стороны полезнее 3-х задрипанных цитат (с) Wildwest xD!

из того же сборника СЛЕДСТВИЕ ВЕЙНБЕРГА:
Квалифицированный специалист по ремонту лодок - это человек, который удачно избегает маленьких ошибок, неуклонно двигаясь к какому-нибудь глобальному заблуждению.

Без обид, так без обид.

Page 2 of 8 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/