15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci SGI_video_sync 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GLX_SGI_video_sync 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciNumber 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci 41 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciDependencies 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci None 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciOverview 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci This extension provides a means for synchronization with the video 205bd8deadSopenharmony_ci frame rate of a monitor. (In the case of an interlaced monitor, 215bd8deadSopenharmony_ci this is typically the rate of displaying both the even and odd 225bd8deadSopenharmony_ci fields of a frame.) The kernel maintains a video sync counter for 235bd8deadSopenharmony_ci each physical hardware pipe in a system; the counter is incremented 245bd8deadSopenharmony_ci upon the completion of the display of each full frame of video data. An 255bd8deadSopenharmony_ci OpenGL context always corresponds to a pipe. When an OpenGL process 265bd8deadSopenharmony_ci has a current context, it can put itself to sleep until the counter of 275bd8deadSopenharmony_ci that pipe reaches a desired value. The process can also query the 285bd8deadSopenharmony_ci value of the counter. 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ci The counter runs as long as the graphics subsystem is running; it is 315bd8deadSopenharmony_ci initialized via the /usr/gfx/gfxinit command. However, a process can 325bd8deadSopenharmony_ci query or sleep on the counter only when a direct context is current. 335bd8deadSopenharmony_ci Each of the procedures described below will fail and return an error 345bd8deadSopenharmony_ci code if the current context is not a direct one. 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci The counter is an unsigned 32-bit integer. 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ciInteraction with {ARB,OES}_framebuffer_object 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ci If the current context does not have a default framebuffer there may be 415bd8deadSopenharmony_ci no "frame rate" to refer to, since there is no Window or GLXWindow to map 425bd8deadSopenharmony_ci to an output device. If the client API context is in this state, all 435bd8deadSopenharmony_ci interaction with this extension is undefined. 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ciIssues 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ci Should glXWaitVideoSyncSGI return GLX_BAD_VALUE if <remainder> is 485bd8deadSopenharmony_ci greater than or equal to <divisor>? (No.) 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ciNew Procedures and Functions 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ci int glXGetVideoSyncSGI(uint *count); 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci int glXWaitVideoSyncSGI(int divisor, 555bd8deadSopenharmony_ci int remainder, 565bd8deadSopenharmony_ci unsigned int *count); 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ciNew Tokens 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci None 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 635bd8deadSopenharmony_ci 645bd8deadSopenharmony_ci None 655bd8deadSopenharmony_ci 665bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 Specification (Rasterization) 675bd8deadSopenharmony_ci 685bd8deadSopenharmony_ci None 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations and 715bd8deadSopenharmony_cithe Framebuffer) 725bd8deadSopenharmony_ci 735bd8deadSopenharmony_ci None 745bd8deadSopenharmony_ci 755bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions) 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ci None 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests) 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci None 825bd8deadSopenharmony_ci 835bd8deadSopenharmony_ciAdditions to the GLX Specification 845bd8deadSopenharmony_ci 855bd8deadSopenharmony_ci [Add to Section 3.2.5 of the 1.0 GLX Specification (Synchronization 865bd8deadSopenharmony_ci Primititives)] 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ci In addition to its current functions, /usr/gfx/gfxinit also initializes 895bd8deadSopenharmony_ci the video sync counter to zero. After that time the video sync counter 905bd8deadSopenharmony_ci is incremented by one at the completion of the display of each full 915bd8deadSopenharmony_ci frame of video data. The counter value wraps to zero after it reaches 925bd8deadSopenharmony_ci its maximum value. The single video sync counter is shared by all 935bd8deadSopenharmony_ci GLXContexts. 945bd8deadSopenharmony_ci 955bd8deadSopenharmony_ci glXGetVideoSyncSGI returns the value of the video sync counter in 965bd8deadSopenharmony_ci <count>. Zero is returned if the call is successful. 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ci glXWaitVideoSyncSGI puts the calling process to sleep until 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci (C mod D) = R 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ci where C is the video sync counter, D is specified by the <divisor> 1035bd8deadSopenharmony_ci parameter of glXWaitVideoSyncSGI, and R is specified by the <remainder> 1045bd8deadSopenharmony_ci parameter of glXWaitVideoSyncSGI. glXWaitVideoSyncSGI returns the 1055bd8deadSopenharmony_ci current video sync counter value in <count>. Zero is returned by 1065bd8deadSopenharmony_ci glXWaitVideoSyncSGI if it is successful. 1075bd8deadSopenharmony_ci 1085bd8deadSopenharmony_ci glXWaitVideoSyncSGI is supported only by direct GLXContexts. 1095bd8deadSopenharmony_ci 1105bd8deadSopenharmony_ciErrors 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ci glXGetVideoSyncSGI returns GLX_BAD_CONTEXT if there is no current 1135bd8deadSopenharmony_ci GLXContext. 1145bd8deadSopenharmony_ci 1155bd8deadSopenharmony_ci glXWaitVideoSyncSGI returns GLX_BAD_CONTEXT if the current context is 1165bd8deadSopenharmony_ci not direct, or if there is no current context. 1175bd8deadSopenharmony_ci 1185bd8deadSopenharmony_ci glXWaitVideoSyncSGI returns GLX_BAD_VALUE if parameter <divisor> is less 1195bd8deadSopenharmony_ci than or equal to zero, or if parameter <remainder> is less than zero. 1205bd8deadSopenharmony_ci 1215bd8deadSopenharmony_ciNew State 1225bd8deadSopenharmony_ci 1235bd8deadSopenharmony_ci Get Value Get Command Type Initial Value 1245bd8deadSopenharmony_ci --------- ----------- ---- ------------- 1255bd8deadSopenharmony_ci [video sync counter] glXGetVideoSyncSGI Z+ unknown 1265bd8deadSopenharmony_ci 1275bd8deadSopenharmony_ciNew Implementation Dependent State 1285bd8deadSopenharmony_ci 1295bd8deadSopenharmony_ci None 1305bd8deadSopenharmony_ci 1315bd8deadSopenharmony_ciVersion 1325bd8deadSopenharmony_ci 1335bd8deadSopenharmony_ci $Date: 1995/09/15 01:22:58 $ $Revision: 1.8 $ 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ci Khronos revision 2: 1365bd8deadSopenharmony_ci - Note ARB_framebuffer_object interaction (ajax) 137