Падение плеера при перемотке некоторых матрешек [Исправлено]

Автор Evgeniy1990, 03 октября 2019, 12:50:22

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

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

Aleksoid1978

Все верно - встроенный декодер на AMD при проигрывании H.264 при перемотке пересоздает DXVA2 декодер. А у нас получается что используем "устаревшую" текстуру.

Короче надо будет более тщательно потестировать.
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

Aleksoid1978, сделай патч, пожалуйста, чтобы декодер вел себя так на всех видеокартах.
Хочу потестировать, проверить идеи.

Aleksoid1978

Index: src/filters/transform/MPCVideoDec/MPCVideoDec.cpp
===================================================================
--- src/filters/transform/MPCVideoDec/MPCVideoDec.cpp    (revision 4795)
+++ src/filters/transform/MPCVideoDec/MPCVideoDec.cpp    (working copy)
@@ -2688,7 +2688,7 @@
             InitDecoder(&m_pCurrentMediaType);
         }
 
-        if (UseDXVA2() && m_nCodecId == AV_CODEC_ID_H264 && m_nPCIVendor == PCIV_ATI) {
+        if (UseDXVA2() && m_nCodecId == AV_CODEC_ID_H264/* && m_nPCIVendor == PCIV_ATI*/) {
             HRESULT hr = ReinitDXVA2Decoder();
             if (FAILED(hr)) {
                 return hr;

Проверил у себя на Nvidia 960 с патчем - да, на каждую перемотку происходит пересоздание DXVA2 декодера(при просмотре H.264 контента). Но никакого падения :)
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

Evgeniy1990
Выложил mpcvr-v0.3.3.868_dx9_dxva2vp_amd_1. Прошу проверить.

Патч:
Source/DX9VideoProcessor.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Source/DX9VideoProcessor.cpp b/Source/DX9VideoProcessor.cpp
index 42df164..5c2b92d 100644
--- a/Source/DX9VideoProcessor.cpp
+++ b/Source/DX9VideoProcessor.cpp
@@ -998,6 +998,10 @@ BOOL CDX9VideoProcessor::InitMediaType(const CMediaType* pmt)
 void CDX9VideoProcessor::Start()
 {
     m_rtStart = 0;
+
+    if (m_bSrcFromGPU && m_pDXVA2_VP && m_VendorId == PCIV_AMDATI) {
+        m_SrcSamples.Resize(m_SrcSamples.Size(), m_srcExFmt.value);
+    }
 }
 
 void CDX9VideoProcessor::Stop()

Добавлено:
Увы, не работает.

Evgeniy1990

Цитата: V0ltEvgeniy1990
Выложил mpcvr-v0.3.3.868_dx9_dxva2vp_amd_1. Прошу проверить.
Проверил тестовый билд. К сожалению, падает при перемотке матрешек.

Добавлено: 2019-10-06 12:43:31

V0lt

На всякий случай прилагаю лог-файл и скриншот со строкой падения в вашем тестовом билде.
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

Это скрин в декодере - а нужен в самом VR, ну самое последнее место в цепочке.

Добавлено: 2019-10-06 19:57:54

И вот попробуй - https://yadi.sk/d/9XgoQzKpcC63FA
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И вот попробуй - https://yadi.sk/d/9XgoQzKpcC63FA
Проверил тестовый билд. Прогнал несколько матрешек, в том числе и с главами.
В итоге, данного падения больше нет и оно более не проявляется вообще.

Наконец-то данное падение полностью устранено! Вы поняли причину и вам удалось его устранить! :)
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

Вот патч - https://yadi.sk/d/TfY_uwPMih_tvA
Я специально убрал проверку на AMD, т.к. по хорошему при перемотке в любом случае нам не нужны "старые" данные.
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Вот патч - https://yadi.sk/d/TfY_uwPMih_tvA
Я специально убрал проверку на AMD, т.к. по хорошему при перемотке в любом случае нам не нужны "старые" данные.
С вашим патчем - аналогично, не падает. Применил патч, собрал билд и проверил. В итоге - перемотка матрешек работает полностью нормально, без падений. Молодцы! ;)
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.