MPC-BE forum

MPC-BE => Баг Репорт / The bug report => Архив / Archive => Тема начата: usalex от 26 июня 2021, 12:41:19

Название: Потеря управления в эксклюзиве при перемотке [исправлено]
Отправлено: usalex от 26 июня 2021, 12:41:19
Win 10 x64 LTSB 1607
Графика: NVIDIA GTX 1050Ti
(драйверы последние и несколько предыдущих)

Версия плеера: ---> х86 и х64, любой билд, начиная с 5696 (баг привнесен именно 5696-ым коммитом)

Как воспроизвести:
В настройках плеера включить опции: "Показать OSD " и "Показывать время после поиска".
Назначить на колесо мыши команды: "Переход вперед (средний)" и "Переход назад (средний)".
Запустить файл на просмотр в эксклюзиве и плавными многократными прокручиваниями колеса мыши перематывать файл вперед. Через некоторое время при очередном прокручивании плеер перестает отвечать на любые команды управления.
Ускорить вызов бага можно периодически вызывая таймлайн наведением курсора в низ экрана.

При отключении в настройках плеера опций: "Показать OSD " и "Показывать время после поиска" баг не воспроизводится.

Тип просматриваемого контента особого значения не имеет, но баг легче ловить на контенте 59.94fps.
Я тестирую на вот этом файле: https://rutracker.org/forum/viewtopic.php?t=6070060
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: V0lt от 26 июня 2021, 17:04:01
Ранее на рубоарде было упомянуто, что в свойствах EXE надо изменять какую-то опцию. Или не надо?
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 26 июня 2021, 17:47:40
V0lt, на LTSB - не нужно (там даже нет такой галки).
На новых виндах - скорее всего, нужно.
В новых виндах по умолчанию работает эмуляция полноэкранного режима - даже скриншоты можно в эксклюзиве делать - получается не малевич, как на нормальном эксклюзиве, а полноценная картинка. Такая эмуляция - это по сути тот же самый оконный режим, а в оконном режиме бага нет, баг только в эксклюзиве.
Поэтому в новых виндах нужно в свойствах экзешника на вкладке "совместимость" поставить галочку: "Отключить оптимизацию для полного экрана".
Но я на новых виндах пока не тестил, и это - только моё предположение насчет отключения оптимизации полного экрана.
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 26 июня 2021, 19:31:20
Для ускорения проявления бага крутить колесо мыши лучше так:

-- несколько (3-4) прокруток (на пол колеса) вперед и затем 1-2 прокрутки назад.
-- вызов таймлайна.

Этот цикл повторять до проявления бага.
У меня уходит минут 3-5, чтоб отловить. Но бывает, что почти сразу ловится.
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: Aleksoid1978 от 27 июня 2021, 07:10:07
Вот пробуем - https://disk.yandex.ru/d/F_veHAMh6X0FVg
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 27 июня 2021, 14:46:24
Aleksoid1978
Баг не воспроизводится.
Но гонял не очень много - чуть менее часа.

Недостаток этого билда в том, что появились сильные лаги.
Заторможенная реакция плеера на команды. Например, у меня на RMB+Колесо назначено увеличение/уменьшение громкости. Кручу колесо, а громкость и счетчик громкости реагируют с запозданием. Вызов/скрытие таймлайна и флайбара также заторможен.
Эти тормоза - в эксклюзиве. В окне тормозов нет - всё мгновенно отрабатывает.
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: Aleksoid1978 от 27 июня 2021, 14:58:28
Цитата: usalex от 27 июня 2021, 14:46:24
Aleksoid1978
Баг не воспроизводится.
Но гонял не очень много - чуть менее часа.

Недостаток этого билда в том, что появились сильные лаги.
Заторможенная реакция плеера на команды. Например, у меня на RMB+Колесо назначено увеличение/уменьшение громкости. Кручу колесо, а громкость и счетчик громкости реагируют с запозданием. Вызов/скрытие таймлайна и флайбара также заторможен.
Эти тормоза - в эксклюзиве. В окне тормозов нет - всё мгновенно отрабатывает.

А сможешь заснять видео с этим "затормаживанием", чтобы хоть понять примерно что это и на сколько затормаживается ?

