Log in

View Full Version : MPC-HC tester builds for internal renderer fixes


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

gilic
19th January 2012, 12:35
EVR CP is crashing while EVR works. I tried different rezisers, but that didn't make a difference (x86 SSE2).

edit: i think i pinpointed the cause: when I use lav splitter .mkv files will crash the player, with the internal splitter everything seems to work

Hera
19th January 2012, 16:14
Subtitles are hidden when using Haali Renderer Windowed.

XRyche
19th January 2012, 17:47
EVR CP is crashing while EVR works. I tried different rezisers, but that didn't make a difference (x86 SSE2).

edit: i think i pinpointed the cause: when I use lav splitter .mkv files will crash the player, with the internal splitter everything seems to work

Crashes with Haali media splitter as well.

CruNcher
20th January 2012, 04:15
@Jan

When EVR Custom Deinterlaces what does it use i see GPU shader activity is it using a normal blend or does it use what the Driver sets by default (so in this case the same Intel Pixel Adaptive Deinterlacer as on EVR ?, though if that's the case i should also see the same GPU Utilization with EVR ?)

EVR CP is crashing while EVR works. I tried different rezisers, but that didn't make a difference (x86 SSE2).

edit: i think i pinpointed the cause: when I use lav splitter .mkv files will crash the player, with the internal splitter everything seems to work

yep crashes also here all 32bit versions so far SSE,SSE2,AVX.
seems to be a 32 bit version issue the 64 bit versions work

though the stability of the 64 bit version seems also not to be 100% it crashes allways @ resizing from fullscreen back to windowed
and normal EVR doesn't seem to work in the 64 bit versions no Video output only Audio.
Though it cleans now the surface on close correctly :D

dfr3882i last 32bit version that works (extremely stable)

I've lined up both Bézier and Lanczos resizers for integration.
Cool stuff, though in Intels SB case i wonder if that would be needed especialy the GPU pressure would be fairly heavy and if its implemented in Hardware pretty useless putting the pressure on the Shaders it seems :)

http://forum.doom9.org/showpost.php?p=1552011&postcount=572
http://forum.doom9.org/showpost.php?p=1552089&postcount=577

JanWillem32
20th January 2012, 23:50
Sorry that I don't have much time now to handle questions. I did try to fix the x86 versions (it was a pretty nasty bug), and adjust three schedulers a bit.

gilic
21st January 2012, 02:15
Everything works nicely with the x86 SSE2 version :]

Alternate scheduler also works, my paint times are approx. 5 times higher than with the default scheduler. the jitter graph has some recurring spikes and the audio/video lines are more apart than with the normal scheduler. I keep the default setting of '1' in the options.

edit: Well I remembered an issue I've been having for a while now. When 'allow animation when buffering' is checked and the buffer is not zero I get flickering/frozen subs. This only happens when there are more lines on screen e.g. anime karaoke.

CruNcher
21st January 2012, 04:24
Don't be so sure it still crashes here though it seems to happen based on resolution with every resize Shader in EVR custom i still try to figure out what exactly triggers it as most streams work though its not triggered based on the Decoder thats for sure happens either with Software Decoding or DXVA and the same stream works with EVR Custom in dfr3882i.

ok i think i nailed it :)

dfr3984i:

208x160 crash
240x180 crash
320x128 crash
320x240 crash
480x272 crash
576x432 crash
640x480 OK
720x576 OK
1280x720 OK
1920x1080 OK

dfr3882i:

208x160 OK
240x180 OK
320x128 OK
320x240 OK
480x272 OK
576x432 OK
640x480 OK
720x576 OK
1280x720 OK
1920x1080 OK

Hera
21st January 2012, 09:04
Crashes with tiny res XVID/AVI x86_32 SSE2 Windowed - but plays it when using D3DFS

golagoda
21st January 2012, 10:42
Sorry that I don't have much time now to handle questions. I did try to fix the x86 versions (it was a pretty nasty bug), and adjust three schedulers a bit.

x64: http://www.mediafire.com/?mz64klh7ggjl34v
x86 SSE: http://www.mediafire.com/?0n3kuehn7xvqot0
x86 SSE2: http://www.mediafire.com/?6wvug90x2rub308
This is the first version in a while that has worked with external renderers, so good job with that, I used to always look forward to your releases because I use madVR sometimes but they stopped working for a while.

The only problem I've found so far is that MPC-HC will crash if you go from full-screen back to normal when the EVR custom renderer is used (open file, press F, leave it for a little bit then press F again and it will crash). I'm using the x86 SSE2 build with default settings (right click -> Renderer Settings -> Reset -> Reset to default) although I have no idea if that makes a difference at all, I reset it to that to see if any of my custom settings made it crash and it kept happening with the default. I also tried changing the resizer to nearest neighbour and bilinear to see if that would make a difference and that didn't do anything either - it still crashes.

Still great job nonetheless, this is coming along nicely.


Problem signature:
Problem Event Name: APPCRASH
Application Name: mpc-hc.exe
Application Version: 1.5.3.3984
Application Timestamp: 4f19ee19
Fault Module Name: nvd3dum.dll
Fault Module Version: 8.17.12.9053
Fault Module Timestamp: 4eece3fd
Exception Code: c0000005
Exception Offset: 007ee094
OS Version: 6.1.7600.2.0.0.768.3
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

I have no idea what's causing it, but I tried different video decoders and the same thing kept happening, although I tested 'EVR' as the renderer and it no longer crashed... weird.

Hera
21st January 2012, 17:06
In previous builds, I had major stuttering / frame-dropping with Radeon/AMD notebook - this new version seems to work just fine.

EDIT: Still crashes sometimes when opening file after having opened a different file already

Is it me or does it now continue playing audio when video cannot catch up?

