There's no simple rule on the relative performance between windowed and
fullscreen, because it depends what you mean by fullscreen, and what the
size of the app's window is relative to the desktop.

fullscreen can be done a few different ways:
A) changing the output resolution to the desired size, and grabbing
exclusive video access
B) changing the output resolution to the desired size, and just making the
window fill the whole screen
C) leaving the desktop resolution as is, and scaling the window up to
whatever the desktop is

In terms of performance, A is usually the fastest, B is also usually fast,
but can be slightly slower if other apps are doing things, and C can be
*much* slower than a windowed app (since it can end up pushing dramatically
more pixels). A and B can also change the color depth to what the app likes
best (16 vs. 24. vs 32), which usually doesn't matter these days, but can
have a significant performance impact, if your bottleneck is fill rate on
rendering to the back buffer.

Providing you don't have any bit-depth problems, a windowed app can perform
exactly as well as B, if it is close to the same size as the screen (should
make sense, as if it's exactly the same size as the screen, and has no
frame, it *is* the same as B), but as the surrounding desktop gets bigger,
the video card has to deal with those surrounding pixels in addition to your
windowed app.


One generalization you can make is that fullscreen of type A & B (changing
the resolution) has significant performance benefits on big screens, and not
really on smaller screens - however like you said fullscreen can cause
stability problems.

On windows and mac, pygame's normal fullscreen is A, and can be susceptible
to the same debug and crash problems with a fullscreen app locking up your
system that you describe on Linux. On mac in particular, type A (exclusive
fullscreen mode) actually blocks alt-tab as well, which means a hung or
unresponsive app can hang up the system as well, which sucks.


On Mon, Jul 4, 2011 at 12:21 PM, James Mazer <james.ma...@yale.edu> wrote:

> I've always been under the impression pygame+GL performance was
> substantially better when running with the FULLSCREEN flag
> set. However, recently, I started playing around with NOFRAME windows
> fit to the monitor size and found no big performance hit.
>
> Is this generally the experience of most people?  Is it generally safe
> with modern video cards to assume that windowed & fullscreen modes
> give you similar to performance levels for pygame+GL? This is for an
> app that uses mostly GL on top of pygame and runs with
> __GL_SYNC_TO_VBLANK set.
>
> Under linux, fullscreen debugging can be dangerous (it's too easy for
> a bug to lock up the machine requiring a reboot/xserver-restart), so it
> would be nice to not use it -- my app has a scripting language, so
> even with a bug-free production version a user can lock up the
> screen, so just using windowed mode for testing's not sufficient..
>
> Thanks,
> /jamie
>
> --
> James Mazer
> Department of Neurobiology
> Yale School of Medicine
> phone: 203-737-5853
> fax: 203-785-5263
>

Reply via email to