Index: third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp |
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp |
index 143731a384476a021e480090d788dc5dc155f652..37b9117df3e0d902126b9f20e243cf2d6a012b97 100644 |
--- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp |
+++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp |
@@ -978,6 +978,12 @@ void WebGLRenderingContextBase::initializeNewContext() |
drawingBuffer()->contextProvider()->setLostContextCallback(WebClosure(WTF::bind(&WebGLRenderingContextBase::forceLostContext, createWeakThisPointer(), WebGLRenderingContextBase::RealLostContext, WebGLRenderingContextBase::Auto))); |
webContext()->setErrorMessageCallback(m_errorMessageCallbackAdapter.get()); |
+ // If WebGL 2, the PRIMITIVE_RESTART_FIXED_INDEX should be always enabled. |
+ // See the section <Primitive Restart is Always Enabled> in WebGL 2 spec: |
+ // https://www.khronos.org/registry/webgl/specs/latest/2.0/#4.1.4 |
+ if (isWebGL2OrHigher()) |
+ contextGL()->Enable(GL_PRIMITIVE_RESTART_FIXED_INDEX); |
+ |
// This ensures that the context has a valid "lastFlushID" and won't be mistakenly identified as the "least recently used" context. |
contextGL()->Flush(); |