| // Copyright (c) 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef GPU_CONFIG_GPU_SWITCHING_H_ |
| #define GPU_CONFIG_GPU_SWITCHING_H_ |
| |
| #include <stdint.h> |
| |
| #include <vector> |
| |
| #include "build/build_config.h" |
| #include "gpu/gpu_export.h" |
| |
| namespace base { |
| class CommandLine; |
| } |
| |
| namespace gpu { |
| |
| struct GPUInfo; |
| |
| // Returns true if GPU dynamic switching inside Chrome is supported. |
| // Currently it's only for Mac with switchable dual GPUs. |
| GPU_EXPORT bool SwitchableGPUsSupported(const GPUInfo& gpu_info, |
| const base::CommandLine& command_line); |
| |
| // Depending on the GPU driver bug workarounds, if needed, force onto the |
| // discrete GPU or try best to stay on the integrated GPU. |
| // This should only be called if SwitchableGPUsSupported() returns true. |
| GPU_EXPORT void InitializeSwitchableGPUs( |
| const std::vector<int32_t>& driver_bug_workarounds); |
| |
| // Destroy the CGLPixelFormatObj that's used to force discrete GPU. |
| GPU_EXPORT void StopForceDiscreteGPU(); |
| |
| } // namespace gpu |
| |
| #endif // GPU_CONFIG_GPU_SWITCHING_H_ |