repstosw 18 6 июля, 2018 Опубликовано 6 июля, 2018 · Жалоба Всё просто замечательно! :rolleyes: Подключил дисплей к FMC, настроил времянки. Задействовал кеширование. Вышло 41 FPS. Потом сделал двойную буферизацию, задействовал ДМА память-память. В итоге пока процессор рендерит один кадр, ДМА отправляет на LCD готовый кадр. Путём таких ухищрений удалось выжать 63 FPS. Видео (по сравнению с видео выше с STM32F407, скорость намного выше 63 vs. 24 FPS): http://www.youtube.com/watch?v=4VpX5UfkmWA Исходники для STM32H743 Ниже. Просьба не ругаться(за кало-Куб), нужно было оценить отладочную плату и процессор STM32H743. Tunnel_STM32H743_DMA.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 6 июля, 2018 Опубликовано 6 июля, 2018 · Жалоба Видео (по сравнению с видео выше с STM32F407, скорость намного выше 63 vs. 24 FPS): http://www.youtube.com/watch?v=4VpX5UfkmWA При FPS=24 вообще нет смысла тратить столько ног на LCD - можно по SPI подключить и получить такую же скорость. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 6 июля, 2018 Опубликовано 6 июля, 2018 · Жалоба При FPS=24 вообще нет смысла тратить столько ног на LCD - можно по SPI подключить и получить такую же скорость. 24 FPS - это общий FPS: рендеринг картинки в буфер + перекидывание буфера на дисплей, а не чисто-перекидывание на дисплей Если перекидывание буфера на экран через SPI даст 24 FPS, то общий FPS программы упадёт до 10 и меньше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 6 июля, 2018 Опубликовано 6 июля, 2018 · Жалоба 24 FPS - это общий FPS: рендеринг картинки в буфер + перекидывание буфера на дисплей, а не чисто-перекидывание на дисплей Я это понял. Я и говорю, что с такой скоростью отрисовки, не нужна параллельная шина, можно использовать SPI. Если перекидывание буфера на экран через SPI даст 24 FPS, то общий FPS программы упадёт до 10 и меньше. "Перекидывание" даёт FPS=~36 при 45МГц SCLK и 16 бит цвета. А рисование не должно ему мешать если идёт в это время в другой буфер. Таким образом если у вас только рисование даёт 24Гц, то передача по SPI не снизит эту скорость. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 6 июля, 2018 Опубликовано 6 июля, 2018 · Жалоба Я это понял. Я и говорю, что с такой скоростью отрисовки, не нужна параллельная шина, можно использовать SPI. "Перекидывание" даёт FPS=~36 при 45МГц SCLK и 16 бит цвета. А рисование не должно ему мешать если идёт в это время в другой буфер. Таким образом если у вас только рисование даёт 24Гц, то передача по SPI не снизит эту скорость. Там где 24 Гц - это на STM32F407. У него 128+64 кБ памяти, хватает только на один буфер 320x240x2 и то, он реализован кусками! Двойная буферизация в STM32H743. Но там 63 FPS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 6 июля, 2018 Опубликовано 6 июля, 2018 · Жалоба Там где 24 Гц - это на STM32F407. У него 128+64 кБ памяти, хватает только на один буфер 320x240x2 и то, он реализован кусками! 320*240/4=19200 - должно хватать на бОльшее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 7 июля, 2018 Опубликовано 7 июля, 2018 · Жалоба 320*240/4=19200 - должно хватать на бОльшее. 2 байта на пиксел. 16bpp. 320x240x2=150 кБ два буфера - уже 300 кБ < 192 кБ в stm32f407 :biggrin: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 7 июля, 2018 Опубликовано 7 июля, 2018 · Жалоба 2 байта на пиксел. 16bpp. 320x240x2=150 кБ два буфера - уже 300 кБ < 192 кБ в stm32f407 :biggrin: Я понимаю, что можно и 4 байта на пиксел положить, но зачем если памяти мало?? У меня 320x240x4 (4bpp конечно-же) в STM32F429 во внутренней памяти и буфер прекрасно влазит в CCM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 7 июля, 2018 Опубликовано 7 июля, 2018 · Жалоба Я понимаю, что можно и 4 байта на пиксел положить, но зачем если памяти мало?? У меня 320x240x4 (4bpp конечно-же) в STM32F429 во внутренней памяти и буфер прекрасно влазит в CCM. Видите ли, в чём дело... Вы со своей колокольни смотрите на проблему. Я же со своей. Тот туннель, что я выкладывал - ну никак не смотрится в 16 цветах - слишком убого. И в 256 цветах тоже будет плохо смотреться. Поэтому было принято решение использовать 65536 цветов. Цель была - перенести алгоритм построения трёхмерного туннеля из этой программы: http://www.sulaco.co.za/opengl_project_racing_tunnel.htm , не угробив при этом цветопередачу текстуры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 7 июля, 2018 Опубликовано 7 июля, 2018 · Жалоба Тот туннель, что я выкладывал - ну никак не смотрится в 16 цветах - слишком убого. И в 256 цветах тоже будет плохо смотреться. Поэтому было принято решение использовать 65536 цветов. Туннель - это конечно хорошо. Но зачем он в плане embedded? Какой практический прок? Для всяких смартфонных девайсов - спору нет, но там вроде как и процы немного другие.... А вот для GUI какого-нить девайса 16 цветов - обычно вполне достаточно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 7 июля, 2018 Опубликовано 7 июля, 2018 · Жалоба Туннель - это конечно хорошо. Но зачем он в плане embedded? Какой практический прок? Для всяких смартфонных девайсов - спору нет, но там вроде как и процы немного другие.... А вот для GUI какого-нить девайса 16 цветов - обычно вполне достаточно. Готовлю плацдарм для прыжка в будущее :rolleyes: Если быть точным, то у меня чисто академический интерес - пощупать Cortex-M7, посмотреть его достоинства и недостатки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 9 июля, 2018 Опубликовано 9 июля, 2018 · Жалоба Собственно, что мы затеваем: http://vrtp.ru/index.php?showtopic=30174&st=0& Но хочется большего :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться