vk: Properly fix dynamic state descriptors

This commit is contained in:
kd-11 2020-05-13 20:53:13 +03:00 committed by kd-11
parent ed82288c1b
commit cc723ed45c
2 changed files with 9 additions and 10 deletions

View file

@ -164,7 +164,7 @@ namespace vk
return fs_inputs; return fs_inputs;
} }
virtual void get_dynamic_state_entries(VkDynamicState* /*state_descriptors*/, VkPipelineDynamicStateCreateInfo& /*info*/) virtual void get_dynamic_state_entries(std::vector<VkDynamicState>& /*state_descriptors*/)
{} {}
virtual std::vector<VkPushConstantRange> get_push_constants() virtual std::vector<VkPushConstantRange> get_push_constants()
@ -207,15 +207,14 @@ namespace vk
shader_stages[1].module = m_fragment_shader.get_handle(); shader_stages[1].module = m_fragment_shader.get_handle();
shader_stages[1].pName = "main"; shader_stages[1].pName = "main";
std::vector<VkDynamicState> dynamic_state_descriptors; std::vector<VkDynamicState> dynamic_state_descriptors;
VkPipelineDynamicStateCreateInfo dynamic_state_info = {};
dynamic_state_info.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_VIEWPORT); dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_VIEWPORT);
dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_SCISSOR); dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_SCISSOR);
dynamic_state_info.dynamicStateCount = ::size32(dynamic_state_descriptors); get_dynamic_state_entries(dynamic_state_descriptors);
get_dynamic_state_entries(dynamic_state_descriptors.data(), dynamic_state_info); VkPipelineDynamicStateCreateInfo dynamic_state_info = {};
dynamic_state_info.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
dynamic_state_info.dynamicStateCount = ::size32(dynamic_state_descriptors);
dynamic_state_info.pDynamicStates = dynamic_state_descriptors.data(); dynamic_state_info.pDynamicStates = dynamic_state_descriptors.data();
VkVertexInputBindingDescription vb = { 0, 16, VK_VERTEX_INPUT_RATE_VERTEX }; VkVertexInputBindingDescription vb = { 0, 16, VK_VERTEX_INPUT_RATE_VERTEX };

View file

@ -342,9 +342,9 @@ namespace vk
{"usampler2DMS fs0"}); {"usampler2DMS fs0"});
} }
void get_dynamic_state_entries(VkDynamicState* state_descriptors, VkPipelineDynamicStateCreateInfo& info) override void get_dynamic_state_entries(std::vector<VkDynamicState>& state_descriptors) override
{ {
state_descriptors[info.dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK; state_descriptors.push_back(VK_DYNAMIC_STATE_STENCIL_WRITE_MASK);
} }
void emit_geometry(vk::command_buffer& cmd) override void emit_geometry(vk::command_buffer& cmd) override
@ -407,9 +407,9 @@ namespace vk
{ "usampler2D fs0" }); { "usampler2D fs0" });
} }
void get_dynamic_state_entries(VkDynamicState* state_descriptors, VkPipelineDynamicStateCreateInfo& info) override void get_dynamic_state_entries(std::vector<VkDynamicState>& state_descriptors) override
{ {
state_descriptors[info.dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK; state_descriptors.push_back(VK_DYNAMIC_STATE_STENCIL_WRITE_MASK);
} }
void emit_geometry(vk::command_buffer& cmd) override void emit_geometry(vk::command_buffer& cmd) override