Commit 6db34424 authored by Michael Spang's avatar Michael Spang Committed by Commit Bot

ozone: demo: Fix DCHECK failure in VulkanRenderer::RenderFrame

The ScopedWrite needs to go out of scope before we submit the frame,
or else the write semaphore won't be updated in time:

[0124/175716.432747:FATAL:vulkan_swap_chain.cc(67)] Check failed: end_write_semaphore_ != VK_NULL_HANDLE.
#0 0x7f62ba27c8f9 base::debug::CollectStackTrace()
#1 0x7f62ba1584f3 base::debug::StackTrace::StackTrace()
#2 0x7f62ba17af34 logging::LogMessage::~LogMessage()
#3 0x7f62b9673e70 gpu::VulkanSwapChain::PresentBuffer()
#4 0x55bb17a7c04a ui::VulkanRenderer::RenderFrame()
#5 0x55bb17a731b4 base::internal::Invoker<>::RunOnce()
#6 0x7f62ba1e8e42 base::TaskAnnotator::RunTask()
#7 0x7f62ba206614 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl()
#8 0x7f62ba2062ee base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork()
#9 0x7f62ba2b7c94 base::MessagePumpLibevent::Run()
#10 0x7f62ba207027 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run()
#11 0x7f62ba1c21f7 base::RunLoop::Run()
#12 0x55bb17a735a9 main
#13 0x7f62b8e1352b __libc_start_main
#14 0x55bb17a71a6a _start

Change-Id: I4976010be79696826dd47eeff5cd2bb812ef9a6c

Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2020619Reviewed-by: default avatarDaniel Nicoara <dnicoara@chromium.org>
Reviewed-by: default avatarPeng Huang <penghuang@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#736560}
parent d021ddba
......@@ -222,9 +222,10 @@ void VulkanRenderer::RenderFrame() {
/* .color = */ {/* .float32 = */ {.5f, 1.f - NextFraction(), .5f, 1.f}}};
gpu::VulkanSwapChain* vulkan_swap_chain = vulkan_surface_->swap_chain();
gpu::VulkanSwapChain::ScopedWrite scoped_write(vulkan_swap_chain);
const uint32_t image = scoped_write.image_index();
{
gpu::VulkanSwapChain::ScopedWrite scoped_write(vulkan_swap_chain);
const uint32_t image = scoped_write.image_index();
auto& framebuffer = framebuffers_[image];
if (!framebuffer) {
framebuffer = Framebuffer::Create(
......
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