If I attach to either the CoreWindow OR the CoreIndependentInputSource, the issue persists.
If I change WorkItemOptions from TimeSliced to none, the issue is not as bad (although bad enough to prevent shipping)
It seems we need a way to get background input, like with the CoreIndependentInputSource. Perhaps marshalling out to the actual device, bypassing the UWP Routed window events?
That’s strange. If you have your mouse events to CoreIndependentInputSource and TouchQueue.ProcessQueued() doesn’t slow the main thread significantly, then I don’t know why still keyboard events are queue up. (maybe a bug with latest Win10?)
Can you post a test project somewhere that demonstrates the problem?
Also try one last thing. turn of V-Sync and fixedTimestep to see if that helps to keep the message queue empty. Put those lines in your Game1() constructor.
Here’s another approach to to solve the issue.
I manage to lower the priority of Tick event which makes the game process all other events (input/rotation/etc) before drawing the next frame.
I know this may sound strange but if you have a extra keyboard plug it in and try it and see if the issue disappears! Just to make sure this isn’t a specific hardware thing.
When xna was around i found the many joys of getting hours of headaches trying to solve something that turned out to be a individual keyboard hardware quirk.
@willmotil
I can reproduce the bug. Others reported similar problems.
I think that CompositionTarget.Rendering has a higher priority than input on the latest W10.
On W8.1 projects works alright with mouse+keyboard, but CompositionTarget.Rendering has other issues there, especial on mobile phones, with touch lag, rotation lag and even the event stop firing and freeze the game when under heavy load.