Commit f1b2c4be by Jamie Madill Committed by Commit Bot

Vulkan: Fix overlay with command graph disabled.

Also fixes the missing RenderPass count in the new command recorder. Bug: angleproject:4029 Change-Id: If7f0cf9e80ef815781ad2684ad1d93a3ed4912ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2037786Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarTobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 25b7b846
...@@ -3953,6 +3953,7 @@ void RenderPassCommandBuffer::beginRenderPass(const vk::Framebuffer &framebuffer ...@@ -3953,6 +3953,7 @@ void RenderPassCommandBuffer::beginRenderPass(const vk::Framebuffer &framebuffer
*commandBufferOut = &mCommandBuffer; *commandBufferOut = &mCommandBuffer;
mRenderPassStarted = true; mRenderPassStarted = true;
mCounter++;
} }
angle::Result RenderPassCommandBuffer::flushToPrimary(ContextVk *contextVk, angle::Result RenderPassCommandBuffer::flushToPrimary(ContextVk *contextVk,
......
...@@ -121,12 +121,21 @@ angle::Result OverlayVk::createFont(ContextVk *contextVk) ...@@ -121,12 +121,21 @@ angle::Result OverlayVk::createFont(ContextVk *contextVk)
// Copy font data from staging buffer. // Copy font data from staging buffer.
vk::CommandBuffer *fontDataUpload; vk::CommandBuffer *fontDataUpload;
ANGLE_TRY(mFontImage.recordCommands(contextVk, &fontDataUpload)); if (contextVk->commandGraphEnabled())
{
fontDataBuffer.get().onRead(contextVk, &mFontImage, VK_ACCESS_TRANSFER_READ_BIT); ANGLE_TRY(mFontImage.recordCommands(contextVk, &fontDataUpload));
mFontImage.changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::TransferDst, fontDataBuffer.get().onRead(contextVk, &mFontImage, VK_ACCESS_TRANSFER_READ_BIT);
fontDataUpload); mFontImage.changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::TransferDst,
fontDataUpload);
}
else
{
ANGLE_TRY(contextVk->onBufferRead(VK_ACCESS_TRANSFER_READ_BIT, &fontDataBuffer.get()));
ANGLE_TRY(contextVk->onImageWrite(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::TransferDst,
&mFontImage));
ANGLE_TRY(contextVk->getOutsideRenderPassCommandBuffer(&fontDataUpload));
}
VkBufferImageCopy copy = {}; VkBufferImageCopy copy = {};
copy.bufferRowLength = gl::overlay::kFontImageWidth; copy.bufferRowLength = gl::overlay::kFontImageWidth;
...@@ -141,8 +150,11 @@ angle::Result OverlayVk::createFont(ContextVk *contextVk) ...@@ -141,8 +150,11 @@ angle::Result OverlayVk::createFont(ContextVk *contextVk)
mFontImage.getImage(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, mFontImage.getImage(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
1, &copy); 1, &copy);
mFontImage.changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::ComputeShaderReadOnly, if (contextVk->commandGraphEnabled())
fontDataUpload); {
mFontImage.changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::ComputeShaderReadOnly,
fontDataUpload);
}
return angle::Result::Continue; return angle::Result::Continue;
} }
......
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