Thanks for joining the Graphics community.
I would need more information in regards to your system configuration:
Which version of Windows do you have?
Also, the exact processor model and the graphics controller:
Click the Windows icon, and then right-click Computer.
Find System Type on the Properties window, and then note the processor model.
What is the computer model number?
We Graphics report generated within the Intel Graphics Control Panel.
Does this problem occur with customized drivers from your computer manufacturer?
Processor model is Core i7-4700MQ, adapter type is Intel HD Graphics 4600, and Windows is 8.1.
Computer model is TOSHIBA dynabook Satellite B754/88LR. Yes, this problem ocuured with pre-installed driver.
Don't other windows devices equipped with Intel HD Graphics have the same problem?
Aside from this sleep problem, I could see some rendering artifacts in fullscreen mode when I enable late swap tearing, and it was not tearing, since I could see that in the scene with no moving objects.
This may not have to do with sleep problem though.
Intel(R) HD Graphics 4600
Report Date: Tuesday, December 2, 2014
Report Time [hh:mm:ss]: 7:36:24 PM
Driver Version: 10.18.10.3960
Operating System: Windows* 8.1 (6.3.9600)
Default Language: Japanese (Japan)
Physical Memory: 8104 MB
Vendor ID: 8086
Device ID: 0416
Device Revision: 06
Graphics Output Protocol (GOP) Version: 5.0.1032
Current Resolution: 1920 x 1080
Processor: Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
Processor Speed: 2394 MHz
Processor Graphics in Use: Intel(R) HD Graphics 4600
Shader Version: 5.0
OpenGL* Version: 4.3
OpenCL* Version: 1.2
* Microsoft DirectX* *
Runtime Version: 11.2
Hardware-Supported Version: 11.1
* Devices connected to the Graphics Accelerator *
Active Displays: 1
* Built-in Display *
Display Type: Digital
DDC2 Protocol: Supported
Connector Type: Embedded DisplayPort
Device Type: Built-in Display
Maximum Image Size
Horizontal Size: 13.78 inches
Vertical Size: 7.48 inches
1920 x 1080 (60p Hz)
Power Management Support
Standby Mode: Supported
Suspend Mode: Supported
Active Off Mode: Supported
00 FF FF FF FF FF FF 00 30 E4 48 04 00 00 00 00
00 17 01 04 95 23 13 78 EA 9E 95 A2 58 55 9F 26
0D 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 2E 36 80 A0 70 38 1F 40 30 20
35 00 59 C2 10 00 00 19 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FE 00 4C
47 20 44 69 73 70 6C 61 79 0A 20 20 00 00 00 FE
00 4C 50 31 35 36 57 46 34 2D 53 50 4A 31 00 DE
* Other names and brands are the property of their respective owners.
Sorry for replying late. I uploaded a program that reproduces this problem.
In Benchmark Scene, the scene is not drawn at 60fps because of Sleep problem.
Also In Filters Scene, app crashes after calling glFrameBufferRenderBuffer two times.
These problems don't happen on NVIDIA GPU.
Thanks for the information.
Does this problem occur with latest video drivers?
Please report back if this problem remains with driver version 10.18.14.4080.
Our OGL developers have made the following suggestion.
Real vsync (screen update on hw vblanc) is performed only in full-screen mode. In such case screen refresh is clocked by hw, so you can have 60fps, 30fps, 15fps etc. In particular FPS like for example 58 is not possible.
In case of applications in window mode we emulate vsync using sleep. We do is like in case of hw vsync, so allowed FPS will also be 60, 30, 15 etc.
For the cases when graphics cannot achieve in a stable manner 60fps additional extension was created: WGL_EXT_swap_control_tear.
As an effect vsync will be used only when application can render 60fps or more. When framerate drops vsync will be effectively disabled.
This applies to both full-screen and window mode.
I have already been using that in my demo, and that doesn't solve the problem completely.
My app can render graphics at 60fps with "wglSwapIntervalEXT(-1)" but not as smooth as NVIDIA GPU.
Why you use Sleep for emulating vsync? At least, that's not what NVIDIA driver does, they are using techniques diffrent from yours.
Can't you use more accurate timer like these?
I decided to implement vsync in windowed mode with another method. Sleep is not accurate, spin waiting uses CPU power a lot, so I think I should use method described in here.