Jump to content
  • Advertisement
Sign in to follow this  
Luco

Performance difference between windowed mode and exclusive ??

This topic is 3031 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am working on an application that has to run at fast FPS (120).

Is there a significant performance difference between windowed mode and exclusive? In windowed mode I am able to choose what monitor the form is shown on while exclusive only runs on default display. For windowed I set the forms location to what I want and then set the size to that of the display making it full screen.

I also need to be able to change resolution the application is running at. In exclusive mode when I change the backbuffer size the mouse cursor size also changes, in windowed mode the cursor stays small. Can someone explain the scaling done and which device does the scaling? Is windowed mode form taking full screen the same as exclusive mode?

Share this post


Link to post
Share on other sites
Advertisement
What language and API? D3D or DirectDraw?

The scaling you're referring to is the monitor resolution changing. As for performance differences, it ultimately depends on the driver, but fullscreen (exclusive) mode is usually slightly higher performance.

Share this post


Link to post
Share on other sites
Remember, OpenGL has no exclusive fullscreen mode and they seem to get along just fine. The driver typically does something along these lines:

if(d3d.Windowed == FALSE)
fullscreenMode = true;
else if(d3d.window.width == screenWidth && d3d.window.height == screenHeight)
fullscreenMode = true;

So it generally shouldn't matter much, if at all.

Share this post


Link to post
Share on other sites
Thank you for your fast replies :)

I am using SlimDX, Direct3D9. What I'm doing is loading image sequences into textures and then showing them frame by frame. What I want is to show the images as close to original as possible. For example I have a 1080 X 1920 LCD panel and my image is 480 X 640.

First method: I set windowed = false and backbuffer 480 X 640 my image shows up taking the whole panel but since panel is 1080 X 1920 there must be some scaling done.

Second Method: I choose windowed = false the form will become size of panel (1080 X 1920) and backbuffer will be 480 X 640 again the image will take up whole screen so scaling is done.

Is there any difference between the scaling of the two methods ?? E.g one is done by the panel and the other by adapter?

Is there difference in refresh rate, when windowed = false I can set FullScreenRefreshRateInHertz parameter in PresentParameters? Say panel is set to 60 HZ in Nvidia Display Settings and I do windowed = false and FullScreenRefreshRateInHertz = 120, will the panel now refresh at 120?

Share this post


Link to post
Share on other sites
What's the point of using such a high frequency with an LCD panel? It's not like a CRT monitor where pixels will flicker on and off at whatever rate the video card's digital-to-analog converter is feeding it.

Share this post


Link to post
Share on other sites
The image sequences are 120 FPS so i load each frame as a texture. The idea is to see how image enhancement algos will look real time. E.G Temporal Interpolation where we take a sequence of 30 FPS and interpolate frames in between to make it 120. Also any 3D sequence with shutter glasses is 120 FPS (60 per eye).

Share this post


Link to post
Share on other sites
The difference is usually less than 1% because it is nothing for today's computers. It is about the same as not having to draw the mouse pointer. Exclusive fullscreen is obsolete because it just adds a lot of crashes. You can easily get 8000 FPS in windowed mode.

Share this post


Link to post
Share on other sites
Thanks :)

What I still cant find out is if PresentParameters.Windowed = false actually changes the refresh rate of the panel.

Say I have a sequence that is meant for 120 HZ but currently resolution of the panel is set to 1080X1920 60Hz in the NVIDIA control panel. If I use PresentParameters.Windowed = true, the panel's refresh rate will not change even if it supports 1080X1920 120Hz.

However if I use PresentParameters.Windowed = false and set PresentParameters.FullScreenRefreshRateInHertz = 120 will the panel start refreshing at 120 HZ?

Share this post


Link to post
Share on other sites
If it supports a refresh rate of 120 then in theory it should, but there may be other factors at work that might prevent it from happening. Monitor technology has changed a lot since D3D9 was originally released.

Getting back to your original requirement, multiple render targets would be the way to go these days.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!