Test dynamic vertex stride of 0.
authorHans-Kristian Arntzen <post@arntzen-software.no>
Tue, 6 Jul 2021 10:01:04 +0000 (12:01 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 22 Jul 2021 06:56:43 +0000 (06:56 +0000)
Goes beyond existing specification and tests if we can use stride 0 as
well.

Components: Vulkan
Vulkan issue: 2742

Added tests:

   dEQP-VK.pipeline.extended_dynamic_state.*.zero_stride_with_offset

Change-Id: I4838b60321f27dd4b4546b1e42ed2f6043aec5c1

android/cts/master/vk-master-2021-03-01/pipeline.txt
android/cts/master/vk-master/pipeline.txt
external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp
external/vulkancts/mustpass/master/vk-default/pipeline.txt

index c43f38c..7c58b90 100644 (file)
@@ -16661,6 +16661,7 @@ dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stride_with_offset_and_
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_write_enable
@@ -18049,6 +18050,7 @@ dEQP-VK.pipeline.extended_dynamic_state.before_draw.stride_with_offset_and_paddi
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_write_enable
@@ -19437,6 +19439,7 @@ dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stride_with_offset_and
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_write_enable
@@ -20825,6 +20828,7 @@ dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stride_with_offset_and_p
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_write_enable
@@ -22213,6 +22217,7 @@ dEQP-VK.pipeline.extended_dynamic_state.before_good_static.stride_with_offset_an
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.before_good_static.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.depth_write_enable
@@ -23601,6 +23606,7 @@ dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.stride_with_offset_and
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.depth_write_enable
@@ -24986,6 +24992,7 @@ dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.2_scissors_switch_clean
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.stride
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.depth_write_enable
index b5e8340..8996e82 100644 (file)
@@ -153537,6 +153537,7 @@ dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stride_with_offset_and_
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_write_enable
@@ -154925,6 +154926,7 @@ dEQP-VK.pipeline.extended_dynamic_state.before_draw.stride_with_offset_and_paddi
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_write_enable
@@ -156313,6 +156315,7 @@ dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stride_with_offset_and
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_write_enable
@@ -157701,6 +157704,7 @@ dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stride_with_offset_and_p
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_write_enable
@@ -159089,6 +159093,7 @@ dEQP-VK.pipeline.extended_dynamic_state.before_good_static.stride_with_offset_an
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.before_good_static.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.depth_write_enable
@@ -160477,6 +160482,7 @@ dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.stride_with_offset_and
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.depth_write_enable
@@ -161862,6 +161868,7 @@ dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.2_scissors_switch_clean
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.stride
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.depth_write_enable
index 04d6b35..539baa3 100644 (file)
@@ -601,6 +601,7 @@ struct MeshParams
        float           scaleY;
        float           offsetX;
        float           offsetY;
+       float           fanScale;
 
        MeshParams (const tcu::Vec4&    color_          = kDefaultTriangleColor,
                                float                           depth_          = 0.0f,
@@ -608,7 +609,8 @@ struct MeshParams
                                float                           scaleX_         = 1.0f,
                                float                           scaleY_         = 1.0f,
                                float                           offsetX_        = 0.0f,
-                               float                           offsetY_        = 0.0f)
+                               float                           offsetY_        = 0.0f,
+                               float                           fanScale_       = 0.0f)
                : color         (color_)
                , depth         (depth_)
                , reversed      (reversed_)
@@ -616,6 +618,7 @@ struct MeshParams
                , scaleY        (scaleY_)
                , offsetX       (offsetX_)
                , offsetY       (offsetY_)
+               , fanScale      (fanScale_)
        {}
 };
 
@@ -814,6 +817,10 @@ struct TestConfig
        // Force inclusion of passthrough geometry shader or not.
        bool                                            forceGeometryShader;
 
+       // Force single vertex in the VBO.
+       bool                                            singleVertex;
+       deUint32                                        singleVertexDrawCount;
+
        // Offset and extra room after the vertex buffer data.
        vk::VkDeviceSize                        vertexDataOffset;
        vk::VkDeviceSize                        vertexDataExtraBytes;
@@ -852,6 +859,8 @@ struct TestConfig
                , minDepthBounds                                (0.0f)
                , maxDepthBounds                                (1.0f)
                , forceGeometryShader                   (false)
+               , singleVertex                                  (false)
+               , singleVertexDrawCount                 (0)
                , vertexDataOffset                              (0ull)
                , vertexDataExtraBytes                  (0ull)
                , vertexGenerator                               (makeVertexGeneratorConfig(staticVertexGenerator, dynamicVertexGenerator))
@@ -1091,6 +1100,7 @@ struct PushConstants
        float           scaleY;
        float           offsetX;
        float           offsetY;
+       float           fanScale;
 };
 
 void copy(vk::VkStencilOpState& dst, const StencilOpParams& src)
