OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "gpu/command_buffer/service/buffer_manager.h" | 5 #include "gpu/command_buffer/service/buffer_manager.h" |
6 #include "gpu/command_buffer/service/error_state_mock.h" | 6 #include "gpu/command_buffer/service/error_state_mock.h" |
7 #include "gpu/command_buffer/service/feature_info.h" | 7 #include "gpu/command_buffer/service/feature_info.h" |
8 #include "gpu/command_buffer/service/gpu_service_test.h" | 8 #include "gpu/command_buffer/service/gpu_service_test.h" |
9 #include "gpu/command_buffer/service/mocks.h" | 9 #include "gpu/command_buffer/service/mocks.h" |
10 #include "gpu/command_buffer/service/test_helper.h" | 10 #include "gpu/command_buffer/service/test_helper.h" |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 DoBufferData(buffer, 1, GL_STATIC_DRAW, NULL, GL_NO_ERROR); | 203 DoBufferData(buffer, 1, GL_STATIC_DRAW, NULL, GL_NO_ERROR); |
204 const int size = 0x20000; | 204 const int size = 0x20000; |
205 scoped_ptr<uint8[]> temp(new uint8[size]); | 205 scoped_ptr<uint8[]> temp(new uint8[size]); |
206 EXPECT_FALSE(DoBufferSubData(buffer, 0 - size, size, temp.get())); | 206 EXPECT_FALSE(DoBufferSubData(buffer, 0 - size, size, temp.get())); |
207 EXPECT_FALSE(DoBufferSubData(buffer, 1, size / 2, temp.get())); | 207 EXPECT_FALSE(DoBufferSubData(buffer, 1, size / 2, temp.get())); |
208 } | 208 } |
209 | 209 |
210 TEST_F(BufferManagerTest, GetRange) { | 210 TEST_F(BufferManagerTest, GetRange) { |
211 const GLuint kClientBufferId = 1; | 211 const GLuint kClientBufferId = 1; |
212 const GLuint kServiceBufferId = 11; | 212 const GLuint kServiceBufferId = 11; |
213 const uint8 data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; | 213 const GLsizeiptr kDataSize = 10; |
214 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); | 214 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); |
215 Buffer* buffer = manager_->GetBuffer(kClientBufferId); | 215 Buffer* buffer = manager_->GetBuffer(kClientBufferId); |
216 ASSERT_TRUE(buffer != NULL); | 216 ASSERT_TRUE(buffer != NULL); |
217 manager_->SetTarget(buffer, GL_ELEMENT_ARRAY_BUFFER); | 217 manager_->SetTarget(buffer, GL_ELEMENT_ARRAY_BUFFER); |
218 DoBufferData(buffer, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR); | 218 DoBufferData(buffer, kDataSize, GL_STATIC_DRAW, NULL, GL_NO_ERROR); |
219 const char* buf = | 219 const char* buf = |
220 static_cast<const char*>(buffer->GetRange(0, sizeof(data))); | 220 static_cast<const char*>(buffer->GetRange(0, kDataSize)); |
221 ASSERT_TRUE(buf != NULL); | 221 ASSERT_TRUE(buf != NULL); |
222 const char* buf1 = | 222 const char* buf1 = |
223 static_cast<const char*>(buffer->GetRange(1, sizeof(data) - 1)); | 223 static_cast<const char*>(buffer->GetRange(1, kDataSize - 1)); |
224 EXPECT_EQ(buf + 1, buf1); | 224 EXPECT_EQ(buf + 1, buf1); |
225 EXPECT_TRUE(buffer->GetRange(sizeof(data), 1) == NULL); | 225 EXPECT_TRUE(buffer->GetRange(kDataSize, 1) == NULL); |
226 EXPECT_TRUE(buffer->GetRange(0, sizeof(data) + 1) == NULL); | 226 EXPECT_TRUE(buffer->GetRange(0, kDataSize + 1) == NULL); |
227 EXPECT_TRUE(buffer->GetRange(-1, sizeof(data)) == NULL); | 227 EXPECT_TRUE(buffer->GetRange(-1, kDataSize) == NULL); |
228 EXPECT_TRUE(buffer->GetRange(-0, -1) == NULL); | 228 EXPECT_TRUE(buffer->GetRange(-0, -1) == NULL); |
229 const int size = 0x20000; | 229 const int size = 0x20000; |
230 DoBufferData(buffer, size / 2, GL_STATIC_DRAW, NULL, GL_NO_ERROR); | 230 DoBufferData(buffer, size / 2, GL_STATIC_DRAW, NULL, GL_NO_ERROR); |
231 EXPECT_TRUE(buffer->GetRange(0 - size, size) == NULL); | 231 EXPECT_TRUE(buffer->GetRange(0 - size, size) == NULL); |
232 EXPECT_TRUE(buffer->GetRange(1, size / 2) == NULL); | 232 EXPECT_TRUE(buffer->GetRange(1, size / 2) == NULL); |
233 } | 233 } |
234 | 234 |
235 TEST_F(BufferManagerTest, GetMaxValueForRangeUint8) { | 235 TEST_F(BufferManagerTest, GetMaxValueForRangeUint8) { |
236 const GLuint kClientBufferId = 1; | 236 const GLuint kClientBufferId = 1; |
237 const GLuint kServiceBufferId = 11; | 237 const GLuint kServiceBufferId = 11; |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 // Check out of range fails. | 343 // Check out of range fails. |
344 EXPECT_FALSE( | 344 EXPECT_FALSE( |
345 buffer->GetMaxValueForRange(0, 11, GL_UNSIGNED_INT, &max_value)); | 345 buffer->GetMaxValueForRange(0, 11, GL_UNSIGNED_INT, &max_value)); |
346 EXPECT_FALSE( | 346 EXPECT_FALSE( |
347 buffer->GetMaxValueForRange(40, 1, GL_UNSIGNED_INT, &max_value)); | 347 buffer->GetMaxValueForRange(40, 1, GL_UNSIGNED_INT, &max_value)); |
348 } | 348 } |
349 | 349 |
350 TEST_F(BufferManagerTest, UseDeletedBuffer) { | 350 TEST_F(BufferManagerTest, UseDeletedBuffer) { |
351 const GLuint kClientBufferId = 1; | 351 const GLuint kClientBufferId = 1; |
352 const GLuint kServiceBufferId = 11; | 352 const GLuint kServiceBufferId = 11; |
353 const uint32 data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; | 353 const GLsizeiptr kDataSize = 10; |
354 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); | 354 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); |
355 scoped_refptr<Buffer> buffer = manager_->GetBuffer(kClientBufferId); | 355 scoped_refptr<Buffer> buffer = manager_->GetBuffer(kClientBufferId); |
356 ASSERT_TRUE(buffer.get() != NULL); | 356 ASSERT_TRUE(buffer.get() != NULL); |
357 manager_->SetTarget(buffer.get(), GL_ARRAY_BUFFER); | 357 manager_->SetTarget(buffer.get(), GL_ARRAY_BUFFER); |
358 // Remove buffer | 358 // Remove buffer |
359 manager_->RemoveBuffer(kClientBufferId); | 359 manager_->RemoveBuffer(kClientBufferId); |
360 // Use it after removing | 360 // Use it after removing |
361 DoBufferData(buffer.get(), sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR); | 361 DoBufferData(buffer.get(), kDataSize, GL_STATIC_DRAW, NULL, GL_NO_ERROR); |
362 // Check that it gets deleted when the last reference is released. | 362 // Check that it gets deleted when the last reference is released. |
363 EXPECT_CALL(*gl_, DeleteBuffersARB(1, ::testing::Pointee(kServiceBufferId))) | 363 EXPECT_CALL(*gl_, DeleteBuffersARB(1, ::testing::Pointee(kServiceBufferId))) |
364 .Times(1) | 364 .Times(1) |
365 .RetiresOnSaturation(); | 365 .RetiresOnSaturation(); |
366 buffer = NULL; | 366 buffer = NULL; |
367 } | 367 } |
368 | 368 |
369 // Test buffers get shadowed when they are supposed to be. | 369 // Test buffers get shadowed when they are supposed to be. |
370 TEST_F(BufferManagerClientSideArraysTest, StreamBuffersAreShadowed) { | 370 TEST_F(BufferManagerClientSideArraysTest, StreamBuffersAreShadowed) { |
371 const GLuint kClientBufferId = 1; | 371 const GLuint kClientBufferId = 1; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
412 DoBufferData(buffer, sizeof(data3), GL_STATIC_DRAW, data3, GL_NO_ERROR); | 412 DoBufferData(buffer, sizeof(data3), GL_STATIC_DRAW, data3, GL_NO_ERROR); |
413 EXPECT_TRUE( | 413 EXPECT_TRUE( |
414 buffer->GetMaxValueForRange(0, 3, GL_UNSIGNED_INT, &max_value)); | 414 buffer->GetMaxValueForRange(0, 3, GL_UNSIGNED_INT, &max_value)); |
415 EXPECT_EQ(30u, max_value); | 415 EXPECT_EQ(30u, max_value); |
416 } | 416 } |
417 | 417 |
418 } // namespace gles2 | 418 } // namespace gles2 |
419 } // namespace gpu | 419 } // namespace gpu |
420 | 420 |
421 | 421 |
OLD | NEW |