Title: [210356] branches/safari-603-branch

Diff

Modified: branches/safari-603-branch/Source/WebCore/ChangeLog (210355 => 210356)


--- branches/safari-603-branch/Source/WebCore/ChangeLog	2017-01-05 17:09:49 UTC (rev 210355)
+++ branches/safari-603-branch/Source/WebCore/ChangeLog	2017-01-05 17:09:54 UTC (rev 210356)
@@ -1,5 +1,30 @@
 2017-01-05  Matthew Hanson  <[email protected]>
 
+        Merge r210273. rdar://problem/29834093
+
+    2017-01-04  Tim Horton  <[email protected]>
+
+            Provide a setting for clients to always prefer low-power WebGL
+            https://bugs.webkit.org/show_bug.cgi?id=166675
+            <rdar://problem/29834093>
+
+            Reviewed by Dan Bernstein.
+
+            No new tests; as noted in r204664, we don't know how to reliably test
+            automatic graphics switching. One could use the manual test introduced
+            in that commit; after this commit, with the setting switched on, on a
+            dual-GPU machine that is actively using integrated graphics, that test
+            should return the same result for both contexts.
+
+            * page/Settings.in:
+            Add a setting to prefer low-power WebGL.
+
+            * html/canvas/WebGLRenderingContextBase.cpp:
+            (WebCore::WebGLRenderingContextBase::create):
+            If said setting is enabled, set preferLowPowerToHighPerformance.
+
+2017-01-05  Matthew Hanson  <[email protected]>
+
         Merge r210266. rdar://problem/29447824
 
     2017-01-03  Tim Horton  <[email protected]>

Modified: branches/safari-603-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (210355 => 210356)


--- branches/safari-603-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp	2017-01-05 17:09:49 UTC (rev 210355)
+++ branches/safari-603-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp	2017-01-05 17:09:54 UTC (rev 210356)
@@ -399,6 +399,9 @@
     if (frame->settings().forceSoftwareWebGLRendering())
         attributes.forceSoftwareRenderer = true;
 
+    if (!attributes.preferLowPowerToHighPerformance && frame->settings().preferLowPowerWebGLRendering())
+        attributes.preferLowPowerToHighPerformance = true;
+
     if (page)
         attributes.devicePixelRatio = page->deviceScaleFactor();
 

Modified: branches/safari-603-branch/Source/WebCore/page/Settings.in (210355 => 210356)


--- branches/safari-603-branch/Source/WebCore/page/Settings.in	2017-01-05 17:09:49 UTC (rev 210355)
+++ branches/safari-603-branch/Source/WebCore/page/Settings.in	2017-01-05 17:09:54 UTC (rev 210356)
@@ -108,6 +108,7 @@
 webGLErrorsToConsoleEnabled initial=true
 openGLMultisamplingEnabled initial=true
 forceSoftwareWebGLRendering initial=false
+preferLowPowerWebGLRendering initial=false
 accelerated2dCanvasEnabled initial=false
 antialiased2dCanvasEnabled initial=true
 loadDeferringEnabled initial=true

Modified: branches/safari-603-branch/Source/WebKit/mac/ChangeLog (210355 => 210356)


--- branches/safari-603-branch/Source/WebKit/mac/ChangeLog	2017-01-05 17:09:49 UTC (rev 210355)
+++ branches/safari-603-branch/Source/WebKit/mac/ChangeLog	2017-01-05 17:09:54 UTC (rev 210356)
@@ -1,5 +1,27 @@
 2017-01-05  Matthew Hanson  <[email protected]>
 
