Комментарии 8
Mono в 2024
В свое время, часть ника monobogdan я взял именно в честь Моно)) Вопрос к тем предъявам был не по сути самих предъяв, я и сам говорил что Mono - выбор так себе, а уничжительной формы этих самых предъяв а-ля "сидел сибе капал девайсы вот и сиди нехрен лезть в дотнет. И код у тебя гавно я бы ни пропустил!!!"
Статья хорошая, самое полезное - селф хостед, но остальные подходы для меня не труъ, поскольку я очень не люблю превращать дотнет в ноду и тянуть миллион зависимостей для откровенно простых задач (пусть в этих либах и много полезных фич). И да, я откровенно привык именно к тому самому фреймворку, даже увп мне не так вкатил, хотя винфон очень понравился.
Например, мне проще свой велик для гпио навелосипедить для конкретной платформы с конкретными особенностями, который будет держать все нужные мне фишки (например, пинмуксинг в обход dtb) и работать как можно быстрее из юзерспейса, при этом запиливая некий HAL для каждого проекта отдельно. Ага, платформа могёт в какой то шустрый i2s в обход алсы и в обход стандартных юзерспейс прослоек реализует свою коммуникацию с шинами (привет мобильным чипсетам) - запилил, и нет гемора с поддержкой биндингов для сторонних библиотек, поддержкой их новых версий и т.п.
Ну и использование авалонии в фб и совет юзать имгуй в фб, который на выходе выдает треугольники и вообще не знает о концепции грязных регионов (что для софт 2D в больших разрешениях критично для динамики) тоже очень и очень так себе.
Получается, что все предъявы кроме использования Mono как факта - исключительно "фломастеры на вкус разные"))
Заверну эти классно звучащие велосипеды в nuget пакеты бесплатно и без СМС, только напишите :)
Про GUI - не думаю, что это проблема. Даже если это отрисовывать исключительно софтварно, то тот же H3 вывезет без проблем, если уж он вывозит софтварный декодинг h264 в 720p@30. Всё равно на ARM, которые ставят в SBC, 2D ускорители - это экзотика.
Всё равно на ARM, которые ставят в SBC, 2D ускорители - это экзотика.
Надо просто ДШ на используемые чипсеты читать) Вот, например, на A10 (здесь DE 1.0, в H3 он тоже есть - но уже 2.0):

Контроллеры дисплея уже очень давно включают в себя и функции 2D-акселлератора функционала уровня DirectDraw с поддержкой нескольких слоёв с альфа-блендингом, аппаратно-ускоренного блиттинга, не говоря уже об отрисовке примитивов. Но окей, контроллер дисплея не умеет в аффинные трансформации и множество других клевых штук типа поддержки разых Blending equation аппаратно.
Но это я про конкретно 2D-контроллеры сказал, а ведь в большинстве одноплатниках и GPU есть, где 2D - просто частный случай 3D и если в приложении есть адекватный батчинг, а само 2D сильно не бьёт по филлрейту - то всё будет летать как на айфоне :) Как же юзануть GLES без иксов? Нужно создать контекст с рендертаргетом в offscreen-поверхность, из которой уже и копировать в fb0.
Проблема в том, что насколько мне известно, линукс фб до сих пор не могёт работать с 2D-контроллерами нормально, поэтому для таких целей создают ещё одно блочное устройство, с которым общаются через ioctl.
H3 вывезет без проблем, если уж он вывозит софтварный декодинг h264 в 720p@30
Ну да, только сначала нагреется до 60-70гр, а из-за хреновой линии монтажа BGA на заводе ещё и отвалится. А ещё потребление вырастет в разы - и это особенно важно, если SBC не стационарный и является сердцем переносного устройства.
исключительно софтварно
Не, нарисовать гуй уровня вин 3.1, где пару кнопок и один лист-бокс - это не проблема. Но
Заверну эти классно звучащие велосипеды в nuget пакеты бесплатно и без СМС, только напишите :)
Всё так легко и просто пока работаете с распространенными SBC, для которых "коммьюнити уже всё сделало". Внезапно, так не всегда: есть экзотика типа чипсетов MStar, где работа с периферией идёт полностью из юзерспейса, вплоть до инициализации дисплея)
Вопрос в том, как этот DE заиспользовать. Как я понимаю обычно он используется в Linux как "возми этот drm plane, ну максимум парочку, смешай и выведи в hdmi". И то, если с дровами повезло
Всё так легко и просто пока работаете с распространенными SBC, для которых "коммьюнити уже всё сделало".
Так я и предлагаю, чтобы вы сделали, а я упакую. И получится "комьюнити сделало"
Ну а чтобы не быть голословным касательно 2D, вот известный в определенных кругах мужик пилит Bare-metal прошивку с эмуляторами под A13:
И там он юзает DE на всю катушку) У AllWinner также своя ОС есть, которая, правда, чаще в "простых" решениях типа V3s и F1C100s используется - MelisOS (регистраторы, электронные книги и т.п.), вот там DE юзается во всю.
Статья крутая!! Интересно было посмотреть на противостояние между обобщённым подходом и индивидуальным к каждому одноплатнику (@bodyawm).
Если в вашем проекте важна работа с мультимедиа и не нужны GPIO — выбирайте X86 и избавьте себя от страданий с драйверами аппаратных видеокодеков и GPU. Тем более, что на данный момент существует большое количество как одноплатников, так и готовых мини PC с X86.
Действительно так плохо с драйверами под ARM для мультимедиа? Какие одноплатники с x86 посоветовали бы, на свой вкус?
С драйверами для мультимедиа всё странно. Если производитель предоставляет Android образ, то всё будет работать. Для других случаях есть куча вариантов. Может вообще не быть драйвера; может быть драйвер, но только от производителя, но для какого-нибудь старого ядра; может быть драйвер в mainline потому что кто-то отреверсил оригинал. Но даже если есть драйвер, совсем не факт, что аппаратное ускорение заработает в приложениях.
По x86 - есть LattePanda, есть radxa X4. Вариантов именно одноплатников именно не так много, но доступна куча miniPC
.NET на SBC максимально канонично