gilic
21st January 2012, 23:35
dfr3984i:

208x160 crash
240x180 crash
320x128 crash
320x240 crash
480x272 crash
576x432 crash
640x480 OK
720x576 OK
1280x720 OK
1920x1080 OK


Can't confirm this with my PC. I have some old divx, wmv7 and wmv9 videos with resolutions below 640x480 and they do work as intended.

CruNcher
22nd January 2012, 01:36
which build and settings exactly EVR isn't affected only EVR Custom

i see already 1 user at least that confirms it more or less :)

gilic
22nd January 2012, 12:25
@Cruncher

MPC-HC dfr3984i x86 SSE2 (32bit); LAV Filters 0.44; EVR-CP, Catmull-Rom spline6, 4 buffers, 32bit FP surfaces, ati chroma fix Catmull-Rom spline5
everthing possible handled by LAV Filters

win7 64bit, ati 6870, Fujitsu P27T-6 @ 2560x1440 @ 60Hz

CruNcher
22nd January 2012, 14:44
did you mean catmull-rom 4 or 6 ?,could you also try if it crashs for you forcing 8 bit output :) ?

gilic
22nd January 2012, 15:56
spline6 as resizer and spline5 for chroma upsampling fix. I tested with 8bit surfaces and the same videos as yesterday and everything worked.

XRyche
23rd January 2012, 17:07
I can confirm the crashing when going from full screen to windowed as well.

menlvd
23rd January 2012, 18:57
confirm crashing when going from full screen

JanWillem32
25th January 2012, 23:14
Firstly, sorry that I probably haven't solved the crashing on switching from full screen this time. (As usual, I can't replicate the problem at all. I'll see if I can make time to run the debugger on another PC.)
Secondly, sorry that I don't make time to properly respond to requests, questions and various other related things. I'm already feeling a bit guilty about spending this afternoon on programming instead of writing another huge blob of text for my studies...

I'll try to take some time tomorrow to investigate a few things, and respond accordingly. For example, the Quicksync features CruNcher mentioned, I should probably get to know more about those. I know too little about several functions like these, maybe I'll find something worthy to implement separately in the renderer code.

Anyway, I did have some success on some parts, but it will need to be tested, as usual.
-I added a graph that logs paint time.
The colors are now:
gray: time ruler
red: jitter
blue: paint time
green (EVR only): logged incremental frame times
The green line is the most inaccurate. Frame times are usually corrected with the lock function of the renderer to get some stability. VMR-9 doesn't allow control over frame times at all, that's why this graph is absent for VMR-9 r..
The red and blue lines complement each other. It's possible to have a hiccup in one, but not in the other. Both the alternative scheduler and the constant frame interpolator on Vista or newer allow buffering up to 6 frames in the command queue and up to 3 ready buffers to present (requires either Aero or the exclusive mode to be enabled). The "vanilla" mode with Aero enabled can store one frame in the command queue or in the buffer. On systems older than Vista, only the exclusive mode can store 3 ready buffers to present, but probably doesn't keep much in the command queue at all.
The windowed mode without Aero enabled requires the alternative VSync function. This presenter mode flushes all buffers before presenting each frame, so none can be used.

-I've changed the sampler for the frame timers on Vista and newer. These are a bit more precise (so no more flat jitter graphs). Note that the precision is a bit lower with this one for the jitter and frame time log in windowed mode (paint time remains the same). In the exclusive mode, every frame is logged, but in the windowed mode, a lot of present logs are skipped or frames are late because of the delay by the desktop composition. As long as the blue paint time graph remains stable or is completely compensated immediately after each time it has a spike, there's not a real problem with presenting frames.

-I've added compensation functions to better handle difficult frame rate to display refresh ratios for the alternative scheduler.

-I've integrated Lanczos2, 3 and 4. I'm worried about the rounding issues, like I've expressed earlier. In a few tests the moire patterns were very visible, along with the typical ringing. I'd definitely like to add a compensation function for the windowed (sinc) functions to counter such an effect.

-The main reason I'm posting this:
I've improved the texture handler for the subtitle renderer. It seems to work for external renderers as well, but it might need further editing (I've only done a debug run).
I've lowered memory and bus load used for clearing and transferring subtitle texture data. Further improvements will require multi-texturing, which is out of reach for now. Improving its ghastly rendering quality, speed and responsiveness will take time and effort.

A side-project, Copytest...
I wanted to see how much there was to gain with specialized memory copy and fill method over the basic functions. In the mean time I've already implemented the basic SSE copy and fill methods in a few parts of the code (which is working very well). Others might be interested in this, so I'll share it here for now.
The package is only 134 kilobytes in size. It contains source code and executables for both x86 and x64. SSE level requirements for the processor is indicated for each type of test. All tests allocate 512 megabytes (two chunks of 256 megabytes) to test. Basic safety features to abort memory allocation in case of failure are present. Note that warming up the main memory and caches by running one of the tests a few times is usually required to get a representable score. The comments that I left in the code are from after a few rounds of tests. Other PCs may show different test results than the few I gathered.

CruNcher
26th January 2012, 01:12
Firstly, sorry that I probably haven't solved the crashing on switching from full screen this time. (As usual, I can't replicate the problem at all. I'll see if I can make time to run the debugger on another PC.)

Hope you find out what change causes the low resolution crashes (starting with dfr3984i cant test dfr3975 as this crashes with every resolution) ? (Intel SB GT1 2559) its also still the case with dfr4005i


Intel(R) HD Graphics 2000




