judelaw
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Aleksoid1978 Сейчас погоняю, как раз есть несколько часов времени. -------------- Зависание происходит на моменте: [5000] Reset Device: D3D adapter changed [5000] Reset Device: In monitor [5000] (track=1) 88330000, 88750000 -> 88330000, 88750000 (buffcnt=189) [5000] (track=1) 88750000, 89580000 -> 88750000, 89580000 (buffcnt=188) ----------- А вот нормально: [1268] Reset Device: D3D adapter changed [1268] Reset Device: In monitor [1268] ResetDevice [1268] (track=2) 46830000, 47690000 -> 46830000, 47690000 (buffcnt=99) [1268] (track=1) 51660000, 51660001 -> 51660000, 51660001 (buffcnt=187) ------------ и дальше там уже пошло: [1268] CreateDevice: 0 [1268] --- CEVRAllocatorPresenter::OnResetDevice() - S_OK [1268] (track=2) 47690000, 48540000 -> 47690000, 48540000 (buffcnt=99) [1268] (track=1) 50830000, 50830001 -> 50830000, 50830001 (buffcnt=189) [1268] CDXVADecoder::Flush [1268] CAudioSwitcherFilter::DeliverEndFlush [1268] CDXVADecoder::Flush [1268] CVideoDecOutputPin::InitAllocator [1268] mpc-hc.exe(tid 948) 9346 : Seek Started 19362274505 [1268] mpc-hc.exe(tid 948) 9348 : Seek Ended [1268] CDXVADecoder::Flush [1268] DXVA Decoder : H.264 bitstream decoder, no FGT [1268] --> CMainFrame::OnGraphNotify on thread: 5360; event: 0x0000000e (EC_PAUSED) [1268] CDXVADecoder::Flush [1268] CAudioSwitcherFilter::DeliverNewSegment ------------- нет ResetDevice после Reset Device: In monitor (что-то я найти не могу откуда Reset Device: In monitor посылается ) то есть уже не выполняется TRACE("ResetDevice\n"); в CDX9AllocatorPresenter::ResetDevice() .... туда даже не доходит Добавлено: Aleksoid1978 Цитата: имхо причина не совсем в этом. Тут больше накладка на момент самого движения окна. Тямем медленно и равномерно окно - в момент когда делается ресет окно стопорится, но тянуть мы не перестаем - и оно по идее после легкого ступора должно отпустить и тянутся дальше (все моргания и прочее уже происходят потом и не влияют на зависание). Но мы имеем ситуацию когда окно не отпускается а тупо лочится намертво. Еще заметил ситуацию, когда выходим из полного экрана и окно возвращается на второй экран, то зависает с непрорисованными нижними тулбарами. Попробуй перетащить окно, и пока оно не стопорнулось, не отпуская мышь нервно быстро перемещать это окно влево/право. Почти всегда висяк. Если мы где-нибудь в CDX9AllocatorPresenter::Paint(bool fAll) например вставим анлок в if (fAll) { m_RenderLock.Unlock(); m_PaintTime = (GetRenderersData()->GetPerfCounter() - StartPaint); ----------- то шансы поймать висяк уменьшаются раз в 100, но увы все же происходят. На Sync/EVR вообще висяков нет, никогда | Всего записей: 2830 | Зарегистр. 22-09-2009 | Отправлено: 12:15 07-04-2011 | Исправлено: judelaw, 17:04 07-04-2011 |
|