+        Merge r210273. rdar://problem/29834093
+
+    2017-01-04  Tim Horton  <[email protected]>
+
+            Provide a setting for clients to always prefer low-power WebGL
+            https://bugs.webkit.org/show_bug.cgi?id=166675
+            <rdar://problem/29834093>
+
+            Reviewed by Dan Bernstein.
+
+            * WebView/WebPreferenceKeysPrivate.h:
+            * WebView/WebPreferences.mm:
+            (+[WebPreferences initialize]):
+            (-[WebPreferences preferLowPowerWebGLRendering]):
+            (-[WebPreferences setPreferLowPowerWebGLRendering:]):
+            * WebView/WebPreferencesPrivate.h:
+            * WebView/WebView.mm:
+            (-[WebView _preferencesChanged:]):
+            Expose a new private preferLowPowerWebGLRendering WebKit1 preference.
+
+2017-01-05  Matthew Hanson  <[email protected]>
+
         Merge r210266. rdar://problem/29447824
 
     2017-01-03  Tim Horton  <[email protected]>

Modified: branches/safari-603-branch/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (210355 => 210356)


--- branches/safari-603-branch/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2017-01-05 17:09:49 UTC (rev 210355)
+++ branches/safari-603-branch/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2017-01-05 17:09:54 UTC (rev 210356)
@@ -111,6 +111,7 @@
 #define WebKitWebGLEnabledPreferenceKey @"WebKitWebGLEnabled"
 #define WebKitWebGL2EnabledPreferenceKey @"WebKitWebGL2Enabled"
 #define WebKitForceSoftwareWebGLRenderingPreferenceKey @"WebKitForceSoftwareWebGLRendering"
+#define WebKitPreferLowPowerWebGLRenderingPreferenceKey @"WebKitPreferLowPowerWebGLRendering"
 #define WebKitAccelerated2dCanvasEnabledPreferenceKey @"WebKitAccelerated2dCanvasEnabled"
 #define WebKitFrameFlatteningEnabledPreferenceKey @"WebKitFrameFlatteningEnabled"
 #define WebKitSpatialNavigationEnabledPreferenceKey @"WebKitSpatialNavigationEnabled"

Modified: branches/safari-603-branch/Source/WebKit/mac/WebView/WebPreferences.mm (210355 => 210356)


--- branches/safari-603-branch/Source/WebKit/mac/WebView/WebPreferences.mm	2017-01-05 17:09:49 UTC (rev 210355)
+++ branches/safari-603-branch/Source/WebKit/mac/WebView/WebPreferences.mm	2017-01-05 17:09:54 UTC (rev 210356)
@@ -504,6 +504,7 @@
         [NSNumber numberWithBool:NO],   WebKitShowRepaintCounterPreferenceKey,
         [NSNumber numberWithBool:YES],  WebKitWebGLEnabledPreferenceKey,
         [NSNumber numberWithBool:NO],  WebKitForceSoftwareWebGLRenderingPreferenceKey,
+        [NSNumber numberWithBool:NO],   WebKitPreferLowPowerWebGLRenderingPreferenceKey,
         [NSNumber numberWithBool:NO],   WebKitAccelerated2dCanvasEnabledPreferenceKey,
         [NSNumber numberWithBool:NO],  WebKitSubpixelCSSOMElementMetricsEnabledPreferenceKey,
         [NSNumber numberWithBool:NO],  WebKitResourceLoadStatisticsEnabledPreferenceKey,
@@ -2026,6 +2027,16 @@
     [self _setBoolValue:forced forKey:WebKitForceSoftwareWebGLRenderingPreferenceKey];
 }
 
