Test coverage for VK_EXT_index_type_uint8
authorPiers Daniell <pdaniell@nvidia.com>
Wed, 24 Jul 2019 05:07:47 +0000 (23:07 -0600)
committerAlexander Galazin <alexander.galazin@arm.com>
Mon, 26 Aug 2019 12:08:46 +0000 (14:08 +0200)
Adds coverage for VK_EXT_index_type_uint8 by adding
a new VK_INDEX_TYPE_UINT8_EXT variant to the existing
input_assembly tests. The coverage includes drawing
all the primitive topologies with uint8 indices,
and also primitive restart.

Affects:

dEQP-VK.pipeline.input_assembly.*

Change-Id: I939c1e0d2c3d4fcfd4386b8b4e419a8ca0e73413
Components: Vulkan
(cherry picked from commit e0e648699ac9279650486609cf16ec6e10d73042)

16 files changed:
android/cts/master/vk-master.txt
external/vulkancts/framework/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/vkDeviceFeatures.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl
external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl
external/vulkancts/framework/vulkan/vkStrUtil.inl
external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
external/vulkancts/framework/vulkan/vkStructTypes.inl
external/vulkancts/framework/vulkan/vkVulkan_c.inl
external/vulkancts/modules/vulkan/pipeline/vktPipelineInputAssemblyTests.cpp
external/vulkancts/mustpass/master/vk-default-no-waivers.txt
external/vulkancts/mustpass/master/vk-default.txt
external/vulkancts/scripts/gen_framework.py
external/vulkancts/scripts/src/vulkan_core.h

index 0681755..030cc40 100644 (file)
@@ -210526,16 +210526,36 @@ dEQP-VK.pipeline.vertex_input.max_attributes.128_attributes.binding_one_to_many.
 dEQP-VK.pipeline.vertex_input.max_attributes.query_max_attributes.binding_one_to_one.interleaved
 dEQP-VK.pipeline.vertex_input.max_attributes.query_max_attributes.binding_one_to_many.interleaved
 dEQP-VK.pipeline.vertex_input.max_attributes.query_max_attributes.binding_one_to_many.sequential
-dEQP-VK.pipeline.input_assembly.primitive_topology.point_list
-dEQP-VK.pipeline.input_assembly.primitive_topology.line_list
-dEQP-VK.pipeline.input_assembly.primitive_topology.line_strip
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_list
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_strip
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_fan
-dEQP-VK.pipeline.input_assembly.primitive_topology.line_list_with_adjacency
-dEQP-VK.pipeline.input_assembly.primitive_topology.line_strip_with_adjacency
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_list_with_adjacency
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.point_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_fan
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.point_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.line_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.line_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_fan
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.line_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.line_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.point_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.line_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.line_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_fan
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.line_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.line_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_strip_with_adjacency
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint16.line_strip
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint16.triangle_strip
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint16.triangle_fan
@@ -210546,6 +210566,11 @@ dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.triangle_str
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.triangle_fan
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.line_strip_with_adjacency
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.triangle_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.line_strip
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.triangle_strip
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.triangle_fan
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.line_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.triangle_strip_with_adjacency
 dEQP-VK.pipeline.timestamp.basic_graphics_tests.vertex_input_stage_in_render_pass
 dEQP-VK.pipeline.timestamp.basic_graphics_tests.vertex_input_stage_out_of_render_pass
 dEQP-VK.pipeline.timestamp.basic_graphics_tests.vertex_input_stage_out_of_render_pass_host_query_reset
index 8bfa61c..43dacdf 100644 (file)
@@ -452,6 +452,7 @@ enum VkStructureType
        VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT                                          = 1000255001,
        VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT                                                                      = 1000256000,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT                                         = 1000261000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT                                         = 1000265000,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR           = 1000269000,
        VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR                                                                                                     = 1000269001,
        VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR                                                            = 1000269002,
@@ -1193,6 +1194,7 @@ enum VkIndexType
        VK_INDEX_TYPE_UINT16    = 0,
        VK_INDEX_TYPE_UINT32    = 1,
        VK_INDEX_TYPE_NONE_NV   = 1000165000,
