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 986dbba7e3603d696fabe1ac235414e38671b435..68cdf5bd942ba98fb8033dc83e789ba38424c7ec 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -4803,6 +4803,10 @@ void GLES2DecoderImpl::Destroy(bool have_context) { |
offscreen_resolved_frame_buffer_.reset(); |
offscreen_resolved_color_texture_.reset(); |
+ // Release all fences now, because some fence types need the context to be |
+ // current on destruction. |
+ pending_readpixel_fences_ = std::queue<FenceCallback>(); |
+ |
// Need to release these before releasing |group_| which may own the |
// ShaderTranslatorCache. |
fragment_translator_ = NULL; |