1XXX - Not complete. 2 3Name 4 5 SGIX_wait_group 6 7Name Strings 8 9 GLX_SGIX_wait_group 10 11Version 12 13 $Date: 1997/04/17 04:46:55 $ $Revision: 1.1 $ 14 15Number 16 17 XXX 18 19Dependencies 20 21 none 22 23Overview 24 25 This extension provides the capability to synchronize drawing from two 26 separate GLX Contexts. A wait group is created, and GLX Contexts are 27 added as members to the wait group. It will then be possible to 28 specify that no member will be able to continue to render until all the 29 outstanding OpenGL commands from each of the members have been completed. 30 31 This extension sets conditions that must be met before a set of OpenGL 32 contexts can continue drawing. This extension is primarily useful for 33 coordinating operations in an environment where more than one OpenGL 34 context may render simultaneously. 35 36Dependencies 37 38 none 39 40Issues 41 42 * Do we need a query to ask whether a context is in a group? 43 * Do we need to support having contexts in multiple wait groups? 44 45New Procedures and Functions 46 47 void JoinWaitGroupSGIX(Display *dpy, 48 GLXContext context, 49 GLXContext member); 50 51 void WaitGroupSGIX(Display *dpy, 52 GLXContext context); 53 54New Tokens 55 56 none 57 58Additions to the GLX Specification 59 60 Add to the end of section 3.2.5, Synchronization Primitives: 61 62 JoinWaitGroupSGIX adds <context> to the wait group containing <member> as 63 a member. If <context> is already a member of a different group, it is 64 implicitly removed from that group first. If <member> is None, <context> 65 is removed from the wait group that it belongs to, if any. 66 67 A wait group is referenced by naming any context in the group; there is no 68 other way to refer to a group. 69 70 When a context is destroyed, it is removed from any wait group of 71 which it is a member. 72 73 WaitGroupSGIX causes <context> to wait until all the other member 74 contexts of the wait group have also called WaitGroupSGIX. 75 76 The following must be satisfied before a WaitGroupSGIX command 77 can complete: 78 79 1. All contexts in the wait group must have issued a 80 WaitGroupSGIX command 81 82 OpenGL rendering commands issued by all of the member contexts 83 in the wait group will complete before any of the member contexts 84 can further affect the framebuffer. 85 86 A wait group exists until the last remaining context leaves the group. 87 88 JoinWaitGroupSGIX and WaitGroupSGIX are part of the X stream. 89 90Errors 91 92 JoinWaitGroupSGIX generates GLXBadContext if <context> is an invalid 93 GLX context, or if <member> is an invalid GLX context. 94 95 WaitGroupSGIX generates GLXBadContext if <context> is an invalid 96 GLX context. 97 98New State 99 100 Get Value Get Command Type Value Attrib 101 --------- ----------- ---- ------- ------ 102 <whether context is in a wait group> ?? B False 103 104New Implementation Dependent State 105 106 None 107