Добрый день!
Внесли изменения в файл "../output/build/linux-custom/arch/arm/boot/dts/imx6qdl-lvds-1024x768-1024x768.dtsi" и выполнили сборку rootfs.
Для того чтобы изменения вступили в силу на процессорном модуле imx6 необходимо перешить ядро полностью или достаточно обновить на модуле файл ../output/images/imx6dl-sodimm.dtb ?
Внесение изменений в вышеуказанный dtsi файл не дает результата.
У нас проблема в изменении временных параметров выходного lvds канала.
При увеличении значений параметров vsync-len, vback-porch, vfront-porch канал lvds перестает функционировать.
Как нам уменьшить кадровую частоту с 60гц до 20гц с помощью добавления неактивных строк(несущая чтобы осталась 60гц, а кадровая понизилась до 20 гц)?
Панели у нас нет. Выход LVDS далее идет в плату МПК, которая формирует изображение для передачи по цифровому последовательному каналу на индикатор.
Задача стоит минимизировать задержку между формированием изображения на IMX.6 GLES2 и появлением этого кадра в плате МПК.
Период формирования изображения на IMX.6 GLES2 (между вызовами eglSwapBuffers()) фиксированный и составляет 50мс (20Гц - быстрее не получается). А вот пропихнуть его через LVDS хочется побыстрее (за 16мс - 60Гц).
Вот и пытаемся кадровую частоту сделать 20Гц, а скорость передачи соответствующей 60Гц :)
Вот и пытаемся кадровую частоту сделать 20Гц, а скорость передачи соответствующей 60Гц :)
оно так и работает - GPU отрисовывает в буфер, IPU формирует из этого буфера временные сигналы, LVDS сериализует их и передает - GPU и LVDS работают независимо с разной частотой обновления экрана, в файле imx6qdl-lvds-1024x768-1024x768.dtsi прописаны тайминги для 60 Гц. Можете проверить посчитав вручную все пиксели видимые (hactive, vactiveи) и пустые (все остальные) для одного кадра и сколько кадров можно передать на заданной частоте (clock-frequency).
вывод GPU и IPU не синхронизируется, если указана - используется очередь из буферов, количество которых указано в этой переменной, при отображении в IPU, видимый буфер меняется во время передачи неактивных пикселей (VSYNC) чтобы не было тиринга (разрыввов при отображении - когда часть экрана от старого буфера а втора часть от нового на динамичном изображении). Если вам надо побыстрей отображать не ожидая синхронизации - отключите эту переменную окружения