I am experiencing an issue on an NVIDIA Optimus laptop whereby my code runs almost 200fps slower on Windows 10 than on Windows 8.1 (475fps versus 650fps). I have confirmed on both operating systems that my internally calculated frame rate matches that reported by an external application (Fraps). Both operating systems have all updates applied are using the latest NVIDIA and Intel drivers (358.50 and 184.108.40.20600).
I believe I have traced the performance delta to the SwapBuffers function (although I cannot guarantee this is the case). If I replace the SwapBuffers function in the rendering loop with a call to glFinish to similarly force the execution to pause until all the currently queued work has been completed then I get the same framerate on both operating systems ~690fps, although obviously nothing is displayed.
I can reproduce the issue with a simple toy application if it is helpful.
The system specifications are as follows:
Razer Blade 2014 laptop
Intel® Core™ i7-4702HQ
8.00 GB RAM
NVIDIA GeForce GTX870M
Intel HD Graphics 4600
Windows 10 64-bit
Windows 8.1 64-bit