From 332e5bcc52058b9772fe7b4a4be28b2cff213380 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 --- platform/darwin/src/headless_display_cgl.cpp | 10 ++++++++-- platform/macos/src/MGLOpenGLLayer.mm | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/platform/darwin/src/headless_display_cgl.cpp b/platform/darwin/src/headless_display_cgl.cpp index b38eb6b62..5b7a1f2ba 100644 --- a/platform/darwin/src/headless_display_cgl.cpp +++ b/platform/darwin/src/headless_display_cgl.cpp @@ -18,8 +18,14 @@ HeadlessDisplay::Impl::Impl() { // 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 8f8588486..16b4042ce 100644 --- a/platform/macos/src/MGLOpenGLLayer.mm +++ b/platform/macos/src/MGLOpenGLLayer.mm @@ -22,6 +22,7 @@ - (NSOpenGLPixelFormat *)openGLPixelFormatForDisplayMask:(uint32_t)mask { NSOpenGLPixelFormatAttribute pfas[] = { + NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersionLegacy, NSOpenGLPFAAccelerated, NSOpenGLPFAClosestPolicy, NSOpenGLPFAAccumSize, 32,