Chromium Code Reviews| 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..a8dbd82ee00edbaa7dedb8fc8cff3df23748c40b 100644 |
| --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
| @@ -1543,6 +1543,7 @@ class GLES2DecoderImpl : public base::SupportsWeakPtr<GLES2DecoderImpl>, |
| int frame_number_; |
| bool has_arb_robustness_; |
| + bool has_ext_robustness_; |
| GLenum reset_status_; |
| bool needs_mac_nvidia_driver_workaround_; |
| @@ -1964,6 +1965,7 @@ GLES2DecoderImpl::GLES2DecoderImpl(ContextGroup* group) |
| tex_image_2d_failed_(false), |
| frame_number_(0), |
| has_arb_robustness_(false), |
| + has_ext_robustness_(false), |
| reset_status_(GL_NO_ERROR), |
| needs_mac_nvidia_driver_workaround_(false), |
| needs_glsl_built_in_function_emulation_(false), |
| @@ -2251,6 +2253,7 @@ bool GLES2DecoderImpl::Initialize( |
| } |
| has_arb_robustness_ = context->HasExtension("GL_ARB_robustness"); |
| + has_ext_robustness_ = context->HasExtension("GL_EXT_robustness"); |
| if (!feature_info_->feature_flags().disable_workarounds) { |
| #if defined(OS_MACOSX) |
| @@ -8532,13 +8535,20 @@ 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_arb_robustness_) { |
| + status = glGetGraphicsResetStatusARB(); |
|
apatrick_chromium
2012/07/26 22:12:38
You could make ARB alias to EXT in generate_bindin
|
| + } else if (has_ext_robustness_) { |
| + status = glGetGraphicsResetStatusEXT(); |
| + } |
| 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 " |
| + << (has_arb_robustness_ ? "ARB_" : "EXT_") |
| + << "robustness. Reset status = 0x" |
| << std::hex << status << std::dec; |
| return true; |
| } |