Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(436)

Side by Side Diff: gpu/command_buffer/client/ring_buffer_test.cc

Issue 10441140: Make context groups share a TextureBufferManager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file contains the tests for the RingBuffer class. 5 // This file contains the tests for the RingBuffer class.
6 6
7 #include "gpu/command_buffer/client/ring_buffer.h" 7 #include "gpu/command_buffer/client/ring_buffer.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
11 #include "gpu/command_buffer/client/cmd_buffer_helper.h" 11 #include "gpu/command_buffer/client/cmd_buffer_helper.h"
12 #include "gpu/command_buffer/service/cmd_buffer_engine.h" 12 #include "gpu/command_buffer/service/cmd_buffer_engine.h"
13 #include "gpu/command_buffer/service/mocks.h" 13 #include "gpu/command_buffer/service/mocks.h"
14 #include "gpu/command_buffer/service/command_buffer_service.h" 14 #include "gpu/command_buffer/service/command_buffer_service.h"
15 #include "gpu/command_buffer/service/gpu_scheduler.h" 15 #include "gpu/command_buffer/service/gpu_scheduler.h"
16 #include "gpu/command_buffer/service/transfer_buffer_manager.h"
16 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
17 18
18 #if defined(OS_MACOSX) 19 #if defined(OS_MACOSX)
19 #include "base/mac/scoped_nsautorelease_pool.h" 20 #include "base/mac/scoped_nsautorelease_pool.h"
20 #endif 21 #endif
21 22
22 namespace gpu { 23 namespace gpu {
23 24
24 using testing::Return; 25 using testing::Return;
25 using testing::Mock; 26 using testing::Mock;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 api_mock_.reset(new AsyncAPIMock); 58 api_mock_.reset(new AsyncAPIMock);
58 // ignore noops in the mock - we don't want to inspect the internals of the 59 // ignore noops in the mock - we don't want to inspect the internals of the
59 // helper. 60 // helper.
60 EXPECT_CALL(*api_mock_, DoCommand(cmd::kNoop, 0, _)) 61 EXPECT_CALL(*api_mock_, DoCommand(cmd::kNoop, 0, _))
61 .WillRepeatedly(Return(error::kNoError)); 62 .WillRepeatedly(Return(error::kNoError));
62 // Forward the SetToken calls to the engine 63 // Forward the SetToken calls to the engine
63 EXPECT_CALL(*api_mock_.get(), DoCommand(cmd::kSetToken, 1, _)) 64 EXPECT_CALL(*api_mock_.get(), DoCommand(cmd::kSetToken, 1, _))
64 .WillRepeatedly(DoAll(Invoke(api_mock_.get(), &AsyncAPIMock::SetToken), 65 .WillRepeatedly(DoAll(Invoke(api_mock_.get(), &AsyncAPIMock::SetToken),
65 Return(error::kNoError))); 66 Return(error::kNoError)));
66 67
67 command_buffer_.reset(new CommandBufferService); 68 {
68 command_buffer_->Initialize(); 69 TransferBufferManager* manager = new TransferBufferManager();
70 transfer_buffer_manager_.reset(manager);
71 EXPECT_TRUE(manager->Initialize());
72 }
73 command_buffer_.reset(
74 new CommandBufferService(transfer_buffer_manager_.get()));
75 EXPECT_TRUE(command_buffer_->Initialize());
69 76
70 gpu_scheduler_.reset(new GpuScheduler( 77 gpu_scheduler_.reset(new GpuScheduler(
71 command_buffer_.get(), api_mock_.get(), NULL)); 78 command_buffer_.get(), api_mock_.get(), NULL));
72 command_buffer_->SetPutOffsetChangeCallback(base::Bind( 79 command_buffer_->SetPutOffsetChangeCallback(base::Bind(
73 &GpuScheduler::PutChanged, base::Unretained(gpu_scheduler_.get()))); 80 &GpuScheduler::PutChanged, base::Unretained(gpu_scheduler_.get())));
74 command_buffer_->SetGetBufferChangeCallback(base::Bind( 81 command_buffer_->SetGetBufferChangeCallback(base::Bind(
75 &GpuScheduler::SetGetBuffer, base::Unretained(gpu_scheduler_.get()))); 82 &GpuScheduler::SetGetBuffer, base::Unretained(gpu_scheduler_.get())));
76 83
77 api_mock_->set_engine(gpu_scheduler_.get()); 84 api_mock_->set_engine(gpu_scheduler_.get());
78 do_jump_command_.reset(new DoJumpCommand(gpu_scheduler_.get())); 85 do_jump_command_.reset(new DoJumpCommand(gpu_scheduler_.get()));
79 EXPECT_CALL(*api_mock_, DoCommand(cmd::kJump, _, _)) 86 EXPECT_CALL(*api_mock_, DoCommand(cmd::kJump, _, _))
80 .WillRepeatedly( 87 .WillRepeatedly(
81 Invoke(do_jump_command_.get(), &DoJumpCommand::DoCommand)); 88 Invoke(do_jump_command_.get(), &DoJumpCommand::DoCommand));
82 89
83 helper_.reset(new CommandBufferHelper(command_buffer_.get())); 90 helper_.reset(new CommandBufferHelper(command_buffer_.get()));
84 helper_->Initialize(kBufferSize); 91 helper_->Initialize(kBufferSize);
85 } 92 }
86 93
87 int32 GetToken() { 94 int32 GetToken() {
88 return command_buffer_->GetState().token; 95 return command_buffer_->GetState().token;
89 } 96 }
90 97
91 #if defined(OS_MACOSX) 98 #if defined(OS_MACOSX)
92 base::mac::ScopedNSAutoreleasePool autorelease_pool_; 99 base::mac::ScopedNSAutoreleasePool autorelease_pool_;
93 #endif 100 #endif
94 MessageLoop message_loop_; 101 MessageLoop message_loop_;
95 scoped_ptr<AsyncAPIMock> api_mock_; 102 scoped_ptr<AsyncAPIMock> api_mock_;
103 scoped_ptr<TransferBufferManagerInterface> transfer_buffer_manager_;
96 scoped_ptr<CommandBufferService> command_buffer_; 104 scoped_ptr<CommandBufferService> command_buffer_;
97 scoped_ptr<GpuScheduler> gpu_scheduler_; 105 scoped_ptr<GpuScheduler> gpu_scheduler_;
98 scoped_ptr<CommandBufferHelper> helper_; 106 scoped_ptr<CommandBufferHelper> helper_;
99 scoped_ptr<DoJumpCommand> do_jump_command_; 107 scoped_ptr<DoJumpCommand> do_jump_command_;
100 }; 108 };
101 109
102 #ifndef _MSC_VER 110 #ifndef _MSC_VER
103 const unsigned int BaseRingBufferTest::kBaseOffset; 111 const unsigned int BaseRingBufferTest::kBaseOffset;
104 const unsigned int BaseRingBufferTest::kBufferSize; 112 const unsigned int BaseRingBufferTest::kBufferSize;
105 #endif 113 #endif
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 EXPECT_EQ(buffer_start_, static_cast<int8*>(pointer1)); 284 EXPECT_EQ(buffer_start_, static_cast<int8*>(pointer1));
277 285
278 // Check that the token has indeed passed. 286 // Check that the token has indeed passed.
279 EXPECT_LE(tokens[0], GetToken()); 287 EXPECT_LE(tokens[0], GetToken());
280 288
281 allocator_->FreePendingToken(pointer1, helper_->InsertToken()); 289 allocator_->FreePendingToken(pointer1, helper_->InsertToken());
282 EXPECT_LE(command_buffer_->GetState().token, helper_->InsertToken()); 290 EXPECT_LE(command_buffer_->GetState().token, helper_->InsertToken());
283 } 291 }
284 292
285 } // namespace gpu 293 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698