LINUX.ORG.RU

Избранные сообщения EXL

Сравнение производительности Qt и Cairo

Новости — Linux General
Группа Linux General

Зак Русин провел сравнение производительности векторной графики в Qt и Cairo. Тест состоит из рендеринга трех сложных полигонов: text path, маленький полигон с большим количеством вершин на одной линии, огромный полигон с количеством вершин порядка 100000.

Измерялось количество кадров в секунду, использовались версии Cairo 1.2.5 (XRender и Glitz), Amanith из svn, Qt 4.3 (XRender и OpenGL) на Pentium4 3.2ГГц, 1Гб, NVIDIA 6600 с драйвером 1.0-9625.

Все тесты использовали антиалиасинг, и были предприняты усилия, чтобы поставить библиотеки в равные условия. Результаты очень интересны:

* Qt быстрее Cairo в XRender в 5-7 раз
* Qt(OpenGL) быстрее Qt(XRender) в 5-7 раз, но упирается в производительность GPU при 80000+ вершин
* Cairo(Glitz) показывает одинаковую производительность с Cairo(XRender)
* Ни Amanith, ни Cairo(XRender) не могут справится с последним полигоном в 100000 вершин.
* С большим полигоном Cairo(Glitz) отображает 0.2 кадра в секунду, а Qt переваливает за 10 fps.
* Qt(XRender) на порядок превосходит по производительности и Cairo(Glitz), и Amanith, хотя последние работают с OpenGL ускорением, а первый без него.


Выводы: Qt на голову выше других библиотек, а в OpenGL настолько быстр, что сравнивать с чем либо ещё просто нечестно.


PS от автора новости: Остается надеяться, что OpenSource позволит авторам Cairo "подсмотреть" построение тесселятора и рендерера, чтобы сократить разрыв до приемлемых значений.

>>> Подробности

baka-kun
()

Годные фильмы прошлых лет. Жанр фантастика.

Форум — Talks

Давайте сделаем списочек из старых добрых фильмов, которые сейчас не стыдно посмотреть на больших экранах.

Начну:

Чужой (1979г.), чужие (1986г.) - если выкинуть некоторые сцены, то по декорациям даст фору многим современным фильмам. Сюда же можно отнести другие серии про чужого.

Хищник (1987г.) - тоже даст фору по декорациям.

Судья Дредд (1995г.) - тоже на славу постарались с декорациями.

Матрица (1999г.) - следующие части тоже хороши. Правда говорят в последней части концовку запороли.

Звездные войны: Эпизод 1 (1999г.)

Призрак в доспехах (1995г.) - Хоть и анимашка, но рисовка и сюжет годные

Vidocq (2001г.) - Год уже современнее, жанр скорее триллер с элементами фентези, но очень качественный фильм для своего времени.

З.ы.

Линукс тут при том, что линуксоиды ерунду не посоветуют.

 

Siado
()

KDE4 на MK809III (RK3188)

Галерея — Скриншоты

Давненько обещал добраться и довести напильником свои наработки по рокчипу, да тут и как раз приехал сабжевый ТВ стик. В общем, это все оказалось очень веселым приключением. Логичным продолжением моих прошлых трип-репортов про рокчип.

Дефолтный андроед у меня вообще так и не загрузился ни разу на нем, показав только кукишь в HDMI, и был быстро и решительно выпилен в реактор. В сам девайс была воткнута 8гиговая SD карта, на которую был раскатан корень Debian Jessie, готовый к экспериментам. Ну и понеслась.

Первым делом я открыл его, запомнил партнамберы того, что внутри и впаял внутрь HC-05 блютуз модуль, чтобы можно было не возиться лишний раз с проводами, подрубая терминал.

Первым серьезным приключением был вайфай. Сначала я сделал дамп стокового ядра, и загрузил дебиан, где костыльным модулем снял дамп использованных gpio ног. На основе лога загрузки и дампа я стал корячить уже корячить ядро.

Вайфай и блютуз тут AP6210. Это такая сборка из двух чипов от бредкома (broadcom). Если кто не знает, это те самые ребятки которые играют в опенсурс с Raspberry PI а тем временем плодят дичайшие огороженные костыли во всех других разработках. В общем, чтобы заработал вайфай, нам надо прописать нужные нам ножки rfkill, и прочее в arch/arm/mach-rk3188/, после чего воткнуть бинарный огороженный модуль rkwifi.ko. Я очень много времени убил на вайфай, пытаясь понять почему он не работает. Оказалось, что rfkill для вайфая прописывается... В platform_data bluetooth'a. Почему? А в топку логику, Китай же!

Блютуз так и не ожил, несмотря ни на какие манипуляции с brcm_patchram_plus, оставил его на закуску.