+- (BOOL)preferLowPowerWebGLRendering
+{
+    return [self _boolValueForKey:WebKitPreferLowPowerWebGLRenderingPreferenceKey];
+}
+
+- (void)setPreferLowPowerWebGLRendering:(BOOL)preferLowPower
+{
+    [self _setBoolValue:preferLowPower forKey:WebKitPreferLowPowerWebGLRenderingPreferenceKey];
+}
+
 - (BOOL)accelerated2dCanvasEnabled
 {
     return [self _boolValueForKey:WebKitAccelerated2dCanvasEnabledPreferenceKey];

Modified: branches/safari-603-branch/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (210355 => 210356)


--- branches/safari-603-branch/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2017-01-05 17:09:49 UTC (rev 210355)
+++ branches/safari-603-branch/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2017-01-05 17:09:54 UTC (rev 210356)
@@ -248,6 +248,9 @@
 - (BOOL)forceSoftwareWebGLRendering;
 - (void)setForceSoftwareWebGLRendering:(BOOL)forced;
 
+- (BOOL)preferLowPowerWebGLRendering;
+- (void)setPreferLowPowerWebGLRendering:(BOOL)preferLowPower;
+
 - (BOOL)accelerated2dCanvasEnabled;
 - (void)setAccelerated2dCanvasEnabled:(BOOL)enabled;
 

Modified: branches/safari-603-branch/Source/WebKit/mac/WebView/WebView.mm (210355 => 210356)


--- branches/safari-603-branch/Source/WebKit/mac/WebView/WebView.mm	2017-01-05 17:09:49 UTC (rev 210355)
+++ branches/safari-603-branch/Source/WebKit/mac/WebView/WebView.mm	2017-01-05 17:09:54 UTC (rev 210356)
@@ -2661,6 +2661,7 @@
     settings.setSubpixelCSSOMElementMetricsEnabled([preferences subpixelCSSOMElementMetricsEnabled]);
 
     settings.setForceSoftwareWebGLRendering([preferences forceSoftwareWebGLRendering]);
+    settings.setPreferLowPowerWebGLRendering([preferences preferLowPowerWebGLRendering]);
     settings.setAccelerated2dCanvasEnabled([preferences accelerated2dCanvasEnabled]);
     settings.setLoadDeferringEnabled(shouldEnableLoadDeferring());
     settings.setWindowFocusRestricted(shouldRestrictWindowFocus());

Modified: branches/safari-603-branch/Tools/ChangeLog (210355 => 210356)


--- branches/safari-603-branch/Tools/ChangeLog	2017-01-05 17:09:49 UTC (rev 210355)
+++ branches/safari-603-branch/Tools/ChangeLog	2017-01-05 17:09:54 UTC (rev 210356)
@@ -1,5 +1,25 @@
 2017-01-05  Matthew Hanson  <[email protected]>
 
+        Merge r210273. rdar://problem/29834093
+
+    2017-01-04  Tim Horton  <[email protected]>
+
+            Provide a setting for clients to always prefer low-power WebGL
+            https://bugs.webkit.org/show_bug.cgi?id=166675
+            <rdar://problem/29834093>
+
+            Reviewed by Dan Bernstein.
+
+            * MiniBrowser/mac/Info.plist:
+            Have MiniBrowser claim to be a modern app that supports
+            automatic graphics switching. WebKit needs to support automatic
+            graphics switching, so our test app might as well. Without this
+            Info.plist parameter, this change has no effect, and bringing up
+            a WebGL context still brings up the discrete GPU (also true of the
+            existing web-exposed preferLowPowerToHighPerformance API).
+
+2017-01-05  Matthew Hanson  <[email protected]>
+
         Merge r210266. rdar://problem/29447824
 
     2017-01-03  Tim Horton  <[email protected]>

Modified: branches/safari-603-branch/Tools/MiniBrowser/mac/Info.plist (210355 => 210356)


--- branches/safari-603-branch/Tools/MiniBrowser/mac/Info.plist	2017-01-05 17:09:49 UTC (rev 210355)
+++ branches/safari-603-branch/Tools/MiniBrowser/mac/Info.plist	2017-01-05 17:09:54 UTC (rev 210356)
@@ -33,5 +33,7 @@
 		<key>NSAllowsArbitraryLoads</key>
 		<true/>
 	</dict>
+	<key>NSSupportsAutomaticGraphicsSwitching</key>
+	<true/>
 </dict>
 </plist>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to