|
|
|
@ -816,12 +816,23 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) { |
|
|
|
.blendConstants = {} |
|
|
|
}; |
|
|
|
static_vector<VkDynamicState, 34> dynamic_states{ |
|
|
|
VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR, |
|
|
|
VK_DYNAMIC_STATE_DEPTH_BIAS, VK_DYNAMIC_STATE_BLEND_CONSTANTS, |
|
|
|
VK_DYNAMIC_STATE_DEPTH_BOUNDS, VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK, |
|
|
|
VK_DYNAMIC_STATE_STENCIL_WRITE_MASK, VK_DYNAMIC_STATE_STENCIL_REFERENCE, |
|
|
|
VK_DYNAMIC_STATE_VIEWPORT, |
|
|
|
VK_DYNAMIC_STATE_SCISSOR, |
|
|
|
VK_DYNAMIC_STATE_DEPTH_BIAS, |
|
|
|
VK_DYNAMIC_STATE_LINE_WIDTH, |
|
|
|
}; |
|
|
|
|
|
|
|
if (device.UsesAdvancedCoreDynamicState()) { |
|
|
|
static constexpr std::array core_dynamic_states{ |
|
|
|
VK_DYNAMIC_STATE_BLEND_CONSTANTS, |
|
|
|
VK_DYNAMIC_STATE_DEPTH_BOUNDS, |
|
|
|
VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK, |
|
|
|
VK_DYNAMIC_STATE_STENCIL_WRITE_MASK, |
|
|
|
VK_DYNAMIC_STATE_STENCIL_REFERENCE, |
|
|
|
}; |
|
|
|
dynamic_states.insert(dynamic_states.end(), core_dynamic_states.begin(), |
|
|
|
core_dynamic_states.end()); |
|
|
|
} |
|
|
|
if (key.state.extended_dynamic_state) { |
|
|
|
static constexpr std::array extended{ |
|
|
|
VK_DYNAMIC_STATE_CULL_MODE_EXT, |
|
|
|
|