Автор Тема: MPC Video Renderer  (Прочитано 67845 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2198
MPC Video Renderer
« Ответ #315 : 21 Август 2019, 06:42:10 »
Странное поведение - значительно повышается время потраченное на обработку субтитров(хотя их там и нет). Но
то все вызвано принудительной перерисовкой по время ресайза видео-области. И из-за этого получается следующие кадры уже не успевают и пропускаются.

Кстати такое поведение только на Discard, на Flip нет(но картинка моргает при ресайзе).
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #316 : 21 Август 2019, 15:17:37 »
Цитата: Evgeniy1990
Если, при "Direct3D 9Ex", мы откроем плейлист и будем растягивать его вверх, или налево, в зависимости от его расположения, то у нас резко начинает возрастать Sync Offset и появляются пропущенные кадры прямо во время воспроизведения видео файла.
Рендерер не рассчитан на плавное воспроизведение, если его окно постоянно изменяют.
Появление пропущенных кадров зависит не только от DX, но и от режима презентации.
У меня на Win8.1 так
DX9, Discard - пропускаются.
DX9, FlipEx - выводится все.
DX11, Discard - выводится все.
DX11, Flip seqential - пропускаются.

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1436
MPC Video Renderer
« Ответ #317 : 25 Август 2019, 09:35:40 »
Цитата: V0lt
Рендерер не рассчитан на плавное воспроизведение, если его окно постоянно изменяют.
Появление пропущенных кадров зависит не только от DX, но и от режима презентации.
О как...  Вот так новость...  о_О
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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #318 : 25 Август 2019, 11:47:30 »
Evgeniy1990
Поясню. При изменении окна рендерер постоянно рендерит имеющийся кадр под новый размер. Если декодер подготовил новый кадр, то ему придется подождать, когда рендерер освободиться. Но время идет, и может получиться так, что кадр от декодера уже устарел и нужен следующий. Поэтому кадр будет пропущен.

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1436
MPC Video Renderer
« Ответ #319 : 25 Август 2019, 13:44:18 »
Цитата: V0lt
Evgeniy1990
Поясню. При изменении окна рендерер постоянно рендерит имеющийся кадр под новый размер. Если декодер подготовил новый кадр, то ему придется подождать, когда рендерер освободиться. Но время идет, и может получиться так, что кадр от декодера уже устарел и нужен следующий. Поэтому кадр будет пропущен.
Понятно. Просто я удивлен тому, насколько жестко ведет себя этот самый "Direct3D 9Ex", который, как мне всегда казалось, так вести себя никогда не должен. Ведь на том же EVR-CP Direct3D9 так себя не ведет. А мерцание изображения (кадров) при Flip/FlipEx - это вообще нечто. Странно, что Direct3D11 так себя не ведет.

Я это к тому, что если используется "Direct3D9 Ex", то при различных взаимодействиях с окнами плеера и плейлистом очень резко и сильно возрастает нагрузка. Это не есть хорошо. Скажем так - не критично, но неприятно.

И еще - как получить этот "Flip seqential"? У меня всегда, при любых конфигурациях, только "Flip discard" работает.
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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #320 : 25 Август 2019, 15:02:03 »
Evgeniy1990
"Flip discard" доступен только для Windows 10 и если при сборке использовался Win10SDK. Для остальных случаев для DX11+Flip будет использоваться "Flip seqential".

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1436
MPC Video Renderer
« Ответ #321 : 26 Август 2019, 15:51:29 »
Цитата: V0lt
Evgeniy1990
"Flip discard" доступен только для Windows 10 и если при сборке использовался Win10SDK. Для остальных случаев для DX11+Flip будет использоваться "Flip seqential".
Ух ты, так это оказывается, еще и особенность Windows 10 и пакета Win10SDK. Здорово! Значит я не зря собираю сборки с использованием Win10SDK. :)
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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2198
MPC Video Renderer
« Ответ #322 : 29 Август 2019, 08:32:41 »
По поводу "медленного" ресайза, по поводу моргания при ресайзе(DX9 + Flip) - проверяем
https://yadi.sk/d/v9IWDMoEp-FlUw

