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

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

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2208
MPC Video Renderer
« Ответ #615 : 17 Февраль 2020, 02:01:07 »
Ну значит на радеоне слишком затратный прямой доступ к GPU памяти, ну и то что DDR2 тоже может сказаться.

Добавлено: 2020-02-17 12:01:07

Evgeniy1990
Могу подсказать что посмотреть дабы увидеть причину такого длительного копирования данных.
DX11VideoProcessor.cpp - строка 1444 ставишь бряку, запускаешь проигрывание того 10-битного видео. Когда студия останавливается - жмешь F10(один шаг) - и студия покажет сколько времени занял этот кусок кода. Тоже самое на строке 1446.

Проверять ессно надо в релизной версии.
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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1811
MPC Video Renderer
« Ответ #616 : 17 Февраль 2020, 05:42:05 »
Evgeniy1990
Про зелень непонятно. Нужен скриншот статистики.

Собрал mpcvr_1137_upsr_3. Эта версии должна быть более совместимая с разными входными форматами.

Добавлено: 2020-02-17 08:29:01

Зелень увидел на Win8.1.


Добавлено: 2020-02-17 08:42:05

Выкладываю mpcvr_1137_upsr_4. Зелень вроде убрал.

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1453
MPC Video Renderer
« Ответ #617 : 17 Февраль 2020, 05:48:33 »
V0lt,
Цитировать
Выкладываю mpcvr_1137_upsr_4. Зелень вроде убрал.
Ха, зелень так и осталась.
И еще поломался D3D11 видеопроцессор. Работает только Shaders.
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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1811
MPC Video Renderer
« Ответ #618 : 17 Февраль 2020, 07:19:01 »
Evgeniy1990
Спасибо.

Пойдем по более простому варианту. Прелагаю сборку mpcvr_1137_nv12p010_d3d11vp. В рендерере должен быть включен режим D3D11 и статистика, остальные настройки по умолчанию.

В этой сборке должно ускориться для NV12 и P010. Хорошо заметно на встройках.

Добавлено: 2020-02-17 10:19:01

Decoder DXVA + видеопроцессор D3D11
Было:
D3D9.LockRect/UnlockRect -> D3D11.Map/Unmap -> memcpy -> D3D11.CopyResource
Стало:
D3D9.LockRect/UnlockRect -> D3D11.UpdateSubresource

Програмный декодер + видеопроцессор D3D11
Было:
D3D11.Map/Unmap -> memcpy -> D3D11.CopyResource
Стало:
D3D11.UpdateSubresource

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1453
MPC Video Renderer
« Ответ #619 : 17 Февраль 2020, 16:35:06 »
V0lt,
Цитировать
Пойдем по более простому варианту. Прелагаю сборку mpcvr_1137_nv12p010_d3d11vp. В рендерере должен быть включен режим D3D11 и статистика, остальные настройки по умолчанию.
Проверил вашу сборку. Увы, пока не помогло...

Результат печальный.

1. Присутствует зеленый экран на ваших 10-битных HEVC.
2. Во время воспроизведения, присутствуют пропуски кадров.
3. D3D11-видеопроцессор работает.

Прилагаю короткую видеозапись.
Обратите пожалуйста внимание на статистику 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.

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1811
MPC Video Renderer
« Ответ #620 : 17 Февраль 2020, 17:54:50 »
Evgeniy1990
Даже не знаю что сказать. Сделай лог для mpcvr_1138_nv12p010_d3d11vp_Debug с помощью DebugView, пожалуйста. Находится там же.

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1453
MPC Video Renderer
« Ответ #621 : 17 Февраль 2020, 18:37:27 »
Цитата: V0lt
Даже не знаю что сказать. Сделай лог для mpcvr_1138_nv12p010_d3d11vp_Debug с помощью DebugView, пожалуйста. Находится там же.
Сделал. Пожалуйста.
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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1811
MPC Video Renderer
« Ответ #622 : 18 Февраль 2020, 03:44:15 »
Evgeniy1990, судя по логу все хорошо. Почему у тебя зелень в этом билде, мне непонятно.

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1453
MPC Video Renderer
« Ответ #623 : 18 Февраль 2020, 03:51:52 »
V0lt,
Цитировать
Evgeniy1990, судя по логу все хорошо. Почему у тебя зелень в этом билде, мне непонятно.
Вот и мне непонятно. Что самое странное, так это то что зелень присутствует только в ваших тестовых билдах, на Git-билдах ее и близко нет.
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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1811
MPC Video Renderer
« Ответ #624 : 18 Февраль 2020, 03:56:27 »
Evgeniy1990
На этой машине студия установлена? Это может повлиять на полноту лога.

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1453
MPC Video Renderer
« Ответ #625 : 18 Февраль 2020, 04:06:02 »
V0lt,
Цитировать
На этой машине студия установлена?
Конечно, установлена.

Я предлагаю вам сделать проще, подключиться ко мне удаленно через TeamViewer и удаленным способом разобраться. Данные для входа могу отправить вам в личку.
Студия, все исходники и весь инструментарий у меня установлены и настроены.
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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1811
MPC Video Renderer
« Ответ #626 : 18 Февраль 2020, 06:08:50 »
В общем все очень странно. У тебя на AMD UpdateSubresource() просто не работает и никаких ошибок не выдает.

Nvidia не советует использовать UpdateSubresource() для часто изменяемых ресурсов, но если не использовать, то приходится делать дополнительное копирование, т.к. D3D11 VP хочет текстуру определенного типа. А на встройках Intel лишнее копирование заметно тормозит процесс передачи кадра в D3D11 VP. Такая вот ерунда.

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1453
MPC Video Renderer
« Ответ #627 : 18 Февраль 2020, 12:47:25 »
V0lt,
Цитировать
В общем все очень странно. У тебя на AMD UpdateSubresource() просто не работает и никаких ошибок не выдает.

Nvidia не советует использовать UpdateSubresource() для часто изменяемых ресурсов, но если не использовать, то приходится делать дополнительное копирование, т.к. D3D11 VP хочет текстуру определенного типа. А на встройках Intel лишнее копирование заметно тормозит процесс передачи кадра в D3D11 VP. Такая вот ерунда.
Да уж, ну и ерунда... Один не требует, другой - требует, третьему хуже с требуемой функцией...
Получается, что для каждого вендора (производителя графического процессора) требуется свой собственный определенный алгоритм (программный код). Выходит, что реализовать некий универсальный алгоритм сразу для трех вендоров не получится.
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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1811
MPC Video Renderer
« Ответ #628 : 19 Февраль 2020, 06:11:32 »
Сейчас способ копирования как раз универсальный. Но он на встроенных видеокартах тормозит. Я попытался сделать быстрее, но на AMD не прокатило.

В общем обновил сборку mpcvr_1144_d3d11vp_UpdateSubresource. Вдруг кто-нибудь еще захочет потестировать на Intel.

lexxx

  • Пользователь
  • **
  • Сообщений: 15
MPC Video Renderer
« Ответ #629 : 19 Февраль 2020, 06:33:25 »
С какими-нибудь новым драйвером на AMD вдруг заработает, или новым драйвером НЕ AMD вдруг сломается. Может имеет смысл вынести такие неоднозначные оптимизации в опцию, типа как раньше было в винде: отключить аппаратное ускорение, или уровень аппаратного ускорения. А значения опций в сборке по умолчанию ставить подходящим для вендора на момент выхода сборки. Конечно, у кого оптимизация работает, не хотелось бы ее терять.