⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 106610 in webkit


Ignore:
Timestamp:
Feb 2, 2012, 6:13:25 PM (15 years ago)
Author:
commit-queue@webkit.org
Message:

Avoid crashing renderer when GPU process dies by not caching textures between video frames.
https://bugs.webkit.org/show_bug.cgi?id=77654

Patch by Ami Fischman <fischman@chromium.org> on 2012-02-02
Reviewed by James Robinson.

  • platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:

(WebCore::CCVideoLayerImpl::draw):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r106609 r106610  
     12012-02-02  Ami Fischman  <fischman@chromium.org>
     2
     3        Avoid crashing renderer when GPU process dies by not caching textures between video frames.
     4        https://bugs.webkit.org/show_bug.cgi?id=77654
     5
     6        Reviewed by James Robinson.
     7
     8        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
     9        (WebCore::CCVideoLayerImpl::draw):
     10
    1112012-02-02  Anders Carlsson  <andersca@apple.com>
    212
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp

    r105559 r106610  
    151151    }
    152152
    153     for (unsigned plane = 0; plane < frame->planes(); ++plane)
     153    for (unsigned plane = 0; plane < frame->planes(); ++plane) {
    154154        m_textures[plane].m_texture->unreserve();
     155        // FIXME: ManagedTexture's store a raw pointer to their TextureManager,
     156        // and the textures we create use layerRenderer->renderSurfaceTextureManager().
     157        // Since there is no guarantee layerRenderer will still be alive the
     158        // next time we are called, we clear the texture reference. It would
     159        // be nice if instead we could rely on textures being invalidated when
     160        // their manager was deleted so that new textures didn't always have to
     161        // be recreated for each frame.
     162        m_textures[plane].m_texture.clear();
     163    }
    155164    m_provider->putCurrentFrame(frame);
    156165}
Note: See TracChangeset for help on using the changeset viewer.