From 3f375d055a9bf167122a5bbf4db9753f4b46a781 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Wed, 28 Dec 2016 11:19:22 -0500 Subject: 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 Commit-Queue: Brian Osman --- tools/gpu/GrContextFactory.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'tools/gpu/GrContextFactory.cpp') 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() { } -- cgit v1.2.3