Index: third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp b/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp |
index 90ef507f7654dec1597a9a80631d9f400df18244..5e7d0d3f45c2f6a54b9b87821eebb1963c0803f4 100644 |
--- a/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp |
@@ -25,6 +25,7 @@ |
#include "platform/graphics/Canvas2DLayerBridge.h" |
+#include "gpu/command_buffer/client/gles2_interface.h" |
#include "platform/Histogram.h" |
#include "platform/RuntimeEnabledFeatures.h" |
#include "platform/TraceEvent.h" |
@@ -178,7 +179,7 @@ bool Canvas2DLayerBridge::shouldAccelerate(AccelerationHint hint) const |
else |
accelerate = hint == PreferAcceleration || hint == PreferAccelerationAfterVisibilityChange; |
- if (accelerate && (!m_contextProvider || m_contextProvider->context3d()->isContextLost())) |
+ if (accelerate && (!m_contextProvider || m_contextProvider->contextGL()->GetGraphicsResetStatusKHR() != GL_NO_ERROR)) |
accelerate = false; |
return accelerate; |
} |
@@ -727,7 +728,7 @@ bool Canvas2DLayerBridge::checkSurfaceValid() |
return true; |
if (!m_surface) |
return false; |
- if (m_contextProvider->context3d()->isContextLost()) { |
+ if (m_contextProvider->contextGL()->GetGraphicsResetStatusKHR() != GL_NO_ERROR) { |
m_surface.clear(); |
for (auto mailboxInfo = m_mailboxes.begin(); mailboxInfo != m_mailboxes.end(); ++mailboxInfo) { |
if (mailboxInfo->m_image) |
@@ -747,13 +748,13 @@ bool Canvas2DLayerBridge::restoreSurface() |
return false; |
ASSERT(isAccelerated() && !m_surface); |
- WebGraphicsContext3D* sharedContext = 0; |
+ gpu::gles2::GLES2Interface* sharedGL = nullptr; |
m_layer->clearTexture(); |
m_contextProvider = adoptPtr(Platform::current()->createSharedOffscreenGraphicsContext3DProvider()); |
if (m_contextProvider) |
- sharedContext = m_contextProvider->context3d(); |
+ sharedGL = m_contextProvider->contextGL(); |
- if (sharedContext && !sharedContext->isContextLost()) { |
+ if (sharedGL && sharedGL->GetGraphicsResetStatusKHR() == GL_NO_ERROR) { |
GrContext* grCtx = m_contextProvider->grContext(); |
bool surfaceIsAccelerated; |
RefPtr<SkSurface> surface(createSkSurface(grCtx, m_size, m_msaaSampleCount, m_opacityMode, &surfaceIsAccelerated)); |
@@ -819,7 +820,7 @@ bool Canvas2DLayerBridge::prepareMailbox(WebExternalTextureMailbox* outMailbox, |
void Canvas2DLayerBridge::mailboxReleased(const WebExternalTextureMailbox& mailbox, bool lostResource) |
{ |
ASSERT(isAccelerated() || isHibernating()); |
- bool contextLost = !isHibernating() && (!m_surface || m_contextProvider->context3d()->isContextLost()); |
+ bool contextLost = !isHibernating() && (!m_surface || m_contextProvider->contextGL()->GetGraphicsResetStatusKHR() != GL_NO_ERROR); |
ASSERT(m_mailboxes.last().m_parentLayerBridge.get() == this); |
// Mailboxes are typically released in FIFO order, so we iterate |