Report Date: 1/26/2012
Report Time[hr:mm:ss]: 1:13:27
Driver Version: 8.15.10.2559
Operating System: Windows 7 Service Pack 1(6.1.7601)
Default Language: German (Germany)
DirectX* Version: 10.1
Physical Memory: 8039 MB
Minimum Graphics Memory: 128 MB
Maximum Graphics Memory: 1760 MB
Graphics Memory in Use: 176 MB
Processor: Intel64 Family 6 Model 42 Stepping 7
Processor Speed: 3110 MHz
Vendor ID: 8086
Device ID: 0102
Device Revision: 09




* Processor Graphics Information *


Processor Graphics in Use: Intel(R) HD Graphics 2000
Video BIOS: 2080.0


Here is the Windows Error Report when trying to render such low resolution streams above dfr3882i

Problemsignatur
Problemereignisame: APPCRASH
Anwendungsname: mpc-hc.exe
Anwendungsversion: 1.5.3.4005
Anwendungszeitstempel: 4f206339
Fehlermodulname: igdumd32.dll
Fehlermodulversion: 8.15.10.2559
Fehlermodulzeitstempel: 4ea1aae9
Ausnahmecode: c0000005
Ausnahmeoffset: 00001828
Betriebsystemversion: 6.1.7601.2.1.0.256.1
Gebietsschema-ID: 1031
Zusatzinformation 1: 0a9e
Zusatzinformation 2: 0a9e372d3b4ad19135b953a78882e789
Zusatzinformation 3: 0a9e
Zusatzinformation 4: 0a9e372d3b4ad19135b953a78882e789

Dateien zur Beschreibung des Problems
WERInternalMetadata.xml
AppCompat.txt
memory.hdmp
minidump.mdmp





Though i have to say its working pretty good except for those 2 crash issues mentioned i tested 3 different sources in windowed mode on Aero and especially 1 of them caused problems the 25 fps Pal in a circle motion camera pan it stuttered with dfr3882i (BBC topgear)
this is not the case anymore all 3 different sources play smooth in windowed now :) 25p Pal 23.976 Film (telecined) and 29.970i Ntsc

