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) { ...@@ -153,6 +153,7 @@ bool UseMinimalUsageFlags(SharedContextState* context_state) {
void WaitSemaphoresOnGrContext(GrDirectContext* gr_context, void WaitSemaphoresOnGrContext(GrDirectContext* gr_context,
std::vector<ExternalSemaphore>* semaphores) { std::vector<ExternalSemaphore>* semaphores) {
DCHECK(!gr_context->abandoned());
std::vector<GrBackendSemaphore> backend_senampres; std::vector<GrBackendSemaphore> backend_senampres;
backend_senampres.reserve(semaphores->size()); backend_senampres.reserve(semaphores->size());
for (auto& semaphore : *semaphores) { for (auto& semaphore : *semaphores) {
...@@ -377,8 +378,10 @@ ExternalVkImageBacking::~ExternalVkImageBacking() { ...@@ -377,8 +378,10 @@ ExternalVkImageBacking::~ExternalVkImageBacking() {
if (write_semaphore_) if (write_semaphore_)
semaphores.emplace_back(std::move(write_semaphore_)); semaphores.emplace_back(std::move(write_semaphore_));
WaitSemaphoresOnGrContext(context_state()->gr_context(), &semaphores); if (!semaphores.empty() && !context_state()->gr_context()->abandoned()) {
ReturnPendingSemaphoresWithFenceHelper(std::move(semaphores)); WaitSemaphoresOnGrContext(context_state()->gr_context(), &semaphores);
ReturnPendingSemaphoresWithFenceHelper(std::move(semaphores));
}
fence_helper()->EnqueueVulkanObjectCleanupForSubmittedWork(std::move(image_)); fence_helper()->EnqueueVulkanObjectCleanupForSubmittedWork(std::move(image_));
backend_texture_ = GrBackendTexture(); 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