15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci EXT_swap_control_tear 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci WGL_EXT_swap_control_tear 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Piers Daniell, NVIDIA (pdaniell 'at' nvidia.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciContributors 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Antonio Tejada, NVIDIA 165bd8deadSopenharmony_ci Jeff Bolz, NVIDIA 175bd8deadSopenharmony_ci Pat Brown, NVIDIA 185bd8deadSopenharmony_ci Udo Lugauer, NVIDIA 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ciStatus 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ci Complete. Shipping with NVIDIA Forceware 285.62 and AMD Catalyst 11.10 235bd8deadSopenharmony_ci drivers. 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ciVersion 265bd8deadSopenharmony_ci 275bd8deadSopenharmony_ci Last Modified Date: 03/16/2011 285bd8deadSopenharmony_ci Author revision: 1 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ciNumber 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci 415 335bd8deadSopenharmony_ci 345bd8deadSopenharmony_ciDependencies 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci WGL_EXT_extensions_string is required. 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ci WGL_EXT_swap_control is required. 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ciOverview 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ci This extension extends the existing WGL_EXT_swap_control extension 435bd8deadSopenharmony_ci by allowing a negative <interval> parameter to wglSwapIntervalEXT. 445bd8deadSopenharmony_ci The negative <interval> allows late swaps to occur without 455bd8deadSopenharmony_ci synchronization to the video frame. This reduces the visual stutter 465bd8deadSopenharmony_ci on late frames and reduces the stall on subsequent frames. 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ciNew Procedures and Functions 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ci None 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ciNew Tokens 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci None 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ciAdditions to the WGL Specification 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci In the section that starts: 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci "wglSwapIntervalEXT specifies the minimum number of video frame periods 615bd8deadSopenharmony_ci per buffer swap for the window associated with the current context." 625bd8deadSopenharmony_ci 635bd8deadSopenharmony_ci After the following paragraph: 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ci "If <interval> is set to a value of 0, buffer swaps are not synchron- 665bd8deadSopenharmony_ci ized to a video frame. The <interval> value is silently clamped to 675bd8deadSopenharmony_ci the maximum implementation-dependent value supported before being 685bd8deadSopenharmony_ci stored." 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ci Add the following paragraph: 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci "If <interval> is negative, the minimum number of video frames between 735bd8deadSopenharmony_ci buffer swaps is the absolute value of <interval>. In this case, if 745bd8deadSopenharmony_ci abs(<interval>) video frames have already passed from the previous swap 755bd8deadSopenharmony_ci when the swap is ready to be performed, the swap will occur without 765bd8deadSopenharmony_ci synchronization to a video frame. When an unsynchronized swap happens, 775bd8deadSopenharmony_ci the missed frame will count towards the minimum number of video frames 785bd8deadSopenharmony_ci for the next swap." 795bd8deadSopenharmony_ci 805bd8deadSopenharmony_ciDependencies on WGL_EXT_extensions_string 815bd8deadSopenharmony_ci 825bd8deadSopenharmony_ci Because there is no way to extend wgl, these calls are defined in 835bd8deadSopenharmony_ci the ICD and can be called by obtaining the address with 845bd8deadSopenharmony_ci wglGetProcAddress. Because this extension is a WGL extension, it 855bd8deadSopenharmony_ci is not included in the GL_EXTENSIONS string. Its existence can be 865bd8deadSopenharmony_ci determined with the WGL_EXT_extensions_string extension. 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ciErrors 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ci In the section that starts: 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci "If the function succeeds, the return value is TRUE. If the function 935bd8deadSopenharmony_ci fails, the return value is FALSE. To get extended error information, 945bd8deadSopenharmony_ci call GetLastError." 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci Remove the following error: 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ci ERROR_INVALID_DATA The <interval> parameter is negative. 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ciNew State 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ci None 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ciNew Implementation Dependent State 1055bd8deadSopenharmony_ci 1065bd8deadSopenharmony_ci None 1075bd8deadSopenharmony_ci 1085bd8deadSopenharmony_ciIssues 1095bd8deadSopenharmony_ci 1105bd8deadSopenharmony_ci 1) This extension doesn't provide a way to know when a video frame was 1115bd8deadSopenharmony_ci missed and an unsynchronized swap was performed. 1125bd8deadSopenharmony_ci 1135bd8deadSopenharmony_ci UNRESOLVED: This extensions isn't meant to solve the issue of repeated 1145bd8deadSopenharmony_ci tearing if the application falls behind the vsync. This extension just 1155bd8deadSopenharmony_ci eliminates the extra stall that will occur if the application misses 1165bd8deadSopenharmony_ci the target vsync. The application can use a CPU timer or the GL timer 1175bd8deadSopenharmony_ci queries to determine if it is falling behind continually and can 1185bd8deadSopenharmony_ci adjust it's workload appropriatly. 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ciRevision History 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ci Rev. Date Author Changes 1235bd8deadSopenharmony_ci ---- -------- -------- ----------------------------------------- 1245bd8deadSopenharmony_ci 1 03/16/11 pdaniell Initial version. 125