mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-12 13:08:50 +01:00
[dxvk] Move DxvkEventTracker to dxvk_event.{h,cpp}
The upcoming new event and query classes will follow this design. Reduces the number of files around these small classes.
This commit is contained in:
parent
aea4162198
commit
85f0fe729c
@ -5,7 +5,7 @@
|
|||||||
#include "dxvk_bind_mask.h"
|
#include "dxvk_bind_mask.h"
|
||||||
#include "dxvk_buffer.h"
|
#include "dxvk_buffer.h"
|
||||||
#include "dxvk_descriptor.h"
|
#include "dxvk_descriptor.h"
|
||||||
#include "dxvk_event_tracker.h"
|
#include "dxvk_event.h"
|
||||||
#include "dxvk_lifetime.h"
|
#include "dxvk_lifetime.h"
|
||||||
#include "dxvk_limits.h"
|
#include "dxvk_limits.h"
|
||||||
#include "dxvk_pipelayout.h"
|
#include "dxvk_pipelayout.h"
|
||||||
|
@ -53,4 +53,32 @@ namespace dxvk {
|
|||||||
return { DxvkEventStatus(packed >> 32), uint32_t(packed) };
|
return { DxvkEventStatus(packed >> 32), uint32_t(packed) };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DxvkEventTracker::DxvkEventTracker() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DxvkEventTracker::~DxvkEventTracker() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DxvkEventTracker::trackEvent(const DxvkEventRevision& event) {
|
||||||
|
m_events.push_back(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DxvkEventTracker::signalEvents() {
|
||||||
|
for (const DxvkEventRevision& event : m_events)
|
||||||
|
event.event->signal(event.revision);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DxvkEventTracker::reset() {
|
||||||
|
m_events.clear();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <mutex>
|
#include <atomic>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#include "dxvk_include.h"
|
#include "dxvk_include.h"
|
||||||
|
|
||||||
@ -70,6 +71,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Event revision
|
* \brief Event revision
|
||||||
*
|
*
|
||||||
@ -81,4 +83,43 @@ namespace dxvk {
|
|||||||
uint32_t revision;
|
uint32_t revision;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Event tracker
|
||||||
|
*/
|
||||||
|
class DxvkEventTracker {
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
DxvkEventTracker();
|
||||||
|
~DxvkEventTracker();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Adds an event to track
|
||||||
|
* \param [in] event The event revision
|
||||||
|
*/
|
||||||
|
void trackEvent(const DxvkEventRevision& event);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Signals tracked events
|
||||||
|
*
|
||||||
|
* Retrieves query data from the query pools
|
||||||
|
* and writes it back to the query objects.
|
||||||
|
*/
|
||||||
|
void signalEvents();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Resets event tracker
|
||||||
|
*
|
||||||
|
* Releases all events from the tracker.
|
||||||
|
* Call this after signaling the events.
|
||||||
|
*/
|
||||||
|
void reset();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
std::vector<DxvkEventRevision> m_events;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
@ -1,30 +0,0 @@
|
|||||||
#include "dxvk_event_tracker.h"
|
|
||||||
|
|
||||||
namespace dxvk {
|
|
||||||
|
|
||||||
DxvkEventTracker::DxvkEventTracker() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
DxvkEventTracker::~DxvkEventTracker() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void DxvkEventTracker::trackEvent(const DxvkEventRevision& event) {
|
|
||||||
m_events.push_back(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void DxvkEventTracker::signalEvents() {
|
|
||||||
for (const DxvkEventRevision& event : m_events)
|
|
||||||
event.event->signal(event.revision);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void DxvkEventTracker::reset() {
|
|
||||||
m_events.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#include "dxvk_event.h"
|
|
||||||
|
|
||||||
namespace dxvk {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Event tracker
|
|
||||||
*/
|
|
||||||
class DxvkEventTracker {
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
DxvkEventTracker();
|
|
||||||
~DxvkEventTracker();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Adds an event to track
|
|
||||||
* \param [in] event The event revision
|
|
||||||
*/
|
|
||||||
void trackEvent(const DxvkEventRevision& event);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Signals tracked events
|
|
||||||
*
|
|
||||||
* Retrieves query data from the query pools
|
|
||||||
* and writes it back to the query objects.
|
|
||||||
*/
|
|
||||||
void signalEvents();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Resets event tracker
|
|
||||||
*
|
|
||||||
* Releases all events from the tracker.
|
|
||||||
* Call this after signaling the events.
|
|
||||||
*/
|
|
||||||
void reset();
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
std::vector<DxvkEventRevision> m_events;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
@ -54,7 +54,6 @@ dxvk_src = files([
|
|||||||
'dxvk_device_filter.cpp',
|
'dxvk_device_filter.cpp',
|
||||||
'dxvk_extensions.cpp',
|
'dxvk_extensions.cpp',
|
||||||
'dxvk_event.cpp',
|
'dxvk_event.cpp',
|
||||||
'dxvk_event_tracker.cpp',
|
|
||||||
'dxvk_format.cpp',
|
'dxvk_format.cpp',
|
||||||
'dxvk_framebuffer.cpp',
|
'dxvk_framebuffer.cpp',
|
||||||
'dxvk_graphics.cpp',
|
'dxvk_graphics.cpp',
|
||||||
|
Loading…
Reference in New Issue
Block a user