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

Side by Side Diff: gpu/command_buffer/common/gles2_cmd_utils_unittest.cc

Issue 1508953002: Implement helper functionalities for computing image size with ES3 settings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 "gpu/command_buffer/common/gles2_cmd_utils.h" 5 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <GLES2/gl2.h> 8 #include <GLES2/gl2.h>
9 #include <GLES2/gl2ext.h> 9 #include <GLES2/gl2ext.h>
10 #include <GLES2/gl2extchromium.h> 10 #include <GLES2/gl2extchromium.h>
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 EXPECT_EQ(kWidth * 3 + 3, padded_row_size); 313 EXPECT_EQ(kWidth * 3 + 3, padded_row_size);
314 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( 314 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes(
315 kWidth, kHeight, kDepth, GL_RGB, GL_UNSIGNED_BYTE, 8, &size, 315 kWidth, kHeight, kDepth, GL_RGB, GL_UNSIGNED_BYTE, 8, &size,
316 &unpadded_row_size, &padded_row_size)); 316 &unpadded_row_size, &padded_row_size));
317 EXPECT_EQ((kWidth * 3 + 7) * (kHeight * kDepth - 1) + 317 EXPECT_EQ((kWidth * 3 + 7) * (kHeight * kDepth - 1) +
318 kWidth * 3, size); 318 kWidth * 3, size);
319 EXPECT_EQ(kWidth * 3, unpadded_row_size); 319 EXPECT_EQ(kWidth * 3, unpadded_row_size);
320 EXPECT_EQ(kWidth * 3 + 7, padded_row_size); 320 EXPECT_EQ(kWidth * 3 + 7, padded_row_size);
321 } 321 }
322 322
323 TEST_F(GLES2UtilTest, ComputeImageDataSizePixelStoreParams) {
324 const uint32_t kWidth = 3;
325 const uint32_t kHeight = 3;
326 const uint32_t kDepth = 3;
327 uint32_t size;
328 uint32_t unpadded_row_size;
329 uint32_t padded_row_size;
330 uint32_t skip_size;
331
332 { // Default
333 PixelStoreParams params;
334 EXPECT_TRUE(GLES2Util::ComputeImageDataSizesES3(
335 kWidth, kHeight, kDepth, GL_RGB, GL_UNSIGNED_BYTE, params,
336 &size, &unpadded_row_size, &padded_row_size, &skip_size));
337 EXPECT_EQ(kWidth * 3, unpadded_row_size);
338 EXPECT_EQ(kWidth * 3 + 3, padded_row_size);
339 EXPECT_EQ(padded_row_size * (kHeight * kDepth - 1) + unpadded_row_size,
340 size);
341 EXPECT_EQ(0u, skip_size);
342 }
343
344 { // row_length > width
345 PixelStoreParams params;
346 params.row_length = kWidth + 2;
347 uint32_t kPadding = 1; // 5 * 3 = 15 -> 16
348 EXPECT_TRUE(GLES2Util::ComputeImageDataSizesES3(
349 kWidth, kHeight, kDepth, GL_RGB, GL_UNSIGNED_BYTE, params,
350 &size, &unpadded_row_size, &padded_row_size, &skip_size));
351 EXPECT_EQ(static_cast<uint32_t>(kWidth * 3), unpadded_row_size);
352 EXPECT_EQ(static_cast<uint32_t>(params.row_length * 3 + kPadding),
353 padded_row_size);
354 EXPECT_EQ(padded_row_size * (kHeight * kDepth - 1) + unpadded_row_size,
355 size);
356 EXPECT_EQ(0u, skip_size);
357 }
358
359 { // row_length < width
360 PixelStoreParams params;
361 params.row_length = kWidth - 1;
362 uint32_t kPadding = 2; // 2 * 3 = 6 -> 8
363 EXPECT_TRUE(GLES2Util::ComputeImageDataSizesES3(
364 kWidth, kHeight, kDepth, GL_RGB, GL_UNSIGNED_BYTE, params,
365 &size, &unpadded_row_size, &padded_row_size, &skip_size));
366 EXPECT_EQ(static_cast<uint32_t>(kWidth * 3), unpadded_row_size);
367 EXPECT_EQ(static_cast<uint32_t>(params.row_length * 3 + kPadding),
368 padded_row_size);
369 EXPECT_EQ(padded_row_size * (kHeight * kDepth - 1) + unpadded_row_size,
370 size);
371 EXPECT_EQ(0u, skip_size);
372 }
373
374 { // image_height > height
375 PixelStoreParams params;
376 params.image_height = kHeight + 1;
377 uint32_t kPadding = 3; // 3 * 3 = 9 -> 21
378 EXPECT_TRUE(GLES2Util::ComputeImageDataSizesES3(
379 kWidth, kHeight, kDepth, GL_RGB, GL_UNSIGNED_BYTE, params,
380 &size, &unpadded_row_size, &padded_row_size, &skip_size));
381 EXPECT_EQ(kWidth * 3, unpadded_row_size);
382 EXPECT_EQ(kWidth * 3 + kPadding, padded_row_size);
383 EXPECT_EQ((params.image_height * (kDepth - 1) + kHeight - 1) *
384 padded_row_size + unpadded_row_size, size);
385 EXPECT_EQ(0u, skip_size);
386 }
387
388 { // image_height < height
389 PixelStoreParams params;
390 params.image_height = kHeight - 1;
391 uint32_t kPadding = 3; // 3 * 3 = 9 -> 12
392 EXPECT_TRUE(GLES2Util::ComputeImageDataSizesES3(
393 kWidth, kHeight, kDepth, GL_RGB, GL_UNSIGNED_BYTE, params,
394 &size, &unpadded_row_size, &padded_row_size, &skip_size));
395 EXPECT_EQ(kWidth * 3, unpadded_row_size);
396 EXPECT_EQ(kWidth * 3 + kPadding, padded_row_size);
397 EXPECT_EQ((params.image_height * (kDepth - 1) + kHeight - 1) *
398 padded_row_size + unpadded_row_size, size);
399 EXPECT_EQ(0u, skip_size);
400 }
401
402 { // skip_pixels, skip_rows, skip_images, alignment = 4, RGB
403 PixelStoreParams params;
404 params.skip_pixels = 1;
405 params.skip_rows = 10;
406 params.skip_images = 2;
407 uint32_t kPadding = 3; // 3 * 3 = 9 -> 12
408 EXPECT_TRUE(GLES2Util::ComputeImageDataSizesES3(
409 kWidth, kHeight, kDepth, GL_RGB, GL_UNSIGNED_BYTE, params,
410 &size, &unpadded_row_size, &padded_row_size, &skip_size));
411 EXPECT_EQ(kWidth * 3, unpadded_row_size);
412 EXPECT_EQ(kWidth * 3 + kPadding, padded_row_size);
413 EXPECT_EQ(padded_row_size * kHeight * params.skip_images +
414 padded_row_size * params.skip_rows + 3 * params.skip_pixels,
415 skip_size);
416 EXPECT_EQ(padded_row_size * (kWidth * kDepth - 1) + unpadded_row_size,
417 size);
418 }
419
420 { // skip_pixels, skip_rows, skip_images, alignment = 8, RGBA
421 PixelStoreParams params;
422 params.skip_pixels = 1;
423 params.skip_rows = 10;
424 params.skip_images = 2;
425 params.alignment = 8;
426 uint32_t kPadding = 4; // 3 * 4 = 12 -> 16
427 EXPECT_TRUE(GLES2Util::ComputeImageDataSizesES3(
428 kWidth, kHeight, kDepth, GL_RGBA, GL_UNSIGNED_BYTE, params,
429 &size, &unpadded_row_size, &padded_row_size, &skip_size));
430 EXPECT_EQ(kWidth * 4, unpadded_row_size);
431 EXPECT_EQ(kWidth * 4 + kPadding, padded_row_size);
432 EXPECT_EQ(padded_row_size * kHeight * params.skip_images +
433 padded_row_size * params.skip_rows + 4 * params.skip_pixels,
434 skip_size);
435 EXPECT_EQ(padded_row_size * (kWidth * kDepth - 1) + unpadded_row_size,
436 size);
437 }
438 }
439
323 TEST_F(GLES2UtilTest, RenderbufferBytesPerPixel) { 440 TEST_F(GLES2UtilTest, RenderbufferBytesPerPixel) {
324 EXPECT_EQ(1u, GLES2Util::RenderbufferBytesPerPixel(GL_STENCIL_INDEX8)); 441 EXPECT_EQ(1u, GLES2Util::RenderbufferBytesPerPixel(GL_STENCIL_INDEX8));
325 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_RGBA4)); 442 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_RGBA4));
326 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB565)); 443 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB565));
327 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB5_A1)); 444 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB5_A1));
328 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_DEPTH_COMPONENT16)); 445 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_DEPTH_COMPONENT16));
329 EXPECT_EQ(4u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB)); 446 EXPECT_EQ(4u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB));
330 EXPECT_EQ(4u, GLES2Util::RenderbufferBytesPerPixel(GL_RGBA)); 447 EXPECT_EQ(4u, GLES2Util::RenderbufferBytesPerPixel(GL_RGBA));
331 EXPECT_EQ( 448 EXPECT_EQ(
332 4u, GLES2Util::RenderbufferBytesPerPixel(GL_DEPTH24_STENCIL8_OES)); 449 4u, GLES2Util::RenderbufferBytesPerPixel(GL_DEPTH24_STENCIL8_OES));
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 if (!parsed_name.IsArrayName()) { 514 if (!parsed_name.IsArrayName()) {
398 continue; 515 continue;
399 } 516 }
400 EXPECT_EQ(testcase.base_name, parsed_name.base_name()); 517 EXPECT_EQ(testcase.base_name, parsed_name.base_name());
401 EXPECT_EQ(testcase.element_index, parsed_name.element_index()); 518 EXPECT_EQ(testcase.element_index, parsed_name.element_index());
402 } 519 }
403 } 520 }
404 521
405 } // namespace gles2 522 } // namespace gles2
406 } // namespace gpu 523 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/common/gles2_cmd_utils.cc ('k') | gpu/command_buffer/service/context_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698