diff --git a/src/nsgl_context.m b/src/nsgl_context.m index cbdf284d8..c6781aca7 100644 --- a/src/nsgl_context.m +++ b/src/nsgl_context.m @@ -125,6 +125,25 @@ int _glfwCreateContext(_GLFWwindow* window, NSOpenGLPixelFormatAttribute attributes[40]; ADD_ATTR(NSOpenGLPFAClosestPolicy); + + // Enables the context to participate in automatic graphics card switching. + // This means that GLFW won't force switching to the discrete graphics + // card on any Mac that has dual graphics cards available. + // This will result in lower power consumption for GUI-style apps where + // the integrated graphics are more than adequate, but may be ignored + // for heavier applications such as games, where the user most likely + // wants to take advantage of the more powerful discrete graphics chip. + + // For this functionality to actually be active, the Apps' Info.plist + // file still needs to be edited to contain: + // NSSupportsAutomaticGraphicsSwitching + // otherwise it continues with default behaviour of forced discrete gfx. + + // Note that switching graphics chipsets also incurs a ~200ms penalty on + // app startup, which is avoided by having this attribute set. + // Further info: + // https://developer.apple.com/library/mac/technotes/tn2229/_index.html + ADD_ATTR(NSOpenGLPFAAllowOfflineRenderers); #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 if (ctxconfig->major > 2)