1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-03 22:24:13 +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

@ -1737,6 +1737,11 @@ namespace dxvk {
m_flags.set(DxvkContextFlag::GpDirtyPipelineState);
}
void DxvkContext::setBarrierControl(DxvkBarrierControlFlags control) {
m_barrierControl = control;
}
void DxvkContext::signalEvent(const DxvkEventRevision& 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
@ -781,14 +791,15 @@ namespace dxvk {
Rc<DxvkCommandList> m_cmd;
Rc<DxvkDescriptorPool> m_descPool;
DxvkContextFlags m_flags;
DxvkContextState m_state;
DxvkContextFlags m_flags;
DxvkContextState m_state;
DxvkBarrierSet m_barriers;
DxvkBarrierSet m_transitions;
DxvkQueryManager m_queries;
DxvkBarrierSet m_barriers;
DxvkBarrierSet m_transitions;
DxvkBarrierControlFlags m_barrierControl;
DxvkQueryManager m_queries;
VkPipeline m_gpActivePipeline = VK_NULL_HANDLE;
VkPipeline m_cpActivePipeline = VK_NULL_HANDLE;

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