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/mocks.h" | 8 #include "gpu/command_buffer/service/mocks.h" |
9 #include "gpu/command_buffer/service/test_helper.h" | 9 #include "gpu/command_buffer/service/test_helper.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 virtual void SetUp() { | 101 virtual void SetUp() { |
102 feature_info_ = new FeatureInfo(); | 102 feature_info_ = new FeatureInfo(); |
103 feature_info_->workarounds_.use_client_side_arrays_for_stream_buffers = | 103 feature_info_->workarounds_.use_client_side_arrays_for_stream_buffers = |
104 true; | 104 true; |
105 SetUpBase(NULL, feature_info_.get(), ""); | 105 SetUpBase(NULL, feature_info_.get(), ""); |
106 } | 106 } |
107 | 107 |
108 scoped_refptr<FeatureInfo> feature_info_; | 108 scoped_refptr<FeatureInfo> feature_info_; |
109 }; | 109 }; |
110 | 110 |
111 #define EXPECT_MEMORY_ALLOCATION_CHANGE(old_size, new_size, pool) \ | 111 #define EXPECT_MEMORY_ALLOCATION_CHANGE(old_size, new_size, pool) \ |
112 EXPECT_CALL(*mock_memory_tracker_, \ | 112 EXPECT_CALL(*mock_memory_tracker_.get(), \ |
113 TrackMemoryAllocatedChange(old_size, new_size, pool)) \ | 113 TrackMemoryAllocatedChange(old_size, new_size, pool)) \ |
114 .Times(1) \ | 114 .Times(1).RetiresOnSaturation() |
115 .RetiresOnSaturation() \ | |
116 | 115 |
117 TEST_F(BufferManagerTest, Basic) { | 116 TEST_F(BufferManagerTest, Basic) { |
118 const GLuint kClientBuffer1Id = 1; | 117 const GLuint kClientBuffer1Id = 1; |
119 const GLuint kServiceBuffer1Id = 11; | 118 const GLuint kServiceBuffer1Id = 11; |
120 const GLsizeiptr kBuffer1Size = 123; | 119 const GLsizeiptr kBuffer1Size = 123; |
121 const GLuint kClientBuffer2Id = 2; | 120 const GLuint kClientBuffer2Id = 2; |
122 // Check we can create buffer. | 121 // Check we can create buffer. |
123 manager_->CreateBuffer(kClientBuffer1Id, kServiceBuffer1Id); | 122 manager_->CreateBuffer(kClientBuffer1Id, kServiceBuffer1Id); |
124 // Check buffer got created. | 123 // Check buffer got created. |
125 Buffer* buffer1 = manager_->GetBuffer(kClientBuffer1Id); | 124 Buffer* buffer1 = manager_->GetBuffer(kClientBuffer1Id); |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 EXPECT_FALSE( | 351 EXPECT_FALSE( |
353 buffer->GetMaxValueForRange(40, 1, GL_UNSIGNED_INT, &max_value)); | 352 buffer->GetMaxValueForRange(40, 1, GL_UNSIGNED_INT, &max_value)); |
354 } | 353 } |
355 | 354 |
356 TEST_F(BufferManagerTest, UseDeletedBuffer) { | 355 TEST_F(BufferManagerTest, UseDeletedBuffer) { |
357 const GLuint kClientBufferId = 1; | 356 const GLuint kClientBufferId = 1; |
358 const GLuint kServiceBufferId = 11; | 357 const GLuint kServiceBufferId = 11; |
359 const uint32 data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; | 358 const uint32 data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; |
360 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); | 359 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); |
361 scoped_refptr<Buffer> buffer = manager_->GetBuffer(kClientBufferId); | 360 scoped_refptr<Buffer> buffer = manager_->GetBuffer(kClientBufferId); |
362 ASSERT_TRUE(buffer != NULL); | 361 ASSERT_TRUE(buffer.get() != NULL); |
363 manager_->SetTarget(buffer, GL_ARRAY_BUFFER); | 362 manager_->SetTarget(buffer.get(), GL_ARRAY_BUFFER); |
364 // Remove buffer | 363 // Remove buffer |
365 manager_->RemoveBuffer(kClientBufferId); | 364 manager_->RemoveBuffer(kClientBufferId); |
366 // Use it after removing | 365 // Use it after removing |
367 DoBufferData(buffer, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR); | 366 DoBufferData(buffer.get(), sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR); |
368 // Check that it gets deleted when the last reference is released. | 367 // Check that it gets deleted when the last reference is released. |
369 EXPECT_CALL(*gl_, DeleteBuffersARB(1, ::testing::Pointee(kServiceBufferId))) | 368 EXPECT_CALL(*gl_, DeleteBuffersARB(1, ::testing::Pointee(kServiceBufferId))) |
370 .Times(1) | 369 .Times(1) |
371 .RetiresOnSaturation(); | 370 .RetiresOnSaturation(); |
372 buffer = NULL; | 371 buffer = NULL; |
373 } | 372 } |
374 | 373 |
375 // Test buffers get shadowed when they are supposed to be. | 374 // Test buffers get shadowed when they are supposed to be. |
376 TEST_F(BufferManagerClientSideArraysTest, StreamBuffersAreShadowed) { | 375 TEST_F(BufferManagerClientSideArraysTest, StreamBuffersAreShadowed) { |
377 const GLuint kClientBufferId = 1; | 376 const GLuint kClientBufferId = 1; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
418 DoBufferData(buffer, sizeof(data3), GL_STATIC_DRAW, data3, GL_NO_ERROR); | 417 DoBufferData(buffer, sizeof(data3), GL_STATIC_DRAW, data3, GL_NO_ERROR); |
419 EXPECT_TRUE( | 418 EXPECT_TRUE( |
420 buffer->GetMaxValueForRange(0, 3, GL_UNSIGNED_INT, &max_value)); | 419 buffer->GetMaxValueForRange(0, 3, GL_UNSIGNED_INT, &max_value)); |
421 EXPECT_EQ(30u, max_value); | 420 EXPECT_EQ(30u, max_value); |
422 } | 421 } |
423 | 422 |
424 } // namespace gles2 | 423 } // namespace gles2 |
425 } // namespace gpu | 424 } // namespace gpu |
426 | 425 |
427 | 426 |
OLD | NEW |