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

Issue 7458010: Revert 93066 - Execute all GL commands up to the put offset reported by a each flush.This means g... (Closed)

Created:
9 years, 5 months ago by apatrick_chromium
Modified:
9 years, 5 months ago
CC:
chromium-reviews, joi+watch-content_chromium.org, jam, darin-cc_chromium.org, apatrick_chromium, Paweł Hajdan Jr.
Visibility:
Public.

Description

Revert 93066 - Execute all GL commands up to the put offset reported by a each flush.This means glFlush is a barrier that prevents reordering of GL commands issued on different command buffers. I used it to replace latches for synchronizing the rendering of WebGL canvas and Pepper 3D with the accelerated compositor. The primary advantage is it is more robust than latches and there is no possibility of deadlock. It should also be possible for WebGL and Pepper 3D to use it whereas exposing SetLatch and WaitLatch would be dangerous.The calls to SetLatch and WaitLatch are still in webkit but they are no-ops. SetLatch and WaitLatch are completely removed elsewhere.I changed CommandBuffer::FlushSync to Finish to reflect the new semantics. Going forward, I will add a synchronous CommandBuffer::WaitForToken and WaitForAvailableEntries, which should eliminate the need to call Finish unless glFinish is called by the client. The Pepper interface is unchanged because I don't want to break binary compatibility.I fixed a bug where the last read token in CmdBufferHelper was stale after receiving a ReportState IPC. That was causing a redundant synchronous flush in the client side SwapBuffers throttling.I removed Yield because it does not make sense with the new semantics. There is no round robin scheduling.Tested with WebGL on Windows and Mac and checked that 72672 did not regress. Review URL: http://codereview.chromium.org/7253052 TBR=apatrick@chromium.org Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=93143

Patch Set 1 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+757 lines, -347 lines) Patch
M content/common/gpu/gpu_channel.h View 6 chunks +3 lines, -19 lines 0 comments Download
M content/common/gpu/gpu_channel.cc View 10 chunks +27 lines, -102 lines 0 comments Download
M content/common/gpu/gpu_command_buffer_stub.h View 5 chunks +7 lines, -4 lines 0 comments Download
M content/common/gpu/gpu_command_buffer_stub.cc View 9 chunks +68 lines, -49 lines 0 comments Download
M content/common/gpu/gpu_messages.h View 2 chunks +1 line, -6 lines 0 comments Download
M content/renderer/gpu/command_buffer_proxy.h View 2 chunks +5 lines, -1 line 0 comments Download
M content/renderer/gpu/command_buffer_proxy.cc View 1 chunk +0 lines, -4 lines 0 comments Download
M content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M gpu/command_buffer/build_gles2_cmd_buffer.py View 3 chunks +10 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/cmd_buffer_helper.h View 3 chunks +12 lines, -7 lines 0 comments Download
M gpu/command_buffer/client/cmd_buffer_helper.cc View 9 chunks +22 lines, -7 lines 0 comments Download
M gpu/command_buffer/client/cmd_buffer_helper_test.cc View 2 chunks +6 lines, -2 lines 0 comments Download
M gpu/command_buffer/client/fenced_allocator_test.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M gpu/command_buffer/client/gles2_c_lib_autogen.h View 1 chunk +6 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_cmd_helper_autogen.h View 1 chunk +10 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_demo.cc View 1 chunk +3 lines, -3 lines 0 comments Download
M gpu/command_buffer/client/gles2_implementation.cc View 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_implementation_autogen.h View 1 chunk +10 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_implementation_unittest.cc View 2 chunks +1 line, -5 lines 0 comments Download
gpu/command_buffer/client/mapped_memory_unittest.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M gpu/command_buffer/client/ring_buffer_test.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M gpu/command_buffer/common/cmd_buffer_common.h View 2 chunks +27 lines, -0 lines 0 comments Download
M gpu/command_buffer/common/cmd_buffer_common.cc View 1 chunk +0 lines, -11 lines 0 comments Download
M gpu/command_buffer/common/command_buffer.h View 1 chunk +7 lines, -8 lines 0 comments Download
M gpu/command_buffer/common/command_buffer_mock.h View 1 chunk +0 lines, -1 line 0 comments Download
M gpu/command_buffer/common/constants.h View 1 chunk +18 lines, -2 lines 0 comments Download
M gpu/command_buffer/common/gles2_cmd_format_autogen.h View 1 chunk +68 lines, -0 lines 0 comments Download
M gpu/command_buffer/common/gles2_cmd_format_test_autogen.h View 1 chunk +26 lines, -0 lines 0 comments Download
M gpu/command_buffer/common/gles2_cmd_ids_autogen.h View 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h View 2 chunks +2 lines, -2 lines 0 comments Download
M gpu/command_buffer/service/cmd_parser.cc View 1 chunk +1 line, -1 line 0 comments Download
M gpu/command_buffer/service/cmd_parser_test.cc View 1 chunk +24 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/command_buffer_service.h View 3 chunks +2 lines, -3 lines 0 comments Download
M gpu/command_buffer/service/command_buffer_service.cc View 4 chunks +3 lines, -7 lines 0 comments Download
M gpu/command_buffer/service/common_decoder.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/common_decoder_unittest.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder.h View 1 chunk +5 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder.cc View 4 chunks +63 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc View 1 chunk +59 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h View 1 chunk +2 lines, -1 line 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h View 1 chunk +3 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gpu_scheduler.h View 5 chunks +24 lines, -11 lines 0 comments Download
M gpu/command_buffer/service/gpu_scheduler.cc View 6 chunks +106 lines, -58 lines 0 comments Download
M gpu/command_buffer/service/gpu_scheduler_unittest.cc View 8 chunks +52 lines, -10 lines 0 comments Download
M gpu/command_buffer/service/mocks.h View 1 chunk +14 lines, -0 lines 0 comments Download
gpu/command_buffer/service/mocks.cc View 1 chunk +19 lines, -0 lines 0 comments Download
M gpu/demos/framework/window.cc View 1 chunk +1 line, -3 lines 0 comments Download
M gpu/gles2_conform_support/egl/display.cc View 1 chunk +1 line, -3 lines 0 comments Download
M ppapi/proxy/ppb_context_3d_proxy.cc View 2 chunks +0 lines, -5 lines 0 comments Download
M webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc View 4 chunks +12 lines, -6 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
apatrick_chromium
9 years, 5 months ago (2011-07-20 00:55:41 UTC) #1
Ken Russell (switch to Gerrit)
9 years, 5 months ago (2011-07-20 00:57:57 UTC) #2
LGTM

Unfortunate but better to remove the time pressure for figuring out the
performance regression on Mac. Let me know how I can help to track it down.

Powered by Google App Engine
This is Rietveld 408576698