Add another crash condition to the list drag and dropping another source into the window while something is still playing also causes it to crash now :(

tough this also looks more specific as it doesn't crash the other way

1440x1080 25fps (CoreAVC DXVA Native) running
->1920x1080 29.97fps (Lav Video Mpeg-2 DXVA 2 Copy Back) = crash

1920x1080 29.97fps (Lav Video Mpeg-2 DXVA 2 Copy Back)
->1440x1080 25fps (CoreAVC DXVA2 Native) running = works

also works both ways in dfr3882i without crashing (reproducible same as the small resolution and fullscreen to window crashs)

So 3 reproducible crashing conditions by me on Intel GT1 2559

1. Fullscreen to Window switching (appeared with dfr3975 64bit 32bit crashed immediately on any file load) https://forum.doom9.org/showpost.php?p=1552771&postcount=756 (confirmed by at least 1 other person)
2. Small Resolutions https://forum.doom9.org/showpost.php?p=1552986&postcount=759 (confirmed by at least 1 other person) (appeared with dfr3975 64 bit 32bit crashed immediately on any file load)
3. Specific (drag and drop size switching) (above) (confirmed only by me for now) (appeared with dfr3975 64bit 32bit crashed immediately on any file load)

all of these 3 crash conditions doesn't happen with dfr3882i (32bit) on Intel GT1 2559 Win7 64 Bit

JanWillem32
26th January 2012, 10:04
Maybe a debug trace tells more about these crashes.

I've disabled the frame statistics for this one, hoping that it's the cause of this issue. Note that it can't properly schedule at all because of this.
If anyone thinks this is a DirectX related issue, they can try the debug runtime. The SDK is available at: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812 (571.7 MB).
The utility to enable debug is: Program Files (x86) or Program Files \Microsoft DirectX SDK (June 2010)\Utilities\bin\x64\dxcpl.exe or ~x86\dxcpl.exe . Under Direct3D 9, select the debug runtime and "Maximum Validation" (don't forget to reset these after testing).
For viewing the regular debug messages, and optionally the messages generated by debug runtimes, DebugView can be used: http://technet.microsoft.com/en-us/sysinternals/bb896647 (286 KB).
With some luck, a file-line error pops up, so that I can take a look at a specific part of the code.

CruNcher
26th January 2012, 15:48
the crash for the resolution issue

[8096] DXVA Decoder : H.264 bitstream decoder, ClearVideo(tm)
[8096] Reset Device: Window size changed with a D3DEx device

Found struct for app : Canopus LossLess CODEC with install dir : \Device\HarddiskVolume2\Windows\System32\

Process Created PID:2748,Name:svchost.exe Parent PID:664

Process CommandLine :C:\Windows\system32\services.exe

Found struct for app : Lagarith Lossless Codec (1.3.25) with install dir : \Device\HarddiskVolume2\Windows

Process Created PID:5408,Name:WerFault.exe Parent PID:2748

Process CommandLine :C:\Windows\System32\svchost.exe -k WerSvcGroup

Process Removed PID:5408,Name:WerFault.exe, Parent ID:2748

Process Removed PID:3652,Name:mpc-hc.exe, Parent ID:5852


happens after the Windows size change :(


This is successfully opening (1920x1080) (fullscreen to window test)

[4048] DXVA Decoder : MPEG-2 variable-length decoder
[4048] --> CMainFrame::OnGraphNotify on thread: 7772; event: 0x0000000d (EC_CLOCK_CHANGED)
[4048] Reset Device: Window size changed with a D3DEx device
[4048] ResetDevice
[4048] --> CMainFrame::OnGraphNotify on thread: 7772; event: 0x0000000e (EC_PAUSED)
[4048] CreateDevice: 0x00000000


changing from WIndow to Full Window back and for (double clicking,no problem)

[4048] Reset Device: Window size changed with a D3DEx device
[4048] ResetDevice
[4048] CreateDevice: 0x00000000
[4048] Reset Device: Window size changed with a D3DEx device
[4048] ResetDevice
[4048] CreateDevice: 0x00000000
[4048] Reset Device: Window size changed with a D3DEx device
[4048] ResetDevice
[4048] CreateDevice: 0x00000000
[4048] Reset Device: Window size changed with a D3DEx device
[4048] ResetDevice
[4048] CreateDevice: 0x00000000

changing from Window to Fullscreen to Window (crash)

[4048] Reset Device: Window size changed with a D3DEx device
[4048] ResetDevice
[4048] CreateDevice: 0x00000000

Process Removed PID:7060,Name:TrustedInstaller.exe, Parent ID:664

Found struct for app : Canopus LossLess CODEC with install dir : \Device\HarddiskVolume2\Windows\System32\

Process Created PID:8080,Name:svchost.exe Parent PID:664

Process CommandLine :C:\Windows\system32\services.exe

Found struct for app : Lagarith Lossless Codec (1.3.25) with install dir : \Device\HarddiskVolume2\Windows

Process Created PID:6048,Name:WerFault.exe Parent PID:8080

Process CommandLine :C:\Windows\System32\svchost.exe -k WerSvcGroup



last debug the drag and drop specific size crash

Works:

[7344] DXVA Decoder : MPEG-2 variable-length decoder
[7344] --> CMainFrame::OnGraphNotify on thread: 6996; event: 0x0000000d (EC_CLOCK_CHANGED)
[7344] Reset Device: Window size changed with a D3DEx device
[7344] ResetDevice
[7344] --> CMainFrame::OnGraphNotify on thread: 6996; event: 0x0000000e (EC_PAUSED)
[7344] CreateDevice: 0x00000000


[7344] CAudioSwitcherFilter::DeliverEndFlush
[7344] --> CGraphThread::OnOpen on thread: 6760
[7344] --> CMainFrame::OpenMediaPrivate - pFileData->fns[0]:
[7344] G:\download\topgear_s16_e1.ts
[7344] --> CFGManagerPlayer::CFGManagerPlayer on thread: 6760
[7344] --> CFGManager::RenderFile on thread: 6760



Crashes:

[7344] DXVA Decoder : H.264 bitstream decoder, ClearVideo(tm)
[7344] CAudioSwitcherFilter::DeliverNewSegment
[7344] --> CMainFrame::OnGraphNotify on thread: 6996; event: 0x0000000d (EC_CLOCK_CHANGED)
[7344] --> CMainFrame::OnGraphNotify on thread: 6996; event: 0x0000000e (EC_PAUSED)
[7344] Reset Device: Window size changed with a D3DEx device
[7344] ResetDevice
[7344] CreateDevice: 0x00000000



[7344] CAudioSwitcherFilter::DeliverEndFlush
[7344] --> CGraphThread::OnOpen on thread: 6760
[7344] --> CMainFrame::OpenMediaPrivate - pFileData->fns[0]:
[7344] D:\test\telecine-mpeg2-hard-test.ts
[7344] --> CFGManagerPlayer::CFGManagerPlayer on thread: 6760
[7344] --> CFGManager::RenderFile on thread: 6760


[7344] CAudioSwitcherFilter::DeliverNewSegment
[7344] DXVA Decoder : MPEG-2 variable-length decoder

Found struct for app : Canopus LossLess CODEC with install dir : \Device\HarddiskVolume2\Windows\System32\

Process Created PID:3528,Name:taskhost.exe Parent PID:664

Process CommandLine :C:\Windows\system32\services.exe

Found struct for app : Canopus LossLess CODEC with install dir : \Device\HarddiskVolume2\Windows\System32\

Process Created PID:1816,Name:svchost.exe Parent PID:664

Process CommandLine :C:\Windows\system32\services.exe

Found struct for app : Lagarith Lossless Codec (1.3.25) with install dir : \Device\HarddiskVolume2\Windows

Process Created PID:5408,Name:WerFault.exe Parent PID:1816

Process CommandLine :C:\Windows\System32\svchost.exe -k WerSvcGroup


hmmm could it be really canopus or lagarith (both vfw) ? but why isn't this triggered with dfr3882i and what is calling this Found struct message ? nothing is impossible will deinstall both and see if it fixes this if it doesn't going to continue with DirectX Debug. Though that always this found struct message appears referring to canopus and lagarith if its crashing might be a coincidence also in the error reporting ?.

JanWillem32
26th January 2012, 18:55
It's something after the resizing step apparently, as the device itself reports a successful reset every time. It's just strange that it doesn't crash when doing a regular window resize action.
Don't worry about the codecs reported when the application crashes. That's just the garbage collection method Windows uses to release handles that were previously held by the graph thread. The graph builder will often maintain up to 50 handles if it has to sort many filters.
This is also the reason why the first initialization is so slow on Vista and newer. The graph builder loads all filters it can, sorts them, tries them and then selects the few it really needs with every playback instance. After the first initialization, Windows will be "smart" enough to keep the previously referred filters in memory, until it has to actually free up some memory for applications. This service is called Superfetch [svchost.exe -k LocalSystemNetworkRestricted], and can be controlled by executing the services.msc configuration tab.

CruNcher
26th January 2012, 19:31
Ahhh so superfetch is responsible for keeping dshow filters loaded also :)

anyways

Small Resolution Crash (still happening)

[7516] DXVA Decoder : H.264 bitstream decoder, ClearVideo(tm)
[7516] CAudioSwitcherFilter::DeliverNewSegment

Found struct for app : Lagarith Lossless Codec (1.3.25) with install dir : \Device\HarddiskVolume2\Windows

Process Created PID:8032,Name:WerFault.exe Parent PID:3924

Process CommandLine :C:\Windows\System32\svchost.exe -k WerSvcGroup

Process Removed PID:8032,Name:WerFault.exe, Parent ID:3924

Process Removed PID:7516,Name:mpc-hc.exe, Parent ID:5852

Window Fullscreen Window (still crashes)

[5144] CAudioSwitcherFilter::DeliverNewSegment
[5144] --> CMainFrame::OnGraphNotify on thread: 4516; event: 0x0000000d (EC_CLOCK_CHANGED)
[5144] DXVA Decoder : MPEG-2 variable-length decoder
[5144] Reset Device: Window size changed with a D3DEx device
[5144] ResetDevice
[5144] --> CMainFrame::OnGraphNotify on thread: 4516; event: 0x0000000e (EC_PAUSED)
[5144] CreateDevice: 0x00000000
[5144] Reset Device: Window size changed with a D3DEx device
[5144] ResetDevice
[5144] CreateDevice: 0x00000000

Found struct for app : Canopus LossLess CODEC with install dir : \Device\HarddiskVolume2\Windows\System32\

Process Created PID:7384,Name:svchost.exe Parent PID:664

Process CommandLine :C:\Windows\system32\services.exe

Found struct for app : Lagarith Lossless Codec (1.3.25) with install dir : \Device\HarddiskVolume2\Windows

Process Created PID:4244,Name:WerFault.exe Parent PID:7384

Process CommandLine :C:\Windows\System32\svchost.exe -k WerSvcGroup

Process Removed PID:4244,Name:WerFault.exe, Parent ID:7384

Process Removed PID:5144,Name:mpc-hc.exe, Parent ID:5852

Drag and Drop Size Specific (also still crashes)

[8080] --> CGraphThread::OnOpen on thread: 3804
[8080] --> CMainFrame::OpenMediaPrivate - pFileData->fns[0]:
[8080] G:\download\topgear_s16_e1.ts
[8080] --> CFGManagerPlayer::CFGManagerPlayer on thread: 3804
[8080] --> CFGManager::RenderFile on thread: 3804

[8080] DXVA Decoder : H.264 bitstream decoder, ClearVideo(tm)
[8080] CAudioSwitcherFilter::DeliverNewSegment
[8080] --> CMainFrame::OnGraphNotify on thread: 7232; event: 0x0000000d (EC_CLOCK_CHANGED)
[8080] --> CMainFrame::OnGraphNotify on thread: 7232; event: 0x0000000e (EC_PAUSED)
[8080] Reset Device: Window size changed with a D3DEx device
[8080] ResetDevice
[8080] CreateDevice: 0x00000000
[8080] CAudioSwitcherFilter::DeliverEndFlush

[8080] --> CGraphThread::OnOpen on thread: 3804
[8080] --> CMainFrame::OpenMediaPrivate - pFileData->fns[0]:
[8080] D:\test\telecine-mpeg2-hard-test.ts
[8080] --> CFGManagerPlayer::CFGManagerPlayer on thread: 3804
[8080] --> CFGManager::RenderFile on thread: 3804

[8080] CAudioSwitcherFilter::DeliverNewSegment
[8080] DXVA Decoder : MPEG-2 variable-length decoder

Found struct for app : Canopus LossLess CODEC with install dir : \Device\HarddiskVolume2\Windows\System32\

Process Created PID:4648,Name:svchost.exe Parent PID:664

Process CommandLine :C:\Windows\system32\services.exe

Found struct for app : Lagarith Lossless Codec (1.3.25) with install dir : \Device\HarddiskVolume2\Windows

Process Created PID:6556,Name:WerFault.exe Parent PID:4648

Process CommandLine :C:\Windows\System32\svchost.exe -k WerSvcGroup

Process Removed PID:4648,Name:svchost.exe, Parent ID:664

:(

gilic
26th January 2012, 21:11
Thanks for your new version JanWillem32.

I did some quick tests with the Touhou bad apple video with complex subs. Average frame rate seems a little bit higher than with your previous version. I noticed that with alternative scheduler and the stats screen the 'jitter' line of text is flickering (appearing/disappearing).

JanWillem32
27th January 2012, 14:30
@CruNcher: Yet another attempt at catching the bug: this time a build without the fast reset function; -.
(Other may of course try, too.)

@gilic: I'm glad that the code changes for the subtitle renderer seem to work.
The blinking text and jitter graph indicate that the alternative scheduler is dropping a frame. That functionality isn't implemented in a very pretty way indeed. It's also a bit limited, as it can't drop more than one frame in a row. After every dropped frame, it needs to present a few regular frames again. I doubt it can drop more than maybe a fifth of all frames in total.
I know that the windowed modes sometimes have a tendency to get stuck on going on and off dropping frames without going back to regular scheduling. It's something I have to work on.

XRyche
27th January 2012, 18:50
I have a weird issue after trying alternative scheduler in the latest SSE2 build. Everything seemed above-board before I tried the alternative scheduler but once i tried it and turned it off MPC-HC would crash after 1 to 2 minutes of play. I tried switching to madVR and VMR-9 renderless and playback was uninterrupted.

Hera
27th January 2012, 21:05
1.5.3.4005 SSE2
I don't think the renderer is working right anymore,
For example - Avr: ~25 Ref: ~29.97

The only stable line (now there are three) is the blue one. Red and Green seem to be in constant dense zig-zagging.
Sometimes both flatline for a tiny bit and then go back to /\/\/\/\/\/\/\/\/\/\/\

Funnies behavior ever,
Opened the [FTV-subs] Touhou - Bad Apple!! PV [960x720] v2.mkv
Which seemed to be working OK, the graph was a mess though.
Then the green line just vanished (division by 0 type vanished) and the video started playing at about 2x speed.
Sound cut out when the video started fast-forwarding.

Yep, something regressed bad enough to de-sync completely and then play too slow or too fast and it skips now.

Still crashes on exit. I think one way to get it to speed forward soundless at the speed of light is to display the statistics.

TLDR:
1.5.3.3984 SSE2 = sex
1.5.3.4005 SSE2 = with a porcupine

CruNcher
28th January 2012, 02:31
@CruNcher: Yet another attempt at catching the bug: this time a build without the fast reset function; mpc-hc SSE debug dfr4008i: http://www.mediafire.com/?121kzqrnk1r1a3r .
(Other may of course try, too.)

@gilic: I'm glad that the code changes for the subtitle renderer seem to work.
The blinking text and jitter graph indicate that the alternative scheduler is dropping a frame. That functionality isn't implemented in a very pretty way indeed. It's also a bit limited, as it can't drop more than one frame in a row. After every dropped frame, it needs to present a few regular frames again. I doubt it can drop more than maybe a fifth of all frames in total.
I know that the windowed modes sometimes have a tendency to get stuck on going on and off dropping frames without going back to regular scheduling. It's something I have to work on.

No go it just causes Echoes (visually) @ switching but doesn't fix any of the crashing conditions :( i would be much more relieved if someone on a Intel SB platform could confirm these 3 crashes with the 2559 driver :(
I guess we now came to a point where different ways of hardware workarounds are needed or either 1 way that works everywhere without nurturing the initial improvements can be found (which trunk provides in stability) :)
But therefore this is experimental, and who says that Intels Driver isn't doing something wrong or wasn't designed todo it the way you want todo it ;)
I just can say 100% for sure that dfr3882i was the last really stable version on this configuration and after it hell broke lose (in crash terms) ;)
And it still works that way so i guess i can be pretty sure that overall its not my systems fault in general (unless some change really causes some crazy unexpected 3rd party behavior that im not yet able to realize). Though it's always the best to have a confirmation for this to be sure and also to know in which direction to search for the problem exactly from here. So first confirmation from somewhere and then Pinpointing which change caused this behavior and then find out why it's causing the problems, so the way any Bugreporting system track or bugzilla works :)

