57
Buffer Swap Criteria
The criteria for buffer swaps involves when a window is ready to swap and
when a group is ready to swap.

Window Buffer Swaps

Any rendering surface that is not a window—such as a non-visible
rendering buffer—is always ready, otherwise the following criteria must be
satis ed before a buffer swap for a window can be performed:
The window itself must be ready, meaning:
A buffer swap command has been issued for it.
Its swap interval has elapsed.
If the window belongs to a group, all the windows in the group must
be ready.
If the window belongs to a group and that group is bound to a barrier,
all groups bound to that barrier must be ready.

Group and Barrier Buffer Swaps

Buffer swaps for all windows in a swap group take place concurrently
and buffer swaps for all groups using a barrier take place concurrently.
For barrier swaps, the vertical retraces of the screens of all the
groups must also be synchronized, otherwise there is no guarantee of
concurrency between groups.
An implementation may support a limited number of swap groups and
barriers and may have restrictions on where the users of a barrier can
reside.
For example, an implementation may allow the users to reside on
different display devices or even hosts. An implementation may
return zero for any of maxGroups and maxBarriers returned by
QueryMaxSwapGroupsNV if swap groups or barriers are not available
in that implementation or on that host.
Using the OpenGL Extensions