Add Transform Feedback tests
authorBoris Zanin <boris.zanin@mobica.com>
Mon, 17 Sep 2018 13:11:46 +0000 (15:11 +0200)
committerBoris Zanin <boris.zanin@mobica.com>
Thu, 11 Apr 2019 15:10:15 +0000 (17:10 +0200)
Add tests:
 * dEQP-VK.transform_feedback.simple.basic*
 * dEQP-VK.transform_feedback.simple.resume*
 * dEQP-VK.transform_feedback.simple.streams_*
 * dEQP-VK.transform_feedback.simple.streams_pointsize_*
 * dEQP-VK.transform_feedback.simple.streams_clipdistance_*
 * dEQP-VK.transform_feedback.simple.streams_culldistance_*
 * dEQP-VK.transform_feedback.simple.multistreams_*
 * dEQP-VK.transform_feedback.simple.draw_indirect_*
 * dEQP-VK.transform_feedback.simple.backward_dependency
 * dEQP-VK.transform_feedback.simple.query_*
 * dEQP-VK.transform_feedback.fuzz.*

Components: vulkan

VK-GL-CTS issue: 1350

Change-Id: If0b7a47f95f554dd43db77a6d005ebeb44c27294

37 files changed:
AndroidGen.mk
android/cts/master/vk-master.txt
external/vulkancts/framework/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkExtensionFunctions.inl
external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl
external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl
external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
external/vulkancts/framework/vulkan/vkObjUtil.cpp
external/vulkancts/framework/vulkan/vkShaderToSpirV.cpp
external/vulkancts/framework/vulkan/vkStrUtil.inl
external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
external/vulkancts/framework/vulkan/vkStructTypes.inl
external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
external/vulkancts/framework/vulkan/vkVulkan_c.inl
external/vulkancts/modules/vulkan/CMakeLists.txt
external/vulkancts/modules/vulkan/transform_feedback/CMakeLists.txt [new file with mode: 0644]
external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.hpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutTests.cpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutTests.hpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackRandomLayoutCase.cpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackRandomLayoutCase.hpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackSimpleTests.cpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackSimpleTests.hpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackTests.cpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackTests.hpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/vktTestCase.cpp
external/vulkancts/modules/vulkan/vktTestCase.hpp
external/vulkancts/modules/vulkan/vktTestPackage.cpp
external/vulkancts/mustpass/1.1.5/vk-default-no-waivers.txt
external/vulkancts/mustpass/1.1.5/vk-default.txt
external/vulkancts/scripts/src/vulkan.h.in
framework/opengl/gluShaderUtil.hpp

index 1045902..0dcd1c0 100644 (file)
@@ -367,6 +367,11 @@ LOCAL_SRC_FILES := \
        external/vulkancts/modules/vulkan/texture/vktTextureSwizzleTests.cpp \
        external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.cpp \
        external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp \
+       external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp \
+       external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutTests.cpp \
+       external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackRandomLayoutCase.cpp \
+       external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackSimpleTests.cpp \
+       external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackTests.cpp \
        external/vulkancts/modules/vulkan/ubo/vktRandomUniformBlockCase.cpp \
        external/vulkancts/modules/vulkan/ubo/vktUniformBlockCase.cpp \
        external/vulkancts/modules/vulkan/ubo/vktUniformBlockTests.cpp \
@@ -1111,6 +1116,7 @@ LOCAL_C_INCLUDES := \
        $(deqp_dir)/external/vulkancts/modules/vulkan/synchronization \
        $(deqp_dir)/external/vulkancts/modules/vulkan/tessellation \
        $(deqp_dir)/external/vulkancts/modules/vulkan/texture \
+       $(deqp_dir)/external/vulkancts/modules/vulkan/transform_feedback \
        $(deqp_dir)/external/vulkancts/modules/vulkan/ubo \
        $(deqp_dir)/external/vulkancts/modules/vulkan/util \
        $(deqp_dir)/external/vulkancts/modules/vulkan/wsi \
index 3a38b29..22e8abf 100755 (executable)
@@ -415480,3 +415480,2246 @@ dEQP-VK.imageless_framebuffer.depth_stencil
 dEQP-VK.imageless_framebuffer.color_resolve
 dEQP-VK.imageless_framebuffer.depth_stencil_resolve
 dEQP-VK.imageless_framebuffer.multisubpass
+dEQP-VK.transform_feedback.simple.basic_1_256
+dEQP-VK.transform_feedback.simple.basic_1_512
+dEQP-VK.transform_feedback.simple.basic_1_131072
+dEQP-VK.transform_feedback.simple.basic_2_256
+dEQP-VK.transform_feedback.simple.basic_2_512
+dEQP-VK.transform_feedback.simple.basic_2_131072
+dEQP-VK.transform_feedback.simple.basic_4_256
+dEQP-VK.transform_feedback.simple.basic_4_512
+dEQP-VK.transform_feedback.simple.basic_4_131072
+dEQP-VK.transform_feedback.simple.basic_8_256
+dEQP-VK.transform_feedback.simple.basic_8_512
+dEQP-VK.transform_feedback.simple.basic_8_131072
+dEQP-VK.transform_feedback.simple.resume_1_256
+dEQP-VK.transform_feedback.simple.resume_1_512
+dEQP-VK.transform_feedback.simple.resume_1_131072
+dEQP-VK.transform_feedback.simple.resume_2_256
+dEQP-VK.transform_feedback.simple.resume_2_512
+dEQP-VK.transform_feedback.simple.resume_2_131072
+dEQP-VK.transform_feedback.simple.resume_4_256
+dEQP-VK.transform_feedback.simple.resume_4_512
+dEQP-VK.transform_feedback.simple.resume_4_131072
+dEQP-VK.transform_feedback.simple.resume_8_256
+dEQP-VK.transform_feedback.simple.resume_8_512
+dEQP-VK.transform_feedback.simple.resume_8_131072
+dEQP-VK.transform_feedback.simple.draw_indirect_16
+dEQP-VK.transform_feedback.simple.draw_indirect_244
+dEQP-VK.transform_feedback.simple.draw_indirect_508
+dEQP-VK.transform_feedback.simple.draw_indirect_1004
+dEQP-VK.transform_feedback.simple.draw_indirect_2036
+dEQP-VK.transform_feedback.simple.backward_dependency
+dEQP-VK.transform_feedback.simple.query_0_4
+dEQP-VK.transform_feedback.simple.query_0_61
+dEQP-VK.transform_feedback.simple.query_0_127
+dEQP-VK.transform_feedback.simple.query_0_251
+dEQP-VK.transform_feedback.simple.query_0_509
+dEQP-VK.transform_feedback.simple.query_1_4
+dEQP-VK.transform_feedback.simple.query_1_61
+dEQP-VK.transform_feedback.simple.query_1_127
+dEQP-VK.transform_feedback.simple.query_1_251
+dEQP-VK.transform_feedback.simple.query_1_509
+dEQP-VK.transform_feedback.simple.query_3_4
+dEQP-VK.transform_feedback.simple.query_3_61
+dEQP-VK.transform_feedback.simple.query_3_127
+dEQP-VK.transform_feedback.simple.query_3_251
+dEQP-VK.transform_feedback.simple.query_3_509
+dEQP-VK.transform_feedback.simple.query_6_4
+dEQP-VK.transform_feedback.simple.query_6_61
+dEQP-VK.transform_feedback.simple.query_6_127
+dEQP-VK.transform_feedback.simple.query_6_251
+dEQP-VK.transform_feedback.simple.query_6_509
+dEQP-VK.transform_feedback.simple.query_14_4
+dEQP-VK.transform_feedback.simple.query_14_61
+dEQP-VK.transform_feedback.simple.query_14_127
+dEQP-VK.transform_feedback.simple.query_14_251
+dEQP-VK.transform_feedback.simple.query_14_509
+dEQP-VK.transform_feedback.simple.streams_1
+dEQP-VK.transform_feedback.simple.streams_3
+dEQP-VK.transform_feedback.simple.streams_6
+dEQP-VK.transform_feedback.simple.streams_14
+dEQP-VK.transform_feedback.simple.streams_pointsize_1
+dEQP-VK.transform_feedback.simple.streams_pointsize_3
+dEQP-VK.transform_feedback.simple.streams_pointsize_6
+dEQP-VK.transform_feedback.simple.streams_pointsize_14
+dEQP-VK.transform_feedback.simple.streams_clipdistance_1
+dEQP-VK.transform_feedback.simple.streams_clipdistance_3
+dEQP-VK.transform_feedback.simple.streams_clipdistance_6
+dEQP-VK.transform_feedback.simple.streams_clipdistance_14
+dEQP-VK.transform_feedback.simple.streams_culldistance_1
+dEQP-VK.transform_feedback.simple.streams_culldistance_3
+dEQP-VK.transform_feedback.simple.streams_culldistance_6
+dEQP-VK.transform_feedback.simple.streams_culldistance_14
+dEQP-VK.transform_feedback.simple.multistreams_1
+dEQP-VK.transform_feedback.simple.multistreams_3
+dEQP-VK.transform_feedback.simple.multistreams_6
+dEQP-VK.transform_feedback.simple.multistreams_14
+dEQP-VK.transform_feedback.fuzz.2_level_array.float.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.float.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.int.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.int.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.uint.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.uint.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.double.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.double.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.float.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.float.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.int.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.int.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.uint.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.uint.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.double.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.double.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_struct_array.std_vertex
+dEQP-VK.transform_feedback.fuzz.2_level_struct_array.std_geometry
+dEQP-VK.transform_feedback.fuzz.2_level_struct_array.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.2_level_struct_array.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.double.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.double.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.float.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.float.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.int.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.int.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uint.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uint.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.float.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.float.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.int.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.int.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uint.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uint.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.float.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.float.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.int.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.int.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uint.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uint.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.float.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.float.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.int.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.int.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uint.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uint.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.double.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.double.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_struct.std_vertex
+dEQP-VK.transform_feedback.fuzz.single_struct.std_geometry
+dEQP-VK.transform_feedback.fuzz.single_struct.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.single_struct.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.single_struct_array.std_vertex
+dEQP-VK.transform_feedback.fuzz.single_struct_array.std_geometry
+dEQP-VK.transform_feedback.fuzz.single_struct_array.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.single_struct_array.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.single_nested_struct.std_vertex
+dEQP-VK.transform_feedback.fuzz.single_nested_struct.std_geometry
+dEQP-VK.transform_feedback.fuzz.single_nested_struct.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.single_nested_struct.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.single_nested_struct_array.std_vertex
+dEQP-VK.transform_feedback.fuzz.single_nested_struct_array.std_geometry
+dEQP-VK.transform_feedback.fuzz.single_nested_struct_array.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.single_nested_struct_array.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.float.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.float.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.int.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.int.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uint.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uint.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.double.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.double.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.multi_basic_types.std_vertex
+dEQP-VK.transform_feedback.fuzz.multi_basic_types.std_geometry
+dEQP-VK.transform_feedback.fuzz.multi_basic_types.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.multi_basic_types.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.multi_nested_struct.std_vertex
+dEQP-VK.transform_feedback.fuzz.multi_nested_struct.std_geometry
+dEQP-VK.transform_feedback.fuzz.multi_nested_struct.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.multi_nested_struct.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers000_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers000_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers000_instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers000_instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers010_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers010_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers010_instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers010_instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers110_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers110_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers110_instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers110_instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.50
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.51
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.52
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.53
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.54
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.55
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.56
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.57
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.58
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.59
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.60
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.61
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.62
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.63
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.64
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.65
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.66
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.67
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.68
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.69
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.70
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.71
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.72
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.73
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.74
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.75
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.76
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.77
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.78
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.79
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.80
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.81
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.82
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.83
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.84
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.85
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.86
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.87
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.88
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.89
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.90
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.91
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.92
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.93
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.94
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.95
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.96
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.97
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.98
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.99
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.50
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.51
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.52
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.53
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.54
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.55
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.56
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.57
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.58
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.59
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.60
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.61
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.62
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.63
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.64
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.65
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.66
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.67
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.68
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.69
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.70
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.71
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.72
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.73
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.74
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.75
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.76
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.77
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.78
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.79
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.80
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.81
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.82
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.83
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.84
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.85
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.86
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.87
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.88
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.89
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.90
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.91
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.92
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.93
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.94
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.95
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.96
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.97
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.98
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.99
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.50
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.51
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.52
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.53
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.54
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.55
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.56
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.57
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.58
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.59
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.60
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.61
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.62
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.63
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.64
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.65
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.66
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.67
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.68
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.69
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.70
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.71
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.72
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.73
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.74
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.75
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.76
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.77
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.78
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.79
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.80
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.81
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.82
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.83
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.84
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.85
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.86
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.87
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.88
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.89
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.90
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.91
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.92
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.93
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.94
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.95
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.96
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.97
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.98
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.99
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.50
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.51
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.52
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.53
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.54
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.55
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.56
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.57
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.58
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.59
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.60
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.61
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.62
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.63
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.64
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.65
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.66
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.67
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.68
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.69
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.70
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.71
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.72
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.73
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.74
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.75
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.76
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.77
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.78
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.79
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.80
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.81
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.82
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.83
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.84
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.85
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.86
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.87
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.88
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.89
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.90
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.91
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.92
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.93
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.94
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.95
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.96
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.97
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.98
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.99
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.50
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.51
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.52
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.53
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.54
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.55
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.56
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.57
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.58
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.59
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.60
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.61
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.62
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.63
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.64
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.65
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.66
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.67
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.68
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.69
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.70
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.71
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.72
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.73
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.74
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.75
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.76
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.77
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.78
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.79
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.80
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.81
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.82
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.83
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.84
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.85
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.86
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.87
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.88
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.89
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.90
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.91
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.92
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.93
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.94
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.95
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.96
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.97
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.98
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.99
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.50
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.51
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.52
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.53
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.54
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.55
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.56
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.57
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.58
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.59
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.60
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.61
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.62
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.63
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.64
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.65
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.66
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.67
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.68
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.69
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.70
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.71
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.72
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.73
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.74
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.75
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.76
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.77
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.78
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.79
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.80
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.81
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.82
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.83
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.84
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.85
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.86
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.87
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.88
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.89
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.90
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.91
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.92
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.93
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.94
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.95
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.96
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.97
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.98
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.99
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.50
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.51
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.52
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.53
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.54
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.55
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.56
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.57
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.58
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.59
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.60
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.61
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.62
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.63
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.64
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.65
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.66
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.67
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.68
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.69
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.70
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.71
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.72
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.73
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.74
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.75
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.76
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.77
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.78
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.79
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.80
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.81
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.82
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.83
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.84
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.85
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.86
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.87
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.88
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.89
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.90
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.91
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.92
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.93
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.94
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.95
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.96
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.97
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.98
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.99
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.50
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.51
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.52
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.53
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.54
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.55
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.56
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.57
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.58
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.59
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.60
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.61
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.62
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.63
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.64
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.65
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.66
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.67
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.68
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.69
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.70
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.71
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.72
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.73
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.74
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.75
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.76
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.77
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.78
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.79
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.80
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.81
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.82
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.83
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.84
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.85
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.86
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.87
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.88
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.89
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.90
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.91
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.92
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.93
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.94
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.95
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.96
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.97
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.98
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.99
index 49e3a97..675e66e 100644 (file)
@@ -237,6 +237,9 @@ enum VkStructureType
        VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV                                             = 1000026000,
        VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV                                    = 1000026001,
        VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV                                  = 1000026002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT                               = 1000028000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT                             = 1000028001,
+       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT                   = 1000028002,
        VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD                                              = 1000041000,
        VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV                                                  = 1000056000,
        VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV                                                                = 1000056001,
@@ -653,10 +656,11 @@ enum VkPhysicalDeviceType
 
 enum VkQueryType
 {
-       VK_QUERY_TYPE_OCCLUSION                         = 0,
-       VK_QUERY_TYPE_PIPELINE_STATISTICS       = 1,
-       VK_QUERY_TYPE_TIMESTAMP                         = 2,
-       VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR     = 1000116000,
+       VK_QUERY_TYPE_OCCLUSION                                         = 0,
+       VK_QUERY_TYPE_PIPELINE_STATISTICS                       = 1,
+       VK_QUERY_TYPE_TIMESTAMP                                         = 2,
+       VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT     = 1000028004,
+       VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR                     = 1000116000,
 };
 
 enum VkSharingMode
@@ -1473,6 +1477,7 @@ enum VkPipelineStageFlagBits
        VK_PIPELINE_STAGE_HOST_BIT                                                              = 0x00004000,
        VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT                                              = 0x00008000,
        VK_PIPELINE_STAGE_ALL_COMMANDS_BIT                                              = 0x00010000,
+       VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT                    = 0x01000000,
        VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX                               = 0x00020000,
        VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT                 = 0x00040000,
 };
@@ -1547,17 +1552,19 @@ typedef deUint32 VkBufferCreateFlags;
 
 enum VkBufferUsageFlagBits
 {
-       VK_BUFFER_USAGE_TRANSFER_SRC_BIT                                = 0x00000001,
-       VK_BUFFER_USAGE_TRANSFER_DST_BIT                                = 0x00000002,
-       VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT                = 0x00000004,
-       VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT                = 0x00000008,
-       VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT                              = 0x00000010,
-       VK_BUFFER_USAGE_STORAGE_BUFFER_BIT                              = 0x00000020,
-       VK_BUFFER_USAGE_INDEX_BUFFER_BIT                                = 0x00000040,
-       VK_BUFFER_USAGE_VERTEX_BUFFER_BIT                               = 0x00000080,
-       VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT                             = 0x00000100,
-       VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT   = 0x00000200,
-       VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT   = 0x00020000,
+       VK_BUFFER_USAGE_TRANSFER_SRC_BIT                                                        = 0x00000001,
+       VK_BUFFER_USAGE_TRANSFER_DST_BIT                                                        = 0x00000002,
+       VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT                                        = 0x00000004,
+       VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT                                        = 0x00000008,
+       VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT                                                      = 0x00000010,
+       VK_BUFFER_USAGE_STORAGE_BUFFER_BIT                                                      = 0x00000020,
+       VK_BUFFER_USAGE_INDEX_BUFFER_BIT                                                        = 0x00000040,
+       VK_BUFFER_USAGE_VERTEX_BUFFER_BIT                                                       = 0x00000080,
+       VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT                                                     = 0x00000100,
+       VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT                       = 0x00000800,
+       VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT       = 0x00001000,
+       VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT                           = 0x00000200,
+       VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT                           = 0x00020000,
 };
 typedef deUint32 VkBufferUsageFlags;
 
@@ -1654,6 +1661,9 @@ enum VkAccessFlagBits
        VK_ACCESS_HOST_WRITE_BIT                                                        = 0x00004000,
        VK_ACCESS_MEMORY_READ_BIT                                                       = 0x00008000,
        VK_ACCESS_MEMORY_WRITE_BIT                                                      = 0x00010000,
+       VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT                      = 0x02000000,
+       VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT       = 0x04000000,
+       VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT      = 0x08000000,
        VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT            = 0x00100000,
        VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX                          = 0x00020000,
        VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX                         = 0x00040000,
@@ -2008,6 +2018,8 @@ typedef deUint32 VkWin32SurfaceCreateFlagsKHR;
 
 typedef deUint32 VkAcquireProfilingLockFlagsKHR;
 
+typedef deUint32 VkPipelineRasterizationStateStreamCreateFlagsEXT;
+
 typedef deUint32 VkViSurfaceCreateFlagsNN;
 
 typedef deUint32 VkPipelineViewportSwizzleStateCreateFlagsNV;
@@ -2296,6 +2308,7 @@ VK_DEFINE_PLATFORM_TYPE(RROutput,                                 void*);
 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
 #define VK_AMD_GCN_SHADER_SPEC_VERSION 1
 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
+#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
index 456583d..37d38b6 100644 (file)
@@ -173,6 +173,12 @@ virtual VkResult                   debugMarkerSetObjectNameEXT                                     (VkDevice device, const VkDeb
 virtual void                           cmdDebugMarkerBeginEXT                                          (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
 virtual void                           cmdDebugMarkerEndEXT                                            (VkCommandBuffer commandBuffer) const;
 virtual void                           cmdDebugMarkerInsertEXT                                         (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
+virtual void                           cmdBindTransformFeedbackBuffersEXT                      (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) const;
+virtual void                           cmdBeginTransformFeedbackEXT                            (VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const;
+virtual void                           cmdEndTransformFeedbackEXT                                      (VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const;
+virtual void                           cmdBeginQueryIndexedEXT                                         (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags, deUint32 index) const;
+virtual void                           cmdEndQueryIndexedEXT                                           (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, deUint32 index) const;
+virtual void                           cmdDrawIndirectByteCountEXT                                     (VkCommandBuffer commandBuffer, deUint32 instanceCount, deUint32 firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, deUint32 counterOffset, deUint32 vertexStride) const;
 virtual void                           cmdDrawIndirectCountAMD                                         (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
 virtual void                           cmdDrawIndexedIndirectCountAMD                          (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
 virtual void                           cmdDrawIndirectCountKHR                                         (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
index 2bf85b8..645b375 100644 (file)
@@ -862,6 +862,36 @@ void DeviceDriver::cmdDebugMarkerInsertEXT (VkCommandBuffer commandBuffer, const
        m_vk.cmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
 }
 
+void DeviceDriver::cmdBindTransformFeedbackBuffersEXT (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) const
+{
+       m_vk.cmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes);
+}
+
+void DeviceDriver::cmdBeginTransformFeedbackEXT (VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const
+{
+       m_vk.cmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
+}
+
+void DeviceDriver::cmdEndTransformFeedbackEXT (VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const
+{
+       m_vk.cmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
+}
+
+void DeviceDriver::cmdBeginQueryIndexedEXT (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags, deUint32 index) const
+{
+       m_vk.cmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index);
+}
+
+void DeviceDriver::cmdEndQueryIndexedEXT (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, deUint32 index) const
+{
+       m_vk.cmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index);
+}
+
+void DeviceDriver::cmdDrawIndirectByteCountEXT (VkCommandBuffer commandBuffer, deUint32 instanceCount, deUint32 firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, deUint32 counterOffset, deUint32 vertexStride) const
+{
+       m_vk.cmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride);
+}
+
 void DeviceDriver::cmdDrawIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const
 {
        m_vk.cmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
index 226f175..4519f6f 100644 (file)
@@ -173,6 +173,12 @@ DebugMarkerSetObjectNameEXTFunc                                    debugMarkerSetObjectNameEXT;
 CmdDebugMarkerBeginEXTFunc                                             cmdDebugMarkerBeginEXT;
 CmdDebugMarkerEndEXTFunc                                               cmdDebugMarkerEndEXT;
 CmdDebugMarkerInsertEXTFunc                                            cmdDebugMarkerInsertEXT;
+CmdBindTransformFeedbackBuffersEXTFunc                 cmdBindTransformFeedbackBuffersEXT;
+CmdBeginTransformFeedbackEXTFunc                               cmdBeginTransformFeedbackEXT;
+CmdEndTransformFeedbackEXTFunc                                 cmdEndTransformFeedbackEXT;
+CmdBeginQueryIndexedEXTFunc                                            cmdBeginQueryIndexedEXT;
+CmdEndQueryIndexedEXTFunc                                              cmdEndQueryIndexedEXT;
+CmdDrawIndirectByteCountEXTFunc                                        cmdDrawIndirectByteCountEXT;
 CmdDrawIndirectCountAMDFunc                                            cmdDrawIndirectCountAMD;
 CmdDrawIndexedIndirectCountAMDFunc                             cmdDrawIndexedIndirectCountAMD;
 CmdDrawIndirectCountKHRFunc                                            cmdDrawIndirectCountKHR;
index 0f5143f..cee99b5 100644 (file)
@@ -223,6 +223,15 @@ void getDeviceExtensionFunctions (::std::string extName, ::std::vector<const cha
                functions.push_back("vkCmdDebugMarkerEndEXT");
                functions.push_back("vkCmdDebugMarkerInsertEXT");
        }
+       else if (extName == "VK_EXT_transform_feedback")
+       {
+               functions.push_back("vkCmdBindTransformFeedbackBuffersEXT");
+               functions.push_back("vkCmdBeginTransformFeedbackEXT");
+               functions.push_back("vkCmdEndTransformFeedbackEXT");
+               functions.push_back("vkCmdBeginQueryIndexedEXT");
+               functions.push_back("vkCmdEndQueryIndexedEXT");
+               functions.push_back("vkCmdDrawIndirectByteCountEXT");
+       }
        else if (extName == "VK_AMD_draw_indirect_count")
        {
                functions.push_back("vkCmdDrawIndirectCountAMD");
@@ -342,6 +351,7 @@ void getDeviceExtensionFunctions (::std::string extName, ::std::vector<const cha
        "VK_KHR_bind_memory2",
        "VK_KHR_maintenance3",
        "VK_EXT_debug_marker",
+       "VK_EXT_transform_feedback",
        "VK_AMD_draw_indirect_count",
        "VK_KHR_draw_indirect_count",
        "VK_NV_external_memory_win32",
index 1c7f9b2..e2ac1cc 100644 (file)
@@ -262,6 +262,12 @@ typedef VKAPI_ATTR VkResult                                (VKAPI_CALL* DebugMarkerSetObjectNameEXTFunc)
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDebugMarkerBeginEXTFunc)                                                                                (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDebugMarkerEndEXTFunc)                                                                                  (VkCommandBuffer commandBuffer);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDebugMarkerInsertEXTFunc)                                                                               (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindTransformFeedbackBuffersEXTFunc)                                                    (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginTransformFeedbackEXTFunc)                                                                  (VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndTransformFeedbackEXTFunc)                                                                    (VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginQueryIndexedEXTFunc)                                                                               (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags, deUint32 index);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndQueryIndexedEXTFunc)                                                                                 (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, deUint32 index);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectByteCountEXTFunc)                                                                   (VkCommandBuffer commandBuffer, deUint32 instanceCount, deUint32 firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, deUint32 counterOffset, deUint32 vertexStride);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectCountAMDFunc)                                                                               (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectCountAMDFunc)                                                                (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectCountKHRFunc)                                                                               (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
index 169c744..5dda100 100644 (file)
@@ -966,6 +966,21 @@ template<> VkStructureType getStructureType<VkDedicatedAllocationMemoryAllocateI
        return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
 }
 
+template<> VkStructureType getStructureType<VkPhysicalDeviceTransformFeedbackFeaturesEXT> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceTransformFeedbackPropertiesEXT> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPipelineRasterizationStateStreamCreateInfoEXT> (void)
+{
+       return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT;
+}
+
 template<> VkStructureType getStructureType<VkTextureLODGatherFormatPropertiesAMD> (void)
 {
        return VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD;
index 2b665be..a543c23 100644 (file)
@@ -203,6 +203,12 @@ m_vk.debugMarkerSetObjectNameEXT                           = (DebugMarkerSetObjectNameEXTFunc)                                     GET_
 m_vk.cmdDebugMarkerBeginEXT                                            = (CmdDebugMarkerBeginEXTFunc)                                          GET_PROC_ADDR("vkCmdDebugMarkerBeginEXT");
 m_vk.cmdDebugMarkerEndEXT                                              = (CmdDebugMarkerEndEXTFunc)                                            GET_PROC_ADDR("vkCmdDebugMarkerEndEXT");
 m_vk.cmdDebugMarkerInsertEXT                                   = (CmdDebugMarkerInsertEXTFunc)                                         GET_PROC_ADDR("vkCmdDebugMarkerInsertEXT");
+m_vk.cmdBindTransformFeedbackBuffersEXT                        = (CmdBindTransformFeedbackBuffersEXTFunc)                      GET_PROC_ADDR("vkCmdBindTransformFeedbackBuffersEXT");
+m_vk.cmdBeginTransformFeedbackEXT                              = (CmdBeginTransformFeedbackEXTFunc)                            GET_PROC_ADDR("vkCmdBeginTransformFeedbackEXT");
+m_vk.cmdEndTransformFeedbackEXT                                        = (CmdEndTransformFeedbackEXTFunc)                                      GET_PROC_ADDR("vkCmdEndTransformFeedbackEXT");
+m_vk.cmdBeginQueryIndexedEXT                                   = (CmdBeginQueryIndexedEXTFunc)                                         GET_PROC_ADDR("vkCmdBeginQueryIndexedEXT");
+m_vk.cmdEndQueryIndexedEXT                                             = (CmdEndQueryIndexedEXTFunc)                                           GET_PROC_ADDR("vkCmdEndQueryIndexedEXT");
+m_vk.cmdDrawIndirectByteCountEXT                               = (CmdDrawIndirectByteCountEXTFunc)                                     GET_PROC_ADDR("vkCmdDrawIndirectByteCountEXT");
 m_vk.cmdDrawIndirectCountAMD                                   = (CmdDrawIndirectCountAMDFunc)                                         GET_PROC_ADDR("vkCmdDrawIndirectCountAMD");
 m_vk.cmdDrawIndexedIndirectCountAMD                            = (CmdDrawIndexedIndirectCountAMDFunc)                          GET_PROC_ADDR("vkCmdDrawIndexedIndirectCountAMD");
 m_vk.cmdDrawIndirectCountKHR                                   = (CmdDrawIndirectCountKHRFunc)                                         GET_PROC_ADDR("vkCmdDrawIndirectCountKHR");
index a1d55cc..896a9ce 100644 (file)
@@ -1628,6 +1628,62 @@ VKAPI_ATTR void VKAPI_CALL cmdDebugMarkerInsertEXT (VkCommandBuffer commandBuffe
        DE_UNREF(pMarkerInfo);
 }
 
+VKAPI_ATTR void VKAPI_CALL cmdBindTransformFeedbackBuffersEXT (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(firstBinding);
+       DE_UNREF(bindingCount);
+       DE_UNREF(pBuffers);
+       DE_UNREF(pOffsets);
+       DE_UNREF(pSizes);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdBeginTransformFeedbackEXT (VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(firstCounterBuffer);
+       DE_UNREF(counterBufferCount);
+       DE_UNREF(pCounterBuffers);
+       DE_UNREF(pCounterBufferOffsets);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdEndTransformFeedbackEXT (VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(firstCounterBuffer);
+       DE_UNREF(counterBufferCount);
+       DE_UNREF(pCounterBuffers);
+       DE_UNREF(pCounterBufferOffsets);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdBeginQueryIndexedEXT (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags, deUint32 index)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(queryPool);
+       DE_UNREF(query);
+       DE_UNREF(flags);
+       DE_UNREF(index);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdEndQueryIndexedEXT (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, deUint32 index)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(queryPool);
+       DE_UNREF(query);
+       DE_UNREF(index);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdDrawIndirectByteCountEXT (VkCommandBuffer commandBuffer, deUint32 instanceCount, deUint32 firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, deUint32 counterOffset, deUint32 vertexStride)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(instanceCount);
+       DE_UNREF(firstInstance);
+       DE_UNREF(counterBuffer);
+       DE_UNREF(counterBufferOffset);
+       DE_UNREF(counterOffset);
+       DE_UNREF(vertexStride);
+}
+
 VKAPI_ATTR void VKAPI_CALL cmdDrawIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride)
 {
        DE_UNREF(commandBuffer);
@@ -2206,6 +2262,12 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerBeginEXT,                                    cmdDebugMarkerBeginEXT),
        VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerEndEXT,                                              cmdDebugMarkerEndEXT),
        VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerInsertEXT,                                   cmdDebugMarkerInsertEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdBindTransformFeedbackBuffersEXT,                cmdBindTransformFeedbackBuffersEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdBeginTransformFeedbackEXT,                              cmdBeginTransformFeedbackEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdEndTransformFeedbackEXT,                                cmdEndTransformFeedbackEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdBeginQueryIndexedEXT,                                   cmdBeginQueryIndexedEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdEndQueryIndexedEXT,                                             cmdEndQueryIndexedEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectByteCountEXT,                               cmdDrawIndirectByteCountEXT),
        VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectCountAMD,                                   cmdDrawIndirectCountAMD),
        VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirectCountAMD,                    cmdDrawIndexedIndirectCountAMD),
        VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectCountKHR,                                   cmdDrawIndirectCountKHR),
index fb28474..55c10ef 100644 (file)
@@ -453,15 +453,15 @@ Move<VkRenderPass> makeRenderPass (const DeviceInterface&                         vk,
 
        const VkRenderPassCreateInfo                    renderPassInfo                                          =
        {
-               VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,      // VkStructureType                   sType
-               DE_NULL,                                                                        // const void*                       pNext
-               (VkRenderPassCreateFlags)0,                                     // VkRenderPassCreateFlags           flags
-               (deUint32)attachmentDescriptions.size(),        // deUint32                          attachmentCount
-               &attachmentDescriptions[0],                                     // const VkAttachmentDescription*    pAttachments
-               1u,                                                                                     // deUint32                          subpassCount
-               &subpassDescription,                                            // const VkSubpassDescription*       pSubpasses
-               0u,                                                                                     // deUint32                          dependencyCount
-               DE_NULL                                                                         // const VkSubpassDependency*        pDependencies
+               VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,                                                                      // VkStructureType                   sType
+               DE_NULL,                                                                                                                                        // const void*                       pNext
+               (VkRenderPassCreateFlags)0,                                                                                                     // VkRenderPassCreateFlags           flags
+               (deUint32)attachmentDescriptions.size(),                                                                        // deUint32                          attachmentCount
+               attachmentDescriptions.size() > 0 ? &attachmentDescriptions[0] : DE_NULL,       // const VkAttachmentDescription*    pAttachments
+               1u,                                                                                                                                                     // deUint32                          subpassCount
+               &subpassDescription,                                                                                                            // const VkSubpassDescription*       pSubpasses
+               0u,                                                                                                                                                     // deUint32                          dependencyCount
+               DE_NULL                                                                                                                                         // const VkSubpassDependency*        pDependencies
        };
 
        return createRenderPass(vk, device, &renderPassInfo, allocationCallbacks);
index b86acf2..4828b33 100644 (file)
@@ -185,7 +185,7 @@ void getDefaultBuiltInResources (TBuiltInResource* builtin)
        builtin->maxCombinedAtomicCounterBuffers                        = 1;
        builtin->maxAtomicCounterBufferSize                                     = 16384;
        builtin->maxTransformFeedbackBuffers                            = 4;
-       builtin->maxTransformFeedbackInterleavedComponents      = 64;
+       builtin->maxTransformFeedbackInterleavedComponents      = 16382;
        builtin->maxCullDistances                                                       = 8;
        builtin->maxCombinedClipAndCullDistances                        = 8;
        builtin->maxSamples                                                                     = 4;
index 49b6a8a..a276188 100644 (file)
@@ -288,6 +288,7 @@ tcu::Format::Bitfield<32>   getMirSurfaceCreateFlagsKHRStr                                                  (VkMirSurfaceCrea
 tcu::Format::Bitfield<32>      getAndroidSurfaceCreateFlagsKHRStr                                              (VkAndroidSurfaceCreateFlagsKHR value);
 tcu::Format::Bitfield<32>      getWin32SurfaceCreateFlagsKHRStr                                                (VkWin32SurfaceCreateFlagsKHR value);
 tcu::Format::Bitfield<32>      getAcquireProfilingLockFlagsKHRStr                                              (VkAcquireProfilingLockFlagsKHR value);
+tcu::Format::Bitfield<32>      getPipelineRasterizationStateStreamCreateFlagsEXTStr    (VkPipelineRasterizationStateStreamCreateFlagsEXT value);
 tcu::Format::Bitfield<32>      getViSurfaceCreateFlagsNNStr                                                    (VkViSurfaceCreateFlagsNN value);
 tcu::Format::Bitfield<32>      getPipelineViewportSwizzleStateCreateFlagsNVStr                 (VkPipelineViewportSwizzleStateCreateFlagsNV value);
 tcu::Format::Bitfield<32>      getPipelineDiscardRectangleStateCreateFlagsEXTStr               (VkPipelineDiscardRectangleStateCreateFlagsEXT value);
@@ -565,6 +566,9 @@ std::ostream&       operator<<      (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& val
 std::ostream&  operator<<      (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value);
 std::ostream&  operator<<      (std::ostream& s, const VkExternalImageFormatPropertiesNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value);
index abeafae..bb19537 100644 (file)
@@ -246,6 +246,9 @@ const char* getStructureTypeName (VkStructureType value)
                case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:                                               return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
                case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:                                              return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
                case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:                                    return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:                                 return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:                               return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:                             return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
                case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:                                                return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
                case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:                                                    return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
                case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:                                                                  return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
@@ -680,11 +683,12 @@ const char* getQueryTypeName (VkQueryType value)
 {
        switch (value)
        {
-               case VK_QUERY_TYPE_OCCLUSION:                           return "VK_QUERY_TYPE_OCCLUSION";
-               case VK_QUERY_TYPE_PIPELINE_STATISTICS:         return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
-               case VK_QUERY_TYPE_TIMESTAMP:                           return "VK_QUERY_TYPE_TIMESTAMP";
-               case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:       return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
-               default:                                                                        return DE_NULL;
+               case VK_QUERY_TYPE_OCCLUSION:                                           return "VK_QUERY_TYPE_OCCLUSION";
+               case VK_QUERY_TYPE_PIPELINE_STATISTICS:                         return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
+               case VK_QUERY_TYPE_TIMESTAMP:                                           return "VK_QUERY_TYPE_TIMESTAMP";
+               case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:       return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
+               case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:                       return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
+               default:                                                                                        return DE_NULL;
        }
 }
 
@@ -1652,6 +1656,7 @@ tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
                tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,                                                        "VK_PIPELINE_STAGE_HOST_BIT"),
                tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,                                        "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
                tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,                                        "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,                      "VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
                tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX,                         "VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX"),
                tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,           "VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
        };
@@ -1750,17 +1755,19 @@ tcu::Format::Bitfield<32> getBufferUsageFlagsStr (VkBufferUsageFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,                          "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,                          "VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,          "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,          "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,                        "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,                        "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,                          "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,                         "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,                       "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,     "VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,     "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,                                                  "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,                                                  "VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,                                  "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,                                  "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,                                                "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,                                                "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,                                                  "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,                                                 "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,                                               "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,                 "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT, "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,                             "VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,                             "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -1887,6 +1894,9 @@ tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
                tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,                                                          "VK_ACCESS_HOST_WRITE_BIT"),
                tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,                                                         "VK_ACCESS_MEMORY_READ_BIT"),
                tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,                                                        "VK_ACCESS_MEMORY_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,                        "VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,         "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,        "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
                tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,                      "VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
                tcu::Format::BitDesc(VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX,                            "VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX"),
                tcu::Format::BitDesc(VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX,                           "VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX"),
@@ -2446,6 +2456,11 @@ tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfiling
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
+tcu::Format::Bitfield<32> getPipelineRasterizationStateStreamCreateFlagsEXTStr (VkPipelineRasterizationStateStreamCreateFlagsEXT value)
+{
+       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
+}
+
 tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
@@ -5865,6 +5880,47 @@ std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllo
        return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
+{
+       s << "VkPhysicalDeviceTransformFeedbackFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\ttransformFeedback = " << value.transformFeedback << '\n';
+       s << "\tgeometryStreams = " << value.geometryStreams << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
+{
+       s << "VkPhysicalDeviceTransformFeedbackPropertiesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmaxTransformFeedbackStreams = " << value.maxTransformFeedbackStreams << '\n';
+       s << "\tmaxTransformFeedbackBuffers = " << value.maxTransformFeedbackBuffers << '\n';
+       s << "\tmaxTransformFeedbackBufferSize = " << value.maxTransformFeedbackBufferSize << '\n';
+       s << "\tmaxTransformFeedbackStreamDataSize = " << value.maxTransformFeedbackStreamDataSize << '\n';
+       s << "\tmaxTransformFeedbackBufferDataSize = " << value.maxTransformFeedbackBufferDataSize << '\n';
+       s << "\tmaxTransformFeedbackBufferDataStride = " << value.maxTransformFeedbackBufferDataStride << '\n';
+       s << "\ttransformFeedbackQueries = " << value.transformFeedbackQueries << '\n';
+       s << "\ttransformFeedbackStreamsLinesTriangles = " << value.transformFeedbackStreamsLinesTriangles << '\n';
+       s << "\ttransformFeedbackRasterizationStreamSelect = " << value.transformFeedbackRasterizationStreamSelect << '\n';
+       s << "\ttransformFeedbackDraw = " << value.transformFeedbackDraw << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value)
+{
+       s << "VkPipelineRasterizationStateStreamCreateInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getPipelineRasterizationStateStreamCreateFlagsEXTStr(value.flags) << '\n';
+       s << "\trasterizationStream = " << value.rasterizationStream << '\n';
+       s << '}';
+       return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
 {
        s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
index 34b34ab..dc1147b 100644 (file)
@@ -2574,6 +2574,38 @@ struct VkDedicatedAllocationMemoryAllocateInfoNV
        VkBuffer                buffer;
 };
 
+struct VkPhysicalDeviceTransformFeedbackFeaturesEXT
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                transformFeedback;
+       VkBool32                geometryStreams;
+};
+
+struct VkPhysicalDeviceTransformFeedbackPropertiesEXT
+{
+       VkStructureType sType;
+       void*                   pNext;
+       deUint32                maxTransformFeedbackStreams;
+       deUint32                maxTransformFeedbackBuffers;
+       VkDeviceSize    maxTransformFeedbackBufferSize;
+       deUint32                maxTransformFeedbackStreamDataSize;
+       deUint32                maxTransformFeedbackBufferDataSize;
+       deUint32                maxTransformFeedbackBufferDataStride;
+       VkBool32                transformFeedbackQueries;
+       VkBool32                transformFeedbackStreamsLinesTriangles;
+       VkBool32                transformFeedbackRasterizationStreamSelect;
+       VkBool32                transformFeedbackDraw;
+};
+
+struct VkPipelineRasterizationStateStreamCreateInfoEXT
+{
+       VkStructureType                                                                         sType;
+       const void*                                                                                     pNext;
+       VkPipelineRasterizationStateStreamCreateFlagsEXT        flags;
+       deUint32                                                                                        rasterizationStream;
+};
+
 struct VkTextureLODGatherFormatPropertiesAMD
 {
        VkStructureType sType;
index c872700..7ed0a86 100644 (file)
@@ -173,6 +173,12 @@ virtual VkResult                   debugMarkerSetObjectNameEXT                                     (VkDevice device, const VkDeb
 virtual void                           cmdDebugMarkerBeginEXT                                          (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
 virtual void                           cmdDebugMarkerEndEXT                                            (VkCommandBuffer commandBuffer) const = 0;
 virtual void                           cmdDebugMarkerInsertEXT                                         (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
+virtual void                           cmdBindTransformFeedbackBuffersEXT                      (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) const = 0;
+virtual void                           cmdBeginTransformFeedbackEXT                            (VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const = 0;
+virtual void                           cmdEndTransformFeedbackEXT                                      (VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const = 0;
+virtual void                           cmdBeginQueryIndexedEXT                                         (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags, deUint32 index) const = 0;
+virtual void                           cmdEndQueryIndexedEXT                                           (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, deUint32 index) const = 0;
+virtual void                           cmdDrawIndirectByteCountEXT                                     (VkCommandBuffer commandBuffer, deUint32 instanceCount, deUint32 firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, deUint32 counterOffset, deUint32 vertexStride) const = 0;
 virtual void                           cmdDrawIndirectCountAMD                                         (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
 virtual void                           cmdDrawIndexedIndirectCountAMD                          (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
 virtual void                           cmdDrawIndirectCountKHR                                         (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
index 48551cc..0f9e254 100644 (file)
@@ -297,6 +297,9 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
+    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
@@ -732,6 +735,7 @@ typedef enum VkQueryType {
     VK_QUERY_TYPE_OCCLUSION = 0,
     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
     VK_QUERY_TYPE_TIMESTAMP = 2,
+    VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
     VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
     VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
@@ -1287,6 +1291,7 @@ typedef enum VkPipelineStageFlagBits {
     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
+    VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
     VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
@@ -1374,6 +1379,8 @@ typedef enum VkBufferUsageFlagBits {
     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
+    VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
+    VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 0x00020000,
     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
@@ -1490,6 +1497,9 @@ typedef enum VkAccessFlagBits {
     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
+    VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
+    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
+    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
     VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
     VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
@@ -6798,6 +6808,95 @@ typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
 
 
 
+#define VK_EXT_transform_feedback 1
+#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
+#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
+
+typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
+
+typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           transformFeedback;
+    VkBool32           geometryStreams;
+} VkPhysicalDeviceTransformFeedbackFeaturesEXT;
+
+typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    deUint32           maxTransformFeedbackStreams;
+    deUint32           maxTransformFeedbackBuffers;
+    VkDeviceSize       maxTransformFeedbackBufferSize;
+    deUint32           maxTransformFeedbackStreamDataSize;
+    deUint32           maxTransformFeedbackBufferDataSize;
+    deUint32           maxTransformFeedbackBufferDataStride;
+    VkBool32           transformFeedbackQueries;
+    VkBool32           transformFeedbackStreamsLinesTriangles;
+    VkBool32           transformFeedbackRasterizationStreamSelect;
+    VkBool32           transformFeedbackDraw;
+} VkPhysicalDeviceTransformFeedbackPropertiesEXT;
+
+typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
+    VkStructureType                                     sType;
+    const void*                                         pNext;
+    VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
+    deUint32                                            rasterizationStream;
+} VkPipelineRasterizationStateStreamCreateInfoEXT;
+
+
+typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
+typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
+typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
+typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags, deUint32 index);
+typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, deUint32 index);
+typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, deUint32 instanceCount, deUint32 firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, deUint32 counterOffset, deUint32 vertexStride);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
+    VkCommandBuffer                             commandBuffer,
+    deUint32                                    firstBinding,
+    deUint32                                    bindingCount,
+    const VkBuffer*                             pBuffers,
+    const VkDeviceSize*                         pOffsets,
+    const VkDeviceSize*                         pSizes);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
+    VkCommandBuffer                             commandBuffer,
+    deUint32                                    firstCounterBuffer,
+    deUint32                                    counterBufferCount,
+    const VkBuffer*                             pCounterBuffers,
+    const VkDeviceSize*                         pCounterBufferOffsets);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
+    VkCommandBuffer                             commandBuffer,
+    deUint32                                    firstCounterBuffer,
+    deUint32                                    counterBufferCount,
+    const VkBuffer*                             pCounterBuffers,
+    const VkDeviceSize*                         pCounterBufferOffsets);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkQueryPool                                 queryPool,
+    deUint32                                    query,
+    VkQueryControlFlags                         flags,
+    deUint32                                    index);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkQueryPool                                 queryPool,
+    deUint32                                    query,
+    deUint32                                    index);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
+    VkCommandBuffer                             commandBuffer,
+    deUint32                                    instanceCount,
+    deUint32                                    firstInstance,
+    VkBuffer                                    counterBuffer,
+    VkDeviceSize                                counterBufferOffset,
+    deUint32                                    counterOffset,
+    deUint32                                    vertexStride);
+#endif
+
 #define VK_AMD_draw_indirect_count 1
 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
index 161cca7..cfade52 100644 (file)
@@ -32,6 +32,7 @@ add_subdirectory(subgroups)
 add_subdirectory(ycbcr)
 add_subdirectory(protected_memory)
 add_subdirectory(memory_model)
+add_subdirectory(transform_feedback)
 add_subdirectory(util)
 add_subdirectory(amber)
 add_subdirectory(imageless_framebuffer)
@@ -69,6 +70,7 @@ include_directories(
        ycbcr
        protected_memory
        memory_model
+       transform_feedback
        util
        amber
        imageless_framebuffer
@@ -128,6 +130,7 @@ set(DEQP_VK_LIBS
        deqp-vk-memory-model
        deqp-vk-amber
        deqp-vk-imageless-framebuffer
+       deqp-vk-transform-feedback
        )
 
 if (DE_COMPILER_IS_MSC AND (DE_PTR_SIZE EQUAL 4))
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/CMakeLists.txt b/external/vulkancts/modules/vulkan/transform_feedback/CMakeLists.txt
new file mode 100644 (file)
index 0000000..dea2c62
--- /dev/null
@@ -0,0 +1,22 @@
+include_directories(..)
+
+set(DEQP_VK_TRANSFORM_FEEDBACK_SRCS
+       vktTransformFeedbackTests.hpp
+       vktTransformFeedbackTests.cpp
+       vktTransformFeedbackSimpleTests.hpp
+       vktTransformFeedbackSimpleTests.cpp
+       vktTransformFeedbackFuzzLayoutCase.cpp
+       vktTransformFeedbackFuzzLayoutCase.hpp
+       vktTransformFeedbackFuzzLayoutTests.cpp
+       vktTransformFeedbackFuzzLayoutTests.hpp
+       vktTransformFeedbackRandomLayoutCase.cpp
+       vktTransformFeedbackRandomLayoutCase.hpp
+)
+
+set(DEQP_VK_TRANSFORM_FEEDBACK_LIBS
+       tcutil
+       vkutil
+)
+
+add_library(deqp-vk-transform-feedback STATIC ${DEQP_VK_TRANSFORM_FEEDBACK_SRCS})
+target_link_libraries(deqp-vk-transform-feedback ${DEQP_VK_TRANSFORM_FEEDBACK_LIBS})
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp
new file mode 100644 (file)
index 0000000..1c58a45
--- /dev/null
@@ -0,0 +1,2076 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2015 The Khronos Group Inc.
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2016 The Android Open Source Project
+ * Copyright (c) 2018 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan Transform Feedback Fuzz Layout Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTransformFeedbackFuzzLayoutCase.hpp"
+
+#include "vkPrograms.hpp"
+
+#include "gluVarType.hpp"
+#include "tcuTestLog.hpp"
+#include "tcuSurface.hpp"
+#include "deRandom.hpp"
+#include "deStringUtil.hpp"
+
+#include "tcuTextureUtil.hpp"
+#include "deSharedPtr.hpp"
+#include "deFloat16.h"
+
+#include "vkMemUtil.hpp"
+#include "vkQueryUtil.hpp"
+#include "vkTypeUtil.hpp"
+#include "vkRef.hpp"
+#include "vkRefUtil.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkCmdUtil.hpp"
+#include "vkObjUtil.hpp"
+
+#include <map>
+#include <set>
+#include <vector>
+#include <iostream>
+#include <iomanip>
+
+namespace vkt
+{
+namespace TransformFeedback
+{
+
+using namespace vk;
+
+typedef std::map<int, int> BufferGeneralMapping;
+
+typedef std::pair<int, int>                            UsedRange;
+typedef std::vector<UsedRange>                 UsedRangeList;
+typedef std::map<int, UsedRangeList>   BufferUsedRangesMap;
+
+// VarType implementation.
+
+VarType::VarType (void)
+       : m_type        (TYPE_LAST)
+       , m_flags       (0)
+{
+}
+
+VarType::VarType (const VarType& other)
+       : m_type        (TYPE_LAST)
+       , m_flags       (0)
+{
+       *this = other;
+}
+
+VarType::VarType (glu::DataType basicType, deUint32 flags)
+       : m_type        (TYPE_BASIC)
+       , m_flags       (flags)
+{
+       m_data.basicType = basicType;
+}
+
+VarType::VarType (const VarType& elementType, int arraySize)
+       : m_type        (TYPE_ARRAY)
+       , m_flags       (0)
+{
+       m_data.array.size                       = arraySize;
+       m_data.array.elementType        = new VarType(elementType);
+}
+
+VarType::VarType (const StructType* structPtr, deUint32 flags)
+       : m_type        (TYPE_STRUCT)
+       , m_flags       (flags)
+{
+       m_data.structPtr = structPtr;
+}
+
+VarType::~VarType (void)
+{
+       if (m_type == TYPE_ARRAY)
+               delete m_data.array.elementType;
+}
+
+VarType& VarType::operator= (const VarType& other)
+{
+       if (this == &other)
+               return *this; // Self-assignment.
+
+       VarType *oldElementType = m_type == TYPE_ARRAY ? m_data.array.elementType : DE_NULL;
+
+       m_type  = other.m_type;
+       m_flags = other.m_flags;
+       m_data  = Data();
+
+       if (m_type == TYPE_ARRAY)
+       {
+               m_data.array.elementType        = new VarType(*other.m_data.array.elementType);
+               m_data.array.size                       = other.m_data.array.size;
+       }
+       else
+               m_data = other.m_data;
+
+       delete oldElementType;
+
+       return *this;
+}
+
+// StructType implementation.
+void StructType::addMember (const std::string& name, const VarType& type, deUint32 flags)
+{
+       m_members.push_back(StructMember(name, type, flags));
+}
+
+// InterfaceBlockMember implementation.
+InterfaceBlockMember::InterfaceBlockMember (const std::string& name, const VarType& type, deUint32 flags)
+       : m_name        (name)
+       , m_type        (type)
+       , m_flags       (flags)
+{
+}
+
+// InterfaceBlock implementation.
+InterfaceBlock::InterfaceBlock (const std::string& blockName)
+       : m_blockName   (blockName)
+       , m_xfbBuffer   (0)
+       , m_arraySize   (0)
+       , m_flags               (0)
+{
+}
+
+std::ostream& operator<< (std::ostream& stream, const BlockLayoutEntry& entry)
+{
+       stream << entry.name << " { name = " << entry.name
+                  << ", buffer = " << entry.xfbBuffer
+                  << ", offset = " << entry.xfbOffset
+                  << ", size = " << entry.xfbSize
+                  << ", blockDeclarationNdx = " << entry.blockDeclarationNdx
+                  << ", instanceNdx = " << entry.instanceNdx
+                  << ", activeInterfaceIndices = [";
+
+       for (std::vector<int>::const_iterator i = entry.activeInterfaceIndices.begin(); i != entry.activeInterfaceIndices.end(); i++)
+       {
+               if (i != entry.activeInterfaceIndices.begin())
+                       stream << ", ";
+               stream << *i;
+       }
+
+       stream << "] }";
+       return stream;
+}
+
+std::ostream& operator<< (std::ostream& stream, const InterfaceLayoutEntry& entry)
+{
+       stream << entry.name << " { type = " << glu::getDataTypeName(entry.type)
+                  << ", arraySize = " << entry.arraySize
+                  << ", blockNdx = " << entry.blockLayoutNdx
+                  << ", offset = " << entry.offset
+                  << ", arrayStride = " << entry.arrayStride
+                  << ", matrixStride = " << entry.matrixStride
+                  << " }";
+
+       return stream;
+}
+
+std::ostream& operator<< (std::ostream& str, const InterfaceLayout& layout)
+{
+       const int       numBlocks       = (int)layout.blocks.size();
+
+       str << "Blocks:" << std::endl;
+       for (int blockNdx = 0; blockNdx < numBlocks; blockNdx++)
+               str << layout.blocks[blockNdx] << std::endl;
+       str << std::endl;
+
+       str << "Interfaces:" << std::endl;
+       for (int blockNdx = 0; blockNdx < numBlocks; blockNdx++)
+       {
+               int             numEntries      = (int)layout.blocks[blockNdx].activeInterfaceIndices.size();
+
+               for (int entryNdx = 0; entryNdx < numEntries; entryNdx++)
+               {
+                       const InterfaceLayoutEntry&     entry   = layout.interfaces[layout.blocks[blockNdx].activeInterfaceIndices[entryNdx]];
+
+                       str << blockNdx << ":" << entryNdx << " " << entry << std::endl;
+               }
+       }
+       str << std::endl;
+
+       return str;
+}
+
+int InterfaceLayout::getInterfaceLayoutIndex (int blockNdx, const std::string& name) const
+{
+       for (int ndx = 0; ndx < (int)interfaces.size(); ndx++)
+       {
+               if (blocks[interfaces[ndx].blockLayoutNdx].blockDeclarationNdx == blockNdx && interfaces[ndx].name == name)
+                       return ndx;
+       }
+
+       return -1;
+}
+
+int InterfaceLayout::getBlockLayoutIndex (int blockNdx, int instanceNdx) const
+{
+       for (int ndx = 0; ndx < (int)blocks.size(); ndx++)
+       {
+               if (blocks[ndx].blockDeclarationNdx == blockNdx && blocks[ndx].instanceNdx == instanceNdx)
+                       return ndx;
+       }
+
+       return -1;
+}
+
+// ShaderInterface implementation.
+
+ShaderInterface::ShaderInterface (void)
+{
+}
+
+ShaderInterface::~ShaderInterface (void)
+{
+}
+
+StructType& ShaderInterface::allocStruct (const std::string& name)
+{
+       m_structs.push_back(StructTypeSP(new StructType(name)));
+       return *m_structs.back();
+}
+
+struct StructNameEquals
+{
+       std::string name;
+
+       StructNameEquals (const std::string& name_) : name(name_) {}
+
+       bool operator() (const StructTypeSP type) const
+       {
+               return type->hasTypeName() && name == type->getTypeName();
+       }
+};
+
+void ShaderInterface::getNamedStructs (std::vector<const StructType*>& structs) const
+{
+       for (std::vector<StructTypeSP>::const_iterator i = m_structs.begin(); i != m_structs.end(); i++)
+       {
+               if ((*i)->hasTypeName())
+                       structs.push_back((*i).get());
+       }
+}
+
+InterfaceBlock& ShaderInterface::allocBlock (const std::string& name)
+{
+       m_interfaceBlocks.push_back(InterfaceBlockSP(new InterfaceBlock(name)));
+
+       return *m_interfaceBlocks.back();
+}
+
+namespace // Utilities
+{
+
+struct PrecisionFlagsFmt
+{
+       deUint32 flags;
+       PrecisionFlagsFmt (deUint32 flags_) : flags(flags_) {}
+};
+
+void dumpBytes (std::ostream& str, const std::string& msg, const void* dataBytes, size_t size, const void* dataMask = DE_NULL)
+{
+       const deUint8*          data    = (const deUint8*)dataBytes;
+       const deUint8*          mask    = (const deUint8*)dataMask;
+       std::ios::fmtflags      flags;
+
+       str << msg;
+
+       flags = str.flags ( std::ios::hex | std::ios::uppercase );
+       {
+               for (size_t i = 0; i < size; i++)
+               {
+                       if (i%16 == 0) str << std::endl << std::setfill('0') << std::setw(8) << i << ":";
+                       else if (i%8 == 0) str << "  ";
+                       else if (i%4 == 0) str << " ";
+
+                       str << " " << std::setfill('0') << std::setw(2);
+
+                       if (mask == DE_NULL || mask[i] != 0)
+                               str << (deUint32)data[i];
+                       else
+                               str << "__";
+               }
+               str << std::endl << std::endl;
+       }
+       str.flags ( flags );
+}
+
+std::ostream& operator<< (std::ostream& str, const PrecisionFlagsFmt& fmt)
+{
+       // Precision.
+       DE_ASSERT(dePop32(fmt.flags & (PRECISION_LOW|PRECISION_MEDIUM|PRECISION_HIGH)) <= 1);
+       str << (fmt.flags & PRECISION_LOW               ? "lowp"        :
+                       fmt.flags & PRECISION_MEDIUM    ? "mediump"     :
+                       fmt.flags & PRECISION_HIGH              ? "highp"       : "");
+       return str;
+}
+
+struct LayoutFlagsFmt
+{
+       deUint32 flags;
+       deUint32 buffer;
+       deUint32 stride;
+       deUint32 offset;
+
+       LayoutFlagsFmt  (const deUint32 flags_,
+                                        const deUint32 buffer_,
+                                        const deUint32 stride_,
+                                        const deUint32 offset_)
+               : flags         (flags_)
+               , buffer        (buffer_)
+               , stride        (stride_)
+               , offset        (offset_)
+       {
+       }
+};
+
+std::ostream& operator<< (std::ostream& str, const LayoutFlagsFmt& fmt)
+{
+       static const struct
+       {
+               deUint32        bit;
+               const char*     token;
+       } bitDesc[] =
+       {
+               { LAYOUT_XFBBUFFER,     "xfb_buffer"    },
+               { LAYOUT_XFBOFFSET,     "xfb_offset"    },
+               { LAYOUT_XFBSTRIDE,     "xfb_stride"    },
+       };
+
+       deUint32 remBits = fmt.flags;
+       for (int descNdx = 0; descNdx < DE_LENGTH_OF_ARRAY(bitDesc); descNdx++)
+       {
+               if (remBits & bitDesc[descNdx].bit)
+               {
+                       str << bitDesc[descNdx].token;
+
+                       if (bitDesc[descNdx].bit == LAYOUT_XFBBUFFER) str << " = " << fmt.buffer;
+                       if (bitDesc[descNdx].bit == LAYOUT_XFBOFFSET) str << " = " << fmt.offset;
+                       if (bitDesc[descNdx].bit == LAYOUT_XFBSTRIDE) str << " = " << fmt.stride;
+
+                       remBits &= ~bitDesc[descNdx].bit;
+
+                       if (remBits != 0)
+                               str << ", ";
+               }
+       }
+       DE_ASSERT(remBits == 0);
+       return str;
+}
+
+std::ostream& operator<< (std::ostream& str, const DeviceSizeVector& vec)
+{
+       str << " [";
+
+       for (size_t vecNdx = 0; vecNdx < vec.size(); vecNdx++)
+               str << (deUint64)vec[vecNdx] << (vecNdx + 1 < vec.size() ? ", " : "]");
+
+       return str;
+}
+
+// Layout computation.
+
+int getDataTypeByteSize (glu::DataType type)
+{
+       if (getDataTypeScalarType(type) == glu::TYPE_DOUBLE)
+       {
+               return glu::getDataTypeScalarSize(type)*(int)sizeof(deUint64);
+       }
+       else
+       {
+               return glu::getDataTypeScalarSize(type)*(int)sizeof(deUint32);
+       }
+}
+
+int getDataTypeArrayStride (glu::DataType type)
+{
+       DE_ASSERT(!glu::isDataTypeMatrix(type));
+
+       return getDataTypeByteSize(type);
+}
+
+int getDataTypeArrayStrideForLocation (glu::DataType type)
+{
+       DE_ASSERT(!glu::isDataTypeMatrix(type));
+
+       const int baseStride    = getDataTypeByteSize(type);
+       const int vec4Alignment = (int)sizeof(deUint32) * 4;
+
+       return deAlign32(baseStride, vec4Alignment);
+}
+
+int computeInterfaceBlockMemberAlignment (const VarType& type)
+{
+       if (type.isBasicType())
+       {
+               glu::DataType basicType = type.getBasicType();
+
+               if (glu::isDataTypeMatrix(basicType) || isDataTypeVector(basicType))
+                       basicType = glu::getDataTypeScalarType(basicType);
+
+               switch (basicType)
+               {
+                       case glu::TYPE_FLOAT:
+                       case glu::TYPE_INT:
+                       case glu::TYPE_UINT:    return sizeof(deUint32);
+                       case glu::TYPE_DOUBLE:  return sizeof(deUint64);
+                       default:                                TCU_THROW(InternalError, "Invalid type");
+               }
+       }
+       else if (type.isArrayType())
+       {
+               return computeInterfaceBlockMemberAlignment(type.getElementType());
+       }
+       else if (type.isStructType())
+       {
+               int maxAlignment = 0;
+
+               for (StructType::ConstIterator memberIter = type.getStruct().begin(); memberIter != type.getStruct().end(); memberIter++)
+                       maxAlignment = de::max(maxAlignment, computeInterfaceBlockMemberAlignment(memberIter->getType()));
+
+               return maxAlignment;
+       }
+       else
+               TCU_THROW(InternalError, "Invalid type");
+}
+
+void createMask (void* maskBasePtr, const InterfaceLayoutEntry& entry, const void* basePtr0, const void* basePtr)
+{
+       const glu::DataType     scalarType      = glu::getDataTypeScalarType(entry.type);
+       const int                       scalarSize      = glu::getDataTypeScalarSize(entry.type);
+       const bool                      isMatrix        = glu::isDataTypeMatrix(entry.type);
+       const int                       numVecs         = isMatrix ? glu::getDataTypeMatrixNumColumns(entry.type) : 1;
+       const int                       vecSize         = scalarSize / numVecs;
+       const bool                      isArray         = entry.arraySize > 1;
+       const size_t            compSize        = getDataTypeByteSize(scalarType);
+
+       DE_ASSERT(scalarSize%numVecs == 0);
+
+       for (int elemNdx = 0; elemNdx < entry.arraySize; elemNdx++)
+       {
+               deUint8* elemPtr = (deUint8*)basePtr + entry.offset + (isArray ? elemNdx*entry.arrayStride : 0);
+
+               for (int vecNdx = 0; vecNdx < numVecs; vecNdx++)
+               {
+                       deUint8* vecPtr = elemPtr + (isMatrix ? vecNdx*entry.matrixStride : 0);
+
+                       for (int compNdx = 0; compNdx < vecSize; compNdx++)
+                       {
+                               const deUint8*  compPtr         = vecPtr + compSize*compNdx;
+                               const size_t    offset          = compPtr - (deUint8*)basePtr0;
+                               deUint8*                maskPtr         = (deUint8*)maskBasePtr + offset;
+
+                               switch (scalarType)
+                               {
+                                       case glu::TYPE_DOUBLE:
+                                       case glu::TYPE_FLOAT:
+                                       case glu::TYPE_INT:
+                                       case glu::TYPE_UINT:
+                                       {
+                                               for (size_t ndx = 0; ndx < compSize; ++ndx)
+                                                       ++maskPtr[ndx];
+
+                                               break;
+                                       }
+                                       default:
+                                               DE_ASSERT(false);
+                               }
+                       }
+               }
+       }
+}
+
+std::vector<deUint8> createMask (const InterfaceLayout& layout, const std::map<int, void*>& blockPointers, const void* basePtr0, const size_t baseSize)
+{
+       std::vector<deUint8>    mask            (baseSize, 0);
+       const int                               numBlocks       ((int)layout.blocks.size());
+
+       for (int blockNdx = 0; blockNdx < numBlocks; blockNdx++)
+       {
+               void*   basePtr         = blockPointers.find(blockNdx)->second;
+               int             numEntries      = (int)layout.blocks[blockNdx].activeInterfaceIndices.size();
+
+               for (int entryNdx = 0; entryNdx < numEntries; entryNdx++)
+               {
+                       const InterfaceLayoutEntry&     entry   = layout.interfaces[layout.blocks[blockNdx].activeInterfaceIndices[entryNdx]];
+
+                       if (entry.validate)
+                               createMask (&mask[0], entry, basePtr0, basePtr);
+               }
+       }
+
+       return mask;
+}
+
+int computeInterfaceBlockAlignment(const InterfaceBlock& interfaceBlock)
+{
+       int baseAlignment = 0;
+
+       for (InterfaceBlock::ConstIterator memberIter = interfaceBlock.begin(); memberIter != interfaceBlock.end(); memberIter++)
+       {
+               const InterfaceBlockMember& member = *memberIter;
+
+               baseAlignment = std::max(baseAlignment, computeInterfaceBlockMemberAlignment(member.getType()));
+       }
+
+       return baseAlignment;
+}
+
+static inline bool isOverlaped(const int a1, const int b1, const int a2, const int b2)
+{
+       DE_ASSERT(b1 > 0 && b2 > 0);
+
+       const int b1s = b1 - 1;
+       const int b2s = b2 - 1;
+
+       return  deInRange32(a1,  a2, b2s) ||
+                       deInRange32(b1s, a2, b2s) ||
+                       deInRange32(a2,  a1, b1s) ||
+                       deInRange32(b2s, a1, b1s);
+}
+
+void computeXfbLayout (InterfaceLayout& layout, int& curOffset, int& curLocation, int curBlockNdx, const std::string& curPrefix, const VarType& type, deUint32 layoutFlags)
+{
+       const int       locationAlignSize       = 16;
+       const bool      validate                        = 0 == (layoutFlags & (FIELD_MISSING|FIELD_UNASSIGNED));
+       int                     baseAlignment           = computeInterfaceBlockMemberAlignment(type);
+
+       DE_ASSERT(baseAlignment == sizeof(deUint32) || baseAlignment == sizeof(deUint64));
+
+       curOffset = deAlign32(curOffset, baseAlignment);
+
+       if (type.isBasicType())
+       {
+               const glu::DataType             basicType                               = type.getBasicType();
+               int                                             fieldSize                               = 0;
+               int                                             fieldSizeForLocation    = 0;
+               InterfaceLayoutEntry    entry;
+
+               entry.name                              = curPrefix;
+               entry.type                              = basicType;
+               entry.arraySize                 = 1;
+               entry.arrayStride               = 0;
+               entry.matrixStride              = 0;
+               entry.blockLayoutNdx    = curBlockNdx;
+               entry.locationNdx               = 0;
+               entry.validate                  = validate;
+
+               if (glu::isDataTypeMatrix(basicType))
+               {
+                       // Array of vectors
+                       const int                               vecSize                         = glu::getDataTypeMatrixNumRows(basicType);
+                       const int                               numVecs                         = glu::getDataTypeMatrixNumColumns(basicType);
+                       const glu::DataType             elemType                        = glu::getDataTypeScalarType(basicType);
+                       const int                               stride                          = getDataTypeArrayStride(glu::getDataTypeVector(elemType, vecSize));
+                       const int                               strideForLocation       = getDataTypeArrayStrideForLocation(glu::getDataTypeVector(elemType, vecSize));
+
+                       entry.matrixStride              = stride;
+
+                       fieldSize                               = numVecs * stride;
+                       fieldSizeForLocation    = numVecs * strideForLocation;
+               }
+               else
+               {
+                       // Scalar or vector.
+                       fieldSize                               = getDataTypeByteSize(basicType);
+                       fieldSizeForLocation    = deAlign32(fieldSize, locationAlignSize);
+               }
+
+               entry.offset            = curOffset;
+               entry.locationNdx       = curLocation;
+
+               curOffset += fieldSize;
+               curLocation += deDivRoundUp32(fieldSizeForLocation, locationAlignSize);
+
+               layout.interfaces.push_back(entry);
+       }
+       else if (type.isArrayType())
+       {
+               const VarType&  elemType        = type.getElementType();
+
+               if (elemType.isBasicType() && !glu::isDataTypeMatrix(elemType.getBasicType()))
+               {
+                       // Array of scalars or vectors.
+                       const glu::DataType             elemBasicType                   = elemType.getBasicType();
+                       const int                               stride                                  = getDataTypeArrayStride(elemBasicType);
+                       const int                               fieldSize                               = stride * type.getArraySize();
+                       const int                               strideForLocation               = getDataTypeArrayStrideForLocation(elemBasicType);
+                       const int                               fieldSizeForLocation    = strideForLocation * type.getArraySize();
+                       InterfaceLayoutEntry    entry;
+
+                       entry.name                              = curPrefix + "[0]"; // Array interfaces are always postfixed with [0]
+                       entry.type                              = elemBasicType;
+                       entry.blockLayoutNdx    = curBlockNdx;
+                       entry.offset                    = curOffset;
+                       entry.arraySize                 = type.getArraySize();
+                       entry.arrayStride               = stride;
+                       entry.matrixStride              = 0;
+                       entry.locationNdx               = curLocation;
+                       entry.validate                  = validate;
+
+                       curOffset += fieldSize;
+                       curLocation += deDivRoundUp32(fieldSizeForLocation, locationAlignSize);
+
+                       layout.interfaces.push_back(entry);
+               }
+               else if (elemType.isBasicType() && glu::isDataTypeMatrix(elemType.getBasicType()))
+               {
+                       // Array of matrices.
+                       const glu::DataType             elemBasicType                   = elemType.getBasicType();
+                       const glu::DataType             scalarType                              = glu::getDataTypeScalarType(elemBasicType);
+                       const int                               vecSize                                 = glu::getDataTypeMatrixNumRows(elemBasicType);
+                       const int                               numVecs                                 = glu::getDataTypeMatrixNumColumns(elemBasicType);
+                       const int                               stride                                  = getDataTypeArrayStride(glu::getDataTypeVector(scalarType, vecSize));
+                       const int                               fieldSize                               = numVecs * type.getArraySize() * stride;
+                       const int                               strideForLocation               = getDataTypeArrayStrideForLocation(glu::getDataTypeVector(scalarType, vecSize));
+                       const int                               fieldSizeForLocation    = numVecs * type.getArraySize() * strideForLocation;
+                       InterfaceLayoutEntry    entry;
+
+                       entry.name                              = curPrefix + "[0]"; // Array interfaces are always postfixed with [0]
+                       entry.type                              = elemBasicType;
+                       entry.blockLayoutNdx    = curBlockNdx;
+                       entry.offset                    = curOffset;
+                       entry.arraySize                 = type.getArraySize();
+                       entry.arrayStride               = stride*numVecs;
+                       entry.matrixStride              = stride;
+                       entry.locationNdx               = curLocation;
+                       entry.validate                  = validate;
+
+                       curOffset += fieldSize;
+                       curLocation += deDivRoundUp32(fieldSizeForLocation, locationAlignSize);
+
+                       layout.interfaces.push_back(entry);
+               }
+               else
+               {
+                       DE_ASSERT(elemType.isStructType() || elemType.isArrayType());
+
+                       for (int elemNdx = 0; elemNdx < type.getArraySize(); elemNdx++)
+                               computeXfbLayout(layout, curOffset, curLocation, curBlockNdx, curPrefix + "[" + de::toString(elemNdx) + "]", type.getElementType(), layoutFlags);
+               }
+       }
+       else
+       {
+               DE_ASSERT(type.isStructType());
+
+               for (StructType::ConstIterator memberIter = type.getStruct().begin(); memberIter != type.getStruct().end(); memberIter++)
+                       computeXfbLayout(layout, curOffset, curLocation, curBlockNdx, curPrefix + "." + memberIter->getName(), memberIter->getType(), (memberIter->getFlags() | layoutFlags) & FIELD_OPTIONS);
+
+               curOffset = deAlign32(curOffset, baseAlignment);
+       }
+}
+
+void computeXfbLayout (InterfaceLayout& layout, ShaderInterface& shaderInterface, BufferGeneralMapping& perBufferXfbOffsets, deUint32& locationsUsed)
+{
+       const int                               numInterfaceBlocks      = shaderInterface.getNumInterfaceBlocks();
+       int                                             curLocation                     = 0;
+       BufferGeneralMapping    bufferAlignments;
+       BufferGeneralMapping    buffersList;
+       BufferGeneralMapping    bufferStrideGroup;
+       BufferUsedRangesMap             bufferUsedRanges;
+
+       for (int blockNdx = 0; blockNdx < numInterfaceBlocks; blockNdx++)
+       {
+               const InterfaceBlock&   interfaceBlock  = shaderInterface.getInterfaceBlock(blockNdx);
+               const int                               xfbBuffer               = interfaceBlock.getXfbBuffer();
+
+               buffersList[xfbBuffer] = 1;
+               bufferStrideGroup[xfbBuffer] = xfbBuffer;
+       }
+
+       for (BufferGeneralMapping::const_iterator xfbBuffersIter = buffersList.begin(); xfbBuffersIter != buffersList.end(); xfbBuffersIter++)
+       {
+               const int       xfbBufferAnalyzed       = xfbBuffersIter->first;
+
+               for (int blockNdx = 0; blockNdx < numInterfaceBlocks; blockNdx++)
+               {
+                       InterfaceBlock& interfaceBlock  = shaderInterface.getInterfaceBlockForModify(blockNdx);
+
+                       if (interfaceBlock.getXfbBuffer() == xfbBufferAnalyzed)
+                       {
+                               const bool                      hasInstanceName         = interfaceBlock.hasInstanceName();
+                               const std::string       blockPrefix                     = hasInstanceName ? (interfaceBlock.getBlockName() + ".") : "";
+                               const int                       numInstances            = interfaceBlock.isArray() ? interfaceBlock.getArraySize() : 1;
+                               int                                     activeBlockNdx          = (int)layout.blocks.size();
+                               int                                     startInterfaceNdx       = (int)layout.interfaces.size();
+                               int                                     startLocationNdx        = (int)curLocation;
+                               int                                     interfaceAlignement     = computeInterfaceBlockAlignment(interfaceBlock);
+                               int                                     curOffset                       = 0;
+                               int                                     blockSize                       = 0;
+
+                               do
+                               {
+                                       const int               xfbFirstInstanceBuffer                  = interfaceBlock.getXfbBuffer();
+                                       int&                    xfbFirstInstanceBufferOffset    = perBufferXfbOffsets[xfbFirstInstanceBuffer];
+                                       const int               savedLayoutInterfacesNdx                = (int)layout.interfaces.size();
+                                       const int               savedCurOffset                                  = curOffset;
+                                       const int               savedCurLocation                                = curLocation;
+                                       UsedRangeList&  usedRanges                                              = bufferUsedRanges[xfbFirstInstanceBuffer];
+                                       bool                    fitIntoBuffer                                   = true;
+
+                                       // GLSL 4.60
+                                       // Further, if applied to an aggregate containing a double, the offset must also be a multiple of 8,
+                                       // and the space taken in the buffer will be a multiple of 8.
+                                       xfbFirstInstanceBufferOffset    = deAlign32(xfbFirstInstanceBufferOffset, interfaceAlignement);
+
+                                       for (InterfaceBlock::ConstIterator memberIter = interfaceBlock.begin(); memberIter != interfaceBlock.end(); memberIter++)
+                                       {
+                                               const InterfaceBlockMember& member      = *memberIter;
+
+                                               computeXfbLayout(layout, curOffset, curLocation, activeBlockNdx, blockPrefix + member.getName(), member.getType(), member.getFlags() & FIELD_OPTIONS);
+                                       }
+
+                                       // GLSL 4.60
+                                       // Further, if applied to an aggregate containing a double, the offset must also be a multiple of 8,
+                                       // and the space taken in the buffer will be a multiple of 8.
+                                       blockSize       = deAlign32(curOffset, interfaceAlignement);
+
+                                       // Overlapping check
+                                       for (UsedRangeList::const_iterator      usedRangeIt = usedRanges.begin();
+                                                                                                               usedRangeIt != usedRanges.end();
+                                                                                                               ++usedRangeIt)
+                                       {
+                                               const int&      usedRangeStart  = usedRangeIt->first;
+                                               const int&      usedRangeEnd    = usedRangeIt->second;
+                                               const int       genRangeStart   = xfbFirstInstanceBufferOffset;
+                                               const int       genRangeEnd             = xfbFirstInstanceBufferOffset + blockSize;
+
+                                               // Validate if block has overlapping
+                                               if (isOverlaped(genRangeStart, genRangeEnd, usedRangeStart, usedRangeEnd))
+                                               {
+                                                       // Restart from obstacle interface end
+                                                       fitIntoBuffer                                   = false;
+
+                                                       DE_ASSERT(xfbFirstInstanceBufferOffset > usedRangeEnd);
+
+                                                       // Bump up interface start to the end of used range
+                                                       xfbFirstInstanceBufferOffset    = usedRangeEnd;
+
+                                                       // Undo allocation
+                                                       curOffset                                               = savedCurOffset;
+                                                       curLocation                                             = savedCurLocation;
+
+                                                       layout.interfaces.resize(savedLayoutInterfacesNdx);
+                                               }
+                                       }
+
+                                       if (fitIntoBuffer)
+                                               break;
+                               } while (true);
+
+                               const int       xfbFirstInstanceBuffer                  = interfaceBlock.getXfbBuffer();
+                               const int       xfbFirstInstanceBufferOffset    = perBufferXfbOffsets[xfbFirstInstanceBuffer];
+                               const int       endInterfaceNdx                                 = (int)layout.interfaces.size();
+                               const int       blockSizeInLocations                    = curLocation - startLocationNdx;
+
+                               curLocation -= blockSizeInLocations;
+
+                               if (numInstances > 1)
+                                       interfaceBlock.setFlag(LAYOUT_XFBSTRIDE);
+
+                               // Create block layout entries for each instance.
+                               for (int instanceNdx = 0; instanceNdx < numInstances; instanceNdx++)
+                               {
+                                       // Allocate entry for instance.
+                                       layout.blocks.push_back(BlockLayoutEntry());
+
+                                       BlockLayoutEntry&       blockEntry              = layout.blocks.back();
+                                       const int                       xfbBuffer               = xfbFirstInstanceBuffer + instanceNdx;
+                                       int&                            xfbBufferOffset = perBufferXfbOffsets[xfbBuffer];
+
+                                       DE_ASSERT(xfbBufferOffset <= xfbFirstInstanceBufferOffset);
+
+                                       xfbBufferOffset                                 = xfbFirstInstanceBufferOffset;
+
+                                       blockEntry.name                                 = interfaceBlock.getBlockName();
+                                       blockEntry.xfbBuffer                    = xfbBuffer;
+                                       blockEntry.xfbOffset                    = xfbBufferOffset;
+                                       blockEntry.xfbSize                              = blockSize;
+                                       blockEntry.blockDeclarationNdx  = blockNdx;
+                                       blockEntry.instanceNdx                  = instanceNdx;
+                                       blockEntry.locationNdx                  = curLocation;
+                                       blockEntry.locationSize                 = blockSizeInLocations;
+
+                                       xfbBufferOffset += blockSize;
+                                       curLocation             += blockSizeInLocations;
+
+                                       // Compute active interface set for block.
+                                       for (int interfaceNdx = startInterfaceNdx; interfaceNdx < endInterfaceNdx; interfaceNdx++)
+                                               blockEntry.activeInterfaceIndices.push_back(interfaceNdx);
+
+                                       if (interfaceBlock.isArray())
+                                               blockEntry.name += "[" + de::toString(instanceNdx) + "]";
+
+                                       bufferUsedRanges[xfbBuffer].push_back(UsedRange(blockEntry.xfbOffset, blockEntry.xfbOffset + blockEntry.xfbSize));
+
+                                       // Store maximum per-buffer alignment
+                                       bufferAlignments[xfbBuffer] = std::max(interfaceAlignement, bufferAlignments[xfbBuffer]);
+
+                                       // Buffers bound through instanced arrays must have same stride (and alignment)
+                                       bufferStrideGroup[xfbBuffer] = bufferStrideGroup[xfbFirstInstanceBuffer];
+                               }
+                       }
+               }
+       }
+
+       // All XFB buffers within group must have same stride
+       {
+               BufferGeneralMapping groupStride;
+
+               for (BufferGeneralMapping::const_iterator xfbBuffersIter = perBufferXfbOffsets.begin(); xfbBuffersIter != perBufferXfbOffsets.end(); xfbBuffersIter++)
+               {
+                       const int       xfbBuffer       = xfbBuffersIter->first;
+                       const int       xfbStride       = perBufferXfbOffsets[xfbBuffer];
+                       const int       group           = bufferStrideGroup[xfbBuffer];
+
+                       groupStride[group] = std::max(groupStride[group], xfbStride);
+               }
+
+               for (BufferGeneralMapping::const_iterator xfbBuffersIter = perBufferXfbOffsets.begin(); xfbBuffersIter != perBufferXfbOffsets.end(); xfbBuffersIter++)
+               {
+                       const int       xfbBuffer       = xfbBuffersIter->first;
+                       const int       group           = bufferStrideGroup[xfbBuffer];
+
+                       perBufferXfbOffsets[xfbBuffer] = groupStride[group];
+               }
+       }
+
+       // All XFB buffers within group must have same stride alignment
+       {
+               BufferGeneralMapping groupAlignment;
+
+               for (BufferGeneralMapping::const_iterator xfbBuffersIter = perBufferXfbOffsets.begin(); xfbBuffersIter != perBufferXfbOffsets.end(); xfbBuffersIter++)
+               {
+                       const int       xfbBuffer       = xfbBuffersIter->first;
+                       const int       group           = bufferStrideGroup[xfbBuffer];
+                       const int       xfbAlign        = bufferAlignments[xfbBuffer];
+
+                       groupAlignment[group] = std::max(groupAlignment[group], xfbAlign);
+               }
+
+               for (BufferGeneralMapping::const_iterator xfbBuffersIter = perBufferXfbOffsets.begin(); xfbBuffersIter != perBufferXfbOffsets.end(); xfbBuffersIter++)
+               {
+                       const int       xfbBuffer       = xfbBuffersIter->first;
+                       const int       group           = bufferStrideGroup[xfbBuffer];
+
+                       bufferAlignments[xfbBuffer] = groupAlignment[group];
+               }
+       }
+
+       // GLSL 4.60
+       // If the buffer is capturing any outputs with double-precision components, the stride must be a multiple of 8, ...
+       for (BufferGeneralMapping::const_iterator xfbBuffersIter = perBufferXfbOffsets.begin(); xfbBuffersIter != perBufferXfbOffsets.end(); xfbBuffersIter++)
+       {
+               const int       xfbBuffer       = xfbBuffersIter->first;
+               const int       xfbAlign        = bufferAlignments[xfbBuffer];
+               int&            xfbOffset       = perBufferXfbOffsets[xfbBuffer];
+
+               xfbOffset       = deAlign32(xfbOffset, xfbAlign);
+       }
+
+       // Keep stride in interface blocks
+       for (int blockNdx = 0; blockNdx < (int)layout.blocks.size(); blockNdx++)
+               layout.blocks[blockNdx].xfbStride       = perBufferXfbOffsets[layout.blocks[blockNdx].xfbBuffer];
+
+       locationsUsed = static_cast<deUint32>(curLocation);
+}
+
+// Value generator.
+
+void generateValue (const InterfaceLayoutEntry& entry, void* basePtr, de::Random& rnd)
+{
+       const glu::DataType     scalarType      = glu::getDataTypeScalarType(entry.type);
+       const int                       scalarSize      = glu::getDataTypeScalarSize(entry.type);
+       const bool                      isMatrix        = glu::isDataTypeMatrix(entry.type);
+       const int                       numVecs         = isMatrix ? glu::getDataTypeMatrixNumColumns(entry.type) : 1;
+       const int                       vecSize         = scalarSize / numVecs;
+       const bool                      isArray         = entry.arraySize > 1;
+       const size_t            compSize        = getDataTypeByteSize(scalarType);
+
+       DE_ASSERT(scalarSize%numVecs == 0);
+
+       for (int elemNdx = 0; elemNdx < entry.arraySize; elemNdx++)
+       {
+               deUint8* elemPtr = (deUint8*)basePtr + entry.offset + (isArray ? elemNdx*entry.arrayStride : 0);
+
+               for (int vecNdx = 0; vecNdx < numVecs; vecNdx++)
+               {
+                       deUint8* vecPtr = elemPtr + (isMatrix ? vecNdx*entry.matrixStride : 0);
+
+                       for (int compNdx = 0; compNdx < vecSize; compNdx++)
+                       {
+                               deUint8*        compPtr = vecPtr + compSize*compNdx;
+                               const int       sign    = rnd.getBool() ? +1 : -1;
+                               const int       value   = rnd.getInt(1, 127);
+
+                               switch (scalarType)
+                               {
+                                       case glu::TYPE_DOUBLE:  *((double*)compPtr)             = (double)  (sign * value);     break;
+                                       case glu::TYPE_FLOAT:   *((float*)compPtr)              = (float)   (sign * value);     break;
+                                       case glu::TYPE_INT:             *((deInt32*)compPtr)    = (deInt32) (sign * value);     break;
+                                       case glu::TYPE_UINT:    *((deUint32*)compPtr)   = (deUint32)(       value);     break;
+                                       default:
+                                               DE_ASSERT(false);
+                               }
+                       }
+               }
+       }
+}
+
+void generateValues (const InterfaceLayout& layout, const std::map<int, void*>& blockPointers, deUint32 seed)
+{
+       de::Random      rnd                     (seed);
+       int                     numBlocks       = (int)layout.blocks.size();
+
+       for (int blockNdx = 0; blockNdx < numBlocks; blockNdx++)
+       {
+               void*   basePtr         = blockPointers.find(blockNdx)->second;
+               int             numEntries      = (int)layout.blocks[blockNdx].activeInterfaceIndices.size();
+
+               for (int entryNdx = 0; entryNdx < numEntries; entryNdx++)
+               {
+                       const InterfaceLayoutEntry& entry = layout.interfaces[layout.blocks[blockNdx].activeInterfaceIndices[entryNdx]];
+
+                       if (entry.validate)
+                               generateValue(entry, basePtr, rnd);
+               }
+       }
+}
+
+// Shader generator.
+
+struct Indent
+{
+       int level;
+       Indent (int level_) : level(level_) {}
+};
+
+std::ostream& operator<< (std::ostream& str, const Indent& indent)
+{
+       for (int i = 0; i < indent.level; i++)
+               str << "\t";
+       return str;
+}
+
+void   generateDeclaration                     (std::ostringstream& src, const VarType& type, const std::string& name, int indentLevel, deUint32 unusedHints, deUint32 flagsMask, deUint32 buffer, deUint32 stride, deUint32 offset);
+void   generateDeclaration                     (std::ostringstream& src, const InterfaceBlockMember& member, int indentLevel, deUint32 buffer, deUint32 stride, deUint32 offset);
+void   generateDeclaration                     (std::ostringstream& src, const StructType& structType, int indentLevel);
+
+void   generateLocalDeclaration        (std::ostringstream& src, const StructType& structType, int indentLevel);
+void   generateFullDeclaration         (std::ostringstream& src, const StructType& structType, int indentLevel);
+
+void generateDeclaration (std::ostringstream& src, const StructType& structType, int indentLevel)
+{
+       DE_ASSERT(structType.hasTypeName());
+       generateFullDeclaration(src, structType, indentLevel);
+       src << ";\n";
+}
+
+void generateFullDeclaration (std::ostringstream& src, const StructType& structType, int indentLevel)
+{
+       src << "struct";
+       if (structType.hasTypeName())
+               src << " " << structType.getTypeName();
+       src << "\n" << Indent(indentLevel) << "{\n";
+
+       for (StructType::ConstIterator memberIter = structType.begin(); memberIter != structType.end(); memberIter++)
+       {
+               src << Indent(indentLevel + 1);
+               generateDeclaration(src, memberIter->getType(), memberIter->getName(), indentLevel + 1, memberIter->getFlags() & FIELD_OPTIONS, ~LAYOUT_MASK, 0u, 0u, 0u);
+       }
+
+       src << Indent(indentLevel) << "}";
+}
+
+void generateLocalDeclaration (std::ostringstream& src, const StructType& structType, int /* indentLevel */)
+{
+       src << structType.getTypeName();
+}
+
+void generateLayoutAndPrecisionDeclaration (std::ostringstream& src, deUint32 flags, deUint32 buffer, deUint32 stride, deUint32 offset)
+{
+       if ((flags & LAYOUT_MASK) != 0)
+               src << "layout(" << LayoutFlagsFmt(flags & LAYOUT_MASK, buffer, stride, offset) << ") ";
+
+       if ((flags & PRECISION_MASK) != 0)
+               src << PrecisionFlagsFmt(flags & PRECISION_MASK) << " ";
+}
+
+void generateDeclaration (std::ostringstream& src, const VarType& type, const std::string& name, int indentLevel, deUint32 fieldHints, deUint32 flagsMask, deUint32 buffer, deUint32 stride, deUint32 offset)
+{
+       if (fieldHints & FIELD_MISSING)
+               src << "// ";
+
+       generateLayoutAndPrecisionDeclaration(src, type.getFlags() & flagsMask, buffer, stride, offset);
+
+       if (type.isBasicType())
+               src << glu::getDataTypeName(type.getBasicType()) << " " << name;
+       else if (type.isArrayType())
+       {
+               std::vector<int>        arraySizes;
+               const VarType*          curType         = &type;
+               while (curType->isArrayType())
+               {
+                       arraySizes.push_back(curType->getArraySize());
+                       curType = &curType->getElementType();
+               }
+
+               generateLayoutAndPrecisionDeclaration(src, curType->getFlags() & flagsMask, buffer, stride, offset);
+
+               if (curType->isBasicType())
+                       src << glu::getDataTypeName(curType->getBasicType());
+               else
+               {
+                       DE_ASSERT(curType->isStructType());
+                       generateLocalDeclaration(src, curType->getStruct(), indentLevel+1);
+               }
+
+               src << " " << name;
+
+               for (std::vector<int>::const_iterator sizeIter = arraySizes.begin(); sizeIter != arraySizes.end(); sizeIter++)
+                       src << "[" << *sizeIter << "]";
+       }
+       else
+       {
+               generateLocalDeclaration(src, type.getStruct(), indentLevel+1);
+               src << " " << name;
+       }
+
+       src << ";";
+
+       // Print out unused hints.
+       if (fieldHints & FIELD_MISSING)
+               src << " // missing field";
+       else if (fieldHints & FIELD_UNASSIGNED)
+               src << " // unassigned";
+
+       src << "\n";
+}
+
+void generateDeclaration (std::ostringstream& src, const InterfaceBlockMember& member, int indentLevel, deUint32 buffer, deUint32 stride, deUint32 offset)
+{
+       if ((member.getFlags() & LAYOUT_MASK) != 0)
+               src << "layout(" << LayoutFlagsFmt(member.getFlags() & LAYOUT_MASK, buffer, stride, offset) << ") ";
+
+       generateDeclaration(src, member.getType(), member.getName(), indentLevel, member.getFlags() & FIELD_OPTIONS, ~0u, buffer, stride, offset);
+}
+
+deUint32 getBlockMemberOffset (int blockNdx, const InterfaceBlock& block, const InterfaceBlockMember& member, const InterfaceLayout& layout)
+{
+       std::ostringstream      name;
+       const VarType*          curType = &member.getType();
+
+       if (block.getInstanceName().length() != 0)
+               name << block.getBlockName() << ".";    // \note InterfaceLayoutEntry uses block name rather than instance name
+
+       name << member.getName();
+
+       while (!curType->isBasicType())
+       {
+               if (curType->isArrayType())
+               {
+                       name << "[0]";
+                       curType = &curType->getElementType();
+               }
+
+               if (curType->isStructType())
+               {
+                       const StructType::ConstIterator firstMember = curType->getStruct().begin();
+
+                       name << "." << firstMember->getName();
+                       curType = &firstMember->getType();
+               }
+       }
+
+       const int interfaceLayoutNdx = layout.getInterfaceLayoutIndex(blockNdx, name.str());
+       DE_ASSERT(interfaceLayoutNdx >= 0);
+
+       return layout.interfaces[interfaceLayoutNdx].offset;
+}
+
+template<typename T>
+void semiShuffle (std::vector<T>& v)
+{
+       const std::vector<T>    src     = v;
+       int                                             i       = -1;
+       int                                             n       = static_cast<int>(src.size());
+
+       v.clear();
+
+       while (n)
+       {
+               i += n;
+               v.push_back(src[i]);
+               n = (n > 0 ? 1 - n : -1 - n);
+       }
+}
+
+template<typename T>
+//! \note Stores pointers to original elements
+class Traverser
+{
+public:
+       template<typename Iter>
+       Traverser (const Iter beg, const Iter end, const bool shuffled)
+       {
+               for (Iter it = beg; it != end; ++it)
+                       m_elements.push_back(&(*it));
+
+               if (shuffled)
+                       semiShuffle(m_elements);
+
+               m_next = m_elements.begin();
+       }
+
+       T* next (void)
+       {
+               if (m_next != m_elements.end())
+                       return *m_next++;
+               else
+                       return DE_NULL;
+       }
+
+private:
+       typename std::vector<T*>                                        m_elements;
+       typename std::vector<T*>::const_iterator        m_next;
+};
+
+void generateDeclaration (std::ostringstream& src, int blockNdx, const InterfaceBlock& block, const InterfaceLayout& layout, bool shuffleUniformMembers)
+{
+       const int indentOne             = 1;
+       const int ndx                   = layout.getBlockLayoutIndex(blockNdx, 0);
+       const int locationNdx   = layout.blocks[ndx].locationNdx;
+       const int xfbOffset             = layout.blocks[ndx].xfbOffset;
+       const int xfbBuffer             = layout.blocks[ndx].xfbBuffer;
+       const int xfbStride             = layout.blocks[ndx].xfbStride;
+
+       src << "layout(";
+       src << "location = " << locationNdx;
+       if ((block.getFlags() & LAYOUT_MASK) != 0)
+               src << ", " << LayoutFlagsFmt(block.getFlags() & LAYOUT_MASK, xfbBuffer, xfbStride, xfbOffset);
+       src << ") out " << block.getBlockName();
+
+       src << " //"
+               << " sizeInBytes=" << layout.blocks[ndx].xfbSize
+               << " sizeInLocations=" << layout.blocks[ndx].locationSize;
+
+       src << "\n{\n";
+
+       Traverser<const InterfaceBlockMember> interfaces(block.begin(), block.end(), shuffleUniformMembers);
+
+       while (const InterfaceBlockMember* pUniform = interfaces.next())
+       {
+               src << Indent(indentOne);
+               generateDeclaration(src, *pUniform, indentOne, xfbBuffer, xfbStride, xfbOffset + getBlockMemberOffset(blockNdx, block, *pUniform, layout));
+       }
+
+       src << "}";
+
+       if (block.hasInstanceName())
+       {
+               src << " " << block.getInstanceName();
+               if (block.isArray())
+                       src << "[" << block.getArraySize() << "]";
+       }
+       else
+               DE_ASSERT(!block.isArray());
+
+       src << ";\n";
+}
+
+int generateValueSrc (std::ostringstream& src, const InterfaceLayoutEntry& entry, const void* basePtr, int elementNdx)
+{
+       const glu::DataType     scalarType      = glu::getDataTypeScalarType(entry.type);
+       const int                       scalarSize      = glu::getDataTypeScalarSize(entry.type);
+       const bool                      isArray         = entry.arraySize > 1;
+       const deUint8*          elemPtr         = (const deUint8*)basePtr + entry.offset + (isArray ? elementNdx * entry.arrayStride : 0);
+       const size_t            compSize        = getDataTypeByteSize(scalarType);
+
+       if (scalarSize > 1)
+               src << glu::getDataTypeName(entry.type) << "(";
+
+       if (glu::isDataTypeMatrix(entry.type))
+       {
+               const int       numRows = glu::getDataTypeMatrixNumRows(entry.type);
+               const int       numCols = glu::getDataTypeMatrixNumColumns(entry.type);
+
+               DE_ASSERT(scalarType == glu::TYPE_FLOAT || scalarType == glu::TYPE_DOUBLE);
+
+               // Constructed in column-wise order.
+               for (int colNdx = 0; colNdx < numCols; colNdx++)
+               {
+                       for (int rowNdx = 0; rowNdx < numRows; rowNdx++)
+                       {
+                               const deUint8*  compPtr = elemPtr + (colNdx * entry.matrixStride + rowNdx * compSize);
+                               const float             compVal = (scalarType == glu::TYPE_FLOAT) ? *((const float*)compPtr)
+                                                                               : (scalarType == glu::TYPE_DOUBLE) ? (float)*((const double*)compPtr)
+                                                                               : 0.0f;
+
+                               if (colNdx > 0 || rowNdx > 0)
+                                       src << ", ";
+
+                               src << de::floatToString(compVal, 1);
+                       }
+               }
+       }
+       else
+       {
+               for (int scalarNdx = 0; scalarNdx < scalarSize; scalarNdx++)
+               {
+                       const deUint8* compPtr = elemPtr + scalarNdx * compSize;
+
+                       if (scalarNdx > 0)
+                               src << ", ";
+
+                       switch (scalarType)
+                       {
+                               case glu::TYPE_DOUBLE:  src << de::floatToString((float)(*((const double*)compPtr)), 1);        break;
+                               case glu::TYPE_FLOAT:   src << de::floatToString(*((const float*)compPtr), 1) << "f";           break;
+                               case glu::TYPE_INT:             src << *((const int*)compPtr);                                                                          break;
+                               case glu::TYPE_UINT:    src << *((const deUint32*)compPtr) << "u";                                                      break;
+                               default:                                DE_ASSERT(false && "Invalid type");                                                                     break;
+                       }
+               }
+       }
+
+       if (scalarSize > 1)
+               src << ")";
+
+       return static_cast<int>(elemPtr - static_cast<const deUint8*>(basePtr));
+}
+
+void writeMatrixTypeSrc (int                                                   columnCount,
+                                                int                                                    rowCount,
+                                                std::string                                    type,
+                                                std::ostringstream&                    src,
+                                                const std::string&                             srcName,
+                                                const void*                                    basePtr,
+                                                const InterfaceLayoutEntry&    entry,
+                                                bool                                                   vector)
+{
+       if (vector)     // generateTestSrcMatrixPerVec
+       {
+               for (int colNdx = 0; colNdx < columnCount; colNdx++)
+               {
+                       src << "\t" << srcName << "[" << colNdx << "] = ";
+
+                       if (glu::isDataTypeMatrix(entry.type))
+                       {
+                               const glu::DataType     scalarType      = glu::getDataTypeScalarType(entry.type);
+                               const int                       scalarSize      = glu::getDataTypeScalarSize(entry.type);
+                               const deUint8*          compPtr         = (const deUint8*)basePtr + entry.offset;
+
+                               if (scalarSize > 1)
+                                       src << type << "(";
+
+                               for (int rowNdx = 0; rowNdx < rowCount; rowNdx++)
+                               {
+                                       const float             compVal = (scalarType == glu::TYPE_FLOAT) ? *((const float*)compPtr)
+                                                                                       : (scalarType == glu::TYPE_DOUBLE) ? (float)*((const double*)compPtr)
+                                                                                       : 0.0f;
+
+                                       src << de::floatToString(compVal, 1);
+
+                                       if (rowNdx < rowCount-1)
+                                               src << ", ";
+                               }
+
+                               src << ");\n";
+                       }
+                       else
+                       {
+                               generateValueSrc(src, entry, basePtr, 0);
+                               src << "[" << colNdx << "];\n";
+                       }
+               }
+       }
+       else            // generateTestSrcMatrixPerElement
+       {
+               const glu::DataType     scalarType      = glu::getDataTypeScalarType(entry.type);
+
+               for (int colNdx = 0; colNdx < columnCount; colNdx++)
+               {
+                       for (int rowNdx = 0; rowNdx < rowCount; rowNdx++)
+                       {
+                               src << "\t" << srcName << "[" << colNdx << "][" << rowNdx << "] = ";
+                               if (glu::isDataTypeMatrix(entry.type))
+                               {
+                                       const deUint8*  elemPtr         = (const deUint8*)basePtr + entry.offset;
+                                       const size_t    compSize        = getDataTypeByteSize(scalarType);
+                                       const deUint8*  compPtr         = elemPtr + (colNdx * entry.matrixStride + rowNdx * compSize);
+                                       const float             compVal         = (scalarType == glu::TYPE_FLOAT) ? *((const float*)compPtr)
+                                                                                               : (scalarType == glu::TYPE_DOUBLE) ? (float)*((const double*)compPtr)
+                                                                                               : 0.0f;
+
+                                       src << de::floatToString(compVal, 1) << ";\n";
+                               }
+                               else
+                               {
+                                       generateValueSrc(src, entry, basePtr, 0);
+                                       src << "[" << colNdx << "][" << rowNdx << "];\n";
+                               }
+                       }
+               }
+       }
+}
+
+void generateTestSrcMatrixPerVec (std::ostringstream&                  src,
+                                                                 glu::DataType                                 elementType,
+                                                                 const std::string&                    srcName,
+                                                                 const void*                                   basePtr,
+                                                                 const InterfaceLayoutEntry&   entry)
+{
+       switch (elementType)
+       {
+               case glu::TYPE_FLOAT_MAT2:              writeMatrixTypeSrc(2, 2, "vec2", src, srcName, basePtr, entry, true);   break;
+               case glu::TYPE_FLOAT_MAT2X3:    writeMatrixTypeSrc(2, 3, "vec3", src, srcName, basePtr, entry, true);   break;
+               case glu::TYPE_FLOAT_MAT2X4:    writeMatrixTypeSrc(2, 4, "vec4", src, srcName, basePtr, entry, true);   break;
+               case glu::TYPE_FLOAT_MAT3X4:    writeMatrixTypeSrc(3, 4, "vec4", src, srcName, basePtr, entry, true);   break;
+               case glu::TYPE_FLOAT_MAT4:              writeMatrixTypeSrc(4, 4, "vec4", src, srcName, basePtr, entry, true);   break;
+               case glu::TYPE_FLOAT_MAT4X2:    writeMatrixTypeSrc(4, 2, "vec2", src, srcName, basePtr, entry, true);   break;
+               case glu::TYPE_FLOAT_MAT4X3:    writeMatrixTypeSrc(4, 3, "vec3", src, srcName, basePtr, entry, true);   break;
+               default:                                                DE_ASSERT(false && "Invalid type");                                                                             break;
+       }
+}
+
+void generateTestSrcMatrixPerElement (std::ostringstream&                      src,
+                                                                         glu::DataType                                 elementType,
+                                                                         const std::string&                    srcName,
+                                                                         const void*                                   basePtr,
+                                                                         const InterfaceLayoutEntry&   entry)
+{
+       std::string type = "float";
+       switch (elementType)
+       {
+               case glu::TYPE_FLOAT_MAT2:              writeMatrixTypeSrc(2, 2, type, src, srcName, basePtr, entry, false);    break;
+               case glu::TYPE_FLOAT_MAT2X3:    writeMatrixTypeSrc(2, 3, type, src, srcName, basePtr, entry, false);    break;
+               case glu::TYPE_FLOAT_MAT2X4:    writeMatrixTypeSrc(2, 4, type, src, srcName, basePtr, entry, false);    break;
+               case glu::TYPE_FLOAT_MAT3X4:    writeMatrixTypeSrc(3, 4, type, src, srcName, basePtr, entry, false);    break;
+               case glu::TYPE_FLOAT_MAT4:              writeMatrixTypeSrc(4, 4, type, src, srcName, basePtr, entry, false);    break;
+               case glu::TYPE_FLOAT_MAT4X2:    writeMatrixTypeSrc(4, 2, type, src, srcName, basePtr, entry, false);    break;
+               case glu::TYPE_FLOAT_MAT4X3:    writeMatrixTypeSrc(4, 3, type, src, srcName, basePtr, entry, false);    break;
+               default:                                                DE_ASSERT(false && "Invalid type");                                                                             break;
+       }
+}
+
+void generateSingleAssignment (std::ostringstream&                     src,
+                                                          glu::DataType                                elementType,
+                                                          const std::string&                   srcName,
+                                                          const void*                                  basePtr,
+                                                          const InterfaceLayoutEntry&  entry,
+                                                          MatrixLoadFlags                              matrixLoadFlag)
+{
+       if (matrixLoadFlag == LOAD_FULL_MATRIX)
+       {
+               src << "\t" << srcName << " = ";
+               generateValueSrc(src, entry, basePtr, 0);
+               src << ";\n";
+       }
+       else
+       {
+               if (glu::isDataTypeMatrix(elementType))
+               {
+                       generateTestSrcMatrixPerVec             (src, elementType, srcName, basePtr, entry);
+                       generateTestSrcMatrixPerElement (src, elementType, srcName, basePtr, entry);
+               }
+       }
+}
+
+void generateAssignment (std::ostringstream&   src,
+                                                const InterfaceLayout& layout,
+                                                const VarType&                 type,
+                                                const std::string&             srcName,
+                                                const std::string&             apiName,
+                                                int                                    blockNdx,
+                                                const void*                    basePtr,
+                                                MatrixLoadFlags                matrixLoadFlag)
+{
+       if (type.isBasicType() || (type.isArrayType() && type.getElementType().isBasicType()))
+       {
+               // Basic type or array of basic types.
+               bool                                            isArray                         = type.isArrayType();
+               glu::DataType                           elementType                     = isArray ? type.getElementType().getBasicType() : type.getBasicType();
+               std::string                                     fullApiName                     = std::string(apiName) + (isArray ? "[0]" : ""); // Arrays are always postfixed with [0]
+               int                                                     interfaceLayoutNdx      = layout.getInterfaceLayoutIndex(blockNdx, fullApiName);
+               const InterfaceLayoutEntry&     entry                           = layout.interfaces[interfaceLayoutNdx];
+
+               if (isArray)
+               {
+                       for (int elemNdx = 0; elemNdx < type.getArraySize(); elemNdx++)
+                       {
+                               src << "\t" << srcName << "[" << elemNdx << "] = ";
+                               generateValueSrc(src, entry, basePtr, elemNdx);
+                               src << ";\n";
+                       }
+               }
+               else
+               {
+                       generateSingleAssignment(src, elementType, srcName, basePtr, entry, matrixLoadFlag);
+               }
+       }
+       else if (type.isArrayType())
+       {
+               const VarType& elementType = type.getElementType();
+
+               for (int elementNdx = 0; elementNdx < type.getArraySize(); elementNdx++)
+               {
+                       const std::string op                            = std::string("[") + de::toString(elementNdx) + "]";
+                       const std::string elementSrcName        = std::string(srcName) + op;
+                       const std::string elementApiName        = std::string(apiName) + op;
+
+                       generateAssignment(src, layout, elementType, elementSrcName, elementApiName, blockNdx, basePtr, LOAD_FULL_MATRIX);
+               }
+       }
+       else
+       {
+               DE_ASSERT(type.isStructType());
+
+               for (StructType::ConstIterator memberIter = type.getStruct().begin(); memberIter != type.getStruct().end(); memberIter++)
+               {
+                       const StructMember&     member                  = *memberIter;
+                       const std::string       op                              = std::string(".") + member.getName();
+                       const std::string       memberSrcName   = std::string(srcName) + op;
+                       const std::string       memberApiName   = std::string(apiName) + op;
+
+                       if (0 == (member.getFlags() & (FIELD_UNASSIGNED | FIELD_MISSING)))
+                               generateAssignment(src, layout, memberIter->getType(), memberSrcName, memberApiName, blockNdx, basePtr, LOAD_FULL_MATRIX);
+               }
+       }
+}
+
+void generateAssignment (std::ostringstream&                   src,
+                                                const InterfaceLayout&                 layout,
+                                                const ShaderInterface&                 shaderInterface,
+                                                const std::map<int, void*>&    blockPointers,
+                                                MatrixLoadFlags                                matrixLoadFlag)
+{
+       for (int blockNdx = 0; blockNdx < shaderInterface.getNumInterfaceBlocks(); blockNdx++)
+       {
+               const InterfaceBlock& block = shaderInterface.getInterfaceBlock(blockNdx);
+
+               bool                    hasInstanceName = block.hasInstanceName();
+               bool                    isArray                 = block.isArray();
+               int                             numInstances    = isArray ? block.getArraySize() : 1;
+               std::string             apiPrefix               = hasInstanceName ? block.getBlockName() + "." : std::string("");
+
+               DE_ASSERT(!isArray || hasInstanceName);
+
+               for (int instanceNdx = 0; instanceNdx < numInstances; instanceNdx++)
+               {
+                       std::string             instancePostfix         = isArray ? std::string("[") + de::toString(instanceNdx) + "]" : std::string("");
+                       std::string             blockInstanceName       = block.getBlockName() + instancePostfix;
+                       std::string             srcPrefix                       = hasInstanceName ? block.getInstanceName() + instancePostfix + "." : std::string("");
+                       int                             blockLayoutNdx          = layout.getBlockLayoutIndex(blockNdx, instanceNdx);
+                       void*                   basePtr                         = blockPointers.find(blockLayoutNdx)->second;
+
+                       for (InterfaceBlock::ConstIterator interfaceMemberIter = block.begin(); interfaceMemberIter != block.end(); interfaceMemberIter++)
+                       {
+                               const InterfaceBlockMember& interfaceMember = *interfaceMemberIter;
+
+                               if ((interfaceMember.getFlags() & (FIELD_MISSING | FIELD_UNASSIGNED)) == 0)
+                               {
+                                       std::string srcName = srcPrefix + interfaceMember.getName();
+                                       std::string apiName = apiPrefix + interfaceMember.getName();
+
+                                       generateAssignment(src, layout, interfaceMember.getType(), srcName, apiName, blockNdx, basePtr, matrixLoadFlag);
+                               }
+                       }
+               }
+       }
+}
+
+std::string generatePassthroughShader ()
+{
+       std::ostringstream      src;
+
+       src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n";
+
+       src << "\n"
+                  "void main (void)\n"
+                  "{\n"
+                  "}\n";
+
+       return src.str();
+}
+
+std::string generateTestShader (const ShaderInterface& shaderInterface, const InterfaceLayout& layout, const std::map<int, void*>& blockPointers, MatrixLoadFlags matrixLoadFlag, TestStageFlags testStageFlags, bool shuffleUniformMembers)
+{
+       std::ostringstream                              src;
+       std::vector<const StructType*>  namedStructs;
+
+       src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n\n";
+
+       if (testStageFlags == TEST_STAGE_GEOMETRY)
+       {
+               src << "layout(points) in;\n"
+                       << "layout(points, max_vertices = 1) out;\n\n";
+       }
+
+       shaderInterface.getNamedStructs(namedStructs);
+       for (std::vector<const StructType*>::const_iterator structIter = namedStructs.begin(); structIter != namedStructs.end(); structIter++)
+               generateDeclaration(src, **structIter, 0);
+
+       for (int blockNdx = 0; blockNdx < shaderInterface.getNumInterfaceBlocks(); blockNdx++)
+       {
+               const InterfaceBlock& block = shaderInterface.getInterfaceBlock(blockNdx);
+
+               generateDeclaration(src, blockNdx, block, layout, shuffleUniformMembers);
+       }
+
+       src << "\n"
+                  "void main (void)\n"
+                  "{\n";
+
+       generateAssignment(src, layout, shaderInterface, blockPointers, matrixLoadFlag);
+
+       if (testStageFlags == TEST_STAGE_GEOMETRY)
+       {
+               src << "\n"
+                       << "\tEmitVertex();\n"
+                       << "\tEndPrimitive();\n";
+       }
+
+       src << "}\n";
+
+       return src.str();
+}
+
+VkBufferCreateInfo makeBufferCreateInfo (const VkDeviceSize                    bufferSize,
+                                                                                const VkBufferUsageFlags       usage)
+{
+       const VkBufferCreateInfo bufferCreateInfo =
+       {
+               VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,   //  VkStructureType             sType;
+               DE_NULL,                                                                //  const void*                 pNext;
+               (VkBufferCreateFlags)0,                                 //  VkBufferCreateFlags flags;
+               bufferSize,                                                             //  VkDeviceSize                size;
+               usage,                                                                  //  VkBufferUsageFlags  usage;
+               VK_SHARING_MODE_EXCLUSIVE,                              //  VkSharingMode               sharingMode;
+               0u,                                                                             //  deUint32                    queueFamilyIndexCount;
+               DE_NULL,                                                                //  const deUint32*             pQueueFamilyIndices;
+       };
+
+       return bufferCreateInfo;
+}
+
+Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&              vk,
+                                                                                  const VkDevice                               device)
+{
+       const VkPipelineLayoutCreateInfo        pipelineLayoutCreateInfo        =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,  //  VkStructureType                                     sType;
+               DE_NULL,                                                                                //  const void*                                         pNext;
+               (VkPipelineLayoutCreateFlags)0,                                 //  VkPipelineLayoutCreateFlags         flags;
+               0u,                                                                                             //  deUint32                                            setLayoutCount;
+               DE_NULL,                                                                                //  const VkDescriptorSetLayout*        pSetLayouts;
+               0u,                                                                                             //  deUint32                                            pushConstantRangeCount;
+               DE_NULL,                                                                                //  const VkPushConstantRange*          pPushConstantRanges;
+       };
+
+       return createPipelineLayout(vk, device, &pipelineLayoutCreateInfo);
+}
+
+Move<VkPipeline> makeGraphicsPipeline (const DeviceInterface&          vk,
+                                                                          const VkDevice                               device,
+                                                                          const VkPipelineLayout               pipelineLayout,
+                                                                          const VkRenderPass                   renderPass,
+                                                                          const VkShaderModule                 vertexModule,
+                                                                          const VkShaderModule                 geometryModule,
+                                                                          const VkExtent2D                             renderSize)
+{
+       const std::vector<VkViewport>                           viewports                                               (1, makeViewport(renderSize));
+       const std::vector<VkRect2D>                                     scissors                                                (1, makeRect2D(renderSize));
+       const VkPipelineVertexInputStateCreateInfo      vertexInputStateCreateInfo      =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,      // VkStructureType                                                              sType
+               DE_NULL,                                                                                                        // const void*                                                                  pNext
+               (VkPipelineVertexInputStateCreateFlags)0,                                       // VkPipelineVertexInputStateCreateFlags                flags
+               0u,                                                                                                                     // deUint32                                                                             vertexBindingDescriptionCount
+               DE_NULL,                                                                                                        // const VkVertexInputBindingDescription*               pVertexBindingDescriptions
+               0u,                                                                                                                     // deUint32                                                                             vertexAttributeDescriptionCount
+               DE_NULL,                                                                                                        // const VkVertexInputAttributeDescription*             pVertexAttributeDescriptions
+       };
+
+       return makeGraphicsPipeline(vk,                                                                 // const DeviceInterface&                                               vk
+                                                               device,                                                         // const VkDevice                                                               device
+                                                               pipelineLayout,                                         // const VkPipelineLayout                                               pipelineLayout
+                                                               vertexModule,                                           // const VkShaderModule                                                 vertexShaderModule
+                                                               DE_NULL,                                                        // const VkShaderModule                                                 tessellationControlModule
+                                                               DE_NULL,                                                        // const VkShaderModule                                                 tessellationEvalModule
+                                                               geometryModule,                                         // const VkShaderModule                                                 geometryShaderModule
+                                                               DE_NULL,                                                        // const VkShaderModule                                                 m_maxGeometryBlocksShaderModule
+                                                               renderPass,                                                     // const VkRenderPass                                                   renderPass
+                                                               viewports,                                                      // const std::vector<VkViewport>&                               viewports
+                                                               scissors,                                                       // const std::vector<VkRect2D>&                                 scissors
+                                                               VK_PRIMITIVE_TOPOLOGY_POINT_LIST,       // const VkPrimitiveTopology                                    topology
+                                                               0u,                                                                     // const deUint32                                                               subpass
+                                                               0u,                                                                     // const deUint32                                                               patchControlPoints
+                                                               &vertexInputStateCreateInfo);           // const VkPipelineVertexInputStateCreateInfo*  vertexInputStateCreateInfo
+}
+
+Move<VkFramebuffer> makeFramebuffer (const DeviceInterface&    vk,
+                                                                        const VkDevice                 device,
+                                                                        const VkRenderPass             renderPass,
+                                                                        const VkExtent2D&      renderSize)
+{
+       const VkFramebufferCreateInfo framebufferInfo   =
+       {
+               VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,              //  VkStructureType                             sType;
+               DE_NULL,                                                                                //  const void*                                 pNext;
+               (VkFramebufferCreateFlags)0,                                    //  VkFramebufferCreateFlags    flags;
+               renderPass,                                                                             //  VkRenderPass                                renderPass;
+               0u,                                                                                             //  deUint32                                    attachmentCount;
+               DE_NULL,                                                                                //  const VkImageView*                  pAttachments;
+               renderSize.width,                                                               //  deUint32                                    width;
+               renderSize.height,                                                              //  deUint32                                    height;
+               1u,                                                                                             //  deUint32                                    layers;
+       };
+
+       return createFramebuffer(vk, device, &framebufferInfo);
+}
+
+// InterfaceBlockCaseInstance
+
+class InterfaceBlockCaseInstance : public vkt::TestInstance
+{
+public:
+                                                                       InterfaceBlockCaseInstance      (Context&                                                       context,
+                                                                                                                                const InterfaceLayout&                         layout,
+                                                                                                                                const std::map<int, void*>&            blockPointers,
+                                                                                                                                const std::vector<deUint8>&            data,
+                                                                                                                                const std::vector<VkDeviceSize>&       tfBufBindingOffsets,
+                                                                                                                                const std::vector<VkDeviceSize>&       tfBufBindingSizes,
+                                                                                                                                const deUint32                                         locationsRequired,
+                                                                                                                                const TestStageFlags                           testStageFlags);
+
+       virtual                                                 ~InterfaceBlockCaseInstance     (void);
+       virtual tcu::TestStatus                 iterate                                         (void);
+
+private:
+       Move<VkShaderModule>                    getGeometryShaderModule         (const DeviceInterface& vk,
+                                                                                                                                const VkDevice                 device);
+
+       bool                                                    usesFloat64                                     (void);
+       std::string                                             validateValue                           (const InterfaceLayoutEntry& entry, const void* basePtr0, const void* basePtr, const void* receivedBasePtr);
+       std::string                                             validateValues                          (const void* recievedDataPtr);
+
+       typedef de::SharedPtr<vk::Unique<vk::VkBuffer> >        VkBufferSp;
+       typedef de::SharedPtr<vk::Allocation>                           AllocationSp;
+
+       const InterfaceLayout&                  m_layout;
+       const std::vector<deUint8>&             m_data;
+       const DeviceSizeVector&                 m_tfBufBindingOffsets;
+       const DeviceSizeVector&                 m_tfBufBindingSizes;
+       const std::map<int, void*>&             m_blockPointers;
+       const deUint32                                  m_locationsRequired;
+       const TestStageFlags                    m_testStageFlags;
+       const VkExtent2D                                m_imageExtent2D;
+};
+
+InterfaceBlockCaseInstance::InterfaceBlockCaseInstance (Context&                                                       ctx,
+                                                                                                               const InterfaceLayout&                          layout,
+                                                                                                               const std::map<int, void*>&                     blockPointers,
+                                                                                                               const std::vector<deUint8>&                     data,
+                                                                                                               const std::vector<VkDeviceSize>&        tfBufBindingOffsets,
+                                                                                                               const std::vector<VkDeviceSize>&        tfBufBindingSizes,
+                                                                                                               const deUint32                                          locationsRequired,
+                                                                                                               const TestStageFlags                            testStageFlags)
+       : vkt::TestInstance             (ctx)
+       , m_layout                              (layout)
+       , m_data                                (data)
+       , m_tfBufBindingOffsets (tfBufBindingOffsets)
+       , m_tfBufBindingSizes   (tfBufBindingSizes)
+       , m_blockPointers               (blockPointers)
+       , m_locationsRequired   (locationsRequired)
+       , m_testStageFlags              (testStageFlags)
+       , m_imageExtent2D               (makeExtent2D(256u, 256u))
+{
+       const deUint32                                                                                  componentsPerLocation           = 4u;
+       const deUint32                                                                                  componentsRequired                      = m_locationsRequired * componentsPerLocation;
+       const InstanceInterface&                                                                vki                                                     = m_context.getInstanceInterface();
+       const VkPhysicalDevice                                                                  physDevice                                      = m_context.getPhysicalDevice();
+       const VkPhysicalDeviceTransformFeedbackFeaturesEXT&             transformFeedbackFeatures       = m_context.getTransformFeedbackFeatures();
+       const VkPhysicalDeviceLimits                                                    limits                                          = getPhysicalDeviceProperties(vki, physDevice).limits;
+       VkPhysicalDeviceTransformFeedbackPropertiesEXT                  transformFeedbackProperties;
+       VkPhysicalDeviceProperties2                                                             deviceProperties2;
+
+       if (transformFeedbackFeatures.transformFeedback == DE_FALSE)
+               TCU_THROW(NotSupportedError, "transformFeedback feature is not supported");
+
+       deMemset(&deviceProperties2, 0, sizeof(deviceProperties2));
+       deMemset(&transformFeedbackProperties, 0x00, sizeof(transformFeedbackProperties));
+
+       deviceProperties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+       deviceProperties2.pNext = &transformFeedbackProperties;
+
+       transformFeedbackProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT;
+       transformFeedbackProperties.pNext = DE_NULL;
+
+       vki.getPhysicalDeviceProperties2(physDevice, &deviceProperties2);
+
+       if (transformFeedbackProperties.maxTransformFeedbackBuffers < tfBufBindingSizes.size())
+               TCU_THROW(NotSupportedError, "maxTransformFeedbackBuffers=" + de::toString(transformFeedbackProperties.maxTransformFeedbackBuffers) + " is less than required (" + de::toString(tfBufBindingSizes.size()) + ")");
+
+       if (transformFeedbackProperties.maxTransformFeedbackBufferDataSize < m_data.size())
+               TCU_THROW(NotSupportedError, "maxTransformFeedbackBufferDataSize=" + de::toString(transformFeedbackProperties.maxTransformFeedbackBufferDataSize) + " is less than required (" + de::toString(m_data.size()) + ")");
+
+       if (m_testStageFlags == TEST_STAGE_VERTEX)
+       {
+               if (limits.maxVertexOutputComponents < componentsRequired)
+                       TCU_THROW(NotSupportedError, "maxVertexOutputComponents=" + de::toString(limits.maxVertexOutputComponents) + " is less than required (" + de::toString(componentsRequired) + ")");
+       }
+
+       if (m_testStageFlags == TEST_STAGE_GEOMETRY)
+       {
+               if (limits.maxGeometryOutputComponents < componentsRequired)
+                       TCU_THROW(NotSupportedError, "maxGeometryOutputComponents=" + de::toString(limits.maxGeometryOutputComponents) + " is less than required (" + de::toString(componentsRequired) + ")");
+       }
+
+       if (usesFloat64())
+               m_context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_SHADER_FLOAT64);
+}
+
+InterfaceBlockCaseInstance::~InterfaceBlockCaseInstance (void)
+{
+}
+
+bool InterfaceBlockCaseInstance::usesFloat64 (void)
+{
+       for (size_t layoutNdx = 0; layoutNdx< m_layout.interfaces.size(); ++layoutNdx)
+               if (isDataTypeDoubleType(m_layout.interfaces[layoutNdx].type))
+                       return true;
+
+       return false;
+}
+
+Move<VkShaderModule> InterfaceBlockCaseInstance::getGeometryShaderModule (const DeviceInterface&       vk,
+                                                                                                                                                 const VkDevice                        device)
+{
+       if (m_testStageFlags == TEST_STAGE_GEOMETRY)
+               return createShaderModule(vk, device, m_context.getBinaryCollection().get("geom"), 0u);
+
+       return Move<VkShaderModule>();
+}
+
+tcu::TestStatus InterfaceBlockCaseInstance::iterate (void)
+{
+       const DeviceInterface&                  vk                                      = m_context.getDeviceInterface();
+       const VkDevice                                  device                          = m_context.getDevice();
+       const deUint32                                  queueFamilyIndex        = m_context.getUniversalQueueFamilyIndex();
+       const VkQueue                                   queue                           = m_context.getUniversalQueue();
+       Allocator&                                              allocator                       = m_context.getDefaultAllocator();
+
+       const Move<VkShaderModule>              vertModule                      (createShaderModule             (vk, device, m_context.getBinaryCollection().get("vert"), 0u));
+       const Move<VkShaderModule>              geomModule                      (getGeometryShaderModule(vk, device));
+       const Move<VkRenderPass>                renderPass                      (makeRenderPass                 (vk, device, VK_FORMAT_UNDEFINED));
+       const Move<VkFramebuffer>               framebuffer                     (makeFramebuffer                (vk, device, *renderPass, m_imageExtent2D));
+       const Move<VkPipelineLayout>    pipelineLayout          (makePipelineLayout             (vk, device));
+       const Move<VkPipeline>                  pipeline                        (makeGraphicsPipeline   (vk, device, *pipelineLayout, *renderPass, *vertModule, *geomModule, m_imageExtent2D));
+       const Move<VkCommandPool>               cmdPool                         (createCommandPool              (vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
+       const Move<VkCommandBuffer>             cmdBuffer                       (allocateCommandBuffer  (vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
+
+       const VkBufferCreateInfo                tfBufCreateInfo         = makeBufferCreateInfo(m_data.size(), VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT);
+       const Move<VkBuffer>                    tfBuf                           = createBuffer(vk, device, &tfBufCreateInfo);
+       const de::MovePtr<Allocation>   tfBufAllocation         = allocator.allocate(getBufferMemoryRequirements(vk, device, *tfBuf), MemoryRequirement::HostVisible);
+       const deUint32                                  tfBufBindingCount       = static_cast<deUint32>(m_tfBufBindingOffsets.size());
+       const std::vector<VkBuffer>             tfBufBindings           (tfBufBindingCount, *tfBuf);
+
+       DE_ASSERT(tfBufBindings.size() == tfBufBindingCount);
+
+       VK_CHECK(vk.bindBufferMemory(device, *tfBuf, tfBufAllocation->getMemory(), tfBufAllocation->getOffset()));
+
+       deMemset(tfBufAllocation->getHostPtr(), 0, m_data.size());
+       flushMappedMemoryRange(vk, device, tfBufAllocation->getMemory(), tfBufAllocation->getOffset(), VK_WHOLE_SIZE);
+
+       beginCommandBuffer(vk, *cmdBuffer);
+       {
+               beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, makeRect2D(m_imageExtent2D));
+               {
+                       vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
+
+                       vk.cmdBindTransformFeedbackBuffersEXT(*cmdBuffer, 0, tfBufBindingCount, &tfBufBindings[0], &m_tfBufBindingOffsets[0], &m_tfBufBindingSizes[0]);
+
+                       vk.cmdBeginTransformFeedbackEXT(*cmdBuffer, 0, 0, DE_NULL, DE_NULL);
+                       {
+                               vk.cmdDraw(*cmdBuffer, 1u, 1u, 0u, 0u);
+                       }
+                       vk.cmdEndTransformFeedbackEXT(*cmdBuffer, 0, 0, DE_NULL, DE_NULL);
+               }
+               endRenderPass(vk, *cmdBuffer);
+       }
+       endCommandBuffer(vk, *cmdBuffer);
+       submitCommandsAndWait(vk, device, queue, *cmdBuffer);
+
+       invalidateMappedMemoryRange(vk, device, tfBufAllocation->getMemory(), tfBufAllocation->getOffset(), VK_WHOLE_SIZE);
+
+       std::string result = validateValues(tfBufAllocation->getHostPtr());
+
+       if (!result.empty())
+               return tcu::TestStatus::fail(result);
+
+       return tcu::TestStatus::pass("Pass");
+}
+
+std::string InterfaceBlockCaseInstance::validateValue (const InterfaceLayoutEntry& entry, const void* basePtr0, const void* basePtr, const void* receivedBasePtr)
+{
+       const glu::DataType     scalarType      = glu::getDataTypeScalarType(entry.type);
+       const int                       scalarSize      = glu::getDataTypeScalarSize(entry.type);
+       const bool                      isMatrix        = glu::isDataTypeMatrix(entry.type);
+       const int                       numVecs         = isMatrix ? glu::getDataTypeMatrixNumColumns(entry.type) : 1;
+       const int                       vecSize         = scalarSize / numVecs;
+       const bool                      isArray         = entry.arraySize > 1;
+       const size_t            compSize        = getDataTypeByteSize(scalarType);
+       std::string                     result;
+
+       DE_ASSERT(scalarSize%numVecs == 0);
+
+       for (int elemNdx = 0; elemNdx < entry.arraySize; elemNdx++)
+       {
+               deUint8* elemPtr = (deUint8*)basePtr + entry.offset + (isArray ? elemNdx*entry.arrayStride : 0);
+
+               for (int vecNdx = 0; vecNdx < numVecs; vecNdx++)
+               {
+                       deUint8* vecPtr = elemPtr + (isMatrix ? vecNdx*entry.matrixStride : 0);
+
+                       for (int compNdx = 0; compNdx < vecSize; compNdx++)
+                       {
+                               const deUint8*  compPtr         = vecPtr + compSize*compNdx;
+                               const size_t    offset          = compPtr - (deUint8*)basePtr0;
+                               const deUint8*  receivedPtr     = (deUint8*)receivedBasePtr + offset;
+
+                               switch (scalarType)
+                               {
+                                       case glu::TYPE_DOUBLE:
+                                       {
+                                               const double expected   = *((double*)compPtr);
+                                               const double received   = *((double*)receivedPtr);
+
+                                               if (deAbs(received - expected) > 0.05)
+                                                       result = "Mismatch at offset " + de::toString(offset) + " expected " + de::toString(expected) + " received " + de::toString(received);
+
+                                               break;
+                                       }
+                                       case glu::TYPE_FLOAT:
+                                       {
+                                               const float expected    = *((float*)compPtr);
+                                               const float received    = *((float*)receivedPtr);
+
+                                               if (deAbs(received - expected) > 0.05)
+                                                       result = "Mismatch at offset " + de::toString(offset) + " expected " + de::toString(expected) + " received " + de::toString(received);
+
+                                               break;
+                                       }
+                                       case glu::TYPE_INT:
+                                       {
+                                               const deInt32 expected  = *((deInt32*)compPtr);
+                                               const deInt32 received  = *((deInt32*)receivedPtr);
+
+                                               if (received != expected)
+                                                       result = "Mismatch at offset " + de::toString(offset) + " expected " + de::toString(expected) + " received " + de::toString(received);
+
+                                               break;
+                                       }
+                                       case glu::TYPE_UINT:
+                                       {
+                                               const deUint32 expected = *((deUint32*)compPtr);
+                                               const deUint32 received = *((deUint32*)receivedPtr);
+
+                                               if (received != expected)
+                                                       result = "Mismatch at offset " + de::toString(offset) + " expected " + de::toString(expected) + " received " + de::toString(received);
+
+                                               break;
+                                       }
+                                       default:
+                                               DE_ASSERT(false);
+                               }
+
+                               if (!result.empty())
+                               {
+                                       result += " (elemNdx=" + de::toString(elemNdx) + " vecNdx=" + de::toString(vecNdx) + " compNdx=" + de::toString(compNdx) + ")";
+
+                                       return result;
+                               }
+                       }
+               }
+       }
+
+       return result;
+}
+
+std::string InterfaceBlockCaseInstance::validateValues (const void* recievedDataPtr)
+{
+       const int       numBlocks       = (int)m_layout.blocks.size();
+
+       for (int blockNdx = 0; blockNdx < numBlocks; blockNdx++)
+       {
+               void*   basePtr         = m_blockPointers.find(blockNdx)->second;
+               int             numEntries      = (int)m_layout.blocks[blockNdx].activeInterfaceIndices.size();
+
+               for (int entryNdx = 0; entryNdx < numEntries; entryNdx++)
+               {
+                       const InterfaceLayoutEntry&     entry   = m_layout.interfaces[m_layout.blocks[blockNdx].activeInterfaceIndices[entryNdx]];
+                       const std::string                       result  = entry.validate ? validateValue(entry, &m_data[0], basePtr, recievedDataPtr) : "";
+
+                       if (!result.empty())
+                       {
+                               tcu::TestLog&                   log             = m_context.getTestContext().getLog();
+                               std::vector<deUint8>    mask    = createMask(m_layout, m_blockPointers, &m_data[0], m_data.size());
+                               std::ostringstream              str;
+
+                               str << "Error at entry '" << entry.name << "' block '" << m_layout.blocks[blockNdx].name << "'" << std::endl;
+                               str << result << std::endl;
+
+                               str << m_layout;
+
+                               str << "Xfb buffer offsets: " << m_tfBufBindingOffsets << std::endl;
+                               str << "Xfb buffer sizes: " << m_tfBufBindingSizes << std::endl << std::endl;
+
+                               dumpBytes(str, "Expected:", &m_data[0], m_data.size(), &mask[0]);
+                               dumpBytes(str, "Retrieved:", recievedDataPtr, m_data.size(), &mask[0]);
+
+                               dumpBytes(str, "Expected (unfiltered):", &m_data[0], m_data.size());
+                               dumpBytes(str, "Retrieved (unfiltered):", recievedDataPtr, m_data.size());
+
+                               log << tcu::TestLog::Message << str.str() << tcu::TestLog::EndMessage;
+
+                               return result;
+                       }
+               }
+       }
+
+       return std::string();
+}
+
+} // anonymous (utilities)
+
+// InterfaceBlockCase.
+
+InterfaceBlockCase::InterfaceBlockCase (tcu::TestContext&      testCtx,
+                                                                               const std::string&      name,
+                                                                               const std::string&      description,
+                                                                               MatrixLoadFlags         matrixLoadFlag,
+                                                                               TestStageFlags          testStageFlags,
+                                                                               bool                            shuffleInterfaceMembers)
+       : TestCase                                      (testCtx, name, description)
+       , m_matrixLoadFlag                      (matrixLoadFlag)
+       , m_testStageFlags                      (testStageFlags)
+       , m_shuffleInterfaceMembers     (shuffleInterfaceMembers)
+       , m_locationsRequired           (0)
+{
+}
+
+InterfaceBlockCase::~InterfaceBlockCase (void)
+{
+}
+
+void InterfaceBlockCase::initPrograms (vk::SourceCollections& programCollection) const
+{
+       DE_ASSERT(!m_vertShaderSource.empty());
+
+       programCollection.glslSources.add("vert") << glu::VertexSource(m_vertShaderSource);
+
+       if (!m_geomShaderSource.empty())
+               programCollection.glslSources.add("geom") << glu::GeometrySource(m_geomShaderSource);
+}
+
+TestInstance* InterfaceBlockCase::createInstance (Context& context) const
+{
+       return new InterfaceBlockCaseInstance(context, m_interfaceLayout, m_blockPointers, m_data, m_tfBufBindingOffsets, m_tfBufBindingSizes, m_locationsRequired, m_testStageFlags);
+}
+
+void InterfaceBlockCase::init (void)
+{
+       BufferGeneralMapping    xfbBufferSize;
+       std::string                             notSupportedComment;
+
+       // Compute reference layout.
+       computeXfbLayout(m_interfaceLayout, m_interface, xfbBufferSize, m_locationsRequired);
+
+       // Assign storage for reference values.
+       // m_data contains all xfb buffers starting with all interfaces of first xfb_buffer, then all interfaces of next xfb_buffer
+       {
+               BufferGeneralMapping    xfbBufferOffsets;
+               int                                             totalSize                       = 0;
+               int                                             maxXfb                          = 0;
+
+               for (BufferGeneralMapping::const_iterator xfbBuffersIter = xfbBufferSize.begin(); xfbBuffersIter != xfbBufferSize.end(); xfbBuffersIter++)
+               {
+                       xfbBufferOffsets[xfbBuffersIter->first] = totalSize;
+                       totalSize += xfbBuffersIter->second;
+                       maxXfb = std::max(maxXfb, xfbBuffersIter->first);
+               }
+               m_data.resize(totalSize);
+
+               DE_ASSERT(de::inBounds(maxXfb, 0, 256)); // Not correlated with spec: just make sure vectors won't be huge
+
+               m_tfBufBindingSizes.resize(maxXfb + 1);
+               for (BufferGeneralMapping::const_iterator xfbBuffersIter = xfbBufferSize.begin(); xfbBuffersIter != xfbBufferSize.end(); xfbBuffersIter++)
+                       m_tfBufBindingSizes[xfbBuffersIter->first] = xfbBuffersIter->second;
+
+               m_tfBufBindingOffsets.resize(maxXfb + 1);
+               for (BufferGeneralMapping::const_iterator xfbBuffersIter = xfbBufferOffsets.begin(); xfbBuffersIter != xfbBufferOffsets.end(); xfbBuffersIter++)
+                       m_tfBufBindingOffsets[xfbBuffersIter->first] = xfbBuffersIter->second;
+
+               // Pointers for each block.
+               for (int blockNdx = 0; blockNdx < (int)m_interfaceLayout.blocks.size(); blockNdx++)
+               {
+                       const int dataXfbBufferStartOffset      = xfbBufferOffsets[m_interfaceLayout.blocks[blockNdx].xfbBuffer];
+                       const int offset                                        = dataXfbBufferStartOffset + m_interfaceLayout.blocks[blockNdx].xfbOffset;
+
+                       m_blockPointers[blockNdx] = &m_data[0] + offset;
+               }
+       }
+
+       // Generate values.
+       generateValues(m_interfaceLayout, m_blockPointers, 1 /* seed */);
+
+       // Overlap validation
+       {
+               std::vector<deUint8>    mask    = createMask(m_interfaceLayout, m_blockPointers, &m_data[0], m_data.size());
+
+               for (size_t maskNdx = 0; maskNdx < mask.size(); ++maskNdx)
+                       DE_ASSERT(mask[maskNdx] <= 1);
+       }
+
+       if (m_testStageFlags == TEST_STAGE_VERTEX)
+       {
+               m_vertShaderSource = generateTestShader(m_interface, m_interfaceLayout, m_blockPointers, m_matrixLoadFlag, m_testStageFlags, m_shuffleInterfaceMembers);
+               m_geomShaderSource = "";
+       }
+       else if (m_testStageFlags == TEST_STAGE_GEOMETRY)
+       {
+               m_vertShaderSource = generatePassthroughShader();
+               m_geomShaderSource = generateTestShader(m_interface, m_interfaceLayout, m_blockPointers, m_matrixLoadFlag, m_testStageFlags, m_shuffleInterfaceMembers);
+       }
+       else
+       {
+               DE_ASSERT(false && "Unknown test stage specified");
+       }
+}
+
+} // TransformFeedback
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.hpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.hpp
new file mode 100644 (file)
index 0000000..5043226
--- /dev/null
@@ -0,0 +1,353 @@
+#ifndef _VKTTRANSFORMFEEDBACKFUZZLAYOUTCASE_HPP
+#define _VKTTRANSFORMFEEDBACKFUZZLAYOUTCASE_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2015 The Khronos Group Inc.
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan Transform Feedback Fuzz Layout Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "deSharedPtr.hpp"
+#include "vktTestCase.hpp"
+#include "tcuDefs.hpp"
+#include "gluShaderUtil.hpp"
+
+#include <map>
+
+namespace vkt
+{
+namespace TransformFeedback
+{
+
+// Interface block details.
+
+enum InterfaceFlags
+{
+       PRECISION_LOW                   = (1<<0),
+       PRECISION_MEDIUM                = (1<<1),
+       PRECISION_HIGH                  = (1<<2),
+       PRECISION_MASK                  = PRECISION_LOW|PRECISION_MEDIUM|PRECISION_HIGH,
+
+       LAYOUT_XFBBUFFER                = (1<<3),
+       LAYOUT_XFBOFFSET                = (1<<4),
+       LAYOUT_XFBSTRIDE                = (1<<5),
+       LAYOUT_MASK                             = LAYOUT_XFBBUFFER|LAYOUT_XFBOFFSET|LAYOUT_XFBSTRIDE,
+
+       FIELD_UNASSIGNED                = (1<<6),       //!< Interface or struct member is not used in shader.
+       FIELD_MISSING                   = (1<<7),       //!< Interface or struct member will be commented out in shader.
+       FIELD_OPTIONS                   = FIELD_UNASSIGNED|FIELD_MISSING,
+};
+
+enum MatrixLoadFlags
+{
+       LOAD_FULL_MATRIX                = 0,
+       LOAD_MATRIX_COMPONENTS  = 1,
+};
+
+enum TestStageFlags
+{
+       TEST_STAGE_VERTEX       = 0,
+       TEST_STAGE_GEOMETRY     = 1,
+};
+
+class StructType;
+
+class VarType
+{
+public:
+                                               VarType                 (void);
+                                               VarType                 (const VarType& other);
+                                               VarType                 (glu::DataType basicType, deUint32 flags);
+                                               VarType                 (const VarType& elementType, int arraySize);
+       explicit                        VarType                 (const StructType* structPtr, deUint32 flags = 0u);
+                                               ~VarType                (void);
+
+       bool                            isBasicType             (void) const    { return m_type == TYPE_BASIC;  }
+       bool                            isArrayType             (void) const    { return m_type == TYPE_ARRAY;  }
+       bool                            isStructType    (void) const    { return m_type == TYPE_STRUCT; }
+
+       deUint32                        getFlags                (void) const    { return m_flags;                                       }
+       glu::DataType           getBasicType    (void) const    { return m_data.basicType;                      }
+
+       const VarType&          getElementType  (void) const    { return *m_data.array.elementType;     }
+       int                                     getArraySize    (void) const    { return m_data.array.size;                     }
+
+       const StructType&       getStruct               (void) const    { return *m_data.structPtr;                     }
+
+       VarType&                        operator=               (const VarType& other);
+
+private:
+       enum Type
+       {
+               TYPE_BASIC,
+               TYPE_ARRAY,
+               TYPE_STRUCT,
+
+               TYPE_LAST
+       };
+
+       Type                            m_type;
+       deUint32                        m_flags;
+       union Data
+       {
+               glu::DataType           basicType;
+               struct
+               {
+                       VarType*                elementType;
+                       int                             size;
+               } array;
+               const StructType*       structPtr;
+
+               Data (void)
+               {
+                       array.elementType       = DE_NULL;
+                       array.size                      = 0;
+               };
+       } m_data;
+};
+
+class StructMember
+{
+public:
+                                               StructMember    (const std::string& name, const VarType& type, deUint32 flags)
+                                                       : m_name(name)
+                                                       , m_type(type)
+                                                       , m_flags(flags)
+                                               {}
+
+                                               StructMember    (void)
+                                                       : m_flags(0)
+                                               {}
+
+       const std::string&      getName                 (void) const { return m_name;   }
+       const VarType&          getType                 (void) const { return m_type;   }
+       deUint32                        getFlags                (void) const { return m_flags;  }
+
+private:
+       std::string                     m_name;
+       VarType                         m_type;
+       deUint32                        m_flags;
+};
+
+class StructType
+{
+public:
+       typedef std::vector<StructMember>::iterator                     Iterator;
+       typedef std::vector<StructMember>::const_iterator       ConstIterator;
+
+                                                               StructType              (const std::string& typeName) : m_typeName(typeName) {}
+                                                               ~StructType             (void) {}
+
+       const std::string&                      getTypeName             (void) const    { return m_typeName;                    }
+       bool                                            hasTypeName             (void) const    { return !m_typeName.empty();   }
+
+       inline Iterator                         begin                   (void)                  { return m_members.begin();             }
+       inline ConstIterator            begin                   (void) const    { return m_members.begin();             }
+       inline Iterator                         end                             (void)                  { return m_members.end();               }
+       inline ConstIterator            end                             (void) const    { return m_members.end();               }
+
+       void                                            addMember               (const std::string& name, const VarType& type, deUint32 flags = 0);
+
+private:
+       std::string                                     m_typeName;
+       std::vector<StructMember>       m_members;
+};
+
+class InterfaceBlockMember
+{
+public:
+                                               InterfaceBlockMember    (const std::string& name, const VarType& type, deUint32 flags = 0);
+
+       const std::string&      getName                                 (void) const { return m_name;   }
+       const VarType&          getType                                 (void) const { return m_type;   }
+       deUint32                        getFlags                                (void) const { return m_flags;  }
+
+private:
+       std::string                     m_name;
+       VarType                         m_type;
+       deUint32                        m_flags;
+};
+
+class InterfaceBlock
+{
+public:
+       typedef std::vector<InterfaceBlockMember>::iterator                     Iterator;
+       typedef std::vector<InterfaceBlockMember>::const_iterator       ConstIterator;
+
+                                                                               InterfaceBlock          (const std::string& blockName);
+
+       const std::string&                                      getBlockName            (void) const { return m_blockName;                              }
+       bool                                                            hasInstanceName         (void) const { return !m_instanceName.empty();  }
+       const std::string&                                      getInstanceName         (void) const { return m_instanceName;                   }
+       bool                                                            isArray                         (void) const { return m_arraySize > 0;                  }
+       int                                                                     getArraySize            (void) const { return m_arraySize;                              }
+       int                                                                     getXfbBuffer            (void) const { return m_xfbBuffer;                              }
+       deUint32                                                        getFlags                        (void) const { return m_flags;                                  }
+
+       void                                                            setInstanceName         (const std::string& name)                                                       { m_instanceName = name;                                                }
+       void                                                            setFlags                        (deUint32 flags)                                                                        { m_flags = flags;                                                              }
+       void                                                            setFlag                         (deUint32 flag)                                                                         { m_flags |= flag;                                                              }
+       void                                                            setArraySize            (int arraySize)                                                                         { m_arraySize = arraySize;                                              }
+       void                                                            setXfbBuffer            (int xfbBuffer)                                                                         { m_xfbBuffer = xfbBuffer;                                              }
+       void                                                            addInterfaceMember      (const InterfaceBlockMember& interfaceBlockMember)      { m_members.push_back(interfaceBlockMember);    }
+
+       inline Iterator                                         begin                           (void)                  { return m_members.begin();             }
+       inline ConstIterator                            begin                           (void) const    { return m_members.begin();             }
+       inline Iterator                                         end                                     (void)                  { return m_members.end();               }
+       inline ConstIterator                            end                                     (void) const    { return m_members.end();               }
+
+private:
+       std::string                                                     m_blockName;
+       std::string                                                     m_instanceName;
+       std::vector<InterfaceBlockMember>       m_members;
+       int                                                                     m_xfbBuffer;
+       int                                                                     m_arraySize;    //!< Array size or 0 if not interface block array.
+       deUint32                                                        m_flags;
+};
+
+typedef de::SharedPtr<StructType>              StructTypeSP;
+typedef de::SharedPtr<InterfaceBlock>  InterfaceBlockSP;
+
+class ShaderInterface
+{
+public:
+                                                                       ShaderInterface                         (void);
+                                                                       ~ShaderInterface                        (void);
+
+       StructType&                                             allocStruct                                     (const std::string& name);
+       void                                                    getNamedStructs                         (std::vector<const StructType*>& structs) const;
+
+       InterfaceBlock&                                 allocBlock                                      (const std::string& name);
+
+       int                                                             getNumInterfaceBlocks           (void) const    { return (int)m_interfaceBlocks.size(); }
+       const InterfaceBlock&                   getInterfaceBlock                       (int ndx) const { return *m_interfaceBlocks[ndx];               }
+       InterfaceBlock&                                 getInterfaceBlockForModify      (int ndx)               { return *m_interfaceBlocks[ndx];               }
+
+private:
+       std::vector<StructTypeSP>               m_structs;
+       std::vector<InterfaceBlockSP>   m_interfaceBlocks;
+};
+
+struct BlockLayoutEntry
+{
+       BlockLayoutEntry (void)
+               : xfbBuffer                             (-1)
+               , xfbOffset                             (-1)
+               , xfbSize                               (0)
+               , xfbStride                             (0)
+               , blockDeclarationNdx   (-1)
+               , instanceNdx                   (-1)
+               , locationNdx                   (-1)
+               , locationSize                  (-1)
+       {
+       }
+
+       std::string                     name;
+       int                                     xfbBuffer;
+       int                                     xfbOffset;
+       int                                     xfbSize;
+       int                                     xfbStride;
+       std::vector<int>        activeInterfaceIndices;
+       int                                     blockDeclarationNdx;
+       int                                     instanceNdx;
+       // Location are not used for transform feedback, but they must be not overlap to pass GLSL compiler
+       int                                     locationNdx;
+       int                                     locationSize;
+};
+
+struct InterfaceLayoutEntry
+{
+       InterfaceLayoutEntry (void)
+               : type                  (glu::TYPE_LAST)
+               , arraySize             (0)
+               , blockLayoutNdx(-1)
+               , offset                (-1)
+               , arrayStride   (-1)
+               , matrixStride  (-1)
+               , instanceNdx   (0)
+               , locationNdx   (-1)
+               , validate              (true)
+       {
+       }
+
+       std::string                     name;
+       glu::DataType           type;
+       int                                     arraySize;
+       int                                     blockLayoutNdx;
+       int                                     offset;
+       int                                     arrayStride;
+       int                                     matrixStride;
+       int                                     instanceNdx;
+       // Location are not used for transform feedback, but they must be not overlap to pass GLSL compiler
+       int                                     locationNdx;
+       bool                            validate;
+};
+
+class InterfaceLayout
+{
+public:
+       std::vector<BlockLayoutEntry>           blocks;
+       std::vector<InterfaceLayoutEntry>       interfaces;
+
+       int                                                                     getInterfaceLayoutIndex (int blockDeclarationNdx, const std::string& name) const;
+       int                                                                     getBlockLayoutIndex             (int blockDeclarationNdx, int instanceNdx) const;
+};
+
+typedef std::vector<vk::VkDeviceSize> DeviceSizeVector;
+
+class InterfaceBlockCase : public vkt::TestCase
+{
+public:
+                                                       InterfaceBlockCase                      (tcu::TestContext&              testCtx,
+                                                                                                                const std::string&             name,
+                                                                                                                const std::string&             description,
+                                                                                                                MatrixLoadFlags                matrixLoadFlag,
+                                                                                                                TestStageFlags                 testStageFlag,
+                                                                                                                bool                                   shuffleInterfaceMembers = false);
+                                                       ~InterfaceBlockCase                     (void);
+
+       virtual void                    initPrograms                            (vk::SourceCollections& programCollection) const;
+       virtual TestInstance*   createInstance                          (Context&                               context) const;
+
+protected:
+       void                                    init                                            (void);
+
+       ShaderInterface                 m_interface;
+       MatrixLoadFlags                 m_matrixLoadFlag;
+       TestStageFlags                  m_testStageFlags;
+       bool                                    m_shuffleInterfaceMembers;      //!< Used with explicit offsets to test out of order member offsets
+       deUint32                                m_locationsRequired;
+
+private:
+       std::string                             m_vertShaderSource;
+       std::string                             m_geomShaderSource;
+
+       std::vector<deUint8>    m_data;                                         //!< Data.
+       DeviceSizeVector                m_tfBufBindingSizes;
+       DeviceSizeVector                m_tfBufBindingOffsets;
+       std::map<int, void*>    m_blockPointers;                        //!< Reference block pointers.
+       InterfaceLayout                 m_interfaceLayout;                      //!< interface layout.
+};
+
+} // TransformFeedback
+} // vkt
+
+#endif // _VKTTRANSFORMFEEDBACKFUZZLAYOUTCASE_HPP
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutTests.cpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutTests.cpp
new file mode 100644 (file)
index 0000000..3625629
--- /dev/null
@@ -0,0 +1,784 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2015 The Khronos Group Inc.
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2016 The Android Open Source Project
+ * Copyright (c) 2018 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan Transform Feedback Fuzz Layout Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTransformFeedbackFuzzLayoutCase.hpp"
+#include "vktTransformFeedbackRandomLayoutCase.hpp"
+
+#include "tcuCommandLine.hpp"
+#include "deStringUtil.hpp"
+
+namespace vkt
+{
+namespace TransformFeedback
+{
+
+namespace
+{
+
+class BlockBasicTypeCase : public InterfaceBlockCase
+{
+public:
+       BlockBasicTypeCase (tcu::TestContext&   testCtx,
+                                               const std::string&      name,
+                                               const std::string&      description,
+                                               const VarType&          type,
+                                               deUint32                        layoutFlags,
+                                               int                                     numInstances,
+                                               MatrixLoadFlags         matrixLoadFlag,
+                                               TestStageFlags          testStageFlags)
+               : InterfaceBlockCase(testCtx, name, description, matrixLoadFlag, testStageFlags)
+       {
+               InterfaceBlock& block = m_interface.allocBlock("Block");
+               block.addInterfaceMember(InterfaceBlockMember("var", type, 0));
+
+               VarType tempType = type;
+               while (tempType.isArrayType())
+               {
+                       tempType = tempType.getElementType();
+               }
+
+               block.setFlags(layoutFlags);
+
+               if (numInstances > 0)
+               {
+                       block.setArraySize(numInstances);
+                       block.setInstanceName("block");
+               }
+
+               init();
+       }
+};
+
+void createBlockBasicTypeCases (tcu::TestCaseGroup& group, tcu::TestContext& testCtx, const std::string& name, const VarType& type, deUint32 layoutFlags, int numInstances = 0)
+{
+       de::MovePtr<tcu::TestCaseGroup> typeGroup(new tcu::TestCaseGroup(group.getTestContext(), name.c_str(), ""));
+
+       typeGroup->addChild(new BlockBasicTypeCase(testCtx, "vertex",   "", type, layoutFlags,  numInstances, LOAD_FULL_MATRIX, TEST_STAGE_VERTEX));
+       typeGroup->addChild(new BlockBasicTypeCase(testCtx, "geometry", "", type, layoutFlags,  numInstances, LOAD_FULL_MATRIX, TEST_STAGE_GEOMETRY));
+
+       group.addChild(typeGroup.release());
+}
+
+class BlockSingleStructCase : public InterfaceBlockCase
+{
+public:
+       BlockSingleStructCase (tcu::TestContext&        testCtx,
+                                                  const std::string&   name,
+                                                  const std::string&   description,
+                                                  deUint32                             layoutFlags,
+                                                  int                                  numInstances,
+                                                  MatrixLoadFlags              matrixLoadFlag,
+                                                  TestStageFlags               testStageFlags)
+               : InterfaceBlockCase    (testCtx, name, description, matrixLoadFlag, testStageFlags)
+       {
+               StructType& typeS = m_interface.allocStruct("S");
+               typeS.addMember("a", VarType(glu::TYPE_INT_VEC3, PRECISION_HIGH), FIELD_UNASSIGNED); // First member is unused.
+               typeS.addMember("b", VarType(VarType(glu::TYPE_FLOAT_VEC3, PRECISION_HIGH), 2));
+               typeS.addMember("c", VarType(glu::TYPE_FLOAT_MAT3, PRECISION_MEDIUM));
+
+               InterfaceBlock& block = m_interface.allocBlock("Block");
+               block.addInterfaceMember(InterfaceBlockMember("s", VarType(&typeS), 0));
+               block.setFlags(layoutFlags);
+
+               if (numInstances > 0)
+               {
+                       block.setInstanceName("block");
+                       block.setArraySize(numInstances);
+               }
+
+               init();
+       }
+};
+
+class BlockSingleStructArrayCase : public InterfaceBlockCase
+{
+public:
+       BlockSingleStructArrayCase (tcu::TestContext&   testCtx,
+                                                               const std::string&      name,
+                                                               const std::string&      description,
+                                                               deUint32                        layoutFlags,
+                                                               int                                     numInstances,
+                                                               MatrixLoadFlags         matrixLoadFlag,
+                                                               TestStageFlags          testStageFlags)
+               : InterfaceBlockCase    (testCtx, name, description, matrixLoadFlag, testStageFlags)
+       {
+               StructType& typeS = m_interface.allocStruct("S");
+               typeS.addMember("a", VarType(glu::TYPE_INT_VEC3, PRECISION_HIGH), FIELD_UNASSIGNED);
+               typeS.addMember("b", VarType(VarType(glu::TYPE_FLOAT_MAT2, PRECISION_MEDIUM), 2));
+               typeS.addMember("c", VarType(glu::TYPE_FLOAT, PRECISION_HIGH));
+
+               InterfaceBlock& block = m_interface.allocBlock("Block");
+               block.addInterfaceMember(InterfaceBlockMember("u", VarType(glu::TYPE_UINT, PRECISION_LOW)));
+               block.addInterfaceMember(InterfaceBlockMember("s", VarType(VarType(&typeS), 2)));
+               block.addInterfaceMember(InterfaceBlockMember("v", VarType(glu::TYPE_FLOAT_VEC4, PRECISION_MEDIUM)));
+               block.setFlags(layoutFlags);
+
+               if (numInstances > 0)
+               {
+                       block.setInstanceName("block");
+                       block.setArraySize(numInstances);
+               }
+
+               init();
+       }
+};
+
+class BlockSingleNestedStructCase : public InterfaceBlockCase
+{
+public:
+       BlockSingleNestedStructCase (tcu::TestContext&  testCtx,
+                                                                const std::string&     name,
+                                                                const std::string&     description,
+                                                                deUint32                       layoutFlags,
+                                                                int                            numInstances,
+                                                                MatrixLoadFlags        matrixLoadFlag,
+                                                                TestStageFlags         testStageFlags)
+               : InterfaceBlockCase    (testCtx, name, description, matrixLoadFlag, testStageFlags)
+       {
+               StructType& typeS = m_interface.allocStruct("S");
+               typeS.addMember("a", VarType(glu::TYPE_INT_VEC3, PRECISION_HIGH));
+               typeS.addMember("b", VarType(VarType(glu::TYPE_FLOAT_MAT2, PRECISION_MEDIUM), 2));
+               typeS.addMember("c", VarType(glu::TYPE_FLOAT, PRECISION_HIGH), FIELD_UNASSIGNED);
+
+               StructType& typeT = m_interface.allocStruct("T");
+               typeT.addMember("a", VarType(glu::TYPE_FLOAT_VEC3, PRECISION_MEDIUM));
+               typeT.addMember("b", VarType(&typeS));
+
+               InterfaceBlock& block = m_interface.allocBlock("Block");
+               block.addInterfaceMember(InterfaceBlockMember("s", VarType(&typeS), 0));
+               block.addInterfaceMember(InterfaceBlockMember("v", VarType(glu::TYPE_UINT, PRECISION_LOW), FIELD_UNASSIGNED));
+               block.addInterfaceMember(InterfaceBlockMember("t", VarType(&typeT), 0));
+               block.addInterfaceMember(InterfaceBlockMember("u", VarType(glu::TYPE_FLOAT_VEC2, PRECISION_HIGH), 0));
+               block.setFlags(layoutFlags);
+
+               if (numInstances > 0)
+               {
+                       block.setInstanceName("block");
+                       block.setArraySize(numInstances);
+               }
+
+               init();
+       }
+};
+
+class BlockSingleNestedStructArrayCase : public InterfaceBlockCase
+{
+public:
+       BlockSingleNestedStructArrayCase (tcu::TestContext&             testCtx,
+                                                                         const std::string&    name,
+                                                                         const std::string&    description,
+                                                                         deUint32                              layoutFlags,
+                                                                         int                                   numInstances,
+                                                                         MatrixLoadFlags               matrixLoadFlag,
+                                                                         TestStageFlags                testStageFlags)
+               : InterfaceBlockCase    (testCtx, name, description, matrixLoadFlag, testStageFlags)
+       {
+               StructType& typeS = m_interface.allocStruct("S");
+               typeS.addMember("a", VarType(VarType(glu::TYPE_FLOAT, PRECISION_HIGH), 2));
+
+               StructType& typeT = m_interface.allocStruct("T");
+               typeT.addMember("a", VarType(glu::TYPE_FLOAT_MAT2, PRECISION_MEDIUM));
+               typeT.addMember("b", VarType(VarType(&typeS), 2));
+
+               InterfaceBlock& block = m_interface.allocBlock("Block");
+               block.addInterfaceMember(InterfaceBlockMember("s", VarType(&typeS), 0));
+               block.addInterfaceMember(InterfaceBlockMember("v", VarType(glu::TYPE_FLOAT_VEC2, PRECISION_LOW), FIELD_UNASSIGNED));
+               block.addInterfaceMember(InterfaceBlockMember("t", VarType(VarType(&typeT), 2), 0));
+               block.addInterfaceMember(InterfaceBlockMember("u", VarType(glu::TYPE_UINT, PRECISION_HIGH), 0));
+               block.setFlags(layoutFlags);
+
+               if (numInstances > 0)
+               {
+                       block.setInstanceName("block");
+                       block.setArraySize(numInstances);
+               }
+
+               init();
+       }
+};
+
+class BlockMultiBasicTypesCase : public InterfaceBlockCase
+{
+public:
+       BlockMultiBasicTypesCase (tcu::TestContext&             testCtx,
+                                                         const std::string&    name,
+                                                         const std::string&    description,
+                                                         deUint32                              flagsA,
+                                                         deUint32                              flagsB,
+                                                         int                                   numInstances,
+                                                         MatrixLoadFlags               matrixLoadFlag,
+                                                         TestStageFlags                testStageFlags)
+               : InterfaceBlockCase    (testCtx, name, description, matrixLoadFlag, testStageFlags)
+       {
+               InterfaceBlock& blockA = m_interface.allocBlock("BlockA");
+               blockA.addInterfaceMember(InterfaceBlockMember("a", VarType(glu::TYPE_FLOAT, PRECISION_HIGH)));
+               blockA.addInterfaceMember(InterfaceBlockMember("b", VarType(glu::TYPE_UINT_VEC3, PRECISION_LOW), FIELD_UNASSIGNED));
+               blockA.addInterfaceMember(InterfaceBlockMember("c", VarType(glu::TYPE_FLOAT_MAT2, PRECISION_MEDIUM)));
+               blockA.setInstanceName("blockA");
+               blockA.setFlags(flagsA);
+
+               InterfaceBlock& blockB = m_interface.allocBlock("BlockB");
+               blockB.addInterfaceMember(InterfaceBlockMember("a", VarType(glu::TYPE_FLOAT_MAT3, PRECISION_MEDIUM)));
+               blockB.addInterfaceMember(InterfaceBlockMember("b", VarType(glu::TYPE_INT_VEC2, PRECISION_LOW)));
+               blockB.addInterfaceMember(InterfaceBlockMember("c", VarType(glu::TYPE_FLOAT_VEC4, PRECISION_HIGH), FIELD_UNASSIGNED));
+               blockB.addInterfaceMember(InterfaceBlockMember("d", VarType(glu::TYPE_INT, 0)));
+               blockB.setInstanceName("blockB");
+               blockB.setFlags(flagsB);
+
+               if (numInstances > 0)
+               {
+                       blockA.setArraySize(numInstances);
+                       blockB.setArraySize(numInstances);
+               }
+
+               init();
+       }
+};
+
+class BlockMultiNestedStructCase : public InterfaceBlockCase
+{
+public:
+       BlockMultiNestedStructCase (tcu::TestContext&   testCtx,
+                                                               const std::string&      name,
+                                                               const std::string&      description,
+                                                               deUint32                        flagsA,
+                                                               deUint32                        flagsB,
+                                                               int                                     numInstances,
+                                                               MatrixLoadFlags         matrixLoadFlag,
+                                                               TestStageFlags          testStageFlags)
+               : InterfaceBlockCase    (testCtx, name, description, matrixLoadFlag, testStageFlags)
+       {
+               StructType& typeS = m_interface.allocStruct("S");
+               typeS.addMember("a", VarType(glu::TYPE_FLOAT_MAT2, PRECISION_LOW));
+               typeS.addMember("b", VarType(VarType(glu::TYPE_INT_VEC2, PRECISION_MEDIUM), 2));
+
+               StructType& typeT = m_interface.allocStruct("T");
+               typeT.addMember("a", VarType(glu::TYPE_UINT, PRECISION_MEDIUM), FIELD_UNASSIGNED);
+               typeT.addMember("b", VarType(&typeS));
+               typeT.addMember("c", VarType(glu::TYPE_UINT_VEC3, 0));
+
+               InterfaceBlock& blockA = m_interface.allocBlock("BlockA");
+               blockA.addInterfaceMember(InterfaceBlockMember("a", VarType(glu::TYPE_FLOAT, PRECISION_HIGH)));
+               blockA.addInterfaceMember(InterfaceBlockMember("b", VarType(&typeS)));
+               blockA.addInterfaceMember(InterfaceBlockMember("c", VarType(glu::TYPE_UINT, PRECISION_LOW), FIELD_UNASSIGNED));
+               blockA.setInstanceName("blockA");
+               blockA.setFlags(flagsA);
+
+               InterfaceBlock& blockB = m_interface.allocBlock("BlockB");
+               blockB.addInterfaceMember(InterfaceBlockMember("a", VarType(glu::TYPE_FLOAT_MAT2, PRECISION_MEDIUM)));
+               blockB.addInterfaceMember(InterfaceBlockMember("b", VarType(&typeT)));
+               blockB.addInterfaceMember(InterfaceBlockMember("c", VarType(glu::TYPE_INT, 0)));
+               blockB.setInstanceName("blockB");
+               blockB.setFlags(flagsB);
+
+               if (numInstances > 0)
+               {
+                       blockA.setArraySize(numInstances);
+                       blockB.setArraySize(numInstances);
+               }
+
+               init();
+       }
+};
+
+class BlockVariousBuffersCase : public InterfaceBlockCase
+{
+public:
+       BlockVariousBuffersCase (tcu::TestContext&              testCtx,
+                                                        const std::string&             name,
+                                                        const std::string&             description,
+                                                        deUint32                               flags,
+                                                        deUint32                               xfbBufferA,
+                                                        deUint32                               xfbBufferB,
+                                                        deUint32                               xfbBufferC,
+                                                        int                                    numInstances,
+                                                        MatrixLoadFlags                matrixLoadFlag,
+                                                        TestStageFlags                 testStageFlags)
+               : InterfaceBlockCase    (testCtx, name, description, matrixLoadFlag, testStageFlags)
+       {
+               StructType& typeS = m_interface.allocStruct("S");
+               typeS.addMember("a", VarType(VarType(glu::TYPE_FLOAT, PRECISION_LOW), 3));
+               typeS.addMember("b", VarType(VarType(glu::TYPE_FLOAT_VEC2, PRECISION_MEDIUM), 2));
+               typeS.addMember("c", VarType(glu::TYPE_FLOAT_VEC4, PRECISION_HIGH));
+
+               StructType& typeT = m_interface.allocStruct("T");
+               typeT.addMember("a", VarType(glu::TYPE_UINT, PRECISION_MEDIUM), FIELD_UNASSIGNED);
+               typeT.addMember("b", VarType(glu::TYPE_INT_VEC3, 0));
+
+               InterfaceBlock& blockA = m_interface.allocBlock("BlockA");
+               blockA.addInterfaceMember(InterfaceBlockMember("a", VarType(glu::TYPE_INT, PRECISION_HIGH)));
+               blockA.addInterfaceMember(InterfaceBlockMember("b", VarType(&typeS)));
+               blockA.addInterfaceMember(InterfaceBlockMember("c", VarType(glu::TYPE_UINT_VEC3, PRECISION_LOW), FIELD_UNASSIGNED));
+               blockA.setInstanceName("blockA");
+               blockA.setFlags(flags);
+               blockA.setXfbBuffer(xfbBufferA);
+
+               InterfaceBlock& blockB = m_interface.allocBlock("BlockB");
+               blockB.addInterfaceMember(InterfaceBlockMember("a", VarType(glu::TYPE_FLOAT_MAT2, PRECISION_MEDIUM)));
+               blockB.addInterfaceMember(InterfaceBlockMember("b", VarType(&typeT)));
+               blockB.addInterfaceMember(InterfaceBlockMember("c", VarType(glu::TYPE_INT_VEC4, 0), FIELD_UNASSIGNED));
+               blockB.addInterfaceMember(InterfaceBlockMember("d", VarType(glu::TYPE_INT, 0)));
+               blockB.setInstanceName("blockB");
+               blockB.setFlags(flags);
+               blockB.setXfbBuffer(xfbBufferB);
+
+               InterfaceBlock& blockC = m_interface.allocBlock("BlockC");
+               blockC.addInterfaceMember(InterfaceBlockMember("a", VarType(glu::TYPE_UINT, PRECISION_HIGH)));
+               blockC.addInterfaceMember(InterfaceBlockMember("b", VarType(glu::TYPE_FLOAT_MAT2, PRECISION_HIGH)));
+               blockC.setInstanceName("blockC");
+               blockC.setFlags(flags);
+               blockC.setXfbBuffer(xfbBufferC);
+
+               if (numInstances > 0)
+               {
+                       blockA.setArraySize(numInstances);
+                       blockB.setArraySize(numInstances);
+               }
+
+               init();
+       }
+};
+
+class Block2LevelStructArrayCase : public InterfaceBlockCase
+{
+public:
+       Block2LevelStructArrayCase (tcu::TestContext&           testCtx,
+                                                               const std::string&              name,
+                                                               const std::string&              description,
+                                                               deUint32                                flags,
+                                                               int                                             numInstances,
+                                                               MatrixLoadFlags                 matrixLoadFlag,
+                                                               TestStageFlags                  testStageFlags)
+               : InterfaceBlockCase    (testCtx, name, description, matrixLoadFlag, testStageFlags)
+       {
+               StructType& typeS = m_interface.allocStruct("S");
+               typeS.addMember("a", VarType(glu::TYPE_UINT_VEC3, PRECISION_HIGH), FIELD_UNASSIGNED);
+               typeS.addMember("b", VarType(glu::TYPE_FLOAT_MAT2, PRECISION_MEDIUM));
+
+               InterfaceBlock& block = m_interface.allocBlock("Block");
+               block.addInterfaceMember(InterfaceBlockMember("u", VarType(glu::TYPE_INT, PRECISION_MEDIUM)));
+               block.addInterfaceMember(InterfaceBlockMember("s", VarType(VarType(VarType(&typeS), 2), 2)));
+               block.addInterfaceMember(InterfaceBlockMember("v", VarType(glu::TYPE_FLOAT_VEC2, PRECISION_MEDIUM)));
+               block.setFlags(flags);
+
+               if (numInstances > 0)
+               {
+                       block.setInstanceName("block");
+                       block.setArraySize(numInstances);
+               }
+
+               init();
+       }
+};
+
+void createRandomCaseGroup (tcu::TestCaseGroup* parentGroup, tcu::TestContext& testCtx, const char* groupName, const char* description, deUint32 numCases, TestStageFlags testStageFlags, deUint32 features)
+{
+       const deUint32                  baseSeed        = deStringHash(groupName) + static_cast<deUint32>(testCtx.getCommandLine().getBaseSeed());
+       tcu::TestCaseGroup*             group           = new tcu::TestCaseGroup(testCtx, groupName, description);
+
+       parentGroup->addChild(group);
+
+       for (deUint32 ndx = 0; ndx < numCases; ndx++)
+               group->addChild(new RandomInterfaceBlockCase(testCtx, de::toString(ndx), "", testStageFlags, features, ndx + baseSeed));
+}
+
+// InterfaceBlockTests
+
+class InterfaceBlockTests : public tcu::TestCaseGroup
+{
+public:
+                                                       InterfaceBlockTests             (tcu::TestContext& testCtx);
+                                                       ~InterfaceBlockTests    (void);
+
+       void                                    init                                    (void);
+
+private:
+                                                       InterfaceBlockTests             (const InterfaceBlockTests& other);
+       InterfaceBlockTests&    operator=                               (const InterfaceBlockTests& other);
+};
+
+InterfaceBlockTests::InterfaceBlockTests (tcu::TestContext& testCtx)
+       : TestCaseGroup(testCtx, "fuzz", "Transform feedback fuzz tests")
+{
+}
+
+InterfaceBlockTests::~InterfaceBlockTests (void)
+{
+}
+
+void InterfaceBlockTests::init (void)
+{
+       static const glu::DataType basicTypes[] =
+       {
+               glu::TYPE_FLOAT,
+               glu::TYPE_FLOAT_VEC2,
+               glu::TYPE_FLOAT_VEC3,
+               glu::TYPE_FLOAT_VEC4,
+               glu::TYPE_INT,
+               glu::TYPE_INT_VEC2,
+               glu::TYPE_INT_VEC3,
+               glu::TYPE_INT_VEC4,
+               glu::TYPE_UINT,
+               glu::TYPE_UINT_VEC2,
+               glu::TYPE_UINT_VEC3,
+               glu::TYPE_UINT_VEC4,
+               glu::TYPE_FLOAT_MAT2,
+               glu::TYPE_FLOAT_MAT3,
+               glu::TYPE_FLOAT_MAT4,
+               glu::TYPE_FLOAT_MAT2X3,
+               glu::TYPE_FLOAT_MAT2X4,
+               glu::TYPE_FLOAT_MAT3X2,
+               glu::TYPE_FLOAT_MAT3X4,
+               glu::TYPE_FLOAT_MAT4X2,
+               glu::TYPE_FLOAT_MAT4X3,
+               glu::TYPE_DOUBLE,
+               glu::TYPE_DOUBLE_VEC2,
+               glu::TYPE_DOUBLE_VEC3,
+               glu::TYPE_DOUBLE_VEC4,
+               glu::TYPE_DOUBLE_MAT2,
+               glu::TYPE_DOUBLE_MAT2X3,
+               glu::TYPE_DOUBLE_MAT2X4,
+               glu::TYPE_DOUBLE_MAT3X2,
+               glu::TYPE_DOUBLE_MAT3,
+               glu::TYPE_DOUBLE_MAT3X4,
+               glu::TYPE_DOUBLE_MAT4X2,
+               glu::TYPE_DOUBLE_MAT4X3,
+               glu::TYPE_DOUBLE_MAT4,
+       };
+
+       static const struct
+       {
+               const std::string       name;
+               deUint32                        flags;
+       } precisionFlags[] =
+       {
+               // TODO remove PRECISION_LOW because both PRECISION_LOW and PRECISION_MEDIUM means relaxed precision?
+               { "lowp",               PRECISION_LOW           },
+               { "mediump",    PRECISION_MEDIUM        },
+               { "highp",              PRECISION_HIGH          }
+       };
+       const deUint32  defaultFlags    = LAYOUT_XFBBUFFER | LAYOUT_XFBOFFSET;
+
+       // .2_level_array
+       {
+               tcu::TestCaseGroup* nestedArrayGroup = new tcu::TestCaseGroup(m_testCtx, "2_level_array", "2-level basic array variable in single buffer");
+               addChild(nestedArrayGroup);
+
+               for (int basicTypeNdx = 0; basicTypeNdx < DE_LENGTH_OF_ARRAY(basicTypes); basicTypeNdx++)
+               {
+                       const glu::DataType     type            = basicTypes[basicTypeNdx];
+                       const char* const       typeName        = glu::getDataTypeName(type);
+                       const int                       childSize       = 2;
+                       const int                       parentSize      = 2;
+                       const VarType           childType       (VarType(type, !dataTypeSupportsPrecisionModifier(type) ? 0 : PRECISION_HIGH), childSize);
+                       const VarType           parentType      (childType, parentSize);
+
+                       createBlockBasicTypeCases(*nestedArrayGroup, m_testCtx, typeName, parentType, defaultFlags);
+               }
+       }
+
+       // .3_level_array
+       {
+               tcu::TestCaseGroup* nestedArrayGroup = new tcu::TestCaseGroup(m_testCtx, "3_level_array", "3-level basic array variable in single buffer");
+               addChild(nestedArrayGroup);
+
+               for (int basicTypeNdx = 0; basicTypeNdx < DE_LENGTH_OF_ARRAY(basicTypes); basicTypeNdx++)
+               {
+                       const glu::DataType     type            = basicTypes[basicTypeNdx];
+                       const char* const       typeName        = glu::getDataTypeName(type);
+                       const int                       childSize0      = 2;
+                       const int                       childSize1      = 2;
+                       const int                       parentSize      = 2;
+                       const VarType           childType0      (VarType(type, !dataTypeSupportsPrecisionModifier(type) ? 0 : PRECISION_HIGH), childSize0);
+                       const VarType           childType1      (childType0, childSize1);
+                       const VarType           parentType      (childType1, parentSize);
+
+                       createBlockBasicTypeCases(*nestedArrayGroup, m_testCtx, typeName, parentType, defaultFlags);
+               }
+       }
+
+       // .2_level_struct_array
+       {
+               tcu::TestCaseGroup* structArrayArrayGroup = new tcu::TestCaseGroup(m_testCtx, "2_level_struct_array", "Struct array in one interface block");
+               addChild(structArrayArrayGroup);
+
+               for (int isArray = 0; isArray < 2; isArray++)
+               {
+                       const std::string       baseName                = isArray ? "instance_array" : "std";
+                       const int                       numInstances    = isArray ? 2 : 0;
+
+                       structArrayArrayGroup->addChild(new Block2LevelStructArrayCase(m_testCtx, (baseName + "_vertex"),       "", defaultFlags,       numInstances, LOAD_FULL_MATRIX, TEST_STAGE_VERTEX));
+                       structArrayArrayGroup->addChild(new Block2LevelStructArrayCase(m_testCtx, (baseName + "_geometry"),     "", defaultFlags,       numInstances, LOAD_FULL_MATRIX, TEST_STAGE_GEOMETRY));
+               }
+       }
+
+       // .single_basic_type
+       {
+               tcu::TestCaseGroup* singleBasicTypeGroup = new tcu::TestCaseGroup(m_testCtx, "single_basic_type", "Single basic variable in single buffer");
+               addChild(singleBasicTypeGroup);
+
+               for (int basicTypeNdx = 0; basicTypeNdx < DE_LENGTH_OF_ARRAY(basicTypes); basicTypeNdx++)
+               {
+                       glu::DataType           type = basicTypes[basicTypeNdx];
+                       const char* const       typeName = glu::getDataTypeName(type);
+
+                       if (!dataTypeSupportsPrecisionModifier(type))
+                               createBlockBasicTypeCases(*singleBasicTypeGroup, m_testCtx, typeName, VarType(type, 0), defaultFlags);
+               }
+
+               for (int precNdx = 0; precNdx < DE_LENGTH_OF_ARRAY(precisionFlags); precNdx++)
+               {
+                       de::MovePtr<tcu::TestCaseGroup> precGroup(new tcu::TestCaseGroup(m_testCtx, precisionFlags[precNdx].name.c_str(), ""));
+
+                       for (int basicTypeNdx = 0; basicTypeNdx < DE_LENGTH_OF_ARRAY(basicTypes); basicTypeNdx++)
+                       {
+                               glu::DataType           type            = basicTypes[basicTypeNdx];
+                               const char* const       typeName        = glu::getDataTypeName(type);
+
+                               if (dataTypeSupportsPrecisionModifier(type))
+                                       createBlockBasicTypeCases(*precGroup, m_testCtx, typeName, VarType(type, precisionFlags[precNdx].flags), defaultFlags);
+                       }
+                       singleBasicTypeGroup->addChild(precGroup.release());
+               }
+       }
+
+       // .single_basic_array
+       {
+               tcu::TestCaseGroup* singleBasicArrayGroup = new tcu::TestCaseGroup(m_testCtx, "single_basic_array", "Single basic array variable in single buffer");
+               addChild(singleBasicArrayGroup);
+
+               for (int basicTypeNdx = 0; basicTypeNdx < DE_LENGTH_OF_ARRAY(basicTypes); basicTypeNdx++)
+               {
+                       glu::DataType           type            = basicTypes[basicTypeNdx];
+                       const char* const       typeName        = glu::getDataTypeName(type);
+                       const int                       arraySize       = 3;
+
+                       createBlockBasicTypeCases(*singleBasicArrayGroup, m_testCtx, typeName,
+                                                                               VarType(VarType(type, !dataTypeSupportsPrecisionModifier(type) ? 0 : PRECISION_HIGH), arraySize),
+                                                                               defaultFlags);
+               }
+       }
+
+       // .single_struct
+       {
+               tcu::TestCaseGroup* singleStructGroup = new tcu::TestCaseGroup(m_testCtx, "single_struct", "Single struct in interface block");
+               addChild(singleStructGroup);
+
+               for (int isArray = 0; isArray < 2; isArray++)
+               {
+                       const std::string       baseName                = isArray ? "instance_array" : "std";
+                       const int                       numInstances    = isArray ? 3 : 0;
+
+                       singleStructGroup->addChild(new BlockSingleStructCase(m_testCtx, baseName + "_vertex",          "", defaultFlags,       numInstances, LOAD_FULL_MATRIX, TEST_STAGE_VERTEX));
+                       singleStructGroup->addChild(new BlockSingleStructCase(m_testCtx, baseName + "_geometry",        "", defaultFlags,       numInstances, LOAD_FULL_MATRIX, TEST_STAGE_GEOMETRY));
+               }
+       }
+
+       // .single_struct_array
+       {
+               tcu::TestCaseGroup* singleStructArrayGroup = new tcu::TestCaseGroup(m_testCtx, "single_struct_array", "Struct array in one interface block");
+               addChild(singleStructArrayGroup);
+
+               for (int isArray = 0; isArray < 2; isArray++)
+               {
+                       const std::string       baseName                = isArray ? "instance_array" : "std";
+                       const int                       numInstances    = isArray ? 2 : 0;
+
+                       singleStructArrayGroup->addChild(new BlockSingleStructArrayCase(m_testCtx, baseName + "_vertex",        "", defaultFlags,       numInstances, LOAD_FULL_MATRIX, TEST_STAGE_VERTEX));
+                       singleStructArrayGroup->addChild(new BlockSingleStructArrayCase(m_testCtx, baseName + "_geometry",      "", defaultFlags,       numInstances, LOAD_FULL_MATRIX, TEST_STAGE_GEOMETRY));
+               }
+       }
+
+       // .single_nested_struct
+       {
+               tcu::TestCaseGroup* singleNestedStructGroup = new tcu::TestCaseGroup(m_testCtx, "single_nested_struct", "Nested struct in one interface block");
+               addChild(singleNestedStructGroup);
+
+               for (int isArray = 0; isArray < 2; isArray++)
+               {
+                       const std::string       baseName                = isArray ? "instance_array" : "std";
+                       const int                       numInstances    = isArray ? 2 : 0;
+
+                       singleNestedStructGroup->addChild(new BlockSingleNestedStructCase(m_testCtx, baseName + "_vertex",              "", defaultFlags,       numInstances, LOAD_FULL_MATRIX, TEST_STAGE_VERTEX));
+                       singleNestedStructGroup->addChild(new BlockSingleNestedStructCase(m_testCtx, baseName + "_geometry",    "", defaultFlags,       numInstances, LOAD_FULL_MATRIX, TEST_STAGE_GEOMETRY));
+               }
+       }
+
+       // .single_nested_struct_array
+       {
+               tcu::TestCaseGroup* singleNestedStructArrayGroup = new tcu::TestCaseGroup(m_testCtx, "single_nested_struct_array", "Nested struct array in one interface block");
+               addChild(singleNestedStructArrayGroup);
+
+               for (int isArray = 0; isArray < 2; isArray++)
+               {
+                       const std::string       baseName                = isArray ? "instance_array" : "std";
+                       const int                       numInstances    = isArray ? 2 : 0;
+
+                       singleNestedStructArrayGroup->addChild(new BlockSingleNestedStructArrayCase(m_testCtx, baseName + "_vertex",    "", defaultFlags,       numInstances, LOAD_FULL_MATRIX, TEST_STAGE_VERTEX));
+                       singleNestedStructArrayGroup->addChild(new BlockSingleNestedStructArrayCase(m_testCtx, baseName + "_geometry",  "", defaultFlags,       numInstances, LOAD_FULL_MATRIX, TEST_STAGE_GEOMETRY));
+               }
+       }
+
+       // .instance_array_basic_type
+       {
+               tcu::TestCaseGroup* instanceArrayBasicTypeGroup = new tcu::TestCaseGroup(m_testCtx, "instance_array_basic_type", "Single basic variable in instance array");
+               addChild(instanceArrayBasicTypeGroup);
+
+               for (int basicTypeNdx = 0; basicTypeNdx < DE_LENGTH_OF_ARRAY(basicTypes); basicTypeNdx++)
+               {
+                       glu::DataType           type                    = basicTypes[basicTypeNdx];
+                       const char* const       typeName                = glu::getDataTypeName(type);
+                       const int                       numInstances    = 3;
+
+                       createBlockBasicTypeCases(*instanceArrayBasicTypeGroup, m_testCtx, typeName,
+                                                                               VarType(type, !dataTypeSupportsPrecisionModifier(type) ? 0 : PRECISION_HIGH),
+                                                                               defaultFlags, numInstances);
+               }
+       }
+
+       // .multi_basic_types
+       {
+               tcu::TestCaseGroup* multiBasicTypesGroup = new tcu::TestCaseGroup(m_testCtx, "multi_basic_types", "Multiple buffers with basic types");
+               addChild(multiBasicTypesGroup);
+
+               for (int isArray = 0; isArray < 2; isArray++)
+               {
+                       const std::string       baseName                = isArray ? "instance_array" : "std";
+                       const int                       numInstances    = isArray ? 2 : 0;
+
+                       multiBasicTypesGroup->addChild(new BlockMultiBasicTypesCase(m_testCtx, baseName + "_vertex",    "", defaultFlags,       defaultFlags,   numInstances, LOAD_FULL_MATRIX, TEST_STAGE_VERTEX));
+                       multiBasicTypesGroup->addChild(new BlockMultiBasicTypesCase(m_testCtx, baseName + "_geometry",  "", defaultFlags,       defaultFlags,   numInstances, LOAD_FULL_MATRIX, TEST_STAGE_GEOMETRY));
+               }
+       }
+
+       // .multi_nested_struct
+       {
+               tcu::TestCaseGroup* multiNestedStructGroup = new tcu::TestCaseGroup(m_testCtx, "multi_nested_struct", "Multiple buffers with nested structs");
+               addChild(multiNestedStructGroup);
+
+               for (int isArray = 0; isArray < 2; isArray++)
+               {
+                       const std::string       baseName                = isArray ? "instance_array" : "std";
+                       const int                       numInstances    = isArray ? 2 : 0;
+
+                       multiNestedStructGroup->addChild(new BlockMultiNestedStructCase(m_testCtx, baseName + "_vertex",        "", defaultFlags,       defaultFlags,   numInstances, LOAD_FULL_MATRIX, TEST_STAGE_VERTEX));
+                       multiNestedStructGroup->addChild(new BlockMultiNestedStructCase(m_testCtx, baseName + "_geometry",      "", defaultFlags,       defaultFlags,   numInstances, LOAD_FULL_MATRIX, TEST_STAGE_GEOMETRY));
+               }
+       }
+
+       // .various_buffers
+       {
+               static const struct
+               {
+                       const std::string       name;
+                       deUint32                        bufferA;
+                       deUint32                        bufferB;
+                       deUint32                        bufferC;
+               } xfbBufferNumbers[] =
+               {
+                       { "000",        0,      0,      0       },
+                       { "010",        0,      1,      0       },
+                       { "100",        1,      0,      0       },
+                       { "110",        1,      1,      0       },
+               };
+
+               tcu::TestCaseGroup* multiNestedStructGroup = new tcu::TestCaseGroup(m_testCtx, "various_buffers", "Output data into several transform feedback buffers");
+               addChild(multiNestedStructGroup);
+
+               for (int xfbBufferNdx = 0; xfbBufferNdx < DE_LENGTH_OF_ARRAY(xfbBufferNumbers); xfbBufferNdx++)
+               {
+                       const deUint32 bufferA = xfbBufferNumbers[xfbBufferNdx].bufferA;
+                       const deUint32 bufferB = xfbBufferNumbers[xfbBufferNdx].bufferB;
+                       const deUint32 bufferC = xfbBufferNumbers[xfbBufferNdx].bufferC;
+
+                       for (int isArray = 0; isArray < 2; isArray++)
+                       {
+                               std::string     baseName                = "buffers" + xfbBufferNumbers[xfbBufferNdx].name;
+                               const int       numInstances    = isArray ? 2 : 0;
+
+                               if (isArray)
+                                       baseName += "_instance_array";
+
+                               multiNestedStructGroup->addChild(new BlockVariousBuffersCase(m_testCtx, baseName + "_vertex",   "", defaultFlags, bufferA, bufferB, bufferC, numInstances, LOAD_FULL_MATRIX, TEST_STAGE_VERTEX));
+                               multiNestedStructGroup->addChild(new BlockVariousBuffersCase(m_testCtx, baseName + "_geometry", "", defaultFlags, bufferA, bufferB, bufferC, numInstances, LOAD_FULL_MATRIX, TEST_STAGE_GEOMETRY));
+                       }
+               }
+       }
+
+       // .random
+       {
+               static const struct
+               {
+                       std::string             name;
+                       TestStageFlags  testStageFlags;
+               }
+               stages[] =
+               {
+                       { "vertex",             TEST_STAGE_VERTEX       },
+                       { "geometry",   TEST_STAGE_GEOMETRY     },
+               };
+
+               for (size_t stageNdx = 0; stageNdx < DE_LENGTH_OF_ARRAY(stages); ++stageNdx)
+               {
+                       const std::string               groupName               = "random_" + stages[stageNdx].name;
+                       const TestStageFlags    stage                   = stages[stageNdx].testStageFlags;
+                       const deUint32                  allBasicTypes   = FEATURE_VECTORS|FEATURE_MATRICES|FEATURE_DOUBLES;
+                       const deUint32                  unused                  = FEATURE_UNASSIGNED_FIELDS|FEATURE_UNASSIGNED_BLOCK_MEMBERS;
+                       const deUint32                  disabled                = FEATURE_INSTANCE_ARRAYS|FEATURE_MISSING_BLOCK_MEMBERS|FEATURE_OUT_OF_ORDER_OFFSETS; // OOO & missing offsets handled in a dedicated case group
+                       const deUint32                  allFeatures             = ~disabled;
+                       const deUint32                  numCases                = 50;
+
+                       tcu::TestCaseGroup* group = new tcu::TestCaseGroup(m_testCtx, groupName.c_str(), "Random Interface Block cases");
+                       addChild(group);
+
+                       createRandomCaseGroup(group, m_testCtx, "scalar_types",                                                         "Scalar types only, per-block buffers",                                 numCases, stage, unused                                                         );
+                       createRandomCaseGroup(group, m_testCtx, "vector_types",                                                         "Scalar and vector types only, per-block buffers",              numCases, stage, unused|FEATURE_VECTORS                         );
+                       createRandomCaseGroup(group, m_testCtx, "basic_types",                                                          "All basic types, per-block buffers",                                   numCases, stage, unused|allBasicTypes                           );
+                       createRandomCaseGroup(group, m_testCtx, "basic_arrays",                                                         "Arrays, per-block buffers",                                                    numCases, stage, unused|allBasicTypes|FEATURE_ARRAYS);
+
+                       createRandomCaseGroup(group, m_testCtx, "basic_instance_arrays",                                        "Basic instance arrays, per-block buffers",                             numCases, stage, unused|allBasicTypes|FEATURE_INSTANCE_ARRAYS                                                           );
+                       createRandomCaseGroup(group, m_testCtx, "nested_structs",                                                       "Nested structs, per-block buffers",                                    numCases, stage, unused|allBasicTypes|FEATURE_STRUCTS                                                                           );
+                       createRandomCaseGroup(group, m_testCtx, "nested_structs_arrays",                                        "Nested structs, arrays, per-block buffers",                    numCases, stage, unused|allBasicTypes|FEATURE_STRUCTS|FEATURE_ARRAYS                                            );
+                       createRandomCaseGroup(group, m_testCtx, "nested_structs_instance_arrays",                       "Nested structs, instance arrays, per-block buffers",   numCases, stage, unused|allBasicTypes|FEATURE_STRUCTS|FEATURE_INSTANCE_ARRAYS                           );
+                       createRandomCaseGroup(group, m_testCtx, "nested_structs_arrays_instance_arrays",        "Nested structs, instance arrays, per-block buffers",   numCases, stage, unused|allBasicTypes|FEATURE_STRUCTS|FEATURE_ARRAYS|FEATURE_INSTANCE_ARRAYS);
+
+                       createRandomCaseGroup(group, m_testCtx, "all_instance_array",                                           "All random features, shared buffer",                                   numCases*2, stage, allFeatures|FEATURE_INSTANCE_ARRAYS);
+                       createRandomCaseGroup(group, m_testCtx, "all_unordered_and_instance_array",                     "All random features, out of order member offsets",             numCases*2, stage, allFeatures|FEATURE_OUT_OF_ORDER_OFFSETS|FEATURE_INSTANCE_ARRAYS);
+                       createRandomCaseGroup(group, m_testCtx, "all_missing",                                                          "All random features, missing interface members",               numCases*2, stage, allFeatures|FEATURE_MISSING_BLOCK_MEMBERS);
+                       createRandomCaseGroup(group, m_testCtx, "all_unordered_and_missing",                            "All random features, unordered and missing members",   numCases*2, stage, allFeatures|FEATURE_OUT_OF_ORDER_OFFSETS|FEATURE_MISSING_BLOCK_MEMBERS);
+               }
+       }
+}
+
+} // anonymous
+
+tcu::TestCaseGroup*    createTransformFeedbackFuzzLayoutTests (tcu::TestContext& testCtx)
+{
+       return new InterfaceBlockTests(testCtx);
+}
+
+} // TransformFeedback
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutTests.hpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutTests.hpp
new file mode 100644 (file)
index 0000000..2a8b667
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef _VKTTRANSFORMFEEDBACKFUZZLAYOUTTESTS_HPP
+#define _VKTTRANSFORMFEEDBACKFUZZLAYOUTTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2015 The Khronos Group Inc.
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan Transform Feedback Fuzz Layout Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace TransformFeedback
+{
+
+tcu::TestCaseGroup*            createTransformFeedbackFuzzLayoutTests          (tcu::TestContext& testCtx);
+
+} // TransformFeedback
+} // vkt
+
+#endif // _VKTTRANSFORMFEEDBACKFUZZLAYOUTTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackRandomLayoutCase.cpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackRandomLayoutCase.cpp
new file mode 100644 (file)
index 0000000..c88f66b
--- /dev/null
@@ -0,0 +1,263 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2015 The Khronos Group Inc.
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2016 The Android Open Source Project
+ * Copyright (c) 2018 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan Transform Feedback Random Layout Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTransformFeedbackRandomLayoutCase.hpp"
+#include "deRandom.hpp"
+
+namespace vkt
+{
+namespace TransformFeedback
+{
+
+namespace
+{
+
+static std::string genName (char first, char last, int ndx)
+{
+       std::string     str                     = "";
+       int                     alphabetLen     = last - first + 1;
+
+       while (ndx > alphabetLen)
+       {
+               str.insert(str.begin(), (char)(first + ((ndx - 1) % alphabetLen)));
+               ndx = (ndx - 1) / alphabetLen;
+       }
+
+       str.insert(str.begin(), (char)(first + (ndx % (alphabetLen + 1)) - 1));
+
+       return str;
+}
+
+} // anonymous
+
+RandomInterfaceBlockCase::RandomInterfaceBlockCase (tcu::TestContext&          testCtx,
+                                                                                                       const std::string&              name,
+                                                                                                       const std::string&              description,
+                                                                                                       const TestStageFlags    testStageFlags,
+                                                                                                       deUint32                                features,
+                                                                                                       deUint32                                seed)
+       : InterfaceBlockCase            (testCtx, name, description, LOAD_FULL_MATRIX, testStageFlags, (features & FEATURE_OUT_OF_ORDER_OFFSETS) != 0u)
+       , m_features                            (features)
+       , m_explicitXfbOffsets          ((features & (FEATURE_OUT_OF_ORDER_OFFSETS | FEATURE_MISSING_BLOCK_MEMBERS)) != 0u)
+       , m_maxBlocks                           (3)
+       , m_maxInstances                        ((features & FEATURE_INSTANCE_ARRAYS)   ? 3 : 0)
+       , m_maxArrayLength                      ((features & FEATURE_ARRAYS)                    ? 4 : 0)
+       , m_maxStructDepth                      ((features & FEATURE_STRUCTS)                   ? 2 : 0)
+       , m_maxBlockMembers                     (3)
+       , m_maxStructMembers            (3)
+       , m_seed                                        (seed)
+       , m_blockNdx                            (1)
+       , m_interfaceNdx                        (1)
+       , m_structNdx                           (1)
+       , m_primitiveTypeCandidates     (fillTypeCandidates())
+{
+       de::Random rnd(m_seed);
+
+       int                             numBlocks       = rnd.getInt(1, m_maxBlocks);
+       InterfaceFlags  stage           = static_cast<InterfaceFlags>(LAYOUT_XFBBUFFER | LAYOUT_XFBOFFSET);
+
+       for (int ndx = 0; ndx < numBlocks; ndx++)
+               generateBlock(rnd, stage);
+
+       // m_primitiveTypeCandidates is required during generation only
+       m_primitiveTypeCandidates.clear();
+
+       init();
+}
+
+std::vector<glu::DataType> RandomInterfaceBlockCase::fillTypeCandidates()
+{
+       std::vector<glu::DataType> typeCandidates;
+
+       typeCandidates.reserve(32);
+
+       typeCandidates.push_back(glu::TYPE_FLOAT);
+       typeCandidates.push_back(glu::TYPE_INT);
+       typeCandidates.push_back(glu::TYPE_UINT);
+
+       if (m_features & FEATURE_DOUBLES)
+               typeCandidates.push_back(glu::TYPE_DOUBLE);
+
+       if (m_features & FEATURE_VECTORS)
+       {
+               typeCandidates.push_back(glu::TYPE_FLOAT_VEC2);
+               typeCandidates.push_back(glu::TYPE_FLOAT_VEC3);
+               typeCandidates.push_back(glu::TYPE_FLOAT_VEC4);
+               typeCandidates.push_back(glu::TYPE_INT_VEC2);
+               typeCandidates.push_back(glu::TYPE_INT_VEC3);
+               typeCandidates.push_back(glu::TYPE_INT_VEC4);
+               typeCandidates.push_back(glu::TYPE_UINT_VEC2);
+               typeCandidates.push_back(glu::TYPE_UINT_VEC3);
+               typeCandidates.push_back(glu::TYPE_UINT_VEC4);
+
+               if (m_features & FEATURE_DOUBLES)
+               {
+                       typeCandidates.push_back(glu::TYPE_DOUBLE_VEC2);
+                       typeCandidates.push_back(glu::TYPE_DOUBLE_VEC3);
+                       typeCandidates.push_back(glu::TYPE_DOUBLE_VEC4);
+               }
+       }
+
+       if (m_features & FEATURE_MATRICES)
+       {
+               typeCandidates.push_back(glu::TYPE_FLOAT_MAT2);
+               typeCandidates.push_back(glu::TYPE_FLOAT_MAT2X3);
+               typeCandidates.push_back(glu::TYPE_FLOAT_MAT3X2);
+               typeCandidates.push_back(glu::TYPE_FLOAT_MAT3);
+               typeCandidates.push_back(glu::TYPE_FLOAT_MAT3X4);
+               typeCandidates.push_back(glu::TYPE_FLOAT_MAT4X2);
+               typeCandidates.push_back(glu::TYPE_FLOAT_MAT4X3);
+               typeCandidates.push_back(glu::TYPE_FLOAT_MAT4);
+
+               if (m_features & FEATURE_DOUBLES)
+               {
+                       typeCandidates.push_back(glu::TYPE_DOUBLE_MAT2);
+                       typeCandidates.push_back(glu::TYPE_DOUBLE_MAT2X3);
+                       typeCandidates.push_back(glu::TYPE_DOUBLE_MAT3X2);
+                       typeCandidates.push_back(glu::TYPE_DOUBLE_MAT3);
+                       typeCandidates.push_back(glu::TYPE_DOUBLE_MAT3X4);
+                       typeCandidates.push_back(glu::TYPE_DOUBLE_MAT4X2);
+                       typeCandidates.push_back(glu::TYPE_DOUBLE_MAT4X3);
+                       typeCandidates.push_back(glu::TYPE_DOUBLE_MAT4);
+               }
+       }
+
+       return typeCandidates;
+}
+
+void RandomInterfaceBlockCase::generateBlock (de::Random& rnd, deUint32 layoutFlags)
+{
+       DE_ASSERT(m_blockNdx <= 'z' - 'a');
+
+       const float             instanceArrayWeight             = 0.3f;
+       InterfaceBlock& block                                   = m_interface.allocBlock(std::string("Block") + (char)('A' + m_blockNdx));
+       int                             numInstances                    = (m_maxInstances > 0 && rnd.getFloat() < instanceArrayWeight) ? rnd.getInt(0, m_maxInstances) : 0;
+       int                             numBlockMembers                 = rnd.getInt(1, m_maxBlockMembers);
+       int                             numUnassignedOrMissing  = 0;
+
+       if (numInstances > 0)
+               block.setArraySize(numInstances);
+
+       if (numInstances > 0 || rnd.getBool())
+               block.setInstanceName(std::string("block") + (char)('A' + m_blockNdx));
+
+       block.setFlags(layoutFlags);
+
+       for (int ndx = 0; ndx < numBlockMembers; ndx++)
+               generateBlockMember(rnd, block, numBlockMembers, numUnassignedOrMissing);
+
+       m_blockNdx += 1;
+}
+
+void RandomInterfaceBlockCase::generateBlockMember (de::Random& rnd, InterfaceBlock& block, const int numBlockMembers, int& numUnassignedOrMissing)
+{
+       const float             unassignedBlockMembersWeight    = 0.15f;
+       const float             missingBlockMembersWeight               = 0.15f;
+       const bool              unassignedAllowed                               = (m_features & FEATURE_UNASSIGNED_BLOCK_MEMBERS) != 0;
+       const bool              missingAllowed                                  = (m_features & FEATURE_MISSING_BLOCK_MEMBERS) != 0;
+       deUint32                flags                                                   = 0;
+       std::string             name                                                    = genName('a', 'z', m_interfaceNdx);
+       VarType                 type                                                    = generateType(rnd, 0, true);
+
+       if (numUnassignedOrMissing < numBlockMembers - 1)
+       {
+               if (missingAllowed && rnd.getFloat() < missingBlockMembersWeight)
+               {
+                       flags |= FIELD_MISSING;
+                       numUnassignedOrMissing++;
+               }
+               else if (unassignedAllowed && rnd.getFloat() < unassignedBlockMembersWeight)
+               {
+                       flags |= FIELD_UNASSIGNED;
+                       numUnassignedOrMissing++;
+               }
+       }
+
+       block.addInterfaceMember(InterfaceBlockMember(name, type, flags));
+
+       m_interfaceNdx += 1;
+}
+
+VarType RandomInterfaceBlockCase::generateType (de::Random& rnd, int typeDepth, bool arrayOk)
+{
+       const float structWeight        = 0.1f;
+       const float arrayWeight         = 0.1f;
+
+       if (typeDepth < m_maxStructDepth && rnd.getFloat() < structWeight)
+       {
+               const float                             unassignedFieldWeight   = 0.15f;
+               const bool                              unassignedOk                    = (m_features & FEATURE_UNASSIGNED_FIELDS) != 0;
+               const int                               numMembers                              = rnd.getInt(1, m_maxStructMembers);
+               std::vector<VarType>    memberTypes;
+
+               // Generate members first so nested struct declarations are in correct order.
+               for (int ndx = 0; ndx < numMembers; ndx++)
+                       memberTypes.push_back(generateType(rnd, typeDepth+1, true));
+
+               StructType& structType = m_interface.allocStruct(std::string("s") + genName('A', 'Z', m_structNdx));
+               m_structNdx += 1;
+
+               DE_ASSERT(numMembers <= 'Z' - 'A');
+               for (int ndx = 0; ndx < numMembers; ndx++)
+               {
+                       deUint32 flags = 0;
+
+                       if (unassignedOk && rnd.getFloat() < unassignedFieldWeight)
+                       {
+                               flags |= FIELD_UNASSIGNED;
+                       }
+
+                       structType.addMember(std::string("m") + (char)('A' + ndx), memberTypes[ndx], flags);
+               }
+
+               return VarType(&structType, m_explicitXfbOffsets ? static_cast<deUint32>(LAYOUT_XFBOFFSET) : 0u);
+       }
+       else if (m_maxArrayLength > 0 && arrayOk && rnd.getFloat() < arrayWeight)
+       {
+               const bool      arraysOfArraysOk        = (m_features & FEATURE_ARRAYS_OF_ARRAYS) != 0;
+               const int       arrayLength                     = rnd.getInt(1, m_maxArrayLength);
+               VarType         elementType                     = generateType(rnd, typeDepth, arraysOfArraysOk);
+
+               return VarType(elementType, arrayLength);
+       }
+       else
+       {
+               glu::DataType   type    = rnd.choose<glu::DataType>(m_primitiveTypeCandidates.begin(), m_primitiveTypeCandidates.end());
+               deUint32                flags   = (m_explicitXfbOffsets ? static_cast<deUint32>(LAYOUT_XFBOFFSET) : 0u);
+
+               if (glu::dataTypeSupportsPrecisionModifier(type))
+               {
+                       // Precision.
+                       static const deUint32 precisionCandidates[] = { PRECISION_LOW, PRECISION_MEDIUM, PRECISION_HIGH };
+                       flags |= rnd.choose<deUint32>(&precisionCandidates[0], &precisionCandidates[DE_LENGTH_OF_ARRAY(precisionCandidates)]);
+               }
+
+               return VarType(type, flags);
+       }
+}
+
+} // TransformFeedback
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackRandomLayoutCase.hpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackRandomLayoutCase.hpp
new file mode 100644 (file)
index 0000000..b9d6837
--- /dev/null
@@ -0,0 +1,91 @@
+#ifndef _VKTTRANSFORMFEEDBACKRANDOMLAYOUTCASE_HPP
+#define _VKTTRANSFORMFEEDBACKRANDOMLAYOUTCASE_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2015 The Khronos Group Inc.
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan Transform Feedback Fuzz Random Layout Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTransformFeedbackFuzzLayoutCase.hpp"
+
+namespace de
+{
+class Random;
+} // de
+
+namespace vkt
+{
+namespace TransformFeedback
+{
+
+enum FeatureBits
+{
+       FEATURE_VECTORS                                 = (1<<0),
+       FEATURE_MATRICES                                = (1<<1),
+       FEATURE_ARRAYS                                  = (1<<2),
+       FEATURE_STRUCTS                                 = (1<<3),
+       FEATURE_NESTED_STRUCTS                  = (1<<4),
+       FEATURE_INSTANCE_ARRAYS                 = (1<<5),
+       FEATURE_ARRAYS_OF_ARRAYS                = (1<<6),
+       FEATURE_DOUBLES                                 = (1<<7),
+       FEATURE_UNASSIGNED_FIELDS               = (1<<8),
+       FEATURE_UNASSIGNED_BLOCK_MEMBERS= (1<<9),
+       FEATURE_MISSING_BLOCK_MEMBERS   = (1<<10),      // Add holes into XFB buffer
+       FEATURE_OUT_OF_ORDER_OFFSETS    = (1<<11),
+};
+
+class RandomInterfaceBlockCase : public InterfaceBlockCase
+{
+public:
+                                                               RandomInterfaceBlockCase        (tcu::TestContext&              testCtx,
+                                                                                                                        const std::string&             name,
+                                                                                                                        const std::string&             description,
+                                                                                                                        const TestStageFlags   testStageFlags,
+                                                                                                                        deUint32                               features,
+                                                                                                                        deUint32                               seed);
+
+private:
+       void                                            generateBlock                           (de::Random& rnd, deUint32 layoutFlags);
+       void                                            generateBlockMember                     (de::Random& rnd, InterfaceBlock& block, const int numBlockMembers, int& numMissing);
+       VarType                                         generateType                            (de::Random& rnd, int typeDepth, bool arrayOk);
+       std::vector<glu::DataType>      fillTypeCandidates                      (void);
+
+       const deUint32                          m_features;
+       const bool                                      m_explicitXfbOffsets;
+       const int                                       m_maxBlocks;
+       const int                                       m_maxInstances;
+       const int                                       m_maxArrayLength;
+       const int                                       m_maxStructDepth;
+       const int                                       m_maxBlockMembers;
+       const int                                       m_maxStructMembers;
+       const deUint32                          m_seed;
+
+       int                                                     m_blockNdx;
+       int                                                     m_interfaceNdx;
+       int                                                     m_structNdx;
+       std::vector<glu::DataType>      m_primitiveTypeCandidates;
+};
+
+} // TransformFeedback
+} // vkt
+
+#endif // _VKTTRANSFORMFEEDBACKRANDOMLAYOUTCASE_HPP
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackSimpleTests.cpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackSimpleTests.cpp
new file mode 100644 (file)
index 0000000..890d59e
--- /dev/null
@@ -0,0 +1,1942 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2018 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan Transform Feedback Simple Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTransformFeedbackSimpleTests.hpp"
+#include "vktTestGroupUtil.hpp"
+#include "vktTestCase.hpp"
+
+#include "vkBuilderUtil.hpp"
+#include "vkCmdUtil.hpp"
+#include "vkImageUtil.hpp"
+#include "vkObjUtil.hpp"
+#include "vkQueryUtil.hpp"
+#include "vkRefUtil.hpp"
+#include "vkTypeUtil.hpp"
+
+#include "deUniquePtr.hpp"
+#include "deRandom.hpp"
+
+#include "tcuTextureUtil.hpp"
+#include "tcuVectorUtil.hpp"
+#include "tcuImageCompare.hpp"
+#include "tcuRGBA.hpp"
+
+#include <iostream>
+
+namespace vkt
+{
+namespace TransformFeedback
+{
+namespace
+{
+using namespace vk;
+using de::MovePtr;
+using de::UniquePtr;
+using de::SharedPtr;
+
+#define VALIDATE_MINIMUM(A,B) if ((A) < (B)) TCU_FAIL(#A "==" + de::toString(A) + " which is less than required by specification (" + de::toString(B) + ")")
+#define VALIDATE_BOOL(A) if (! ( (A) == VK_TRUE || (A) == VK_FALSE) ) TCU_FAIL(#A " expected to be VK_TRUE or VK_FALSE. Received " + de::toString((deUint64)(A)))
+
+enum TestType
+{
+       TEST_TYPE_BASIC,
+       TEST_TYPE_RESUME,
+       TEST_TYPE_STREAMS,
+       TEST_TYPE_STREAMS_POINTSIZE,
+       TEST_TYPE_STREAMS_CLIPDISTANCE,
+       TEST_TYPE_STREAMS_CULLDISTANCE,
+       TEST_TYPE_MULTISTREAMS,
+       TEST_TYPE_DRAW_INDIRECT,
+       TEST_TYPE_BACKWARD_DEPENDENCY,
+       TEST_TYPE_QUERY,
+       TEST_TYPE_LAST
+};
+
+struct TestParameters
+{
+       TestType        testType;
+       deUint32        bufferSize;
+       deUint32        partCount;
+       deUint32        streamId;
+       deUint32        pointSize;
+       deUint32        vertexStride;
+};
+
+const deUint32 MINIMUM_TF_BUFFER_SIZE  = (1<<27);
+const deUint32 IMAGE_SIZE                              = 64u;
+
+template<typename T>
+inline SharedPtr<Unique<T> > makeSharedPtr(Move<T> move)
+{
+       return SharedPtr<Unique<T> >(new Unique<T>(move));
+}
+
+VkBufferCreateInfo makeBufferCreateInfo (const VkDeviceSize                    bufferSize,
+                                                                                const VkBufferUsageFlags       usage)
+{
+       const VkBufferCreateInfo bufferCreateInfo =
+       {
+               VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,   //  VkStructureType             sType;
+               DE_NULL,                                                                //  const void*                 pNext;
+               (VkBufferCreateFlags)0,                                 //  VkBufferCreateFlags flags;
+               bufferSize,                                                             //  VkDeviceSize                size;
+               usage,                                                                  //  VkBufferUsageFlags  usage;
+               VK_SHARING_MODE_EXCLUSIVE,                              //  VkSharingMode               sharingMode;
+               0u,                                                                             //  deUint32                    queueFamilyIndexCount;
+               DE_NULL,                                                                //  const deUint32*             pQueueFamilyIndices;
+       };
+       return bufferCreateInfo;
+}
+
+Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&              vk,
+                                                                                  const VkDevice                               device)
+{
+       const VkPushConstantRange                       pushConstantRanges                      =
+       {
+               VK_SHADER_STAGE_VERTEX_BIT,                                             //  VkShaderStageFlags                          stageFlags;
+               0u,                                                                                             //  deUint32                                            offset;
+               sizeof(deUint32)                                                                //  deUint32                                            size;
+       };
+       const VkPipelineLayoutCreateInfo        pipelineLayoutCreateInfo        =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,  //  VkStructureType                                     sType;
+               DE_NULL,                                                                                //  const void*                                         pNext;
+               (VkPipelineLayoutCreateFlags)0,                                 //  VkPipelineLayoutCreateFlags         flags;
+               0u,                                                                                             //  deUint32                                            setLayoutCount;
+               DE_NULL,                                                                                //  const VkDescriptorSetLayout*        pSetLayouts;
+               1u,                                                                                             //  deUint32                                            pushConstantRangeCount;
+               &pushConstantRanges,                                                    //  const VkPushConstantRange*          pPushConstantRanges;
+       };
+       return createPipelineLayout(vk, device, &pipelineLayoutCreateInfo);
+}
+
+Move<VkPipeline> makeGraphicsPipeline (const DeviceInterface&          vk,
+                                                                          const VkDevice                               device,
+                                                                          const VkPipelineLayout               pipelineLayout,
+                                                                          const VkRenderPass                   renderPass,
+                                                                          const VkShaderModule                 vertexModule,
+                                                                          const VkShaderModule                 geometryModule,
+                                                                          const VkShaderModule                 fragmendModule,
+                                                                          const VkExtent2D                             renderSize,
+                                                                          const deUint32                               subpass,
+                                                                          const deUint32*                              rasterizationStreamPtr  = DE_NULL,
+                                                                          const VkPrimitiveTopology    topology                                = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
+                                                                          const bool                                   inputVertices                   = false)
+{
+       const std::vector<VkViewport>                                                   viewports                                                               (1, makeViewport(renderSize));
+       const std::vector<VkRect2D>                                                             scissors                                                                (1, makeRect2D(renderSize));
+       const VkPipelineVertexInputStateCreateInfo                              vertexInputStateCreateInfo                      =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,                                                                      //  VkStructureType                                                                     sType
+               DE_NULL,                                                                                                                                                                        //  const void*                                                                         pNext
+               (VkPipelineVertexInputStateCreateFlags)0,                                                                                                       //  VkPipelineVertexInputStateCreateFlags                       flags
+               0u,                                                                                                                                                                                     //  deUint32                                                                            vertexBindingDescriptionCount
+               DE_NULL,                                                                                                                                                                        //  const VkVertexInputBindingDescription*                      pVertexBindingDescriptions
+               0u,                                                                                                                                                                                     //  deUint32                                                                            vertexAttributeDescriptionCount
+               DE_NULL,                                                                                                                                                                        //  const VkVertexInputAttributeDescription*            pVertexAttributeDescriptions
+       };
+       const VkPipelineVertexInputStateCreateInfo*                             vertexInputStateCreateInfoPtr           = (inputVertices) ? DE_NULL : &vertexInputStateCreateInfo;
+       const VkBool32                                                                                  disableRasterization                            = (fragmendModule == DE_NULL);
+       const deUint32                                                                                  rasterizationStream                                     = (rasterizationStreamPtr == DE_NULL) ? 0 : *rasterizationStreamPtr;
+       const VkPipelineRasterizationStateStreamCreateInfoEXT   rasterizationStateStreamCreateInfo      =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,                                          //  VkStructureType                                                                             sType;
+               DE_NULL,                                                                                                                                                                        //  const void*                                                                                 pNext;
+               0,                                                                                                                                                                                      //  VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
+               rasterizationStream                                                                                                                                                     //  deUint32                                                                                    rasterizationStream;
+       };
+       const VkPipelineRasterizationStateCreateInfo                    rasterizationStateCreateInfo            =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,                                                                     //  VkStructureType                                                     sType;
+               &rasterizationStateStreamCreateInfo,                                                                                                            //  const void*                                                         pNext;
+               0u,                                                                                                                                                                                     //  VkPipelineRasterizationStateCreateFlags     flags;
+               VK_FALSE,                                                                                                                                                                       //  VkBool32                                                            depthClampEnable;
+               disableRasterization,                                                                                                                                           //  VkBool32                                                            rasterizerDiscardEnable;
+               VK_POLYGON_MODE_FILL,                                                                                                                                           //  VkPolygonMode                                                       polygonMode;
+               VK_CULL_MODE_NONE,                                                                                                                                                      //  VkCullModeFlags                                                     cullMode;
+               VK_FRONT_FACE_COUNTER_CLOCKWISE,                                                                                                                        //  VkFrontFace                                                         frontFace;
+               VK_FALSE,                                                                                                                                                                       //  VkBool32                                                            depthBiasEnable;
+               0.0f,                                                                                                                                                                           //  float                                                                       depthBiasConstantFactor;
+               0.0f,                                                                                                                                                                           //  float                                                                       depthBiasClamp;
+               0.0f,                                                                                                                                                                           //  float                                                                       depthBiasSlopeFactor;
+               1.0f                                                                                                                                                                            //  float                                                                       lineWidth;
+       };
+       const VkPipelineRasterizationStateCreateInfo*                   rasterizationStateCreateInfoPtr         = (rasterizationStreamPtr == DE_NULL) ? DE_NULL : &rasterizationStateCreateInfo;
+
+       return makeGraphicsPipeline(vk,                                                                 // const DeviceInterface&                                                       vk
+                                                               device,                                                         // const VkDevice                                                                       device
+                                                               pipelineLayout,                                         // const VkPipelineLayout                                                       pipelineLayout
+                                                               vertexModule,                                           // const VkShaderModule                                                         vertexShaderModule
+                                                               DE_NULL,                                                        // const VkShaderModule                                                         tessellationControlModule
+                                                               DE_NULL,                                                        // const VkShaderModule                                                         tessellationEvalModule
+                                                               geometryModule,                                         // const VkShaderModule                                                         geometryShaderModule
+                                                               fragmendModule,                                         // const VkShaderModule                                                         fragmentShaderModule
+                                                               renderPass,                                                     // const VkRenderPass                                                           renderPass
+                                                               viewports,                                                      // const std::vector<VkViewport>&                                       viewports
+                                                               scissors,                                                       // const std::vector<VkRect2D>&                                         scissors
+                                                               topology,                                                       // const VkPrimitiveTopology                                            topology
+                                                               subpass,                                                        // const deUint32                                                                       subpass
+                                                               0u,                                                                     // const deUint32                                                                       patchControlPoints
+                                                               vertexInputStateCreateInfoPtr,          // const VkPipelineVertexInputStateCreateInfo*          vertexInputStateCreateInfo
+                                                               rasterizationStateCreateInfoPtr);       // const VkPipelineRasterizationStateCreateInfo*        rasterizationStateCreateInfo
+}
+
+Move<VkImageView> makeImageView (const DeviceInterface&                        vk,
+                                                                const VkDevice                                 vkDevice,
+                                                                const VkImage                                  image,
+                                                                const VkImageViewType                  viewType,
+                                                                const VkFormat                                 format,
+                                                                const VkImageSubresourceRange  subresourceRange)
+{
+       const VkImageViewCreateInfo imageViewParams =
+       {
+               VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,       // VkStructureType                      sType;
+               DE_NULL,                                                                        // const void*                          pNext;
+               (VkImageViewCreateFlags)0,                                      // VkImageViewCreateFlags       flags;
+               image,                                                                          // VkImage                                      image;
+               viewType,                                                                       // VkImageViewType                      viewType;
+               format,                                                                         // VkFormat                                     format;
+               makeComponentMappingRGBA(),                                     // VkComponentMapping           components;
+               subresourceRange,                                                       // VkImageSubresourceRange      subresourceRange;
+       };
+       return createImageView(vk, vkDevice, &imageViewParams);
+}
+
+VkImageCreateInfo makeImageCreateInfo (const VkImageCreateFlags flags, const VkImageType type, const VkFormat format, const VkExtent2D size, const deUint32 numLayers, const VkImageUsageFlags usage)
+{
+       const VkExtent3D                extent          = { size.width, size.height, 1u };
+       const VkImageCreateInfo imageParams =
+       {
+               VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,                    // VkStructureType                      sType;
+               DE_NULL,                                                                                // const void*                          pNext;
+               flags,                                                                                  // VkImageCreateFlags           flags;
+               type,                                                                                   // VkImageType                          imageType;
+               format,                                                                                 // VkFormat                                     format;
+               extent,                                                                                 // VkExtent3D                           extent;
+               1u,                                                                                             // deUint32                                     mipLevels;
+               numLayers,                                                                              // deUint32                                     arrayLayers;
+               VK_SAMPLE_COUNT_1_BIT,                                                  // VkSampleCountFlagBits        samples;
+               VK_IMAGE_TILING_OPTIMAL,                                                // VkImageTiling                        tiling;
+               usage,                                                                                  // VkImageUsageFlags            usage;
+               VK_SHARING_MODE_EXCLUSIVE,                                              // VkSharingMode                        sharingMode;
+               0u,                                                                                             // deUint32                                     queueFamilyIndexCount;
+               DE_NULL,                                                                                // const deUint32*                      pQueueFamilyIndices;
+               VK_IMAGE_LAYOUT_UNDEFINED,                                              // VkImageLayout                        initialLayout;
+       };
+       return imageParams;
+}
+
+Move<VkRenderPass> makeRenderPass (const DeviceInterface&              vk,
+                                                                  const VkDevice                               device)
+{
+       std::vector<VkSubpassDescription>       subpassDescriptions;
+       std::vector<VkSubpassDependency>        subpassDependencies;
+
+       const VkSubpassDescription      description     =
+       {
+               (VkSubpassDescriptionFlags)0,           //  VkSubpassDescriptionFlags           flags;
+               VK_PIPELINE_BIND_POINT_GRAPHICS,        //  VkPipelineBindPoint                         pipelineBindPoint;
+               0u,                                                                     //  deUint32                                            inputAttachmentCount;
+               DE_NULL,                                                        //  const VkAttachmentReference*        pInputAttachments;
+               0u,                                                                     //  deUint32                                            colorAttachmentCount;
+               DE_NULL,                                                        //  const VkAttachmentReference*        pColorAttachments;
+               DE_NULL,                                                        //  const VkAttachmentReference*        pResolveAttachments;
+               DE_NULL,                                                        //  const VkAttachmentReference*        pDepthStencilAttachment;
+               0,                                                                      //  deUint32                                            preserveAttachmentCount;
+               DE_NULL                                                         //  const deUint32*                                     pPreserveAttachments;
+       };
+       subpassDescriptions.push_back(description);
+
+       const VkSubpassDependency       dependency      =
+       {
+               0u,                                                                                                     //  deUint32                            srcSubpass;
+               0u,                                                                                                     //  deUint32                            dstSubpass;
+               VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,           //  VkPipelineStageFlags        srcStageMask;
+               VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,                            //  VkPipelineStageFlags        dstStageMask;
+               VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,     //  VkAccessFlags                       srcAccessMask;
+               VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,      //  VkAccessFlags                       dstAccessMask;
+               0u                                                                                                      //  VkDependencyFlags           dependencyFlags;
+       };
+       subpassDependencies.push_back(dependency);
+
+       const VkRenderPassCreateInfo renderPassInfo =
+       {
+               VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,                                                      //  VkStructureType                                     sType;
+               DE_NULL,                                                                                                                        //  const void*                                         pNext;
+               static_cast<VkRenderPassCreateFlags>(0u),                                                       //  VkRenderPassCreateFlags                     flags;
+               0u,                                                                                                                                     //  deUint32                                            attachmentCount;
+               DE_NULL,                                                                                                                        //  const VkAttachmentDescription*      pAttachments;
+               static_cast<deUint32>(subpassDescriptions.size()),                                      //  deUint32                                            subpassCount;
+               &subpassDescriptions[0],                                                                                        //  const VkSubpassDescription*         pSubpasses;
+               static_cast<deUint32>(subpassDependencies.size()),                                      //  deUint32                                            dependencyCount;
+               subpassDependencies.size() > 0 ? &subpassDependencies[0] : DE_NULL      //  const VkSubpassDependency*          pDependencies;
+       };
+
+       return createRenderPass(vk, device, &renderPassInfo);
+}
+
+Move<VkFramebuffer> makeFramebuffer (const DeviceInterface&    vk,
+                                                                        const VkDevice                 device,
+                                                                        const VkRenderPass             renderPass,
+                                                                        const VkExtent2D&              renderSize,
+                                                                        const VkImageView*             colorAttachment)
+{
+       const VkFramebufferCreateInfo framebufferInfo   =
+       {
+               VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,              //  VkStructureType                             sType;
+               DE_NULL,                                                                                //  const void*                                 pNext;
+               (VkFramebufferCreateFlags)0,                                    //  VkFramebufferCreateFlags    flags;
+               renderPass,                                                                             //  VkRenderPass                                renderPass;
+               colorAttachment == DE_NULL ? 0u : 1u,                   //  deUint32                                    attachmentCount;
+               colorAttachment,                                                                //  const VkImageView*                  pAttachments;
+               renderSize.width,                                                               //  deUint32                                    width;
+               renderSize.height,                                                              //  deUint32                                    height;
+               1u,                                                                                             //  deUint32                                    layers;
+       };
+
+       return createFramebuffer(vk, device, &framebufferInfo);
+}
+
+VkImageMemoryBarrier makeImageMemoryBarrier    (const VkAccessFlags                    srcAccessMask,
+                                                                                        const VkAccessFlags                    dstAccessMask,
+                                                                                        const VkImageLayout                    oldLayout,
+                                                                                        const VkImageLayout                    newLayout,
+                                                                                        const VkImage                                  image,
+                                                                                        const VkImageSubresourceRange  subresourceRange)
+{
+       const VkImageMemoryBarrier barrier =
+       {
+               VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,                 // VkStructureType                      sType;
+               DE_NULL,                                                                                // const void*                          pNext;
+               srcAccessMask,                                                                  // VkAccessFlags                        outputMask;
+               dstAccessMask,                                                                  // VkAccessFlags                        inputMask;
+               oldLayout,                                                                              // VkImageLayout                        oldLayout;
+               newLayout,                                                                              // VkImageLayout                        newLayout;
+               VK_QUEUE_FAMILY_IGNORED,                                                // deUint32                                     srcQueueFamilyIndex;
+               VK_QUEUE_FAMILY_IGNORED,                                                // deUint32                                     destQueueFamilyIndex;
+               image,                                                                                  // VkImage                                      image;
+               subresourceRange,                                                               // VkImageSubresourceRange      subresourceRange;
+       };
+       return barrier;
+}
+
+VkBufferMemoryBarrier makeBufferMemoryBarrier (const VkAccessFlags     srcAccessMask,
+                                                                                          const VkAccessFlags  dstAccessMask,
+                                                                                          const VkBuffer               buffer,
+                                                                                          const VkDeviceSize   offset,
+                                                                                          const VkDeviceSize   bufferSizeBytes)
+{
+       const VkBufferMemoryBarrier barrier =
+       {
+               VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,        //  VkStructureType     sType;
+               DE_NULL,                                                                        //  const void*         pNext;
+               srcAccessMask,                                                          //  VkAccessFlags       srcAccessMask;
+               dstAccessMask,                                                          //  VkAccessFlags       dstAccessMask;
+               VK_QUEUE_FAMILY_IGNORED,                                        //  deUint32            srcQueueFamilyIndex;
+               VK_QUEUE_FAMILY_IGNORED,                                        //  deUint32            destQueueFamilyIndex;
+               buffer,                                                                         //  VkBuffer            buffer;
+               offset,                                                                         //  VkDeviceSize        offset;
+               bufferSizeBytes,                                                        //  VkDeviceSize        size;
+       };
+       return barrier;
+}
+
+VkMemoryBarrier makeMemoryBarrier (const VkAccessFlags srcAccessMask,
+                                                                  const VkAccessFlags  dstAccessMask)
+{
+       const VkMemoryBarrier barrier =
+       {
+               VK_STRUCTURE_TYPE_MEMORY_BARRIER,       // VkStructureType                      sType;
+               DE_NULL,                                                        // const void*                          pNext;
+               srcAccessMask,                                          // VkAccessFlags                        outputMask;
+               dstAccessMask,                                          // VkAccessFlags                        inputMask;
+       };
+       return barrier;
+}
+
+VkBufferImageCopy makeBufferImageCopy (const VkExtent3D                                        extent,
+                                                                          const VkImageSubresourceLayers       subresourceLayers)
+{
+       const VkBufferImageCopy copyParams =
+       {
+               0ull,                                                                           //      VkDeviceSize                            bufferOffset;
+               0u,                                                                                     //      deUint32                                        bufferRowLength;
+               0u,                                                                                     //      deUint32                                        bufferImageHeight;
+               subresourceLayers,                                                      //      VkImageSubresourceLayers        imageSubresource;
+               makeOffset3D(0, 0, 0),                                          //      VkOffset3D                                      imageOffset;
+               extent,                                                                         //      VkExtent3D                                      imageExtent;
+       };
+       return copyParams;
+}
+
+inline Move<VkBuffer> makeBuffer (const DeviceInterface& vk, const VkDevice device, const VkBufferCreateInfo& createInfo)
+{
+       return createBuffer(vk, device, &createInfo);
+}
+
+inline Move<VkImage> makeImage (const DeviceInterface& vk, const VkDevice device, const VkImageCreateInfo& createInfo)
+{
+       return createImage(vk, device, &createInfo);
+}
+
+de::MovePtr<Allocation> bindImage (const DeviceInterface& vk, const VkDevice device, Allocator& allocator, const VkImage image, const MemoryRequirement requirement)
+{
+       de::MovePtr<Allocation> alloc = allocator.allocate(getImageMemoryRequirements(vk, device, image), requirement);
+       VK_CHECK(vk.bindImageMemory(device, image, alloc->getMemory(), alloc->getOffset()));
+       return alloc;
+}
+
+de::MovePtr<Allocation> bindBuffer (const DeviceInterface& vk, const VkDevice device, Allocator& allocator, const VkBuffer buffer, const MemoryRequirement requirement)
+{
+       de::MovePtr<Allocation> alloc(allocator.allocate(getBufferMemoryRequirements(vk, device, buffer), requirement));
+       VK_CHECK(vk.bindBufferMemory(device, buffer, alloc->getMemory(), alloc->getOffset()));
+       return alloc;
+}
+
+VkQueryPoolCreateInfo makeQueryPoolCreateInfo (const deUint32 queryCountersNumber)
+{
+       const VkQueryPoolCreateInfo                     queryPoolCreateInfo             =
+       {
+               VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,               //  VkStructureType                                     sType;
+               DE_NULL,                                                                                //  const void*                                         pNext;
+               (VkQueryPoolCreateFlags)0,                                              //  VkQueryPoolCreateFlags                      flags;
+               VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,    //  VkQueryType                                         queryType;
+               queryCountersNumber,                                                    //  deUint32                                            queryCount;
+               0u,                                                                                             //  VkQueryPipelineStatisticFlags       pipelineStatistics;
+       };
+
+       return queryPoolCreateInfo;
+}
+
+void fillBuffer (const DeviceInterface& vk, const VkDevice device, Allocation& bufferAlloc, VkDeviceSize bufferSize, const void* data, const VkDeviceSize dataSize)
+{
+       const VkMappedMemoryRange       memRange                =
+       {
+               VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,  //  VkStructureType     sType;
+               DE_NULL,                                                                //  const void*         pNext;
+               bufferAlloc.getMemory(),                                //  VkDeviceMemory      memory;
+               bufferAlloc.getOffset(),                                //  VkDeviceSize        offset;
+               VK_WHOLE_SIZE                                                   //  VkDeviceSize        size;
+       };
+       std::vector<deUint8>            dataVec                 (static_cast<deUint32>(bufferSize), 0u);
+
+       DE_ASSERT(bufferSize >= dataSize);
+
+       deMemcpy(&dataVec[0], data, static_cast<deUint32>(dataSize));
+
+       deMemcpy(bufferAlloc.getHostPtr(), &dataVec[0], dataVec.size());
+       VK_CHECK(vk.flushMappedMemoryRanges(device, 1u, &memRange));
+}
+
+class TransformFeedbackTestInstance : public TestInstance
+{
+public:
+                                                                                                       TransformFeedbackTestInstance   (Context& context, const TestParameters& parameters);
+protected:
+       void                                                                                    validateLimits                                  ();
+       deUint32                                                                                getNextChunkSize                                (const deUint32 usedBytes, const deUint32 bufBytes);
+       std::vector<VkDeviceSize>                                               generateSizesList                               (const size_t bufBytes, const size_t chunkCount);
+       std::vector<VkDeviceSize>                                               generateOffsetsList                             (const std::vector<VkDeviceSize>& sizesList);
+       void                                                                                    verifyTransformFeedbackBuffer   (const MovePtr<Allocation>& bufAlloc, const deUint32 bufBytes);
+
+       const bool                                                                              m_extensions;
+       const VkExtent2D                                                                m_imageExtent2D;
+       const TestParameters                                                    m_parameters;
+       VkPhysicalDeviceTransformFeedbackPropertiesEXT  m_transformFeedbackProperties;
+       de::Random                                                                              m_rnd;
+};
+
+TransformFeedbackTestInstance::TransformFeedbackTestInstance (Context& context, const TestParameters& parameters)
+       : TestInstance          (context)
+       , m_extensions          (context.requireDeviceExtension("VK_EXT_transform_feedback"))
+       , m_imageExtent2D       (makeExtent2D(IMAGE_SIZE, IMAGE_SIZE))
+       , m_parameters          (parameters)
+       , m_rnd                         (0)
+{
+       const VkPhysicalDeviceTransformFeedbackFeaturesEXT&             transformFeedbackFeatures       = m_context.getTransformFeedbackFeatures();
+       VkPhysicalDeviceProperties2                                                             deviceProperties2;
+
+       if (transformFeedbackFeatures.transformFeedback == DE_FALSE)
+               TCU_THROW(NotSupportedError, "transformFeedback feature is not supported");
+
+       deMemset(&deviceProperties2, 0, sizeof(deviceProperties2));
+       deMemset(&m_transformFeedbackProperties, 0, sizeof(m_transformFeedbackProperties));
+
+       deviceProperties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+       deviceProperties2.pNext = &m_transformFeedbackProperties;
+
+       m_transformFeedbackProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT;
+       m_transformFeedbackProperties.pNext = DE_NULL;
+
+       context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &deviceProperties2);
+
+       validateLimits();
+}
+
+void TransformFeedbackTestInstance::validateLimits ()
+{
+       VALIDATE_MINIMUM(m_transformFeedbackProperties.maxTransformFeedbackBuffers, 1);
+       VALIDATE_MINIMUM(m_transformFeedbackProperties.maxTransformFeedbackBufferSize, MINIMUM_TF_BUFFER_SIZE);
+       VALIDATE_MINIMUM(m_transformFeedbackProperties.maxTransformFeedbackStreamDataSize, 512);
+       VALIDATE_MINIMUM(m_transformFeedbackProperties.maxTransformFeedbackBufferDataSize, 512);
+       VALIDATE_MINIMUM(m_transformFeedbackProperties.maxTransformFeedbackBufferDataStride, 512);
+
+       VALIDATE_BOOL(m_transformFeedbackProperties.transformFeedbackQueries);
+       VALIDATE_BOOL(m_transformFeedbackProperties.transformFeedbackStreamsLinesTriangles);
+       VALIDATE_BOOL(m_transformFeedbackProperties.transformFeedbackRasterizationStreamSelect);
+       VALIDATE_BOOL(m_transformFeedbackProperties.transformFeedbackDraw);
+}
+
+std::vector<VkDeviceSize> TransformFeedbackTestInstance::generateSizesList (const size_t bufBytes, const size_t chunkCount)
+{
+       const int                                       minChunkSlot    = static_cast<int>(1);
+       const int                                       maxChunkSlot    = static_cast<int>(bufBytes / sizeof(deUint32));
+       int                                                     prevOffsetSlot  = 0;
+       std::map<int, bool>                     offsetsSet;
+       std::vector<VkDeviceSize>       result;
+
+       DE_ASSERT(bufBytes <= MINIMUM_TF_BUFFER_SIZE);
+       DE_ASSERT(bufBytes % sizeof(deUint32) == 0);
+       DE_ASSERT(minChunkSlot <= maxChunkSlot);
+       DE_ASSERT(chunkCount > 0);
+       // To be effective this algorithm requires that chunkCount is much less than amount of chunks possible
+       DE_ASSERT(8 * chunkCount <= static_cast<size_t>(maxChunkSlot));
+
+       offsetsSet[0] = true;
+
+       // Create a list of unique offsets first
+       for (size_t chunkNdx = 1; chunkNdx < chunkCount; ++chunkNdx)
+       {
+               int chunkSlot;
+
+               do
+               {
+                       chunkSlot = m_rnd.getInt(minChunkSlot, maxChunkSlot - 1);
+               } while (offsetsSet.find(chunkSlot) != offsetsSet.end());
+
+               offsetsSet[chunkSlot] = true;
+       }
+       offsetsSet[maxChunkSlot] = true;
+
+       // Calculate sizes of offsets list
+       result.reserve(chunkCount);
+       for (std::map<int, bool>::iterator mapIt = offsetsSet.begin(); mapIt != offsetsSet.end(); ++mapIt)
+       {
+               const int offsetSlot = mapIt->first;
+
+               if (offsetSlot == 0)
+                       continue;
+
+               DE_ASSERT(prevOffsetSlot < offsetSlot && offsetSlot > 0);
+
+               result.push_back(static_cast<VkDeviceSize>(static_cast<size_t>(offsetSlot - prevOffsetSlot) * sizeof(deUint32)));
+
+               prevOffsetSlot = offsetSlot;
+       }
+
+       DE_ASSERT(result.size() == chunkCount);
+
+       return result;
+}
+
+std::vector<VkDeviceSize> TransformFeedbackTestInstance::generateOffsetsList (const std::vector<VkDeviceSize>& sizesList)
+{
+       VkDeviceSize                            offset  = 0ull;
+       std::vector<VkDeviceSize>       result;
+
+       result.reserve(sizesList.size());
+
+       for (size_t chunkNdx = 0; chunkNdx < sizesList.size(); ++chunkNdx)
+       {
+               result.push_back(offset);
+
+               offset += sizesList[chunkNdx];
+       }
+
+       DE_ASSERT(sizesList.size() == result.size());
+
+       return result;
+}
+
+void TransformFeedbackTestInstance::verifyTransformFeedbackBuffer (const MovePtr<Allocation>& bufAlloc, const deUint32 bufBytes)
+{
+       const DeviceInterface&  vk                      = m_context.getDeviceInterface();
+       const VkDevice                  device          = m_context.getDevice();
+
+       invalidateMappedMemoryRange(vk, device, bufAlloc->getMemory(), bufAlloc->getOffset(), bufBytes);
+
+       const deUint32                  numPoints       = static_cast<deUint32>(bufBytes / sizeof(deUint32));
+       const deUint32*                 tfData          = (deUint32*)bufAlloc->getHostPtr();
+
+       for (deUint32 i = 0; i < numPoints; ++i)
+               if (tfData[i] != i)
+                       TCU_FAIL(std::string("Failed at item ") + de::toString(i) + " received:" + de::toString(tfData[i]) + " expected:" + de::toString(i));
+}
+
+class TransformFeedbackBasicTestInstance : public TransformFeedbackTestInstance
+{
+public:
+                                               TransformFeedbackBasicTestInstance      (Context& context, const TestParameters& parameters);
+
+protected:
+       tcu::TestStatus         iterate                                                         (void);
+};
+
+TransformFeedbackBasicTestInstance::TransformFeedbackBasicTestInstance (Context& context, const TestParameters& parameters)
+       : TransformFeedbackTestInstance (context, parameters)
+{
+}
+
+tcu::TestStatus TransformFeedbackBasicTestInstance::iterate (void)
+{
+       const DeviceInterface&                          vk                                              = m_context.getDeviceInterface();
+       const VkDevice                                          device                                  = m_context.getDevice();
+       const deUint32                                          queueFamilyIndex                = m_context.getUniversalQueueFamilyIndex();
+       const VkQueue                                           queue                                   = m_context.getUniversalQueue();
+       Allocator&                                                      allocator                               = m_context.getDefaultAllocator();
+
+       const Unique<VkShaderModule>            vertexModule                    (createShaderModule             (vk, device, m_context.getBinaryCollection().get("vert"), 0u));
+       const Unique<VkRenderPass>                      renderPass                              (makeRenderPass                 (vk, device, VK_FORMAT_UNDEFINED));
+       const Unique<VkFramebuffer>                     framebuffer                             (makeFramebuffer                (vk, device, *renderPass, m_imageExtent2D, DE_NULL));
+       const Unique<VkPipelineLayout>          pipelineLayout                  (makePipelineLayout             (vk, device));
+       const Unique<VkPipeline>                        pipeline                                (makeGraphicsPipeline   (vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, m_imageExtent2D, 0u));
+       const Unique<VkCommandPool>                     cmdPool                                 (createCommandPool              (vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
+       const Unique<VkCommandBuffer>           cmdBuffer                               (allocateCommandBuffer  (vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
+
+       const VkBufferCreateInfo                        tfBufCreateInfo                 = makeBufferCreateInfo(m_parameters.bufferSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT);
+       const Move<VkBuffer>                            tfBuf                                   = createBuffer(vk, device, &tfBufCreateInfo);
+       const MovePtr<Allocation>                       tfBufAllocation                 = allocator.allocate(getBufferMemoryRequirements(vk, device, *tfBuf), MemoryRequirement::HostVisible);
+       const std::vector<VkDeviceSize>         tfBufBindingSizes               = generateSizesList(m_parameters.bufferSize, m_parameters.partCount);
+       const std::vector<VkDeviceSize>         tfBufBindingOffsets             = generateOffsetsList(tfBufBindingSizes);
+
+       VK_CHECK(vk.bindBufferMemory(device, *tfBuf, tfBufAllocation->getMemory(), tfBufAllocation->getOffset()));
+
+       beginCommandBuffer(vk, *cmdBuffer);
+       {
+               beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, makeRect2D(m_imageExtent2D));
+               {
+                       vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
+
+                       for (deUint32 drawNdx = 0; drawNdx < m_parameters.partCount; ++drawNdx)
+                       {
+                               const deUint32  startValue      = static_cast<deUint32>(tfBufBindingOffsets[drawNdx] / sizeof(deUint32));
+                               const deUint32  numPoints       = static_cast<deUint32>(tfBufBindingSizes[drawNdx] / sizeof(deUint32));
+
+                               vk.cmdBindTransformFeedbackBuffersEXT(*cmdBuffer, 0, 1, &*tfBuf, &tfBufBindingOffsets[drawNdx], &tfBufBindingSizes[drawNdx]);
+
+                               vk.cmdPushConstants(*cmdBuffer, *pipelineLayout, VK_SHADER_STAGE_VERTEX_BIT, 0u, sizeof(startValue), &startValue);
+
+                               vk.cmdBeginTransformFeedbackEXT(*cmdBuffer, 0, 0, DE_NULL, DE_NULL);
+                               {
+                                       vk.cmdDraw(*cmdBuffer, numPoints, 1u, 0u, 0u);
+                               }
+                               vk.cmdEndTransformFeedbackEXT(*cmdBuffer, 0, 0, DE_NULL, DE_NULL);
+                       }
+               }
+               endRenderPass(vk, *cmdBuffer);
+       }
+       endCommandBuffer(vk, *cmdBuffer);
+       submitCommandsAndWait(vk, device, queue, *cmdBuffer);
+
+       verifyTransformFeedbackBuffer(tfBufAllocation, m_parameters.bufferSize);
+
+       return tcu::TestStatus::pass("Pass");
+}
+
+class TransformFeedbackResumeTestInstance : public TransformFeedbackTestInstance
+{
+public:
+                                               TransformFeedbackResumeTestInstance     (Context& context, const TestParameters& parameters);
+
+protected:
+       tcu::TestStatus         iterate                                                         (void);
+};
+
+TransformFeedbackResumeTestInstance::TransformFeedbackResumeTestInstance (Context& context, const TestParameters& parameters)
+       : TransformFeedbackTestInstance (context, parameters)
+{
+}
+
+tcu::TestStatus TransformFeedbackResumeTestInstance::iterate (void)
+{
+       const DeviceInterface&                                  vk                                              = m_context.getDeviceInterface();
+       const VkDevice                                                  device                                  = m_context.getDevice();
+       const deUint32                                                  queueFamilyIndex                = m_context.getUniversalQueueFamilyIndex();
+       const VkQueue                                                   queue                                   = m_context.getUniversalQueue();
+       Allocator&                                                              allocator                               = m_context.getDefaultAllocator();
+
+       const Unique<VkShaderModule>                    vertexModule                    (createShaderModule             (vk, device, m_context.getBinaryCollection().get("vert"), 0u));
+       const Unique<VkRenderPass>                              renderPass                              (makeRenderPass                 (vk, device, VK_FORMAT_UNDEFINED));
+       const Unique<VkFramebuffer>                             framebuffer                             (makeFramebuffer                (vk, device, *renderPass, m_imageExtent2D, DE_NULL));
+       const Unique<VkPipelineLayout>                  pipelineLayout                  (makePipelineLayout             (vk, device));
+       const Unique<VkPipeline>                                pipeline                                (makeGraphicsPipeline   (vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, m_imageExtent2D, 0u));
+
+       const Unique<VkCommandPool>                             cmdPool                                 (createCommandPool              (vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
+       const Unique<VkCommandBuffer>                   cmdBuffer                               (allocateCommandBuffer  (vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
+
+       const VkBufferCreateInfo                                tfBufCreateInfo                 = makeBufferCreateInfo(m_parameters.bufferSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT);
+       const Move<VkBuffer>                                    tfBuf                                   = createBuffer(vk, device, &tfBufCreateInfo);
+       const MovePtr<Allocation>                               tfBufAllocation                 = allocator.allocate(getBufferMemoryRequirements(vk, device, *tfBuf), MemoryRequirement::HostVisible);
+       const std::vector<VkDeviceSize>                 tfBufBindingSizes               = std::vector<VkDeviceSize>(1, m_parameters.bufferSize);
+       const std::vector<VkDeviceSize>                 tfBufBindingOffsets             = std::vector<VkDeviceSize>(1, 0ull);
+
+       const size_t                                                    tfcBufSize                              = 16 * sizeof(deUint32) * m_parameters.partCount;
+       const VkBufferCreateInfo                                tfcBufCreateInfo                = makeBufferCreateInfo(tfcBufSize, VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT);
+       const Move<VkBuffer>                                    tfcBuf                                  = createBuffer(vk, device, &tfcBufCreateInfo);
+       const MovePtr<Allocation>                               tfcBufAllocation                = allocator.allocate(getBufferMemoryRequirements(vk, device, *tfcBuf), MemoryRequirement::Any);
+       const std::vector<VkDeviceSize>                 tfcBufBindingOffsets    = generateOffsetsList(generateSizesList(tfcBufSize, m_parameters.partCount));
+       const VkBufferMemoryBarrier                             tfcBufBarrier                   = makeBufferMemoryBarrier(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, *tfcBuf, 0ull, VK_WHOLE_SIZE);
+
+       const std::vector<VkDeviceSize>                 chunkSizesList                  = generateSizesList(m_parameters.bufferSize, m_parameters.partCount);
+       const std::vector<VkDeviceSize>                 chunkOffsetsList                = generateOffsetsList(chunkSizesList);
+
+       DE_ASSERT(tfBufBindingSizes.size() == 1);
+       DE_ASSERT(tfBufBindingOffsets.size() == 1);
+
+       VK_CHECK(vk.bindBufferMemory(device, *tfBuf, tfBufAllocation->getMemory(), tfBufAllocation->getOffset()));
+       VK_CHECK(vk.bindBufferMemory(device, *tfcBuf, tfcBufAllocation->getMemory(), tfcBufAllocation->getOffset()));
+
+       beginCommandBuffer(vk, *cmdBuffer);
+       {
+               for (size_t drawNdx = 0; drawNdx < m_parameters.partCount; ++drawNdx)
+               {
+                       const deUint32  startValue = static_cast<deUint32>(chunkOffsetsList[drawNdx] / sizeof(deUint32));
+                       const deUint32  numPoints = static_cast<deUint32>(chunkSizesList[drawNdx] / sizeof(deUint32));
+                       const deUint32  countBuffersCount = (drawNdx == 0) ? 0 : 1;
+
+                       beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, makeRect2D(m_imageExtent2D));
+                       {
+
+                               vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
+
+                               vk.cmdBindTransformFeedbackBuffersEXT(*cmdBuffer, 0, 1, &*tfBuf, &tfBufBindingOffsets[0], &tfBufBindingSizes[0]);
+
+                               vk.cmdPushConstants(*cmdBuffer, *pipelineLayout, VK_SHADER_STAGE_VERTEX_BIT, 0u, sizeof(startValue), &startValue);
+
+                               vk.cmdBeginTransformFeedbackEXT(*cmdBuffer, 0, countBuffersCount, (drawNdx == 0) ? DE_NULL : &*tfcBuf, (drawNdx == 0) ? DE_NULL : &tfcBufBindingOffsets[drawNdx - 1]);
+                               {
+                                       vk.cmdDraw(*cmdBuffer, numPoints, 1u, 0u, 0u);
+                               }
+                               vk.cmdEndTransformFeedbackEXT(*cmdBuffer, 0, 1, &*tfcBuf, &tfcBufBindingOffsets[drawNdx]);
+                       }
+                       endRenderPass(vk, *cmdBuffer);
+
+                       vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, 0u, 0u, DE_NULL, 1u, &tfcBufBarrier, 0u, DE_NULL);
+               }
+       }
+       endCommandBuffer(vk, *cmdBuffer);
+       submitCommandsAndWait(vk, device, queue, *cmdBuffer);
+
+       verifyTransformFeedbackBuffer(tfBufAllocation, m_parameters.bufferSize);
+
+       return tcu::TestStatus::pass("Pass");
+}
+
+class TransformFeedbackMultistreamTestInstance : public TransformFeedbackTestInstance
+{
+public:
+                                                               TransformFeedbackMultistreamTestInstance        (Context& context, const TestParameters& parameters);
+
+protected:
+       std::vector<VkDeviceSize>       generateSizesList                                                       (const size_t bufBytes, const size_t chunkCount);
+       void                                            verifyTransformFeedbackBuffer                           (const MovePtr<Allocation>& bufAlloc, const deUint32 bufBytes);
+       tcu::TestStatus                         iterate                                                                         (void);
+};
+
+TransformFeedbackMultistreamTestInstance::TransformFeedbackMultistreamTestInstance (Context& context, const TestParameters& parameters)
+       : TransformFeedbackTestInstance (context, parameters)
+{
+       const InstanceInterface&                                                                vki                                                     = m_context.getInstanceInterface();
+       const VkPhysicalDevice                                                                  physDevice                                      = m_context.getPhysicalDevice();
+       const VkPhysicalDeviceFeatures                                                  features                                        = getPhysicalDeviceFeatures(vki, physDevice);
+       const VkPhysicalDeviceTransformFeedbackFeaturesEXT&             transformFeedbackFeatures       = m_context.getTransformFeedbackFeatures();
+       const deUint32                                                                                  streamsSupported                        = m_transformFeedbackProperties.maxTransformFeedbackStreams;
+       const deUint32                                                                                  streamsRequired                         = m_parameters.streamId + 1;
+       const deUint32                                                                                  tfBuffersSupported                      = m_transformFeedbackProperties.maxTransformFeedbackBuffers;
+       const deUint32                                                                                  tfBuffersRequired                       = m_parameters.partCount;
+       const deUint32                                                                                  bytesPerVertex                          = m_parameters.bufferSize / m_parameters.partCount;
+       const deUint32                                                                                  tfStreamDataSizeSupported       = m_transformFeedbackProperties.maxTransformFeedbackStreamDataSize;
+       const deUint32                                                                                  tfBufferDataSizeSupported       = m_transformFeedbackProperties.maxTransformFeedbackBufferDataSize;
+       const deUint32                                                                                  tfBufferDataStrideSupported     = m_transformFeedbackProperties.maxTransformFeedbackBufferDataStride;
+
+       DE_ASSERT(m_parameters.partCount == 2u);
+
+       if (!features.geometryShader)
+               TCU_THROW(NotSupportedError, "Missing feature: geometryShader");
+
+       if (transformFeedbackFeatures.geometryStreams == DE_FALSE)
+               TCU_THROW(NotSupportedError, "geometryStreams feature is not supported");
+
+       if (streamsSupported < streamsRequired)
+               TCU_THROW(NotSupportedError, std::string("maxTransformFeedbackStreams=" + de::toString(streamsSupported) + ", while test requires " + de::toString(streamsRequired)).c_str());
+
+       if (tfBuffersSupported < tfBuffersRequired)
+               TCU_THROW(NotSupportedError, std::string("maxTransformFeedbackBuffers=" + de::toString(tfBuffersSupported) + ", while test requires " + de::toString(tfBuffersRequired)).c_str());
+
+       if (tfStreamDataSizeSupported < bytesPerVertex)
+               TCU_THROW(NotSupportedError, std::string("maxTransformFeedbackStreamDataSize=" + de::toString(tfStreamDataSizeSupported) + ", while test requires " + de::toString(bytesPerVertex)).c_str());
+
+       if (tfBufferDataSizeSupported < bytesPerVertex)
+               TCU_THROW(NotSupportedError, std::string("maxTransformFeedbackBufferDataSize=" + de::toString(tfBufferDataSizeSupported) + ", while test requires " + de::toString(bytesPerVertex)).c_str());
+
+       if (tfBufferDataStrideSupported < bytesPerVertex)
+               TCU_THROW(NotSupportedError, std::string("maxTransformFeedbackBufferDataStride=" + de::toString(tfBufferDataStrideSupported) + ", while test requires " + de::toString(bytesPerVertex)).c_str());
+}
+
+std::vector<VkDeviceSize> TransformFeedbackMultistreamTestInstance::generateSizesList (const size_t bufBytes, const size_t chunkCount)
+{
+       const VkDeviceSize                      chunkSize       = bufBytes / chunkCount;
+       std::vector<VkDeviceSize>       result          (chunkCount, chunkSize);
+
+       DE_ASSERT(chunkSize * chunkCount == bufBytes);
+       DE_ASSERT(bufBytes <= MINIMUM_TF_BUFFER_SIZE);
+       DE_ASSERT(bufBytes % sizeof(deUint32) == 0);
+       DE_ASSERT(chunkCount > 0);
+       DE_ASSERT(result.size() == chunkCount);
+
+       return result;
+}
+
+void TransformFeedbackMultistreamTestInstance::verifyTransformFeedbackBuffer (const MovePtr<Allocation>& bufAlloc, const deUint32 bufBytes)
+{
+       const DeviceInterface&  vk                      = m_context.getDeviceInterface();
+       const VkDevice                  device          = m_context.getDevice();
+
+       invalidateMappedMemoryRange(vk, device, bufAlloc->getMemory(), bufAlloc->getOffset(), bufBytes);
+
+       const deUint32                  numPoints       = static_cast<deUint32>(bufBytes / sizeof(deUint32));
+       const float*                    tfData          = (float*)bufAlloc->getHostPtr();
+
+       for (deUint32 i = 0; i < numPoints; ++i)
+               if (tfData[i] != float(i))
+                       TCU_FAIL(std::string("Failed at item ") + de::toString(float(i)) + " received:" + de::toString(tfData[i]) + " expected:" + de::toString(i));
+}
+
+tcu::TestStatus TransformFeedbackMultistreamTestInstance::iterate (void)
+{
+       const DeviceInterface&                          vk                                              = m_context.getDeviceInterface();
+       const VkDevice                                          device                                  = m_context.getDevice();
+       const deUint32                                          queueFamilyIndex                = m_context.getUniversalQueueFamilyIndex();
+       const VkQueue                                           queue                                   = m_context.getUniversalQueue();
+       Allocator&                                                      allocator                               = m_context.getDefaultAllocator();
+
+       const Unique<VkRenderPass>                      renderPass                              (makeRenderPass                 (vk, device, VK_FORMAT_UNDEFINED));
+
+       const Unique<VkShaderModule>            vertexModule                    (createShaderModule             (vk, device, m_context.getBinaryCollection().get("vert"), 0u));
+       const Unique<VkShaderModule>            geomModule                              (createShaderModule             (vk, device, m_context.getBinaryCollection().get("geom"), 0u));
+
+       const Unique<VkFramebuffer>                     framebuffer                             (makeFramebuffer                (vk, device, *renderPass, m_imageExtent2D, DE_NULL));
+       const Unique<VkPipelineLayout>          pipelineLayout                  (makePipelineLayout             (vk, device));
+       const Unique<VkPipeline>                        pipeline                                (makeGraphicsPipeline   (vk, device, *pipelineLayout, *renderPass, *vertexModule, *geomModule, DE_NULL, m_imageExtent2D, 0u));
+       const Unique<VkCommandPool>                     cmdPool                                 (createCommandPool              (vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
+       const Unique<VkCommandBuffer>           cmdBuffer                               (allocateCommandBuffer  (vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
+
+       const VkBufferCreateInfo                        tfBufCreateInfo                 = makeBufferCreateInfo(m_parameters.bufferSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT);
+       const Move<VkBuffer>                            tfBuf                                   = createBuffer(vk, device, &tfBufCreateInfo);
+       const std::vector<VkBuffer>                     tfBufArray                              = std::vector<VkBuffer>(m_parameters.partCount, *tfBuf);
+       const MovePtr<Allocation>                       tfBufAllocation                 = allocator.allocate(getBufferMemoryRequirements(vk, device, *tfBuf), MemoryRequirement::HostVisible);
+       const std::vector<VkDeviceSize>         tfBufBindingSizes               = generateSizesList(m_parameters.bufferSize, m_parameters.partCount);
+       const std::vector<VkDeviceSize>         tfBufBindingOffsets             = generateOffsetsList(tfBufBindingSizes);
+
+       VK_CHECK(vk.bindBufferMemory(device, *tfBuf, tfBufAllocation->getMemory(), tfBufAllocation->getOffset()));
+
+       beginCommandBuffer(vk, *cmdBuffer);
+       {
+               beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, makeRect2D(m_imageExtent2D));
+               {
+                       vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
+
+                       vk.cmdBindTransformFeedbackBuffersEXT(*cmdBuffer, 0u, m_parameters.partCount, &tfBufArray[0], &tfBufBindingOffsets[0], &tfBufBindingSizes[0]);
+
+                       vk.cmdBeginTransformFeedbackEXT(*cmdBuffer, 0, 0, DE_NULL, DE_NULL);
+                       {
+                               vk.cmdDraw(*cmdBuffer, 1u, 1u, 0u, 0u);
+                       }
+                       vk.cmdEndTransformFeedbackEXT(*cmdBuffer, 0, 0, DE_NULL, DE_NULL);
+               }
+               endRenderPass(vk, *cmdBuffer);
+       }
+       endCommandBuffer(vk, *cmdBuffer);
+       submitCommandsAndWait(vk, device, queue, *cmdBuffer);
+
+       verifyTransformFeedbackBuffer(tfBufAllocation, m_parameters.bufferSize);
+
+       return tcu::TestStatus::pass("Pass");
+}
+
+class TransformFeedbackStreamsTestInstance : public TransformFeedbackTestInstance
+{
+public:
+                                               TransformFeedbackStreamsTestInstance    (Context& context, const TestParameters& parameters);
+
+protected:
+       tcu::TestStatus         iterate                                                                 (void);
+       bool                            verifyImage                                                             (const VkFormat imageFormat, const VkExtent2D& size, const void* resultData);
+};
+
+TransformFeedbackStreamsTestInstance::TransformFeedbackStreamsTestInstance (Context& context, const TestParameters& parameters)
+       : TransformFeedbackTestInstance (context, parameters)
+{
+       const InstanceInterface&                                                                vki                                                     = m_context.getInstanceInterface();
+       const VkPhysicalDevice                                                                  physDevice                                      = m_context.getPhysicalDevice();
+       const VkPhysicalDeviceFeatures                                                  features                                        = getPhysicalDeviceFeatures(vki, physDevice);
+       const VkPhysicalDeviceTransformFeedbackFeaturesEXT&             transformFeedbackFeatures       = m_context.getTransformFeedbackFeatures();
+       const deUint32                                                                                  streamsSupported                        = m_transformFeedbackProperties.maxTransformFeedbackStreams;
+       const deUint32                                                                                  streamsRequired                         = m_parameters.streamId + 1;
+
+       if (!features.geometryShader)
+               TCU_THROW(NotSupportedError, "Missing feature: geometryShader");
+
+       if (transformFeedbackFeatures.geometryStreams == DE_FALSE)
+               TCU_THROW(NotSupportedError, "geometryStreams feature is not supported");
+
+       if (m_transformFeedbackProperties.transformFeedbackRasterizationStreamSelect == DE_FALSE)
+               TCU_THROW(NotSupportedError, "transformFeedbackRasterizationStreamSelect feature is not supported");
+
+       if (streamsSupported < streamsRequired)
+               TCU_THROW(NotSupportedError, std::string("maxTransformFeedbackStreams=" + de::toString(streamsSupported) + ", while test requires " + de::toString(streamsRequired)).c_str());
+}
+
+bool TransformFeedbackStreamsTestInstance::verifyImage (const VkFormat imageFormat, const VkExtent2D& size, const void* resultData)
+{
+       const tcu::RGBA                         magentaRGBA             (tcu::RGBA(0xFF, 0x00, 0xFF, 0xFF));
+       const tcu::Vec4                         magenta                 (magentaRGBA.toVec());
+       const tcu::Vec4                         black                   (tcu::RGBA::black().toVec());
+       const tcu::TextureFormat        textureFormat   (mapVkFormat(imageFormat));
+       const int                                       dataSize                (size.width * size.height * textureFormat.getPixelSize());
+       tcu::TextureLevel                       referenceImage  (textureFormat, size.width, size.height);
+       tcu::PixelBufferAccess          referenceAccess (referenceImage.getAccess());
+
+       // Generate reference image
+       if (m_parameters.testType == TEST_TYPE_STREAMS)
+       {
+               for (int y = 0; y < referenceImage.getHeight(); ++y)
+               {
+                       const tcu::Vec4&        validColor = y < referenceImage.getHeight() / 2 ? black : magenta;
+
+                       for (int x = 0; x < referenceImage.getWidth(); ++x)
+                               referenceAccess.setPixel(validColor, x, y);
+               }
+       }
+
+       if (m_parameters.testType == TEST_TYPE_STREAMS_CLIPDISTANCE || m_parameters.testType == TEST_TYPE_STREAMS_CULLDISTANCE)
+       {
+               for (int y = 0; y < referenceImage.getHeight(); ++y)
+                       for (int x = 0; x < referenceImage.getWidth(); ++x)
+                       {
+                               const tcu::Vec4&        validColor      = (y >= referenceImage.getHeight() / 2) && (x >= referenceImage.getWidth() / 2) ? magenta : black;
+
+                               referenceAccess.setPixel(validColor, x, y);
+                       }
+       }
+
+       if (m_parameters.testType == TEST_TYPE_STREAMS_POINTSIZE)
+       {
+               const int                       pointSize       = static_cast<int>(m_parameters.pointSize);
+               const tcu::Vec4&        validColor      = black;
+
+               for (int y = 0; y < referenceImage.getHeight(); ++y)
+                       for (int x = 0; x < referenceImage.getWidth(); ++x)
+                               referenceAccess.setPixel(validColor, x, y);
+
+               referenceAccess.setPixel(magenta, (1 + referenceImage.getWidth()) / 4 - 1, (referenceImage.getHeight() * 3) / 4 - 1);
+
+               for (int y = 0; y < pointSize; ++y)
+                       for (int x = 0; x < pointSize; ++x)
+                               referenceAccess.setPixel(magenta, x + (referenceImage.getWidth() * 3) / 4 - 1, y + (referenceImage.getHeight() * 3) / 4 - 1);
+       }
+
+       if (deMemCmp(resultData, referenceAccess.getDataPtr(), dataSize) != 0)
+       {
+               const tcu::ConstPixelBufferAccess       resultImage     (textureFormat, size.width, size.height, 1, resultData);
+               bool                                                            ok;
+
+               ok = tcu::intThresholdCompare(m_context.getTestContext().getLog(), "Image comparison", "", referenceAccess, resultImage, tcu::UVec4(1), tcu::COMPARE_LOG_RESULT);
+
+               return ok;
+       }
+
+       return true;
+}
+
+tcu::TestStatus TransformFeedbackStreamsTestInstance::iterate (void)
+{
+       const DeviceInterface&                          vk                                      = m_context.getDeviceInterface();
+       const VkDevice                                          device                          = m_context.getDevice();
+       const deUint32                                          queueFamilyIndex        = m_context.getUniversalQueueFamilyIndex();
+       const VkQueue                                           queue                           = m_context.getUniversalQueue();
+       Allocator&                                                      allocator                       = m_context.getDefaultAllocator();
+
+       const Unique<VkRenderPass>                      renderPass                      (makeRenderPass                 (vk, device, VK_FORMAT_R8G8B8A8_UNORM));
+
+       const Unique<VkShaderModule>            vertModule                      (createShaderModule             (vk, device, m_context.getBinaryCollection().get("vert"), 0u));
+       const Unique<VkShaderModule>            geomModule                      (createShaderModule             (vk, device, m_context.getBinaryCollection().get("geom"), 0u));
+       const Unique<VkShaderModule>            fragModule                      (createShaderModule             (vk, device, m_context.getBinaryCollection().get("frag"), 0u));
+
+       const VkFormat                                          colorFormat                     = VK_FORMAT_R8G8B8A8_UNORM;
+       const VkImageUsageFlags                         imageUsageFlags         = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
+       const tcu::RGBA                                         clearColor                      (tcu::RGBA::black());
+       const VkImageSubresourceRange           colorSubresRange        (makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u));
+       const VkDeviceSize                                      colorBufferSize         (m_imageExtent2D.width * m_imageExtent2D.height * tcu::getPixelSize(mapVkFormat(colorFormat)));
+       const Unique<VkImage>                           colorImage                      (makeImage                              (vk, device, makeImageCreateInfo(0u, VK_IMAGE_TYPE_2D, colorFormat, m_imageExtent2D, 1u, imageUsageFlags)));
+       const UniquePtr<Allocation>                     colorImageAlloc         (bindImage                              (vk, device, allocator, *colorImage, MemoryRequirement::Any));
+       const Unique<VkImageView>                       colorAttachment         (makeImageView                  (vk, device, *colorImage, VK_IMAGE_VIEW_TYPE_2D, colorFormat, colorSubresRange));
+       const Unique<VkBuffer>                          colorBuffer                     (makeBuffer                             (vk, device, makeBufferCreateInfo(colorBufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT)));
+       const UniquePtr<Allocation>                     colorBufferAlloc        (bindBuffer                             (vk, device, allocator, *colorBuffer, MemoryRequirement::HostVisible));
+
+       const Unique<VkFramebuffer>                     framebuffer                     (makeFramebuffer                (vk, device, *renderPass, m_imageExtent2D, &*colorAttachment));
+       const Unique<VkPipelineLayout>          pipelineLayout          (makePipelineLayout             (vk, device));
+       const Unique<VkPipeline>                        pipeline                        (makeGraphicsPipeline   (vk, device, *pipelineLayout, *renderPass, *vertModule, *geomModule, *fragModule, m_imageExtent2D, 0u, &m_parameters.streamId));
+       const Unique<VkCommandPool>                     cmdPool                         (createCommandPool              (vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
+       const Unique<VkCommandBuffer>           cmdBuffer                       (allocateCommandBuffer  (vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
+
+       const VkImageMemoryBarrier                      preCopyBarrier          = makeImageMemoryBarrier(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT,
+                                                                                                                                                                        VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+                                                                                                                                                                        *colorImage, colorSubresRange);
+       const VkBufferImageCopy                         region                          = makeBufferImageCopy(makeExtent3D(m_imageExtent2D.width, m_imageExtent2D.height, 1u),
+                                                                                                                                                                 makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 0u, 1u));
+       const VkBufferMemoryBarrier                     postCopyBarrier         = makeBufferMemoryBarrier(VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_HOST_READ_BIT, *colorBuffer, 0ull, VK_WHOLE_SIZE);
+
+       beginCommandBuffer(vk, *cmdBuffer);
+       {
+               beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, makeRect2D(m_imageExtent2D), clearColor.toVec());
+               {
+                       vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
+
+                       vk.cmdDraw(*cmdBuffer, 2u, 1u, 0u, 0u);
+               }
+               endRenderPass(vk, *cmdBuffer);
+
+               vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 1u, &preCopyBarrier);
+               vk.cmdCopyImageToBuffer(*cmdBuffer, *colorImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, *colorBuffer, 1u, &region);
+               vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 1u, &postCopyBarrier, DE_NULL, 0u);
+       }
+       endCommandBuffer(vk, *cmdBuffer);
+       submitCommandsAndWait(vk, device, queue, *cmdBuffer);
+
+       if (!verifyImage(colorFormat, m_imageExtent2D, colorBufferAlloc->getHostPtr()))
+               return tcu::TestStatus::fail("Fail");
+
+       return tcu::TestStatus::pass("Pass");
+}
+
+class TransformFeedbackIndirectDrawTestInstance : public TransformFeedbackTestInstance
+{
+public:
+                                               TransformFeedbackIndirectDrawTestInstance       (Context& context, const TestParameters& parameters);
+
+protected:
+       tcu::TestStatus         iterate                                                                         (void);
+       bool                            verifyImage                                                                     (const VkFormat imageFormat, const VkExtent2D& size, const void* resultData);
+};
+
+TransformFeedbackIndirectDrawTestInstance::TransformFeedbackIndirectDrawTestInstance (Context& context, const TestParameters& parameters)
+       : TransformFeedbackTestInstance (context, parameters)
+{
+       const InstanceInterface&                vki                                                     = m_context.getInstanceInterface();
+       const VkPhysicalDevice                  physDevice                                      = m_context.getPhysicalDevice();
+       const VkPhysicalDeviceLimits    limits                                          = getPhysicalDeviceProperties(vki, physDevice).limits;
+       const deUint32                                  tfBufferDataSizeSupported       = m_transformFeedbackProperties.maxTransformFeedbackBufferDataSize;
+       const deUint32                                  tfBufferDataStrideSupported     = m_transformFeedbackProperties.maxTransformFeedbackBufferDataStride;
+
+       if (m_transformFeedbackProperties.transformFeedbackDraw == DE_FALSE)
+               TCU_THROW(NotSupportedError, "transformFeedbackDraw feature is not supported");
+
+       if (limits.maxVertexInputBindingStride < m_parameters.vertexStride)
+               TCU_THROW(NotSupportedError, std::string("maxVertexInputBindingStride=" + de::toString(limits.maxVertexInputBindingStride) + ", while test requires " + de::toString(m_parameters.vertexStride)).c_str());
+
+       if (tfBufferDataSizeSupported < m_parameters.vertexStride)
+               TCU_THROW(NotSupportedError, std::string("maxTransformFeedbackBufferDataSize=" + de::toString(tfBufferDataSizeSupported) + ", while test requires " + de::toString(m_parameters.vertexStride)).c_str());
+
+       if (tfBufferDataStrideSupported < m_parameters.vertexStride)
+               TCU_THROW(NotSupportedError, std::string("maxTransformFeedbackBufferDataStride=" + de::toString(tfBufferDataStrideSupported) + ", while test requires " + de::toString(m_parameters.vertexStride)).c_str());
+}
+
+bool TransformFeedbackIndirectDrawTestInstance::verifyImage (const VkFormat imageFormat, const VkExtent2D& size, const void* resultData)
+{
+       const tcu::Vec4                         white                   (tcu::RGBA::white().toVec());
+       const tcu::TextureFormat        textureFormat   (mapVkFormat(imageFormat));
+       const int                                       dataSize                (size.width * size.height * textureFormat.getPixelSize());
+       tcu::TextureLevel                       referenceImage  (textureFormat, size.width, size.height);
+       tcu::PixelBufferAccess          referenceAccess (referenceImage.getAccess());
+
+       // Generate reference image
+       for (int y = 0; y < referenceImage.getHeight(); ++y)
+               for (int x = 0; x < referenceImage.getWidth(); ++x)
+                       referenceAccess.setPixel(white, x, y);
+
+       if (deMemCmp(resultData, referenceAccess.getDataPtr(), dataSize) != 0)
+       {
+               const tcu::ConstPixelBufferAccess       resultImage     (textureFormat, size.width, size.height, 1, resultData);
+               bool                                                            ok;
+
+               ok = tcu::intThresholdCompare(m_context.getTestContext().getLog(), "Image comparison", "", referenceAccess, resultImage, tcu::UVec4(1), tcu::COMPARE_LOG_RESULT);
+
+               return ok;
+       }
+
+       return true;
+}
+
+tcu::TestStatus TransformFeedbackIndirectDrawTestInstance::iterate (void)
+{
+       const DeviceInterface&                          vk                                      = m_context.getDeviceInterface();
+       const VkDevice                                          device                          = m_context.getDevice();
+       const deUint32                                          queueFamilyIndex        = m_context.getUniversalQueueFamilyIndex();
+       const VkQueue                                           queue                           = m_context.getUniversalQueue();
+       Allocator&                                                      allocator                       = m_context.getDefaultAllocator();
+
+       const Unique<VkRenderPass>                      renderPass                      (makeRenderPass                 (vk, device, VK_FORMAT_R8G8B8A8_UNORM));
+
+       const Unique<VkShaderModule>            vertModule                      (createShaderModule             (vk, device, m_context.getBinaryCollection().get("vert"), 0u));
+       const Unique<VkShaderModule>            fragModule                      (createShaderModule             (vk, device, m_context.getBinaryCollection().get("frag"), 0u));
+
+       const VkFormat                                          colorFormat                     = VK_FORMAT_R8G8B8A8_UNORM;
+       const VkImageUsageFlags                         imageUsageFlags         = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
+       const tcu::RGBA                                         clearColor                      (tcu::RGBA::black());
+       const VkImageSubresourceRange           colorSubresRange        (makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u));
+       const VkDeviceSize                                      colorBufferSize         (m_imageExtent2D.width * m_imageExtent2D.height * tcu::getPixelSize(mapVkFormat(colorFormat)));
+       const Unique<VkImage>                           colorImage                      (makeImage                              (vk, device, makeImageCreateInfo(0u, VK_IMAGE_TYPE_2D, colorFormat, m_imageExtent2D, 1u, imageUsageFlags)));
+       const UniquePtr<Allocation>                     colorImageAlloc         (bindImage                              (vk, device, allocator, *colorImage, MemoryRequirement::Any));
+       const Unique<VkImageView>                       colorAttachment         (makeImageView                  (vk, device, *colorImage, VK_IMAGE_VIEW_TYPE_2D, colorFormat, colorSubresRange));
+       const Unique<VkBuffer>                          colorBuffer                     (makeBuffer                             (vk, device, makeBufferCreateInfo(colorBufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT)));
+       const UniquePtr<Allocation>                     colorBufferAlloc        (bindBuffer                             (vk, device, allocator, *colorBuffer, MemoryRequirement::HostVisible));
+
+       const deUint32                                          vertexCount                     = 6u;
+       const VkDeviceSize                                      vertexBufferSize        = vertexCount * m_parameters.vertexStride;
+       const VkBufferUsageFlags                        vertexBufferUsage       = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
+       const Unique<VkBuffer>                          vertexBuffer            (makeBuffer                             (vk, device, makeBufferCreateInfo(vertexBufferSize, vertexBufferUsage)));
+       const UniquePtr<Allocation>                     vertexBufferAlloc       (bindBuffer                             (vk, device, allocator, *vertexBuffer, MemoryRequirement::HostVisible));
+       const VkDeviceSize                                      vertexBufferOffset      (0u);
+       const float                                                     vertexBufferVals[]      =
+                                                                                                                               {
+                                                                                                                                       -1.0f, -1.0f, 0.0f, 1.0f,
+                                                                                                                                       -1.0f, +1.0f, 0.0f, 1.0f,
+                                                                                                                                       +1.0f, -1.0f, 0.0f, 1.0f,
+                                                                                                                                       -1.0f, +1.0f, 0.0f, 1.0f,
+                                                                                                                                       +1.0f, -1.0f, 0.0f, 1.0f,
+                                                                                                                                       +1.0f, +1.0f, 0.0f, 1.0f,
+                                                                                                                               };
+
+       const deUint32                                          counterBufferValue      = m_parameters.vertexStride * vertexCount;
+       const VkDeviceSize                                      counterBufferSize       = sizeof(counterBufferValue);
+       const VkBufferUsageFlags                        counterBufferUsage      = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
+       const Unique<VkBuffer>                          counterBuffer           (makeBuffer                             (vk, device, makeBufferCreateInfo(counterBufferSize, counterBufferUsage)));
+       const UniquePtr<Allocation>                     counterBufferAlloc      (bindBuffer                             (vk, device, allocator, *counterBuffer, MemoryRequirement::HostVisible));
+
+       const Unique<VkFramebuffer>                     framebuffer                     (makeFramebuffer                (vk, device, *renderPass, m_imageExtent2D, &*colorAttachment));
+       const Unique<VkPipelineLayout>          pipelineLayout          (makePipelineLayout             (vk, device));
+       const Unique<VkPipeline>                        pipeline                        (makeGraphicsPipeline   (vk, device, *pipelineLayout, *renderPass, *vertModule, DE_NULL, *fragModule, m_imageExtent2D, 0u, DE_NULL, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, true));
+       const Unique<VkCommandPool>                     cmdPool                         (createCommandPool              (vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
+       const Unique<VkCommandBuffer>           cmdBuffer                       (allocateCommandBuffer  (vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
+
+       const VkImageMemoryBarrier                      preCopyBarrier          = makeImageMemoryBarrier(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT,
+                                                                                                                                                                        VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+                                                                                                                                                                        *colorImage, colorSubresRange);
+       const VkBufferImageCopy                         region                          = makeBufferImageCopy(makeExtent3D(m_imageExtent2D.width, m_imageExtent2D.height, 1u),
+                                                                                                                                                                 makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 0u, 1u));
+       const VkBufferMemoryBarrier                     postCopyBarrier         = makeBufferMemoryBarrier(VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_HOST_READ_BIT, *colorBuffer, 0ull, VK_WHOLE_SIZE);
+
+       fillBuffer(vk, device, *counterBufferAlloc, counterBufferSize, &counterBufferValue, counterBufferSize);
+       fillBuffer(vk, device, *vertexBufferAlloc, vertexBufferSize, vertexBufferVals, sizeof(vertexBufferVals));
+
+       beginCommandBuffer(vk, *cmdBuffer);
+       {
+               beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, makeRect2D(m_imageExtent2D), clearColor.toVec());
+               {
+                       vk.cmdBindVertexBuffers(*cmdBuffer, 0u, 1u, &*vertexBuffer, &vertexBufferOffset);
+
+                       vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
+
+                       vk.cmdDrawIndirectByteCountEXT(*cmdBuffer, 1u, 0u, *counterBuffer, 0u, 0u, m_parameters.vertexStride);
+               }
+               endRenderPass(vk, *cmdBuffer);
+
+               vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 1u, &preCopyBarrier);
+               vk.cmdCopyImageToBuffer(*cmdBuffer, *colorImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, *colorBuffer, 1u, &region);
+               vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 1u, &postCopyBarrier, DE_NULL, 0u);
+       }
+       endCommandBuffer(vk, *cmdBuffer);
+       submitCommandsAndWait(vk, device, queue, *cmdBuffer);
+
+       if (!verifyImage(colorFormat, m_imageExtent2D, colorBufferAlloc->getHostPtr()))
+               return tcu::TestStatus::fail("Fail");
+
+       return tcu::TestStatus::pass("Pass");
+}
+
+class TransformFeedbackBackwardDependencyTestInstance : public TransformFeedbackTestInstance
+{
+public:
+                                                               TransformFeedbackBackwardDependencyTestInstance (Context& context, const TestParameters& parameters);
+
+protected:
+       tcu::TestStatus                         iterate                                                                                 (void);
+       std::vector<VkDeviceSize>       generateSizesList                                                               (const size_t bufBytes, const size_t chunkCount);
+};
+
+TransformFeedbackBackwardDependencyTestInstance::TransformFeedbackBackwardDependencyTestInstance (Context& context, const TestParameters& parameters)
+       : TransformFeedbackTestInstance (context, parameters)
+{
+}
+
+std::vector<VkDeviceSize> TransformFeedbackBackwardDependencyTestInstance::generateSizesList (const size_t bufBytes, const size_t chunkCount)
+{
+       const VkDeviceSize                      chunkSize       = bufBytes / chunkCount;
+       std::vector<VkDeviceSize>       result          (chunkCount, chunkSize);
+
+       DE_ASSERT(chunkSize * chunkCount == bufBytes);
+       DE_ASSERT(bufBytes <= MINIMUM_TF_BUFFER_SIZE);
+       DE_ASSERT(bufBytes % sizeof(deUint32) == 0);
+       DE_ASSERT(chunkCount > 0);
+       DE_ASSERT(result.size() == chunkCount);
+
+       return result;
+}
+
+tcu::TestStatus TransformFeedbackBackwardDependencyTestInstance::iterate (void)
+{
+       const DeviceInterface&                          vk                                      = m_context.getDeviceInterface();
+       const VkDevice                                          device                          = m_context.getDevice();
+       const deUint32                                          queueFamilyIndex        = m_context.getUniversalQueueFamilyIndex();
+       const VkQueue                                           queue                           = m_context.getUniversalQueue();
+       Allocator&                                                      allocator                       = m_context.getDefaultAllocator();
+
+       const Unique<VkShaderModule>            vertexModule            (createShaderModule             (vk, device, m_context.getBinaryCollection().get("vert"), 0u));
+       const Unique<VkRenderPass>                      renderPass                      (makeRenderPass                 (vk, device));
+       const Unique<VkFramebuffer>                     framebuffer                     (makeFramebuffer                (vk, device, *renderPass, m_imageExtent2D, DE_NULL));
+       const Unique<VkPipelineLayout>          pipelineLayout          (makePipelineLayout             (vk, device));
+       const Unique<VkPipeline>                        pipeline                        (makeGraphicsPipeline   (vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, m_imageExtent2D, 0u));
+       const Unique<VkCommandPool>                     cmdPool                         (createCommandPool              (vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
+       const Unique<VkCommandBuffer>           cmdBuffer                       (allocateCommandBuffer  (vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
+
+       const VkBufferCreateInfo                        tfBufCreateInfo         = makeBufferCreateInfo(m_parameters.bufferSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT);
+       const Move<VkBuffer>                            tfBuf                           = createBuffer(vk, device, &tfBufCreateInfo);
+       const MovePtr<Allocation>                       tfBufAllocation         = allocator.allocate(getBufferMemoryRequirements(vk, device, *tfBuf), MemoryRequirement::HostVisible);
+       const VkDeviceSize                                      tfBufBindingSize        = m_parameters.bufferSize;
+       const VkDeviceSize                                      tfBufBindingOffset      = 0ull;
+
+       const size_t                                            tfcBufSize                      = sizeof(deUint32);
+       const VkBufferCreateInfo                        tfcBufCreateInfo        = makeBufferCreateInfo(tfcBufSize, VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT | VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT);
+       const Move<VkBuffer>                            tfcBuf                          = createBuffer(vk, device, &tfcBufCreateInfo);
+       const MovePtr<Allocation>                       tfcBufAllocation        = allocator.allocate(getBufferMemoryRequirements(vk, device, *tfcBuf), MemoryRequirement::Any);
+       const VkDeviceSize                                      tfcBufBindingOffset     = 0ull;
+       const VkMemoryBarrier                           tfcMemoryBarrier        = makeMemoryBarrier(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT);
+
+       const std::vector<VkDeviceSize>         chunkSizesList          = generateSizesList(m_parameters.bufferSize, m_parameters.partCount);
+       const std::vector<VkDeviceSize>         chunkOffsetsList        = generateOffsetsList(chunkSizesList);
+
+       VK_CHECK(vk.bindBufferMemory(device, *tfBuf, tfBufAllocation->getMemory(), tfBufAllocation->getOffset()));
+       VK_CHECK(vk.bindBufferMemory(device, *tfcBuf, tfcBufAllocation->getMemory(), tfcBufAllocation->getOffset()));
+
+       DE_ASSERT(m_parameters.partCount == 2u);
+
+       beginCommandBuffer(vk, *cmdBuffer);
+       {
+               beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, makeRect2D(m_imageExtent2D));
+               {
+                       vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
+
+                       vk.cmdBindTransformFeedbackBuffersEXT(*cmdBuffer, 0, 1, &*tfBuf, &tfBufBindingOffset, &tfBufBindingSize);
+
+                       {
+                               const deUint32  startValue      = static_cast<deUint32>(chunkOffsetsList[0] / sizeof(deUint32));
+                               const deUint32  numPoints       = static_cast<deUint32>(chunkSizesList[0] / sizeof(deUint32));
+
+                               vk.cmdPushConstants(*cmdBuffer, *pipelineLayout, VK_SHADER_STAGE_VERTEX_BIT, 0u, sizeof(startValue), &startValue);
+
+                               vk.cmdBeginTransformFeedbackEXT(*cmdBuffer, 0, 0, DE_NULL, DE_NULL);
+                               {
+                                       vk.cmdDraw(*cmdBuffer, numPoints, 1u, 0u, 0u);
+                               }
+                               vk.cmdEndTransformFeedbackEXT(*cmdBuffer, 0, 1, &*tfcBuf, &tfcBufBindingOffset);
+                       }
+
+                       vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, 0u, 1u, &tfcMemoryBarrier, 0u, DE_NULL, DE_NULL, 0u);
+
+                       {
+                               const deUint32  startValue      = static_cast<deUint32>(chunkOffsetsList[1] / sizeof(deUint32));
+
+                               vk.cmdPushConstants(*cmdBuffer, *pipelineLayout, VK_SHADER_STAGE_VERTEX_BIT, 0u, sizeof(startValue), &startValue);
+
+                               vk.cmdBeginTransformFeedbackEXT(*cmdBuffer, 0, 1, &*tfcBuf, &tfcBufBindingOffset);
+                               {
+                                       vk.cmdDrawIndirectByteCountEXT(*cmdBuffer, 1u, 0u, *tfcBuf, 0u, 0u, 4u);
+                               }
+                               vk.cmdEndTransformFeedbackEXT(*cmdBuffer, 0, 0, DE_NULL, DE_NULL);
+                       }
+
+               }
+               endRenderPass(vk, *cmdBuffer);
+       }
+       endCommandBuffer(vk, *cmdBuffer);
+       submitCommandsAndWait(vk, device, queue, *cmdBuffer);
+
+       verifyTransformFeedbackBuffer(tfBufAllocation, m_parameters.bufferSize);
+
+       return tcu::TestStatus::pass("Pass");
+}
+
+
+class TransformFeedbackQueryTestInstance : public TransformFeedbackTestInstance
+{
+public:
+                                               TransformFeedbackQueryTestInstance      (Context& context, const TestParameters& parameters);
+
+protected:
+       tcu::TestStatus         iterate                                                         (void);
+};
+
+TransformFeedbackQueryTestInstance::TransformFeedbackQueryTestInstance (Context& context, const TestParameters& parameters)
+       : TransformFeedbackTestInstance (context, parameters)
+{
+       const InstanceInterface&                                                                vki                                                     = m_context.getInstanceInterface();
+       const VkPhysicalDevice                                                                  physDevice                                      = m_context.getPhysicalDevice();
+       const VkPhysicalDeviceFeatures                                                  features                                        = getPhysicalDeviceFeatures(vki, physDevice);
+       const VkPhysicalDeviceTransformFeedbackFeaturesEXT&             transformFeedbackFeatures       = m_context.getTransformFeedbackFeatures();
+       const deUint32                                                                                  streamsSupported                        = m_transformFeedbackProperties.maxTransformFeedbackStreams;
+       const deUint32                                                                                  streamsRequired                         = m_parameters.streamId + 1;
+
+       if (!features.geometryShader)
+               TCU_THROW(NotSupportedError, "Missing feature: geometryShader");
+
+       if (transformFeedbackFeatures.geometryStreams == DE_FALSE)
+               TCU_THROW(NotSupportedError, "geometryStreams feature is not supported");
+
+       if (streamsSupported < streamsRequired)
+               TCU_THROW(NotSupportedError, std::string("maxTransformFeedbackStreams=" + de::toString(streamsSupported) + ", while test requires " + de::toString(streamsRequired)).c_str());
+
+       if (m_transformFeedbackProperties.transformFeedbackQueries == DE_FALSE)
+               TCU_THROW(NotSupportedError, "transformFeedbackQueries feature is not supported");
+}
+
+tcu::TestStatus TransformFeedbackQueryTestInstance::iterate (void)
+{
+       const DeviceInterface&                          vk                                              = m_context.getDeviceInterface();
+       const VkDevice                                          device                                  = m_context.getDevice();
+       const deUint32                                          queueFamilyIndex                = m_context.getUniversalQueueFamilyIndex();
+       const VkQueue                                           queue                                   = m_context.getUniversalQueue();
+       Allocator&                                                      allocator                               = m_context.getDefaultAllocator();
+
+       const deUint32                                          overflowVertices                = 3u;
+       const deUint32                                          bytesPerVertex                  = static_cast<deUint32>(4 * sizeof(float));
+       const deUint32                                          numVerticesInBuffer             = m_parameters.bufferSize / bytesPerVertex;
+       const deUint32                                          numVerticesToWrite              = numVerticesInBuffer + overflowVertices;
+       const Unique<VkRenderPass>                      renderPass                              (makeRenderPass                 (vk, device, VK_FORMAT_UNDEFINED));
+
+       const Unique<VkShaderModule>            vertModule                              (createShaderModule             (vk, device, m_context.getBinaryCollection().get("vert"), 0u));
+       const Unique<VkShaderModule>            geomModule                              (createShaderModule             (vk, device, m_context.getBinaryCollection().get("geom"), 0u));
+
+       const Unique<VkFramebuffer>                     framebuffer                             (makeFramebuffer                (vk, device, *renderPass, m_imageExtent2D, DE_NULL));
+       const Unique<VkPipelineLayout>          pipelineLayout                  (makePipelineLayout             (vk, device));
+       const Unique<VkPipeline>                        pipeline                                (makeGraphicsPipeline   (vk, device, *pipelineLayout, *renderPass, *vertModule, *geomModule, DE_NULL, m_imageExtent2D, 0u));
+       const Unique<VkCommandPool>                     cmdPool                                 (createCommandPool              (vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
+       const Unique<VkCommandBuffer>           cmdBuffer                               (allocateCommandBuffer  (vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
+
+       const VkBufferCreateInfo                        tfBufCreateInfo                 = makeBufferCreateInfo(m_parameters.bufferSize, VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT);
+       const Move<VkBuffer>                            tfBuf                                   = createBuffer(vk, device, &tfBufCreateInfo);
+       const MovePtr<Allocation>                       tfBufAllocation                 = bindBuffer(vk, device, allocator, *tfBuf, MemoryRequirement::HostVisible);
+       const VkDeviceSize                                      tfBufBindingSize                = m_parameters.bufferSize;
+       const VkDeviceSize                                      tfBufBindingOffset              = 0ull;
+
+       const deUint32                                          queryCountersNumber             = 1u;
+       const deUint32                                          queryIndex                              = 0u;
+       const VkQueryPoolCreateInfo                     queryPoolCreateInfo             = makeQueryPoolCreateInfo(queryCountersNumber);
+       const Unique<VkQueryPool>                       queryPool                               (createQueryPool(vk, device, &queryPoolCreateInfo));
+
+       DE_ASSERT(numVerticesInBuffer * bytesPerVertex == m_parameters.bufferSize);
+
+       beginCommandBuffer(vk, *cmdBuffer);
+       {
+               vk.cmdResetQueryPool(*cmdBuffer, *queryPool, queryIndex, queryCountersNumber);
+
+               beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, makeRect2D(m_imageExtent2D));
+               {
+                       vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
+
+                       vk.cmdBindTransformFeedbackBuffersEXT(*cmdBuffer, 0u, 1u, &*tfBuf, &tfBufBindingOffset, &tfBufBindingSize);
+
+                       if (m_parameters.streamId == 0)
+                               vk.cmdBeginQuery(*cmdBuffer, *queryPool, queryIndex, 0u);
+                       else
+                               vk.cmdBeginQueryIndexedEXT(*cmdBuffer, *queryPool, queryIndex, 0u, m_parameters.streamId);
+                       {
+                               vk.cmdBeginTransformFeedbackEXT(*cmdBuffer, 0, 0, DE_NULL, DE_NULL);
+                               {
+                                       vk.cmdDraw(*cmdBuffer, numVerticesToWrite, 1u, 0u, 0u);
+                               }
+                               vk.cmdEndTransformFeedbackEXT(*cmdBuffer, 0, 0, DE_NULL, DE_NULL);
+                       }
+                       if (m_parameters.streamId == 0)
+                               vk.cmdEndQuery(*cmdBuffer, *queryPool, queryIndex);
+                       else
+                               vk.cmdEndQueryIndexedEXT(*cmdBuffer, *queryPool, queryIndex, m_parameters.streamId);
+               }
+               endRenderPass(vk, *cmdBuffer);
+       }
+       endCommandBuffer(vk, *cmdBuffer);
+       submitCommandsAndWait(vk, device, queue, *cmdBuffer);
+
+       {
+               const deUint32                  queryDataSize                   (static_cast<deUint32>(2u * sizeof(deUint32)));
+               std::vector<deUint8>    queryData                               (queryDataSize, 0u);
+               const deUint32*                 numPrimitivesWritten    = reinterpret_cast<deUint32*>(&queryData[0]);
+               const deUint32*                 numPrimitivesNeeded             = numPrimitivesWritten + 1;
+
+               vk.getQueryPoolResults(device, *queryPool, queryIndex, queryCountersNumber, queryDataSize, &queryData[0], queryDataSize, 0u);
+
+               if (*numPrimitivesWritten != numVerticesInBuffer)
+                       return tcu::TestStatus::fail("numPrimitivesWritten=" + de::toString(*numPrimitivesWritten) + " while expected " + de::toString(numVerticesInBuffer));
+
+               if (*numPrimitivesNeeded != numVerticesToWrite)
+                       return tcu::TestStatus::fail("numPrimitivesNeeded=" + de::toString(*numPrimitivesNeeded) + " while expected " + de::toString(numVerticesToWrite));
+       }
+
+       return tcu::TestStatus::pass("Pass");
+}
+
+class TransformFeedbackTestCase : public vkt::TestCase
+{
+public:
+                                               TransformFeedbackTestCase       (tcu::TestContext &context, const char *name, const char *description, const TestParameters& parameters);
+
+protected:
+       vkt::TestInstance*      createInstance                          (vkt::Context& context) const;
+       void                            initPrograms                            (SourceCollections& programCollection) const;
+
+       TestParameters          m_parameters;
+};
+
+TransformFeedbackTestCase::TransformFeedbackTestCase (tcu::TestContext &context, const char *name, const char *description, const TestParameters& parameters)
+       : TestCase              (context, name, description)
+       , m_parameters  (parameters)
+{
+}
+
+vkt::TestInstance*     TransformFeedbackTestCase::createInstance (vkt::Context& context) const
+{
+       if (m_parameters.testType == TEST_TYPE_BASIC)
+               return new TransformFeedbackBasicTestInstance(context, m_parameters);
+
+       if (m_parameters.testType == TEST_TYPE_RESUME)
+               return new TransformFeedbackResumeTestInstance(context, m_parameters);
+
+       if (m_parameters.testType == TEST_TYPE_STREAMS)
+               return new TransformFeedbackStreamsTestInstance(context, m_parameters);
+
+       if (m_parameters.testType == TEST_TYPE_STREAMS_POINTSIZE)
+               return new TransformFeedbackStreamsTestInstance(context, m_parameters);
+
+       if (m_parameters.testType == TEST_TYPE_STREAMS_CLIPDISTANCE)
+               return new TransformFeedbackStreamsTestInstance(context, m_parameters);
+
+       if (m_parameters.testType == TEST_TYPE_STREAMS_CULLDISTANCE)
+               return new TransformFeedbackStreamsTestInstance(context, m_parameters);
+
+       if (m_parameters.testType == TEST_TYPE_MULTISTREAMS)
+               return new TransformFeedbackMultistreamTestInstance(context, m_parameters);
+
+       if (m_parameters.testType == TEST_TYPE_DRAW_INDIRECT)
+               return new TransformFeedbackIndirectDrawTestInstance(context, m_parameters);
+
+       if (m_parameters.testType == TEST_TYPE_BACKWARD_DEPENDENCY)
+               return new TransformFeedbackBackwardDependencyTestInstance(context, m_parameters);
+
+       if (m_parameters.testType == TEST_TYPE_QUERY)
+               return new TransformFeedbackQueryTestInstance(context, m_parameters);
+
+       TCU_THROW(InternalError, "Specified test type not found");
+}
+
+void TransformFeedbackTestCase::initPrograms (SourceCollections& programCollection) const
+{
+       const bool requiresFullPipeline =  m_parameters.testType == TEST_TYPE_STREAMS
+                                                                       || m_parameters.testType == TEST_TYPE_STREAMS_POINTSIZE
+                                                                       || m_parameters.testType == TEST_TYPE_STREAMS_CULLDISTANCE
+                                                                       || m_parameters.testType == TEST_TYPE_STREAMS_CLIPDISTANCE;
+
+       if (m_parameters.testType == TEST_TYPE_BASIC || m_parameters.testType == TEST_TYPE_RESUME || m_parameters.testType == TEST_TYPE_BACKWARD_DEPENDENCY)
+       {
+               // Vertex shader
+               {
+                       std::ostringstream src;
+                       src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+                               << "\n"
+                               << "layout(push_constant) uniform pushConstants\n"
+                               << "{\n"
+                               << "    uint start;\n"
+                               << "} uInput;\n"
+                               << "\n"
+                               << "layout(xfb_buffer = 0, xfb_offset = 0, xfb_stride = 4, location = 0) out uint idx_out;\n"
+                               << "\n"
+                               << "void main(void)\n"
+                               << "{\n"
+                               << "    idx_out = uInput.start + gl_VertexIndex;\n"
+                               << "}\n";
+
+                       programCollection.glslSources.add("vert") << glu::VertexSource(src.str());
+               }
+
+               return;
+       }
+
+       if (m_parameters.testType == TEST_TYPE_MULTISTREAMS)
+       {
+               // vertex shader
+               {
+                       std::ostringstream src;
+                       src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+                               << "\n"
+                               << "void main(void)\n"
+                               << "{\n"
+                               << "}\n";
+
+                       programCollection.glslSources.add("vert") << glu::VertexSource(src.str());
+               }
+
+               // geometry shader
+               {
+                       const deUint32          s       = m_parameters.streamId;
+                       std::ostringstream      src;
+
+                       DE_ASSERT(s != 0);
+
+                       src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+                               << "\n"
+                               << "layout(points) in;\n"
+                               << "\n"
+                               << "layout(points, max_vertices = 32) out;\n"
+                               << "layout(stream = " << 0 << ", xfb_buffer = 0, xfb_offset = 0, xfb_stride = 16, location = 0) out vec4 out0;\n"
+                               << "layout(stream = " << s << ", xfb_buffer = 1, xfb_offset = 0, xfb_stride = 16, location = 1) out vec4 out1;\n"
+                               << "\n"
+                               << "const int counts[] = int[](1, 1, 2, 4, 8);\n"
+                               << "\n"
+                               << "void main(void)\n"
+                               << "{\n"
+                               << "    int c0 = 0;\n"
+                               << "    int c1 = 0;\n"
+                               << "\n"
+                               << "    // Start 1st buffer from point where 0th buffer ended\n"
+                               << "    for (int i = 0; i < counts.length(); i++)\n"
+                               << "        c1 = c1 + 4 * counts[i];\n"
+                               << "\n"
+                               << "    for (int i = 0; i < counts.length(); i++)\n"
+                               << "    {\n"
+                               << "        const int n0 = counts[i];\n"
+                               << "        const int n1 = counts[counts.length() - 1 - i];\n"
+                               << "\n"
+                               << "        for (int j = 0; j < n0; j++)\n"
+                               << "        {\n"
+                               << "            out0 = vec4(ivec4(c0, c0 + 1, c0 + 2, c0 + 3));\n"
+                               << "            c0 = c0 + 4;\n"
+                               << "            EmitStreamVertex(0);\n"
+                               << "            EndStreamPrimitive(0);\n"
+                               << "        }\n"
+                               << "\n"
+                               << "        for (int j = 0; j < n1; j++)\n"
+                               << "        {\n"
+                               << "            out1 = vec4(ivec4(c1, c1 + 1, c1 + 2, c1 + 3));\n"
+                               << "            c1 = c1 + 4;\n"
+                               << "            EmitStreamVertex(" << s << ");\n"
+                               << "            EndStreamPrimitive(" << s << ");\n"
+                               << "        }\n"
+                               << "    }\n"
+                               << "}\n";
+
+                       programCollection.glslSources.add("geom") << glu::GeometrySource(src.str());
+               }
+
+               return;
+       }
+
+       if (requiresFullPipeline)
+       {
+               // vertex shader
+               {
+                       std::ostringstream src;
+                       src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+                               << "\n"
+                               << "void main(void)\n"
+                               << "{\n"
+                               << "}\n";
+
+                       programCollection.glslSources.add("vert") << glu::VertexSource(src.str());
+               }
+
+               // geometry shader
+               {
+                       const deUint32          s                                       = m_parameters.streamId;
+                       const bool                      requirePoints           = (m_parameters.testType == TEST_TYPE_STREAMS_POINTSIZE || m_parameters.testType == TEST_TYPE_MULTISTREAMS);
+                       const std::string       outputPrimitiveType     = requirePoints ? "points" : "triangle_strip";
+                       const std::string       outputBuiltIn           = (m_parameters.testType == TEST_TYPE_STREAMS_POINTSIZE)    ? "    float gl_PointSize;\n"
+                                                                                                       : (m_parameters.testType == TEST_TYPE_STREAMS_CLIPDISTANCE) ? "    float gl_ClipDistance[];\n"
+                                                                                                       : (m_parameters.testType == TEST_TYPE_STREAMS_CULLDISTANCE) ? "    float gl_CullDistance[];\n"
+                                                                                                       : "";
+                       std::ostringstream      src;
+
+                       DE_ASSERT(s != 0);
+
+                       src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+                               << "\n"
+                               << "layout(points) in;\n"
+                               << "layout(" << outputPrimitiveType << ", max_vertices = 16) out;\n"
+                               << "layout(stream = " << s << ") out;\n"
+                               << "layout(location = 0) out vec4 color;\n"
+                               << "\n"
+                               << "layout(stream = " << s << ") out gl_PerVertex\n"
+                               << "{\n"
+                               << "    vec4 gl_Position;\n"
+                               << outputBuiltIn
+                               << "};\n"
+                               << "\n"
+                               << "void main(void)\n"
+                               << "{\n"
+                               << "    // Color constants\n"
+                               << "    vec4 g = vec4(0.0, 1.0, 0.0, 1.0);\n"
+                               << "    vec4 m = vec4(1.0, 0.0, 1.0, 1.0);\n"
+                               << "    // Coordinate constants: leftmost column\n"
+                               << "    vec4 a = vec4(-1.0,-1.0, 0.0, 1.0);\n"
+                               << "    vec4 b = vec4(-1.0, 0.0, 0.0, 1.0);\n"
+                               << "    vec4 c = vec4(-1.0, 1.0, 0.0, 1.0);\n"
+                               << "    // Coordinate constants: middle column\n"
+                               << "    vec4 i = vec4( 0.0,-1.0, 0.0, 1.0);\n"
+                               << "    vec4 j = vec4( 0.0, 0.0, 0.0, 1.0);\n"
+                               << "    vec4 k = vec4( 0.0, 1.0, 0.0, 1.0);\n"
+                               << "    // Coordinate constants: rightmost column\n"
+                               << "    vec4 x = vec4( 1.0,-1.0, 0.0, 1.0);\n"
+                               << "    vec4 y = vec4( 1.0, 0.0, 0.0, 1.0);\n"
+                               << "    vec4 z = vec4( 1.0, 1.0, 0.0, 1.0);\n"
+                               << "\n";
+
+                       if (m_parameters.testType == TEST_TYPE_STREAMS)
+                       {
+                               src << "    if (gl_PrimitiveIDIn == 0)\n"
+                                       << "    {\n"
+                                       << "        color = m; gl_Position = b; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = y; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = c; EmitStreamVertex(" << s << ");\n"
+                                       << "        EndStreamPrimitive(" << s << ");\n"
+                                       << "    }\n"
+                                       << "    else\n"
+                                       << "    {\n"
+                                       << "        color = m; gl_Position = y; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = c; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = z; EmitStreamVertex(" << s << ");\n"
+                                       << "        EndStreamPrimitive(" << s << ");\n"
+                                       << "    }\n";
+                       }
+
+                       if (m_parameters.testType == TEST_TYPE_STREAMS_POINTSIZE)
+                       {
+                               const std::string       pointSize       = "gl_PointSize = " + de::toString(m_parameters.pointSize) + ".0f";
+
+                               src << "    if (gl_PrimitiveIDIn == 0)\n"
+                                       << "    {\n"
+                                       << "        color = g; gl_Position = (a + j) / 2.0f; gl_PointSize = 1.0f; EmitStreamVertex(0);\n"
+                                       << "        EndStreamPrimitive(0);\n"
+                                       << "        color = m; gl_Position = (b + k) / 2.0f; gl_PointSize = 1.0f; EmitStreamVertex(" << s << ");\n"
+                                       << "        EndStreamPrimitive(" << s << ");\n"
+                                       << "    }\n"
+                                       << "    else\n"
+                                       << "    {\n"
+                                       << "        color = g; gl_Position = (j + x) / 2.0f; " << pointSize << "; EmitStreamVertex(0);\n"
+                                       << "        EndStreamPrimitive(0);\n"
+                                       << "        color = m; gl_Position = (k + y) / 2.0f; " << pointSize << "; EmitStreamVertex(" << s << ");\n"
+                                       << "        EndStreamPrimitive(" << s << ");\n"
+                                       << "    }\n";
+                       }
+
+                       if (m_parameters.testType == TEST_TYPE_STREAMS_CLIPDISTANCE)
+                       {
+                               src << "    if (gl_PrimitiveIDIn == 0)\n"
+                                       << "    {\n"
+                                       << "        color = m; gl_Position = b; gl_ClipDistance[0] = -1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = c; gl_ClipDistance[0] = -1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = y; gl_ClipDistance[0] =  1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        EndStreamPrimitive(" << s << ");\n"
+                                       << "    }\n"
+                                       << "    else\n"
+                                       << "    {\n"
+                                       << "        color = m; gl_Position = y; gl_ClipDistance[0] =  1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = c; gl_ClipDistance[0] = -1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = z; gl_ClipDistance[0] =  1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        EndStreamPrimitive(" << s << ");\n"
+                                       << "    }\n";
+                       }
+
+                       if (m_parameters.testType == TEST_TYPE_STREAMS_CULLDISTANCE)
+                       {
+                               src << "    if (gl_PrimitiveIDIn == 0)\n"
+                                       << "    {\n"
+                                       << "        color = m; gl_Position = b; gl_CullDistance[0] = -1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = c; gl_CullDistance[0] = -1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = j; gl_CullDistance[0] = -1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        EndStreamPrimitive(" << s << ");\n"
+                                       << "        color = m; gl_Position = j; gl_CullDistance[0] = -1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = c; gl_CullDistance[0] = -1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = k; gl_CullDistance[0] = -1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        EndStreamPrimitive(" << s << ");\n"
+                                       << "    }\n"
+                                       << "    else\n"
+                                       << "    {\n"
+                                       << "        color = m; gl_Position = j; gl_CullDistance[0] =  1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = k; gl_CullDistance[0] =  1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = y; gl_CullDistance[0] =  1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        EndStreamPrimitive(" << s << ");\n"
+                                       << "        color = m; gl_Position = y; gl_CullDistance[0] =  1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = k; gl_CullDistance[0] =  1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        color = m; gl_Position = z; gl_CullDistance[0] =  1.0; EmitStreamVertex(" << s << ");\n"
+                                       << "        EndStreamPrimitive(" << s << ");\n"
+                                       << "    }\n";
+                       }
+
+                       src << "}\n";
+
+                       programCollection.glslSources.add("geom") << glu::GeometrySource(src.str());
+               }
+
+               // Fragment shader
+               {
+                       std::ostringstream src;
+                       src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+                               << "\n"
+                               << "layout(location = 0) in  vec4 i_color;\n"
+                               << "layout(location = 0) out vec4 o_color;\n"
+                               << "\n"
+                               << "void main(void)\n"
+                               << "{\n"
+                               << "    o_color = i_color;\n"
+                               << "}\n";
+
+                       programCollection.glslSources.add("frag") << glu::FragmentSource(src.str());
+               }
+
+               return;
+       }
+
+       if (m_parameters.testType == TEST_TYPE_DRAW_INDIRECT)
+       {
+               // vertex shader
+               {
+                       std::ostringstream src;
+                       src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+                               << "\n"
+                               << "layout(location = 0) in vec4 in_position;\n"
+                               << "\n"
+                               << "void main(void)\n"
+                               << "{\n"
+                               << "    gl_Position = in_position;\n"
+                               << "}\n";
+
+                       programCollection.glslSources.add("vert") << glu::VertexSource(src.str());
+               }
+
+               // Fragment shader
+               {
+                       std::ostringstream src;
+                       src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+                               << "\n"
+                               << "layout(location = 0) out vec4 o_color;\n"
+                               << "\n"
+                               << "void main(void)\n"
+                               << "{\n"
+                               << "    o_color = vec4(1.0, 1.0, 1.0, 1.0);\n"
+                               << "}\n";
+
+                       programCollection.glslSources.add("frag") << glu::FragmentSource(src.str());
+               }
+
+               return;
+       }
+
+       if (m_parameters.testType == TEST_TYPE_QUERY)
+       {
+               // Vertex shader
+               {
+                       std::ostringstream src;
+                       src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+                               << "\n"
+                               << "layout(location = 0) out vec4 out0;\n"
+                               << "\n"
+                               << "void main(void)\n"
+                               << "{\n"
+                               << "    float n = 4.0 * float(gl_VertexIndex);\n"
+                               << "    out0 = vec4(n + 0.0, n + 1.0, n + 2.0, n + 3.0);\n"
+                               << "}\n";
+
+                       programCollection.glslSources.add("vert") << glu::VertexSource(src.str());
+               }
+
+               // geometry shader
+               {
+                       const deUint32          s       = m_parameters.streamId;
+                       std::ostringstream      src;
+
+                       src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+                               << "\n"
+                               << "layout(points) in;\n"
+                               << "layout(location = 0) in vec4 in0[];\n"
+                               << "\n"
+                               << "layout(points, max_vertices = 1) out;\n"
+                               << "layout(stream = " << s << ", xfb_buffer = 0, xfb_offset = 0, xfb_stride = 16, location = 0) out vec4 out0;\n"
+                               << "\n"
+                               << "void main(void)\n"
+                               << "{\n"
+                               << "    out0 = in0[0];\n"
+                               << "    EmitStreamVertex(" << s << ");\n"
+                               << "    EndStreamPrimitive(" << s << ");\n"
+                               << "}\n";
+
+                       programCollection.glslSources.add("geom") << glu::GeometrySource(src.str());
+               }
+
+               return;
+       }
+
+       DE_ASSERT(0 && "Unknown test");
+}
+
+void createTransformFeedbackSimpleTests (tcu::TestCaseGroup* group)
+{
+       {
+               const deUint32          bufferCounts[]  = { 1, 2, 4, 8 };
+               const deUint32          bufferSizes[]   = { 256, 512, 128*1024 };
+               const TestType          testTypes[]             = { TEST_TYPE_BASIC, TEST_TYPE_RESUME };
+               const std::string       testTypeNames[] = { "basic", "resume" };
+
+               for (deUint32 testTypesNdx = 0; testTypesNdx < DE_LENGTH_OF_ARRAY(testTypes); ++testTypesNdx)
+               {
+                       const TestType          testType        = testTypes[testTypesNdx];
+                       const std::string       testName        = testTypeNames[testTypesNdx];
+
+                       for (deUint32 bufferCountsNdx = 0; bufferCountsNdx < DE_LENGTH_OF_ARRAY(bufferCounts); ++bufferCountsNdx)
+                       {
+                               const deUint32  partCount       = bufferCounts[bufferCountsNdx];
+
+                               for (deUint32 bufferSizesNdx = 0; bufferSizesNdx < DE_LENGTH_OF_ARRAY(bufferSizes); ++bufferSizesNdx)
+                               {
+                                       const deUint32                  bufferSize      = bufferSizes[bufferSizesNdx];
+                                       const TestParameters    parameters      = { testType, bufferSize, partCount, 0u, 0u, 0u };
+
+                                       group->addChild(new TransformFeedbackTestCase(group->getTestContext(), (testName + "_" + de::toString(partCount) + "_" + de::toString(bufferSize)).c_str(), "Simple Transform Feedback test", parameters));
+                               }
+                       }
+               }
+       }
+
+       {
+               const deUint32          vertexStrides[] = { 4, 61, 127, 251, 509 };
+               const TestType          testType                = TEST_TYPE_DRAW_INDIRECT;
+               const std::string       testName                = "draw_indirect";
+
+               for (deUint32 vertexStridesNdx = 0; vertexStridesNdx < DE_LENGTH_OF_ARRAY(vertexStrides); ++vertexStridesNdx)
+               {
+                       const deUint32                  vertexStride    = static_cast<deUint32>(sizeof(deUint32) * vertexStrides[vertexStridesNdx]);
+                       const TestParameters    parameters              = { testType, 0u, 0u, 0u, 0u, vertexStride };
+
+                       group->addChild(new TransformFeedbackTestCase(group->getTestContext(), (testName + "_" + de::toString(vertexStride)).c_str(), "Rendering tests with various strides", parameters));
+               }
+       }
+
+       {
+               const TestType                  testType        = TEST_TYPE_BACKWARD_DEPENDENCY;
+               const std::string               testName        = "backward_dependency";
+               const TestParameters    parameters      = { testType, 512u, 2u, 0u, 0u, 0u };
+
+               group->addChild(new TransformFeedbackTestCase(group->getTestContext(), testName.c_str(), "Rendering test checks backward pipeline dependency", parameters));
+       }
+
+       {
+               const deUint32          usedStreamId[]  = { 0, 1, 3, 6, 14 };
+               const deUint32          vertexCount[]   = { 4, 61, 127, 251, 509 };
+               const TestType          testType                = TEST_TYPE_QUERY;
+               const std::string       testName                = "query";
+
+               for (deUint32 streamCountsNdx = 0; streamCountsNdx < DE_LENGTH_OF_ARRAY(usedStreamId); ++streamCountsNdx)
+               {
+                       const deUint32  streamId        = usedStreamId[streamCountsNdx];
+
+                       for (deUint32 vertexCountNdx = 0; vertexCountNdx < DE_LENGTH_OF_ARRAY(vertexCount); ++vertexCountNdx)
+                       {
+                               const deUint32                  bytesPerVertex  = static_cast<deUint32>(4 * sizeof(float));
+                               const deUint32                  bufferSize              = bytesPerVertex * vertexCount[vertexCountNdx];
+                               const TestParameters    parameters              = { testType, bufferSize, 0u, streamId, 0u, 0u };
+                               const std::string               fullTestName    = testName + "_" + de::toString(streamId) + "_" + de::toString(vertexCount[vertexCountNdx]);
+
+                               group->addChild(new TransformFeedbackTestCase(group->getTestContext(), fullTestName.c_str(), "Written primitives query test", parameters));
+                       }
+               }
+       }
+}
+
+void createTransformFeedbackStreamsSimpleTests (tcu::TestCaseGroup* group)
+{
+       const deUint32          usedStreamId[]  = { 1, 3, 6, 14 };
+       const TestType          testTypes[]             = { TEST_TYPE_STREAMS, TEST_TYPE_STREAMS_POINTSIZE, TEST_TYPE_STREAMS_CLIPDISTANCE, TEST_TYPE_STREAMS_CULLDISTANCE };
+       const std::string       testTypeNames[] = { "streams",         "streams_pointsize",         "streams_clipdistance",         "streams_culldistance"         };
+
+       for (deUint32 testTypesNdx = 0; testTypesNdx < DE_LENGTH_OF_ARRAY(testTypes); ++testTypesNdx)
+       {
+               const TestType          testType        = testTypes[testTypesNdx];
+               const std::string       testName        = testTypeNames[testTypesNdx];
+               const deUint32          pointSize       = (testType == TEST_TYPE_STREAMS_POINTSIZE) ? 2u : 0u;
+
+               for (deUint32 streamCountsNdx = 0; streamCountsNdx < DE_LENGTH_OF_ARRAY(usedStreamId); ++streamCountsNdx)
+               {
+                       const deUint32                  streamId        = usedStreamId[streamCountsNdx];
+                       const TestParameters    parameters      = { testType, 0u, 0u, streamId, pointSize, 0u };
+
+                       group->addChild(new TransformFeedbackTestCase(group->getTestContext(), (testName + "_" + de::toString(streamId)).c_str(), "Streams usage test", parameters));
+               }
+       }
+
+       {
+               const TestType          testType        = TEST_TYPE_MULTISTREAMS;
+               const std::string       testName        = "multistreams";
+
+               for (deUint32 bufferCountsNdx = 0; bufferCountsNdx < DE_LENGTH_OF_ARRAY(usedStreamId); ++bufferCountsNdx)
+               {
+                       const deUint32                  streamId                        = usedStreamId[bufferCountsNdx];
+                       const deUint32                  streamsUsed                     = 2u;
+                       const deUint32                  maxBytesPerVertex       = 256u;
+                       const TestParameters    parameters                      = { testType, maxBytesPerVertex * streamsUsed, streamsUsed, streamId, 0u, 0u };
+
+                       group->addChild(new TransformFeedbackTestCase(group->getTestContext(), (testName + "_" + de::toString(streamId)).c_str(), "Simultaneous multiple streams usage test", parameters));
+               }
+       }
+}
+
+void createTransformFeedbackAndStreamsSimpleTests (tcu::TestCaseGroup* group)
+{
+       createTransformFeedbackSimpleTests(group);
+       createTransformFeedbackStreamsSimpleTests(group);
+}
+} // anonymous
+
+tcu::TestCaseGroup* createTransformFeedbackSimpleTests (tcu::TestContext& testCtx)
+{
+       return createTestGroup(testCtx, "simple", "Transform Feedback Simple tests", createTransformFeedbackAndStreamsSimpleTests);
+}
+
+} // TransformFeedback
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackSimpleTests.hpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackSimpleTests.hpp
new file mode 100644 (file)
index 0000000..ce3a186
--- /dev/null
@@ -0,0 +1,39 @@
+#ifndef _VKTTRANSFORMFEEDBACKSIMPLETESTS_HPP
+#define _VKTTRANSFORMFEEDBACKSIMPLETESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2018 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan Transform Feedback Simple Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace TransformFeedback
+{
+
+tcu::TestCaseGroup* createTransformFeedbackSimpleTests (tcu::TestContext& testCtx);
+
+} // TransformFeedback
+} // vkt
+
+#endif // _VKTTRANSFORMFEEDBACKSIMPLETESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackTests.cpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackTests.cpp
new file mode 100644 (file)
index 0000000..98d0600
--- /dev/null
@@ -0,0 +1,47 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2018 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan Transform Feedback Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTransformFeedbackTests.hpp"
+#include "vktTransformFeedbackSimpleTests.hpp"
+#include "vktTransformFeedbackFuzzLayoutTests.hpp"
+#include "vktTestGroupUtil.hpp"
+#include "vktTestCase.hpp"
+
+
+namespace vkt
+{
+namespace TransformFeedback
+{
+
+tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx)
+{
+       de::MovePtr<tcu::TestCaseGroup> transformFeedbackGroup (new tcu::TestCaseGroup(testCtx, "transform_feedback", "Transform Feedback tests"));
+
+       transformFeedbackGroup->addChild(createTransformFeedbackSimpleTests(testCtx));
+       transformFeedbackGroup->addChild(createTransformFeedbackFuzzLayoutTests(testCtx));
+
+       return transformFeedbackGroup.release();
+}
+
+} // TransformFeedback
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackTests.hpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackTests.hpp
new file mode 100644 (file)
index 0000000..277c535
--- /dev/null
@@ -0,0 +1,39 @@
+#ifndef _VKTTRANSFORMFEEDBACKTESTS_HPP
+#define _VKTTRANSFORMFEEDBACKTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2018 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan Transform Feedback Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace TransformFeedback
+{
+
+tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx);
+
+} // TransformFeedback
+} // vkt
+
+#endif // _VKTTRANSFORMFEEDBACKTESTS_HPP
index ab17ca9..e31b5b1 100644 (file)
@@ -328,6 +328,7 @@ public:
        VkPhysicalDeviceImagelessFramebufferFeaturesKHR         imagelessFramebufferFeatures;
        VkPhysicalDeviceCooperativeMatrixFeaturesNV                     cooperativeMatrixFeatures;
        VkPhysicalDeviceHostQueryResetFeaturesEXT                       hostQueryResetFeatures;
+       VkPhysicalDeviceTransformFeedbackFeaturesEXT            transformFeedbackFeatures;
        VkPhysicalDevicePerformanceCounterFeaturesKHR           performanceCounterFeatures;
 
        DeviceFeatures (const InstanceInterface&        vki,
@@ -357,6 +358,7 @@ public:
                deMemset(&imagelessFramebufferFeatures, 0, sizeof(imagelessFramebufferFeatures));
                deMemset(&cooperativeMatrixFeatures, 0, sizeof(cooperativeMatrixFeatures));
                deMemset(&hostQueryResetFeatures, 0, sizeof(hostQueryResetFeatures));
+               deMemset(&transformFeedbackFeatures, 0, sizeof(transformFeedbackFeatures));
                deMemset(&performanceCounterFeatures, 0, sizeof(performanceCounterFeatures));
 
                coreFeatures.sType                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
@@ -380,6 +382,7 @@ public:
                imagelessFramebufferFeatures.sType              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR;
                cooperativeMatrixFeatures.sType                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV;
                hostQueryResetFeatures.sType                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT;
+               transformFeedbackFeatures.sType                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT;
                performanceCounterFeatures.sType                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTER_FEATURES_KHR;
 
                vector<VkExtensionProperties> deviceExtensionProperties =
@@ -494,6 +497,11 @@ public:
                                *nextPtr        = &hostQueryResetFeatures;
                                nextPtr         = &hostQueryResetFeatures.pNext;
                        }
+                       if (de::contains(deviceExtensions.begin(), deviceExtensions.end(), "VK_EXT_transform_feedback"))
+                       {
+                               *nextPtr        = &transformFeedbackFeatures;
+                               nextPtr         = &transformFeedbackFeatures.pNext;
+                       }
 
                        vki.getPhysicalDeviceFeatures2(physicalDevice, &coreFeatures);
                }
@@ -543,7 +551,9 @@ public:
        const VkPhysicalDeviceImagelessFramebufferFeaturesKHR&  getImagelessFramebufferFeatures         (void) const    { return m_deviceFeatures.imagelessFramebufferFeatures;         }
        const VkPhysicalDeviceCooperativeMatrixFeaturesNV&              getCooperativeMatrixFeatures            (void) const    { return m_deviceFeatures.cooperativeMatrixFeatures;    }
        const VkPhysicalDeviceHostQueryResetFeaturesEXT&                getHostQueryResetFeatures                       (void) const    { return m_deviceFeatures.hostQueryResetFeatures;                       }
+       const VkPhysicalDeviceTransformFeedbackFeaturesEXT&             getTransformFeedbackFeatures            (void) const    { return m_deviceFeatures.transformFeedbackFeatures;            }
        const VkPhysicalDevicePerformanceCounterFeaturesKHR&    getPerformanceCounterFeatures           (void) const    { return m_deviceFeatures.performanceCounterFeatures;           }
+
        VkDevice                                                                                                getDevice                                                       (void) const    { return *m_device;                                                                                     }
        const DeviceInterface&                                                                  getDeviceInterface                                      (void) const    { return m_deviceInterface;                                                                     }
        const VkPhysicalDeviceProperties&                                               getDeviceProperties                                     (void) const    { return m_deviceProperties;                                                            }
@@ -699,6 +709,8 @@ const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV&
                                                                                Context::getCooperativeMatrixFeatures   (void) const { return m_device->getCooperativeMatrixFeatures(); }
 const vk::VkPhysicalDeviceHostQueryResetFeaturesEXT&
                                                                                Context::getHostQueryResetFeatures              (void) const { return m_device->getHostQueryResetFeatures();    }
+const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT&
+                                                                               Context::getTransformFeedbackFeatures   (void) const { return m_device->getTransformFeedbackFeatures(); }
 const vk::VkPhysicalDevicePerformanceCounterFeaturesKHR&
                                                                                Context::getPerformanceCounterFeatures  (void) const { return m_device->getPerformanceCounterFeatures();        }
 const vk::VkPhysicalDeviceProperties&  Context::getDeviceProperties                    (void) const { return m_device->getDeviceProperties();                  }
index 471cbf9..eb10374 100644 (file)
@@ -102,6 +102,8 @@ public:
                                                                                                getCooperativeMatrixFeatures    (void) const;
        const vk::VkPhysicalDeviceHostQueryResetFeaturesEXT&
                                                                                                getHostQueryResetFeatures               (void) const;
+       const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT&
+                                                                                               getTransformFeedbackFeatures    (void) const;
        const vk::VkPhysicalDevicePerformanceCounterFeaturesKHR&
                                                                                                getPerformanceCounterFeatures   (void) const;
        const vk::VkPhysicalDeviceProperties&           getDeviceProperties                             (void) const;
index f21eb2a..b3ba3f0 100644 (file)
@@ -91,6 +91,7 @@
 #include "vktAmberExampleTests.hpp"
 #include "vktAmberGraphicsFuzzTests.hpp"
 #include "vktImagelessFramebufferTests.hpp"
+#include "vktTransformFeedbackTests.hpp"
 
 #include <vector>
 #include <sstream>
@@ -502,6 +503,7 @@ void TestPackage::init (void)
        addChild(cts_amber::createExampleTests          (m_testCtx));
        addChild(cts_amber::createGraphicsFuzzTests     (m_testCtx));
        addChild(imageless::createTests                         (m_testCtx));
+       addChild(TransformFeedback::createTests         (m_testCtx));
 }
 
 } // vkt
index 3834513..9181586 100644 (file)
@@ -415953,3 +415953,2246 @@ dEQP-VK.imageless_framebuffer.depth_stencil
 dEQP-VK.imageless_framebuffer.color_resolve
 dEQP-VK.imageless_framebuffer.depth_stencil_resolve
 dEQP-VK.imageless_framebuffer.multisubpass
+dEQP-VK.transform_feedback.simple.basic_1_256
+dEQP-VK.transform_feedback.simple.basic_1_512
+dEQP-VK.transform_feedback.simple.basic_1_131072
+dEQP-VK.transform_feedback.simple.basic_2_256
+dEQP-VK.transform_feedback.simple.basic_2_512
+dEQP-VK.transform_feedback.simple.basic_2_131072
+dEQP-VK.transform_feedback.simple.basic_4_256
+dEQP-VK.transform_feedback.simple.basic_4_512
+dEQP-VK.transform_feedback.simple.basic_4_131072
+dEQP-VK.transform_feedback.simple.basic_8_256
+dEQP-VK.transform_feedback.simple.basic_8_512
+dEQP-VK.transform_feedback.simple.basic_8_131072
+dEQP-VK.transform_feedback.simple.resume_1_256
+dEQP-VK.transform_feedback.simple.resume_1_512
+dEQP-VK.transform_feedback.simple.resume_1_131072
+dEQP-VK.transform_feedback.simple.resume_2_256
+dEQP-VK.transform_feedback.simple.resume_2_512
+dEQP-VK.transform_feedback.simple.resume_2_131072
+dEQP-VK.transform_feedback.simple.resume_4_256
+dEQP-VK.transform_feedback.simple.resume_4_512
+dEQP-VK.transform_feedback.simple.resume_4_131072
+dEQP-VK.transform_feedback.simple.resume_8_256
+dEQP-VK.transform_feedback.simple.resume_8_512
+dEQP-VK.transform_feedback.simple.resume_8_131072
+dEQP-VK.transform_feedback.simple.draw_indirect_16
+dEQP-VK.transform_feedback.simple.draw_indirect_244
+dEQP-VK.transform_feedback.simple.draw_indirect_508
+dEQP-VK.transform_feedback.simple.draw_indirect_1004
+dEQP-VK.transform_feedback.simple.draw_indirect_2036
+dEQP-VK.transform_feedback.simple.backward_dependency
+dEQP-VK.transform_feedback.simple.query_0_4
+dEQP-VK.transform_feedback.simple.query_0_61
+dEQP-VK.transform_feedback.simple.query_0_127
+dEQP-VK.transform_feedback.simple.query_0_251
+dEQP-VK.transform_feedback.simple.query_0_509
+dEQP-VK.transform_feedback.simple.query_1_4
+dEQP-VK.transform_feedback.simple.query_1_61
+dEQP-VK.transform_feedback.simple.query_1_127
+dEQP-VK.transform_feedback.simple.query_1_251
+dEQP-VK.transform_feedback.simple.query_1_509
+dEQP-VK.transform_feedback.simple.query_3_4
+dEQP-VK.transform_feedback.simple.query_3_61
+dEQP-VK.transform_feedback.simple.query_3_127
+dEQP-VK.transform_feedback.simple.query_3_251
+dEQP-VK.transform_feedback.simple.query_3_509
+dEQP-VK.transform_feedback.simple.query_6_4
+dEQP-VK.transform_feedback.simple.query_6_61
+dEQP-VK.transform_feedback.simple.query_6_127
+dEQP-VK.transform_feedback.simple.query_6_251
+dEQP-VK.transform_feedback.simple.query_6_509
+dEQP-VK.transform_feedback.simple.query_14_4
+dEQP-VK.transform_feedback.simple.query_14_61
+dEQP-VK.transform_feedback.simple.query_14_127
+dEQP-VK.transform_feedback.simple.query_14_251
+dEQP-VK.transform_feedback.simple.query_14_509
+dEQP-VK.transform_feedback.simple.streams_1
+dEQP-VK.transform_feedback.simple.streams_3
+dEQP-VK.transform_feedback.simple.streams_6
+dEQP-VK.transform_feedback.simple.streams_14
+dEQP-VK.transform_feedback.simple.streams_pointsize_1
+dEQP-VK.transform_feedback.simple.streams_pointsize_3
+dEQP-VK.transform_feedback.simple.streams_pointsize_6
+dEQP-VK.transform_feedback.simple.streams_pointsize_14
+dEQP-VK.transform_feedback.simple.streams_clipdistance_1
+dEQP-VK.transform_feedback.simple.streams_clipdistance_3
+dEQP-VK.transform_feedback.simple.streams_clipdistance_6
+dEQP-VK.transform_feedback.simple.streams_clipdistance_14
+dEQP-VK.transform_feedback.simple.streams_culldistance_1
+dEQP-VK.transform_feedback.simple.streams_culldistance_3
+dEQP-VK.transform_feedback.simple.streams_culldistance_6
+dEQP-VK.transform_feedback.simple.streams_culldistance_14
+dEQP-VK.transform_feedback.simple.multistreams_1
+dEQP-VK.transform_feedback.simple.multistreams_3
+dEQP-VK.transform_feedback.simple.multistreams_6
+dEQP-VK.transform_feedback.simple.multistreams_14
+dEQP-VK.transform_feedback.fuzz.2_level_array.float.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.float.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.int.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.int.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.uint.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.uint.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.double.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.double.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.float.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.float.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.int.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.int.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.uint.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.uint.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.double.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.double.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_struct_array.std_vertex
+dEQP-VK.transform_feedback.fuzz.2_level_struct_array.std_geometry
+dEQP-VK.transform_feedback.fuzz.2_level_struct_array.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.2_level_struct_array.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.double.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.double.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.float.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.float.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.int.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.int.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uint.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uint.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.float.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.float.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.int.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.int.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uint.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uint.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.float.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.float.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.int.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.int.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uint.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uint.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.float.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.float.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.int.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.int.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uint.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uint.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.double.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.double.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_struct.std_vertex
+dEQP-VK.transform_feedback.fuzz.single_struct.std_geometry
+dEQP-VK.transform_feedback.fuzz.single_struct.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.single_struct.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.single_struct_array.std_vertex
+dEQP-VK.transform_feedback.fuzz.single_struct_array.std_geometry
+dEQP-VK.transform_feedback.fuzz.single_struct_array.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.single_struct_array.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.single_nested_struct.std_vertex
+dEQP-VK.transform_feedback.fuzz.single_nested_struct.std_geometry
+dEQP-VK.transform_feedback.fuzz.single_nested_struct.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.single_nested_struct.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.single_nested_struct_array.std_vertex
+dEQP-VK.transform_feedback.fuzz.single_nested_struct_array.std_geometry
+dEQP-VK.transform_feedback.fuzz.single_nested_struct_array.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.single_nested_struct_array.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.float.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.float.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.int.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.int.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uint.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uint.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.double.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.double.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.multi_basic_types.std_vertex
+dEQP-VK.transform_feedback.fuzz.multi_basic_types.std_geometry
+dEQP-VK.transform_feedback.fuzz.multi_basic_types.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.multi_basic_types.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.multi_nested_struct.std_vertex
+dEQP-VK.transform_feedback.fuzz.multi_nested_struct.std_geometry
+dEQP-VK.transform_feedback.fuzz.multi_nested_struct.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.multi_nested_struct.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers000_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers000_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers000_instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers000_instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers010_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers010_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers010_instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers010_instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers110_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers110_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers110_instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers110_instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.50
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.51
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.52
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.53
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.54
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.55
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.56
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.57
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.58
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.59
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.60
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.61
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.62
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.63
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.64
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.65
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.66
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.67
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.68
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.69
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.70
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.71
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.72
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.73
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.74
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.75
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.76
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.77
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.78
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.79
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.80
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.81
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.82
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.83
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.84
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.85
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.86
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.87
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.88
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.89
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.90
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.91
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.92
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.93
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.94
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.95
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.96
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.97
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.98
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.99
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.50
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.51
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.52
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.53
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.54
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.55
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.56
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.57
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.58
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.59
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.60
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.61
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.62
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.63
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.64
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.65
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.66
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.67
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.68
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.69
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.70
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.71
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.72
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.73
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.74
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.75
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.76
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.77
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.78
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.79
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.80
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.81
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.82
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.83
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.84
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.85
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.86
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.87
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.88
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.89
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.90
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.91
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.92
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.93
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.94
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.95
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.96
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.97
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.98
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.99
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.50
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.51
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.52
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.53
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.54
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.55
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.56
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.57
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.58
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.59
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.60
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.61
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.62
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.63
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.64
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.65
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.66
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.67
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.68
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.69
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.70
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.71
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.72
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.73
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.74
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.75
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.76
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.77
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.78
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.79
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.80
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.81
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.82
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.83
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.84
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.85
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.86
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.87
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.88
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.89
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.90
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.91
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.92
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.93
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.94
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.95
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.96
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.97
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.98
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.99
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.50
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.51
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.52
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.53
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.54
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.55
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.56
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.57
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.58
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.59
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.60
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.61
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.62
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.63
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.64
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.65
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.66
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.67
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.68
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.69
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.70
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.71
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.72
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.73
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.74
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.75
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.76
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.77
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.78
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.79
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.80
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.81
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.82
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.83
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.84
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.85
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.86
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.87
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.88
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.89
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.90
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.91
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.92
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.93
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.94
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.95
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.96
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.97
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.98
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.99
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.50
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.51
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.52
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.53
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.54
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.55
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.56
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.57
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.58
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.59
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.60
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.61
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.62
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.63
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.64
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.65
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.66
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.67
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.68
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.69
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.70
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.71
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.72
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.73
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.74
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.75
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.76
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.77
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.78
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.79
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.80
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.81
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.82
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.83
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.84
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.85
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.86
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.87
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.88
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.89
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.90
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.91
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.92
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.93
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.94
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.95
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.96
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.97
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.98
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.99
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.50
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.51
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.52
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.53
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.54
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.55
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.56
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.57
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.58
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.59
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.60
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.61
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.62
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.63
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.64
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.65
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.66
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.67
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.68
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.69
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.70
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.71
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.72
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.73
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.74
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.75
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.76
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.77
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.78
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.79
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.80
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.81
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.82
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.83
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.84
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.85
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.86
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.87
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.88
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.89
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.90
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.91
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.92
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.93
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.94
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.95
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.96
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.97
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.98
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.99
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.50
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.51
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.52
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.53
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.54
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.55
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.56
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.57
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.58
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.59
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.60
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.61
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.62
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.63
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.64
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.65
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.66
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.67
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.68
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.69
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.70
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.71
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.72
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.73
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.74
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.75
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.76
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.77
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.78
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.79
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.80
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.81
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.82
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.83
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.84
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.85
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.86
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.87
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.88
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.89
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.90
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.91
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.92
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.93
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.94
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.95
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.96
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.97
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.98
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.99
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.50
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.51
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.52
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.53
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.54
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.55
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.56
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.57
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.58
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.59
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.60
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.61
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.62
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.63
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.64
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.65
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.66
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.67
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.68
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.69
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.70
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.71
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.72
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.73
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.74
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.75
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.76
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.77
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.78
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.79
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.80
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.81
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.82
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.83
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.84
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.85
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.86
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.87
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.88
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.89
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.90
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.91
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.92
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.93
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.94
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.95
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.96
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.97
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.98
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.99
index 210753d..05b533f 100644 (file)
@@ -415914,3 +415914,2246 @@ dEQP-VK.imageless_framebuffer.depth_stencil
 dEQP-VK.imageless_framebuffer.color_resolve
 dEQP-VK.imageless_framebuffer.depth_stencil_resolve
 dEQP-VK.imageless_framebuffer.multisubpass
+dEQP-VK.transform_feedback.simple.basic_1_256
+dEQP-VK.transform_feedback.simple.basic_1_512
+dEQP-VK.transform_feedback.simple.basic_1_131072
+dEQP-VK.transform_feedback.simple.basic_2_256
+dEQP-VK.transform_feedback.simple.basic_2_512
+dEQP-VK.transform_feedback.simple.basic_2_131072
+dEQP-VK.transform_feedback.simple.basic_4_256
+dEQP-VK.transform_feedback.simple.basic_4_512
+dEQP-VK.transform_feedback.simple.basic_4_131072
+dEQP-VK.transform_feedback.simple.basic_8_256
+dEQP-VK.transform_feedback.simple.basic_8_512
+dEQP-VK.transform_feedback.simple.basic_8_131072
+dEQP-VK.transform_feedback.simple.resume_1_256
+dEQP-VK.transform_feedback.simple.resume_1_512
+dEQP-VK.transform_feedback.simple.resume_1_131072
+dEQP-VK.transform_feedback.simple.resume_2_256
+dEQP-VK.transform_feedback.simple.resume_2_512
+dEQP-VK.transform_feedback.simple.resume_2_131072
+dEQP-VK.transform_feedback.simple.resume_4_256
+dEQP-VK.transform_feedback.simple.resume_4_512
+dEQP-VK.transform_feedback.simple.resume_4_131072
+dEQP-VK.transform_feedback.simple.resume_8_256
+dEQP-VK.transform_feedback.simple.resume_8_512
+dEQP-VK.transform_feedback.simple.resume_8_131072
+dEQP-VK.transform_feedback.simple.draw_indirect_16
+dEQP-VK.transform_feedback.simple.draw_indirect_244
+dEQP-VK.transform_feedback.simple.draw_indirect_508
+dEQP-VK.transform_feedback.simple.draw_indirect_1004
+dEQP-VK.transform_feedback.simple.draw_indirect_2036
+dEQP-VK.transform_feedback.simple.backward_dependency
+dEQP-VK.transform_feedback.simple.query_0_4
+dEQP-VK.transform_feedback.simple.query_0_61
+dEQP-VK.transform_feedback.simple.query_0_127
+dEQP-VK.transform_feedback.simple.query_0_251
+dEQP-VK.transform_feedback.simple.query_0_509
+dEQP-VK.transform_feedback.simple.query_1_4
+dEQP-VK.transform_feedback.simple.query_1_61
+dEQP-VK.transform_feedback.simple.query_1_127
+dEQP-VK.transform_feedback.simple.query_1_251
+dEQP-VK.transform_feedback.simple.query_1_509
+dEQP-VK.transform_feedback.simple.query_3_4
+dEQP-VK.transform_feedback.simple.query_3_61
+dEQP-VK.transform_feedback.simple.query_3_127
+dEQP-VK.transform_feedback.simple.query_3_251
+dEQP-VK.transform_feedback.simple.query_3_509
+dEQP-VK.transform_feedback.simple.query_6_4
+dEQP-VK.transform_feedback.simple.query_6_61
+dEQP-VK.transform_feedback.simple.query_6_127
+dEQP-VK.transform_feedback.simple.query_6_251
+dEQP-VK.transform_feedback.simple.query_6_509
+dEQP-VK.transform_feedback.simple.query_14_4
+dEQP-VK.transform_feedback.simple.query_14_61
+dEQP-VK.transform_feedback.simple.query_14_127
+dEQP-VK.transform_feedback.simple.query_14_251
+dEQP-VK.transform_feedback.simple.query_14_509
+dEQP-VK.transform_feedback.simple.streams_1
+dEQP-VK.transform_feedback.simple.streams_3
+dEQP-VK.transform_feedback.simple.streams_6
+dEQP-VK.transform_feedback.simple.streams_14
+dEQP-VK.transform_feedback.simple.streams_pointsize_1
+dEQP-VK.transform_feedback.simple.streams_pointsize_3
+dEQP-VK.transform_feedback.simple.streams_pointsize_6
+dEQP-VK.transform_feedback.simple.streams_pointsize_14
+dEQP-VK.transform_feedback.simple.streams_clipdistance_1
+dEQP-VK.transform_feedback.simple.streams_clipdistance_3
+dEQP-VK.transform_feedback.simple.streams_clipdistance_6
+dEQP-VK.transform_feedback.simple.streams_clipdistance_14
+dEQP-VK.transform_feedback.simple.streams_culldistance_1
+dEQP-VK.transform_feedback.simple.streams_culldistance_3
+dEQP-VK.transform_feedback.simple.streams_culldistance_6
+dEQP-VK.transform_feedback.simple.streams_culldistance_14
+dEQP-VK.transform_feedback.simple.multistreams_1
+dEQP-VK.transform_feedback.simple.multistreams_3
+dEQP-VK.transform_feedback.simple.multistreams_6
+dEQP-VK.transform_feedback.simple.multistreams_14
+dEQP-VK.transform_feedback.fuzz.2_level_array.float.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.float.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.int.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.int.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.uint.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.uint.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.double.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.double.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.2_level_array.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.float.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.float.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.int.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.int.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.uint.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.uint.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.double.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.double.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.3_level_array.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.2_level_struct_array.std_vertex
+dEQP-VK.transform_feedback.fuzz.2_level_struct_array.std_geometry
+dEQP-VK.transform_feedback.fuzz.2_level_struct_array.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.2_level_struct_array.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.double.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.double.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.float.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.float.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.int.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.int.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uint.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uint.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.lowp.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.float.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.float.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.int.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.int.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uint.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uint.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.mediump.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.float.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.float.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.int.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.int.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uint.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uint.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_type.highp.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.float.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.float.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.int.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.int.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uint.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uint.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.double.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.double.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.single_basic_array.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.single_struct.std_vertex
+dEQP-VK.transform_feedback.fuzz.single_struct.std_geometry
+dEQP-VK.transform_feedback.fuzz.single_struct.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.single_struct.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.single_struct_array.std_vertex
+dEQP-VK.transform_feedback.fuzz.single_struct_array.std_geometry
+dEQP-VK.transform_feedback.fuzz.single_struct_array.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.single_struct_array.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.single_nested_struct.std_vertex
+dEQP-VK.transform_feedback.fuzz.single_nested_struct.std_geometry
+dEQP-VK.transform_feedback.fuzz.single_nested_struct.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.single_nested_struct.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.single_nested_struct_array.std_vertex
+dEQP-VK.transform_feedback.fuzz.single_nested_struct_array.std_geometry
+dEQP-VK.transform_feedback.fuzz.single_nested_struct_array.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.single_nested_struct_array.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.float.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.float.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.vec4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.int.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.int.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.ivec4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uint.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uint.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.uvec4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.mat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.double.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.double.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dvec4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2x3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2x3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2x4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat2x4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3x2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3x2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3x4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat3x4.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4x2.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4x2.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4x3.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4x3.geometry
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4.vertex
+dEQP-VK.transform_feedback.fuzz.instance_array_basic_type.dmat4.geometry
+dEQP-VK.transform_feedback.fuzz.multi_basic_types.std_vertex
+dEQP-VK.transform_feedback.fuzz.multi_basic_types.std_geometry
+dEQP-VK.transform_feedback.fuzz.multi_basic_types.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.multi_basic_types.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.multi_nested_struct.std_vertex
+dEQP-VK.transform_feedback.fuzz.multi_nested_struct.std_geometry
+dEQP-VK.transform_feedback.fuzz.multi_nested_struct.instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.multi_nested_struct.instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers000_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers000_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers000_instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers000_instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers010_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers010_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers010_instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers010_instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers110_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers110_geometry
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers110_instance_array_vertex
+dEQP-VK.transform_feedback.fuzz.various_buffers.buffers110_instance_array_geometry
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_types.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.basic_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.nested_structs_arrays_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.50
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.51
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.52
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.53
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.54
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.55
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.56
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.57
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.58
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.59
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.60
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.61
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.62
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.63
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.64
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.65
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.66
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.67
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.68
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.69
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.70
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.71
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.72
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.73
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.74
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.75
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.76
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.77
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.78
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.79
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.80
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.81
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.82
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.83
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.84
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.85
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.86
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.87
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.88
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.89
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.90
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.91
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.92
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.93
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.94
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.95
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.96
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.97
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.98
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_instance_array.99
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.50
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.51
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.52
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.53
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.54
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.55
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.56
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.57
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.58
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.59
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.60
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.61
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.62
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.63
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.64
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.65
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.66
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.67
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.68
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.69
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.70
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.71
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.72
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.73
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.74
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.75
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.76
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.77
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.78
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.79
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.80
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.81
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.82
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.83
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.84
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.85
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.86
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.87
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.88
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.89
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.90
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.91
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.92
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.93
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.94
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.95
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.96
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.97
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.98
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_instance_array.99
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.50
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.51
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.52
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.53
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.54
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.55
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.56
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.57
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.58
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.59
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.60
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.61
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.62
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.63
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.64
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.65
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.66
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.67
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.68
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.69
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.70
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.71
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.72
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.73
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.74
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.75
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.76
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.77
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.78
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.79
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.80
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.81
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.82
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.83
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.84
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.85
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.86
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.87
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.88
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.89
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.90
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.91
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.92
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.93
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.94
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.95
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.96
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.97
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.98
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_missing.99
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.0
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.1
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.2
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.3
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.4
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.5
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.6
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.7
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.8
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.9
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.10
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.11
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.12
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.13
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.14
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.15
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.16
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.17
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.18
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.19
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.20
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.21
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.22
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.23
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.24
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.25
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.26
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.27
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.28
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.29
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.30
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.31
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.32
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.33
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.34
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.35
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.36
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.37
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.38
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.39
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.40
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.41
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.42
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.43
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.44
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.45
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.46
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.47
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.48
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.49
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.50
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.51
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.52
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.53
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.54
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.55
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.56
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.57
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.58
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.59
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.60
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.61
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.62
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.63
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.64
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.65
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.66
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.67
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.68
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.69
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.70
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.71
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.72
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.73
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.74
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.75
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.76
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.77
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.78
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.79
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.80
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.81
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.82
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.83
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.84
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.85
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.86
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.87
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.88
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.89
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.90
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.91
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.92
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.93
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.94
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.95
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.96
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.97
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.98
+dEQP-VK.transform_feedback.fuzz.random_vertex.all_unordered_and_missing.99
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.scalar_types.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.vector_types.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_types.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.basic_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.nested_structs_arrays_instance_arrays.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.50
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.51
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.52
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.53
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.54
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.55
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.56
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.57
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.58
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.59
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.60
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.61
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.62
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.63
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.64
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.65
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.66
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.67
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.68
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.69
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.70
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.71
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.72
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.73
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.74
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.75
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.76
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.77
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.78
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.79
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.80
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.81
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.82
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.83
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.84
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.85
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.86
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.87
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.88
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.89
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.90
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.91
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.92
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.93
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.94
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.95
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.96
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.97
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.98
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_instance_array.99
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.50
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.51
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.52
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.53
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.54
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.55
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.56
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.57
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.58
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.59
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.60
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.61
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.62
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.63
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.64
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.65
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.66
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.67
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.68
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.69
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.70
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.71
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.72
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.73
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.74
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.75
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.76
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.77
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.78
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.79
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.80
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.81
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.82
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.83
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.84
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.85
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.86
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.87
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.88
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.89
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.90
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.91
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.92
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.93
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.94
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.95
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.96
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.97
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.98
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_instance_array.99
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.50
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.51
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.52
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.53
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.54
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.55
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.56
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.57
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.58
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.59
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.60
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.61
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.62
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.63
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.64
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.65
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.66
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.67
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.68
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.69
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.70
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.71
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.72
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.73
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.74
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.75
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.76
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.77
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.78
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.79
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.80
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.81
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.82
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.83
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.84
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.85
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.86
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.87
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.88
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.89
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.90
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.91
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.92
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.93
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.94
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.95
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.96
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.97
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.98
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_missing.99
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.0
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.1
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.2
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.3
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.4
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.5
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.6
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.7
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.8
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.9
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.10
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.11
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.12
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.13
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.14
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.15
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.16
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.17
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.18
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.19
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.20
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.21
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.22
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.23
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.24
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.25
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.26
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.27
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.28
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.29
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.30
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.31
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.32
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.33
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.34
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.35
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.36
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.37
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.38
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.39
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.40
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.41
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.42
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.43
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.44
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.45
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.46
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.47
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.48
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.49
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.50
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.51
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.52
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.53
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.54
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.55
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.56
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.57
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.58
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.59
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.60
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.61
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.62
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.63
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.64
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.65
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.66
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.67
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.68
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.69
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.70
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.71
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.72
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.73
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.74
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.75
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.76
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.77
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.78
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.79
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.80
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.81
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.82
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.83
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.84
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.85
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.86
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.87
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.88
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.89
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.90
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.91
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.92
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.93
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.94
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.95
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.96
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.97
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.98
+dEQP-VK.transform_feedback.fuzz.random_geometry.all_unordered_and_missing.99
index 097eeb5..221d54d 100755 (executable)
@@ -294,6 +294,9 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
+    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
@@ -729,6 +732,7 @@ typedef enum VkQueryType {
     VK_QUERY_TYPE_OCCLUSION = 0,
     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
     VK_QUERY_TYPE_TIMESTAMP = 2,
+    VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
     VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
     VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
@@ -1284,6 +1288,7 @@ typedef enum VkPipelineStageFlagBits {
     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
+    VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
     VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
@@ -1371,6 +1376,8 @@ typedef enum VkBufferUsageFlagBits {
     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
+    VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
+    VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 0x00020000,
     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
@@ -1487,6 +1494,9 @@ typedef enum VkAccessFlagBits {
     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
+    VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
+    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
+    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
     VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
     VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
@@ -6795,6 +6805,95 @@ typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
 
 
 
+#define VK_EXT_transform_feedback 1
+#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
+#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
+
+typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
+
+typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           transformFeedback;
+    VkBool32           geometryStreams;
+} VkPhysicalDeviceTransformFeedbackFeaturesEXT;
+
+typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           maxTransformFeedbackStreams;
+    uint32_t           maxTransformFeedbackBuffers;
+    VkDeviceSize       maxTransformFeedbackBufferSize;
+    uint32_t           maxTransformFeedbackStreamDataSize;
+    uint32_t           maxTransformFeedbackBufferDataSize;
+    uint32_t           maxTransformFeedbackBufferDataStride;
+    VkBool32           transformFeedbackQueries;
+    VkBool32           transformFeedbackStreamsLinesTriangles;
+    VkBool32           transformFeedbackRasterizationStreamSelect;
+    VkBool32           transformFeedbackDraw;
+} VkPhysicalDeviceTransformFeedbackPropertiesEXT;
+
+typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
+    VkStructureType                                     sType;
+    const void*                                         pNext;
+    VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
+    uint32_t                                            rasterizationStream;
+} VkPipelineRasterizationStateStreamCreateInfoEXT;
+
+
+typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
+typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
+typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
+typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
+typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
+typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    firstBinding,
+    uint32_t                                    bindingCount,
+    const VkBuffer*                             pBuffers,
+    const VkDeviceSize*                         pOffsets,
+    const VkDeviceSize*                         pSizes);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    firstCounterBuffer,
+    uint32_t                                    counterBufferCount,
+    const VkBuffer*                             pCounterBuffers,
+    const VkDeviceSize*                         pCounterBufferOffsets);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    firstCounterBuffer,
+    uint32_t                                    counterBufferCount,
+    const VkBuffer*                             pCounterBuffers,
+    const VkDeviceSize*                         pCounterBufferOffsets);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkQueryPool                                 queryPool,
+    uint32_t                                    query,
+    VkQueryControlFlags                         flags,
+    uint32_t                                    index);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkQueryPool                                 queryPool,
+    uint32_t                                    query,
+    uint32_t                                    index);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    instanceCount,
+    uint32_t                                    firstInstance,
+    VkBuffer                                    counterBuffer,
+    VkDeviceSize                                counterBufferOffset,
+    uint32_t                                    counterOffset,
+    uint32_t                                    vertexStride);
+#endif
+
 #define VK_AMD_draw_indirect_count 1
 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
index bc14152..58d53c4 100644 (file)
@@ -263,6 +263,7 @@ DataType            getDataTypeFromGLType           (deUint32 glType);
 inline bool            isDataTypeFloat16OrVec                          (DataType dataType)     { return (dataType >= TYPE_FLOAT16)    && (dataType <= TYPE_FLOAT16_MAT4); }
 inline bool            isDataTypeFloatOrVec                            (DataType dataType)     { return (dataType >= TYPE_FLOAT)      && (dataType <= TYPE_FLOAT_VEC4);   }
 inline bool            isDataTypeFloatType                                     (DataType dataType)     { return (dataType >= TYPE_FLOAT)      && (dataType <= TYPE_FLOAT_MAT4);   }
+inline bool            isDataTypeDoubleType                            (DataType dataType)     { return (dataType >= TYPE_DOUBLE)     && (dataType <= TYPE_DOUBLE_MAT4);  }
 inline bool            isDataTypeDoubleOrDVec                          (DataType dataType)     { return (dataType >= TYPE_DOUBLE)     && (dataType <= TYPE_DOUBLE_VEC4);  }
 inline bool            isDataTypeMatrix                                        (DataType dataType)     {
                                                                                                                                                        return ((dataType >= TYPE_FLOAT_MAT2) && (dataType <= TYPE_FLOAT_MAT4))
@@ -324,7 +325,8 @@ inline bool         isDataTypeExplicitPrecision                     (DataType dataType)     {
                                                                                                                                                                || deInRange32(dataType, TYPE_INT8, TYPE_INT8_VEC4)
                                                                                                                                                                || deInRange32(dataType, TYPE_UINT16, TYPE_UINT16_VEC4)
                                                                                                                                                                || deInRange32(dataType, TYPE_INT16, TYPE_INT16_VEC4)
-                                                                                                                                                               || deInRange32(dataType, TYPE_FLOAT16, TYPE_FLOAT16_VEC4)
+                                                                                                                                                               || deInRange32(dataType, TYPE_FLOAT16, TYPE_FLOAT16_MAT4)
+                                                                                                                                                               || deInRange32(dataType, TYPE_DOUBLE, TYPE_DOUBLE_MAT4)
                                                                                                                                                                ;
                                                                                                                                                }
 inline bool            dataTypeSupportsPrecisionModifier       (DataType dataType)     { return !isDataTypeBoolOrBVec(dataType) && !isDataTypeExplicitPrecision(dataType);    }