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

Side by Side Diff: gpu/command_buffer/service/gpu_scheduler_unittest.cc

Issue 558513003: command_buffer: Batch command processing to reduce handler overheads. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 6 years, 3 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
« no previous file with comments | « gpu/command_buffer/service/gpu_scheduler.cc ('k') | gpu/command_buffer/service/mocks.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 #include "gpu/command_buffer/common/command_buffer_mock.h" 6 #include "gpu/command_buffer/common/command_buffer_mock.h"
7 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 7 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
8 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" 8 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h"
9 #include "gpu/command_buffer/service/gpu_scheduler.h" 9 #include "gpu/command_buffer/service/gpu_scheduler.h"
10 #include "gpu/command_buffer/service/mocks.h" 10 #include "gpu/command_buffer/service/mocks.h"
(...skipping 30 matching lines...) Expand all
41 memset(buffer_, 0, kRingBufferSize); 41 memset(buffer_, 0, kRingBufferSize);
42 42
43 command_buffer_.reset(new MockCommandBuffer); 43 command_buffer_.reset(new MockCommandBuffer);
44 44
45 CommandBuffer::State default_state; 45 CommandBuffer::State default_state;
46 default_state.num_entries = kRingBufferEntries; 46 default_state.num_entries = kRingBufferEntries;
47 ON_CALL(*command_buffer_.get(), GetLastState()) 47 ON_CALL(*command_buffer_.get(), GetLastState())
48 .WillByDefault(Return(default_state)); 48 .WillByDefault(Return(default_state));
49 49
50 decoder_.reset(new gles2::MockGLES2Decoder()); 50 decoder_.reset(new gles2::MockGLES2Decoder());
51 // Install FakeDoCommands handler so we can use individual DoCommand()
52 // expectations.
53 EXPECT_CALL(*decoder_, DoCommands(_, _, _, _)).WillRepeatedly(
54 Invoke(decoder_.get(), &gles2::MockGLES2Decoder::FakeDoCommands));
55
51 scheduler_.reset(new gpu::GpuScheduler(command_buffer_.get(), 56 scheduler_.reset(new gpu::GpuScheduler(command_buffer_.get(),
52 decoder_.get(), 57 decoder_.get(),
53 decoder_.get())); 58 decoder_.get()));
54 EXPECT_CALL(*command_buffer_, GetTransferBuffer(kTransferBufferId)) 59 EXPECT_CALL(*command_buffer_, GetTransferBuffer(kTransferBufferId))
55 .WillOnce(Return(shared_memory_buffer_)); 60 .WillOnce(Return(shared_memory_buffer_));
56 EXPECT_CALL(*command_buffer_, SetGetOffset(0)); 61 EXPECT_CALL(*command_buffer_, SetGetOffset(0));
57 EXPECT_TRUE(scheduler_->SetGetBuffer(kTransferBufferId)); 62 EXPECT_TRUE(scheduler_->SetGetBuffer(kTransferBufferId));
58 } 63 }
59 64
60 virtual void TearDown() { 65 virtual void TearDown() {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 header[2].size = 1; 145 header[2].size = 1;
141 146
142 CommandBuffer::State state; 147 CommandBuffer::State state;
143 148
144 state.put_offset = 3; 149 state.put_offset = 3;
145 EXPECT_CALL(*command_buffer_, GetLastState()) 150 EXPECT_CALL(*command_buffer_, GetLastState())
146 .WillRepeatedly(Return(state)); 151 .WillRepeatedly(Return(state));
147 152
148 EXPECT_CALL(*decoder_, DoCommand(7, 1, &buffer_[0])) 153 EXPECT_CALL(*decoder_, DoCommand(7, 1, &buffer_[0]))
149 .WillOnce(Return(error::kNoError)); 154 .WillOnce(Return(error::kNoError));
150 EXPECT_CALL(*command_buffer_, SetGetOffset(2));
151 155
152 EXPECT_CALL(*decoder_, DoCommand(8, 0, &buffer_[2])) 156 EXPECT_CALL(*decoder_, DoCommand(8, 0, &buffer_[2]))
153 .WillOnce(Return(error::kNoError)); 157 .WillOnce(Return(error::kNoError));
154 EXPECT_CALL(*command_buffer_, SetGetOffset(3)); 158 EXPECT_CALL(*command_buffer_, SetGetOffset(3));
155 159
156 scheduler_->PutChanged(); 160 scheduler_->PutChanged();
157 } 161 }
158 162
159 TEST_F(GpuSchedulerTest, SetsErrorCodeOnCommandBuffer) { 163 TEST_F(GpuSchedulerTest, SetsErrorCodeOnCommandBuffer) {
160 CommandHeader* header = reinterpret_cast<CommandHeader*>(&buffer_[0]); 164 CommandHeader* header = reinterpret_cast<CommandHeader*>(&buffer_[0]);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 212
209 EXPECT_EQ(kRingBufferSize, scheduler_->GetSharedMemoryBuffer(7)->size()); 213 EXPECT_EQ(kRingBufferSize, scheduler_->GetSharedMemoryBuffer(7)->size());
210 } 214 }
211 215
212 TEST_F(GpuSchedulerTest, SetTokenForwardsToCommandBuffer) { 216 TEST_F(GpuSchedulerTest, SetTokenForwardsToCommandBuffer) {
213 EXPECT_CALL(*command_buffer_, SetToken(7)); 217 EXPECT_CALL(*command_buffer_, SetToken(7));
214 scheduler_->set_token(7); 218 scheduler_->set_token(7);
215 } 219 }
216 220
217 } // namespace gpu 221 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gpu_scheduler.cc ('k') | gpu/command_buffer/service/mocks.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698