| Index: gpu/command_buffer/tests/gl_manager.cc
|
| diff --git a/gpu/command_buffer/tests/gl_manager.cc b/gpu/command_buffer/tests/gl_manager.cc
|
| index 73463f85ae88c4c271f8c9f6ac4bc0fd66fb56a1..06b238d0ab7326d2e614994073b2a5ec0c29ab0e 100644
|
| --- a/gpu/command_buffer/tests/gl_manager.cc
|
| +++ b/gpu/command_buffer/tests/gl_manager.cc
|
| @@ -185,30 +185,11 @@ scoped_refptr<gl::GLShareGroup>* GLManager::base_share_group_;
|
| scoped_refptr<gl::GLSurface>* GLManager::base_surface_;
|
| scoped_refptr<gl::GLContext>* GLManager::base_context_;
|
|
|
| -GLManager::Options::Options()
|
| - : size(4, 4),
|
| - sync_point_manager(NULL),
|
| - share_group_manager(NULL),
|
| - share_mailbox_manager(NULL),
|
| - virtual_manager(NULL),
|
| - bind_generates_resource(false),
|
| - lose_context_when_out_of_memory(false),
|
| - context_lost_allowed(false),
|
| - context_type(gles2::CONTEXT_TYPE_OPENGLES2),
|
| - force_shader_name_hashing(false),
|
| - multisampled(false),
|
| - backbuffer_alpha(true),
|
| - image_factory(nullptr),
|
| - preserve_backbuffer(false) {}
|
| +GLManager::Options::Options() = default;
|
|
|
| GLManager::GLManager()
|
| - : sync_point_manager_(nullptr),
|
| - context_lost_allowed_(false),
|
| - pause_commands_(false),
|
| - paused_order_num_(0),
|
| - command_buffer_id_(
|
| - CommandBufferId::FromUnsafeValue(g_next_command_buffer_id++)),
|
| - next_fence_sync_release_(1) {
|
| + : command_buffer_id_(
|
| + CommandBufferId::FromUnsafeValue(g_next_command_buffer_id++)) {
|
| SetupBaseContext();
|
| }
|
|
|
| @@ -369,13 +350,14 @@ void GLManager::InitializeWithCommandLine(
|
| if (options.sync_point_manager) {
|
| sync_point_manager_ = options.sync_point_manager;
|
| sync_point_order_data_ = SyncPointOrderData::Create();
|
| - sync_point_client_ = sync_point_manager_->CreateSyncPointClient(
|
| - sync_point_order_data_, GetNamespaceID(), GetCommandBufferID());
|
| + sync_point_client_ = base::MakeUnique<SyncPointClient>(
|
| + sync_point_manager_, sync_point_order_data_, GetNamespaceID(),
|
| + GetCommandBufferID());
|
|
|
| decoder_->SetFenceSyncReleaseCallback(
|
| base::Bind(&GLManager::OnFenceSyncRelease, base::Unretained(this)));
|
| - decoder_->SetWaitFenceSyncCallback(
|
| - base::Bind(&GLManager::OnWaitFenceSync, base::Unretained(this)));
|
| + decoder_->SetWaitSyncTokenCallback(
|
| + base::Bind(&GLManager::OnWaitSyncToken, base::Unretained(this)));
|
| } else {
|
| sync_point_manager_ = nullptr;
|
| sync_point_order_data_ = nullptr;
|
| @@ -428,25 +410,16 @@ void GLManager::SetupBaseContext() {
|
|
|
| void GLManager::OnFenceSyncRelease(uint64_t release) {
|
| DCHECK(sync_point_client_);
|
| - DCHECK(!sync_point_client_->client_state()->IsFenceSyncReleased(release));
|
| command_buffer_->SetReleaseCount(release);
|
| sync_point_client_->ReleaseFenceSync(release);
|
| }
|
|
|
| -bool GLManager::OnWaitFenceSync(gpu::CommandBufferNamespace namespace_id,
|
| - gpu::CommandBufferId command_buffer_id,
|
| - uint64_t release) {
|
| - DCHECK(sync_point_client_);
|
| - scoped_refptr<gpu::SyncPointClientState> release_state =
|
| - sync_point_manager_->GetSyncPointClientState(namespace_id,
|
| - command_buffer_id);
|
| - if (!release_state)
|
| - return true;
|
| -
|
| +bool GLManager::OnWaitSyncToken(const SyncToken& sync_token) {
|
| + DCHECK(sync_point_manager_);
|
| // GLManager does not support being multithreaded at this point, so the fence
|
| // sync must be released by the time wait is called.
|
| - DCHECK(release_state->IsFenceSyncReleased(release));
|
| - return true;
|
| + DCHECK(sync_point_manager_->IsSyncTokenReleased(sync_token));
|
| + return false;
|
| }
|
|
|
| void GLManager::MakeCurrent() {
|
| @@ -636,19 +609,16 @@ bool GLManager::IsFenceSyncReleased(uint64_t release) {
|
| void GLManager::SignalSyncToken(const gpu::SyncToken& sync_token,
|
| const base::Closure& callback) {
|
| if (sync_point_manager_) {
|
| - scoped_refptr<gpu::SyncPointClientState> release_state =
|
| - sync_point_manager_->GetSyncPointClientState(
|
| - sync_token.namespace_id(), sync_token.command_buffer_id());
|
| -
|
| - if (release_state) {
|
| - sync_point_client_->WaitOutOfOrder(release_state.get(),
|
| - sync_token.release_count(), callback);
|
| - return;
|
| - }
|
| + DCHECK(!paused_order_num_);
|
| + uint32_t order_num = sync_point_order_data_->GenerateUnprocessedOrderNumber(
|
| + sync_point_manager_);
|
| + sync_point_order_data_->BeginProcessingOrderNumber(order_num);
|
| + if (!sync_point_client_->Wait(sync_token, callback))
|
| + callback.Run();
|
| + sync_point_order_data_->FinishProcessingOrderNumber(order_num);
|
| + } else {
|
| + callback.Run();
|
| }
|
| -
|
| - // Something went wrong, just run the callback now.
|
| - callback.Run();
|
| }
|
|
|
| bool GLManager::CanWaitUnverifiedSyncToken(const gpu::SyncToken* sync_token) {
|
|
|