Changeset 93523 in webkit


Ignore:
Timestamp:
Aug 22, 2011 11:18:59 AM (13 years ago)
Author:
commit-queue@webkit.org
Message:

[chromium] Content and render surface textures not freed when compositor context destroyed
https://bugs.webkit.org/show_bug.cgi?id=66589

Patch by James Robinson <jamesr@chromium.org> on 2011-08-22
Reviewed by Kenneth Russell.

Explicitly delete all managed textures when destroying the compositor
context. This regressed due to a combination of using share groups
(so destroying a context no longer implicitly releases all resources
in that context) and switching the TextureManager over to support
deferred texture destruction.

We sadly don't have a way to construct automated tests for resource
leaks currently.

  • platform/graphics/chromium/LayerRendererChromium.cpp:

(WebCore::LayerRendererChromium::cleanupSharedObjects):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r93521 r93523  
     12011-08-22  James Robinson  <jamesr@chromium.org>
     2
     3        [chromium] Content and render surface textures not freed when compositor context destroyed
     4        https://bugs.webkit.org/show_bug.cgi?id=66589
     5
     6        Reviewed by Kenneth Russell.
     7
     8        Explicitly delete all managed textures when destroying the compositor
     9        context.  This regressed due to a combination of using share groups
     10        (so destroying a context no longer implicitly releases all resources
     11        in that context) and switching the TextureManager over to support
     12        deferred texture destruction.
     13
     14        We sadly don't have a way to construct automated tests for resource
     15        leaks currently.
     16
     17        * platform/graphics/chromium/LayerRendererChromium.cpp:
     18        (WebCore::LayerRendererChromium::cleanupSharedObjects):
     19
    1202011-08-22  Nate Chapin  <japhet@chromium.org>
    221
  • trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp

    r93438 r93523  
    12841284
    12851285    // Clear tilers before the texture manager, as they have references to textures.
     1286    m_contentsTextureManager->unprotectAllTextures();
     1287    m_contentsTextureManager->reduceMemoryToLimit(0);
     1288    m_contentsTextureManager->deleteEvictedTextures(m_context.get());
    12861289    m_contentsTextureManager.clear();
     1290    m_renderSurfaceTextureManager->unprotectAllTextures();
     1291    m_renderSurfaceTextureManager->reduceMemoryToLimit(0);
     1292    m_renderSurfaceTextureManager->deleteEvictedTextures(m_context.get());
    12871293    m_renderSurfaceTextureManager.clear();
    12881294}
Note: See TracChangeset for help on using the changeset viewer.