Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit f1b2c4b

Browse files
null77Commit Bot
authored andcommitted
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/+/2037786 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
1 parent 25b7b84 commit f1b2c4b

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

src/libANGLE/renderer/vulkan/ContextVk.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3953,6 +3953,7 @@ void RenderPassCommandBuffer::beginRenderPass(const vk::Framebuffer &framebuffer
39533953
*commandBufferOut = &mCommandBuffer;
39543954

39553955
mRenderPassStarted = true;
3956+
mCounter++;
39563957
}
39573958

39583959
angle::Result RenderPassCommandBuffer::flushToPrimary(ContextVk *contextVk,

src/libANGLE/renderer/vulkan/OverlayVk.cpp

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,21 @@ angle::Result OverlayVk::createFont(ContextVk *contextVk)
121121

122122
// Copy font data from staging buffer.
123123
vk::CommandBuffer *fontDataUpload;
124-
ANGLE_TRY(mFontImage.recordCommands(contextVk, &fontDataUpload));
125-
126-
fontDataBuffer.get().onRead(contextVk, &mFontImage, VK_ACCESS_TRANSFER_READ_BIT);
124+
if (contextVk->commandGraphEnabled())
125+
{
126+
ANGLE_TRY(mFontImage.recordCommands(contextVk, &fontDataUpload));
127127

128-
mFontImage.changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::TransferDst,
129-
fontDataUpload);
128+
fontDataBuffer.get().onRead(contextVk, &mFontImage, VK_ACCESS_TRANSFER_READ_BIT);
129+
mFontImage.changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::TransferDst,
130+
fontDataUpload);
131+
}
132+
else
133+
{
134+
ANGLE_TRY(contextVk->onBufferRead(VK_ACCESS_TRANSFER_READ_BIT, &fontDataBuffer.get()));
135+
ANGLE_TRY(contextVk->onImageWrite(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::TransferDst,
136+
&mFontImage));
137+
ANGLE_TRY(contextVk->getOutsideRenderPassCommandBuffer(&fontDataUpload));
138+
}
130139

131140
VkBufferImageCopy copy = {};
132141
copy.bufferRowLength = gl::overlay::kFontImageWidth;
@@ -141,8 +150,11 @@ angle::Result OverlayVk::createFont(ContextVk *contextVk)
141150
mFontImage.getImage(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
142151
1, &copy);
143152

144-
mFontImage.changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::ComputeShaderReadOnly,
145-
fontDataUpload);
153+
if (contextVk->commandGraphEnabled())
154+
{
155+
mFontImage.changeLayout(VK_IMAGE_ASPECT_COLOR_BIT, vk::ImageLayout::ComputeShaderReadOnly,
156+
fontDataUpload);
157+
}
146158

147159
return angle::Result::Continue;
148160
}

0 commit comments

Comments
 (0)