@@ -304,9 +304,7 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
304
304
// VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT graphicsPipelineLibraryProperties = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT };
305
305
VkPhysicalDeviceFragmentDensityMap2PropertiesEXT fragmentDensityMap2Properties = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT };
306
306
VkPhysicalDeviceRayTracingPipelinePropertiesKHR rayTracingPipelineProperties = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR };
307
- #if 0 // TODO
308
307
VkPhysicalDeviceCooperativeMatrixPropertiesKHR cooperativeMatrixProperties = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR };
309
- #endif
310
308
VkPhysicalDeviceShaderSMBuiltinsPropertiesNV shaderSMBuiltinsPropertiesNV = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV };
311
309
VkPhysicalDeviceShaderCoreProperties2AMD shaderCoreProperties2AMD = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD };
312
310
// ! Because Renderdoc is special and instead of ignoring extensions it whitelists them
@@ -331,10 +329,8 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
331
329
addToPNextChain (&fragmentDensityMap2Properties);
332
330
if (isExtensionSupported (VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME))
333
331
addToPNextChain (&rayTracingPipelineProperties);
334
- #if 0 // TODO
335
332
if (isExtensionSupported (VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME))
336
333
addToPNextChain (&cooperativeMatrixProperties);
337
- #endif
338
334
if (isExtensionSupported (VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME))
339
335
addToPNextChain (&shaderSMBuiltinsPropertiesNV);
340
336
if (isExtensionSupported (VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME))
@@ -458,7 +454,7 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
458
454
properties.limits .maxComputeWorkgroupSubgroups = vulkan13Properties.maxComputeWorkgroupSubgroups ;
459
455
properties.limits .requiredSubgroupSizeStages = static_cast <asset::IShader::E_SHADER_STAGE>(vulkan13Properties.requiredSubgroupSizeStages &VK_SHADER_STAGE_ALL);
460
456
461
- // don't real with inline uniform blocks yet
457
+ // don't deal with inline uniform blocks yet
462
458
463
459
properties.limits .integerDotProduct8BitUnsignedAccelerated = vulkan13Properties.integerDotProduct8BitUnsignedAccelerated ;
464
460
properties.limits .integerDotProduct8BitSignedAccelerated = vulkan13Properties.integerDotProduct8BitSignedAccelerated ;
@@ -608,11 +604,9 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
608
604
properties.limits .shaderGroupHandleAlignment = rayTracingPipelineProperties.shaderGroupHandleAlignment ;
609
605
properties.limits .maxRayHitAttributeSize = rayTracingPipelineProperties.maxRayHitAttributeSize ;
610
606
}
611
- # if 0 //TODO
607
+
612
608
if (isExtensionSupported (VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME))
613
609
properties.limits .cooperativeMatrixSupportedStages = static_cast <asset::IShader::E_SHADER_STAGE>(cooperativeMatrixProperties.cooperativeMatrixSupportedStages );
614
- #endif
615
-
616
610
617
611
// ! Nabla
618
612
if (isExtensionSupported (VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME))
@@ -707,9 +701,7 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
707
701
VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM rasterizationOrderAttachmentAccessFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM };
708
702
VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR rayTracingPositionFetchFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR };
709
703
VkPhysicalDeviceColorWriteEnableFeaturesEXT colorWriteEnableFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT };
710
- #if 0
711
704
VkPhysicalDeviceCooperativeMatrixFeaturesKHR cooperativeMatrixFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR };
712
- #endif
713
705
if (isExtensionSupported (VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME))
714
706
addToPNextChain (&conditionalRenderingFeatures);
715
707
if (isExtensionSupported (VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME))
@@ -980,8 +972,8 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
980
972
981
973
properties.limits .shaderZeroInitializeWorkgroupMemory = vulkan13Features.shaderZeroInitializeWorkgroupMemory ;
982
974
983
- // not checking dynamicRendering
984
-
975
+ if (!vulkan13Features. dynamicRendering )
976
+ return nullptr ;
985
977
if (!vulkan13Features.shaderIntegerDotProduct )
986
978
return nullptr ;
987
979
if (!vulkan13Features.maintenance4 )
@@ -1128,11 +1120,9 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
1128
1120
features.rasterizationOrderDepthAttachmentAccess = rasterizationOrderAttachmentAccessFeatures.rasterizationOrderDepthAttachmentAccess ;
1129
1121
features.rasterizationOrderStencilAttachmentAccess = rasterizationOrderAttachmentAccessFeatures.rasterizationOrderStencilAttachmentAccess ;
1130
1122
}
1131
- # if 0
1123
+
1132
1124
if (isExtensionSupported (VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME))
1133
1125
features.cooperativeMatrixRobustBufferAccess = cooperativeMatrixFeatures.cooperativeMatrixRobustBufferAccess ;
1134
- #endif
1135
-
1136
1126
1137
1127
/* Vulkan Extensions Features as Limits */
1138
1128
if (isExtensionSupported (VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME))
@@ -1577,10 +1567,9 @@ core::smart_refctd_ptr<ILogicalDevice> CVulkanPhysicalDevice::createLogicalDevic
1577
1567
1578
1568
VkPhysicalDeviceColorWriteEnableFeaturesEXT colorWriteEnableFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,nullptr };
1579
1569
enableExtensionIfAvailable (VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME,&colorWriteEnableFeatures);
1580
- # if 0
1570
+
1581
1571
VkPhysicalDeviceCooperativeMatrixFeaturesKHR cooperativeMatrixFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR,nullptr };
1582
1572
REQUIRE_EXTENSION_IF (enabledFeatures.cooperativeMatrixRobustBufferAccess ,VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME,&cooperativeMatrixFeatures);
1583
- #endif
1584
1573
1585
1574
#undef REQUIRE_EXTENSION_IF
1586
1575
@@ -1677,11 +1666,11 @@ core::smart_refctd_ptr<ILogicalDevice> CVulkanPhysicalDevice::createLogicalDevic
1677
1666
vulkan12Features.shaderInputAttachmentArrayDynamicIndexing = limits.shaderInputAttachmentArrayDynamicIndexing ;
1678
1667
vulkan12Features.shaderUniformTexelBufferArrayDynamicIndexing = true ; // implied by `descriptorIndexing`
1679
1668
vulkan12Features.shaderStorageTexelBufferArrayDynamicIndexing = true ; // implied by `descriptorIndexing`
1680
- vulkan12Features.shaderUniformBufferArrayNonUniformIndexing = limits. shaderUniformBufferArrayNonUniformIndexing ;
1669
+ vulkan12Features.shaderUniformBufferArrayNonUniformIndexing = true ; // implied by `descriptorIndexing`
1681
1670
vulkan12Features.shaderSampledImageArrayNonUniformIndexing = true ; // implied by `descriptorIndexing`
1682
1671
vulkan12Features.shaderStorageBufferArrayNonUniformIndexing = true ; // implied by `descriptorIndexing`
1683
1672
vulkan12Features.shaderStorageImageArrayNonUniformIndexing = true ; // require
1684
- vulkan12Features.shaderInputAttachmentArrayNonUniformIndexing = limits. shaderInputAttachmentArrayNonUniformIndexing ;
1673
+ vulkan12Features.shaderInputAttachmentArrayNonUniformIndexing = true ; // implied by `descriptorIndexing`
1685
1674
vulkan12Features.shaderUniformTexelBufferArrayNonUniformIndexing = true ; // implied by `descriptorIndexing`
1686
1675
vulkan12Features.shaderStorageTexelBufferArrayNonUniformIndexing = true ; // ubiquitous
1687
1676
vulkan12Features.descriptorBindingUniformBufferUpdateAfterBind = limits.descriptorBindingUniformBufferUpdateAfterBind ;
@@ -1823,10 +1812,9 @@ core::smart_refctd_ptr<ILogicalDevice> CVulkanPhysicalDevice::createLogicalDevic
1823
1812
rasterizationOrderAttachmentAccessFeatures.rasterizationOrderStencilAttachmentAccess = enabledFeatures.rasterizationOrderStencilAttachmentAccess ;
1824
1813
1825
1814
// colorWriteEnableFeatures [LIMIT SO ENABLE EVERYTHING BY DEFAULT]
1826
- # if 0
1815
+
1827
1816
cooperativeMatrixFeatures.cooperativeMatrix = true ;
1828
1817
cooperativeMatrixFeatures.cooperativeMatrixRobustBufferAccess = enabledFeatures.cooperativeMatrixRobustBufferAccess ;
1829
- #endif
1830
1818
1831
1819
// convert a set into a vector
1832
1820
core::vector<const char *> extensionStrings (extensionsToEnable.size ());
0 commit comments