Index: gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc |
index 3a884f4401a17b95ff85f91fabad43b17e0b7f7e..57cfae7469696ca6c5f55e64929ec60ac4e90f16 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc |
@@ -3322,6 +3322,17 @@ error::Error GLES2DecoderPassthroughImpl::DoPostSubBufferCHROMIUM( |
GLint y, |
GLint width, |
GLint height) { |
+ if (!surface_->SupportsPostSubBuffer()) { |
+ InsertError(GL_INVALID_OPERATION, |
+ "glPostSubBufferCHROMIUM is not supported for this surface."); |
+ return error::kNoError; |
+ } |
+ |
+ gfx::SwapResult result = surface_->PostSubBuffer(x, y, width, height); |
+ if (result == gfx::SwapResult::SWAP_FAILED) { |
+ LOG(ERROR) << "Context lost because PostSubBuffer failed."; |
+ } |
+ // TODO(geofflang): force the context loss? |
return error::kNoError; |
} |