1
0
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:
Philip Rebohle 2018-11-17 01:15:22 +01:00
parent aea4162198
commit 85f0fe729c
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
6 changed files with 72 additions and 81 deletions

View File

@ -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"

View File

@ -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();
}
} }

View File

@ -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;
};
} }

View File

@ -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();
}
}

View File

@ -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;
};
}

View File

@ -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',