• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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