blob: 8f69c9389a7a1cfec543b3b7e0675d767ec154b5 [file] [log] [blame]
// Copyright (c) 2019 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.
#include "ui/gl/dual_gpu_state.h"
#include "base/containers/flat_set.h"
#include "base/trace_event/trace_event.h"
namespace gl {
class GLContext;
DualGPUState::DualGPUState() {}
DualGPUState::~DualGPUState() {}
void DualGPUState::RegisterHighPerformanceContext(GLContext* context) {
if (contexts_.contains(context))
return;
CancelDelayedSwitchToLowPowerGPU();
contexts_.insert(context);
SwitchToHighPerformanceGPUIfNeeded();
}
void DualGPUState::RemoveHighPerformanceContext(GLContext* context) {
if (!contexts_.contains(context))
return;
contexts_.erase(context);
if (contexts_.empty())
AttemptSwitchToLowPowerGPUWithDelay();
}
} // namespace gl