From 7e975bbdfc0eacec88cb203593a21ac44957cd95 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 17 Jan 2019 22:26:27 +0100 Subject: [PATCH] [dxvk] Move blend constants and stencil ref state to DxvkDynamicState For consistency with how depth bias is being stored. --- src/dxvk/dxvk_context.cpp | 12 ++++++------ src/dxvk/dxvk_context_state.h | 7 +++---- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index 63546e245..c6aefbb8c 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -1593,8 +1593,8 @@ namespace dxvk { void DxvkContext::setBlendConstants( DxvkBlendConstants blendConstants) { - if (m_state.om.blendConstants != blendConstants) { - m_state.om.blendConstants = blendConstants; + if (m_state.dyn.blendConstants != blendConstants) { + m_state.dyn.blendConstants = blendConstants; m_flags.set(DxvkContextFlag::GpDirtyBlendConstants); } } @@ -1611,8 +1611,8 @@ namespace dxvk { void DxvkContext::setStencilReference( uint32_t reference) { - if (m_state.om.stencilReference != reference) { - m_state.om.stencilReference = reference; + if (m_state.dyn.stencilReference != reference) { + m_state.dyn.stencilReference = reference; m_flags.set(DxvkContextFlag::GpDirtyStencilRef); } } @@ -3039,7 +3039,7 @@ namespace dxvk { if (m_flags.all(DxvkContextFlag::GpDirtyBlendConstants, DxvkContextFlag::GpDynamicBlendConstants)) { m_flags.clr(DxvkContextFlag::GpDirtyBlendConstants); - m_cmd->cmdSetBlendConstants(&m_state.om.blendConstants.r); + m_cmd->cmdSetBlendConstants(&m_state.dyn.blendConstants.r); } if (m_flags.all(DxvkContextFlag::GpDirtyStencilRef, @@ -3048,7 +3048,7 @@ namespace dxvk { m_cmd->cmdSetStencilReference( VK_STENCIL_FRONT_AND_BACK, - m_state.om.stencilReference); + m_state.dyn.stencilReference); } if (m_flags.all(DxvkContextFlag::GpDirtyDepthBias, diff --git a/src/dxvk/dxvk_context_state.h b/src/dxvk/dxvk_context_state.h index ab548ec52..22a4ad06f 100644 --- a/src/dxvk/dxvk_context_state.h +++ b/src/dxvk/dxvk_context_state.h @@ -81,9 +81,6 @@ namespace dxvk { DxvkRenderTargets renderTargets; DxvkRenderPassOps renderPassOps; Rc framebuffer = nullptr; - - DxvkBlendConstants blendConstants = { 0.0f, 0.0f, 0.0f, 0.0f }; - uint32_t stencilReference = 0; }; @@ -120,7 +117,9 @@ namespace dxvk { struct DxvkDynamicState { - DxvkDepthBias depthBias = { 0.0f, 0.0f, 0.0f }; + DxvkBlendConstants blendConstants = { 0.0f, 0.0f, 0.0f, 0.0f }; + DxvkDepthBias depthBias = { 0.0f, 0.0f, 0.0f }; + uint32_t stencilReference = 0; };