1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-12 04:08:52 +01:00

[dxvk] Add type and context method to set barrier control flags

This commit is contained in:
Philip Rebohle 2019-02-06 22:28:48 +01:00
parent 915091b76b
commit 9165f8c072
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
3 changed files with 35 additions and 6 deletions

View File

@ -1739,6 +1739,11 @@ namespace dxvk {
}
void DxvkContext::setBarrierControl(DxvkBarrierControlFlags control) {
m_barrierControl = control;
}
void DxvkContext::signalEvent(const DxvkEventRevision& event) {
m_cmd->trackEvent(event);
}

View File

@ -754,6 +754,16 @@ namespace dxvk {
uint32_t attachment,
const DxvkBlendMode& blendMode);
/**
* \brief Sets barrier control flags
*
* Barrier control flags can be used to control
* implicit synchronization of compute shaders.
* \param [in] control New barrier control flags
*/
void setBarrierControl(
DxvkBarrierControlFlags control);
/**
* \brief Signals an event
* \param [in] event The event
@ -786,6 +796,7 @@ namespace dxvk {
DxvkBarrierSet m_barriers;
DxvkBarrierSet m_transitions;
DxvkBarrierControlFlags m_barrierControl;
DxvkQueryManager m_queries;

View File

@ -54,6 +54,19 @@ namespace dxvk {
using DxvkContextFlags = Flags<DxvkContextFlag>;
/**
* \brief Barrier control flags
*
* These flags specify what (not) to
* synchronize implicitly.
*/
enum class DxvkBarrierControl : uint32_t {
IgnoreWriteAfterWrite = 1,
};
using DxvkBarrierControlFlags = Flags<DxvkBarrierControl>;
struct DxvkIndirectDrawState {
DxvkBufferSlice argBuffer;
};