aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2016-12-28 11:19:22 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-12-28 16:51:17 +0000
commit3f375d055a9bf167122a5bbf4db9753f4b46a781 (patch)
tree67ffd9b429345bd5c8e305055f9e365dafd26eb8 /tools
parente2d4141679805b4c2a711d113f2b7360cb50924c (diff)
Add skia_enable_discrete_gpu argument to GN
This forces all of our testing tools to run with the discrete GPU in laptop systems that have that option. BUG=skia: Change-Id: Ibd7629d6de5f063cdf219b3c7469210af5085d90 Reviewed-on: https://skia-review.googlesource.com/6474 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/gpu/GrContextFactory.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp
index 8d9bd41245..bd745bcfcd 100644
--- a/tools/gpu/GrContextFactory.cpp
+++ b/tools/gpu/GrContextFactory.cpp
@@ -24,6 +24,20 @@
#include "gl/GrGLGpu.h"
#include "GrCaps.h"
+#if defined(SK_BUILD_FOR_WIN32) && defined(SK_ENABLE_DISCRETE_GPU)
+extern "C" {
+ // NVIDIA documents that the presence and value of this symbol programmatically enable the high
+ // performance GPU in laptops with switchable graphics.
+ // https://docs.nvidia.com/gameworks/content/technologies/desktop/optimus.htm
+ // From testing, including this symbol, even if it is set to 0, we still get the NVIDIA GPU.
+ _declspec(dllexport) unsigned long NvOptimusEnablement = 0x00000001;
+
+ // AMD has a similar mechanism, although I don't have an AMD laptop, so this is untested.
+ // https://community.amd.com/thread/169965
+ __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
+}
+#endif
+
namespace sk_gpu_test {
GrContextFactory::GrContextFactory() { }