mantech 48 6 июля, 2022 Опубликовано 6 июля, 2022 · Жалоба В 06.07.2022 в 10:05, repstosw сказал: Осталось выкинуть из цепочки G2D - заставить декодер рисовать прямо на дисплей, конвертируя кадр с помощью CSC. Чет так и не понял, что сейчас за цепочки, с этими тейлами да еще и разными чет все в одну кучу смешалось. Я так понимаю, что jpeg декодер берет инфу из файла и перекодирует ее в YUV, затем нужна функция перекодировки в RGB, или что-то не так? Что такое NV12 и зачем это нужно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 6 июля, 2022 Опубликовано 6 июля, 2022 · Жалоба EHCI в t113-s3 на 1-м USB (0-й - OTG). аттач/детач не диагностируется. только вместе с хабом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 6 июля, 2022 Опубликовано 6 июля, 2022 (изменено) · Жалоба On 7/6/2022 at 5:45 PM, mantech said: Чет так и не понял, что сейчас за цепочки, с этими тейлами да еще и разными чет все в одну кучу смешалось. Я так понимаю, что jpeg декодер берет инфу из файла и перекодирует ее в YUV, затем нужна функция перекодировки в RGB, или что-то не так? Что такое NV12 и зачем это нужно? По умолчанию CedarX давал декодированный JPEG в памяти не линейно а тайлами 32x32. Такой вывести на экран проблематично, будет месево из пикселей. Чтобы было всё хорошо, нужно: 1) использовать детайлизатор или 2) задать декодеру режим NV12, а не Tile32x32 Далее чтобы выпрямленный YUV вывести в RGB нужен: 1) СSC или 2) G2D NV12 - это и есть полу-планарный YUV420: компонента яркости в одном буфере, а пара цветоразностных компонент - в другом буфере - они чередуются там. Есть ещё Full Planar YUV - это когда все три компоненты в трёх разных буферах (CedarX его тоже поддерживает, проверял). Никакой каши нет. Всё закономерно. Просто, чтобы вывести декодированный декодером Jpeg, ещё попыхтеть малость пришлось... On 7/6/2022 at 5:45 PM, mantech said: Я так понимаю, что jpeg декодер берет инфу из файла и перекодирует ее в YUV, затем нужна функция перекодировки в RGB, или что-то не так? Что такое NV12 и зачем это нужно? Перекодировал в Tiled YUV. Чтобы такой вывести, перед перекодировкой в RGB нужна была детайлизация. Я пошёл проще: заставил декодер давать линейный YUV без тайлизации. В исходниках этого нет. Там используется софтовый детайлизатор. Его код на предыдущей странице: Или ассемблерный вариант. Почитайте тему внимательно! Изменено 6 июля, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 1 6 июля, 2022 Опубликовано 6 июля, 2022 (изменено) · Жалоба On 7/6/2022 at 10:05 AM, repstosw said: Дело в том, что NV12 к тайлам никакого отношения не имеет смотря для кого https://elixir.bootlin.com/linux/latest/source/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst#L264 не знаком с VE, подумал что у него там тайловый NV12, а оказывается там можно даже выбрать По вышеприведенной ссылке настройка одного из слоя (plane в терминах Linux) на произвольный поддерживаемый входной формат https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun4i_frontend.c#L405 https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun4i_frontend.c#L478 и выходной формат RGB https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun4i_frontend.c#L486 Изменено 6 июля, 2022 пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 6 июля, 2022 Опубликовано 6 июля, 2022 · Жалоба On 7/6/2022 at 6:37 PM, sasamy said: По вышеприведенной ссылке настройка одного из слоя (plane в терминах Linux) на произвольный поддерживаемый входной формат https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun4i_frontend.c#L405 https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun4i_frontend.c#L478 и выходной формат RGB https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun4i_frontend.c#L486 Нету у T113-s3 (как и у V3s) DEFE (BackeEnd). В T113-s3 CSC и Scaler сделаны через блендер G2D. Совмещая растягивание кадра и его конверсию. Можно просто последнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 6 июля, 2022 Опубликовано 6 июля, 2022 (изменено) · Жалоба В 06.07.2022 в 11:06, GenaSPB сказал: только вместе с хабом. Честно так и не понял ответа на свой вопрос, есть нормальная поддержка хаба или нет, т.е. при подключенном хабе, втыкая в него флешку или еще что, стек подключает эту флешку или нет. По исходнику вижу, что нет, вот и спросил.. Или там имелось ввиду подключение хаба к порту с уже вставленной флешкой? Но тоже проверял, хаб подключается, как собственно само устройство, но флешку не подключает. Хотя может от типа хаба это зависит - х.з. Изменено 6 июля, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 1 6 июля, 2022 Опубликовано 6 июля, 2022 · Жалоба On 7/6/2022 at 2:34 PM, repstosw said: Нету у T113-s3 (как и у V3s) DEFE (BackeEnd). там черт ногу сломит кто на ком сидит в какой версии, VI у него есть ? Аналогичная ф-ция для CSC на VI https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun8i_vi_layer.c#L260 YUV какие хочешь поддерживает (DE2) https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun8i_vi_layer.c#L476 NV12 не тайловый а семипланар, в принципе у VE всё равно свой постпроцессор есть - можно хоть полностью планарные использовать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 6 июля, 2022 Опубликовано 6 июля, 2022 (изменено) · Жалоба В 06.07.2022 в 14:34, repstosw сказал: В T113-s3 CSC и Scaler сделаны через блендер G2D Странно, в описании DE 2.0 есть упоминание про блендер и CSC в составе дисплейного модуля. Может он не работает как нужно или пока не удалось его правильно запустить... Там больно мудрено все, куча слабодокументированных регистров(( В 06.07.2022 в 15:10, sasamy сказал: YUV какие хочешь поддерживает (DE2) repstosw писал уже, что пробовал запускать в данном режиме, но у него он не заработал, как надо, а продолжал выводить в RGB. Ну и предположу, что этот режим не совсем удобно использовать, например, есть картинка в пол-экрана, если включить режим YUV в DE, то картинку он покажет, а в остальной половине надо рисовать в RGB... Гораздо удобнее, чтобы декодер сразу преобразовывал в RGB и складывал его по указанному адресу, либо в память, либо в FB. Изменено 6 июля, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 1 6 июля, 2022 Опубликовано 6 июля, 2022 · Жалоба On 7/6/2022 at 3:11 PM, mantech said: repstosw писал уже, что пробовал запускать в данном режиме я не знаю как он пробовал но по контексту сообщений CSC он не включал вообще https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun8i_vi_layer.c#L283 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 6 июля, 2022 Опубликовано 6 июля, 2022 · Жалоба On 7/6/2022 at 3:02 PM, mantech said: при подключенном хабе, втыкая в него флешку или еще что, стек подключает эту флешку или нет. По исходнику вижу, что нет, вот и спросил.. Нет, сейчас нотификации через interrupt endpoint от хаба не получаем. Только в момент енумерации хаба видим что в него включено. Пока не сделано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 6 июля, 2022 Опубликовано 6 июля, 2022 · Жалоба On 7/6/2022 at 10:25 PM, sasamy said: я не знаю как он пробовал но по контексту сообщений CSC он не включал вообще https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun8i_vi_layer.c#L283 Удалось включить и правильно проинициализировать CSC. Проблема в том, что регистры в приводимых сорцах линукса не совпадают с T113-s3. Приходится брать хедеры и сверять буквально каждый регистр! Успешно проинициализировался с такими коэффициентами: [DRM_COLOR_YCBCR_FULL_RANGE] = { [DRM_COLOR_YCBCR_BT601] = { 0x00000400, 0x00000000, 0x0000059B, 0xFFFD322E, 0x00000400, 0xFFFFFEA0, 0xFFFFFD25, 0x00021DD5, 0x00000400, 0x00000716, 0x00000000, 0xFFFC74BD, Теперь плоскость Y не красная, а чёрно-белая, как и должно быть. Но ещё не всё сделано: плоскости U и V не хотят выводиться по правилу суб-семплинга: их PITCH по-прежнему - ширина дисплея. А должен дублироваться каждый пиксел дважды: по ширине и высоте (у YUV420 субсемплинг цветовых компонент 2x2). Без этого изображение не в цвете... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 6 июля, 2022 Опубликовано 6 июля, 2022 · Жалоба В 06.07.2022 в 16:41, GenaSPB сказал: Только в момент енумерации хаба видим что в него включено. Понял. А есть понимание того, что дальше делать, чтоб проходила энумерация подключенного к хабу устройства? Может ссылки на какие ресурсы... У самого че-то не больно какие знания по этому вопросу, а хотелось бы довести до ума. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 1 6 июля, 2022 Опубликовано 6 июля, 2022 (изменено) · Жалоба On 7/6/2022 at 5:42 PM, repstosw said: плоскости U и V не хотят выводиться по правилу суб-семплинга: их PITCH по-прежнему - ширина дисплея не совсем понял, pitch https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun8i_vi_layer.c#L346 и адрес https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun8i_vi_layer.c#L354 для каждого плана https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/sun4i/sun8i_vi_layer.c#L322 вы сами должны указать, у nv12 два плана https://linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/v4l/pixfmt-yuv-planar.html#nv12-nv21-nv12m-and-nv21m Изменено 6 июля, 2022 пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 6 июля, 2022 Опубликовано 6 июля, 2022 (изменено) · Жалоба On 7/6/2022 at 5:50 PM, mantech said: А есть понимание того, что дальше делать, Не имплементировано interrupt endpoints. только и всего-то... Надо. Ресурсы... Те же юниховые исходники. Изменено 6 июля, 2022 пользователем GenaSPB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 6 июля, 2022 Опубликовано 6 июля, 2022 (изменено) · Жалоба В 06.07.2022 в 22:48, GenaSPB сказал: Ресурсы... Те же юниховые исходники. А разве не на основе СТМовских там? В линуксовых пробовал смотреть - муторно там все расковыривать, особенно в усбшных... Но походу вариантов нет, ну или от NXP брать, но там поголовно использование дин. памяти, что печально... Ну и этот еще, дурацкий OHCI тоже нужно как-то вкорячивать, вот все-таки что, что , а усб в ИМХ6 было более правильным, ибо там один контроллер на все скорости был, как в эзернете, а тут какой-то старый рудиментный подход, как в древних компах, на каждую скорость свой контроллер((( Изменено 6 июля, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться