microsoft / angle

ANGLE: OpenGL ES to DirectX translation
Other
615 stars 166 forks source link

Frames being presented two seconds after swapping the buffers. #133

Closed blueshogun96 closed 5 years ago

blueshogun96 commented 7 years ago

There is a really strange issue with libANGLE that causes each and every frame to be drawn 2 seconds after calling eglSwapBuffers(). Now, I'm not 100% sure as to why this issue happens, but in order to fix it, I had to comment out the usage of the DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT flag during swap chain creation, and replace it with a zero (in SwapChain11.cpp, SwapChainPanelNativeWindow.cpp and CoreWindowNativeWindow.cpp).

Of course, I'm sure you devs have done this for a good reason, but my game does not run correctly until this flag is removed. One reason I bring this up is because I'll be submitting this game to Dream.Build.Play before the end of the year and I want to ensure this game passes certification. So if those flags have to be set, I'd at least like to find out why.

I want to reference this issue below as it has helped me pinpoint the problem with my game: https://github.com/Microsoft/angle/issues/111

This issue was experienced on an Intel HD 4000 GPU (WDDM 1.3). This laptop also features a Quadro K1000M, but I have yet to test it on this GPU.

Any feedback on this is welcome, thanks.

Shogun

blueshogun96 commented 7 years ago

Any sort of feedback on this at all?? I also noticed a big increase in performance on my Surface Pro with the above flag commented out.

Shogun

flibitijibibo commented 6 years ago

This affects Xbox One as well - it actually seems to get more and more delayed each time you miss vsync (I think?). The fix is to undo 43b75be9, which I've done here:

https://github.com/FNA-XNA/angle/commit/964554015686c7a0bd6e52142fc5b676cf9441d4

The offending commit stems from #111.

austinkinross commented 5 years ago

Hi everyone, apologies for the delayd reply here. If you're still having issues here then I suggest that you email the main ANGLE project's mailing list and/or submit a fix to their repository.

Thanks Austin