+       VK_INDEX_TYPE_UINT8_EXT = 1000265000,
        VK_INDEX_TYPE_MAX_ENUM  = 0x7FFFFFFF,
 };
 
@@ -2829,6 +2831,7 @@ VK_DEFINE_PLATFORM_TYPE(CAMetalLayer,                             void*);
 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 0
 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
+#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
 #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
 #define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
index 6f7f229..68d4d12 100644 (file)
@@ -37,6 +37,7 @@ namespace vk
 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
+#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
@@ -44,38 +45,39 @@ namespace vk
 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
 
 
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 37); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDrawParametersFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION, 36); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTransformFeedbackFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION, 35); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCornerSampledImageFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION, 34); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION, 33); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFloat16Int8FeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 32); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION, 31); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImagelessFramebufferFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION, 30); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInlineUniformBlockFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 29); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 28); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 27); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShadingRateImageFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 26); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION, 25); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 24); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 23); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION, 22); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION, 21); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMeshShaderFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 20); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 19); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderImageFootprintFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION, 18); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExclusiveScissorFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION, 17); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR, VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION, 16); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 15); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 14); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMemoryPriorityFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION, 13); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION, 12); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 11); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCooperativeMatrixFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 10); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION, 9); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION, 8); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION, 7); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceHostQueryResetFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION, 6); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 38); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDrawParametersFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION, 37); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTransformFeedbackFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION, 36); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCornerSampledImageFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION, 35); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION, 34); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFloat16Int8FeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 33); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION, 32); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImagelessFramebufferFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION, 31); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInlineUniformBlockFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 30); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 29); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 28); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShadingRateImageFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 27); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION, 26); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 25); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 24); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION, 23); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION, 22); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMeshShaderFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 21); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 20); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderImageFootprintFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION, 19); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExclusiveScissorFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION, 18); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR, VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION, 17); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 16); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 15); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMemoryPriorityFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION, 14); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION, 13); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 12); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCooperativeMatrixFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 11); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION, 10); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION, 9); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION, 8); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceHostQueryResetFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION, 7); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION, 6); }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION, 5); }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiviewFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 4); }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice16BitStorageFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION, 3); }
@@ -117,6 +119,7 @@ static const FeatureStructMapItem featureStructCreatorMap[] =
        { createFeatureStructWrapper<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceHostQueryResetFeaturesEXT>, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceMultiviewFeatures>, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDevice16BitStorageFeatures>, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION },
index 7a367a6..a18294f 100644 (file)
@@ -33,6 +33,7 @@ const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&                            getCoverageReducti
 const vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                 getYcbcrImageArraysFeatures                                     (void) const;
 const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR&              getUniformBufferStandardLayoutFeatures          (void) const;
 const vk::VkPhysicalDeviceHostQueryResetFeaturesEXT&                                   getHostQueryResetFeatures                                       (void) const;
+const vk::VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                   getIndexTypeUint8Features                                       (void) const;
 const vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&             getPipelineExecutablePropertiesFeatures         (void) const;
 const vk::VkPhysicalDeviceMultiviewFeatures&                                                   getMultiviewFeatures                                            (void) const;
 const vk::VkPhysicalDevice16BitStorageFeatures&                                                        get16BitStorageFeatures                                         (void) const;
index 620ed3a..d9a8a94 100644 (file)
@@ -33,6 +33,7 @@ const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&                            Context::getCovera
 const vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                 Context::getYcbcrImageArraysFeatures                                    (void) const { return m_device->getYcbcrImageArraysFeatures();                                  }
 const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR&              Context::getUniformBufferStandardLayoutFeatures                 (void) const { return m_device->getUniformBufferStandardLayoutFeatures();               }
 const vk::VkPhysicalDeviceHostQueryResetFeaturesEXT&                                   Context::getHostQueryResetFeatures                                              (void) const { return m_device->getHostQueryResetFeatures();                                    }