Добавлено: 2019-08-29 18:32:41

Хотя уже не актуально, собираем последний BE и VR и проверям
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1436
MPC Video Renderer
« Ответ #323 : 29 Август 2019, 19:25:39 »
Цитата: Aleksoid1978
По поводу "медленного" ресайза, по поводу моргания при ресайзе(DX9 + Flip) - проверяем
https://yadi.sk/d/v9IWDMoEp-FlUw

Добавлено: 2019-08-29 18:32:41

Хотя уже не актуально, собираем последний BE и VR и проверям
Проверил тестовый билд, а также собрал и проверил последний SVN-билд вместе с последним MPC Video Renderer.
В результате, ресайз стал работать нормально, плавно и быстро, без пропусков кадров на "Direct3D 9Ex". Также пропало мерцание изображения при "Direct3D 9Ex" + "FlipEx". Великолепно! Вы меня удивили! Даже и не ожидал, что это можно исправить, но вам удалось! ;)
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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #324 : 04 Сентябрь 2019, 03:03:56 »
В планах выделить видеопроцессор D3D11 в отдельный класс. С ним проще экспериментировать, чем с DXVA2 VP.

Для чего это нужно:
1. Я надеюсь это поможет организовать более гибкий конвейер.
2. Хочу попробовать использовать D3D11 VP только для деинтерлейса для NV12 и YUY2.
3. Хочу попробовать вообще отключить D3D11 VP и попробовать задействовать шейдеры DX11 на Windows 7.

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #325 : 07 Сентябрь 2019, 19:27:48 »
Собрал тестовую сборку MPCVR-v0.3.1.845_check_dxva2vp_output_format_1.
Причина в следующем. Видеопроцессор DXVA2 видеокарты AMD RX 460 умеет выводить только в X8R8G8B8, если на входе P010. Поэтому пришлось добавить проверку поддержки выходного формата для DXVA2 VP. В общем теперь делаем согласно спецификации.
Прошу проверить.

PS: Ранее вывод в A2R10G10B10 и A16B16G16R16F происходил без проверок, потому что DXVA2 VP Nvidia умеет так делать с дремучих времен вопреки тому, что сообщает DXVA2 API. Для старых AMD (до поддержки P010), насколько мне известно было аналогично. Intel не умел в EVR-CP, но научился, когда стали вызывать DXVA2 API напрямую. Но похоже этот "беспредел" закончился на AMD RX. :-)

Добавлено: 2019-09-07 13:01:30

Залил v0.3.1.847_git2019.09.07-7ef54e3 с изменениями для DXVA2 VP.


Добавлено: 2019-09-07 22:27:48

Залил v0.3.1.850_git2019.09.07-133a244.
Проблемы на AMD RX похоже устранены.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2198
MPC Video Renderer
« Ответ #326 : 16 Сентябрь 2019, 22:49:49 »
"Проблемы" с бикубической chroma scaling при использовании DXVA2/D3D11 Native декодирования.
GPU - https://i.imgur.com/sUjpz3R.png
Софт - https://i.imgur.com/vFzxa3U.png
Обращаем внимание на границы красных элементов

Сэмпл - https://yadi.sk/i/xUBXqKgjX_LwJw + https://yadi.sk/i/WI4cD_d8EcDqKw
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #327 : 17 Сентябрь 2019, 18:00:36 »
Aleksoid1978
На DX9 c DXVA2 на Win7 не проявляется вроде. На DX11 проверю завтра.

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #328 : 20 Сентябрь 2019, 03:55:59 »
На DX11 после DXVA2 декодера проблему вижу. Похоже где-то проявляется неправильное значение высоты.

Попробую найти и исправить, а в будущем наверное более радикально переделаю.

Исправлено в 76da2dc.

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1793
MPC Video Renderer
« Ответ #329 : 07 Октябрь 2019, 06:10:59 »
mpcvr-v0.3.3.870_classD3D11VP_3
Обновление сборки, где D3D11 VP в отдельном классе.