1Name 2 3 NV_multigpu_context 4 5Name Strings 6 7 GLX_NV_multigpu_context 8 9Contact 10 11 Ben Quest (bquest 'at' nvidia.com) 12 13Contributors 14 15 Ben Quest, NVIDIA 16 Joshua Schnarr, NVIDIA 17 Ralf Biermann, NVIDIA 18 Ingo Esser, NVIDIA 19 Robert Menzel, NVIDIA 20 James Jones, NVIDIA 21 22Notice 23 24 Copyright (c) 2019 NVIDIA 25 26Status 27 28 Complete. 29 30Version 31 32 Last Modified Date: 2019-05-17 33 Author Revision: 1 34 35Number 36 37 OpenGL Extension #545 38 39Dependencies 40 41 GLX_NV_multigpu_context is written against the GLX 1.4 and 42 GLX_ARB_create_context specifications. Both are required. 43 44 This extension interacts with NV_gpu_multicast. 45 46Overview 47 48 This extension allows the creation of an OpenGL context in a multi-GPU 49 environment with a specified multi-GPU strategy (known as SLI mode) which 50 takes precedence over process-wide multi-GPU mode settings. 51 52 The multi-GPU mode denotes vendor specific techniques to allow distributed 53 rendering on multiple GPUs, further called AFR (alternate frame rendering) 54 and Multicast (as defined in NV_gpu_multicast). 55 56 OpenGL supports multiple contexts. The semantics of switching contexts 57 is generally left to window system binding APIs such as WGL, GLX and EGL. 58 The extension GLX_NV_multigpu_context allows to specify a preferred 59 multi-GPU rendering mode per context, thus context switching can also 60 switch the current multi-GPU rendering mode. 61 62 In addition to the modes described above, this extension allows creating 63 contexts in single mode to force all rendering to be done on a single GPU, 64 and multi-display multicast mode to allow multicast rendering on a 65 multi-display configuration where displays attached to multiple GPUs are 66 linked together in a desktop configuration spanning multiple GPUs. 67 68 The implementation is platform dependent and the actual multi-GPU rendering 69 mode of the created context may vary on different hardware and operation 70 system platforms. 71 72New Procedures and Functions 73 74 None 75 76New Tokens (GLX) 77 78 Accepted as an attribute name in the <*attrib_list> argument to 79 glXCreateContextAttribsARB: 80 81 GLX_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA 82 83 Accepted as an attribute value for GLX_CONTEXT_MULTIGPU_ATTRIB_NV in 84 the <*attrib_list> argument to glXCreateContextAttribsARB: 85 86 GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB 87 GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC 88 GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD 89 GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE 90 91Additions to the GLX 1.4 Specification 92 93 This extension modifies language specified in the GLX_ARB_create_context 94 extension. 95 96 Add a new paragraph to the description of glXCreateContextAttribsARB: 97 98 "The attribute name GLX_CONTEXT_MULTIGPU_ATTRIB_NV indicates the 99 preferred multi-GPU rendering mode for the OpenGL context. 100 This specified mode precedes other selected configuration settings." 101 102 Add a new context creation error to glXCreateContextAttribsARB: 103 104 "If attribute GLX_CONTEXT_MULTIGPU_ATTRIB_NV does not describe a valid and 105 supported SLI rendering mode, BadValue is generated." 106 107 Append a new paragraph to the end of section 3.5 "Rendering Contexts": 108 109 "When multiple contexts created with a multigpu context attribute are being 110 used, glXMakeCurrent and glXMakeContextCurrent will return FALSE if the 111 GLXDrawable is already current with a context using a different multigpu 112 attribute." 113 114GLX Errors 115 116 BadValue is generated if GLX_CONTEXT_MULTIGPU_ATTRIB_NV does not describe a 117 valid and supported SLI rendering mode. 118 119 GLXBadContextState is generated if glXMakeCurrent is called with a context 120 created with a different multigpu attribute than the context previously 121 current to the drawable. 122 123GLX Protocol 124 125 None 126 127New State 128 129 None 130 131Issues 132 133 All non-window-system dependent issues described in the 134 WGL_NV_multigpu_context extension specification apply equally to 135 GLX_NV_multigpu_context. 136 137Revision History 138 139 Rev. Date Author Changes 140 ---- ---------- -------- --------------------------------------------- 141 1 2019-05-17 bquest Fork from WGL_NV_multigpu_context 142 143