From fb2b04b7152552989df70be7488a2f189cc1a841 Mon Sep 17 00:00:00 2001 From: Markus Stange Date: Tue, 19 Nov 2019 21:49:01 +0000 Subject: [PATCH] Bug 1596248 - Add CreateContextFlags::PREFER_MULTITHREADED and change the pref name from gl to webgl. r=jgilbert Differential Revision: https://phabricator.services.mozilla.com/D53768 --HG-- extra : moz-landing-system : lando --- dom/canvas/WebGLContext.cpp | 4 ++++ gfx/gl/GLContextProviderCGL.mm | 2 +- gfx/gl/GLContextTypes.h | 1 + modules/libpref/init/StaticPrefList.yaml | 13 +++++-------- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/dom/canvas/WebGLContext.cpp b/dom/canvas/WebGLContext.cpp index b69c0bff557a..abae83ac5a58 100644 --- a/dom/canvas/WebGLContext.cpp +++ b/dom/canvas/WebGLContext.cpp @@ -483,6 +483,10 @@ bool WebGLContext::CreateAndInitGL( flags |= gl::CreateContextFlags::FORCE_ENABLE_HARDWARE; } + if (StaticPrefs::webgl_cgl_multithreaded()) { + flags |= gl::CreateContextFlags::PREFER_MULTITHREADED; + } + if (IsWebGL2()) { flags |= gl::CreateContextFlags::PREFER_ES3; } else { diff --git a/gfx/gl/GLContextProviderCGL.mm b/gfx/gl/GLContextProviderCGL.mm index 745cd0084bbd..c5bdd6aa95db 100644 --- a/gfx/gl/GLContextProviderCGL.mm +++ b/gfx/gl/GLContextProviderCGL.mm @@ -237,7 +237,7 @@ static already_AddRefed CreateOffscreenFBOContext(CreateContextFla RefPtr glContext = new GLContextCGL(flags, SurfaceCaps::Any(), context, true); - if (StaticPrefs::gl_multithreaded()) { + if (flags & CreateContextFlags::PREFER_MULTITHREADED) { CGLEnable(glContext->GetCGLContext(), kCGLCEMPEngine); } return glContext.forget(); diff --git a/gfx/gl/GLContextTypes.h b/gfx/gl/GLContextTypes.h index 124578e47b00..4c509a3a6cb1 100644 --- a/gfx/gl/GLContextTypes.h +++ b/gfx/gl/GLContextTypes.h @@ -44,6 +44,7 @@ enum class CreateContextFlags : uint16_t { HIGH_POWER = 1 << 6, PROVOKING_VERTEX_DONT_CARE = 1 << 7, PREFER_EXACT_VERSION = 1 << 8, + PREFER_MULTITHREADED = 1 << 9, }; MOZ_MAKE_ENUM_CLASS_BITWISE_OPERATORS(CreateContextFlags) diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml index 5af42b79ba50..69fe8e5b4287 100644 --- a/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml @@ -3713,13 +3713,6 @@ value: false mirror: always -#if defined(XP_MACOSX) -- name: gl.multithreaded - type: RelaxedAtomicBool - value: true - mirror: always -#endif - - name: gl.use-tls-is-current type: RelaxedAtomicInt32 value: 0 @@ -7582,7 +7575,6 @@ #endif mirror: always - - name: webgl.all-angle-options type: RelaxedAtomicBool value: false @@ -7612,6 +7604,11 @@ value: true mirror: always +- name: webgl.cgl.multithreaded + type: RelaxedAtomicBool + value: true + mirror: always + - name: webgl.default-antialias type: RelaxedAtomicBool value: @IS_NOT_ANDROID@