mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-01-31 14:52:11 +01:00
[dxvk] Introduce HasStorageDescriptors to signify pipeline side effects
This commit is contained in:
parent
c5676d3108
commit
baf81473a6
@ -4356,9 +4356,7 @@ namespace dxvk {
|
|||||||
if (m_flags.test(DxvkContextFlag::DirtyDrawBuffer) && Indirect)
|
if (m_flags.test(DxvkContextFlag::DirtyDrawBuffer) && Indirect)
|
||||||
this->trackDrawBuffer();
|
this->trackDrawBuffer();
|
||||||
|
|
||||||
if (m_state.gp.flags.any(
|
if (m_state.gp.flags.test(DxvkGraphicsPipelineFlag::HasStorageDescriptors))
|
||||||
DxvkGraphicsPipelineFlag::HasFsStorageDescriptors,
|
|
||||||
DxvkGraphicsPipelineFlag::HasVsStorageDescriptors))
|
|
||||||
this->commitGraphicsPostBarriers();
|
this->commitGraphicsPostBarriers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,13 +32,8 @@ namespace dxvk {
|
|||||||
if (m_shaders.gs != nullptr && m_shaders.gs->hasCapability(spv::CapabilityTransformFeedback))
|
if (m_shaders.gs != nullptr && m_shaders.gs->hasCapability(spv::CapabilityTransformFeedback))
|
||||||
m_flags.set(DxvkGraphicsPipelineFlag::HasTransformFeedback);
|
m_flags.set(DxvkGraphicsPipelineFlag::HasTransformFeedback);
|
||||||
|
|
||||||
VkShaderStageFlags stoStages = m_layout->getStorageDescriptorStages();
|
if (m_layout->getStorageDescriptorStages())
|
||||||
|
m_flags.set(DxvkGraphicsPipelineFlag::HasStorageDescriptors);
|
||||||
if (stoStages & VK_SHADER_STAGE_FRAGMENT_BIT)
|
|
||||||
m_flags.set(DxvkGraphicsPipelineFlag::HasFsStorageDescriptors);
|
|
||||||
|
|
||||||
if (stoStages & ~VK_SHADER_STAGE_FRAGMENT_BIT)
|
|
||||||
m_flags.set(DxvkGraphicsPipelineFlag::HasVsStorageDescriptors);
|
|
||||||
|
|
||||||
m_common.msSampleShadingEnable = m_shaders.fs != nullptr && m_shaders.fs->hasCapability(spv::CapabilitySampleRateShading);
|
m_common.msSampleShadingEnable = m_shaders.fs != nullptr && m_shaders.fs->hasCapability(spv::CapabilitySampleRateShading);
|
||||||
m_common.msSampleShadingFactor = 1.0f;
|
m_common.msSampleShadingFactor = 1.0f;
|
||||||
|
@ -22,8 +22,7 @@ namespace dxvk {
|
|||||||
*/
|
*/
|
||||||
enum class DxvkGraphicsPipelineFlag {
|
enum class DxvkGraphicsPipelineFlag {
|
||||||
HasTransformFeedback,
|
HasTransformFeedback,
|
||||||
HasFsStorageDescriptors,
|
HasStorageDescriptors,
|
||||||
HasVsStorageDescriptors,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
using DxvkGraphicsPipelineFlags = Flags<DxvkGraphicsPipelineFlag>;
|
using DxvkGraphicsPipelineFlags = Flags<DxvkGraphicsPipelineFlag>;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user