A bit more consistent usage of atomic

This commit is contained in:
hulakdar 2022-08-26 13:25:58 +03:00
parent 391cb4242e
commit e35db2657b

View File

@ -179,9 +179,9 @@ namespace tracy
void NewFrame() void NewFrame()
{ {
m_payloadQueue.emplace(D3D12QueryPayload{ m_previousQueryCounter, m_queryCounter }); uint32_t queryCounter = m_queryCounter.exchange(0);
m_previousQueryCounter += m_queryCounter.load(std::memory_order::memory_order_acquire); m_payloadQueue.emplace(D3D12QueryPayload{ m_previousQueryCounter, queryCounter });
m_queryCounter = 0; m_previousQueryCounter += queryCounter;
if (m_previousQueryCounter >= m_queryLimit) if (m_previousQueryCounter >= m_queryLimit)
{ {
@ -297,10 +297,10 @@ namespace tracy
private: private:
tracy_force_inline uint32_t NextQueryId() tracy_force_inline uint32_t NextQueryId()
{ {
uint32_t localQueryCounter = m_queryCounter.fetch_add(2); uint32_t queryCounter = m_queryCounter.fetch_add(2);
assert(localQueryCounter < m_queryLimit && "Submitted too many GPU queries! Consider increasing MaxQueries."); assert(queryCounter < m_queryLimit && "Submitted too many GPU queries! Consider increasing MaxQueries.");
const uint32_t id = (m_previousQueryCounter + localQueryCounter) % m_queryLimit; const uint32_t id = (m_previousQueryCounter + queryCounter) % m_queryLimit;
return id; return id;
} }