XRyche
28th January 2012, 17:14
I have a weird issue after trying alternative scheduler in the latest SSE2 build. Everything seemed above-board before I tried the alternative scheduler but once i tried it and turned it off MPC-HC would crash after 1 to 2 minutes of play. I tried switching to madVR and VMR-9 renderless and playback was uninterrupted.

It appears to be corrected. I replaced SSE2 tester dfr4005i build with SSE2 tester dfr3801r build then I replaced that with the original SSE2 tester dfr4005i build. That seemed to correct the issue. Needless to say i won't be messing with the alternative scheduler until a new build.

XRyche
29th January 2012, 02:07
One other thing is that with 4:3 DVDs I get a series of thin vertical black lines on the left side of the screen with any degree of the new Lanczos resizer. It only happens with 4:3 DVDs (it doesn't happen with 16:9 DVDs) doesn't happen with another 4:3 format.

vBm
29th January 2012, 20:11
I've tried your latest SSE2 build (r4005) playing regular xvid file and going from windowed to fullscreen and then again back to windowed mode mpc-hc has crashed. Here's the minidump (http://vbm.omertabeyond.com/stuff/dmp/mpc-hc.exe.1.5.3.4005.dmp) if you need it.

CruNcher
29th January 2012, 22:28
@vmb

whats your config ?

i see no intel driver :)

JanWillem32
31st January 2012, 02:08
Thank you all for testing, I wouldn't have found the main crashing issue without the feedback here.

@XRyche: The Lanczos resizers are known to have heavy ringing and rounding issues. Do the lines come from borders in video itself or from the renderer background color? (The background color button is in the View, Options, Miscellaneous tab.)

I've fixed the windowed fullscreen bug, it was caused by the OSD renderer. After reviewing the code, I really wonder why it ever seemed to work at all. I've corrected the basics in the very old code, but it could still use some work to make it more efficient and look a lot better.
I don't know if I solved the problem with crashing on small videos, or other sorts of crashes.
I've edited the alternative scheduler and constant frame rate interpolator. I'm still struggling with the driver to get accurate statistics in non-fullscreen windowed mode with Aero enabled. It's not a big problem for the constant frame rate interpolator, as it really doesn't need much adjustments in timing. However, without it, the driver often doesn't update present statistics often, which is very annoying.
I've refreshed all base subtitle interface functions. It's still less than perfect, but at least I've marked the functions that I couldn't correct yet. If anything fails because of my editing, please report it.

edit: Sorry, the subtitle renderer broke because I did something dumb... I'll release a revision later.

JanWillem32
31st January 2012, 14:06
The text subtitle value look-up mechanism was easily fixed. I didn't change much else.

JohnLai
31st January 2012, 15:34
4017ri report :
External subtitle such as srt requires user to manually reload the subtitle in order for it to be shown at screen.
Tried to assign key to 'reload' function using 'R' key at mpc and play video in D3D mode, however, the assigned 'R' key only works with caplock turned on.

XRyche
31st January 2012, 20:24
Thank you all for testing, I wouldn't have found the main crashing issue without the feedback here.

@XRyche: The Lanczos resizers are known to have heavy ringing and rounding issues. Do the lines come from borders in video itself or from the renderer background color? (The background color button is in the View, Options, Miscellaneous tab.)

I'm pretty sure it isn't from the background colour. The lines extend from the border on the right side of the video itself.

I switched to your latest build (mpc-hc tester dfr4017ri)
and now DVDs only show black in anything but 8 bit surfaces.

CruNcher
31st January 2012, 21:33
@Jan
gonna test it Asap you might be also interested in this though i didn't base it yet on MPC-HC experimental https://forum.doom9.org/showpost.php?p=1554676&postcount=619 (also beginning with bicubic it becomes problematic keeping comparable results on GT1 as to much frames where lost, but i find it excelent to test efficiency, frames aren't lost realtime but in the Recording (copy back) overhead though) :)

