View Single Post
Old 28th November 2016, 09:03   #40839  |  Link
flossy_cake
Registered User
 
Join Date: Aug 2016
Posts: 609
Quote:
Originally Posted by madshi View Post
If you believe that using FreeSync/G-SYNC would be beneficial for video playback, you might be able to convince me to implement support for that by fulfilling the following 2 requirements:
1) Show me an API which allows me to define at which time in the future a specific video frame gets displayed, and for how long exactly.
Here's one example used by Frafs Test Pattern app (DX9). You can use the command line argument to select a fps limit to engage the hires timer and turn on the scrolling bar to check for dropped frames.

Source code of area where hires timer is implemented
https://sourceforge.net/p/frafstestp...ttern.cpp#l872
https://sourceforge.net/p/frafstestp...HiResTimer.cpp

Note: cpu usage is quite high with the hires timer (~15% CPU load ). I was able to eliminate it by adding a 1ms sleep on line 916 of FrafsTestPattern.cpp.

Also
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Quote:
Originally Posted by madshi View Post
2) Donate a FreeSync/G-SYNC monitor to me, so that I can actually test a possible implementation. Developing blindly without test hardware doesn't make sense.
I hope someone sees that and does. Unfortunately I am broke after getting mine

Since it already works in MPC-HCx64 + MadVR + DX11 disabled + Full Screen Exclusive Mode + SVPTube , is it possible to just have a "windowed exclusive mode"? I have tried setting a hotkey to toggle exclusive on/off while in windowed mode but no effect.


Quote:
Originally Posted by XTrojan View Post
What Freesync/G-Sync will do is just multiply framerate to minimize judder, there will still most likely be judder.
Absolutely not! And why would you think there would be judder? For each 1fps increase or decrease the monitor is matching a perfect 1:1 cadence for that fps. The zig zag line does not mean "this zone is judder", its just showing which multiple of refresh rate is used. As long as it's an exact multiple the cadence will remain 1:1 and no judder or jitter is seen. In practical testing I can assure you that it is seamless even at low frame rates
http://testufo.com/#test=stutter&dem...max=12&pps=720


Quote:
Originally Posted by e-t172 View Post
If you don't match them exactly (such as in your example), you get presentation jitter, and that's bad.
I think you are making an assumption about frame time deltas of 33.4ms (1 dropped frame at 60hz) and trying to apply that to a delta of +/- 5-10ms, which proves you don't own one of these variable monitors because if you did then you would already know that in D3D applications while the fps/hz meter is fluctuating up and down all over the place the motion is still seamless because the inter-frame delta is still much much lower than 1 dropped frame at 60hz. You are still thinking about everything snapping to the nearest 16.7ms which is not the case here. A rapid rise from say 24-90 in gsync will still have an average inter-frame delta that is very low and nowhere near the 33.4ms caused by 1 dropped frame at 60hz.

I would urge you to actually see or use one of these monitors at rapidly varying refresh rates before making judgement based on theory.


Quote:
Originally Posted by e-t172 View Post
Windows is not a real-time OS, so there are no guarantees that madVR will be able to make that call at the appropriate time.
Of course there are no guarantees. At the end of the day the CPU is still running the application regardless of the scenario and relies on not being interrupted by other processes. If the vsync implementation is done by the CPU (such as waiting for a vsync signal) then it will be vulnerable to the same problem if some other process interrupts it.


Quote:
Originally Posted by e-t172 View Post
I think you misunderstood my point. My point was, most people who are in this case (i.e. take the time to learn how to use madVR, worry about cadence…) do not typically use gaming monitors to play their videos on. Instead they use large HDTVs or projection systems, which don't support G-Sync. It's a bit weird to spend all this time getting to the perfect playback system only to use it on a 28" gamer-optimized panel just because it has G-Sync. I'm sure there are people in this case, but it's a very small niche, even among madVR users.
I use it mostly for watching youtube which is primarily a PC activity. The picture quality is just so much better with the edge enhancement, dithering and scaling algorithms etc. plus the colour space is wrong in Chrome (oranges are more red/crimson).

Having to change monitor modes for each video file or youtube video is an annoyance and many monitors don't support the necessary modes (24hz and 50hz which I use quite a lot , most European motorsports broadcasts) which forces me to use the artificial smoothing algorithm at 144hz which is kind of a patch solution, but works quite well actually and full credit to Madshi there .

But Alt+Enter and I get 50hz gsync, perfectly smooth motion without any tricks thus proving gsync is doable and has no significant technical limitations in this application therefore everything you said about it being impossible to do smoothly is untrue because I've seen it with my own eyes (and in games with external FPS limiter RivaTuner )

Last edited by flossy_cake; 28th November 2016 at 09:25.
flossy_cake is offline   Reply With Quote