| // | |
| // Copyright 2014 The ANGLE Project Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| // | |
| // test_utils_win32.cpp: Implementation of OS-specific functions for Win32 (Windows) | |
| #include "util/test_utils.h" | |
| #include <windows.h> | |
| #include <array> | |
| #include "util/random_utils.h" | |
| namespace angle | |
| { | |
| void SetLowPriorityProcess() | |
| { | |
| SetPriorityClass(GetCurrentProcess(), BELOW_NORMAL_PRIORITY_CLASS); | |
| } | |
| bool StabilizeCPUForBenchmarking() | |
| { | |
| if (::SetThreadAffinityMask(::GetCurrentThread(), 1) == 0) | |
| { | |
| return false; | |
| } | |
| if (::SetPriorityClass(::GetCurrentProcess(), REALTIME_PRIORITY_CLASS) == FALSE) | |
| { | |
| return false; | |
| } | |
| if (::SetThreadPriority(::GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL) == FALSE) | |
| { | |
| return false; | |
| } | |
| return true; | |
| } | |
| } // namespace angle |