+const vk::VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                   Context::getIndexTypeUint8Features                                              (void) const { return m_device->getIndexTypeUint8Features();                                    }
 const vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&             Context::getPipelineExecutablePropertiesFeatures                (void) const { return m_device->getPipelineExecutablePropertiesFeatures();              }
 const vk::VkPhysicalDeviceMultiviewFeatures&                                                   Context::getMultiviewFeatures                                                   (void) const { return m_device->getMultiviewFeatures();                                                 }
 const vk::VkPhysicalDevice16BitStorageFeatures&                                                        Context::get16BitStorageFeatures                                                (void) const { return m_device->get16BitStorageFeatures();                                              }
index 8ae6fa8..d134756 100644 (file)
@@ -33,6 +33,7 @@ const VkPhysicalDeviceCoverageReductionModeFeaturesNV&                                getCoverageReductionMo
 const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                     getYcbcrImageArraysFeatures                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>();                                   }
 const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR&          getUniformBufferStandardLayoutFeatures          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>();                }
 const VkPhysicalDeviceHostQueryResetFeaturesEXT&                                       getHostQueryResetFeatures                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceHostQueryResetFeaturesEXT>();                                             }
+const VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                       getIndexTypeUint8Features                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>();                                             }
 const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&         getPipelineExecutablePropertiesFeatures         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>();               }
 const VkPhysicalDeviceMultiviewFeatures&                                                       getMultiviewFeatures                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMultiviewFeatures>();                                                             }
 const VkPhysicalDevice16BitStorageFeatures&                                                    get16BitStorageFeatures                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevice16BitStorageFeatures>();                                                  }
index 8277884..510b26a 100644 (file)
@@ -1556,6 +1556,11 @@ template<> VkStructureType getStructureType<VkPhysicalDeviceHostQueryResetFeatur
        return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT;
 }
 
+template<> VkStructureType getStructureType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT;
+}
+
 template<> VkStructureType getStructureType<VkAndroidSurfaceCreateInfoKHR> (void)
 {
        return VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
index a7ba89c..4a64fd2 100644 (file)
@@ -773,6 +773,7 @@ std::ostream&       operator<<      (std::ostream& s, const VkFramebufferMixedSamplesCombin
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value);
 std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value);
index d071c73..2a17832 100644 (file)
@@ -464,6 +464,7 @@ const char* getStructureTypeName (VkStructureType value)
                case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:                                    return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
                case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:                                                                return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT:                                   return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:                                   return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT";
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:             return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
                case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:                                                                                               return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
                case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:                                                              return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
@@ -1207,6 +1208,7 @@ const char* getIndexTypeName (VkIndexType value)
                case VK_INDEX_TYPE_UINT16:              return "VK_INDEX_TYPE_UINT16";
                case VK_INDEX_TYPE_UINT32:              return "VK_INDEX_TYPE_UINT32";
                case VK_INDEX_TYPE_NONE_NV:             return "VK_INDEX_TYPE_NONE_NV";
+               case VK_INDEX_TYPE_UINT8_EXT:   return "VK_INDEX_TYPE_UINT8_EXT";
                case VK_INDEX_TYPE_MAX_ENUM:    return "VK_INDEX_TYPE_MAX_ENUM";
                default:                                                return DE_NULL;
        }
@@ -8229,6 +8231,16 @@ std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostQueryResetF
        return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value)
