Is there a way or a utility that allows me to determine if my screen is redrawed as fast as the monitors refresh rate

xMax

Senior member
Sep 2, 2005
448
0
0
It kind of goes like this. This is by no means technical, but just a basic idea.

Imagine the cpu and or video card updates the screen information. Once complete, the monitor comes along and takes that information and actually prints it on screen. Now imagine that in a proper transmission, when the monitor comes to take that information, the cpu video card will have already completed the process of refreshing the screen data with the next frame. This would be a correct transsmission. but now imagine if the cpu or video card is too slow, and when the monitor comes to take that info to print to screen, it will not have been updated. This would cause screen tearing or something. I also know that the opposite could happen, where the graphics card is too fast. This usually requires vsync enabled or something like that.

Anyhow, is there a way or a utility in windows that would show quantitative statistical information as to wether the screen information is fully updated before being sent to the monitor.

Thats it.
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
It's possible to time how long it takes to draw each frame (or at least how much time is spent in the driver call to draw the frame). To ensure you never have any tearing (or skipping of frames), you need to both use vertical sync to keep the video card/monitor in step, and be able to draw each frame in less time than the monitor takes to refresh. You also need to make sure you don't draw the frames too fast, but that is rarely a problem these days.
 

xMax

Senior member
Sep 2, 2005
448
0
0
Ok. But how do i enable V-sync. And this still doesnt tell me if the refreshing of the images are on a 1:1 ratio with the monitor refresh.
 

tk11

Senior member
Jul 5, 2004
277
0
0
Desktop 2d images are not double buffered and cannot be synchronized to the vertical retrace. In order for the video card to have the option of waiting for the retrace to update the screen it must have a new (completely drawn) image waiting in an off screen buffer. As for detecting tearing, I doubt it's possible unless your on the driver development team for a video card.
 

DrPizza

Administrator Elite Member Goat Whisperer
Mar 5, 2001
49,601
167
111
www.slatebrookfarm.com
Sure, here's a way: film the screen using a very very fast movie camera. Use video analysis to determine what you need.

I'm not sure if there's a much easier and cheaper way, but at least, here's a place to start.
 

oupei

Senior member
Jun 16, 2003
285
0
0
Originally posted by: tk11
Desktop 2d images are not double buffered and cannot be synchronized to the vertical retrace. In order for the video card to have the option of waiting for the retrace to update the screen it must have a new (completely drawn) image waiting in an off screen buffer. As for detecting tearing, I doubt it's possible unless your on the driver development team for a video card.


are you sure? I was coding GUIs and stuff in JAVA and you can definitely have them double buffered. I made a 2D scrolling game and double buffering makes a significant difference. or do you mean triple buffering?
 

tk11

Senior member
Jul 5, 2004
277
0
0
Originally posted by: oupei
Originally posted by: tk11
Desktop 2d images are not double buffered and cannot be synchronized to the vertical retrace. In order for the video card to have the option of waiting for the retrace to update the screen it must have a new (completely drawn) image waiting in an off screen buffer. As for detecting tearing, I doubt it's possible unless your on the driver development team for a video card.


are you sure? I was coding GUIs and stuff in JAVA and you can definitely have them double buffered. I made a 2D scrolling game and double buffering makes a significant difference. or do you mean triple buffering?

Of course you can choose to double buffer 2D but the vast majority of the 2D graphics seen on the desktop are not double buffered.