Index: gpu/command_buffer/client/gles2_implementation.cc |
diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc |
index e8537669a790e4239f6973d07343d51e226dc593..56a5758a56d24d566a653e85dc34eebf1d94009e 100644 |
--- a/gpu/command_buffer/client/gles2_implementation.cc |
+++ b/gpu/command_buffer/client/gles2_implementation.cc |
@@ -4930,6 +4930,28 @@ void GLES2Implementation::UniformBlockBinding(GLuint program, |
CheckGLError(); |
} |
+GLenum GLES2Implementation::ClientWaitSync( |
+ GLsync sync, GLbitfield flags, GLuint64 timeout) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClientWaitSync(" << sync |
+ << ", " << flags << ", " << timeout << ")"); |
+ typedef cmds::ClientWaitSync::Result Result; |
+ Result* result = GetResultAs<Result*>(); |
+ if (!result) { |
+ SetGLError(GL_OUT_OF_MEMORY, "ClientWaitSync", ""); |
+ return GL_WAIT_FAILED; |
+ } |
+ *result = GL_WAIT_FAILED; |
+ GLuint64Union mapping; |
+ mapping.param64 = timeout; |
+ helper_->ClientWaitSync( |
+ ToGLuint(sync), mapping.param32[0], mapping.param32[1], |
+ GetResultShmId(), GetResultShmOffset()); |
+ WaitForCmd(); |
+ GPU_CLIENT_LOG("returned " << *result); |
+ CheckGLError(); |
+ return *result; |
+} |
// Include the auto-generated part of this file. We split this because it means |
// we can easily edit the non-auto generated parts right here in this file |