MPC Video Renderer

Автор V0lt, 24 февраля 2018, 19:10:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Aleksoid1978

Цитата: MPCfan от 10 июня 2020, 12:47:45
Aleksoid1978,
Заметил, что 60 fps и 30 fps воспроизводятся не совсем корректно. Значит хак 24Hz-60Hz для эксклюзива пока не работает?

Нет - этого не делал, возможно будет - но позже :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Aleksoid1978,
Цитировать
Да уж непросто, а если бы еще знать как эта "хрень" под названием "Direct3D9" работает с окнами и потоками - тут как говориться "знал бы заранее - обошел стороной" :)
Проверил я свой алгоритм уже на другой машине с ATI Radeon HD 5770. Вот на ней работает нормально режим FSE, при переключении на второй монитор. Но не все так просто... Да, вы правы, дело 100% - в драйверах. На более новых версиях драйверов переключение в режим FSE "на лету", на второй монитор работает нормально.

Теперь, что касается потоков. Почему я сказал, что "не все так просто"? Потому что режим FSE на втором мониторе нормально работает только если используется аппаратное ускорение. Стоит только отключить DXVA2 и заново выполнить данный алгоритм, как тут же получаем зависшее черное окно FSE. Вот в чем беда и проблема.

Теперь о поддержке потоков аппаратного ускорения:

Видеокарта "ATI Radeon HD 3650" имеет всего лишь один поток аппаратного ускорения. Это значит, что если на одном мониторе запустить два видео файла одного формата, например того же H.264, аппаратное ускорение будет работать только на первом запущенном файле, другой файл, в другом окне плеера, будет воспроизводится в софте.

Видеокарта "ATI Radeon HD 5770" имеет многопоточную поддержку аппаратного ускорения. Это значит, что если на одном мониторе запустить два видео файла одного формата, например того же H.264, аппаратное ускорение будет работать на двух и более видео файлах, запущенных одновременно.

Так вот, именно поэтому, я и наблюдаю у себя разницу в работе режима FSE. Что непонятно, так это то, что режим FSE способен нормально работать на втором мониторе, только в режиме аппаратного ускорения DXVA2. Непонятно, почему он не может работать в софте? Вот в чем странность.

P.S. Теперь я понял на все 100% что реализовывать отдельное окно для режима FSE - неразумная идея, ибо для более старых видеокарт, которые имеют поддержку всего лишь одного потока аппаратного ускорения декодирования видео, DXVA2 остается на первом мониторе, а сам режим FSE - на другом, только уже в софте. Для более новых видеокарт, данная проблема неактуальна, ибо им это не грозит, поскольку они имеют многопоточную поддержку аппаратного ускорения декодирования видео.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Evgeniy1990

Aleksoid1978,
Проверил ситуацию с софт-декодированием в режиме FSE на втором мониторе на EVR-CP и madVR. Вот на них нормально работает режим FSE, при софт-декодировании на втором мониторе. Ясно, значит проблема только на MPC VR.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Ну я смогу только у себя проверить в софтовом декодировании.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Aleksoid1978

Ну у меня все ок.
Короче я заливаю текущий вариант. Дальше уже надо думать про DX11 FSE режим :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Aleksoid1978,
ЦитироватьНу я смогу только у себя проверить в софтовом декодировании.
ЦитироватьНу у меня все ок.
Ну это только у вас все ок. В моем случае - далеко не ок. Все-таки без удаленки эту проблему мы не исправим, а она неприятная. Ну, допустим, у нас есть видео файлы с поддержкой аппаратного декодирования. А как бы с теми, кто не имеет такой поддержки, например DivX, Xvid, msmpeg4 и т.д.?

Aleksoid1978,
Цитата: Aleksoid1978Короче я заливаю текущий вариант. Дальше уже надо думать про DX11 FSE режим :)
Заливайте пока все свои текущие наработки. В целом, режим FSE на DX9, на различных конфигурациях, за исключением некоторых случаев, работает нормально.

