Aleksoid1978 / VideoRenderer

Внешний видео-рендерер
GNU General Public License v3.0
983 stars 108 forks source link

The playback is running on CPU only with the latest MPC-VR #134

Closed Victor-Freeze closed 4 months ago

Victor-Freeze commented 4 months ago

MPC Video Renderer 0.7.3.2210 has lost the ability to play video using GPU — video playback is always running on the CPU when the video player is using MPC VR as a video renderer.

The video player tested is MPC-HC 2.1.6, video codec h.265.

There is no such problem with other video renderers.

====

Operating System: Windows 10 Pro 64-bit (10.0, Build 19045) (19041.vb_release.191206-1406) Processor: AMD Ryzen 9 5950X 16-Core Processor (32 CPUs), ~3.4GHz Memory: 32768MB RAM

Display Devices

       Card name: NVIDIA GeForce RTX 4090

Driver File Version: 31.00.0015.5176 (English) Driver Version: 31.0.15.5176 DDI Version: 12 Feature Levels: 12_1,12_0,11_1,11_0,10_1,10_0,9_3,9_2,9_1 Driver Model: WDDM 2.7 Hardware Scheduling: Supported:True Enabled:True

clsid2 commented 4 months ago

Change hardware decoder to D3D11. MPC-HC options > Internal Filters > Video Decoder

Victor-Freeze commented 4 months ago

Change hardware decoder to D3D11. MPC-HC options > Internal Filters > Video Decoder

I did. It doesn't help. Previously, it worked fine with GPU playback.

Screenshot 2024-03-09 024014 Screenshot 2024-03-09 024119
Victor-Freeze commented 4 months ago

Windows 10 DirectX 11 Graphics adapter: NVIDIA GeForce RTX 4090 (10DE:2684) VideoProcessor : D3D11, RateConversion_0 DeinterlaceTech.: Reference Frames: Past 0, Future 0 Display: PA32UCX 3840x2160 59.997 Hz Primary windowed Color: RGB 10-bit HDR10: on

======================

Filter : MPC Video Renderer - CLSID : {71F080AA-8661-4093-B15E-4F6903E77D0A}

CLSID: {EE30215D-164F-4A92-A4EB-9D4C13390F9F} Filter: LAV Video Decoder (internal) Pin: Output

Video: P010 3840x2160 23.976fps

AM_MEDIA_TYPE: majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71} subtype: MEDIASUBTYPE_P010 {30313050-0000-0010-8000-00AA00389B71} formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA} bFixedSizeSamples: 1 bTemporalCompression: 0 lSampleSize: 24883200 cbFormat: 112

VIDEOINFOHEADER: rcSource: (0,0)-(3840,2160) rcTarget: (0,0)-(3840,2160) dwBitRate: 0 dwBitErrorRate: 0 AvgTimePerFrame: 417083

VIDEOINFOHEADER2: dwInterlaceFlags: 0x00000000 dwCopyProtectFlags: 0x00000000 dwPictAspectRatioX: 16 dwPictAspectRatioY: 9 dwControlFlags: 0x7a422781 dwReserved2: 0x00000000

BITMAPINFOHEADER: biSize: 40 biWidth: 3840 biHeight: 2160 biPlanes: 1 biBitCount: 24 biCompression: P010 biSizeImage: 24883200 biXPelsPerMeter: 0 biYPelsPerMeter: 0 biClrUsed: 0 biClrImportant: 0

pbFormat: 0000: 00 00 00 00 00 00 00 00 00 0f 00 00 70 08 00 00 ............p... 0010: 00 00 00 00 00 00 00 00 00 0f 00 00 70 08 00 00 ............p... 0020: 00 00 00 00 00 00 00 00 3b 5d 06 00 00 00 00 00 ........;]...... 0030: 00 00 00 00 00 00 00 00 10 00 00 00 09 00 00 00 ................ 0040: 81 27 42 7a 00 00 00 00 28 00 00 00 00 0f 00 00 'Bz....(....... 0050: 70 08 00 00 01 00 18 00 50 30 31 30 00 b0 7b 01 p.......P010.°{. 0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

Victor-Freeze commented 4 months ago

For MadVR it is:

Filter : madVR - CLSID : {E1A8B82A-32CE-4B0D-BE0D-AA68C772E423}

CLSID: {EE30215D-164F-4A92-A4EB-9D4C13390F9F} Filter: LAV Video Decoder (internal) Pin: Output

Video: DXVA 3840x2160 23.976fps

