Vulkan: Fix spammy best practices message

A GPU WRITE->HOST barrier frequently issued when the GPU outputs to a
host-visible buffer used the ALL_COMMANDS stage mask causing a best
practices message.  This message is suppressed in ANGLE, but shows up in
RenderDoc and clutters the output.

Bug: angleproject:5070
Change-Id: I59aa7f8c7b3bf2788a3f7ae0ab6abdb4d3cd175e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3265606
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
This commit is contained in:
Shahbaz Youssefi 2021-11-05 23:26:43 -04:00 коммит произвёл Angle LUCI CQ
Родитель f16d7b9cee
Коммит 79a5dc0af7
1 изменённых файлов: 14 добавлений и 1 удалений

Просмотреть файл

@ -5292,8 +5292,21 @@ angle::Result ContextVk::flushAndGetSerial(const vk::Semaphore *signalSemaphore,
memoryBarrier.srcAccessMask = VK_ACCESS_MEMORY_WRITE_BIT;
memoryBarrier.dstAccessMask = VK_ACCESS_HOST_READ_BIT | VK_ACCESS_HOST_WRITE_BIT;
const VkPipelineStageFlags supportedShaderStages =
(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT |
VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT |
VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT |
VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT |
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT) &
mRenderer->getSupportedVulkanPipelineStageMask();
const VkPipelineStageFlags bufferWriteStages =
VK_PIPELINE_STAGE_TRANSFER_BIT | supportedShaderStages |
(getFeatures().supportsTransformFeedbackExtension.enabled
? VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
: 0);
mOutsideRenderPassCommands->getCommandBuffer().memoryBarrier(
VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_HOST_BIT, &memoryBarrier);
bufferWriteStages, VK_PIPELINE_STAGE_HOST_BIT, &memoryBarrier);
mIsAnyHostVisibleBufferWritten = false;
}