Skip to content

Commit 0a2922e

Browse files
authored
Merge pull request #1597 from filipe-norte-red/wpe-2.46-improve-mem-usage
Fix BitmapTexturePool size and improve mem usage
2 parents 4c72cef + 4c6f5ee commit 0a2922e

3 files changed

Lines changed: 15 additions & 3 deletions

File tree

Source/WTF/wtf/MemoryPressureHandler.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,19 @@ void MemoryPressureHandler::setMemoryUsagePolicyBasedOnFootprints(size_t footpri
309309

310310
RELEASE_LOG(MemoryPressure, "Memory usage policy changed (PID=%d): %s -> %s", getpid(), toString(m_memoryUsagePolicy).characters(), toString(newPolicy).characters());
311311
m_memoryUsagePolicy = newPolicy;
312-
memoryPressureStatusChanged();
312+
313+
switch (m_memoryUsagePolicy) {
314+
case MemoryUsagePolicy::Unrestricted:
315+
setMemoryPressureStatus(SystemMemoryPressureStatus::Normal);
316+
break;
317+
case MemoryUsagePolicy::Conservative:
318+
setMemoryPressureStatus(SystemMemoryPressureStatus::Warning);
319+
break;
320+
case MemoryUsagePolicy::Strict:
321+
case MemoryUsagePolicy::StrictSynchronous:
322+
setMemoryPressureStatus(SystemMemoryPressureStatus::Critical);
323+
break;
324+
}
313325
}
314326

315327
void MemoryPressureHandler::setMemoryFootprintNotificationThresholds(Vector<size_t>&& thresholds, WTF::Function<void(size_t)>&& handler)

Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
namespace WebCore {
3434

3535
#if defined(BITMAP_TEXTURE_POOL_MAX_SIZE_IN_MB) && BITMAP_TEXTURE_POOL_MAX_SIZE_IN_MB > 0
36-
static constexpr size_t poolSizeLimit = BITMAP_TEXTURE_POOL_MAX_SIZE_IN_MB * MB;
36+
static constexpr size_t poolSizeLimit = BITMAP_TEXTURE_POOL_MAX_SIZE_IN_MB * MB / 4; // size limit in pixels
3737
#else
3838
static constexpr size_t poolSizeLimit = std::numeric_limits<size_t>::max();
3939
#endif

Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void TiledBackingStore::createTilesIfNeeded(const IntRect& unscaledVisibleRect,
5757
{
5858
IntRect scaledContentsRect = mapFromContents(contentsRect);
5959
IntRect visibleRect = mapFromContents(unscaledVisibleRect);
60-
float coverAreaMultiplier = MemoryPressureHandler::singleton().isUnderMemoryPressure() ? 1.0f : 2.0f;
60+
float coverAreaMultiplier = (MemoryPressureHandler::singleton().isUnderMemoryPressure() || MemoryPressureHandler::singleton().isUnderMemoryWarning()) ? 1.0f : 2.0f;
6161

6262
bool didChange = m_trajectoryVector != m_pendingTrajectoryVector || m_visibleRect != visibleRect || m_rect != scaledContentsRect || m_coverAreaMultiplier != coverAreaMultiplier;
6363
if (didChange || m_pendingTileCreation)

0 commit comments

Comments
 (0)