Board.KolibriOS.org

Official KolibriOS board
It is currently Fri Jun 05, 2020 9:30 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 249 posts ]  Go to page Previous 15 6 7 8 917 Next

Ваше мнение об оптимизации GUI ядра
Оставить как было 24%  24%  [ 16 ]
Убрать только CGA и VGA, оставить VESA1.2 7%  7%  [ 5 ]
Оставить только VESA2-режимы (без изменения) 10%  10%  [ 7 ]
Разделить 24 и 32bpp графику в условно-компилируемые блоки 25%  25%  [ 17 ]
Оставить в ядре единственный 32bpp-режим 33%  33%  [ 22 ]
Total votes: 67
Author Message
PostPosted: Wed Feb 09, 2011 5:56 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1407
svn =1859=
Залил новый графический движок - video/VESA20.inc полностью переделана и переименована в video/GRAPH32.inc .

В _putimage где-то еще сидит баг, отлавливаю.

_________________
Узкий специалист подобен флюсу: полнота его - односторонняя.
Козьма Прутков


Top
   
PostPosted: Sun May 15, 2011 4:41 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1407
1) Отловить бага в тайловой граф. системе так и не получилось. В #1930 временно вернулся к пиксельной карте экрана.
Хотя быстрая отрисовка битмапов все-таки была отлажена для режимов упаковки 32, 24, 8, 1 и 0bpp (последний режим соответствует заливке прямоугольника заданным цветом и позволяет объединить вместе функции _putimg и _drawbar).
Кого интересуют детали - см. http://redmine.kolibrios.org/projects/k ... raph32.inc

2) Я тут просмотрел что пишут в интернетах о Колибри. 90% чайников отмечают феноменальную бытроту графической подсистемы. Но есть вопрос: а насколько она быстрая?
Ради интереса, набил простенькую тестовую утилиту для Винды:
http://ftp.kolibrios.org/users/art_zh/gfx/gfxtst.exe
Code:
425580 lines per second
166880 pixels per second
Proportional system txt, 34 chars: 23580 lines per second

Сравнил с тестами в Колибри (см. стр.3-6 этой ветки). Призадумался.
Отключил драйвер видеокарты.
Вот результаты для VESA 1280х1024 в WinXP:
Code:
11560 lines per second
29520 horiz. lines per second
14960 vert. lines per second
1008400 pixels per second
Proportional system txt, 34 chars: 2300 lines per second
(производительность считается по тактовой частоте CPU - в моем случае 3 ГГц)

Проверка получилась довольно неглубокая, но выводы можно сделать однозначные:
- Колибри выжимает из VESA-режима практически все, на что он способен.
- Эффективность ядерной графики в Колибри в разы выше, чем в VESA-винде.
- С современными GPU-ускорителями ядро КОС уже не может конкурировать.

Кто-нибудь сравнивал скорость отработки GUI-примитивов с Виндой и Иксами?


Last edited by art_zh on Sun May 15, 2011 5:31 pm, edited 1 time in total.

Top
   
PostPosted: Sun May 15, 2011 5:30 pm 
Иксы рисуются медленней. Больше уровней абстракций, плюс под Виндовс драйверы пилятся, строгаются и вылизываются куда тщательней. Хотя в случае VESA не все так однозначно. Очень сильно будет варьироваться от установленного GUI - XFCE, LXDE и прочее легковесное могут и обогнать в отдельных замерах.


Top
   
PostPosted: Sun May 15, 2011 5:35 pm 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
art_zh wrote:
С современными GPU-ускорителями ядро КОС уже не может конкурировать.

А в чём проблема написать под Колибри драйвер для GPU-ускорителя? Тогда ты уже не сравниваешь VESA vs GPU, а сравнишь GPU vs GPU...


Top
   
PostPosted: Sun May 15, 2011 5:48 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1407
yogev_ezra

...However, if you want to support high resolutions, you must write a driver for each graphics card that you want your OS to support. Only recommended if you have more than one life to waste.

(афоризм выдран отсюда)


