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:
parent
915091b76b
commit
9165f8c072
@ -1737,6 +1737,11 @@ namespace dxvk {
|
|||||||
|
|
||||||
m_flags.set(DxvkContextFlag::GpDirtyPipelineState);
|
m_flags.set(DxvkContextFlag::GpDirtyPipelineState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DxvkContext::setBarrierControl(DxvkBarrierControlFlags control) {
|
||||||
|
m_barrierControl = control;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void DxvkContext::signalEvent(const DxvkEventRevision& event) {
|
void DxvkContext::signalEvent(const DxvkEventRevision& event) {
|
||||||
|
@ -754,6 +754,16 @@ namespace dxvk {
|
|||||||
uint32_t attachment,
|
uint32_t attachment,
|
||||||
const DxvkBlendMode& blendMode);
|
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
|
* \brief Signals an event
|
||||||
* \param [in] event The event
|
* \param [in] event The event
|
||||||
@ -781,14 +791,15 @@ namespace dxvk {
|
|||||||
Rc<DxvkCommandList> m_cmd;
|
Rc<DxvkCommandList> m_cmd;
|
||||||
Rc<DxvkDescriptorPool> m_descPool;
|
Rc<DxvkDescriptorPool> m_descPool;
|
||||||
|
|
||||||
DxvkContextFlags m_flags;
|
DxvkContextFlags m_flags;
|
||||||
DxvkContextState m_state;
|
DxvkContextState m_state;
|
||||||
|
|
||||||
DxvkBarrierSet m_barriers;
|
DxvkBarrierSet m_barriers;
|
||||||
DxvkBarrierSet m_transitions;
|
DxvkBarrierSet m_transitions;
|
||||||
|
DxvkBarrierControlFlags m_barrierControl;
|
||||||
DxvkQueryManager m_queries;
|
|
||||||
|
|
||||||
|
DxvkQueryManager m_queries;
|
||||||
|
|
||||||
VkPipeline m_gpActivePipeline = VK_NULL_HANDLE;
|
VkPipeline m_gpActivePipeline = VK_NULL_HANDLE;
|
||||||
VkPipeline m_cpActivePipeline = VK_NULL_HANDLE;
|
VkPipeline m_cpActivePipeline = VK_NULL_HANDLE;
|
||||||
|
|
||||||
|
@ -54,6 +54,19 @@ namespace dxvk {
|
|||||||
using DxvkContextFlags = Flags<DxvkContextFlag>;
|
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 {
|
struct DxvkIndirectDrawState {
|
||||||
DxvkBufferSlice argBuffer;
|
DxvkBufferSlice argBuffer;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user