[WiP] madVR support in MP1 (16 Viewers)

Sebastiii

Development Group
  • Team MediaPortal
  • November 12, 2007
    16,514
    10,467
    France
    Home Country
    France France
    Yep that the same case :)
    Try to generate freeze report :p
    But for sure it's the issue i was able to reproduce in some condition (and like explain in my previous post), if we can going to rendering then on stop it freeze hard because graph is waiting something to go on from madVR and madVR and waiting something to go on and lead to what we call a deadlock :(

    So we really need to avoid this one but hard to reproduce, so you just start SBS ?

    btw, what do you mean by 'bs' ( but also bs. on first sbs pretty similar) ?
     

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,514
    10,467
    France
    Home Country
    France France
    Hey :) (yep freeze report can at least try to show where it freeze)
    So it doesn't always happen with the same sample ?
    Does disable subtitle engine change anything ?
     

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,514
    10,467
    France
    Home Country
    France France
    Let me explain the logs :
    When it failed :
    [2017-11-19 15:19:39,147] [ 0] [ 814] - MPMadPresenter::Constructor() - instance 0x35208968
    [2017-11-19 15:19:39,147] [ 0] [ 814] - MPMadPresenter::Constructor() Store Device Surface
    [2017-11-19 15:21:41,437] [ 0] [ 814] - MPMadDshow::MadStopping start
    [2017-11-19 15:21:41,437] [ 0] [ 814] - MPMadPresenter: setStopEvent() m_pSRCB
    [2017-11-19 15:21:41,437] [ 0] [ 814] - MPMadPresenter: etStopEvent() m_pORCB
    [2017-11-19 15:21:41,538] [ 0] [ 814] - MPMadPresenter: stopping() m_pSRCB
    [2017-11-19 15:21:41,538] [ 0] [ 814] - MPMadPresenter: stopping() m_pORCB
    [2017-11-19 15:21:41,538] [ 0] [ 814] - MPMadPresenter: stopping() start to stop instance - 1
    [2017-11-19 15:21:41,538] [ 0] [ 814] - MPMadPresenter: stopping() start to stop instance - 2
    [2017-11-19 15:21:41,538] [ 0] [ 814] - MPMadPresenter: stopping() start to stop instance - 3

    You see here when madVR start :
    [2017-11-19 15:19:39,147] [ 0] [ 814] - MPMadPresenter::Constructor() - instance 0x35208968
    [2017-11-19 15:19:39,147] [ 0] [ 814] - MPMadPresenter::Constructor() Store Device Surface
    But no D3D device happen :( (so madVR is waiting something to send the D3D information to MP)

    In this case it works :
    [2017-11-19 15:12:31,141] [ 0] [ 814] - MPMadPresenter::Constructor() - instance 0x35207680
    [2017-11-19 15:12:31,141] [ 0] [ 814] - MPMadPresenter::Constructor() Store Device Surface
    [2017-11-19 15:12:36,399] [ 0] [ 3d8] - MPMadPresenterH: setDeviceSub() device 0x:4667ac00
    [2017-11-19 15:12:36,399] [ 0] [ 3d8] - MPMadPresenter: setDeviceSub() send subtitle device to C# 0x:4667ac00
    [2017-11-19 15:12:36,406] [ 0] [ 3d8] - MPMadPresenterH: setDeviceOsd() device 0x:4667ac00
    [2017-11-19 15:12:36,407] [ 0] [ 3d8] - MPMadPresenter: setDeviceOsd : ForceOsdUpdate
    [2017-11-19 15:12:36,407] [ 0] [ 3d8] - MPMadPresenter: setDeviceOsd : reduce madVR frame to : 0
    [2017-11-19 15:12:36,513] [ 0] [ 3d8] - MPMadPresenterH: setDeviceOsd() device 0x:0
    [2017-11-19 15:12:36,513] [ 0] [ 3d8] - MPMadPresenter::ReinitD3DDevice : ReinitOSDDevice for : 1920 x 1080
    [2017-11-19 15:12:36,513] [ 0] [ 3d8] - MPMadPresenter: setDeviceOsd() release m_pMadD3DDev
    [2017-11-19 15:12:36,521] [ 0] [ 3d8] - MPMadPresenterH:setDeviceSub() device 0x:0
    [2017-11-19 15:12:36,521] [ 0] [ 3d8] - MPMadPresenter: setDeviceSub() send subtitle device to C# 0x:0
    [2017-11-19 15:12:41,543] [ 0] [2040] - MPMadPresenterH: setDeviceSub() device 0x:1d082380
    [2017-11-19 15:12:41,543] [ 0] [2040] - MPMadPresenter: setDeviceSub() send subtitle device to C# 0x:1d082380
    [2017-11-19 15:12:41,549] [ 0] [2040] - MPMadPresenterH: setDeviceOsd() device 0x:1d082380
    [2017-11-19 15:12:41,550] [ 0] [2040] - MPMadPresenter: setDeviceOsd : ForceOsdUpdate
    [2017-11-19 15:12:41,550] [ 0] [2040] - MPMadPresenter: setDeviceOsd : reduce madVR frame to : 0
    [2017-11-19 15:12:43,587] [ 0] [2040] - MPMadPresenter::ReinitOSD : ReinitOSD from : RenderOsd
    [2017-11-19 15:12:43,589] [ 0] [2040] - MPMadPresenter::ReinitOSD : ReinitOSD for : 1920 x 1080
    [2017-11-19 15:12:45,579] [ 0] [2040] - MPMadPresenter::ReinitOSD : ReinitOSD from : RenderOsd
    [2017-11-19 15:12:45,581] [ 0] [2040] - MPMadPresenter::ReinitOSD : ReinitOSD for : 1920 x 1080

    We can see that madVR send us D3D device :
    [2017-11-19 15:12:36,399] [ 0] [ 3d8] - MPMadPresenterH: setDeviceSub() device 0x:4667ac00
    Then like it's MVC, madVR reset D3D and send us :
    [2017-11-19 15:12:36,513] [ 0] [ 3d8] - MPMadPresenterH: setDeviceOsd() device 0x:0
    And then we get the final D3D device :
    [2017-11-19 15:12:41,550] [ 0] [2040] - MPMadPresenter: setDeviceOsd : ForceOsdUpdate
    And when we get those and those line :
    [2017-11-19 15:12:45,579] [ 0] [2040] - MPMadPresenter::ReinitOSD : ReinitOSD from : RenderOsd
    [2017-11-19 15:12:45,581] [ 0] [2040] - MPMadPresenter::ReinitOSD : ReinitOSD for : 1920 x 1080

    Rendering has started :p

    So when the rendering doesn't start -> boom -> bs -> because of the deadlock :(
     

    daWooky

    MP Donator
  • Premium Supporter
  • April 3, 2012
    783
    871
    Home Country
    Germany Germany
    i just try it in the other direction but without manual stopped. Seemed ok

    Gesendet von meinem Nexus 7 mit Tapatalk
     

    daWooky

    MP Donator
  • Premium Supporter
  • April 3, 2012
    783
    871
    Home Country
    Germany Germany
    first a short sample to the end then the bigger one that is still running:)

    Gesendet von meinem Nexus 7 mit Tapatalk
     

    Users who are viewing this thread

    Top Bottom