v156: Bug 14451 - Rename dynamic state objects
diff --git a/demos/CMakeLists.txt~ b/demos/CMakeLists.txt~
new file mode 100644
index 0000000..803bef3
--- /dev/null
+++ b/demos/CMakeLists.txt~
@@ -0,0 +1,117 @@
+if(NOT WIN32)
+    find_package(XCB REQUIRED)
+endif()
+
+if(NOT WIN32)
+    if(NOT EXISTS /usr/include/glm/glm.hpp)
+        message(FATAL_ERROR "Necessary libglm-dev headers cannot be found: sudo apt-get install libglm-dev")
+    endif()
+    if(NOT EXISTS /usr/include/png.h)
+        message(FATAL_ERROR "Necessary png12-dev headers cannot be found: sudo apt-get install libpng12-dev")
+    endif()
+endif()
+
+file(GLOB TEXTURES
+  "${PROJECT_SOURCE_DIR}/demos/*.png"
+  )
+file(COPY ${TEXTURES} DESTINATION ${CMAKE_BINARY_DIR}/demos)
+
+set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVK_PROTOTYPES")
+set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_PROTOTYPES")
+
+set (LIBRARIES "vulkan")
+
+if(WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug")
+    set(GLSLANG_BUILD ${GLSLANG_PREFIX}/dbuild)
+else()
+    set(GLSLANG_BUILD ${GLSLANG_PREFIX}/build)
+endif()
+
+if(NOT EXISTS ${GLSLANG_BUILD}/install/lib)
+    message(FATAL_ERROR "Necessary glslang libraries cannot be found: " ${GLSLANG_BUILD}/install/lib)
+endif()
+
+if(WIN32)
+    add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-vert.spv
+       COMMAND ${GLSLANG_BUILD}/install/bin/glslangValidator -s -V ${PROJECT_SOURCE_DIR}/demos/cube.vert
+       COMMAND move vert.spv ${CMAKE_BINARY_DIR}/demos/cube-vert.spv
+       DEPENDS cube.vert ${GLSLANG_BUILD}/install/bin/glslangValidator
+       )
+    add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-frag.spv
+       COMMAND ${GLSLANG_BUILD}/install/bin/glslangValidator -s -V ${PROJECT_SOURCE_DIR}/demos/cube.frag
+       COMMAND move frag.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv
+       DEPENDS cube.frag ${GLSLANG_BUILD}/install/bin/glslangValidator
+       )
+endif()
+if(NOT WIN32)
+    add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-vert.spv
+       COMMAND ${GLSLANG_BUILD}/install/bin/glslangValidator -s -V ${PROJECT_SOURCE_DIR}/demos/cube.vert
+       COMMAND mv vert.spv ${CMAKE_BINARY_DIR}/demos/cube-vert.spv
+       DEPENDS cube.vert ${GLSLANG_BUILD}/install/bin/glslangValidator
+       )
+
+    add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-frag.spv
+       COMMAND ${GLSLANG_BUILD}/install/bin/glslangValidator -s -V ${PROJECT_SOURCE_DIR}/demos/cube.frag
+       COMMAND mv frag.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv
+       DEPENDS cube.frag ${GLSLANG_BUILD}/install/bin/glslangValidator
+       )
+endif()
+
+if(NOT WIN32)
+    include_directories (
+       ${XCB_INCLUDE_DIRS}
+       "${PROJECT_SOURCE_DIR}/icd/common"
+       )
+
+    link_libraries(${XCB_LIBRARIES} vulkan png m)
+endif()
+if(WIN32)
+    include_directories (
+       "${PROJECT_SOURCE_DIR}/icd/common"
+       "${PROJECT_SOURCE_DIR}/libs/libpng"
+       "${PROJECT_SOURCE_DIR}/libs/zlib"
+       )
+
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES")
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES")
+endif()
+
+if(UNIX)
+    add_executable(vulkaninfo vulkaninfo.c)
+else()
+    add_executable(vulkaninfo WIN32 vulkaninfo.c)
+endif()
+target_link_libraries(vulkaninfo ${LIBRARIES})
+
+if(UNIX)
+    add_executable(tri tri.c)
+else()
+    add_executable(tri WIN32 tri.c)
+endif()
+target_link_libraries(tri ${LIBRARIES})
+
+if(NOT WIN32)
+    add_executable(cube cube.c ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv)
+    target_link_libraries(cube ${LIBRARIES})
+else()
+    if (CMAKE_CL_64)
+        set (LIB_DIR "Win64")
+    else()
+        set (LIB_DIR "Win32")
+    endif()
+    add_library(libpngd STATIC IMPORTED)
+    set_target_properties(libpngd PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/libs/${LIB_DIR}/libpngd.lib)
+    add_library(zlibd STATIC IMPORTED)
+    set_target_properties(zlibd PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/libs/${LIB_DIR}/zlibd.lib)
+    add_executable(cube WIN32 cube.c ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv)
+    target_link_libraries(cube ${LIBRARIES} libpngd zlibd)
+endif()
+
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+    set(PATH_TO_WIN_VK ${CMAKE_CURRENT_BINARY_DIR}/../loader/${CMAKE_CFG_INTDIR})
+    add_custom_command(TARGET tri
+        POST_BUILD
+        COMMAND ${CMAKE_COMMAND} -E copy_if_different "${PATH_TO_WIN_VK}/vulkan.dll" $<TARGET_FILE_DIR:tri>
+    )
+endif()
diff --git a/demos/cube.c b/demos/cube.c
index 759e636..0bccae0 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -364,11 +364,11 @@
     VkRenderPass render_pass;
     VkPipeline pipeline;
 
-    VkDynamicViewportState viewport;
-    VkDynamicRasterLineState raster_line;
-    VkDynamicRasterDepthBiasState raster_depth_bias;
-    VkDynamicColorBlendState color_blend;
-    VkDynamicDepthState dynamic_depth;
+    VkDynamicViewportState dynamic_viewport;
+    VkDynamicLineWidthState dynamic_line_width;
+    VkDynamicDepthBiasState dynamic_depth_bias;
+    VkDynamicBlendState dynamic_blend;
+    VkDynamicDepthBoundsState dynamic_depth_bounds;
     VkDynamicStencilState dynamic_stencil;
 
     mat4x4 projection_matrix;
@@ -541,11 +541,11 @@
     vkCmdBindDescriptorSets(cmd_buf, VK_PIPELINE_BIND_POINT_GRAPHICS, demo->pipeline_layout,
             0, 1, &demo->desc_set, 0, NULL);
 
-    vkCmdBindDynamicViewportState(cmd_buf, demo->viewport);
-    vkCmdBindDynamicRasterLineState(cmd_buf,  demo->raster_line);
-    vkCmdBindDynamicRasterDepthBiasState(cmd_buf,  demo->raster_depth_bias);
-    vkCmdBindDynamicColorBlendState(cmd_buf, demo->color_blend);
-    vkCmdBindDynamicDepthState(cmd_buf, demo->dynamic_depth);
+    vkCmdBindDynamicViewportState(cmd_buf, demo->dynamic_viewport);
+    vkCmdBindDynamicLineWidthState(cmd_buf,  demo->dynamic_line_width);
+    vkCmdBindDynamicDepthBiasState(cmd_buf,  demo->dynamic_depth_bias);
+    vkCmdBindDynamicBlendState(cmd_buf, demo->dynamic_blend);
+    vkCmdBindDynamicDepthBoundsState(cmd_buf, demo->dynamic_depth_bounds);
     vkCmdBindDynamicStencilState(cmd_buf, demo->dynamic_stencil);
 
     vkCmdDraw(cmd_buf, 0, 12 * 3, 0, 1);
@@ -1614,7 +1614,7 @@
     ds.depthTestEnable = VK_TRUE;
     ds.depthWriteEnable = VK_TRUE;
     ds.depthCompareOp = VK_COMPARE_OP_LESS_EQUAL;
-    ds.depthBoundsEnable = VK_FALSE;
+    ds.depthBoundsTestEnable = VK_FALSE;
     ds.back.stencilFailOp = VK_STENCIL_OP_KEEP;
     ds.back.stencilPassOp = VK_STENCIL_OP_KEEP;
     ds.back.stencilCompareOp = VK_COMPARE_OP_ALWAYS;
@@ -1670,10 +1670,10 @@
 static void demo_prepare_dynamic_states(struct demo *demo)
 {
     VkDynamicViewportStateCreateInfo viewport_create;
-    VkDynamicRasterLineStateCreateInfo raster_line;
-    VkDynamicRasterDepthBiasStateCreateInfo raster_depth_bias;
-    VkDynamicColorBlendStateCreateInfo color_blend;
-    VkDynamicDepthStateCreateInfo depth;
+    VkDynamicLineWidthStateCreateInfo line_width;
+    VkDynamicDepthBiasStateCreateInfo depth_bias;
+    VkDynamicBlendStateCreateInfo blend;
+    VkDynamicDepthBoundsStateCreateInfo depth_bounds;
     VkDynamicStencilStateCreateInfo stencil;
     VkResult U_ASSERT_ONLY err;
 
@@ -1695,49 +1695,49 @@
     scissor.offset.y = 0;
     viewport_create.pScissors = &scissor;
 
-    memset(&raster_line, 0, sizeof(raster_line));
-    raster_line.sType = VK_STRUCTURE_TYPE_DYNAMIC_RASTER_LINE_STATE_CREATE_INFO;
-    raster_line.lineWidth = 1.0;
+    memset(&line_width, 0, sizeof(line_width));
+    line_width.sType = VK_STRUCTURE_TYPE_DYNAMIC_LINE_WIDTH_STATE_CREATE_INFO;
+    line_width.lineWidth = 1.0;
 
-    memset(&raster_depth_bias, 0, sizeof(raster_depth_bias));
-    raster_depth_bias.sType = VK_STRUCTURE_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE_CREATE_INFO;
-    raster_depth_bias.depthBias = 0.0f;
-    raster_depth_bias.depthBiasClamp = 0.0f;
-    raster_depth_bias.slopeScaledDepthBias = 0.0f;
+    memset(&depth_bias, 0, sizeof(depth_bias));
+    depth_bias.sType = VK_STRUCTURE_TYPE_DYNAMIC_DEPTH_BIAS_STATE_CREATE_INFO;
+    depth_bias.depthBias = 0.0f;
+    depth_bias.depthBiasClamp = 0.0f;
+    depth_bias.slopeScaledDepthBias = 0.0f;
 
-    memset(&color_blend, 0, sizeof(color_blend));
-    color_blend.sType = VK_STRUCTURE_TYPE_DYNAMIC_COLOR_BLEND_STATE_CREATE_INFO;
-    color_blend.blendConst[0] = 1.0f;
-    color_blend.blendConst[1] = 1.0f;
-    color_blend.blendConst[2] = 1.0f;
-    color_blend.blendConst[3] = 1.0f;
+    memset(&blend, 0, sizeof(blend));
+    blend.sType = VK_STRUCTURE_TYPE_DYNAMIC_BLEND_STATE_CREATE_INFO;
+    blend.blendConst[0] = 1.0f;
+    blend.blendConst[1] = 1.0f;
+    blend.blendConst[2] = 1.0f;
+    blend.blendConst[3] = 1.0f;
 
-    memset(&depth, 0, sizeof(depth));
-    depth.sType = VK_STRUCTURE_TYPE_DYNAMIC_DEPTH_STATE_CREATE_INFO;
-    depth.minDepthBounds = 0.0f;
-    depth.maxDepthBounds = 1.0f;
+    memset(&depth_bounds, 0, sizeof(depth_bounds));
+    depth_bounds.sType = VK_STRUCTURE_TYPE_DYNAMIC_DEPTH_BOUNDS_STATE_CREATE_INFO;
+    depth_bounds.minDepthBounds = 0.0f;
+    depth_bounds.maxDepthBounds = 1.0f;
 
     memset(&stencil, 0, sizeof(stencil));
     stencil.sType = VK_STRUCTURE_TYPE_DYNAMIC_STENCIL_STATE_CREATE_INFO;
     stencil.stencilReference = 0;
-    stencil.stencilReadMask = 0xff;
+    stencil.stencilCompareMask = 0xff;
     stencil.stencilWriteMask = 0xff;
 
-    err = vkCreateDynamicViewportState(demo->device, &viewport_create, &demo->viewport);
+    err = vkCreateDynamicViewportState(demo->device, &viewport_create, &demo->dynamic_viewport);
     assert(!err);
 
-    err = vkCreateDynamicRasterLineState(demo->device, &raster_line, &demo->raster_line);
+    err = vkCreateDynamicLineWidthState(demo->device, &line_width, &demo->dynamic_line_width);
     assert(!err);
 
-    err = vkCreateDynamicRasterDepthBiasState(demo->device, &raster_depth_bias, &demo->raster_depth_bias);
+    err = vkCreateDynamicDepthBiasState(demo->device, &depth_bias, &demo->dynamic_depth_bias);
     assert(!err);
 
-    err = vkCreateDynamicColorBlendState(demo->device,
-            &color_blend, &demo->color_blend);
+    err = vkCreateDynamicBlendState(demo->device,
+            &blend, &demo->dynamic_blend);
     assert(!err);
 
-    err = vkCreateDynamicDepthState(demo->device,
-            &depth, &demo->dynamic_depth);
+    err = vkCreateDynamicDepthBoundsState(demo->device,
+            &depth_bounds, &demo->dynamic_depth_bounds);
     assert(!err);
 
     err = vkCreateDynamicStencilState(demo->device,
@@ -1903,11 +1903,11 @@
     vkFreeDescriptorSets(demo->device, demo->desc_pool, 1, &demo->desc_set);
     vkDestroyDescriptorPool(demo->device, demo->desc_pool);
 
-    vkDestroyDynamicViewportState(demo->device, demo->viewport);
-    vkDestroyDynamicRasterLineState(demo->device, demo->raster_line);
-    vkDestroyDynamicRasterDepthBiasState(demo->device, demo->raster_depth_bias);
-    vkDestroyDynamicColorBlendState(demo->device, demo->color_blend);
-    vkDestroyDynamicDepthState(demo->device, demo->dynamic_depth);
+    vkDestroyDynamicViewportState(demo->device, demo->dynamic_viewport);
+    vkDestroyDynamicLineWidthState(demo->device, demo->dynamic_line_width);
+    vkDestroyDynamicDepthBiasState(demo->device, demo->dynamic_depth_bias);
+    vkDestroyDynamicBlendState(demo->device, demo->dynamic_blend);
+    vkDestroyDynamicDepthBoundsState(demo->device, demo->dynamic_depth_bounds);
     vkDestroyDynamicStencilState(demo->device, demo->dynamic_stencil);
 
     vkDestroyPipeline(demo->device, demo->pipeline);
diff --git a/demos/tri.c b/demos/tri.c
index f515ae1..dfa55bc 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -216,11 +216,11 @@
     VkRenderPass render_pass;
     VkPipeline pipeline;
 
-    VkDynamicViewportState viewport;
-    VkDynamicRasterLineState raster_line;
-    VkDynamicRasterDepthBiasState raster_depth_bias;
-    VkDynamicColorBlendState color_blend;
-    VkDynamicDepthState dynamic_depth;
+    VkDynamicViewportState dynamic_viewport;
+    VkDynamicLineWidthState dynamic_line_width;
+    VkDynamicDepthBiasState dynamic_depth_bias;
+    VkDynamicBlendState dynamic_blend;
+    VkDynamicDepthBoundsState dynamic_depth_bounds;
     VkDynamicStencilState dynamic_stencil;
 
     VkShaderModule vert_shader_module;
@@ -383,11 +383,11 @@
     vkCmdBindDescriptorSets(demo->draw_cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, demo->pipeline_layout,
             0, 1, & demo->desc_set, 0, NULL);
 
-    vkCmdBindDynamicViewportState(demo->draw_cmd, demo->viewport);
-    vkCmdBindDynamicRasterLineState(demo->draw_cmd, demo->raster_line);
-    vkCmdBindDynamicRasterDepthBiasState(demo->draw_cmd, demo->raster_depth_bias);
-    vkCmdBindDynamicColorBlendState(demo->draw_cmd, demo->color_blend);
-    vkCmdBindDynamicDepthState(demo->draw_cmd, demo->dynamic_depth);
+    vkCmdBindDynamicViewportState(demo->draw_cmd, demo->dynamic_viewport);
+    vkCmdBindDynamicLineWidthState(demo->draw_cmd, demo->dynamic_line_width);
+    vkCmdBindDynamicDepthBiasState(demo->draw_cmd, demo->dynamic_depth_bias);
+    vkCmdBindDynamicBlendState(demo->draw_cmd, demo->dynamic_blend);
+    vkCmdBindDynamicDepthBoundsState(demo->draw_cmd, demo->dynamic_depth_bounds);
     vkCmdBindDynamicStencilState(demo->draw_cmd, demo->dynamic_stencil);
 
     VkDeviceSize offsets[1] = {0};
@@ -1251,7 +1251,7 @@
     ds.depthTestEnable = VK_TRUE;
     ds.depthWriteEnable = VK_TRUE;
     ds.depthCompareOp = VK_COMPARE_OP_LESS_EQUAL;
-    ds.depthBoundsEnable = VK_FALSE;
+    ds.depthBoundsTestEnable = VK_FALSE;
     ds.back.stencilFailOp = VK_STENCIL_OP_KEEP;
     ds.back.stencilPassOp = VK_STENCIL_OP_KEEP;
     ds.back.stencilCompareOp = VK_COMPARE_OP_ALWAYS;
@@ -1307,10 +1307,10 @@
 static void demo_prepare_dynamic_states(struct demo *demo)
 {
     VkDynamicViewportStateCreateInfo viewport_create;
-    VkDynamicRasterLineStateCreateInfo raster_line;
-    VkDynamicRasterDepthBiasStateCreateInfo raster_depth_bias;
-    VkDynamicColorBlendStateCreateInfo color_blend;
-    VkDynamicDepthStateCreateInfo depth;
+    VkDynamicLineWidthStateCreateInfo line_width;
+    VkDynamicDepthBiasStateCreateInfo depth_bias;
+    VkDynamicBlendStateCreateInfo blend;
+    VkDynamicDepthBoundsStateCreateInfo depth_bounds;
     VkDynamicStencilStateCreateInfo stencil;
     VkResult U_ASSERT_ONLY err;
 
@@ -1332,49 +1332,49 @@
     scissor.offset.y = 0;
     viewport_create.pScissors = &scissor;
 
-    memset(&raster_line, 0, sizeof(raster_line));
-    raster_line.sType = VK_STRUCTURE_TYPE_DYNAMIC_RASTER_LINE_STATE_CREATE_INFO;
-    raster_line.lineWidth = 1.0;
+    memset(&line_width, 0, sizeof(line_width));
+    line_width.sType = VK_STRUCTURE_TYPE_DYNAMIC_LINE_WIDTH_STATE_CREATE_INFO;
+    line_width.lineWidth = 1.0;
 
-    memset(&raster_depth_bias, 0, sizeof(raster_depth_bias));
-    raster_depth_bias.sType = VK_STRUCTURE_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE_CREATE_INFO;
-    raster_depth_bias.depthBias = 0.0f;
-    raster_depth_bias.depthBiasClamp = 0.0f;
-    raster_depth_bias.slopeScaledDepthBias = 0.0f;
+    memset(&depth_bias, 0, sizeof(depth_bias));
+    depth_bias.sType = VK_STRUCTURE_TYPE_DYNAMIC_DEPTH_BIAS_STATE_CREATE_INFO;
+    depth_bias.depthBias = 0.0f;
+    depth_bias.depthBiasClamp = 0.0f;
+    depth_bias.slopeScaledDepthBias = 0.0f;
 
-    memset(&color_blend, 0, sizeof(color_blend));
-    color_blend.sType = VK_STRUCTURE_TYPE_DYNAMIC_COLOR_BLEND_STATE_CREATE_INFO;
-    color_blend.blendConst[0] = 1.0f;
-    color_blend.blendConst[1] = 1.0f;
-    color_blend.blendConst[2] = 1.0f;
-    color_blend.blendConst[3] = 1.0f;
+    memset(&blend, 0, sizeof(blend));
+    blend.sType = VK_STRUCTURE_TYPE_DYNAMIC_BLEND_STATE_CREATE_INFO;
+    blend.blendConst[0] = 1.0f;
+    blend.blendConst[1] = 1.0f;
+    blend.blendConst[2] = 1.0f;
+    blend.blendConst[3] = 1.0f;
 
-    memset(&depth, 0, sizeof(depth));
-    depth.sType = VK_STRUCTURE_TYPE_DYNAMIC_DEPTH_STATE_CREATE_INFO;
-    depth.minDepthBounds = 0.0f;
-    depth.maxDepthBounds = 1.0f;
+    memset(&depth_bounds, 0, sizeof(depth_bounds));
+    depth_bounds.sType = VK_STRUCTURE_TYPE_DYNAMIC_DEPTH_BOUNDS_STATE_CREATE_INFO;
+    depth_bounds.minDepthBounds = 0.0f;
+    depth_bounds.maxDepthBounds = 1.0f;
 
     memset(&stencil, 0, sizeof(stencil));
     stencil.sType = VK_STRUCTURE_TYPE_DYNAMIC_STENCIL_STATE_CREATE_INFO;
     stencil.stencilReference = 0;
-    stencil.stencilReadMask = 0xff;
+    stencil.stencilCompareMask = 0xff;
     stencil.stencilWriteMask = 0xff;
 
-    err = vkCreateDynamicViewportState(demo->device, &viewport_create, &demo->viewport);
+    err = vkCreateDynamicViewportState(demo->device, &viewport_create, &demo->dynamic_viewport);
     assert(!err);
 
-    err = vkCreateDynamicRasterLineState(demo->device, &raster_line, &demo->raster_line);
+    err = vkCreateDynamicLineWidthState(demo->device, &line_width, &demo->dynamic_line_width);
     assert(!err);
 
-    err = vkCreateDynamicRasterDepthBiasState(demo->device, &raster_depth_bias, &demo->raster_depth_bias);
+    err = vkCreateDynamicDepthBiasState(demo->device, &depth_bias, &demo->dynamic_depth_bias);
     assert(!err);
 
-    err = vkCreateDynamicColorBlendState(demo->device,
-            &color_blend, &demo->color_blend);
+    err = vkCreateDynamicBlendState(demo->device,
+            &blend, &demo->dynamic_blend);
     assert(!err);
 
-    err = vkCreateDynamicDepthState(demo->device,
-            &depth, &demo->dynamic_depth);
+    err = vkCreateDynamicDepthBoundsState(demo->device,
+            &depth_bounds, &demo->dynamic_depth_bounds);
     assert(!err);
 
     err = vkCreateDynamicStencilState(demo->device,
@@ -2123,11 +2123,11 @@
     vkDestroyCommandBuffer(demo->device, demo->draw_cmd);
     vkDestroyCommandPool(demo->device, demo->cmd_pool);
 
-    vkDestroyDynamicViewportState(demo->device, demo->viewport);
-    vkDestroyDynamicRasterLineState(demo->device, demo->raster_line);
-    vkDestroyDynamicRasterDepthBiasState(demo->device, demo->raster_depth_bias);
-    vkDestroyDynamicColorBlendState(demo->device, demo->color_blend);
-    vkDestroyDynamicDepthState(demo->device, demo->dynamic_depth);
+    vkDestroyDynamicViewportState(demo->device, demo->dynamic_viewport);
+    vkDestroyDynamicLineWidthState(demo->device, demo->dynamic_line_width);
+    vkDestroyDynamicDepthBiasState(demo->device, demo->dynamic_depth_bias);
+    vkDestroyDynamicBlendState(demo->device, demo->dynamic_blend);
+    vkDestroyDynamicDepthBoundsState(demo->device, demo->dynamic_depth_bounds);
     vkDestroyDynamicStencilState(demo->device, demo->dynamic_stencil);
 
     vkDestroyPipeline(demo->device, demo->pipeline);