Index: content/browser/gpu/gpu_data_manager_impl_private.h |
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.h b/content/browser/gpu/gpu_data_manager_impl_private.h |
index 8e5514fad318236925412283a590aeb13884e9ef..61c1988bea4e06b4570f242ab033edd94f07d03d 100644 |
--- a/content/browser/gpu/gpu_data_manager_impl_private.h |
+++ b/content/browser/gpu/gpu_data_manager_impl_private.h |
@@ -42,6 +42,7 @@ class CONTENT_EXPORT GpuDataManagerImplPrivate { |
void RequestVideoMemoryUsageStatsUpdate() const; |
bool ShouldUseSwiftShader() const; |
void RegisterSwiftShaderPath(const base::FilePath& path); |
+ bool ShouldUseWarp() const; |
void AddObserver(GpuDataManagerObserver* observer); |
void RemoveObserver(GpuDataManagerObserver* observer); |
void UnblockDomainFrom3DAPIs(const GURL& url); |
@@ -127,6 +128,8 @@ class CONTENT_EXPORT GpuDataManagerImplPrivate { |
FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplPrivateTest, |
SwiftShaderRendering2); |
FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplPrivateTest, |
+ WarpEnabledOverridesSwiftShader); |
+ FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplPrivateTest, |
GpuInfoUpdate); |
FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplPrivateTest, |
NoGpuInfoUpdateWithSwiftShader); |
@@ -201,6 +204,13 @@ class CONTENT_EXPORT GpuDataManagerImplPrivate { |
// Try to switch to SwiftShader rendering, if possible and necessary. |
void EnableSwiftShaderIfNecessary(); |
+ // Try to switch to WARP rendering if the GPU hardware is not supported or |
+ // absent, and if we are trying to run in Windows Metro mode. |
+ void EnableWarpIfNecessary(); |
+ |
+ // Use only for testing, forces |use_warp_| to true. |
+ void ForceWarpModeForTesting(); |
+ |
// Helper to extract the domain from a given URL. |
std::string GetDomainFromURL(const GURL& url) const; |
@@ -231,6 +241,8 @@ class CONTENT_EXPORT GpuDataManagerImplPrivate { |
bool use_swiftshader_; |
+ bool use_warp_; |
+ |
base::FilePath swiftshader_path_; |
// Current card force-blacklisted due to GPU crashes, or disabled through |