Top
   
PostPosted: Sun May 15, 2011 7:07 pm 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
art_zh wrote:
yogev_ezra
...However, if you want to support high resolutions, you must write a driver for each graphics card that you want your OS to support. Only recommended if you have more than one life to waste.
(афоризм выдран отсюда)

Ты прав, но кто тебя заставляет писать драйвера для всех карт? Напиши для одной своей, и будет тебе счастье.


Top
   
PostPosted: Mon May 16, 2011 2:14 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Не совсем корректно сравнивать скорость VESA в Колибри и Win. Графика Колибри слишком примитивна. Посмотрите описание SetMapMode и представьте отрисовку в Колибри с установкой координат в дюймах.


Top
   
PostPosted: Mon May 16, 2011 10:38 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1407
Serge
Bопрос был не о том, у кого круче наворочена оконная система, а где она быстрее.
Если мне надо нарисовать 20 линий и 200 цифр в четырёх форточках, то на кой мне этот WYSIWYG сдался?
Имхо надо сравнивать именно скорость отрисовки примитивов.


Top
   
PostPosted: Mon May 16, 2011 11:02 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
art_zh

А если сравнить кто быстрее полигоны и эллипсы рисует ? Тоже примитивы.


Top
   
PostPosted: Tue May 17, 2011 3:48 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1407
Serge
Боюсь, что и здесь сравнение будет не в пользу Винды.

Простой пример: масдаевский эллипс у меня рисуется около миллисекунды (3млн тактов), замкнутая арка - чуть быстрее (2млн). И это - при полной "аппаратной акселерации" .

В Колибри на построение окружности по вещественным координатам (с шагом 0.02 радиана) уходит 240тыс. тактов.
Правда, из них только 50тыс тактов тратится на расчет координат, остальное съедает пиксельный вывод с помощью 1-й функции. Но это все равно на порядок быстрее, чем в винде!

Полигоны нужны, согласен. С ними можно будет ожидать двух- и даже трехкратного ускорения отрисовки кривых. Могу добавить сисфункцию если надо. Но тащить "примитивы" вроде окружностей или сплайнов по-моему совсем не нужно.


Top
   
PostPosted: Tue May 17, 2011 4:31 pm 
Offline

Joined: Tue Oct 05, 2010 6:05 pm
Posts: 216
Хочу окружности для radiobuttons. :)
Можно конечно и в библиотеку самому написать, но, вот, почему-то хочется на уровне системы, как с прямоугольником.


Top
   
PostPosted: Tue May 17, 2011 10:20 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1407
lev wrote:
Хочу окружности для radiobuttons. :)
Можно конечно и в библиотеку самому написать, но, вот, почему-то хочется на уровне системы, как с прямоугольником.

А зачем рисовать кружки для радиокнопок? Да еще и в ядре?
Положи битмап поверх невидимой кнопки, и будет самый настоящий radiobutton, точно как в винде.

_________________
Узкий специалист подобен флюсу: полнота его - односторонняя.
Козьма Прутков


Top
   
PostPosted: Tue May 17, 2011 11:13 pm 
Offline

Joined: Tue Oct 05, 2010 6:05 pm
Posts: 216
Чтобы рисовать их текущими системными цветами.


Top
   
PostPosted: Tue May 17, 2011 11:42 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Интересно сравнить скорость захвата картинки из видеопамяти. А отрисовка эллипсов действительно полезная вещь.


Top
   
PostPosted: Wed May 18, 2011 12:50 am 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1407
lev
Системные цвета можно узнать с помощью функции 48:3, откуда их очень легко вставить в edi-таблицу функции 65 (для 1- 4- или 8-битных битмапов).

Serge wrote:
Интересно сравнить скорость захвата картинки из видеопамяти. А отрисовка эллипсов действительно полезная вещь.

Из памяти видеокарты в буфер приложения ?
Полилайны будут. И эллипсы тоже. Только без закраски!!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 249 posts ]  Go to page Previous 15 6 7 8 917 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited