diff --git a/rpcs3/Emu/RSX/VK/VKOverlays.h b/rpcs3/Emu/RSX/VK/VKOverlays.h index 72534f3690..c9b18b2fef 100644 --- a/rpcs3/Emu/RSX/VK/VKOverlays.h +++ b/rpcs3/Emu/RSX/VK/VKOverlays.h @@ -207,14 +207,16 @@ namespace vk shader_stages[1].module = m_fragment_shader.get_handle(); shader_stages[1].pName = "main"; - VkDynamicState dynamic_state_descriptors[VK_DYNAMIC_STATE_RANGE_SIZE] = {}; + + std::vector dynamic_state_descriptors; VkPipelineDynamicStateCreateInfo dynamic_state_info = {}; dynamic_state_info.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO; - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_VIEWPORT; - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_SCISSOR; + dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_VIEWPORT); + dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_SCISSOR); + dynamic_state_info.dynamicStateCount = ::size32(dynamic_state_descriptors); - get_dynamic_state_entries(dynamic_state_descriptors, dynamic_state_info); - dynamic_state_info.pDynamicStates = dynamic_state_descriptors; + get_dynamic_state_entries(dynamic_state_descriptors.data(), dynamic_state_info); + dynamic_state_info.pDynamicStates = dynamic_state_descriptors.data(); VkVertexInputBindingDescription vb = { 0, 16, VK_VERTEX_INPUT_RATE_VERTEX }; VkVertexInputAttributeDescription via = { 0, 0, VK_FORMAT_R32G32B32A32_SFLOAT, 0 }; diff --git a/rpcs3/Emu/RSX/VK/VKShaderInterpreter.cpp b/rpcs3/Emu/RSX/VK/VKShaderInterpreter.cpp index a97ff34018..14d1502142 100644 --- a/rpcs3/Emu/RSX/VK/VKShaderInterpreter.cpp +++ b/rpcs3/Emu/RSX/VK/VKShaderInterpreter.cpp @@ -433,24 +433,25 @@ namespace vk shader_stages[1].module = fs->get_handle(); shader_stages[1].pName = "main"; - VkDynamicState dynamic_state_descriptors[VK_DYNAMIC_STATE_RANGE_SIZE] = {}; - VkPipelineDynamicStateCreateInfo dynamic_state_info = {}; - dynamic_state_info.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO; - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_VIEWPORT; - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_SCISSOR; - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_LINE_WIDTH; - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_BLEND_CONSTANTS; - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK; - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK; - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_REFERENCE; - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BIAS; + std::vector dynamic_state_descriptors; + 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_LINE_WIDTH); + dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_BLEND_CONSTANTS); + dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK); + dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_STENCIL_WRITE_MASK); + dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_STENCIL_REFERENCE); + dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_DEPTH_BIAS); if (vk::get_current_renderer()->get_depth_bounds_support()) { - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BOUNDS; + dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_DEPTH_BOUNDS); } - dynamic_state_info.pDynamicStates = dynamic_state_descriptors; + VkPipelineDynamicStateCreateInfo dynamic_state_info = {}; + dynamic_state_info.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO; + dynamic_state_info.pDynamicStates = dynamic_state_descriptors.data(); + dynamic_state_info.dynamicStateCount = ::size32(dynamic_state_descriptors); VkPipelineVertexInputStateCreateInfo vi = { VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO }; diff --git a/rpcs3/Emu/RSX/VK/VKTextOut.h b/rpcs3/Emu/RSX/VK/VKTextOut.h index 537e7dfe43..aa44c5d823 100644 --- a/rpcs3/Emu/RSX/VK/VKTextOut.h +++ b/rpcs3/Emu/RSX/VK/VKTextOut.h @@ -120,12 +120,13 @@ namespace vk shader_stages[1].module = m_fragment_shader.get_handle(); shader_stages[1].pName = "main"; - VkDynamicState dynamic_state_descriptors[VK_DYNAMIC_STATE_RANGE_SIZE] = {}; + std::vector dynamic_state_descriptors; VkPipelineDynamicStateCreateInfo dynamic_state_info = {}; dynamic_state_info.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO; - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_VIEWPORT; - dynamic_state_descriptors[dynamic_state_info.dynamicStateCount++] = VK_DYNAMIC_STATE_SCISSOR; - dynamic_state_info.pDynamicStates = dynamic_state_descriptors; + dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_VIEWPORT); + dynamic_state_descriptors.push_back(VK_DYNAMIC_STATE_SCISSOR); + dynamic_state_info.pDynamicStates = dynamic_state_descriptors.data(); + dynamic_state_info.dynamicStateCount = ::size32(dynamic_state_descriptors); VkVertexInputAttributeDescription vdesc; VkVertexInputBindingDescription vbind;