Fake fullscreen

Started by
5 comments, last by Tape_Worm 12 years, 4 months ago
I had the idea to use the fake fullscreen mode (that is, a window with no window border, topmost and maximized) last night after my graphics library decided to start being a huge jerk when switching between windowed and fullscreen mode. However, I'm undecided when it comes to whether I should implement it.


Most people have displays with a fixed resolution, so I don't see the advantage to having a full on video mode transition for these devices. However, what kind of a performance hit would people get? Let's say I've got a 1920x1200 display. If I go to the full fake screen, is the fillrate going to cause a massive hit on lower end cards? Is this hit only applicable to drawing to backbuffer that is sized 1920x1200? Or if I had a 640x480 backbuffer and had the API stretch it to fit the "fullscreen" display, would it be an equal performance penalty?

FYI, I'm using Direct3D 11 for the back end API, but I figured this is broader than the API. But, to get on the topic of D3D 10/11, there's an AllowModeSwitch flag for the swap chain. When you set this flag, it keeps the video mode, but will resize the back buffer to what I've requested. Wouldn't this be a similar thing to the fake fullscreen mode?

Lower than native resolution is going to be ugly no matter how you slice it. So how it looks is not an issue for me.

Anyone want to share thoughts on this?
Advertisement
I like fake fullscreen as an option. Sometimes VSync is not perfect in window mode, so a true fullscreen option is also good to have.
Stretching a smaller backbuffer to fit a larger screen is usually pretty much free, so I wouldn't worry about that. Actually switching monitor resolutions should always be optional in my opinion, as it can mess with multiple monitors and sometimes causes background windows to resize.
Yeah, I hadn't considered vsync in windowed mode.

The issue I ran into with my library was when switching from full screen back to windowed. The damn thing refused to actually revert back to the original video mode until I forced it back myself. This was code that had been working for some time and just decided to not work, so I started wondering if true fullscreen mode was worth the hassle.

I am however concerned about how the library will work with multiple monitor setups in fullscreen. I had a lot of trouble getting that working like I wanted, and given that the previous fullscreen state switch code decided to break, I have my concerns that the multimon stuff will break too (unfortunately I can't test this right now, as I don't have a multiple monitor setup to test with).
As of Win7/Vista, the performance of Windowed 3D apps has improved considerably (compared to windowed vs fullscreen apps on XP).

In Starcraft 2, the graphics options gives you the choice of Windowed, Fullscreen and Fullscreen (windowed). I've not really noticed any difference between fullscreen and the "fake" version, except the (lack of) video mode switching.

I've not really noticed any difference between fullscreen and the "fake" version, except the (lack of) video mode switching.

There is also the fringe benefit that you can alt-tab much faster in the 'fake' version. And you can float your AIM/gchat/skype over the 'fake' version - in general these two features are well worth any performance hit I might experience.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Keep in mind though that people with SLI or Crossfire setups will only be able to use a single card when running in windowed mode since there's no support for windowed applications for neither of these technologies as far as I know

I gets all your texture budgets!


Keep in mind though that people with SLI or Crossfire setups will only be able to use a single card when running in windowed mode since there's no support for windowed applications for neither of these technologies as far as I know


Ah, well now, that makes a big difference. I don't have a crossfire/sli setup to test on so I definitely wouldn't have known this. Thanks.

This topic is closed to new replies.

Advertisement