Commit 4a41914b by Tobin Ehlis Committed by Commit Bot

Vulkan: Add trace markers

Add systrace markers for various RendererVk::finish paths in order to quickly identify cause of finishes. Also added marker to commandPool destroy which is currently a known hotspot on some devices. Bug: angleproject:2528 Change-Id: I5a2fc741679a58445d71a2edd6204cf9e869d236 Reviewed-on: https://chromium-review.googlesource.com/c/1454277 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
parent e1a763d1
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "libANGLE/Context.h" #include "libANGLE/Context.h"
#include "libANGLE/renderer/vulkan/ContextVk.h" #include "libANGLE/renderer/vulkan/ContextVk.h"
#include "libANGLE/renderer/vulkan/RendererVk.h" #include "libANGLE/renderer/vulkan/RendererVk.h"
#include "third_party/trace_event/trace_event.h"
namespace rx namespace rx
{ {
...@@ -176,6 +177,7 @@ angle::Result BufferVk::getIndexRange(const gl::Context *context, ...@@ -176,6 +177,7 @@ angle::Result BufferVk::getIndexRange(const gl::Context *context,
return angle::Result::Continue; return angle::Result::Continue;
} }
TRACE_EVENT0("gpu.angle", "BufferVk::getIndexRange");
// Needed before reading buffer or we could get stale data. // Needed before reading buffer or we could get stale data.
ANGLE_TRY(renderer->finish(contextVk)); ANGLE_TRY(renderer->finish(contextVk));
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "libANGLE/renderer/vulkan/RendererVk.h" #include "libANGLE/renderer/vulkan/RendererVk.h"
#include "libANGLE/renderer/vulkan/SurfaceVk.h" #include "libANGLE/renderer/vulkan/SurfaceVk.h"
#include "libANGLE/renderer/vulkan/SyncVk.h" #include "libANGLE/renderer/vulkan/SyncVk.h"
#include "third_party/trace_event/trace_event.h"
namespace rx namespace rx
{ {
...@@ -81,6 +82,7 @@ DeviceImpl *DisplayVk::createDevice() ...@@ -81,6 +82,7 @@ DeviceImpl *DisplayVk::createDevice()
egl::Error DisplayVk::waitClient(const gl::Context *context) egl::Error DisplayVk::waitClient(const gl::Context *context)
{ {
TRACE_EVENT0("gpu.angle", "DisplayVk::waitClient");
return angle::ToEGL(mRenderer->finish(this), this, EGL_BAD_ACCESS); return angle::ToEGL(mRenderer->finish(this), this, EGL_BAD_ACCESS);
} }
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "libANGLE/renderer/vulkan/RendererVk.h" #include "libANGLE/renderer/vulkan/RendererVk.h"
#include "libANGLE/renderer/vulkan/SurfaceVk.h" #include "libANGLE/renderer/vulkan/SurfaceVk.h"
#include "libANGLE/renderer/vulkan/vk_format_utils.h" #include "libANGLE/renderer/vulkan/vk_format_utils.h"
#include "third_party/trace_event/trace_event.h"
namespace rx namespace rx
{ {
...@@ -1096,6 +1097,7 @@ angle::Result FramebufferVk::readPixelsImpl(ContextVk *contextVk, ...@@ -1096,6 +1097,7 @@ angle::Result FramebufferVk::readPixelsImpl(ContextVk *contextVk,
RenderTargetVk *renderTarget, RenderTargetVk *renderTarget,
void *pixels) void *pixels)
{ {
TRACE_EVENT0("gpu.angle", "FramebufferVk::readPixelsImpl");
RendererVk *renderer = contextVk->getRenderer(); RendererVk *renderer = contextVk->getRenderer();
ANGLE_TRY(renderTarget->ensureImageInitialized(contextVk)); ANGLE_TRY(renderTarget->ensureImageInitialized(contextVk));
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include "libANGLE/renderer/vulkan/vk_caps_utils.h" #include "libANGLE/renderer/vulkan/vk_caps_utils.h"
#include "libANGLE/renderer/vulkan/vk_format_utils.h" #include "libANGLE/renderer/vulkan/vk_format_utils.h"
#include "platform/Platform.h" #include "platform/Platform.h"
#include "third_party/trace_event/trace_event.h" #include "third_party/trace_event/trace_event.h"
// Consts // Consts
...@@ -1281,6 +1280,7 @@ angle::Result RendererVk::checkCompletedCommands(vk::Context *context) ...@@ -1281,6 +1280,7 @@ angle::Result RendererVk::checkCompletedCommands(vk::Context *context)
mLastCompletedQueueSerial = batch.serial; mLastCompletedQueueSerial = batch.serial;
batch.fence.destroy(mDevice); batch.fence.destroy(mDevice);
TRACE_EVENT0("gpu.angle", "commandPool.destroy");
batch.commandPool.destroy(mDevice); batch.commandPool.destroy(mDevice);
++finishedCount; ++finishedCount;
} }
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "libANGLE/renderer/vulkan/FramebufferVk.h" #include "libANGLE/renderer/vulkan/FramebufferVk.h"
#include "libANGLE/renderer/vulkan/RendererVk.h" #include "libANGLE/renderer/vulkan/RendererVk.h"
#include "libANGLE/renderer/vulkan/vk_format_utils.h" #include "libANGLE/renderer/vulkan/vk_format_utils.h"
#include "third_party/trace_event/trace_event.h"
namespace rx namespace rx
{ {
...@@ -617,6 +618,7 @@ angle::Result TextureVk::copyImageDataToBuffer(ContextVk *contextVk, ...@@ -617,6 +618,7 @@ angle::Result TextureVk::copyImageDataToBuffer(ContextVk *contextVk,
const gl::Rectangle &sourceArea, const gl::Rectangle &sourceArea,
uint8_t **outDataPtr) uint8_t **outDataPtr)
{ {
TRACE_EVENT0("gpu.angle", "TextureVk::copyImageDataToBuffer");
// Make sure the source is initialized and it's images are flushed. // Make sure the source is initialized and it's images are flushed.
ANGLE_TRY(ensureImageInitialized(contextVk)); ANGLE_TRY(ensureImageInitialized(contextVk));
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "libANGLE/renderer/vulkan/FramebufferVk.h" #include "libANGLE/renderer/vulkan/FramebufferVk.h"
#include "libANGLE/renderer/vulkan/RendererVk.h" #include "libANGLE/renderer/vulkan/RendererVk.h"
#include "libANGLE/renderer/vulkan/vk_format_utils.h" #include "libANGLE/renderer/vulkan/vk_format_utils.h"
#include "third_party/trace_event/trace_event.h"
namespace rx namespace rx
{ {
...@@ -261,6 +262,7 @@ angle::Result VertexArrayVk::convertVertexBufferCpu(ContextVk *contextVk, ...@@ -261,6 +262,7 @@ angle::Result VertexArrayVk::convertVertexBufferCpu(ContextVk *contextVk,
size_t attribIndex, size_t attribIndex,
const vk::Format &vertexFormat) const vk::Format &vertexFormat)
{ {
TRACE_EVENT0("gpu.angle", "VertexArrayVk::convertVertexBufferCpu");
// Needed before reading buffer or we could get stale data. // Needed before reading buffer or we could get stale data.
ANGLE_TRY(contextVk->getRenderer()->finish(contextVk)); ANGLE_TRY(contextVk->getRenderer()->finish(contextVk));
...@@ -660,6 +662,7 @@ angle::Result VertexArrayVk::updateIndexTranslation(ContextVk *contextVk, ...@@ -660,6 +662,7 @@ angle::Result VertexArrayVk::updateIndexTranslation(ContextVk *contextVk,
// as well support the ubyte to ushort case with correct handling of primitive restart. // as well support the ubyte to ushort case with correct handling of primitive restart.
// http://anglebug.com/3003 // http://anglebug.com/3003
TRACE_EVENT0("gpu.angle", "VertexArrayVk::updateIndexTranslation");
// Needed before reading buffer or we could get stale data. // Needed before reading buffer or we could get stale data.
ANGLE_TRY(renderer->finish(contextVk)); ANGLE_TRY(renderer->finish(contextVk));
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "libANGLE/renderer/vulkan/FramebufferVk.h" #include "libANGLE/renderer/vulkan/FramebufferVk.h"
#include "libANGLE/renderer/vulkan/RendererVk.h" #include "libANGLE/renderer/vulkan/RendererVk.h"
#include "libANGLE/renderer/vulkan/vk_utils.h" #include "libANGLE/renderer/vulkan/vk_utils.h"
#include "third_party/trace_event/trace_event.h"
namespace rx namespace rx
{ {
...@@ -949,6 +950,7 @@ angle::Result LineLoopHelper::getIndexBufferForElementArrayBuffer(ContextVk *con ...@@ -949,6 +950,7 @@ angle::Result LineLoopHelper::getIndexBufferForElementArrayBuffer(ContextVk *con
{ {
if (glIndexType == gl::DrawElementsType::UnsignedByte) if (glIndexType == gl::DrawElementsType::UnsignedByte)
{ {
TRACE_EVENT0("gpu.angle", "LineLoopHelper::getIndexBufferForElementArrayBuffer");
// Needed before reading buffer or we could get stale data. // Needed before reading buffer or we could get stale data.
ANGLE_TRY(contextVk->getRenderer()->finish(contextVk)); ANGLE_TRY(contextVk->getRenderer()->finish(contextVk));
......
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