• Peng Huang's avatar
    Reland "ExternalVkImageBacking: fix concurrent read problem" · a5459a92
    Peng Huang authored
    This is a reland of 0c9696bf
    
    Original change's description:
    > ExternalVkImageBacking: fix concurrent read problem
    > 
    > Concurrent read access from both GL and Vulkan is not allowed.
    > Get rid of the concurrent read problem by releasing the texture
    > from GL temporarily, when a Vulkan read is requested. And resume
    > GL read access, when the Vulkan read access is over.
    > Current chrome GL and Vulkan concurrent read pattern is - Blink holds
    > and caches read access for a backing shared image for a WebGL or
    > 2D canvas. SkiaOutputSurfaceImplOnGpu only requests read access just
    > before playing back DDL and releases the read access after playing back
    > DDL and before SwapBuffers. The GPU will not schedule other tasks
    > between playing back DDL and SwapBuffers. So it should be safe to
    > temporarily pause GL read access.
    > 
    > Bug: 1104231
    > Change-Id: I729eeebd5196bc5387ac148133b5926358bb4b53
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2311330
    > Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
    > Commit-Queue: Peng Huang <penghuang@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#791022}
    
    Bug: 1104231
    Change-Id: Ia916f250ca30b3c2b8a07016d2530fad79385aa9
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2316399Reviewed-by: default avatarVasiliy Telezhnikov <vasilyt@chromium.org>
    Commit-Queue: Peng Huang <penghuang@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#791520}
    a5459a92
external_vk_image_backing.cc 42 KB