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 96ca3508bf91cd40829201451d432e936e0f6cc8..f10b1bbc25431f8f3cc215150af35f2f11bed311 100644 |
--- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp |
+++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp |
@@ -5281,17 +5281,9 @@ void WebGLRenderingContextBase::texImageHelperHTMLVideoElement( |
// Go through the fast path doing a GPU-GPU textures copy without a readback |
// to system memory if possible. Otherwise, it will fall back to the normal |
// SW path. |
- |
- // Note that neither |
- // HTMLVideoElement::copyVideoTextureToPlatformTexture nor |
- // ImageBuffer::copyToPlatformTexture allocate the destination texture |
- // any more. |
- texImage2DBase(target, level, internalformat, video->videoWidth(), |
- video->videoHeight(), 0, format, type, nullptr); |
- |
- if (video->copyVideoTextureToPlatformTexture(contextGL(), texture->object(), |
- m_unpackPremultiplyAlpha, |
- m_unpackFlipY)) { |
+ if (video->copyVideoTextureToPlatformTexture( |
+ contextGL(), texture->object(), internalformat, type, |
+ m_unpackPremultiplyAlpha, m_unpackFlipY)) { |
texture->updateLastUploadedVideo(video->webMediaPlayer()); |
return; |
} |
@@ -5316,6 +5308,11 @@ void WebGLRenderingContextBase::texImageHelperHTMLVideoElement( |
// This is a straight GPU-GPU copy, any necessary color space conversion |
// was handled in the paintCurrentFrameInContext() call. |
+ // Note that copyToPlatformTexture no longer allocates the destination |
+ // texture. |
+ texImage2DBase(target, level, internalformat, video->videoWidth(), |
+ video->videoHeight(), 0, format, type, nullptr); |
+ |
if (imageBuffer->copyToPlatformTexture( |
functionIDToSnapshotReason(functionID), contextGL(), |
texture->object(), internalformat, type, level, |