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

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

Issue 1827693002: Revert of Fix PRIMITIVE_RESTART_FIXED_INDEX handling in command buffer and WebGL 2.0. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "gpu/command_buffer/service/buffer_manager.h" 8 #include "gpu/command_buffer/service/buffer_manager.h"
9 #include "gpu/command_buffer/service/error_state_mock.h" 9 #include "gpu/command_buffer/service/error_state_mock.h"
10 #include "gpu/command_buffer/service/feature_info.h" 10 #include "gpu/command_buffer/service/feature_info.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 } else if (!buffer->IsClientSideArray()) { 67 } else if (!buffer->IsClientSideArray()) {
68 EXPECT_CALL(*gl_, BufferSubData(target, offset, size, _)) 68 EXPECT_CALL(*gl_, BufferSubData(target, offset, size, _))
69 .Times(1) 69 .Times(1)
70 .RetiresOnSaturation(); 70 .RetiresOnSaturation();
71 } 71 }
72 manager_->DoBufferSubData( 72 manager_->DoBufferSubData(
73 error_state_.get(), buffer, target, offset, size, data); 73 error_state_.get(), buffer, target, offset, size, data);
74 return success; 74 return success;
75 } 75 }
76 76
77 void RunGetMaxValueForRangeUint8Test(bool enable_primitive_restart)
78 {
79 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
80 const GLuint kClientBufferId = 1;
81 const GLuint kServiceBufferId = 11;
82 const uint8_t data[] = {10, 9, 8, 7, 6, 0xFFu, 4, 3, 2, 1};
83 const uint8_t new_data[] = {100, 120, 110};
84 manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
85 Buffer* buffer = manager_->GetBuffer(kClientBufferId);
86 ASSERT_TRUE(buffer != NULL);
87 manager_->SetTarget(buffer, kTarget);
88 DoBufferData(
89 buffer, kTarget, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR);
90 EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 0, sizeof(data), data));
91 GLuint max_value;
92 // Check entire range succeeds.
93 EXPECT_TRUE(buffer->GetMaxValueForRange(
94 0, 10, GL_UNSIGNED_BYTE, enable_primitive_restart, &max_value));
95 if (enable_primitive_restart) {
96 EXPECT_EQ(10u, max_value);
97 } else {
98 EXPECT_EQ(0xFFu, max_value);
99 }
100 // Check sub range succeeds.
101 EXPECT_TRUE(buffer->GetMaxValueForRange(
102 4, 3, GL_UNSIGNED_BYTE, enable_primitive_restart, &max_value));
103 if (enable_primitive_restart) {
104 EXPECT_EQ(6u, max_value);
105 } else {
106 EXPECT_EQ(0xFFu, max_value);
107 }
108 // Check changing sub range succeeds.
109 EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 4, sizeof(new_data),
110 new_data));
111 EXPECT_TRUE(buffer->GetMaxValueForRange(
112 4, 3, GL_UNSIGNED_BYTE, enable_primitive_restart, &max_value));
113 EXPECT_EQ(120u, max_value);
114 max_value = 0;
115 EXPECT_TRUE(buffer->GetMaxValueForRange(
116 0, 10, GL_UNSIGNED_BYTE, enable_primitive_restart, &max_value));
117 EXPECT_EQ(120u, max_value);
118 // Check out of range fails.
119 EXPECT_FALSE(buffer->GetMaxValueForRange(
120 0, 11, GL_UNSIGNED_BYTE, enable_primitive_restart, &max_value));
121 EXPECT_FALSE(buffer->GetMaxValueForRange(
122 10, 1, GL_UNSIGNED_BYTE, enable_primitive_restart, &max_value));
123 }
124
125 void RunGetMaxValueForRangeUint16Test(bool enable_primitive_restart) {
126 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
127 const GLuint kClientBufferId = 1;
128 const GLuint kServiceBufferId = 11;
129 const uint16_t data[] = {10, 9, 8, 7, 6, 0xFFFF, 4, 3, 2, 1};
130 const uint16_t new_data[] = {100, 120, 110};
131 manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
132 Buffer* buffer = manager_->GetBuffer(kClientBufferId);
133 ASSERT_TRUE(buffer != NULL);
134 manager_->SetTarget(buffer, kTarget);
135 DoBufferData(
136 buffer, kTarget, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR);
137 EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 0, sizeof(data), data));
138 GLuint max_value;
139 // Check entire range succeeds.
140 EXPECT_TRUE(buffer->GetMaxValueForRange(
141 0, 10, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
142 if (enable_primitive_restart) {
143 EXPECT_EQ(10u, max_value);
144 } else {
145 EXPECT_EQ(0xFFFFu, max_value);
146 }
147 // Check odd offset fails for GL_UNSIGNED_SHORT.
148 EXPECT_FALSE(buffer->GetMaxValueForRange(
149 1, 10, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
150 // Check sub range succeeds.
151 EXPECT_TRUE(buffer->GetMaxValueForRange(
152 8, 3, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
153 if (enable_primitive_restart) {
154 EXPECT_EQ(6u, max_value);
155 } else {
156 EXPECT_EQ(0xFFFFu, max_value);
157 }
158 // Check changing sub range succeeds.
159 EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 8, sizeof(new_data),
160 new_data));
161 EXPECT_TRUE(buffer->GetMaxValueForRange(
162 8, 3, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
163 EXPECT_EQ(120u, max_value);
164 max_value = 0;
165 EXPECT_TRUE(buffer->GetMaxValueForRange(
166 0, 10, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
167 EXPECT_EQ(120u, max_value);
168 // Check out of range fails.
169 EXPECT_FALSE(buffer->GetMaxValueForRange(
170 0, 11, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
171 EXPECT_FALSE(buffer->GetMaxValueForRange(
172 20, 1, GL_UNSIGNED_SHORT, enable_primitive_restart, &max_value));
173 }
174
175 void RunGetMaxValueForRangeUint32Test(bool enable_primitive_restart) {
176 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
177 const GLuint kClientBufferId = 1;
178 const GLuint kServiceBufferId = 11;
179 const uint32_t data[] = {10, 9, 8, 7, 6, 0xFFFFFFFFu, 4, 3, 2, 1};
180 const uint32_t new_data[] = {100, 120, 110};
181 manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
182 Buffer* buffer = manager_->GetBuffer(kClientBufferId);
183 ASSERT_TRUE(buffer != NULL);
184 manager_->SetTarget(buffer, kTarget);
185 DoBufferData(
186 buffer, kTarget, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR);
187 EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 0, sizeof(data), data));
188 GLuint max_value;
189 // Check entire range succeeds.
190 EXPECT_TRUE(buffer->GetMaxValueForRange(
191 0, 10, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
192 if (enable_primitive_restart) {
193 EXPECT_EQ(10u, max_value);
194 } else {
195 EXPECT_EQ(0xFFFFFFFFu, max_value);
196 }
197 // Check non aligned offsets fails for GL_UNSIGNED_INT.
198 EXPECT_FALSE(buffer->GetMaxValueForRange(
199 1, 10, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
200 EXPECT_FALSE(buffer->GetMaxValueForRange(
201 2, 10, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
202 EXPECT_FALSE(buffer->GetMaxValueForRange(
203 3, 10, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
204 // Check sub range succeeds.
205 EXPECT_TRUE(buffer->GetMaxValueForRange(
206 16, 3, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
207 if (enable_primitive_restart) {
208 EXPECT_EQ(6u, max_value);
209 } else {
210 EXPECT_EQ(0xFFFFFFFFu, max_value);
211 }
212 // Check changing sub range succeeds.
213 EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 16, sizeof(new_data),
214 new_data));
215 EXPECT_TRUE(buffer->GetMaxValueForRange(
216 16, 3, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
217 EXPECT_EQ(120u, max_value);
218 max_value = 0;
219 EXPECT_TRUE(buffer->GetMaxValueForRange(
220 0, 10, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
221 EXPECT_EQ(120u, max_value);
222 // Check out of range fails.
223 EXPECT_FALSE(buffer->GetMaxValueForRange(
224 0, 11, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
225 EXPECT_FALSE(buffer->GetMaxValueForRange(
226 40, 1, GL_UNSIGNED_INT, enable_primitive_restart, &max_value));
227 }
228
229 scoped_ptr<BufferManager> manager_; 77 scoped_ptr<BufferManager> manager_;
230 scoped_ptr<MockErrorState> error_state_; 78 scoped_ptr<MockErrorState> error_state_;
231 }; 79 };
232 80
233 class BufferManagerTest : public BufferManagerTestBase { 81 class BufferManagerTest : public BufferManagerTestBase {
234 protected: 82 protected:
235 void SetUp() override { SetUpBase(NULL, NULL, ""); } 83 void SetUp() override { SetUpBase(NULL, NULL, ""); }
236 }; 84 };
237 85
238 class BufferManagerMemoryTrackerTest : public BufferManagerTestBase { 86 class BufferManagerMemoryTrackerTest : public BufferManagerTestBase {
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 EXPECT_TRUE(buffer->GetRange(0, kDataSize + 1) == NULL); 236 EXPECT_TRUE(buffer->GetRange(0, kDataSize + 1) == NULL);
389 EXPECT_TRUE(buffer->GetRange(-1, kDataSize) == NULL); 237 EXPECT_TRUE(buffer->GetRange(-1, kDataSize) == NULL);
390 EXPECT_TRUE(buffer->GetRange(-0, -1) == NULL); 238 EXPECT_TRUE(buffer->GetRange(-0, -1) == NULL);
391 const int size = 0x20000; 239 const int size = 0x20000;
392 DoBufferData(buffer, kTarget, size / 2, GL_STATIC_DRAW, NULL, GL_NO_ERROR); 240 DoBufferData(buffer, kTarget, size / 2, GL_STATIC_DRAW, NULL, GL_NO_ERROR);
393 EXPECT_TRUE(buffer->GetRange(0 - size, size) == NULL); 241 EXPECT_TRUE(buffer->GetRange(0 - size, size) == NULL);
394 EXPECT_TRUE(buffer->GetRange(1, size / 2) == NULL); 242 EXPECT_TRUE(buffer->GetRange(1, size / 2) == NULL);
395 } 243 }
396 244
397 TEST_F(BufferManagerTest, GetMaxValueForRangeUint8) { 245 TEST_F(BufferManagerTest, GetMaxValueForRangeUint8) {
398 RunGetMaxValueForRangeUint8Test(false); 246 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
399 } 247 const GLuint kClientBufferId = 1;
400 248 const GLuint kServiceBufferId = 11;
401 TEST_F(BufferManagerTest, GetMaxValueForRangeUint8PrimitiveRestart) { 249 const uint8_t data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
402 RunGetMaxValueForRangeUint8Test(true); 250 const uint8_t new_data[] = {100, 120, 110};
251 manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
252 Buffer* buffer = manager_->GetBuffer(kClientBufferId);
253 ASSERT_TRUE(buffer != NULL);
254 manager_->SetTarget(buffer, kTarget);
255 DoBufferData(
256 buffer, kTarget, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR);
257 EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 0, sizeof(data), data));
258 GLuint max_value;
259 // Check entire range succeeds.
260 EXPECT_TRUE(buffer->GetMaxValueForRange(
261 0, 10, GL_UNSIGNED_BYTE, &max_value));
262 EXPECT_EQ(10u, max_value);
263 // Check sub range succeeds.
264 EXPECT_TRUE(buffer->GetMaxValueForRange(
265 4, 3, GL_UNSIGNED_BYTE, &max_value));
266 EXPECT_EQ(6u, max_value);
267 // Check changing sub range succeeds.
268 EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 4, sizeof(new_data), new_data));
269 EXPECT_TRUE(buffer->GetMaxValueForRange(
270 4, 3, GL_UNSIGNED_BYTE, &max_value));
271 EXPECT_EQ(120u, max_value);
272 max_value = 0;
273 EXPECT_TRUE(buffer->GetMaxValueForRange(
274 0, 10, GL_UNSIGNED_BYTE, &max_value));
275 EXPECT_EQ(120u, max_value);
276 // Check out of range fails.
277 EXPECT_FALSE(buffer->GetMaxValueForRange(
278 0, 11, GL_UNSIGNED_BYTE, &max_value));
279 EXPECT_FALSE(buffer->GetMaxValueForRange(
280 10, 1, GL_UNSIGNED_BYTE, &max_value));
403 } 281 }
404 282
405 TEST_F(BufferManagerTest, GetMaxValueForRangeUint16) { 283 TEST_F(BufferManagerTest, GetMaxValueForRangeUint16) {
406 RunGetMaxValueForRangeUint16Test(false); 284 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
407 } 285 const GLuint kClientBufferId = 1;
408 286 const GLuint kServiceBufferId = 11;
409 TEST_F(BufferManagerTest, GetMaxValueForRangeUint16PrimitiveRestart) { 287 const uint16_t data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
410 RunGetMaxValueForRangeUint16Test(true); 288 const uint16_t new_data[] = {100, 120, 110};
289 manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
290 Buffer* buffer = manager_->GetBuffer(kClientBufferId);
291 ASSERT_TRUE(buffer != NULL);
292 manager_->SetTarget(buffer, kTarget);
293 DoBufferData(
294 buffer, kTarget, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR);
295 EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 0, sizeof(data), data));
296 GLuint max_value;
297 // Check entire range succeeds.
298 EXPECT_TRUE(buffer->GetMaxValueForRange(
299 0, 10, GL_UNSIGNED_SHORT, &max_value));
300 EXPECT_EQ(10u, max_value);
301 // Check odd offset fails for GL_UNSIGNED_SHORT.
302 EXPECT_FALSE(buffer->GetMaxValueForRange(
303 1, 10, GL_UNSIGNED_SHORT, &max_value));
304 // Check sub range succeeds.
305 EXPECT_TRUE(buffer->GetMaxValueForRange(
306 8, 3, GL_UNSIGNED_SHORT, &max_value));
307 EXPECT_EQ(6u, max_value);
308 // Check changing sub range succeeds.
309 EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 8, sizeof(new_data), new_data));
310 EXPECT_TRUE(buffer->GetMaxValueForRange(
311 8, 3, GL_UNSIGNED_SHORT, &max_value));
312 EXPECT_EQ(120u, max_value);
313 max_value = 0;
314 EXPECT_TRUE(buffer->GetMaxValueForRange(
315 0, 10, GL_UNSIGNED_SHORT, &max_value));
316 EXPECT_EQ(120u, max_value);
317 // Check out of range fails.
318 EXPECT_FALSE(buffer->GetMaxValueForRange(
319 0, 11, GL_UNSIGNED_SHORT, &max_value));
320 EXPECT_FALSE(buffer->GetMaxValueForRange(
321 20, 1, GL_UNSIGNED_SHORT, &max_value));
411 } 322 }
412 323
413 TEST_F(BufferManagerTest, GetMaxValueForRangeUint32) { 324 TEST_F(BufferManagerTest, GetMaxValueForRangeUint32) {
414 RunGetMaxValueForRangeUint32Test(false); 325 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
415 } 326 const GLuint kClientBufferId = 1;
416 327 const GLuint kServiceBufferId = 11;
417 TEST_F(BufferManagerTest, GetMaxValueForRangeUint32PrimitiveRestart) { 328 const uint32_t data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
418 RunGetMaxValueForRangeUint32Test(true); 329 const uint32_t new_data[] = {100, 120, 110};
330 manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
331 Buffer* buffer = manager_->GetBuffer(kClientBufferId);
332 ASSERT_TRUE(buffer != NULL);
333 manager_->SetTarget(buffer, kTarget);
334 DoBufferData(
335 buffer, kTarget, sizeof(data), GL_STATIC_DRAW, NULL, GL_NO_ERROR);
336 EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 0, sizeof(data), data));
337 GLuint max_value;
338 // Check entire range succeeds.
339 EXPECT_TRUE(
340 buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, &max_value));
341 EXPECT_EQ(10u, max_value);
342 // Check non aligned offsets fails for GL_UNSIGNED_INT.
343 EXPECT_FALSE(
344 buffer->GetMaxValueForRange(1, 10, GL_UNSIGNED_INT, &max_value));
345 EXPECT_FALSE(
346 buffer->GetMaxValueForRange(2, 10, GL_UNSIGNED_INT, &max_value));
347 EXPECT_FALSE(
348 buffer->GetMaxValueForRange(3, 10, GL_UNSIGNED_INT, &max_value));
349 // Check sub range succeeds.
350 EXPECT_TRUE(buffer->GetMaxValueForRange(16, 3, GL_UNSIGNED_INT, &max_value));
351 EXPECT_EQ(6u, max_value);
352 // Check changing sub range succeeds.
353 EXPECT_TRUE(DoBufferSubData(buffer, kTarget, 16, sizeof(new_data), new_data));
354 EXPECT_TRUE(buffer->GetMaxValueForRange(16, 3, GL_UNSIGNED_INT, &max_value));
355 EXPECT_EQ(120u, max_value);
356 max_value = 0;
357 EXPECT_TRUE(buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, &max_value));
358 EXPECT_EQ(120u, max_value);
359 // Check out of range fails.
360 EXPECT_FALSE(
361 buffer->GetMaxValueForRange(0, 11, GL_UNSIGNED_INT, &max_value));
362 EXPECT_FALSE(
363 buffer->GetMaxValueForRange(40, 1, GL_UNSIGNED_INT, &max_value));
419 } 364 }
420 365
421 TEST_F(BufferManagerTest, UseDeletedBuffer) { 366 TEST_F(BufferManagerTest, UseDeletedBuffer) {
422 const GLenum kTarget = GL_ARRAY_BUFFER; 367 const GLenum kTarget = GL_ARRAY_BUFFER;
423 const GLuint kClientBufferId = 1; 368 const GLuint kClientBufferId = 1;
424 const GLuint kServiceBufferId = 11; 369 const GLuint kServiceBufferId = 11;
425 const GLsizeiptr kDataSize = 10; 370 const GLsizeiptr kDataSize = 10;
426 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); 371 manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
427 scoped_refptr<Buffer> buffer = manager_->GetBuffer(kClientBufferId); 372 scoped_refptr<Buffer> buffer = manager_->GetBuffer(kClientBufferId);
428 ASSERT_TRUE(buffer.get() != NULL); 373 ASSERT_TRUE(buffer.get() != NULL);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); 413 manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
469 Buffer* buffer = manager_->GetBuffer(kClientBufferId); 414 Buffer* buffer = manager_->GetBuffer(kClientBufferId);
470 ASSERT_TRUE(buffer != NULL); 415 ASSERT_TRUE(buffer != NULL);
471 manager_->SetTarget(buffer, kTarget); 416 manager_->SetTarget(buffer, kTarget);
472 GLuint max_value; 417 GLuint max_value;
473 // Load the buffer with some initial data, and then get the maximum value for 418 // Load the buffer with some initial data, and then get the maximum value for
474 // a range, which has the side effect of caching it. 419 // a range, which has the side effect of caching it.
475 DoBufferData( 420 DoBufferData(
476 buffer, kTarget, sizeof(data1), GL_STATIC_DRAW, data1, GL_NO_ERROR); 421 buffer, kTarget, sizeof(data1), GL_STATIC_DRAW, data1, GL_NO_ERROR);
477 EXPECT_TRUE( 422 EXPECT_TRUE(
478 buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, false, &max_value)); 423 buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, &max_value));
479 EXPECT_EQ(10u, max_value); 424 EXPECT_EQ(10u, max_value);
480 // Check that any cached values are invalidated if the buffer is reloaded 425 // Check that any cached values are invalidated if the buffer is reloaded
481 // with the same amount of data (but different content) 426 // with the same amount of data (but different content)
482 ASSERT_EQ(sizeof(data2), sizeof(data1)); 427 ASSERT_EQ(sizeof(data2), sizeof(data1));
483 DoBufferData( 428 DoBufferData(
484 buffer, kTarget, sizeof(data2), GL_STATIC_DRAW, data2, GL_NO_ERROR); 429 buffer, kTarget, sizeof(data2), GL_STATIC_DRAW, data2, GL_NO_ERROR);
485 EXPECT_TRUE( 430 EXPECT_TRUE(
486 buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, false, &max_value)); 431 buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, &max_value));
487 EXPECT_EQ(20u, max_value); 432 EXPECT_EQ(20u, max_value);
488 // Check that any cached values are invalidated if the buffer is reloaded 433 // Check that any cached values are invalidated if the buffer is reloaded
489 // with entirely different content. 434 // with entirely different content.
490 ASSERT_NE(sizeof(data3), sizeof(data1)); 435 ASSERT_NE(sizeof(data3), sizeof(data1));
491 DoBufferData( 436 DoBufferData(
492 buffer, kTarget, sizeof(data3), GL_STATIC_DRAW, data3, GL_NO_ERROR); 437 buffer, kTarget, sizeof(data3), GL_STATIC_DRAW, data3, GL_NO_ERROR);
493 EXPECT_TRUE( 438 EXPECT_TRUE(
494 buffer->GetMaxValueForRange(0, 3, GL_UNSIGNED_INT, false, &max_value)); 439 buffer->GetMaxValueForRange(0, 3, GL_UNSIGNED_INT, &max_value));
495 EXPECT_EQ(30u, max_value); 440 EXPECT_EQ(30u, max_value);
496 } 441 }
497 442
498 TEST_F(BufferManagerTest, BindBufferConflicts) { 443 TEST_F(BufferManagerTest, BindBufferConflicts) {
499 manager_->set_allow_buffers_on_multiple_targets(false); 444 manager_->set_allow_buffers_on_multiple_targets(false);
500 GLuint client_id = 1; 445 GLuint client_id = 1;
501 GLuint service_id = 101; 446 GLuint service_id = 101;
502 447
503 { 448 {
504 // Once a buffer is bound to ELEMENT_ARRAY_BUFFER, it can't be bound to 449 // Once a buffer is bound to ELEMENT_ARRAY_BUFFER, it can't be bound to
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 EXPECT_TRUE(manager_->SetTarget(buffer, kTargets[jj])); 511 EXPECT_TRUE(manager_->SetTarget(buffer, kTargets[jj]));
567 } 512 }
568 } 513 }
569 } 514 }
570 } 515 }
571 516
572 } // namespace gles2 517 } // namespace gles2
573 } // namespace gpu 518 } // namespace gpu
574 519
575 520
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/buffer_manager.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698