• James Darpinian's avatar
    GPU: Fix transfer buffers not being freed promptly · c9afd79a
    James Darpinian authored
    A previous change removed the command buffer flush when destroying a
    transfer buffer:
    https://chromium-review.googlesource.com/c/chromium/src/+/1105466
    
    If we want to free a transfer buffer promptly, we now need to flush
    separately, and we do. Unfortunately if no commands were issued between
    the call to DestroyTransferBuffer and the flush, the flush might not
    execute because the CommandBufferProxy would pass an outdated flush ID
    to GpuChannelHost::EnsureFlush. The fix is to inform the
    CommandBufferProxy about the new flush ID when it calls
    DestroyTransferBuffer.
    
    This should fix the memory regressions on the perf waterfall noted in
    bug 855402.
    
    Bug: 855402, 850271, 835353, 828363
    Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
    Change-Id: Id125c5124b26763e692c1fe8067df28761fa6dab
    Reviewed-on: https://chromium-review.googlesource.com/1121590Reviewed-by: default avatarAntoine Labour <piman@chromium.org>
    Commit-Queue: James Darpinian <jdarpinian@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#572074}
    c9afd79a
gpu_channel_host.cc 10.5 KB