@@ -1232,6 +1242,7 @@ void ExtendedDynamicStateTest::initPrograms (vk::SourceCollections& programColle
                << "    float scaleY;\n"
                << "    float offsetX;\n"
                << "    float offsetY;\n"
+               << "    float fanScale;\n"
                << "} pushConstants;\n"
                ;
        const auto pushConstants = pushSource.str();
@@ -1274,6 +1285,17 @@ void ExtendedDynamicStateTest::initPrograms (vk::SourceCollections& programColle
                << "void main() {\n"
                << "${CALCULATIONS}"
                << "    gl_Position = vec4(vertexCoords.x * pushConstants.scaleX + pushConstants.offsetX, vertexCoords.y * pushConstants.scaleY + pushConstants.offsetY, pushConstants.depthValue, 1.0);\n"
+               << "    vec2 fanOffset;\n"
+               << "    switch (gl_VertexIndex) {\n"
+               << "    case 0: fanOffset = vec2(0.0, 0.0); break;\n"
+               << "    case 1: fanOffset = vec2(1.0, 0.0); break;\n"
+               << "    case 2: fanOffset = vec2(1.0, -1.0); break;\n"
+               << "    case 3: fanOffset = vec2(0.0, -1.0); break;\n"
+               << "    case 4: fanOffset = vec2(-1.0, -1.0); break;\n"
+               << "    case 5: fanOffset = vec2(-1.0, 0.0); break;\n"
+               << "    default: fanOffset = vec2(-1000.0); break;\n"
+               << "    }\n"
+               << "    gl_Position.xy += pushConstants.fanScale * fanOffset;\n"
                << "}\n"
                ;
 
@@ -1771,6 +1793,9 @@ tcu::TestStatus ExtendedDynamicStateInstance::iterate (void)
                }
        }
 
+       if (m_testConfig.singleVertex)
+               vertices.resize(1);
+
        // Reversed vertices, except for the first one (0, 5, 4, 3, 2, 1): clockwise mesh for triangles. Not to be used with lines.
        std::vector<tcu::Vec2> rvertices;
        if (topologyClass == TopologyClass::TRIANGLE)
@@ -2323,6 +2348,7 @@ tcu::TestStatus ExtendedDynamicStateInstance::iterate (void)
                                                m_testConfig.meshParams[meshIdx].scaleY,        //      float           scaleY;
                                                m_testConfig.meshParams[meshIdx].offsetX,       //      float           offsetX;
                                                m_testConfig.meshParams[meshIdx].offsetY,       //      float           offsetY;
+                                               m_testConfig.meshParams[meshIdx].fanScale,      //      float           fanScale;
                                        };
                                        vkd.cmdPushConstants(cmdBuffer, pipelineLayout.get(), pushConstantStageFlags, 0u, static_cast<deUint32>(sizeof(pushConstants)), &pushConstants);
 
@@ -2360,7 +2386,12 @@ tcu::TestStatus ExtendedDynamicStateInstance::iterate (void)
                                                vkd.cmdDrawIndexed(cmdBuffer, numIndices, 1u, 0u, 0u, 0u);
                                        }
                                        else
-                                               vkd.cmdDraw(cmdBuffer, static_cast<deUint32>(vertices.size()), 1u, 0u, 0u);
+                                       {
+                                               deUint32 vertex_count = static_cast<deUint32>(vertices.size());
+                                               if (m_testConfig.singleVertex)
+                                                       vertex_count = m_testConfig.singleVertexDrawCount;
+                                               vkd.cmdDraw(cmdBuffer, vertex_count, 1u, 0u, 0u);
+                                       }
                                }
                        }
 
@@ -2827,6 +2858,27 @@ tcu::TestCaseGroup* createExtendedDynamicStateTests (tcu::TestContext& testCtx)
                                        orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, prefix + "_with_offset_and_padding", "Dynamically set stride using a nonzero vertex data offset and extra bytes", config));
                                }
                        }
+
+                       // Dynamic stride of 0
+                       {
+                               TestConfig config(kOrdering, getVertexWithExtraAttributesGenerator());
+                               config.strideConfig.staticValue         = config.getActiveVertexGenerator()->getVertexDataStrides();
+                               config.strideConfig.dynamicValue        = { 0 };
+                               config.vertexDataOffset                         = 4;
+                               config.singleVertex                 = true;
+                               config.singleVertexDrawCount        = 6;
+
+                               // Make the mesh cover the top half only. If the implementation reads data outside the vertex data it should read the
+                               // offscreen vertex and draw something in the bottom half.
+                               config.referenceColor                   = HorizontalSplitGenerator(kDefaultTriangleColor, kDefaultClearColor);
+                               config.meshParams[0].scaleY             = 0.5f;
+                               config.meshParams[0].offsetY    = -0.5f;
+
+                               // Use fan scale to synthesize a fan from a vertex attribute which remains constant over the draw call.
+                               config.meshParams[0].fanScale = 1.0f;
+
+                               orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "zero_stride_with_offset", "Dynamically set zero stride using a nonzero vertex data offset", config));
+                       }
                }
 
                // Depth test enable.
index 9b8cff0..276fc49 100644 (file)
@@ -153548,6 +153548,7 @@ dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stride_with_offset_and_
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_write_enable
@@ -154936,6 +154937,7 @@ dEQP-VK.pipeline.extended_dynamic_state.before_draw.stride_with_offset_and_paddi
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_write_enable
@@ -156324,6 +156326,7 @@ dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stride_with_offset_and
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_write_enable
@@ -157712,6 +157715,7 @@ dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stride_with_offset_and_p
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_write_enable
@@ -159100,6 +159104,7 @@ dEQP-VK.pipeline.extended_dynamic_state.before_good_static.stride_with_offset_an
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.before_good_static.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.before_good_static.depth_write_enable
@@ -160488,6 +160493,7 @@ dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.stride_with_offset_and
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.large_stride
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.large_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.large_stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.depth_write_enable
@@ -161873,6 +161879,7 @@ dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.2_scissors_switch_clean
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.stride
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.stride_with_offset_and_padding
+dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.zero_stride_with_offset
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.depth_test_enable
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.depth_test_disable
 dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.depth_write_enable