А какие у нас сейчас есть скины, которые требуют оптимизации скин-двжижка?Все скины, где есть крупная анимация с высокой частотой.
А какие у нас сейчас есть скины, которые требуют оптимизации скин-двжижка?
Что-то с вкладками не так - если быстро провести мышкой по большому количеству вкладок сверху вниз, то порядок затухания вкладок будет обратный - снизу вверх (ну и наоборот то же самое). Хорошо заметно на приличной ширине вкладок.
Плюс ещё замирает дисплей визуализации во время фейдинга вкладок.
Все скины, где есть крупная анимация с высокой частотой.
Скины с многослойной структурой, особенно, где используется (или меняется) прозрачность.
Скины с перемещением компонентов (скриптами).
Какие, например?С многослойными структурами проблемы практически везде, особенно где есть анимация и поверх неё что-то ещё присутствует. Вот, в последнем скине (https://www.aimp.ru/forum/index.php?topic=64075.0) столкнулся с этим. В нём над многостраничной группой расположен контейнер, причём прозрачный с двумя текстовыми метками, которые появляются только в начале каждого трека. Если вызвать страницу, как на скриншоте со спектрумами и гауге (они все фреймовые) то вся эта анимация начинает сильно тормозить особенно на слабых машинках. Пришлось этот контейнер принудительно скрывать после исчезновения меток, хотя в нём всё прозрачно.
А какие у нас сейчас есть скины, которые требуют оптимизации скин-двжижка?
— FLAT|DARK (https://www.aimp.ru/?do=catalog&rec_id=869) сильно подтормаживает, если повключать всякие опции в скине.
— Ora Mulih (https://www.aimp.ru/?do=catalog&rec_id=614) нагружает процессор до 75% (как?) при прокрутке плейлиста за «бегунок» полосы прокрутки, если включить фоном плейлиста обложку с размытием в настройках скина. Если выключить размытие, то нагрузка на порядок меньше (8%). Но обложка размывается же один раз, но по нагрузке на ЦП как-будто обложка размывается при каждой прокрутке плейлиста.
Конкретно в данном скине тормозить BlendingMode, если его выставить в режим по умолчанию - скорость взлетает в 5 раз (и это на моей многоядерной машине).Пробовал поочерёдно отключать в скрипте перемещение и прозрачность, на моём i3 в любом случае загрузка процессора 50..70%, если окно растянуть на пол-экрана. Тормозов, правда меньше, чем когда оба параметра меняются (координаты и прозрачность).
В A4 тоже размытие.Тут размытие именно спектрума грузит проц, если его отключить, размытие кавера под ним нагрузки почти не добавляет.
Тут виновато размытие. Обложка размывается каждый раз при рендеринге, т.к. BluredGlass-элементы размывает фон под собой, а он может меняться.
В A4 тоже размытие. В общем, пока получается, что тормозят исключительно фильтры
Как повторить низкий FPS с FLAT|DARK:А чем FPS измерить?
А чем FPS измерить?
Глазами, только так :):) Так визуализации, подобные Аорте у меня, к примеру, в полноэкранном режиме ядро полностью загружают и сами себя тормозят даже на лёгких скинах.
Мысль такая посетила: а нельзя создать такой компонент для редактора скина, который показывал бы частоту обновления? На стадии отладки это помогло бы оптимизировать структуру скинов, оценить влияние на производительность тех или иных компонентов.
Артём, это реально?
Мысль такая посетила: а нельзя создать такой компонент для редактора скина, который показывал бы частоту обновления? На стадии отладки это помогло бы оптимизировать структуру скинов, оценить влияние на производительность тех или иных компонентов.
Артём, это реально?
В FLAT|DARK вроде нет размытия.
Как повторить низкий FPS с FLAT|DARK:
1. Максимизировать главное окно.
2. Включить обложку альбома в настройках скина.
3. Включить Fade-React Effect в режиме Fancy.
4. Переключиться на вкладку Main и включить воспроизведение.
Ещё по FLAT|DARK:
1. Максимизировать главное окно.
2. Включить дисплей визуализации в настройках скина.
3. Включить визуализацию CoR's Aorta.
4. Переключиться на вкладку Main главного окна.
5. Перезапустить программу — сильные подтормаживания при анимации сверху громкости, совмещённой с индикатором уровня сигнала.
Если отключить сглаживание визуализации в настройках AIMP, то подтормаживаний нет.
Максимальная нагрузка и без включения размытия в настройках скина. Достаточно включить только спектрум и максимизировать окно.
Активно пользоваться скином (открывать список плейлистов сбоку или даже просто провести по кнопкам для фейдинга) — частота кадров ощутимо проседает. Частота кадров и так на глаз меньше с максимизированным главным окном, чем с минимальным размером окна.
Вообще, на мой взгляд, есть проблемы производительности с отображением с высокой частотой кадров больших динамических областей, например: спектрум, индикатор уровня сигнала, фейдинг кнопок.
Ещё были жалобы на производительность максимизированного скина по умолчанию в 4K — тормозила даже прокрутка в фонотеке. Ту тему не нашёл.
... Только это не к редактору скинов, а скорее, в плеере надо делать. В редакторе рендерингу будет мешать окружение редактора.Оценивать, конечно, в плеере. Про компонент для редактора подумалось, что его можно было бы удалять из скина при завершении отладки.
А какие у нас сейчас есть скины, которые требуют оптимизации скин-двжижка?
Кстати я че вспомнил, на моем недоделанном скине Flexilis очень лагало переключение многостраничной группы в которой почти ничего нет да и ее размер не большой.
Kibermanick, Calley, а вы не могли бы выложить если не проекты, то хотя бы примеры имитирующие такие нагрузки на проц от бегущей строки и многостраничной группы?
Kibermanick, Calley, а вы не могли бы выложить если не проекты, то хотя бы примеры имитирующие такие нагрузки на проц...
Посмотрел Lux&Nox. Можно, конечно, кое что в проекте оптимизировать, но не суть.
Бегущая строка сама по себе на нагрузку практически не влияет (у меня 1..3% на этом скине), виной всему блюр, коего в скине хватает. С блюром 9..12%. Больше всего грузят плагины визуализации, вместе с блюром - до 50%.
Странно что нагрузка так разнится сильно...А у вас не Win10 случайно? Дело в том, что когда я пробовал перейти на неё с семёрки, практически все скины стали весьма заметно тормозить, а на бобинники мои вообще смотреть было страшно (в них аниматоры 480х480) - сплошные дёрганья, а не вращение.
А у вас не Win10 случайно?
... У меня FX-8320e и думаю он будит понемощнее ваших Core i, разве что ядер больше.У AMD и с ядрами не всё так просто - https://www.aimp.ru/forum/index.php?topic=21856.msg360929#msg360929
Кстати я че вспомнил, на моем недоделанном скине Flexilis очень лагало переключение многостраничной группы в которой почти ничего нет да и ее размер не большой.
Скажу прямо вот если например какой то элемент меняет положение следуя за мышью то пока курсор двигается то этот элемент превращается в статичный хотя должен меняться паралельно с перемещением.
Заметил что размытие обновляет себя даже если под ним ничего не меняется, но расположен элемент который может обновляться сам по себе
Кстати я че вспомнил, на моем недоделанном скине Flexilis очень лагало переключение многостраничной группы в которой почти ничего нет да и ее размер не большой.
А возможно ли подключить библиотеку opengl и выборочно отрисовывать тяжёлые элементы? Например, отрисовывать размытие ею, а все остальные части скина которые в этом не нуждаются рисовать процессором
У AMD и с ядрами не всё так просто - https://www.aimp.ru/forum/index.php?topic=21856.msg360929#msg360929
Кстати я че подумал, можно ли как то упростить размытие с большой степенью размытия, типа при такой степени то что под размывалкой не особо нуждаеться в рендере с идеальным качеством. А вот размытие сильной степени весьма актуально сейчас, приходиться несколько размывалок друг над другом делать в максимальной степени размытия что влечет повышенную нагрузку.
Столкнулся с проблемой в теме (https://www.aimp.ru/forum/index.php?topic=56358.0): на AIMP 4.60 этот скин работает нормально, а на 4.70 (b2225) анимация тормозит, причём в большей степени это заметно на стрелочных индикаторах, нежели на бобинах. Ядро процессора загружено полностью.
Спасибо, Артём. Теперь приемлимо, даже визуалку можно параллельно запустить, запас у проца остаётся.
Есть пример поддержки прозрачности окон
glReadPixels(0, 0, wndsize.x, wndsize.y, GL_BGRA, GL_UNSIGNED_BYTE, data);
OS::get_singleton()->swap_layered_buffer();