AIMP Forum

AIMP for Windows => Ошибки и замечания / Bugs => Тема начата: Black_AVP от Марта 03, 2022, 09:51:19

Название: [2366] Проблемы с анимацией при масштабировании
Отправлено: Black_AVP от Марта 03, 2022, 09:51:19
Мучаю сейчас свои "тяжёлые" скина, в частности - этот (https://www.aimp.ru/forum/index.php?topic=44852.0).
Начиная с масштаба 175% и выше замораживаются анимированные элементы скина: индикаторы (TASEGauge), аниматоры, в контекстном меню субменю не показываются.
Что интересно, в указанном скине бобины вертятся нормально, хотя это самый "скоростной" аниматор в скине, а индикаторы, счётчик останавливаются. При "перемотке" трека рулоны ленты (аниматоры или TASEStateDisplay) тоже стоят. Перегрузки процессора при этом нет - 12-14% при масштабе плеера 200%.
Всё выше описанное относится к Windows 11, в 7-ке подобная картина наблюдается уже, начиная с масштаба 150%.
Возможно, это только моя проблема, хотелось, чтоб кто-нибудь проверил.
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Artem от Марта 15, 2022, 17:00:00
Прошу прощения за долгое молчание. Нет, проблема наблюдается не только у тебя.

На сколько я могу судить, из-за того, что у бобин слишком большой fps, они забивают всю очередь сообщений и до других элементов сообщение об отрисовке просто не доходит. Буду думать.
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Black_AVP от Марта 15, 2022, 18:10:04
Тайминги у аниматоров бобин меняются в диапазоне 5..11 мс. При этом ядро загружено на 70..85%, вроде, запас ещё есть.
Досадно, что остальные ядра простаивают.
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Artem от Марта 15, 2022, 21:18:28
Тайминги у аниматоров бобин меняются в диапазоне 5..11 мс. При этом ядро загружено на 70..85%, вроде, запас ещё есть.
Досадно, что остальные ядра простаивают.

Увы, рендеринг однопоточет и иначе быть не может. Нашел, что именно не успевает обрабатываться в этом случае - таймеры для обновления визуализации и позиции воспроизведения.
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Black_AVP от Марта 16, 2022, 09:24:44
То есть, проблема решения не имеет?
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Black_AVP от Марта 16, 2022, 18:56:09
Для сравнения сделал тестовый проект с графикой увеличенной в 2 раза уже при рисовании, т. е., чтоб на экране это выглядело, как при масштабе 200%.
Если в первом случае, при масштабировании в плеере 200% крутятся только одни бобины и заметно медленнее, чем задано, то во втором вся анимация работает.
Получается, что и сама отрисовка с масштабированием значительно замедляет анимацию.

Артём, если будешь заниматься этим вопросом, у меня есть тестовый проект, на котором можно поиграться с маштабированием, могу скинуть.
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Artem от Марта 16, 2022, 19:55:09
То есть, проблема решения не имеет?

Через распараллеливание - нет. Но есть другие идеи, пока не могу найти в себе сил, чтобы сесть и хотя бы пару часов поэкспериментировать
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Artem от Марта 17, 2022, 15:18:04
Попробуй эту сборку:
https://disk.yandex.ru/d/4_vWAnCJD4xjQQ

Я сделал простенький балансировщик: движок будет замедлять high-resolution таймеры, если очередь сообщений начинает переполняться.
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Black_AVP от Марта 17, 2022, 18:55:05
При масштабе 175%, вроде, вся анимация работает, но чувствуется общее замедление даже по стрелочным индикаторам.
Для масштаба 200% ничего не поменялось - по-прежнему вращаются только бобины.

Хуже стала картина для обычного масштаба (100%) - рывки на аниматорах бобин и здесь стали заметны. При этом нагрузка на ядро возросла с 55 до 70-75%.
Сделал тестовый проект (https://disk.yandex.ru/d/BFJ7f__VF6ybDg) в котором косвенно измеряется период аниматоров (через системное время). В последней сборке, в сравнении с предыдущей, оно довольно сильно колеблется и более значительно отличается от заданного даже при некритических его значениях.  Как следствие, и рывки аниматоров.
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Artem от Марта 17, 2022, 19:11:25
Я проверял как раз на 200%.
Рывки, видимо, связаны с работой балансировщика - он то придерживает, то ускоряет таймеры.
Эх, жаль, что плеер - не игра, где общий постоянный таймер на все приложение...
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Artem от Марта 17, 2022, 19:14:41
А попробуй такой вариант:
https://disk.yandex.ru/d/QNSe7MPRSKEGDw

Тут я перевел визуализацию и обновление позиции воспроизведения на high-resolution таймер. Понимаю, костыль (ведь другие таймеры в приложении по-прежнему не будут работать), но покрайней мере UI главного окна должен ожить.
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Black_AVP от Марта 17, 2022, 20:00:07
Ну, у нас с тобой железо всё же разное, хоть я и успел обновиться до обвала рубля.
На 200% со скином Akai у меня бобины вертятся, но значительно медленней чем надо и почти с одинаковой скоростью, стрелочники работают, а счётчик стоит. Навигация по треку от кнопок тоже не работает.
По тестовому примеру: для бобин тайинги заданы: 11 мс для левой и 5 мс для правой. Реально обе крутятся с периодом 12-14 мс на кадр. Включение индикаторов, спектрума или дополнителных аниматоров это время ещё более увеличивает.
Без масштабирования (100%) картина вернулась к прежней.
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Artem от Марта 17, 2022, 20:26:37
Тут ясно одно, что при эмуляции масштабирования все работает медленнее: система не успевает рисовать картинку с таким FPS, из-за чего hires-таймеры забивают очередь сообщений, и на обычные ее просто не хватает. Ладно, я понял, буду думать дальше.
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Artem от Марта 20, 2022, 13:03:16
Попробуй эту сборку:
https://disk.yandex.ru/d/TQrYusKb7Kn5hg
Название: Re: [2366] Проблемы с анимацией при масштабировании
Отправлено: Black_AVP от Марта 20, 2022, 18:12:25
В принципе, лучше не стало. Интервал 5 мс аниматор не отрабатывает, реальное время получается 8..10 мс, большие колебания скорости анимации. (Речь о масштабе 200%)
Проверяю сейчас на тестовом примере, там можно установить скорость вращения, посмотреть реальную. Более или менее нормальная работа всей анимации на моём железе начинается со значений 16..18 мс, если их установить для обеих бобин.
Сильнее всего тормозит аниматор ленты (не смотря на то, что он медленный), поскольку получается аниматор над аниматором, и спектрум.
В исходной сборке (до всех этих экспериментов) загрузка ядра хоть и была под 100% на критических таймингах, но была довольно равномерной, сейчас тоже при полной загрузке ядра есть периодические провалы до 60..70%. Они не продолжительные, но даже заметно, что проц незначительно снижает при этом тактовую частоту.
В 100%-ном масштабе нагрузка на процессор тоже несколько выше, чем в исходной сборке.