AM_MEDIA_TYPE: majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71} subtype: MEDIASUBTYPE_P010 {30313050-0000-0010-8000-00AA00389B71} formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA} bFixedSizeSamples: 1 bTemporalCompression: 0 lSampleSize: 24883200 cbFormat: 112

VIDEOINFOHEADER: rcSource: (0,0)-(3840,2160) rcTarget: (0,0)-(3840,2160) dwBitRate: 0 dwBitErrorRate: 0 AvgTimePerFrame: 417083

VIDEOINFOHEADER2: dwInterlaceFlags: 0x00000000 dwCopyProtectFlags: 0x00000000 dwPictAspectRatioX: 16 dwPictAspectRatioY: 9 dwControlFlags: 0x7a422781 dwReserved2: 0x00000000

BITMAPINFOHEADER: biSize: 40 biWidth: 3840 biHeight: 2160 biPlanes: 1 biBitCount: 24 biCompression: dxva biSizeImage: 24883200 biXPelsPerMeter: 0 biYPelsPerMeter: 0 biClrUsed: 0 biClrImportant: 0

pbFormat: 0000: 00 00 00 00 00 00 00 00 00 0f 00 00 70 08 00 00 ............p... 0010: 00 00 00 00 00 00 00 00 00 0f 00 00 70 08 00 00 ............p... 0020: 00 00 00 00 00 00 00 00 3b 5d 06 00 00 00 00 00 ........;]...... 0030: 00 00 00 00 00 00 00 00 10 00 00 00 09 00 00 00 ................ 0040: 81 27 42 7a 00 00 00 00 28 00 00 00 00 0f 00 00 'Bz....(....... 0050: 70 08 00 00 01 00 18 00 64 78 76 61 00 b0 7b 01 p.......dxva.°{. 0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

NBruderman commented 4 months ago

Run the video. While running it, go to the taskbar icons (where the language and clock is). open the red Lav icon, and there, in hardware decoder to use, make sure to pick D3D11

Also, @clsid2, for some reason the internal Lav filters are inactive while I'm using MPCVR, the external one is the one which counts (the internal one shows inactive, while the external one shows it works as it should). Maybe its something with the K-lite package, that counts it as external? Regardless, seems like at least for me, hardware playback works fine with MPCVR

Victor-Freeze commented 4 months ago

Run the video. While running it, go to the taskbar icons (where the language and clock is). open the red Lav icon, and there, in hardware decoder to use, make sure to pick D3D11

Also, @clsid2, for some reason the internal Lav filters are inactive while I'm using MPCVR, the external one is the one which counts (the internal one shows inactive, while the external one shows it works as it should). Maybe its something with the K-lite package, that counts it as external? Regardless, seems like at least for me, hardware playback works fine with MPCVR

Thanks! It did the trick! You can access internal LAV filters as shown in the screenshot:

Screenshot 2024-03-09 030249
Victor-Freeze commented 4 months ago

The issue can now be closed. I'm sorry for any trouble caused. @NBruderman Thank you so much!

NBruderman commented 4 months ago

No problems! But that's actually raising an interesting question... why the external filters are being chosen over the internal ones... Anyway, @Victor-Freeze, you can close the issue yourself, just mark it as completed

Victor-Freeze commented 4 months ago

No problems! But that's actually raising an interesting question... why the external filters are being chosen over the internal ones... Anyway, @Victor-Freeze, you can close the issue yourself, just mark it as completed

If you mark the external filter as "Prefer" - the MPC-HC will be using the external one, instead of internal.

Screenshot 2024-03-09 132608
v0lt commented 4 months ago

https://github.com/Aleksoid1978/VideoRenderer/blob/master/history.txt

0.7.1.2172 - 2023-12-25
------------------------
The DXVA2 decoder is no longer supported in DirectX 11 mode.

I recommend using the MPC-BE player. The built-in MPC Video Decoder with default settings will use the first available D3D11, DXVA2 or software decoder.

clsid2 commented 4 months ago

External filters list should be EMPTY !!!!

Stop doing dumb things.

NBruderman commented 4 months ago

External filters list should be EMPTY !!!!

Stop doing dumb things.

My external filter is empty, and for some reason it still default to the external lav. Maybe it's related to K lite installation? After all, it installs the regular MPCVR, not the fork.

clsid2 commented 4 months ago

K-Lite uses internal LAV by default. You should update and do a fresh install.

NBruderman commented 4 months ago

K-Lite uses internal LAV by default. You should update and do a fresh install.

Can confirm a fresh install fixed the issue