Name NV_multigpu_context Name Strings GLX_NV_multigpu_context Contact Ben Quest (bquest 'at' nvidia.com) Contributors Ben Quest, NVIDIA Joshua Schnarr, NVIDIA Ralf Biermann, NVIDIA Ingo Esser, NVIDIA Robert Menzel, NVIDIA James Jones, NVIDIA Notice Copyright (c) 2019 NVIDIA Status Complete. Version Last Modified Date: 2019-05-17 Author Revision: 1 Number OpenGL Extension #545 Dependencies GLX_NV_multigpu_context is written against the GLX 1.4 and GLX_ARB_create_context specifications. Both are required. This extension interacts with NV_gpu_multicast. Overview This extension allows the creation of an OpenGL context in a multi-GPU environment with a specified multi-GPU strategy (known as SLI mode) which takes precedence over process-wide multi-GPU mode settings. The multi-GPU mode denotes vendor specific techniques to allow distributed rendering on multiple GPUs, further called AFR (alternate frame rendering) and Multicast (as defined in NV_gpu_multicast). OpenGL supports multiple contexts. The semantics of switching contexts is generally left to window system binding APIs such as WGL, GLX and EGL. The extension GLX_NV_multigpu_context allows to specify a preferred multi-GPU rendering mode per context, thus context switching can also switch the current multi-GPU rendering mode. In addition to the modes described above, this extension allows creating contexts in single mode to force all rendering to be done on a single GPU, and multi-display multicast mode to allow multicast rendering on a multi-display configuration where displays attached to multiple GPUs are linked together in a desktop configuration spanning multiple GPUs. The implementation is platform dependent and the actual multi-GPU rendering mode of the created context may vary on different hardware and operation system platforms. New Procedures and Functions None New Tokens (GLX) Accepted as an attribute name in the <*attrib_list> argument to glXCreateContextAttribsARB: GLX_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA Accepted as an attribute value for GLX_CONTEXT_MULTIGPU_ATTRIB_NV in the <*attrib_list> argument to glXCreateContextAttribsARB: GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE Additions to the GLX 1.4 Specification This extension modifies language specified in the GLX_ARB_create_context extension. Add a new paragraph to the description of glXCreateContextAttribsARB: "The attribute name GLX_CONTEXT_MULTIGPU_ATTRIB_NV indicates the preferred multi-GPU rendering mode for the OpenGL context. This specified mode precedes other selected configuration settings." Add a new context creation error to glXCreateContextAttribsARB: "If attribute GLX_CONTEXT_MULTIGPU_ATTRIB_NV does not describe a valid and supported SLI rendering mode, BadValue is generated." Append a new paragraph to the end of section 3.5 "Rendering Contexts": "When multiple contexts created with a multigpu context attribute are being used, glXMakeCurrent and glXMakeContextCurrent will return FALSE if the GLXDrawable is already current with a context using a different multigpu attribute." GLX Errors BadValue is generated if GLX_CONTEXT_MULTIGPU_ATTRIB_NV does not describe a valid and supported SLI rendering mode. GLXBadContextState is generated if glXMakeCurrent is called with a context created with a different multigpu attribute than the context previously current to the drawable. GLX Protocol None New State None Issues All non-window-system dependent issues described in the WGL_NV_multigpu_context extension specification apply equally to GLX_NV_multigpu_context. Revision History Rev. Date Author Changes ---- ---------- -------- --------------------------------------------- 1 2019-05-17 bquest Fork from WGL_NV_multigpu_context