mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-22 14:44:34 +00:00
Merge pull request #448 from hulakdar/multithreaded_d3d12_zones
Multithreaded d3d12 zones
This commit is contained in:
commit
165099ca87
@ -69,7 +69,7 @@ namespace tracy
|
|||||||
|
|
||||||
// In-progress payload.
|
// In-progress payload.
|
||||||
uint32_t m_queryLimit = MaxQueries;
|
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_previousQueryCounter = 0;
|
||||||
|
|
||||||
uint32_t m_activePayload = 0;
|
uint32_t m_activePayload = 0;
|
||||||
@ -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;
|
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()
|
||||||
{
|
{
|
||||||
assert(m_queryCounter < m_queryLimit && "Submitted too many GPU queries! Consider increasing MaxQueries.");
|
uint32_t queryCounter = m_queryCounter.fetch_add(2);
|
||||||
|
assert(queryCounter < m_queryLimit && "Submitted too many GPU queries! Consider increasing MaxQueries.");
|
||||||
|
|
||||||
const uint32_t id = (m_previousQueryCounter + m_queryCounter) % m_queryLimit;
|
const uint32_t id = (m_previousQueryCounter + queryCounter) % m_queryLimit;
|
||||||
m_queryCounter += 2; // Allocate space for a begin and end query.
|
|
||||||
|
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user