@@ -109,6 +109,9 @@ VkDevice create_logical_device(
109
109
#ifdef VK_KHR_shader_float16_int8
110
110
VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME,
111
111
#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 */
112
115
#if defined(VK_KHR_pipeline_executable_properties) && defined(VULKAN_DEBUG)
113
116
VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME,
114
117
#endif /* VK_KHR_pipeline_executable_properties */
@@ -160,6 +163,14 @@ VkDevice create_logical_device(
160
163
extension_list_top = &shader_float16_int8_types;
161
164
#endif /* VK_KHR_shader_float16_int8 */
162
165
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
+
163
174
device_create_info.pNext = extension_list_top;
164
175
165
176
VkDevice handle = nullptr ;
@@ -401,6 +412,107 @@ std::string Adapter::stringize() const {
401
412
#endif /* VK_KHR_shader_float16_int8 */
402
413
ss << " }" << std::endl;
403
414
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
+
404
516
const VkPhysicalDeviceMemoryProperties& mem_props =
405
517
physical_device_.memory_properties;
406
518
0 commit comments