1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Revert "Use SPSC queue for frame images."

This reverts commit 02e76faff7.

Let's not limit frame image reporting to just one thread.
This commit is contained in:
Bartosz Taudul
2021-10-20 23:18:03 +02:00
parent ebb64540bb
commit 6d490ffd28
2 changed files with 61 additions and 28 deletions
+11 -9
View File
@@ -8,7 +8,6 @@
#include <time.h>
#include "tracy_concurrentqueue.h"
#include "tracy_readerwriterqueue.h"
#include "TracyCallstack.hpp"
#include "TracySysTime.hpp"
#include "TracyFastVector.hpp"
@@ -243,13 +242,15 @@ public:
auto ptr = (char*)tracy_malloc( sz );
memcpy( ptr, image, sz );
profiler.m_fiQueue.emplace( FrameImageQueueItem {
ptr,
uint32_t( profiler.m_frameCount.load( std::memory_order_relaxed ) - offset ),
w,
h,
flip
} );
profiler.m_fiLock.lock();
auto fi = profiler.m_fiQueue.prepare_next();
fi->image = ptr;
fi->frame = uint32_t( profiler.m_frameCount.load( std::memory_order_relaxed ) - offset );
fi->w = w;
fi->h = h;
fi->flip = flip;
profiler.m_fiQueue.commit_next();
profiler.m_fiLock.unlock();
#endif
}
@@ -808,7 +809,8 @@ private:
TracyMutex m_serialLock;
#ifndef TRACY_NO_FRAME_IMAGE
ReaderWriterQueue<FrameImageQueueItem> m_fiQueue;
FastVector<FrameImageQueueItem> m_fiQueue, m_fiDequeue;
TracyMutex m_fiLock;
#endif
std::atomic<uint64_t> m_frameCount;