Also gonna add Mirilis Renderer and sharpening shader :)

Though Jan is it really not possible to use EVR-Custom without the Scaling Shader part so all features of EVR but leaving the scaling to the driver ? (could save some GPU load on SB, adding something like "Use Hardware Resizer")

PS: All 3 crashing conditions are History great work Jan :)

CruNcher
2nd February 2012, 03:40
You might be also interested in this :)

https://forum.doom9.org/showpost.php?p=1555374&postcount=664

JanWillem32
2nd February 2012, 16:14
@JohnLai: I just tried external .SRT files in ANSI and UTF-16 formats, both seem to work fine. (I did reset all settings to default prior to testing.)
Keybindings can behave weird because other programs may be tracking them. It's also possible that another keybinding is interfering. MPC-HC does allow duplicates. For some reason there are also different keybindings for fullscreen and windowed modes.
I've had my share of issues with keybindings as well. I have a remote control for my PC. To make it easier to use it, I've had to clear all default keybindings and customize the ones I use. I found out that as long as I don't make combinations with modifiers, such as Shift, Ctrl or Alt, everything just works fine.

@XRyche: I think you're seeing the typical ringing and periodical artifacts. I've seen them as well on the test videos, but that's just how windowed sinc functions seem work without some sort of compensation. It would be a nice idea for a guide to feature pictures that point out the strong and weak points of each resizer, along with additional text.
For the second part, I guess you mean the DVD menus? The VOB videos I just tested seem to work properly. It's been a while since I messed with the DVD navigator. It used to crash or fail on initiating the stream.
If the DVD navigator filter reports a "Still" in the properties tab, the video renderer never receives a command to draw any frames. Frames are only updated when menus change, or when forced by pausing and unpausing.
Even the paused mode for regular video updates the frame twice per second. I should try to insert a similar function for during DVD stills, too.
Another issue is the output of the DVD navigator, it's X8R8G8B8. The EVR mixer is known to fail at RGB to RGB color conversion.

