summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/client
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-28 18:23:32 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-28 18:23:32 +0000
commitad3f1a3f48eafff9eab52bee5e955fcb4e1f4c30 (patch)
tree0f7a9e3b8f596aebdebd43251c8d99ec2293baf0 /gpu/command_buffer/client
parent360f17f364b9a4b94ee1a49eca844fa2c8fd2e6e (diff)
downloadchromium_src-ad3f1a3f48eafff9eab52bee5e955fcb4e1f4c30.zip
chromium_src-ad3f1a3f48eafff9eab52bee5e955fcb4e1f4c30.tar.gz
chromium_src-ad3f1a3f48eafff9eab52bee5e955fcb4e1f4c30.tar.bz2
Insert a soft flush into the command buffer on unmapTexSubImage2D
This does a CommandBufferHelper flush in UnmapTexSubImage2DCHROMIUM so the gpu process can start processing texture uploads as soon as the texture is unmapped instead of waiting until the next hard flush or finish. This increase parallelization for tile uploads, especially during compositor startup and when the entire root layer is damaged. On my linux z600, this cuts down on the time taken to initially composite the poster circle page measured from start of RenderWidget::DoDeferredUpdate to the first SwapBuffers completing from 100ms->50ms BUG=none TEST=none Review URL: http://codereview.chromium.org/7492060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94504 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/client')
-rw-r--r--gpu/command_buffer/client/gles2_implementation.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc
index b11554a..a0f3dd3 100644
--- a/gpu/command_buffer/client/gles2_implementation.cc
+++ b/gpu/command_buffer/client/gles2_implementation.cc
@@ -2155,6 +2155,7 @@ void GLES2Implementation::UnmapBufferSubDataCHROMIUM(const void* mem) {
helper_->BufferSubData(
mb.target, mb.offset, mb.size, mb.shm_id, mb.shm_offset);
mapped_memory_->FreePendingToken(mb.shm_memory, helper_->InsertToken());
+ helper_->CommandBufferHelper::Flush();
mapped_buffers_.erase(it);
}
@@ -2225,6 +2226,7 @@ void GLES2Implementation::UnmapTexSubImage2DCHROMIUM(const void* mem) {
mt.target, mt.level, mt.xoffset, mt.yoffset, mt.width, mt.height,
mt.format, mt.type, mt.shm_id, mt.shm_offset, GL_FALSE);
mapped_memory_->FreePendingToken(mt.shm_memory, helper_->InsertToken());
+ helper_->CommandBufferHelper::Flush();
mapped_textures_.erase(it);
}