Index: gpu/gles2_conform_support/egl/display.cc |
diff --git a/gpu/gles2_conform_support/egl/display.cc b/gpu/gles2_conform_support/egl/display.cc |
index 928d5fd2245b9c501d4eb626378d9aca0e328af5..82c60135ecb075338e7545935f3e0786f1a1554d 100644 |
--- a/gpu/gles2_conform_support/egl/display.cc |
+++ b/gpu/gles2_conform_support/egl/display.cc |
@@ -138,6 +138,9 @@ EGLSurface Display::CreateWindowSurface(EGLConfig config, |
command_buffer_->SetPutOffsetChangeCallback( |
base::Bind(&gpu::GpuScheduler::PutChanged, |
base::Unretained(gpu_scheduler_.get()))); |
+ command_buffer_->SetGetBufferChangeCallback( |
+ base::Bind(&gpu::GpuScheduler::SetGetBuffer, |
+ base::Unretained(gpu_scheduler_.get()))); |
surface_.reset(new Surface(win)); |
@@ -147,6 +150,9 @@ EGLSurface Display::CreateWindowSurface(EGLConfig config, |
void Display::DestroySurface(EGLSurface surface) { |
DCHECK(IsValidSurface(surface)); |
gpu_scheduler_.reset(); |
+ if (decoder_.get()) { |
+ decoder_->Destroy(); |
+ } |
decoder_.reset(); |
gl_surface_ = NULL; |
gl_context_ = NULL; |