15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci NV_multigpu_context 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GLX_NV_multigpu_context 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Ben Quest (bquest 'at' nvidia.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciContributors 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Ben Quest, NVIDIA 165bd8deadSopenharmony_ci Joshua Schnarr, NVIDIA 175bd8deadSopenharmony_ci Ralf Biermann, NVIDIA 185bd8deadSopenharmony_ci Ingo Esser, NVIDIA 195bd8deadSopenharmony_ci Robert Menzel, NVIDIA 205bd8deadSopenharmony_ci James Jones, NVIDIA 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ciNotice 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ci Copyright (c) 2019 NVIDIA 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ciStatus 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci Complete. 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ciVersion 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci Last Modified Date: 2019-05-17 335bd8deadSopenharmony_ci Author Revision: 1 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ciNumber 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci OpenGL Extension #545 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ciDependencies 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ci GLX_NV_multigpu_context is written against the GLX 1.4 and 425bd8deadSopenharmony_ci GLX_ARB_create_context specifications. Both are required. 435bd8deadSopenharmony_ci 445bd8deadSopenharmony_ci This extension interacts with NV_gpu_multicast. 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ciOverview 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci This extension allows the creation of an OpenGL context in a multi-GPU 495bd8deadSopenharmony_ci environment with a specified multi-GPU strategy (known as SLI mode) which 505bd8deadSopenharmony_ci takes precedence over process-wide multi-GPU mode settings. 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ci The multi-GPU mode denotes vendor specific techniques to allow distributed 535bd8deadSopenharmony_ci rendering on multiple GPUs, further called AFR (alternate frame rendering) 545bd8deadSopenharmony_ci and Multicast (as defined in NV_gpu_multicast). 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ci OpenGL supports multiple contexts. The semantics of switching contexts 575bd8deadSopenharmony_ci is generally left to window system binding APIs such as WGL, GLX and EGL. 585bd8deadSopenharmony_ci The extension GLX_NV_multigpu_context allows to specify a preferred 595bd8deadSopenharmony_ci multi-GPU rendering mode per context, thus context switching can also 605bd8deadSopenharmony_ci switch the current multi-GPU rendering mode. 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ci In addition to the modes described above, this extension allows creating 635bd8deadSopenharmony_ci contexts in single mode to force all rendering to be done on a single GPU, 645bd8deadSopenharmony_ci and multi-display multicast mode to allow multicast rendering on a 655bd8deadSopenharmony_ci multi-display configuration where displays attached to multiple GPUs are 665bd8deadSopenharmony_ci linked together in a desktop configuration spanning multiple GPUs. 675bd8deadSopenharmony_ci 685bd8deadSopenharmony_ci The implementation is platform dependent and the actual multi-GPU rendering 695bd8deadSopenharmony_ci mode of the created context may vary on different hardware and operation 705bd8deadSopenharmony_ci system platforms. 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ciNew Procedures and Functions 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ci None 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ciNew Tokens (GLX) 775bd8deadSopenharmony_ci 785bd8deadSopenharmony_ci Accepted as an attribute name in the <*attrib_list> argument to 795bd8deadSopenharmony_ci glXCreateContextAttribsARB: 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci GLX_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA 825bd8deadSopenharmony_ci 835bd8deadSopenharmony_ci Accepted as an attribute value for GLX_CONTEXT_MULTIGPU_ATTRIB_NV in 845bd8deadSopenharmony_ci the <*attrib_list> argument to glXCreateContextAttribsARB: 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ci GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB 875bd8deadSopenharmony_ci GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC 885bd8deadSopenharmony_ci GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD 895bd8deadSopenharmony_ci GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE 905bd8deadSopenharmony_ci 915bd8deadSopenharmony_ciAdditions to the GLX 1.4 Specification 925bd8deadSopenharmony_ci 935bd8deadSopenharmony_ci This extension modifies language specified in the GLX_ARB_create_context 945bd8deadSopenharmony_ci extension. 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci Add a new paragraph to the description of glXCreateContextAttribsARB: 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ci "The attribute name GLX_CONTEXT_MULTIGPU_ATTRIB_NV indicates the 995bd8deadSopenharmony_ci preferred multi-GPU rendering mode for the OpenGL context. 1005bd8deadSopenharmony_ci This specified mode precedes other selected configuration settings." 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ci Add a new context creation error to glXCreateContextAttribsARB: 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ci "If attribute GLX_CONTEXT_MULTIGPU_ATTRIB_NV does not describe a valid and 1055bd8deadSopenharmony_ci supported SLI rendering mode, BadValue is generated." 1065bd8deadSopenharmony_ci 1075bd8deadSopenharmony_ci Append a new paragraph to the end of section 3.5 "Rendering Contexts": 1085bd8deadSopenharmony_ci 1095bd8deadSopenharmony_ci "When multiple contexts created with a multigpu context attribute are being 1105bd8deadSopenharmony_ci used, glXMakeCurrent and glXMakeContextCurrent will return FALSE if the 1115bd8deadSopenharmony_ci GLXDrawable is already current with a context using a different multigpu 1125bd8deadSopenharmony_ci attribute." 1135bd8deadSopenharmony_ci 1145bd8deadSopenharmony_ciGLX Errors 1155bd8deadSopenharmony_ci 1165bd8deadSopenharmony_ci BadValue is generated if GLX_CONTEXT_MULTIGPU_ATTRIB_NV does not describe a 1175bd8deadSopenharmony_ci valid and supported SLI rendering mode. 1185bd8deadSopenharmony_ci 1195bd8deadSopenharmony_ci GLXBadContextState is generated if glXMakeCurrent is called with a context 1205bd8deadSopenharmony_ci created with a different multigpu attribute than the context previously 1215bd8deadSopenharmony_ci current to the drawable. 1225bd8deadSopenharmony_ci 1235bd8deadSopenharmony_ciGLX Protocol 1245bd8deadSopenharmony_ci 1255bd8deadSopenharmony_ci None 1265bd8deadSopenharmony_ci 1275bd8deadSopenharmony_ciNew State 1285bd8deadSopenharmony_ci 1295bd8deadSopenharmony_ci None 1305bd8deadSopenharmony_ci 1315bd8deadSopenharmony_ciIssues 1325bd8deadSopenharmony_ci 1335bd8deadSopenharmony_ci All non-window-system dependent issues described in the 1345bd8deadSopenharmony_ci WGL_NV_multigpu_context extension specification apply equally to 1355bd8deadSopenharmony_ci GLX_NV_multigpu_context. 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ciRevision History 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ci Rev. Date Author Changes 1405bd8deadSopenharmony_ci ---- ---------- -------- --------------------------------------------- 1415bd8deadSopenharmony_ci 1 2019-05-17 bquest Fork from WGL_NV_multigpu_context 1425bd8deadSopenharmony_ci 143