+{
+       s << "VkPhysicalDeviceIndexTypeUint8FeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
+       s << '}';
+       return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
 {
        s << "VkAndroidSurfaceCreateInfoKHR = {\n";
index 89d389d..a699140 100644 (file)
@@ -3866,6 +3866,13 @@ struct VkPhysicalDeviceHostQueryResetFeaturesEXT
        VkBool32                hostQueryReset;
 };
 
+struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                indexTypeUint8;
+};
+
 struct VkAndroidSurfaceCreateInfoKHR
 {
        VkStructureType                                         sType;
index 2961386..cdd96e8 100644 (file)
@@ -502,6 +502,7 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
     VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = 1000261000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
@@ -1285,6 +1286,7 @@ typedef enum VkIndexType {
     VK_INDEX_TYPE_UINT16 = 0,
     VK_INDEX_TYPE_UINT32 = 1,
     VK_INDEX_TYPE_NONE_NV = 1000165000,
+    VK_INDEX_TYPE_UINT8_EXT = 1000265000,
     VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
     VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
     VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
@@ -9432,6 +9434,16 @@ VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
     deUint32                                    queryCount);
 #endif
 
+#define VK_EXT_index_type_uint8 1
+#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
+#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
+typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           indexTypeUint8;
+} VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
+
+
 #ifdef __cplusplus
 }
 #endif
index a2e4956..aab8a0d 100644 (file)
@@ -64,6 +64,7 @@ public:
        const static VkPrimitiveTopology        s_primitiveTopologies[];
        const static deUint32                           s_restartIndex32;
        const static deUint16                           s_restartIndex16;
+    const static deUint8                               s_restartIndex8;
 
                                                                                InputAssemblyTest               (tcu::TestContext&              testContext,
                                                                                                                                 const std::string&             name,
@@ -98,7 +99,8 @@ public:
                                                                                PrimitiveTopologyTest   (tcu::TestContext&              testContext,
                                                                                                                                 const std::string&             name,
                                                                                                                                 const std::string&             description,
-                                                                                                                                VkPrimitiveTopology    primitiveTopology);
+                                                                                                                                VkPrimitiveTopology    primitiveTopology,
+                                                                                                                                VkIndexType                    indexType);
        virtual                                                         ~PrimitiveTopologyTest  (void) {}
 
 protected:
@@ -149,6 +151,7 @@ public:
 private:
        tcu::TestStatus                                         verifyImage                             (void);
        void                                                            uploadIndexBufferData16 (deUint16* destPtr, const std::vector<deUint32>& indexBufferData);
+       void                                                            uploadIndexBufferData8  (deUint8* destPtr, const std::vector<deUint32>& indexBufferData);
 
        VkPrimitiveTopology                                     m_primitiveTopology;
        bool                                                            m_primitiveRestartEnable;
@@ -201,6 +204,7 @@ const VkPrimitiveTopology InputAssemblyTest::s_primitiveTopologies[] =
 
 const deUint32 InputAssemblyTest::s_restartIndex32     = ~((deUint32)0u);
 const deUint16 InputAssemblyTest::s_restartIndex16     = ~((deUint16)0u);
+const deUint8 InputAssemblyTest::s_restartIndex8       = ~((deUint8)0u);
 
 InputAssemblyTest::InputAssemblyTest (tcu::TestContext&                testContext,
                                                                          const std::string&    name,
@@ -259,16 +263,20 @@ void InputAssemblyTest::initPrograms (SourceCollections& sourceCollections) cons
 
 bool InputAssemblyTest::isRestartIndex (VkIndexType indexType, deUint32 indexValue)
 {
-       if (indexType == VK_INDEX_TYPE_UINT32)
-               return indexValue == s_restartIndex32;
-       else
+       if (indexType == VK_INDEX_TYPE_UINT16)
                return indexValue == s_restartIndex16;
+       else if (indexType == VK_INDEX_TYPE_UINT8_EXT)
+               return indexValue == s_restartIndex8;
+       else
+               return indexValue == s_restartIndex32;
 }
 
 deUint32 InputAssemblyTest::getRestartIndex (VkIndexType indexType)
 {
        if (indexType == VK_INDEX_TYPE_UINT16)
                return InputAssemblyTest::s_restartIndex16;
+       else if (indexType == VK_INDEX_TYPE_UINT8_EXT)
+               return InputAssemblyTest::s_restartIndex8;
        else
                return InputAssemblyTest::s_restartIndex32;
 }
@@ -279,8 +287,9 @@ deUint32 InputAssemblyTest::getRestartIndex (VkIndexType indexType)
 PrimitiveTopologyTest::PrimitiveTopologyTest (tcu::TestContext&                testContext,
                                                                                          const std::string&    name,
                                                                                          const std::string&    description,
-                                                                                         VkPrimitiveTopology   primitiveTopology)
-       : InputAssemblyTest     (testContext, name, description, primitiveTopology, 10, false, VK_INDEX_TYPE_UINT32)
+                                                                                         VkPrimitiveTopology   primitiveTopology,
+                                                                                         VkIndexType                   indexType)
+       : InputAssemblyTest     (testContext, name, description, primitiveTopology, 10, false, indexType)
 {
 }
 
