Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/wolfpld/tracy.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
authorhulakdar <skamoza@gmail.com>2022-08-26 13:03:28 +0300
committerhulakdar <skamoza@gmail.com>2022-08-26 13:07:07 +0300
commit391cb4242e65e0547405e92e51c95d532f125252 (patch)
treee83964be3786405b8033f5114c460f0a2a0ef644 /public
parent11b11d5f512db05dba90680d548359df60ea1e82 (diff)
Fix d3d12 gpu zones for multithreaded use
Diffstat (limited to 'public')
-rw-r--r--public/tracy/TracyD3D12.hpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/public/tracy/TracyD3D12.hpp b/public/tracy/TracyD3D12.hpp
index 47d8074f..df587d1d 100644
--- a/public/tracy/TracyD3D12.hpp
+++ b/public/tracy/TracyD3D12.hpp
@@ -69,7 +69,7 @@ namespace tracy
// In-progress payload.
uint32_t m_queryLimit = MaxQueries;
- uint32_t m_queryCounter = 0;
+ std::atomic<uint32_t> m_queryCounter = 0;
uint32_t m_previousQueryCounter = 0;
uint32_t m_activePayload = 0;
@@ -180,7 +180,7 @@ namespace tracy
void NewFrame()
{
m_payloadQueue.emplace(D3D12QueryPayload{ m_previousQueryCounter, m_queryCounter });
- m_previousQueryCounter += m_queryCounter;
+ m_previousQueryCounter += m_queryCounter.load(std::memory_order::memory_order_acquire);
m_queryCounter = 0;
if (m_previousQueryCounter >= m_queryLimit)
@@ -297,10 +297,10 @@ namespace tracy
private:
tracy_force_inline uint32_t NextQueryId()
{
- assert(m_queryCounter < m_queryLimit && "Submitted too many GPU queries! Consider increasing MaxQueries.");
+ uint32_t localQueryCounter = m_queryCounter.fetch_add(2);
+ assert(localQueryCounter < m_queryLimit && "Submitted too many GPU queries! Consider increasing MaxQueries.");
- const uint32_t id = (m_previousQueryCounter + m_queryCounter) % m_queryLimit;
- m_queryCounter += 2; // Allocate space for a begin and end query.
+ const uint32_t id = (m_previousQueryCounter + localQueryCounter) % m_queryLimit;
return id;
}