| Index: gpu/command_buffer/service/buffer_manager_unittest.cc
|
| diff --git a/gpu/command_buffer/service/buffer_manager_unittest.cc b/gpu/command_buffer/service/buffer_manager_unittest.cc
|
| index 45e08c80fccc02ebe40feec40a996ed293248454..4c6707a18a3b53430508af3e14e7b56f00090cd2 100644
|
| --- a/gpu/command_buffer/service/buffer_manager_unittest.cc
|
| +++ b/gpu/command_buffer/service/buffer_manager_unittest.cc
|
| @@ -72,158 +72,6 @@
|
| manager_->DoBufferSubData(
|
| error_state_.get(), buffer, target, offset, size, data);
|
| return success;
|
| - }
|
| -
|
| - void RunGetMaxValueForRangeUint8Test(bool enable_primitive_restart)
|
| - {
|
| - const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
|
| - const GLuint kClientBufferId = 1;
|
| - const GLuint kServiceBufferId = 11;
|
| - const uint8_t data[] = {10, 9, 8, 7, 6, 0xFFu, 4, 3, 2, 1};
|
| - const uint8_t new_data[] = {100, 120, 110};
|
| - manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
|
| - Buffer* buffer = manager_->GetBuffer(kClientBufferId);
|
| - ASSERT_TRUE(buffer != NULL);
|
| - manager_->SetTarget(buffer, kTarget);
|
| - DoBufferData(
|
| - buffer, kTarget, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR);
|
| - EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 0, sizeof(data), data));
|
| - GLuint max_value;
|
| - // Check entire range succeeds.
|
| - EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| - 0, 10, GL_UNSIGNED_BYTE, enable_primitive_restart, &max_value));
|
| - if (enable_primitive_restart) {
|
| - EXPECT_EQ(10u, max_value);
|
| - } else {
|
| - EXPECT_EQ(0xFFu, max_value);
|
| - }
|
| - // Check sub range succeeds.
|
| - EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| - 4, 3, GL_UNSIGNED_BYTE, enable_primitive_restart, &max_value));
|
| - if (enable_primitive_restart) {
|
| - EXPECT_EQ(6u, max_value);
|
| - } else {
|
| - EXPECT_EQ(0xFFu, max_value);
|
| - }
|
| - // Check changing sub range succeeds.
|
| - EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 4, sizeof(new_data),
|
| - new_data));
|
| - EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| - 4, 3, GL_UNSIGNED_BYTE, enable_primitive_restart, &max_value));
|
| - EXPECT_EQ(120u, max_value);
|
| - max_value = 0;
|
| - EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| - 0, 10, GL_UNSIGNED_BYTE, enable_primitive_restart, &max_value));
|
| - EXPECT_EQ(120u, max_value);
|
| - // Check out of range fails.
|
| - EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| - 0, 11, GL_UNSIGNED_BYTE, enable_primitive_restart, &max_value));
|
| - EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| - 10, 1, GL_UNSIGNED_BYTE, enable_primitive_restart, &max_value));
|
| - }
|
| -
|
| - void RunGetMaxValueForRangeUint16Test(bool enable_primitive_restart) {
|
| - const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
|
| - const GLuint kClientBufferId = 1;
|
| - const GLuint kServiceBufferId = 11;
|
| - const uint16_t data[] = {10, 9, 8, 7, 6, 0xFFFF, 4, 3, 2, 1};
|
| - const uint16_t new_data[] = {100, 120, 110};
|
| - manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
|
| - Buffer* buffer = manager_->GetBuffer(kClientBufferId);
|
| - ASSERT_TRUE(buffer != NULL);
|
| - manager_->SetTarget(buffer, kTarget);
|
| - DoBufferData(
|
| - buffer, kTarget, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR);
|
| - EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 0, sizeof(data), data));
|
| - GLuint max_value;
|
| - // Check entire range succeeds.
|
| - EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| - 0, 10, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
|
| - if (enable_primitive_restart) {
|
| - EXPECT_EQ(10u, max_value);
|
| - } else {
|
| - EXPECT_EQ(0xFFFFu, max_value);
|
| - }
|
| - // Check odd offset fails for GL_UNSIGNED_SHORT.
|
| - EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| - 1, 10, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
|
| - // Check sub range succeeds.
|
| - EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| - 8, 3, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
|
| - if (enable_primitive_restart) {
|
| - EXPECT_EQ(6u, max_value);
|
| - } else {
|
| - EXPECT_EQ(0xFFFFu, max_value);
|
| - }
|
| - // Check changing sub range succeeds.
|
| - EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 8, sizeof(new_data),
|
| - new_data));
|
| - EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| - 8, 3, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
|
| - EXPECT_EQ(120u, max_value);
|
| - max_value = 0;
|
| - EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| - 0, 10, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
|
| - EXPECT_EQ(120u, max_value);
|
| - // Check out of range fails.
|
| - EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| - 0, 11, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
|
| - EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| - 20, 1, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
|
| - }
|
| -
|
| - void RunGetMaxValueForRangeUint32Test(bool enable_primitive_restart) {
|
| - const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
|
| - const GLuint kClientBufferId = 1;
|
| - const GLuint kServiceBufferId = 11;
|
| - const uint32_t data[] = {10, 9, 8, 7, 6, 0xFFFFFFFFu, 4, 3, 2, 1};
|
| - const uint32_t new_data[] = {100, 120, 110};
|
| - manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
|
| - Buffer* buffer = manager_->GetBuffer(kClientBufferId);
|
| - ASSERT_TRUE(buffer != NULL);
|
| - manager_->SetTarget(buffer, kTarget);
|
| - DoBufferData(
|
| - buffer, kTarget, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR);
|
| - EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 0, sizeof(data), data));
|
| - GLuint max_value;
|
| - // Check entire range succeeds.
|
| - EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| - 0, 10, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
|
| - if (enable_primitive_restart) {
|
| - EXPECT_EQ(10u, max_value);
|
| - } else {
|
| - EXPECT_EQ(0xFFFFFFFFu, max_value);
|
| - }
|
| - // Check non aligned offsets fails for GL_UNSIGNED_INT.
|
| - EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| - 1, 10, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
|
| - EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| - 2, 10, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
|
| - EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| - 3, 10, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
|
| - // Check sub range succeeds.
|
| - EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| - 16, 3, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
|
| - if (enable_primitive_restart) {
|
| - EXPECT_EQ(6u, max_value);
|
| - } else {
|
| - EXPECT_EQ(0xFFFFFFFFu, max_value);
|
| - }
|
| - // Check changing sub range succeeds.
|
| - EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 16, sizeof(new_data),
|
| - new_data));
|
| - EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| - 16, 3, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
|
| - EXPECT_EQ(120u, max_value);
|
| - max_value = 0;
|
| - EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| - 0, 10, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
|
| - EXPECT_EQ(120u, max_value);
|
| - // Check out of range fails.
|
| - EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| - 0, 11, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
|
| - EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| - 40, 1, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
|
| }
|
|
|
| scoped_ptr<BufferManager> manager_;
|
| @@ -395,27 +243,124 @@
|
| }
|
|
|
| TEST_F(BufferManagerTest, GetMaxValueForRangeUint8) {
|
| - RunGetMaxValueForRangeUint8Test(false);
|
| -}
|
| -
|
| -TEST_F(BufferManagerTest, GetMaxValueForRangeUint8PrimitiveRestart) {
|
| - RunGetMaxValueForRangeUint8Test(true);
|
| + const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
|
| + const GLuint kClientBufferId = 1;
|
| + const GLuint kServiceBufferId = 11;
|
| + const uint8_t data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
|
| + const uint8_t new_data[] = {100, 120, 110};
|
| + manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
|
| + Buffer* buffer = manager_->GetBuffer(kClientBufferId);
|
| + ASSERT_TRUE(buffer != NULL);
|
| + manager_->SetTarget(buffer, kTarget);
|
| + DoBufferData(
|
| + buffer, kTarget, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR);
|
| + EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 0, sizeof(data), data));
|
| + GLuint max_value;
|
| + // Check entire range succeeds.
|
| + EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| + 0, 10, GL_UNSIGNED_BYTE, &max_value));
|
| + EXPECT_EQ(10u, max_value);
|
| + // Check sub range succeeds.
|
| + EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| + 4, 3, GL_UNSIGNED_BYTE, &max_value));
|
| + EXPECT_EQ(6u, max_value);
|
| + // Check changing sub range succeeds.
|
| + EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 4, sizeof(new_data), new_data));
|
| + EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| + 4, 3, GL_UNSIGNED_BYTE, &max_value));
|
| + EXPECT_EQ(120u, max_value);
|
| + max_value = 0;
|
| + EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| + 0, 10, GL_UNSIGNED_BYTE, &max_value));
|
| + EXPECT_EQ(120u, max_value);
|
| + // Check out of range fails.
|
| + EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| + 0, 11, GL_UNSIGNED_BYTE, &max_value));
|
| + EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| + 10, 1, GL_UNSIGNED_BYTE, &max_value));
|
| }
|
|
|
| TEST_F(BufferManagerTest, GetMaxValueForRangeUint16) {
|
| - RunGetMaxValueForRangeUint16Test(false);
|
| -}
|
| -
|
| -TEST_F(BufferManagerTest, GetMaxValueForRangeUint16PrimitiveRestart) {
|
| - RunGetMaxValueForRangeUint16Test(true);
|
| + const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
|
| + const GLuint kClientBufferId = 1;
|
| + const GLuint kServiceBufferId = 11;
|
| + const uint16_t data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
|
| + const uint16_t new_data[] = {100, 120, 110};
|
| + manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
|
| + Buffer* buffer = manager_->GetBuffer(kClientBufferId);
|
| + ASSERT_TRUE(buffer != NULL);
|
| + manager_->SetTarget(buffer, kTarget);
|
| + DoBufferData(
|
| + buffer, kTarget, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR);
|
| + EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 0, sizeof(data), data));
|
| + GLuint max_value;
|
| + // Check entire range succeeds.
|
| + EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| + 0, 10, GL_UNSIGNED_SHORT, &max_value));
|
| + EXPECT_EQ(10u, max_value);
|
| + // Check odd offset fails for GL_UNSIGNED_SHORT.
|
| + EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| + 1, 10, GL_UNSIGNED_SHORT, &max_value));
|
| + // Check sub range succeeds.
|
| + EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| + 8, 3, GL_UNSIGNED_SHORT, &max_value));
|
| + EXPECT_EQ(6u, max_value);
|
| + // Check changing sub range succeeds.
|
| + EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 8, sizeof(new_data), new_data));
|
| + EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| + 8, 3, GL_UNSIGNED_SHORT, &max_value));
|
| + EXPECT_EQ(120u, max_value);
|
| + max_value = 0;
|
| + EXPECT_TRUE(buffer->GetMaxValueForRange(
|
| + 0, 10, GL_UNSIGNED_SHORT, &max_value));
|
| + EXPECT_EQ(120u, max_value);
|
| + // Check out of range fails.
|
| + EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| + 0, 11, GL_UNSIGNED_SHORT, &max_value));
|
| + EXPECT_FALSE(buffer->GetMaxValueForRange(
|
| + 20, 1, GL_UNSIGNED_SHORT, &max_value));
|
| }
|
|
|
| TEST_F(BufferManagerTest, GetMaxValueForRangeUint32) {
|
| - RunGetMaxValueForRangeUint32Test(false);
|
| -}
|
| -
|
| -TEST_F(BufferManagerTest, GetMaxValueForRangeUint32PrimitiveRestart) {
|
| - RunGetMaxValueForRangeUint32Test(true);
|
| + const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
|
| + const GLuint kClientBufferId = 1;
|
| + const GLuint kServiceBufferId = 11;
|
| + const uint32_t data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
|
| + const uint32_t new_data[] = {100, 120, 110};
|
| + manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
|
| + Buffer* buffer = manager_->GetBuffer(kClientBufferId);
|
| + ASSERT_TRUE(buffer != NULL);
|
| + manager_->SetTarget(buffer, kTarget);
|
| + DoBufferData(
|
| + buffer, kTarget, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR);
|
| + EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 0, sizeof(data), data));
|
| + GLuint max_value;
|
| + // Check entire range succeeds.
|
| + EXPECT_TRUE(
|
| + buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, &max_value));
|
| + EXPECT_EQ(10u, max_value);
|
| + // Check non aligned offsets fails for GL_UNSIGNED_INT.
|
| + EXPECT_FALSE(
|
| + buffer->GetMaxValueForRange(1, 10, GL_UNSIGNED_INT, &max_value));
|
| + EXPECT_FALSE(
|
| + buffer->GetMaxValueForRange(2, 10, GL_UNSIGNED_INT, &max_value));
|
| + EXPECT_FALSE(
|
| + buffer->GetMaxValueForRange(3, 10, GL_UNSIGNED_INT, &max_value));
|
| + // Check sub range succeeds.
|
| + EXPECT_TRUE(buffer->GetMaxValueForRange(16, 3, GL_UNSIGNED_INT, &max_value));
|
| + EXPECT_EQ(6u, max_value);
|
| + // Check changing sub range succeeds.
|
| + EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 16, sizeof(new_data), new_data));
|
| + EXPECT_TRUE(buffer->GetMaxValueForRange(16, 3, GL_UNSIGNED_INT, &max_value));
|
| + EXPECT_EQ(120u, max_value);
|
| + max_value = 0;
|
| + EXPECT_TRUE(buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, &max_value));
|
| + EXPECT_EQ(120u, max_value);
|
| + // Check out of range fails.
|
| + EXPECT_FALSE(
|
| + buffer->GetMaxValueForRange(0, 11, GL_UNSIGNED_INT, &max_value));
|
| + EXPECT_FALSE(
|
| + buffer->GetMaxValueForRange(40, 1, GL_UNSIGNED_INT, &max_value));
|
| }
|
|
|
| TEST_F(BufferManagerTest, UseDeletedBuffer) {
|
| @@ -475,7 +420,7 @@
|
| DoBufferData(
|
| buffer, kTarget, sizeof(data1), GL_STATIC_DRAW, data1, GL_NO_ERROR);
|
| EXPECT_TRUE(
|
| - buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, false, &max_value));
|
| + buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, &max_value));
|
| EXPECT_EQ(10u, max_value);
|
| // Check that any cached values are invalidated if the buffer is reloaded
|
| // with the same amount of data (but different content)
|
| @@ -483,7 +428,7 @@
|
| DoBufferData(
|
| buffer, kTarget, sizeof(data2), GL_STATIC_DRAW, data2, GL_NO_ERROR);
|
| EXPECT_TRUE(
|
| - buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, false, &max_value));
|
| + buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, &max_value));
|
| EXPECT_EQ(20u, max_value);
|
| // Check that any cached values are invalidated if the buffer is reloaded
|
| // with entirely different content.
|
| @@ -491,7 +436,7 @@
|
| DoBufferData(
|
| buffer, kTarget, sizeof(data3), GL_STATIC_DRAW, data3, GL_NO_ERROR);
|
| EXPECT_TRUE(
|
| - buffer->GetMaxValueForRange(0, 3, GL_UNSIGNED_INT, false, &max_value));
|
| + buffer->GetMaxValueForRange(0, 3, GL_UNSIGNED_INT, &max_value));
|
| EXPECT_EQ(30u, max_value);
|
| }
|
|
|
|
|