@CruNcher: Those functions are indeed interesting. I'd love to look at integrating them, once a custom mixer is working and I can load specific filters in the mixer stages from external DLL files, such as EVR.dll. For as long as I'm tied to the EVR, VMR-9, Quicktime and RealMedia mixers to handle video input pins, I'm unfortunately severely restricted. I've had a similar issue with trying to import the Sync clock from EVR Sync as an optional module.
I'm still interested in adding extra modules that affect mixer stages, but it will have to wait. Code that only affects later stages than the mixer can be implemented easily, tough.
I'll make comment in the "Intel SandyBridge" thread later on, after I've gathered some samples. The issue is the typical .5 pixel offset problem in DirectX 9: http://msdn.microsoft.com/en-us/library/windows/desktop/bb219690%28v=vs.85%29.aspx .

XRyche
3rd February 2012, 00:47
@XRyche: I think you're seeing the typical ringing and periodical artifacts. I've seen them as well on the test videos, but that's just how windowed sinc functions seem work without some sort of compensation. It would be a nice idea for a guide to feature pictures that point out the strong and weak points of each resizer, along with additional text.
For the second part, I guess you mean the DVD menus? The VOB videos I just tested seem to work properly. It's been a while since I messed with the DVD navigator. It used to crash or fail on initiating the stream.
If the DVD navigator filter reports a "Still" in the properties tab, the video renderer never receives a command to draw any frames. Frames are only updated when menus change, or when forced by pausing and unpausing.
Even the paused mode for regular video updates the frame twice per second. I should try to insert a similar function for during DVD stills, too.
Another issue is the output of the DVD navigator, it's X8R8G8B8. The EVR mixer is known to fail at RGB to RGB color conversion.



I'm probably not explaining myself correctly (I'm not a videophile so I lack a lot of basic knowledge in this department), sorry. Here's a screenshot http://i.imgur.com/WkGrX.png this is full-motion btw and is still present during movie playback.. You can barely see it (along just the right-hand side, looks like one side of a broken picture frame when upscaled) , but it's there and gets worse when the render upscales when going fullscreen.

The second part isn't just DVD menus (I'm assuming you're referring to black screen during playback). It happens during movie playback as well. The blank screen did not happen in your previous releases regardless of the surface bit depth.

I know these are beta builds so if it seems like I'm complaining, I'm really not. I'm just trying to give a little feedback (awkward as it may be :) ).

Hera
3rd February 2012, 04:52
This happened, I was able to watch the episode though,

Description:
A problem caused this program to stop interacting with Windows.

Problem signature:
Problem Event Name: AppHangB1
Application Name: mpc-hc.exe
Application Version: 1.6.1.4017
Application Timestamp: 4f27e185
Hang Signature: ec4d
Hang Type: 2048
OS Version: 6.1.7601.2.1.0.256.48
Locale ID: 1033
Additional Hang Signature 1: ec4d947a8c9206898e20f07202d08b55
Additional Hang Signature 2: 7a57
Additional Hang Signature 3: 7a571f4c851b6bd785201d39f3c02156
Additional Hang Signature 4: ec4d
Additional Hang Signature 5: ec4d947a8c9206898e20f07202d08b55
Additional Hang Signature 6: 7a57
Additional Hang Signature 7: 7a571f4c851b6bd785201d39f3c02156

Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt

JohnLai
3rd February 2012, 09:48
Perhaps I am not describing the subtitle issue correctly.
First, I have a file using mkv as container. There is embedded soft subtitle inside the container.
Second, now I dont want to use that embedded sutitle and I put another subtitle (external).
Third, I play the file (which has embedded soft subtitle) plus external subtitle.
Fourth, non of the subtitle will show unless i manually reload.

