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

Unified Diff: content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc

Issue 1062853002: Add gfx::GpuMemoryBuffer::YUV_420 and GpuMemoryBufferImplSharedMemory support (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: reveman@ comments. Created 5 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 side-by-side diff with in-line comments
Download patch
Index: content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc
diff --git a/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc b/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc
index ba55d78349e7b44111439920cad1f98c682d4797..61e3775ff0906c73f2d9cd38b80511b5ebc1c967 100644
--- a/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc
+++ b/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc
@@ -52,7 +52,7 @@ class GpuMemoryBufferImplTest
TEST_P(GpuMemoryBufferImplTest, CreateFromHandle) {
const int kBufferId = 1;
- gfx::Size buffer_size(1, 1);
+ gfx::Size buffer_size(8, 8);
for (auto configuration : supported_configurations_) {
scoped_ptr<GpuMemoryBufferImpl> buffer(
@@ -79,42 +79,50 @@ TEST_P(GpuMemoryBufferImplTest, CreateFromHandle) {
TEST_P(GpuMemoryBufferImplTest, Map) {
const int kBufferId = 1;
- gfx::Size buffer_size(1, 1);
+ gfx::Size buffer_size(2, 2);
for (auto configuration : supported_configurations_) {
if (configuration.usage != gfx::GpuMemoryBuffer::MAP)
continue;
- size_t width_in_bytes = 0;
- EXPECT_TRUE(GpuMemoryBufferImpl::StrideInBytes(
- buffer_size.width(), configuration.format, &width_in_bytes));
- EXPECT_GT(width_in_bytes, 0u);
- scoped_ptr<char[]> data(new char[width_in_bytes]);
- memset(data.get(), 0x2a, width_in_bytes);
-
scoped_ptr<GpuMemoryBufferImpl> buffer(
GpuMemoryBufferImpl::CreateFromHandle(
- CreateGpuMemoryBuffer(kBufferId,
- buffer_size,
- configuration.format,
+ CreateGpuMemoryBuffer(kBufferId, buffer_size, configuration.format,
configuration.usage),
- buffer_size,
- configuration.format,
+ buffer_size, configuration.format,
base::Bind(&GpuMemoryBufferImplTest::DestroyGpuMemoryBuffer,
- base::Unretained(this),
- kBufferId)));
+ base::Unretained(this), kBufferId)));
ASSERT_TRUE(buffer);
EXPECT_FALSE(buffer->IsMapped());
- void* memory;
- bool rv = buffer->Map(&memory);
+ size_t num_planes =
+ GpuMemoryBufferImpl::NumberOfPlanesForGpuMemoryBufferFormat(
+ configuration.format);
+
+ // Map buffer into user space.
+ scoped_ptr<void*[]> mapped_buffers(new void*[num_planes]);
+ bool rv = buffer->Map(mapped_buffers.get());
ASSERT_TRUE(rv);
EXPECT_TRUE(buffer->IsMapped());
- uint32 stride;
- buffer->GetStride(&stride);
- EXPECT_GE(stride, width_in_bytes);
- memcpy(memory, data.get(), width_in_bytes);
- EXPECT_EQ(memcmp(memory, data.get(), width_in_bytes), 0);
+
+ // Get strides.
+ scoped_ptr<uint32[]> strides(new uint32[num_planes]);
+ buffer->GetStride(strides.get());
+
+ // Copy and compare mapped buffers.
+ for (size_t i = 0; i < num_planes; ++i) {
+ size_t width_in_bytes = 0u;
+ EXPECT_TRUE(GpuMemoryBufferImpl::StrideInBytes(
+ buffer_size.width(), configuration.format, i, &width_in_bytes));
+ EXPECT_GT(width_in_bytes, 0u);
+ EXPECT_GE(strides[i], width_in_bytes);
+
+ scoped_ptr<char[]> data(new char[width_in_bytes]);
+ memset(data.get(), i, width_in_bytes);
reveman 2015/04/07 20:33:45 nit: s/i/0x2a + i/ to avoid i=0 which is not very
emircan 2015/04/07 21:28:45 Done.
+ memcpy(mapped_buffers[i], data.get(), width_in_bytes);
+ EXPECT_EQ(memcmp(mapped_buffers[i], data.get(), width_in_bytes), 0);
+ }
+
buffer->Unmap();
EXPECT_FALSE(buffer->IsMapped());
}

Powered by Google App Engine
This is Rietveld 408576698