Commit fb34c93d by Jamie Madill Committed by Commit Bot

Perf Tests: Add mutex around trace events.

This prevents a race where two threads try to write events simultaneously. Bug: b/172704839 Change-Id: Idd2f3b1c2a393488ea2270b91d579dc8630e59d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2533496 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
parent 3f98564e
...@@ -93,6 +93,8 @@ angle::TraceEventHandle AddPerfTraceEvent(angle::PlatformMethods *platform, ...@@ -93,6 +93,8 @@ angle::TraceEventHandle AddPerfTraceEvent(angle::PlatformMethods *platform,
ANGLERenderTest *renderTest = static_cast<ANGLERenderTest *>(platform->context); ANGLERenderTest *renderTest = static_cast<ANGLERenderTest *>(platform->context);
std::lock_guard<std::mutex> lock(renderTest->getTraceEventMutex());
uint32_t tid = renderTest->getCurrentThreadSerial(); uint32_t tid = renderTest->getCurrentThreadSerial();
std::vector<TraceEvent> &buffer = renderTest->getTraceEventBuffer(); std::vector<TraceEvent> &buffer = renderTest->getTraceEventBuffer();
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include <gtest/gtest.h> #include <gtest/gtest.h>
#include <mutex>
#include <string> #include <string>
#include <thread> #include <thread>
#include <unordered_map> #include <unordered_map>
...@@ -171,6 +172,7 @@ class ANGLERenderTest : public ANGLEPerfTest ...@@ -171,6 +172,7 @@ class ANGLERenderTest : public ANGLEPerfTest
void onErrorMessage(const char *errorMessage); void onErrorMessage(const char *errorMessage);
uint32_t getCurrentThreadSerial(); uint32_t getCurrentThreadSerial();
std::mutex &getTraceEventMutex() { return mTraceEventMutex; }
protected: protected:
const RenderTestParams &mTestParams; const RenderTestParams &mTestParams;
...@@ -224,6 +226,7 @@ class ANGLERenderTest : public ANGLEPerfTest ...@@ -224,6 +226,7 @@ class ANGLERenderTest : public ANGLEPerfTest
std::unique_ptr<angle::Library> mEntryPointsLib; std::unique_ptr<angle::Library> mEntryPointsLib;
std::vector<std::thread::id> mThreadIDs; std::vector<std::thread::id> mThreadIDs;
std::mutex mTraceEventMutex;
}; };
// Mixins. // Mixins.
......
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