Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
index cd29b4cb87ec7ff9eda0e9947fc8609971f9a7a0..952e4082a65590b45209b6e9cefc65bb770a121f 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -16053,6 +16053,9 @@ error::Error GLES2DecoderImpl::HandleInsertFenceSyncCHROMIUM( |
const uint64_t release_count = c.release_count(); |
if (!fence_sync_release_callback_.is_null()) |
fence_sync_release_callback_.Run(release_count); |
+ // Exit inner command processing loop so that we check the scheduling state |
+ // and yield if necessary as we may have unblocked a higher priority context. |
+ ExitCommandProcessingEarly(); |
return error::kNoError; |
} |