В остальном все завелось сравнительно быстро, включая даже мали. С этим мне пришлось изрядно повозиться. Сначала я искал причину того, что шрифты выглядели как лютое УГ, от которого вытекали глаза пару секунд. Когда я почти отчаялся - понял что виной всему оказался встроенный в новенький 55' ящик филипс «улучшайзер» изображения «Digital Crystal Clear». Если оно отключено телевизор сам добавляет артефактов по вкусу. Пока я это искал, заодно поднял и 32х битный цвет, вместо 16ти. Это избавило от неведомых косяков с QT_GRAPHICSSYSTEM=native, из-за которых все артифачило до невозможности.

Теперь самое интересное. mali воткнулся и завелся на ура. Из нестандартного пришлось только сделать один LD_PRELOAD для одного отсутствующего символа. Шестерни (es2gears) так же на ура завращались выдавая 300 fps (не бенчмарк, да). Вот только фон у них при включенным композитинге оказался прозрачным. Как сказал мне rz2k это скорее всего отсутствующий umplock в fbturbo. Еще при этом логотип K рыжий вместо синего (наблюдается только на 32х битах, на 16ти - все ок, но артефакты Qt).

Следующий косяк - это отсутствующий в либах вызов XInitThreads(), который приводит в частности к тому, что запуск es2_info завершается ошибкой. Пропатчить сходу по методу exception13 не вышло, сделал LD_PRELOAD, но он не сработал... В общем тоже просит любви.

В итоге пока остался на kwin_gles + xrender, который оказался на удивление шустрым. C остальным еще предстоит повеселиться. Что-то подсказывает мне, что основные мои проблемы решит патч на XInitThreads() но кто этих китайцев знает...

Теперь самое вкусное. На http://github.com/linux-rockchip/rockchip-3.0 Вы найдете бранч ядра ncrmnt-muldev. Именно там можно откопать мое патченное/напиленное ядро, в котором есть поддержка сабжевого стика, а вскоре добавится и поддержка планшета Pipo M6 Pro 3g.

TODO: Увлекательное путешествие в суть umplock'а и кишки fbturbo, а так же не менее увлекательное приключение с дизассемблингом и патчингом libMali.so по методу exception13. Да и на планшет наработки надо бы перетащить, ибо уже юзабельно.

 ,

ncrmnt
()

А какой самый простой алгоритм построения треугольника серпинского вы знаете?

Форум — Development

Чтоб совсем на чистоту, то «прямоугольного». Я находил кучу примеров, больших и толстых, для построения сабжа. Сам же знаю очень маленький и простой вариант, открыл для себя случайно, ни где не встречал, вроде.

Упд: возможно я путаю треугольник серпинского с треугольником паскаля, т.к. слабо шарю в этой теме.

 

Deleted
()

Устный счёт

Форум — Talks

Хотелось бы развить собственные навыки устного счёта. Интересует перемножение двухзначных/трёхзначных чисел и различные операции с числами с плавающей запятой с точностью в пределах хотя-бы двух знаков после запятой.

Как это можно сделать? Как-то в сети натыкался что какой-то русский математик этим занимался и разработал соответствующие программы, но больно уж это похоже на очередные «сверхтехнологии прошлого» из программ рен-тв.

А Linux тут при том, что буду поддерживать мнение, что линуксоиды, в среднем по больнице, умнее вендузятников.

 , ,

najlus
()

Повышение квалификации: посоветуйте литературу

Форум — Development

Добрый день. Умею говнокодить на C++, хочу развиваться и получать больше денег. Иду смотреть вакансии яндекса и вижу вопрос:

Какие из следующих стандартных контейнеров позволяют найти в них элемент (по его значению) за O(ln(n))?

std::vector

std::list

std::deque

std::set

std::multiset

std::hash_set

сортированный std::vector

сортированный std::list

сортированный std::deque

сортированный std::set

сортированный std::multiset

сортированный std::hash_set

Аргументируйте ответ, прокомментируйте правильность постановки вопроса

И понимаю, насколько я еще ничтожен. Что такое O(ln(n)) я еще понимаю, но какие алгоритмы используются в стандартной библиотеке - могу только догадываться. Хотя, возможно, вопрос на самом деле не сложный и я даже знаю как на него ответить, не углубляясь в детали реализации. Но всё равно хочется поднять свой уровень. В связи с этим посоветуйте литературу, чтобы углубить знания стандартной библиотеки C++ и вообще знания алгоритмов и с этими знаниями смочь устроиться в нормальное место.

Пожалуйста, не предлагайте перейти на другой язык, это слишком долго.

Ну и заодно пусть развернется дискуссия по поводу решения задач от яндекса:

Перемещено mono из talks

 ,

Hrenomoto
()

Эта, как ее, «биологическая цивилизация» в фантастике.

Форум — Talks

Вот намедни про читал «процент соответствия» и вспомнил, что собственно среди НФ (да и просто хфентези) практически нет описаний биологических цивилизаций, причем боле-менее правдоподобных.

Посему вопрос, а кто может чего посоветовать еще на сию тему?

Deleted
()