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

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

Issue 1822643002: [Command buffer] Enable primitive restart for WebGL 2 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix coding style and update webgl2_conformance_expectations.py Created 4 years, 8 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
77 scoped_ptr<BufferManager> manager_; 229 scoped_ptr<BufferManager> manager_;
78 scoped_ptr<MockErrorState> error_state_; 230 scoped_ptr<MockErrorState> error_state_;
79 }; 231 };
80 232
81 class BufferManagerTest : public BufferManagerTestBase { 233 class BufferManagerTest : public BufferManagerTestBase {
82 protected: 234 protected:
83 void SetUp() override { SetUpBase(NULL, NULL, ""); } 235 void SetUp() override { SetUpBase(NULL, NULL, ""); }
84 }; 236 };
85 237
86 class BufferManagerMemoryTrackerTest : public BufferManagerTestBase { 238 class BufferManagerMemoryTrackerTest : public BufferManagerTestBase {
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 EXPECT_TRUE(buffer->GetRange(0, kDataSize + 1) == NULL); 388 EXPECT_TRUE(buffer->GetRange(0, kDataSize + 1) == NULL);
237 EXPECT_TRUE(buffer->GetRange(-1, kDataSize) == NULL); 389 EXPECT_TRUE(buffer->GetRange(-1, kDataSize) == NULL);
238 EXPECT_TRUE(buffer->GetRange(-0, -1) == NULL); 390 EXPECT_TRUE(buffer->GetRange(-0, -1) == NULL);
239 const int size = 0x20000; 391 const int size = 0x20000;
240 DoBufferData(buffer, kTarget, size / 2, GL_STATIC_DRAW, NULL, GL_NO_ERROR); 392 DoBufferData(buffer, kTarget, size / 2, GL_STATIC_DRAW, NULL, GL_NO_ERROR);
241 EXPECT_TRUE(buffer->GetRange(0 - size, size) == NULL); 393 EXPECT_TRUE(buffer->GetRange(0 - size, size) == NULL);
242 EXPECT_TRUE(buffer->GetRange(1, size / 2) == NULL); 394 EXPECT_TRUE(buffer->GetRange(1, size / 2) == NULL);
243 } 395 }
244 396
245 TEST_F(BufferManagerTest, GetMaxValueForRangeUint8) { 397 TEST_F(BufferManagerTest, GetMaxValueForRangeUint8) {
246 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER; 398 RunGetMaxValueForRangeUint8Test(false);
247 const GLuint kClientBufferId = 1; 399 }
248 const GLuint kServiceBufferId = 11; 400
249 const uint8_t data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; 401 TEST_F(BufferManagerTest, GetMaxValueForRangeUint8PrimitiveRestart) {
250 const uint8_t new_data[] = {100, 120, 110}; 402 RunGetMaxValueForRangeUint8Test(true);
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));
281 } 403 }
282 404
283 TEST_F(BufferManagerTest, GetMaxValueForRangeUint16) { 405 TEST_F(BufferManagerTest, GetMaxValueForRangeUint16) {
284 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER; 406 RunGetMaxValueForRangeUint16Test(false);
285 const GLuint kClientBufferId = 1; 407 }
286 const GLuint kServiceBufferId = 11; 408
287 const uint16_t data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; 409 TEST_F(BufferManagerTest, GetMaxValueForRangeUint16PrimitiveRestart) {
288 const uint16_t new_data[] = {100, 120, 110}; 410 RunGetMaxValueForRangeUint16Test(true);
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));
322 } 411 }
323 412
324 TEST_F(BufferManagerTest, GetMaxValueForRangeUint32) { 413 TEST_F(BufferManagerTest, GetMaxValueForRangeUint32) {
325 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER; 414 RunGetMaxValueForRangeUint32Test(false);
326 const GLuint kClientBufferId = 1; 415 }
327 const GLuint kServiceBufferId = 11; 416
328 const uint32_t data[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; 417 TEST_F(BufferManagerTest, GetMaxValueForRangeUint32PrimitiveRestart) {
329 const uint32_t new_data[] = {100, 120, 110}; 418 RunGetMaxValueForRangeUint32Test(true);
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));
364 } 419 }
365 420
366 TEST_F(BufferManagerTest, UseDeletedBuffer) { 421 TEST_F(BufferManagerTest, UseDeletedBuffer) {
367 const GLenum kTarget = GL_ARRAY_BUFFER; 422 const GLenum kTarget = GL_ARRAY_BUFFER;
368 const GLuint kClientBufferId = 1; 423 const GLuint kClientBufferId = 1;
369 const GLuint kServiceBufferId = 11; 424 const GLuint kServiceBufferId = 11;
370 const GLsizeiptr kDataSize = 10; 425 const GLsizeiptr kDataSize = 10;
371 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); 426 manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
372 scoped_refptr<Buffer> buffer = manager_->GetBuffer(kClientBufferId); 427 scoped_refptr<Buffer> buffer = manager_->GetBuffer(kClientBufferId);
373 ASSERT_TRUE(buffer.get() != NULL); 428 ASSERT_TRUE(buffer.get() != NULL);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 manager_->CreateBuffer(kClientBufferId, kServiceBufferId); 468 manager_->CreateBuffer(kClientBufferId, kServiceBufferId);
414 Buffer* buffer = manager_->GetBuffer(kClientBufferId); 469 Buffer* buffer = manager_->GetBuffer(kClientBufferId);
415 ASSERT_TRUE(buffer != NULL); 470 ASSERT_TRUE(buffer != NULL);
416 manager_->SetTarget(buffer, kTarget); 471 manager_->SetTarget(buffer, kTarget);
417 GLuint max_value; 472 GLuint max_value;
418 // Load the buffer with some initial data, and then get the maximum value for 473 // Load the buffer with some initial data, and then get the maximum value for
419 // a range, which has the side effect of caching it. 474 // a range, which has the side effect of caching it.
420 DoBufferData( 475 DoBufferData(
421 buffer, kTarget, sizeof(data1), GL_STATIC_DRAW, data1, GL_NO_ERROR); 476 buffer, kTarget, sizeof(data1), GL_STATIC_DRAW, data1, GL_NO_ERROR);
422 EXPECT_TRUE( 477 EXPECT_TRUE(
423 buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, &max_value)); 478 buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, false, &max_value));
424 EXPECT_EQ(10u, max_value); 479 EXPECT_EQ(10u, max_value);
425 // Check that any cached values are invalidated if the buffer is reloaded 480 // Check that any cached values are invalidated if the buffer is reloaded
426 // with the same amount of data (but different content) 481 // with the same amount of data (but different content)
427 ASSERT_EQ(sizeof(data2), sizeof(data1)); 482 ASSERT_EQ(sizeof(data2), sizeof(data1));
428 DoBufferData( 483 DoBufferData(
429 buffer, kTarget, sizeof(data2), GL_STATIC_DRAW, data2, GL_NO_ERROR); 484 buffer, kTarget, sizeof(data2), GL_STATIC_DRAW, data2, GL_NO_ERROR);
430 EXPECT_TRUE( 485 EXPECT_TRUE(
431 buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, &max_value)); 486 buffer->GetMaxValueForRange(0, 10, GL_UNSIGNED_INT, false, &max_value));
432 EXPECT_EQ(20u, max_value); 487 EXPECT_EQ(20u, max_value);
433 // Check that any cached values are invalidated if the buffer is reloaded 488 // Check that any cached values are invalidated if the buffer is reloaded
434 // with entirely different content. 489 // with entirely different content.
435 ASSERT_NE(sizeof(data3), sizeof(data1)); 490 ASSERT_NE(sizeof(data3), sizeof(data1));
436 DoBufferData( 491 DoBufferData(
437 buffer, kTarget, sizeof(data3), GL_STATIC_DRAW, data3, GL_NO_ERROR); 492 buffer, kTarget, sizeof(data3), GL_STATIC_DRAW, data3, GL_NO_ERROR);
438 EXPECT_TRUE( 493 EXPECT_TRUE(
439 buffer->GetMaxValueForRange(0, 3, GL_UNSIGNED_INT, &max_value)); 494 buffer->GetMaxValueForRange(0, 3, GL_UNSIGNED_INT, false, &max_value));
440 EXPECT_EQ(30u, max_value); 495 EXPECT_EQ(30u, max_value);
441 } 496 }
442 497
443 TEST_F(BufferManagerTest, BindBufferConflicts) { 498 TEST_F(BufferManagerTest, BindBufferConflicts) {
444 manager_->set_allow_buffers_on_multiple_targets(false); 499 manager_->set_allow_buffers_on_multiple_targets(false);
445 GLuint client_id = 1; 500 GLuint client_id = 1;
446 GLuint service_id = 101; 501 GLuint service_id = 101;
447 502
448 { 503 {
449 // Once a buffer is bound to ELEMENT_ARRAY_BUFFER, it can't be bound to 504 // 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
511 EXPECT_TRUE(manager_->SetTarget(buffer, kTargets[jj])); 566 EXPECT_TRUE(manager_->SetTarget(buffer, kTargets[jj]));
512 } 567 }
513 } 568 }
514 } 569 }
515 } 570 }
516 571
517 } // namespace gles2 572 } // namespace gles2
518 } // namespace gpu 573 } // namespace gpu
519 574
520 575
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/buffer_manager.cc ('k') | gpu/command_buffer/service/context_state.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698