P.S. Проверил у себя - все отлично, никакого затормаживания.
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 27 июня 2021, 15:28:14
Aleksoid1978, сложно держать камеру и елозить мышкой одновременно.
Но вот маленький примерчик заторможенного таймлайна.
https://disk.yandex.ru/i/K15ywBmTeY3How
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: Aleksoid1978 от 27 июня 2021, 15:39:04
Очень странно, даже ничего похожего у себя не наблюдаю. Отключил полноэкранную оптимизацию, проверял на EVR-CP в FSE режиме(правда на 2-ом экране, на телевизоре).
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: Aleksoid1978 от 27 июня 2021, 15:43:43
Вот щас эту версию поставил на постоянное пользование, проверяем - https://disk.yandex.ru/d/GaFHvVRjo4BmDA
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 27 июня 2021, 17:29:17
Цитата: Aleksoid1978 от 27 июня 2021, 15:39:04
...проверял на EVR-CP в FSE режиме(правда на 2-ом экране, на телевизоре).
Я тоже с телевизора видео снимал :)
Но эти тормоза с тамлайном не постоянно, а примерно 50/50.
Но вот громкость всегда запаздывает относительно колеса мыши.

Щас немного доделаю кое-чего и начну твой второй тестовый билд гонять.
Спасибо!
Ты не думай, что я не понимаю, насколько тебе это действительно на фиг не надо.
Поэтому абсолютно не обижусь, если ты прекратишь попытки.
К тому же, если правильно понимаю, тебе так и не удалось воспроизвести баг, а чинить вслепую это...
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 27 июня 2021, 19:08:19
Цитата: Aleksoid1978 от 27 июня 2021, 15:43:43
Вот щас эту версию поставил на постоянное пользование, проверяем - https://disk.yandex.ru/d/GaFHvVRjo4BmDA
Поведение такое же, как и у предыдущего.
Пока, наверное, можно оставить так.
Главное, что теперь не ловится баг потери управления.
СПАСИБО!
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 02 июля 2021, 17:43:51
В общем... разобрался откуда ноги растут у этого "бага".
Всё дело в HPET - высокоточном таймере событий.

Если он включен - бага нет ни на каких билдах.
Если он выключен - баг есть на билдах с 5696 по 6317 включительно.

Причем отключение HPET через диспетчер устройств ваще не роялит. Отключать нужно командами:
bcdedit /deletevalue useplatformclock
bcdedit /set disabledynamictick yes

Обидно, вах.

С включенным таймером винда - тормоз.
Проводник тормозит, запуск программ долгий, в тесте "Спидометр 2.0" набираю 93 очка против 114 с выключенным таймером.

А с выключенным таймером винда резко оживает, в плеере баг не проявляется после починки в 6318 -- это гуд. Но зато гадкие задержки на действия (о них я выше говорил).

P.S. Это всё касательно винды LTSB
Пробовал вкл/выкл таймер на Win11 --  вообще никакой разницы (возможно, это из-за того, что 11 у меня на VHD).
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: Aleksoid1978 от 03 июля 2021, 07:21:04
Что это за винда такая, какой то там таймер ...
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: V0lt от 03 июля 2021, 10:26:28
https://docs.microsoft.com/en-us/windows/win32/sysinfo/acquiring-high-resolution-time-stamps
ЦитироватьHPET Timer

    The High Precision Event Timer (HPET) was developed jointly by Intel and Microsoft to meet the timing requirements of multimedia and other time-sensitive applications. HPET support has been in Windows since Windows Vista, and Windows 7 and Windows 8 Hardware Logo certification requires HPET support in the hardware platform.
В общем юзер своими действиями влияет на работу QueryPerformanceCounter из-за чего получает проблемы.

