From 5ad212d279545c63dce6f45b1e98fbd4825cc431 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Wed, 24 Apr 2019 22:32:54 +0200 Subject: [PATCH] [dxvk] Introduce new pipeline state to enable depth bounds test --- src/dxvk/dxvk_graphics.cpp | 5 ++++- src/dxvk/dxvk_graphics.h | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/dxvk/dxvk_graphics.cpp b/src/dxvk/dxvk_graphics.cpp index 4d60b1fe..e177737a 100644 --- a/src/dxvk/dxvk_graphics.cpp +++ b/src/dxvk/dxvk_graphics.cpp @@ -163,7 +163,7 @@ namespace dxvk { DxvkRenderPassFormat passFormat = renderPass.format(); // Set up dynamic states as needed - std::array dynamicStates; + std::array dynamicStates; uint32_t dynamicStateCount = 0; dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_VIEWPORT; @@ -172,6 +172,9 @@ namespace dxvk { if (state.useDynamicDepthBias()) dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BIAS; + if (state.useDynamicDepthBounds()) + dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BOUNDS; + if (state.useDynamicBlendConstants()) dynamicStates[dynamicStateCount++] = VK_DYNAMIC_STATE_BLEND_CONSTANTS; diff --git a/src/dxvk/dxvk_graphics.h b/src/dxvk/dxvk_graphics.h index a1f68cc6..fcb82f84 100644 --- a/src/dxvk/dxvk_graphics.h +++ b/src/dxvk/dxvk_graphics.h @@ -55,6 +55,10 @@ namespace dxvk { return rsDepthBiasEnable; } + bool useDynamicDepthBounds() const { + return dsEnableDepthBoundsTest; + } + bool useDynamicBlendConstants() const { bool result = false; @@ -97,6 +101,7 @@ namespace dxvk { VkBool32 dsEnableDepthTest; VkBool32 dsEnableDepthWrite; + VkBool32 dsEnableDepthBoundsTest; VkBool32 dsEnableStencilTest; VkCompareOp dsDepthCompareOp; VkStencilOpState dsStencilOpFront;