Russian Qt Forum
Апрель 20, 2024, 01:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: MP + plugins  (Прочитано 3815 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Февраль 25, 2020, 12:54 »

Добрый день

Приложение крутит на экране анимацию кадр за кадром. На каждом кадре вызывается плагин который лезет в (большой) файл, находит там данные текущего кадра, из них создает модель, передает ее хосту, и тот рисует кадр. Все работает, но вот беда - по скорости/fps плохо. Ну оно и понятно, пока файл откроют, прочитают, хосту данные передадут... Подробности: общение с плагином - чисто С API. Превью имеет стандартную опцию "drop frames", напр после кадра 5 следующим может быть кадр 10 (если не успевает).

Ну и как "ускоряться"? Разумеется плагин ни о каком multi-threading никогда не слыхал, глобалок там туча  Плачущий Хост использует MP, но для др целей, общение с плагином глухо в main thread. В общем пока неясно даже "с какой стороны подлезть". Что посоветуете ?

Спасибо
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Февраль 26, 2020, 11:13 »

Ну как всегда Улыбающийся Ладно, я рассматривал такие возможности:

1) Делать чисто "от хоста" т.е. хост зовет плагин для кадров N (текущий), N + 1, N + 2 и.т.д. Быстро убедился что это нереально т.к. это случай общий, требуется синхронизация ВСЕХ данных для каждого кадра. Ожидаемо/нормально, "слишком гордый/концептуальный" план редко бывает реальным. Придется удовлетвориться оптимизацией конкретного плагина, его данные от других не зависят.

2) Думал вообще распаковать все кадры во временный файл, а потом грузить данные "блоками" (API это позволяет, в хост подаются POD структуры без адресов). Тогда вроде и "разпоточивать" ничего не надо. Но вероятно получу проблемы с диском. Скромная свинка (аттач) - исходный файл уже 300 метров (кадров прилично), а распакованный даже "на глазок" раз в 5 больше.

Вообще то обстоятельство что пропуск кадров (drop frames) может случиться (и часто) и все пыхтение с подгрузкой "с запасом" окажется в минус - капитально охлаждает энтузиазм
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.