Еще - High Precision Event Timer (https://en.wikipedia.org/wiki/High_Precision_Event_Timer)
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 03 июля 2021, 13:11:25
Цитата: V0lt от 03 июля 2021, 10:26:28В общем юзер своими действиями влияет на работу QueryPerformanceCounter из-за чего получает проблемы.
Проблема только одна - это OSD в mpc-be.
Все остальные приложения (включая OSD в Pot-player) работают отлично.
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: Aleksoid1978 от 03 июля 2021, 15:46:25
1 - Такое только у тебя, виной том твоя LTSB винда или какие-то твики, или еще что-то.
2 - Никто не запрещает пользоваться тем, где нет никаких проблем.
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 03 июля 2021, 16:58:45
Aleksoid1978, да я никого и ни в чем не виню :)
Просто странно, что твик влияет только на mpc-be и только на эксклюзив и только на EVR-CP (на MPCVR в эксклюзиве всё в порядке).
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 04 июля 2021, 02:02:06
В общем, решил проблему тормозов OSD.
Дело было в некорректном способе отключения HPTE.
Отключил его правильным методом и теперь не тормозит ни винда ни OSD.
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: V0lt от 04 июля 2021, 08:14:22
Цитата: usalex от 04 июля 2021, 02:02:06
В общем, решил проблему тормозов OSD.
Дело было в некорректном способе отключения HPTE.
Отключил его правильным методом и теперь не тормозит ни винда ни OSD.
Возникла проблема. Перерыл весь интернет, прочитал половину StackOverflow, просмотрел сотню тупых видео-инструкций. Все тщетно. Наконец, на одном из форумов в архиве интернета нашел похожую тему, которую сам создал по молодости и забыл. В конце темы вижу свое сообщение "Всем спасибо. Решил проблему сам". #@$%^@$#&^!!!
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 04 июля 2021, 12:15:36
V0lt, не злись.
Я действовал по ситуации.
Была проблема, но не было понимания откуда она взялась.
Теперь проблема, вроде, решена.
Всё было честно.
Тебе и Aleksoid1978 - большое спасибо.
Но извиняться мне не за что.
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: V0lt от 04 июля 2021, 18:27:59
usalex
Я к тому, что если упомянут "правильный метод отключения HPTE", то его очень желательно описать или дать ссылку, где он подробно описан.
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 04 июля 2021, 20:24:11
V0lt, корректно отключать HPET нужно так:
в консоли от Админа:
bcdedit /set useplatformtick false
bcdedit /set useplatformclock false
bcdedit /set disabledynamictick true
bcdedit /set tscsyncpolicy Enhanced
(ну и ещё можно отключить "Высокоточный таймер" в Диспетчере устройств на всякий)
Метод нашел вот тут:
https://eu.forums.blizzard.com/ru/overwatch/t/падение-падение-времени-кадра-лаги-с-сим/13891/35 (https://eu.forums.blizzard.com/ru/overwatch/t/%D0%BF%D0%B0%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%B0%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8-%D0%BA%D0%B0%D0%B4%D1%80%D0%B0-%D0%BB%D0%B0%D0%B3%D0%B8-%D1%81-%D1%81%D0%B8%D0%BC/13891/35)

В тырнете много статей, в которых советуют отключать так:
bcdedit /deletevalue useplatformclock
bcdedit /set disabledynamictick yes

Но трабла с задержкой всплытия/скрытия таймлайна и замедленная реакция на изменение громкости колесом была как раз из-за bcdedit /deletevalue useplatformclock
Так что... полностью удалять параметр НЕЛЬЗЯ.

P.S. в некоторых BIOS (в основном - в старых) есть настройка для вкл/откл HPET (в моем BIOS её нет).
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: Aleksoid1978 от 05 июля 2021, 08:55:49
Вот интересно, что я делаю не так уже как минимум пару десятилетий с копейками, что никогда не трогал данные "опции" и все работало как надо ?
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 05 июля 2021, 11:18:49
Aleksoid1978, если все устраивает, значит все делаешь правильно. :)
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: V0lt от 05 июля 2021, 16:49:35
Скачал по ссылке (https://www.overclockers.at/articles/the-hpet-bug-what-it-is-and-what-it-isnt) TimerBench 1.5.
Дома, на работе, на ноутбуке прога пишет - QPC mode: Invariant TSC.
Win7 x64, Win8.1 x64, Win10 x64.

В общем у себя HPET не обнаруживаю.
Название: Re: Потеря управления в эксклюзиве при перемотке
Отправлено: usalex от 05 июля 2021, 20:34:41
V0lt, а я вообще не запускал этот тест.
У меня и так невооруженным глазом видна разница между включенным и выключенным HPET.