@@ -109,6 +109,9 @@ VkDevice create_logical_device(
109109#ifdef VK_KHR_shader_float16_int8
110110 VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME,
111111#endif /* VK_KHR_shader_float16_int8 */
112+ #ifdef VK_KHR_shader_integer_dot_product
113+ VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME,
114+ #endif /* VK_KHR_shader_integer_dot_product */
112115#if defined(VK_KHR_pipeline_executable_properties) && defined(VULKAN_DEBUG)
113116 VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME,
114117#endif /* VK_KHR_pipeline_executable_properties */
@@ -160,6 +163,14 @@ VkDevice create_logical_device(
160163 extension_list_top = &shader_float16_int8_types;
161164#endif /* VK_KHR_shader_float16_int8 */
162165
166+ #ifdef VK_KHR_shader_integer_dot_product
167+ VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR
168+ shader_int_dot_product_features{
169+ physical_device.shader_int_dot_product_features };
170+ shader_int_dot_product_features.pNext = extension_list_top;
171+ extension_list_top = &shader_int_dot_product_features;
172+ #endif /* VK_KHR_shader_integer_dot_product */
173+
163174 device_create_info.pNext = extension_list_top;
164175
165176 VkDevice handle = nullptr ;
@@ -401,6 +412,107 @@ std::string Adapter::stringize() const {
401412#endif /* VK_KHR_shader_float16_int8 */
402413 ss << " }" << std::endl;
403414
415+ #ifdef VK_KHR_shader_integer_dot_product
416+ ss << " Shader Integer Dot Product Features {" << std::endl;
417+ PRINT_PROP (
418+ physical_device_.shader_int_dot_product_features,
419+ shaderIntegerDotProduct);
420+ ss << " }" << std::endl;
421+
422+ ss << " Shader Integer Dot Product Properties {" << std::endl;
423+ PRINT_PROP (
424+ physical_device_.shader_int_dot_product_properties,
425+ integerDotProduct8BitUnsignedAccelerated);
426+ PRINT_PROP (
427+ physical_device_.shader_int_dot_product_properties,
428+ integerDotProduct8BitSignedAccelerated);
429+ PRINT_PROP (
430+ physical_device_.shader_int_dot_product_properties,
431+ integerDotProduct8BitMixedSignednessAccelerated);
432+ PRINT_PROP (
433+ physical_device_.shader_int_dot_product_properties,
434+ integerDotProduct4x8BitPackedUnsignedAccelerated);
435+ PRINT_PROP (
436+ physical_device_.shader_int_dot_product_properties,
437+ integerDotProduct4x8BitPackedSignedAccelerated);
438+ PRINT_PROP (
439+ physical_device_.shader_int_dot_product_properties,
440+ integerDotProduct4x8BitPackedMixedSignednessAccelerated);
441+ PRINT_PROP (
442+ physical_device_.shader_int_dot_product_properties,
443+ integerDotProduct16BitUnsignedAccelerated);
444+ PRINT_PROP (
445+ physical_device_.shader_int_dot_product_properties,
446+ integerDotProduct16BitSignedAccelerated);
447+ PRINT_PROP (
448+ physical_device_.shader_int_dot_product_properties,
449+ integerDotProduct16BitMixedSignednessAccelerated);
450+ PRINT_PROP (
451+ physical_device_.shader_int_dot_product_properties,
452+ integerDotProduct32BitUnsignedAccelerated);
453+ PRINT_PROP (
454+ physical_device_.shader_int_dot_product_properties,
455+ integerDotProduct32BitSignedAccelerated);
456+ PRINT_PROP (
457+ physical_device_.shader_int_dot_product_properties,
458+ integerDotProduct32BitMixedSignednessAccelerated);
459+ PRINT_PROP (
460+ physical_device_.shader_int_dot_product_properties,
461+ integerDotProduct64BitUnsignedAccelerated);
462+ PRINT_PROP (
463+ physical_device_.shader_int_dot_product_properties,
464+ integerDotProduct64BitSignedAccelerated);
465+ PRINT_PROP (
466+ physical_device_.shader_int_dot_product_properties,
467+ integerDotProduct64BitMixedSignednessAccelerated);
468+ PRINT_PROP (
469+ physical_device_.shader_int_dot_product_properties,
470+ integerDotProductAccumulatingSaturating8BitUnsignedAccelerated);
471+ PRINT_PROP (
472+ physical_device_.shader_int_dot_product_properties,
473+ integerDotProductAccumulatingSaturating8BitSignedAccelerated);
474+ PRINT_PROP (
475+ physical_device_.shader_int_dot_product_properties,
476+ integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated);
477+ PRINT_PROP (
478+ physical_device_.shader_int_dot_product_properties,
479+ integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated);
480+ PRINT_PROP (
481+ physical_device_.shader_int_dot_product_properties,
482+ integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated);
483+ PRINT_PROP (
484+ physical_device_.shader_int_dot_product_properties,
485+ integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated);
486+ PRINT_PROP (
487+ physical_device_.shader_int_dot_product_properties,
488+ integerDotProductAccumulatingSaturating16BitUnsignedAccelerated);
489+ PRINT_PROP (
490+ physical_device_.shader_int_dot_product_properties,
491+ integerDotProductAccumulatingSaturating16BitSignedAccelerated);
492+ PRINT_PROP (
493+ physical_device_.shader_int_dot_product_properties,
494+ integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated);
495+ PRINT_PROP (
496+ physical_device_.shader_int_dot_product_properties,
497+ integerDotProductAccumulatingSaturating32BitUnsignedAccelerated);
498+ PRINT_PROP (
499+ physical_device_.shader_int_dot_product_properties,
500+ integerDotProductAccumulatingSaturating32BitSignedAccelerated);
501+ PRINT_PROP (
502+ physical_device_.shader_int_dot_product_properties,
503+ integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated);
504+ PRINT_PROP (
505+ physical_device_.shader_int_dot_product_properties,
506+ integerDotProductAccumulatingSaturating64BitUnsignedAccelerated);
507+ PRINT_PROP (
508+ physical_device_.shader_int_dot_product_properties,
509+ integerDotProductAccumulatingSaturating64BitSignedAccelerated);
510+ PRINT_PROP (
511+ physical_device_.shader_int_dot_product_properties,
512+ integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated);
513+ ss << " }" << std::endl;
514+ #endif /* VK_KHR_shader_integer_dot_product */
515+
404516 const VkPhysicalDeviceMemoryProperties& mem_props =
405517 physical_device_.memory_properties;
406518
0 commit comments