summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authorsievers@chromium.org <sievers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-16 22:58:51 +0000
committersievers@chromium.org <sievers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-16 22:58:51 +0000
commite62624d9f5116b16a20a5ee6c03b90347959337f (patch)
tree0ac02fa7b94e5f7e4387d6f7956b7e550a2277cf /gpu
parente975357ce5f0e5b8dd94bb38a4c0b0018b6ad96a (diff)
downloadchromium_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.cc4
-rw-r--r--gpu/command_buffer/client/gles2_implementation_unittest.cc28
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)