Title: [210277] branches/safari-602-branch

Diff

Modified: branches/safari-602-branch/Source/WebCore/ChangeLog (210276 => 210277)


--- branches/safari-602-branch/Source/WebCore/ChangeLog	2017-01-04 19:11:23 UTC (rev 210276)
+++ branches/safari-602-branch/Source/WebCore/ChangeLog	2017-01-04 19:12:47 UTC (rev 210277)
@@ -1,3 +1,28 @@
+2017-01-04  Babak Shafiei  <[email protected]>
+
+        Merge r210273.
+
+    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-03  Babak Shafiei  <[email protected]>
 
         Merge r210112.

Modified: branches/safari-602-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (210276 => 210277)


--- branches/safari-602-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp	2017-01-04 19:11:23 UTC (rev 210276)
+++ branches/safari-602-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp	2017-01-04 19:12:47 UTC (rev 210277)
@@ -401,6 +401,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-602-branch/Source/WebCore/page/Settings.in (210276 => 210277)


--- branches/safari-602-branch/Source/WebCore/page/Settings.in	2017-01-04 19:11:23 UTC (rev 210276)
+++ branches/safari-602-branch/Source/WebCore/page/Settings.in	2017-01-04 19:12:47 UTC (rev 210277)
@@ -107,6 +107,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-602-branch/Source/WebKit/mac/ChangeLog (210276 => 210277)


--- branches/safari-602-branch/Source/WebKit/mac/ChangeLog	2017-01-04 19:11:23 UTC (rev 210276)
+++ branches/safari-602-branch/Source/WebKit/mac/ChangeLog	2017-01-04 19:12:47 UTC (rev 210277)
@@ -1,3 +1,25 @@
+2017-01-04  Babak Shafiei  <[email protected]>
+
+        Merge r210273.
+
+    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.
+
 2016-10-31  Matthew Hanson  <[email protected]>
 
         Merge r206802. rdar://problem/28409525

Modified: branches/safari-602-branch/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (210276 => 210277)


--- branches/safari-602-branch/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2017-01-04 19:11:23 UTC (rev 210276)
+++ branches/safari-602-branch/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2017-01-04 19:12:47 UTC (rev 210277)
@@ -109,6 +109,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-602-branch/Source/WebKit/mac/WebView/WebPreferences.mm (210276 => 210277)


--- branches/safari-602-branch/Source/WebKit/mac/WebView/WebPreferences.mm	2017-01-04 19:11:23 UTC (rev 210276)
+++ branches/safari-602-branch/Source/WebKit/mac/WebView/WebPreferences.mm	2017-01-04 19:12:47 UTC (rev 210277)
@@ -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,
@@ -1971,6 +1972,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-602-branch/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (210276 => 210277)


--- branches/safari-602-branch/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2017-01-04 19:11:23 UTC (rev 210276)
+++ branches/safari-602-branch/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2017-01-04 19:12:47 UTC (rev 210277)
@@ -236,6 +236,9 @@
 - (BOOL)forceSoftwareWebGLRendering;
 - (void)setForceSoftwareWebGLRendering:(BOOL)forced;
 
+- (BOOL)preferLowPowerWebGLRendering;
+- (void)setPreferLowPowerWebGLRendering:(BOOL)preferLowPower;
+
 - (BOOL)accelerated2dCanvasEnabled;
 - (void)setAccelerated2dCanvasEnabled:(BOOL)enabled;
 

Modified: branches/safari-602-branch/Source/WebKit/mac/WebView/WebView.mm (210276 => 210277)


--- branches/safari-602-branch/Source/WebKit/mac/WebView/WebView.mm	2017-01-04 19:11:23 UTC (rev 210276)
+++ branches/safari-602-branch/Source/WebKit/mac/WebView/WebView.mm	2017-01-04 19:12:47 UTC (rev 210277)
@@ -2342,6 +2342,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-602-branch/Tools/ChangeLog (210276 => 210277)


--- branches/safari-602-branch/Tools/ChangeLog	2017-01-04 19:11:23 UTC (rev 210276)
+++ branches/safari-602-branch/Tools/ChangeLog	2017-01-04 19:12:47 UTC (rev 210277)
@@ -1,3 +1,23 @@
+2017-01-04  Babak Shafiei  <[email protected]>
+
+        Merge r210273.
+
+    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).
+
 2016-12-12  Ryan Haddad  <[email protected]>
 
         Merge r209540.

Modified: branches/safari-602-branch/Tools/MiniBrowser/mac/Info.plist (210276 => 210277)


--- branches/safari-602-branch/Tools/MiniBrowser/mac/Info.plist	2017-01-04 19:11:23 UTC (rev 210276)
+++ branches/safari-602-branch/Tools/MiniBrowser/mac/Info.plist	2017-01-04 19:12:47 UTC (rev 210277)
@@ -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