@@ -926,6 +935,9 @@ InputAssemblyInstance::InputAssemblyInstance (Context&                                                      context,
        SimpleAllocator                                 memAlloc                                (vk, vkDevice, getPhysicalDeviceMemoryProperties(context.getInstanceInterface(), context.getPhysicalDevice()));
        const VkComponentMapping                componentMappingRGBA    = { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A };
 
+       if (m_indexType == VK_INDEX_TYPE_UINT8_EXT)
+               context.requireDeviceExtension("VK_EXT_index_type_uint8");
+
        switch (m_primitiveTopology)
        {
                case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:
@@ -1268,6 +1280,10 @@ InputAssemblyInstance::InputAssemblyInstance (Context&                                                   context,
                {
                        deMemcpy(m_indexBufferAlloc->getHostPtr(), m_indices.data(), m_indices.size() * sizeof(deUint32));
                }
+               else if (m_indexType == VK_INDEX_TYPE_UINT8_EXT)
+               {
+                       uploadIndexBufferData8((deUint8*)m_indexBufferAlloc->getHostPtr(), m_indices);
+               }
                else // m_indexType == VK_INDEX_TYPE_UINT16
                {
                        uploadIndexBufferData16((deUint16*)m_indexBufferAlloc->getHostPtr(), m_indices);
@@ -1424,6 +1440,15 @@ void InputAssemblyInstance::uploadIndexBufferData16      (deUint16* destPtr, const st
        }
 }
 
+void InputAssemblyInstance::uploadIndexBufferData8     (deUint8* destPtr, const std::vector<deUint32>& indexBufferData)
+{
+       for (size_t i = 0; i < indexBufferData.size(); i++)
+       {
+               DE_ASSERT(indexBufferData[i] <= 0xFF);
+               destPtr[i] = (deUint8)indexBufferData[i];
+       }
+}
+
 
 // Utilities for test names
 
@@ -1440,16 +1465,37 @@ de::MovePtr<tcu::TestCaseGroup> createPrimitiveTopologyTests (tcu::TestContext&
 {
        de::MovePtr<tcu::TestCaseGroup> primitiveTopologyTests (new tcu::TestCaseGroup(testCtx, "primitive_topology", ""));
 
+       de::MovePtr<tcu::TestCaseGroup> indexUint16Tests (new tcu::TestCaseGroup(testCtx, "index_type_uint16", ""));
+       de::MovePtr<tcu::TestCaseGroup> indexUint32Tests (new tcu::TestCaseGroup(testCtx, "index_type_uint32", ""));
+       de::MovePtr<tcu::TestCaseGroup> indexUint8Tests (new tcu::TestCaseGroup(testCtx, "index_type_uint8", ""));
+
        for (int topologyNdx = 0; topologyNdx < DE_LENGTH_OF_ARRAY(InputAssemblyTest::s_primitiveTopologies); topologyNdx++)
        {
                const VkPrimitiveTopology topology = InputAssemblyTest::s_primitiveTopologies[topologyNdx];
 
-               primitiveTopologyTests->addChild(new PrimitiveTopologyTest(testCtx,
-                                                                                                                                  getPrimitiveTopologyCaseName(topology),
-                                                                                                                                  "",
-                                                                                                                                  topology));
+               indexUint16Tests->addChild(new PrimitiveTopologyTest(testCtx,
+                                                                                                                        getPrimitiveTopologyCaseName(topology),
+                                                                                                                        "",
+                                                                                                                        topology,
+                                                                                                                        VK_INDEX_TYPE_UINT16));
+
+               indexUint32Tests->addChild(new PrimitiveTopologyTest(testCtx,
+                                                                                                                        getPrimitiveTopologyCaseName(topology),
+                                                                                                                        "",
+                                                                                                                        topology,
+                                                                                                                        VK_INDEX_TYPE_UINT32));
+
+               indexUint8Tests->addChild(new PrimitiveTopologyTest(testCtx,
+                                                                                                                        getPrimitiveTopologyCaseName(topology),
+                                                                                                                        "",
+                                                                                                                        topology,
+                                                                                                                        VK_INDEX_TYPE_UINT8_EXT));
        }
 
+       primitiveTopologyTests->addChild(indexUint16Tests.release());
+       primitiveTopologyTests->addChild(indexUint32Tests.release());
+       primitiveTopologyTests->addChild(indexUint8Tests.release());
+
        return primitiveTopologyTests;
 }
 
@@ -1468,6 +1514,7 @@ de::MovePtr<tcu::TestCaseGroup> createPrimitiveRestartTests (tcu::TestContext& t
 
        de::MovePtr<tcu::TestCaseGroup> indexUint16Tests (new tcu::TestCaseGroup(testCtx, "index_type_uint16", ""));
        de::MovePtr<tcu::TestCaseGroup> indexUint32Tests (new tcu::TestCaseGroup(testCtx, "index_type_uint32", ""));
+       de::MovePtr<tcu::TestCaseGroup> indexUint8Tests (new tcu::TestCaseGroup(testCtx, "index_type_uint8", ""));
 
        for (int topologyNdx = 0; topologyNdx < DE_LENGTH_OF_ARRAY(primitiveRestartTopologies); topologyNdx++)
        {
@@ -1484,10 +1531,17 @@ de::MovePtr<tcu::TestCaseGroup> createPrimitiveRestartTests (tcu::TestContext& t
                                                                                                                        "",
                                                                                                                        topology,
                                                                                                                        VK_INDEX_TYPE_UINT32));
+
+               indexUint8Tests->addChild(new PrimitiveRestartTest(testCtx,
+                                                                                                                       getPrimitiveTopologyCaseName(topology),
+                                                                                                                       "",
+                                                                                                                       topology,
+                                                                                                                       VK_INDEX_TYPE_UINT8_EXT));
        }
 
        primitiveRestartTests->addChild(indexUint16Tests.release());
        primitiveRestartTests->addChild(indexUint32Tests.release());
+       primitiveRestartTests->addChild(indexUint8Tests.release());
 
        return primitiveRestartTests;
 }
index f9f17c7..a5b632f 100644 (file)
@@ -210413,16 +210413,36 @@ dEQP-VK.pipeline.vertex_input.max_attributes.128_attributes.binding_one_to_many.
 dEQP-VK.pipeline.vertex_input.max_attributes.query_max_attributes.binding_one_to_one.interleaved
 dEQP-VK.pipeline.vertex_input.max_attributes.query_max_attributes.binding_one_to_many.interleaved
 dEQP-VK.pipeline.vertex_input.max_attributes.query_max_attributes.binding_one_to_many.sequential
-dEQP-VK.pipeline.input_assembly.primitive_topology.point_list
-dEQP-VK.pipeline.input_assembly.primitive_topology.line_list
-dEQP-VK.pipeline.input_assembly.primitive_topology.line_strip
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_list
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_strip
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_fan
-dEQP-VK.pipeline.input_assembly.primitive_topology.line_list_with_adjacency
-dEQP-VK.pipeline.input_assembly.primitive_topology.line_strip_with_adjacency
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_list_with_adjacency
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.point_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_fan
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.point_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.line_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.line_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_fan
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.line_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.line_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.point_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.line_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.line_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_fan
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.line_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.line_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_strip_with_adjacency
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint16.line_strip
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint16.triangle_strip
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint16.triangle_fan
@@ -210433,6 +210453,11 @@ dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.triangle_str
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.triangle_fan
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.line_strip_with_adjacency
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.triangle_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.line_strip
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.triangle_strip
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.triangle_fan
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.line_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.triangle_strip_with_adjacency
 dEQP-VK.pipeline.timestamp.basic_graphics_tests.vertex_input_stage_in_render_pass
 dEQP-VK.pipeline.timestamp.basic_graphics_tests.vertex_input_stage_out_of_render_pass
 dEQP-VK.pipeline.timestamp.basic_graphics_tests.vertex_input_stage_out_of_render_pass_host_query_reset
index 2357874..9651b9c 100644 (file)
@@ -210413,16 +210413,36 @@ dEQP-VK.pipeline.vertex_input.max_attributes.128_attributes.binding_one_to_many.
 dEQP-VK.pipeline.vertex_input.max_attributes.query_max_attributes.binding_one_to_one.interleaved
 dEQP-VK.pipeline.vertex_input.max_attributes.query_max_attributes.binding_one_to_many.interleaved
 dEQP-VK.pipeline.vertex_input.max_attributes.query_max_attributes.binding_one_to_many.sequential
-dEQP-VK.pipeline.input_assembly.primitive_topology.point_list
-dEQP-VK.pipeline.input_assembly.primitive_topology.line_list
-dEQP-VK.pipeline.input_assembly.primitive_topology.line_strip
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_list
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_strip
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_fan
-dEQP-VK.pipeline.input_assembly.primitive_topology.line_list_with_adjacency
-dEQP-VK.pipeline.input_assembly.primitive_topology.line_strip_with_adjacency
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_list_with_adjacency
-dEQP-VK.pipeline.input_assembly.primitive_topology.triangle_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.point_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_fan
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.triangle_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.point_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.line_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.line_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_fan
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.line_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.line_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint32.triangle_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.point_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.line_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.line_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_list
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_strip
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_fan
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.line_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.line_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_list_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint8.triangle_strip_with_adjacency
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint16.line_strip
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint16.triangle_strip
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint16.triangle_fan
@@ -210433,6 +210453,11 @@ dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.triangle_str
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.triangle_fan
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.line_strip_with_adjacency
 dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.triangle_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.line_strip
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.triangle_strip
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.triangle_fan
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.line_strip_with_adjacency
+dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.triangle_strip_with_adjacency
 dEQP-VK.pipeline.timestamp.basic_graphics_tests.vertex_input_stage_in_render_pass
 dEQP-VK.pipeline.timestamp.basic_graphics_tests.vertex_input_stage_out_of_render_pass
 dEQP-VK.pipeline.timestamp.basic_graphics_tests.vertex_input_stage_out_of_render_pass_host_query_reset
index 00e2c1f..7c9d3a6 100644 (file)
@@ -149,6 +149,10 @@ def prefixName (prefix, name):
        name = name.replace("AABBNV", "AABB_NV")
        name = name.replace("IMAGE_PIPE", "IMAGEPIPE")
        name = name.replace("FUNCTIONS_2", "FUNCTIONS2_FEATURES")
+       name = name.replace("SMBUILTINS", "SM_BUILTINS")
+       name = name.replace("ASTCHDRFEATURES", "ASTC_HDR_FEATURES")
+       name = name.replace("UINT_8", "UINT8")
+       name = name.replace("INT_8_", "INT8_")
 
        return prefix + name
 
index 8fd463f..5c75a42 100755 (executable)
@@ -499,6 +499,7 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
     VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = 1000261000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
@@ -1282,6 +1283,7 @@ typedef enum VkIndexType {
     VK_INDEX_TYPE_UINT16 = 0,
     VK_INDEX_TYPE_UINT32 = 1,
     VK_INDEX_TYPE_NONE_NV = 1000165000,
+    VK_INDEX_TYPE_UINT8_EXT = 1000265000,
     VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
     VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
     VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
@@ -9429,6 +9431,16 @@ VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
     uint32_t                                    queryCount);
 #endif
 
+#define VK_EXT_index_type_uint8 1
+#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
+#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
+typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           indexTypeUint8;
+} VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
+
+
 #ifdef __cplusplus
 }
 #endif