diff options
author | sievers@chromium.org <sievers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-16 22:58:51 +0000 |
---|---|---|
committer | sievers@chromium.org <sievers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-16 22:58:51 +0000 |
commit | e62624d9f5116b16a20a5ee6c03b90347959337f (patch) | |
tree | 0ac02fa7b94e5f7e4387d6f7956b7e550a2277cf /gpu | |
parent | e975357ce5f0e5b8dd94bb38a4c0b0018b6ad96a (diff) | |
download | chromium_src-e62624d9f5116b16a20a5ee6c03b90347959337f.zip chromium_src-e62624d9f5116b16a20a5ee6c03b90347959337f.tar.gz chromium_src-e62624d9f5116b16a20a5ee6c03b90347959337f.tar.bz2 |
Revert 177054
> Explicitly free shared memory buffers on destruction.
>
> Without this change transfer buffers can leak until the ContextGroup
> is destroyed.
>
> BUG=169141
>
>
> Review URL: https://chromiumcodereview.appspot.com/11840002
TBR=sievers@chromium.org
Review URL: https://codereview.chromium.org/11970022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177245 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r-- | gpu/command_buffer/client/gles2_implementation.cc | 4 | ||||
-rw-r--r-- | gpu/command_buffer/client/gles2_implementation_unittest.cc | 28 |
2 files changed, 8 insertions, 24 deletions
diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc index 4a9c74e..eb1dfcd 100644 --- a/gpu/command_buffer/client/gles2_implementation.cc +++ b/gpu/command_buffer/client/gles2_implementation.cc @@ -204,8 +204,8 @@ GLES2Implementation::~GLES2Implementation() { // If it's destroyed it will use this GLES2Implemenation. share_group_->SetGLES2ImplementationForDestruction(this); share_group_ = NULL; - // Finally, finish commands and free shared memory buffers. - FreeEverything(); + // Make sure the commands make it the service. + Finish(); } GLES2CmdHelper* GLES2Implementation::helper() const { diff --git a/gpu/command_buffer/client/gles2_implementation_unittest.cc b/gpu/command_buffer/client/gles2_implementation_unittest.cc index 837ab07..7589074 100644 --- a/gpu/command_buffer/client/gles2_implementation_unittest.cc +++ b/gpu/command_buffer/client/gles2_implementation_unittest.cc @@ -248,6 +248,7 @@ int MockTransferBuffer::GetResultOffset() { } void MockTransferBuffer::Free() { + GPU_NOTREACHED(); } bool MockTransferBuffer::HaveBuffer() const { @@ -1455,8 +1456,9 @@ TEST_F(GLES2ImplementationTest, MapUnmapBufferSubDataCHROMIUM) { uint32 offset = 0; Cmds expected; - int32 shm_id = command_buffer()->GetNextFreeTransferBufferId(); - expected.buf.Init(kTarget, kOffset, kSize, shm_id, offset); + expected.buf.Init( + kTarget, kOffset, kSize, + command_buffer()->GetNextFreeTransferBufferId(), offset); expected.set_token.Init(GetNextToken()); void* mem = gl_->MapBufferSubDataCHROMIUM( @@ -1464,11 +1466,6 @@ TEST_F(GLES2ImplementationTest, MapUnmapBufferSubDataCHROMIUM) { ASSERT_TRUE(mem != NULL); gl_->UnmapBufferSubDataCHROMIUM(mem); EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); - - EXPECT_CALL(*command_buffer(), DestroyTransferBuffer(shm_id)) - .Times(1) - .RetiresOnSaturation(); - gl_->FreeUnusedSharedMemory(); } TEST_F(GLES2ImplementationTest, MapUnmapBufferSubDataCHROMIUMBadArgs) { @@ -1523,10 +1520,10 @@ TEST_F(GLES2ImplementationTest, MapUnmapTexSubImage2DCHROMIUM) { uint32 offset = 0; Cmds expected; - int32 shm_id = command_buffer()->GetNextFreeTransferBufferId(); expected.tex.Init( GL_TEXTURE_2D, kLevel, kXOffset, kYOffset, kWidth, kHeight, kFormat, - kType, shm_id, offset, GL_FALSE); + kType, + command_buffer()->GetNextFreeTransferBufferId(), offset, GL_FALSE); expected.set_token.Init(GetNextToken()); void* mem = gl_->MapTexSubImage2DCHROMIUM( @@ -1542,11 +1539,6 @@ TEST_F(GLES2ImplementationTest, MapUnmapTexSubImage2DCHROMIUM) { ASSERT_TRUE(mem != NULL); gl_->UnmapTexSubImage2DCHROMIUM(mem); EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); - - EXPECT_CALL(*command_buffer(), DestroyTransferBuffer(shm_id)) - .Times(1) - .RetiresOnSaturation(); - gl_->FreeUnusedSharedMemory(); } TEST_F(GLES2ImplementationTest, MapUnmapTexSubImage2DCHROMIUMBadArgs) { @@ -2697,10 +2689,6 @@ TEST_F(GLES2ImplementationTest, BeginEndQueryEXT) { gl_->GetQueryObjectuivEXT(id1, GL_QUERY_RESULT_AVAILABLE_EXT, &available); EXPECT_TRUE(NoCommandsWritten()); EXPECT_EQ(0u, available); - - EXPECT_CALL(*command_buffer(), DestroyTransferBuffer(_)) - .Times(1) - .RetiresOnSaturation(); } TEST_F(GLES2ImplementationTest, ErrorQuery) { @@ -2755,10 +2743,6 @@ TEST_F(GLES2ImplementationTest, ErrorQuery) { gl_->GetQueryObjectuivEXT(id, GL_QUERY_RESULT_EXT, &result); EXPECT_TRUE(NoCommandsWritten()); EXPECT_EQ(static_cast<GLuint>(GL_INVALID_ENUM), result); - - EXPECT_CALL(*command_buffer(), DestroyTransferBuffer(_)) - .Times(1) - .RetiresOnSaturation(); } #if !defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS) |