Прежде чем думать про FSE на DX11, может лучше сначала реализовать недостающие элементы? Или вам проще сначала реализовать FSE на DX11? Вот чувствую, что с DX11 FSE будет полная жесть, еще хуже, чем с DX9. А все потому, что у нас есть ситуация, когда DX11 способен в режиме "As is (как есть)" работать на Windows 7. Мне уже страшно представить, что я увижу, запустив его при данном условии.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

С FSE + DX11 вообще все очень интересно - DX11 берет на себя "вопросы" по работе с окном, меняет стили, меняет положение и т.д. В итоге имеем совершенно непонятного вида с неверным размером и положением наше основное окно MPC-BE после выхода из FSE. Пока даже мыслей нет что с этим делать - вопрос откладывается нап неопределенное время :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

MPCfan

V0lt,
Установил MPC Video Renderer 0.4.6.1328 (git-2020.06.11-60effda), по последним коммитам  статистика рендерера в отношении разрешения и герцов ведёт себя корректно, то есть статистика показывает то разрешение и те герцы монитора, на котором изначально было запущенно видео несмотря на то, что windowed FS уже на другом мониторе(ТВ) с другим разрешением и другими герцами. А вот когда уже на ТВ переходим на другие файлы, например с другим fps, для того, чтобы сработала авто-переключалка, есть некоторые нестыковки по герцам между статистикой и информацией в самом рендерере. Получается, что в статистике, например для 59,940 fps будет 60 000 HZ, а для 60 fps - 59 940 HZ, хотя в свойствах информация будет корректна. Вот небольшое видео для наглядности >  https://yadi.sk/i/W4aAaWYGdAF2YA

Evgeniy1990

Aleksoid1978,

Собрал и тщательно прогнал commit 60b1786. Вот уж действительно не ожидал такого... Вот совершенно не похоже на ваши последние тестовые отладочные билды. В данном коммите режим FSE работает совершенно не так, как работал в тестовых билдах.
Могу сказать, что вы меня удивили. Режим FSE, в данном коммите, работает полностью нормально, даже не виснет и даже отсутствует проблема с черным экраном FSE при софт-декодировании на втором мониторе. Единственным исключением является неработоспособность на видеокарте ATI Radeon HD 3650. На ней режим FSE способен нормально работать только на одном мониторе (экране) из-за драйверов. На новых моделях видеокарт и драйверов он работает абсолютно стабильно.

P.S. Не знаю, но может быть повлиял именно данный коммит на его работоспособность, ибо в последнем обновленном отладочном билде все совсем не так. Скорее всего, так оно и есть, иначе как объяснить тот факт, что проблемы, о которых я вам говорил - просто "исчезли сами собой". Остался только один изъян - неспособность выйти из режима FSE с первого раза.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

V0lt

MPCfan, в 0.4.6.1332 должно исправиться. Проверь.

MPCfan

#925
Цитата: V0lt от 12 июня 2020, 08:44:15
MPCfan, в 0.4.6.1332 должно исправиться. Проверь.
Хорошо, проверю. Да, ещё вот что: в DX9 субтитры не отображаются, в DX11 - без проблем.

Проверил. Спасибо. Всё корректно.

Aleksoid1978

#926
Да я гляну сабы, знаю примерно из-за чего :)

P.S. Исправил.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

#927
Собрал 0.4.6.1333.

Плеер иногда виснет при выходе из эксклюзива. Win8.1 x64.

Aleksoid1978

#928
Эксклюзив на одном экране ?
С помощью дебагера, к примеру WinDbg - можешь посмотреть из-за чего именно висим.

Исправил зависание - проверяем.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

MPCfan

#929
Aleksoid1978,
Re: "Первый запуск FSE". А никуда этот нюанс и не делся. Добрались у меня сегодня руки до другой железяки IntelHD5500/GeForce840mWin8.1. Установил 1.5.5 (build 5330) betax64 и MPC Video Renderer 0.4.6.1333 (git-2020.06.12-33fb4a4) x64. Включил эксклюзив, запускаю файл, перехожу в FSE, перехожу к перезагрузке. Опять пытаюсь перейти в FSE, опять зависаю, на этот раз обошлось без перезагрузки. Правда, после этого эксклюзив заработал. Знал бы , ставил бы debug. Подчеркну, что на этой железяке это был самый "первый раз".