JanWillem32
4th February 2012, 22:16
@XRyche: I've inverted the picture and changed the gamma to one quarter...
Other than the common encoding noise and chromatic errors of the encoding process, I don't see anything out of the ordinary in this picture. Could you point it out?
For the second part you mean that even playing back a .VOB file directly results in a constant black screen? I can't replicate that. Do you have a sample file that has this issue?
Last part: actually, these are deviated nightly builds. Beta builds are versioned and semi-synchronous with the trunk build. The renderer in these builds doesn't exist in this form for the trunk build. (I discarded the main part of the old renderer core.) Don't worry about complaining, I'd rather deal with issues now, than after integration with the main code.

@Hera: You mean it delayed a while before opening, or hung on the end of a video? I'll take a look at the codes you posted later. A basic search on them didn't reveal anything at the moment. I've not even had warnings on the end or closing the player in quite a while. I thought I handled most of them already. If it's on opening (for a few seconds), that's caused by the graph builder (something I never edited before). It sometimes seems to have a hard time loading and sorting filters. Another cause can be creating a LUT for the color management. That takes a while and can block the player's ability to respond to user input while calculating.

@JohnLai: I've just tested it with nearly default settings, and everything seems to work properly for both states of the "Prefer external subtitles over embedded subtitles" option. I've also tested an external splitter to be sure. What is your playback setup? Maybe I can replicate the problem with the same settings.

Hera
4th February 2012, 23:34
Hung 5 minutes in, D3DFS w. Graph Initialized (to the Task Manager!). Second time I opened I didn't initialize statistics...

XRyche
5th February 2012, 05:28
@XRyche: I've inverted the picture and changed the gamma to one quarter: http://imageshack.us/photo/my-images/534/wkgrxedit.png/ .
Other than the common encoding noise and chromatic errors of the encoding process, I don't see anything out of the ordinary in this picture. Could you point it out?
For the second part you mean that even playing back a .VOB file directly results in a constant black screen? I can't replicate that. Do you have a sample file that has this issue?
Last part: actually, these are deviated nightly builds. Beta builds are versioned and semi-synchronous with the trunk build. The renderer in these builds doesn't exist in this form for the trunk build. (I discarded the main part of the old renderer core.) Don't worry about complaining, I'd rather deal with issues now, than after integration with the main code.



I've found the reason for the blank screen while playing DVDs. If I'm not using hardware acceleration on both PowerDVD and MS MPEG2 decoders (probably happening with other decoders as well. These are the only 2 I use.) I get the blank screen. When I turn on hardware acceleration DVDs play as expected. The problem with this is that subtitles on DVDs don't display with hardware acceleration.

EDIT: It appears that switching to ffdshow's MPEG2 decoder has solved this particular problem. I have no clue why PowerDVD and MS MPEG2 decoders have that issue for me.

As far as the black lines on the right of the screen, they seem to only appear after upscaling and it looks like screenshots only get taken at original resolutions and not resized resolutions (I could be wrong but that's what it looks like).

EDIT: It seems that using the post resize pixel shaders (sharpen complex 2) combined with the Lanczos resizers cause the pronounced black lines on the right side of the video after resizing. When I turn off the pixel shaders it's almost nonexistent unless your specifically looking for it and are right in front of your PC.

JanWillem32
5th February 2012, 22:30
@Hera: So you tried to enable the stats screen and then the player was stuck for 5 minutes, but continued normally after that? Did you ever had issues previously with the stats screen? Can you replicate the issue again? Does the system log mention anything for the kernel or driver section at that time? (A driver crash and restart could cause a delay like this.) I'm sorry I'm asking a lot. I just never heard of an application recovering after being non-responsive for such a long time.

@XRyche: I'll try to use the decoders you mentioned to try to replicate the issue, but I can't guarantee that I will be able to replicate it. It's a rather specific issue, it seems. It's extremely uncommon that external software video decoder filters are affected by anything inside the player, especially with DXVA versions still working fine.
Good to know that the issue with the black lines was caused by post-resize pixel shaders. The methods in the original set of pixel shaders are mostly far from ideal, anyway.
If you want to take screenshots of the renderer's output, you can use the Print Screen button on your keyboard while playing. The resulting picture can be pasted into an image editor, such as the standard Paint. Note: D3D exclusive mode doesn't expose renderer output to the Windows desktop (one of the main reasons why it's efficient), so Print Screen won't work as expected in that mode.

Hera
5th February 2012, 23:22
I must apologize, but I mean that it got stuck after ~5 minutes of video and I had to invoke the Task Manager to *kill* it.
Second time I watched the entire episode without problems, but I did not evoke the stat screen.

Will test more probably today

gilic
6th February 2012, 15:13
There seems to be an issue with windowed mode and videos at their original resolution: the stats screen isn't shown, subtitles disappear and the video noticeably brightens up.
Resizing the window frame by one pixel fixes all the issues.

As always using the latest SSE2 version.

JanWillem32
6th February 2012, 21:49
@Hera: Very well, I understand it now. Did you see anything in the logs for the system and hardware, besides the error in the application logs you posted? It could be a driver error.

@gilic: Thank you, that was a good find. I've corrected the bug by changing one character in the code.

I've done some minor optimizations, mostly to enhance thread safety. Mostly the subtitle renderer is affected. The external renderers will be influenced by these changes this time as well.
The links are on the first page. I also included a link to the source code this time.

gilic
7th February 2012, 19:57
Thanks for the fix, but there is still one more issue I forgot to mention. When mpc-hc is in windowed mode and you move a firefox window in front the audio stops and the video speeds up by a lot. Could be a conflict with the d2d rendering in firefox.