| 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 ec799ea81e924e695fedd504d177641fc2cc0d20..12b02d1d0d91dc72ef852fb1edfd4afbc9fa638c 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
|
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
|
| @@ -1542,7 +1542,7 @@ class GLES2DecoderImpl : public base::SupportsWeakPtr<GLES2DecoderImpl>,
|
|
|
| int frame_number_;
|
|
|
| - bool has_arb_robustness_;
|
| + bool has_robustness_extension_;
|
| GLenum reset_status_;
|
|
|
| bool needs_mac_nvidia_driver_workaround_;
|
| @@ -1963,7 +1963,7 @@ GLES2DecoderImpl::GLES2DecoderImpl(ContextGroup* group)
|
| feature_info_(group_->feature_info()),
|
| tex_image_2d_failed_(false),
|
| frame_number_(0),
|
| - has_arb_robustness_(false),
|
| + has_robustness_extension_(false),
|
| reset_status_(GL_NO_ERROR),
|
| needs_mac_nvidia_driver_workaround_(false),
|
| needs_glsl_built_in_function_emulation_(false),
|
| @@ -2250,7 +2250,9 @@ bool GLES2DecoderImpl::Initialize(
|
| glEnable(GL_POINT_SPRITE);
|
| }
|
|
|
| - has_arb_robustness_ = context->HasExtension("GL_ARB_robustness");
|
| + has_robustness_extension_ =
|
| + context->HasExtension("GL_ARB_robustness") ||
|
| + context->HasExtension("GL_EXT_robustness");
|
|
|
| if (!feature_info_->feature_flags().disable_workarounds) {
|
| #if defined(OS_MACOSX)
|
| @@ -8532,13 +8534,15 @@ error::ContextLostReason GLES2DecoderImpl::GetContextLostReason() {
|
| }
|
|
|
| bool GLES2DecoderImpl::WasContextLost() {
|
| - if (context_->WasAllocatedUsingARBRobustness() && has_arb_robustness_) {
|
| - GLenum status = glGetGraphicsResetStatusARB();
|
| + if (context_->WasAllocatedUsingRobustnessExtension()) {
|
| + GLenum status = GL_NO_ERROR;
|
| + if (has_robustness_extension_)
|
| + status = glGetGraphicsResetStatusARB();
|
| if (status != GL_NO_ERROR) {
|
| // The graphics card was reset. Signal a lost context to the application.
|
| reset_status_ = status;
|
| LOG(ERROR) << (surface_->IsOffscreen() ? "Offscreen" : "Onscreen")
|
| - << " context lost via ARB_robustness. Reset status = 0x"
|
| + << " context lost via ARB/EXT_robustness. Reset status = 0x"
|
| << std::hex << status << std::dec;
|
| return true;
|
| }
|
|
|