#include "gpu/command_buffer/service/scheduler.h"
#include <algorithm>
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/task/single_thread_task_runner.h"
#include "base/test/bind.h"
#include "base/test/task_environment.h"
#include "base/test/test_simple_task_runner.h"
#include "base/time/time.h"
#include "gpu/command_buffer/service/sync_point_manager.h"
#include "gpu/config/gpu_finch_features.h"
#include "gpu/config/gpu_preferences.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace gpu {
template <typename T>
void RunFunctor(T functor) { … }
template <typename T>
base::OnceClosure GetClosure(T functor) { … }
class SchedulerTest : public testing::Test { … };
TEST_F(SchedulerTest, ScheduledTasksRunInOrder) { … }
TEST_F(SchedulerTest, ScheduledTasksRunAfterReporting) { … }
TEST_F(SchedulerTest, ContinuedTasksRunFirst) { … }
class SchedulerTaskRunOrderTest : public SchedulerTest { … };
TEST_F(SchedulerTaskRunOrderTest, SequencesRunInPriorityOrder) { … }
TEST_F(SchedulerTaskRunOrderTest, SequencesOfSamePriorityRunInOrder) { … }
TEST_F(SchedulerTaskRunOrderTest, SequenceWaitsForFence) { … }
TEST_F(SchedulerTaskRunOrderTest, SequenceWaitsForFenceExternal) { … }
TEST_F(SchedulerTaskRunOrderTest, SequenceDoesNotWaitForInvalidFence) { … }
TEST_F(SchedulerTaskRunOrderTest, ReleaseSequenceIsPrioritized) { … }
TEST_F(SchedulerTaskRunOrderTest, ReleaseSequenceHasPriorityOfWaiter) { … }
TEST_F(SchedulerTaskRunOrderTest, ReleaseSequenceRevertsToDefaultPriority) { … }
TEST_F(SchedulerTaskRunOrderTest, ReleaseSequenceCircularRelease) { … }
TEST_F(SchedulerTaskRunOrderTest, WaitOnSelfShouldNotBlockSequence) { … }
TEST_F(SchedulerTest, ReleaseSequenceShouldYield) { … }
TEST_F(SchedulerTest, ReentrantEnableSequenceShouldNotDeadlock) { … }
TEST_F(SchedulerTest, ClientWaitIsPrioritized) { … }
TEST_F(SchedulerTest, StreamPriorities) { … }
TEST_F(SchedulerTest, StreamDestroyRemovesPriorities) { … }
TEST_F(SchedulerTest, StreamPriorityChangeWhileReleasing) { … }
TEST_F(SchedulerTest, CircularPriorities) { … }
}