From e35c1f8c87354bb20f9485efa4e0d77ea5bf35b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Wed, 25 Jan 2017 10:58:47 +0100 Subject: [PATCH] [macos] align HeadlessDisplay with SDK OpenGL context creation options Cherry-picked from 2a077eaa5483b243e817a328adaea1027a48e7a7. --- platform/default/headless_display.cpp | 10 ++++++++-- platform/macos/src/MGLOpenGLLayer.mm | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/platform/default/headless_display.cpp b/platform/default/headless_display.cpp index aa57d66cd..b61848d1a 100644 --- a/platform/default/headless_display.cpp +++ b/platform/default/headless_display.cpp @@ -15,8 +15,14 @@ HeadlessDisplay::HeadlessDisplay() { // TODO: test if OpenGL 4.1 with GL_ARB_ES2_compatibility is supported // If it is, use kCGLOGLPVersion_3_2_Core and enable that extension. CGLPixelFormatAttribute attributes[] = { - kCGLPFAOpenGLProfile, - static_cast(kCGLOGLPVersion_Legacy), + kCGLPFAOpenGLProfile, static_cast(kCGLOGLPVersion_Legacy), + // Not adding kCGLPFAAccelerated, as this will make headless rendering impossible when running in VMs. + kCGLPFAClosestPolicy, + kCGLPFAAccumSize, static_cast(32), + kCGLPFAColorSize, static_cast(24), + kCGLPFAAlphaSize, static_cast(8), + kCGLPFADepthSize, static_cast(16), + kCGLPFAStencilSize, static_cast(8), kCGLPFASupportsAutomaticGraphicsSwitching, kCGLPFAAllowOfflineRenderers, // Allows using the integrated GPU static_cast(0) diff --git a/platform/macos/src/MGLOpenGLLayer.mm b/platform/macos/src/MGLOpenGLLayer.mm index 523b58505..654fa4f2b 100644 --- a/platform/macos/src/MGLOpenGLLayer.mm +++ b/platform/macos/src/MGLOpenGLLayer.mm @@ -24,6 +24,7 @@ - (NSOpenGLPixelFormat *)openGLPixelFormatForDisplayMask:(uint32_t)mask { NSOpenGLPixelFormatAttribute pfas[] = { + NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersionLegacy, NSOpenGLPFAAccelerated, NSOpenGLPFAClosestPolicy, NSOpenGLPFAAccumSize, 32,