Page 5 of 8

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

Posted: Thu Mar 08, 2012 10:15 pm
by Mario
SVN r. 2438
Еще увеличил скорость отрисовки текста, чисел, линий, точек.

Для сравнения с предыдущими результатами - текущие результаты MGB на Roverbook U800.
Spoiler:
3.png
3.png (5.54 KiB)
Viewed 6400 times

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

Posted: Fri Mar 09, 2012 12:51 am
by Leency
Удивило то, что в режиме 320х240 курсор отличается от общесистемного. Режим работает нормально, как и 640х480х16, как и другие.

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

Posted: Fri Mar 09, 2012 1:10 am
by Leency
Итак, результаты тестирования.

Ноутбук Acer Aspire 4740G
core i3-330m 2.13 Ghz 3MB L3 cache
GeForce 310M 512ram
разрешение было 1024х768

Gears в полноэкранном режиме курсор стоял в середине красной шестерёнки:
SVN r. 2426 179
SVN r. 2438 162

И вот результаты теста Mgb. Курсор был над окном.

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

Posted: Fri Mar 09, 2012 5:37 am
by Mario
Для стабильности лучше, если при тестировании курсор увести за пределы отрисовки.

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

Posted: Fri Mar 09, 2012 1:47 pm
by Mario
SVN r. 2440 исправил ошибку r.2438, вызывающую недорисовку последней линии (смотреть два последних скриншота в этой теме).

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

Posted: Sat Mar 10, 2012 2:57 pm
by Serge
Появился баг с аппаратными курсорами. Если кликнуть на заголовке не активного окна, появляется мусор.

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

Posted: Sat Mar 10, 2012 2:57 pm
by Mario
SVN r. 2446 - некоторое небольшое ускорение отрисовки видео вообще, за счет замены тормозных imul

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

Posted: Sat Mar 10, 2012 3:01 pm
by Mario
Serge wrote:Появился баг с аппаратными курсорами. Если кликнуть на заголовке не активного окна, появляется мусор.
Буду смотреть позже - сейчас ухожу из квартиры. Вероятно проблема с порчей каких то регистров, которые в Vesa не были использованы.

Если не сложно проверь с каждой ревизией:
2430, 2435, 2436, 2438, 2440 -нужно выяснить когда именно баг появился (естественно display_t при проверке придется в каждой ревизии восстанавливать)

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

Posted: Sat Mar 10, 2012 3:06 pm
by Serge
Больше похоже на то, что ядро восстанавливает картинку под аппаратным курсором. Сам курсор выгладит правильно.

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

Posted: Sat Mar 10, 2012 8:50 pm
by Mario
SVN r. 2448 исправил поломанную совместимость с аппаратным курсором. До этого на Intel вообще подвисало при запуске драйвера.

Итак сейчас имеем следующие показатели при тестировании на Dell Inspiron N7010 (Intel i5) видео от Intel.
Бывшее стандартное trunk ядро, ревизии 2426, VESA:
Spoiler:
1.png
1.png (5.52 KiB)
Viewed 6289 times
Ядро с неморгающим курсором, ревизии 2448, VESA:
Spoiler:
2.png
2.png (5.6 KiB)
Viewed 6289 times
Ядро с неморгающим курсором, ревизии 2448, с запущенным драйвером i915.dll:
Spoiler:
3.png
3.png (5.53 KiB)
Viewed 6289 times
Некоторые параметры отстают, некоторые опережают. Отмечу тот факт, что драйвер с аппартным курсором не дает существенного прироста скорости - все кроме курсора по прежнему отрисовывает Vesa драйвер.

Мне было бы очень любопытно видеть результаты замеров, тех же трех случаев, для AMD ATI драйвера, но таких видеокарт не имею.

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

Posted: Sun Mar 11, 2012 9:08 pm
by Mario
SVN r. 2449 - исправлен поломанный блиттер (используется fplay).
SVN r. 2450 - после завершения приложения с измененным курсором, сразу происходит отрисовка дефолтного курсора.

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

Posted: Mon Mar 12, 2012 12:53 pm
by Serge
Марат сделал отличную работу !
Во всех тестах слева #2451 справа #2426
Spoiler:Курсор находится в тестовом окне
1.png
1.png (6.36 KiB)
Viewed 6233 times
Курсор за пределами тестового окна
2.png
2.png (6.25 KiB)
Viewed 6233 times
Тестовое окно полностью перекрыто
3.png
3.png (6.54 KiB)
Viewed 6233 times
Курсор не только не мерцает, в большинстве случаев вся отрисовка ускорилась.

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

Posted: Mon Mar 12, 2012 1:02 pm
by Mario
К сожалению это частный случай. К примеру на Roverbook U800 (где видеочип встроен в процессор) скорость отрисовки заметно ниже, в случае если курсор за пределами изменяемой зоны. Поскольку в случае выключения курсора нет проверок на его пересечение. Однако ситуация меняется когда приходят они веселые глюки курсор в отрисовываемой зоне. Причем можно еще немного ускорить, если не выводить точки принадлежащие самому курсору - они все равно не меняются, пока курсор не движется.

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

Posted: Mon Mar 12, 2012 2:22 pm
by Mario
SVN r. 2451 - очень небольшой прирост скорости вывода.
SVN r. 2452 - исправил зависание при завершении сессии отладки ф.69 (MTDBG).

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

Posted: Mon Mar 12, 2012 9:54 pm
by Mario
SVN r. 2453 Ревизия 2448 была сделана на скорую руку, дабы заткнуть прореху с аппартными курсорами. Потому эта ревизия восстанавливает нагло попранные права производительности и даже немного улучшает ситуацию.

Итак сейчас имеем следующие показатели при тестировании на Dell Inspiron N7010 (Intel i5) видео от Intel.
Бывшее стандартное trunk ядро, ревизии 2426, VESA:
Spoiler:
1.png
1.png (5.52 KiB)
Viewed 6192 times
Ядро с неморгающим курсором, ревизии 2453, VESA:
Spoiler:
2.png
2.png (5.62 KiB)
Viewed 6192 times
Ядро с неморгающим курсором, ревизии 2453, с запущенным драйвером i915.dll:
Spoiler:
3.png
3.png (5.55 KiB)
Viewed 6192 times
Теперь самое большое отставание на рисовании горизонтальных линий - около 15%, второй показатель по отставанию вывод картинок - около 12%. Некоторые параметры даже лучше.
Ну, и разумеется при активации аппаратного курсора ситуация становится еще лучше.

З.Ы. Шестеренки показывают 895/774/847 соответственно.