Commit 53e64a4b authored by Peng Huang's avatar Peng Huang Committed by Commit Bot

Fix crash in dtor of ExternalVkImageBacking

Bug: 1135112
Change-Id: I59ed3e3c52244f808a951ad0ecaa3125a5ceb2e0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2508976
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: default avatarVasiliy Telezhnikov <vasilyt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#822652}
parent fec94037
......@@ -153,6 +153,7 @@ bool UseMinimalUsageFlags(SharedContextState* context_state) {
void WaitSemaphoresOnGrContext(GrDirectContext* gr_context,
std::vector<ExternalSemaphore>* semaphores) {
DCHECK(!gr_context->abandoned());
std::vector<GrBackendSemaphore> backend_senampres;
backend_senampres.reserve(semaphores->size());
for (auto& semaphore : *semaphores) {
......@@ -377,8 +378,10 @@ ExternalVkImageBacking::~ExternalVkImageBacking() {
if (write_semaphore_)
semaphores.emplace_back(std::move(write_semaphore_));
WaitSemaphoresOnGrContext(context_state()->gr_context(), &semaphores);
ReturnPendingSemaphoresWithFenceHelper(std::move(semaphores));
if (!semaphores.empty() && !context_state()->gr_context()->abandoned()) {
WaitSemaphoresOnGrContext(context_state()->gr_context(), &semaphores);
ReturnPendingSemaphoresWithFenceHelper(std::move(semaphores));
}
fence_helper()->EnqueueVulkanObjectCleanupForSubmittedWork(std::move(image_));
backend_texture_ = GrBackendTexture();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment