• Kai Ninomiya's avatar
    ScalerImpl::Execute: Don't assume what texture unit is active · e06c7f41
    Kai Ninomiya authored
    This code assumed texture unit 0 was active. In fact, sometimes the
    current texture unit is different; in this case, the active texture unit
    was 2, because Skia set it here:
    
    gpu::gles2::GLES2Implementation::ActiveTexture(unsigned int)
    skia_bindings::GLES2ImplementationWithGrContextSupport::ActiveTexture(unsigned int)
    GrGLFunction<void (unsigned int)>::GrGLFunction<GrGLFunction<void (unsigned int)> (anonymous namespace)::gles_bind<void, unsigned int>(void (gpu::gles2::GLES2Interface::*)(unsigned int), gpu::gles2::GLES2Interface*, gpu::ContextSupport*)::'lambda'(unsigned int)>(void)::'lambda'(void const*, unsigned int)::__invoke(void const*, unsigned int)
    GrGLGpu::setTextureUnit(int)
    GrGLGpu::bindTexture(int, GrSamplerState, GrSwizzle const&, GrGLTexture*)
    _ZNSt4__Cr10__function16__policy_invokerIFvRK15GrTextureEffectEE11__call_implINS0_20__default_alloc_funcIZN11GrGLProgram12bindTexturesERK20GrPrimitiveProcessorPKPK14GrSurfaceProxyRK10GrPipelineE3$_1S5_EEEEvPKNS0_16__policy_storageES4_
    GrFragmentProcessor::visitTextureEffects(std::__Cr::function<void (GrTextureEffect const&)> const&) const
    GrFragmentProcessor::visitTextureEffects(std::__Cr::function<void (GrTextureEffect const&)> const&) const
    GrFragmentProcessor::visitTextureEffects(std::__Cr::function<void (GrTextureEffect const&)> const&) const
    GrPipeline::visitTextureEffects(std::__Cr::function<void (GrTextureEffect const&)> const&) const
    GrGLProgram::bindTextures(GrPrimitiveProcessor const&, GrSurfaceProxy const* const*, GrPipeline const&)
    GrGLOpsRenderPass::onBindTextures(GrPrimitiveProcessor const&, GrSurfaceProxy const* const*, GrPipeline const&)
    GrOpsRenderPass::bindTextures(GrPrimitiveProcessor const&, GrSurfaceProxy const* const*, GrPipeline const&)
    (anonymous namespace)::FillRectOp::onExecute(GrOpFlushState*, SkRect const&)
    GrOp::execute(GrOpFlushState*, SkRect const&)
    GrOpsTask::onExecute(GrOpFlushState*)
    GrDrawingManager::executeRenderTasks(int, int, GrOpFlushState*, int*)
    GrDrawingManager::flush(GrSurfaceProxy**, int, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)
    GrDirectContext::flush(GrFlushInfo const&)
    media::VideoFrameYUVConverter::ConvertFromVideoFrameYUVSkia(media::VideoFrame const*, viz::RasterContextProvider*, unsigned int, unsigned int)
    media::VideoFrameYUVConverter::ConvertFromVideoFrameYUVWithGrContext(media::VideoFrame const*, viz::RasterContextProvider*, gpu::MailboxHolder const&)
    media::VideoFrameYUVConverter::ConvertYUVVideoFrame(media::VideoFrame const*, viz::RasterContextProvider*, gpu::MailboxHolder const&)
    media::PaintCanvasVideoRenderer::CopyVideoFrameYUVDataToGLTexture(viz::RasterContextProvider*, gpu::gles2::GLES2Interface*, media::VideoFrame const&, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, int, bool, bool)
    blink::WebMediaPlayerMS::CopyVideoYUVDataToPlatformTexture(gpu::gles2::GLES2Interface*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, int, bool, bool, int, blink::WebMediaPlayer::VideoFrameUploadMetadata*)
    non-virtual thunk to blink::WebMediaPlayerMS::CopyVideoYUVDataToPlatformTexture(gpu::gles2::GLES2Interface*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, int, bool, bool, int, blink::WebMediaPlayer::VideoFrameUploadMetadata*)
    blink::WebGLRenderingContextBase::TexImageHelperHTMLVideoElement(blink::SecurityOrigin const*, blink::WebGLRenderingContextBase::TexImageFunctionID, unsigned int, int, int, unsigned int, unsigned int, int, int, int, blink::HTMLVideoElement*, blink::IntRect const&, int, int, blink::ExceptionState&)
    blink::WebGLRenderingContextBase::texImage2D(blink::ExecutionContext*, unsigned int, int, int, unsigned int, unsigned int, blink::HTMLVideoElement*, blink::ExceptionState&)
    blink::WebGL2RenderingContextBase::texImage2D(blink::ExecutionContext*, unsigned int, int, int, unsigned int, unsigned int, blink::HTMLVideoElement*, blink::ExceptionState&)
    
    Bug: 1103385
    Change-Id: I3a4bdd41613de448effcaa676870b60d7190cb64
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2522119
    Commit-Queue: Kenneth Russell <kbr@chromium.org>
    Reviewed-by: default avatarKenneth Russell <kbr@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#825000}
    e06c7f41
gl_helper_scaling.cc 56.7 KB