@@ -304,9 +304,7 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
304304 // VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT graphicsPipelineLibraryProperties = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT };
305305 VkPhysicalDeviceFragmentDensityMap2PropertiesEXT fragmentDensityMap2Properties = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT };
306306 VkPhysicalDeviceRayTracingPipelinePropertiesKHR rayTracingPipelineProperties = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR };
307- #if 0 // TODO
308307 VkPhysicalDeviceCooperativeMatrixPropertiesKHR cooperativeMatrixProperties = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR };
309- #endif
310308 VkPhysicalDeviceShaderSMBuiltinsPropertiesNV shaderSMBuiltinsPropertiesNV = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV };
311309 VkPhysicalDeviceShaderCoreProperties2AMD shaderCoreProperties2AMD = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD };
312310 // ! Because Renderdoc is special and instead of ignoring extensions it whitelists them
@@ -331,10 +329,8 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
331329 addToPNextChain (&fragmentDensityMap2Properties);
332330 if (isExtensionSupported (VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME))
333331 addToPNextChain (&rayTracingPipelineProperties);
334- #if 0 // TODO
335332 if (isExtensionSupported (VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME))
336333 addToPNextChain (&cooperativeMatrixProperties);
337- #endif
338334 if (isExtensionSupported (VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME))
339335 addToPNextChain (&shaderSMBuiltinsPropertiesNV);
340336 if (isExtensionSupported (VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME))
@@ -458,7 +454,7 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
458454 properties.limits .maxComputeWorkgroupSubgroups = vulkan13Properties.maxComputeWorkgroupSubgroups ;
459455 properties.limits .requiredSubgroupSizeStages = static_cast <asset::IShader::E_SHADER_STAGE>(vulkan13Properties.requiredSubgroupSizeStages &VK_SHADER_STAGE_ALL);
460456
461- // don't real with inline uniform blocks yet
457+ // don't deal with inline uniform blocks yet
462458
463459 properties.limits .integerDotProduct8BitUnsignedAccelerated = vulkan13Properties.integerDotProduct8BitUnsignedAccelerated ;
464460 properties.limits .integerDotProduct8BitSignedAccelerated = vulkan13Properties.integerDotProduct8BitSignedAccelerated ;
@@ -608,11 +604,9 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
608604 properties.limits .shaderGroupHandleAlignment = rayTracingPipelineProperties.shaderGroupHandleAlignment ;
609605 properties.limits .maxRayHitAttributeSize = rayTracingPipelineProperties.maxRayHitAttributeSize ;
610606 }
611- # if 0 //TODO
607+
612608 if (isExtensionSupported (VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME))
613609 properties.limits .cooperativeMatrixSupportedStages = static_cast <asset::IShader::E_SHADER_STAGE>(cooperativeMatrixProperties.cooperativeMatrixSupportedStages );
614- #endif
615-
616610
617611 // ! Nabla
618612 if (isExtensionSupported (VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME))
@@ -707,9 +701,7 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
707701 VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM rasterizationOrderAttachmentAccessFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM };
708702 VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR rayTracingPositionFetchFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR };
709703 VkPhysicalDeviceColorWriteEnableFeaturesEXT colorWriteEnableFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT };
710- #if 0
711704 VkPhysicalDeviceCooperativeMatrixFeaturesKHR cooperativeMatrixFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR };
712- #endif
713705 if (isExtensionSupported (VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME))
714706 addToPNextChain (&conditionalRenderingFeatures);
715707 if (isExtensionSupported (VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME))
@@ -980,8 +972,8 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
980972
981973 properties.limits .shaderZeroInitializeWorkgroupMemory = vulkan13Features.shaderZeroInitializeWorkgroupMemory ;
982974
983- // not checking dynamicRendering
984-
975+ if (!vulkan13Features. dynamicRendering )
976+ return nullptr ;
985977 if (!vulkan13Features.shaderIntegerDotProduct )
986978 return nullptr ;
987979 if (!vulkan13Features.maintenance4 )
@@ -1128,11 +1120,9 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
11281120 features.rasterizationOrderDepthAttachmentAccess = rasterizationOrderAttachmentAccessFeatures.rasterizationOrderDepthAttachmentAccess ;
11291121 features.rasterizationOrderStencilAttachmentAccess = rasterizationOrderAttachmentAccessFeatures.rasterizationOrderStencilAttachmentAccess ;
11301122 }
1131- # if 0
1123+
11321124 if (isExtensionSupported (VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME))
11331125 features.cooperativeMatrixRobustBufferAccess = cooperativeMatrixFeatures.cooperativeMatrixRobustBufferAccess ;
1134- #endif
1135-
11361126
11371127 /* Vulkan Extensions Features as Limits */
11381128 if (isExtensionSupported (VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME))
@@ -1577,10 +1567,9 @@ core::smart_refctd_ptr<ILogicalDevice> CVulkanPhysicalDevice::createLogicalDevic
15771567
15781568 VkPhysicalDeviceColorWriteEnableFeaturesEXT colorWriteEnableFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,nullptr };
15791569 enableExtensionIfAvailable (VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME,&colorWriteEnableFeatures);
1580- # if 0
1570+
15811571 VkPhysicalDeviceCooperativeMatrixFeaturesKHR cooperativeMatrixFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR,nullptr };
15821572 REQUIRE_EXTENSION_IF (enabledFeatures.cooperativeMatrixRobustBufferAccess ,VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME,&cooperativeMatrixFeatures);
1583- #endif
15841573
15851574 #undef REQUIRE_EXTENSION_IF
15861575
@@ -1677,11 +1666,11 @@ core::smart_refctd_ptr<ILogicalDevice> CVulkanPhysicalDevice::createLogicalDevic
16771666 vulkan12Features.shaderInputAttachmentArrayDynamicIndexing = limits.shaderInputAttachmentArrayDynamicIndexing ;
16781667 vulkan12Features.shaderUniformTexelBufferArrayDynamicIndexing = true ; // implied by `descriptorIndexing`
16791668 vulkan12Features.shaderStorageTexelBufferArrayDynamicIndexing = true ; // implied by `descriptorIndexing`
1680- vulkan12Features.shaderUniformBufferArrayNonUniformIndexing = limits. shaderUniformBufferArrayNonUniformIndexing ;
1669+ vulkan12Features.shaderUniformBufferArrayNonUniformIndexing = true ; // implied by `descriptorIndexing`
16811670 vulkan12Features.shaderSampledImageArrayNonUniformIndexing = true ; // implied by `descriptorIndexing`
16821671 vulkan12Features.shaderStorageBufferArrayNonUniformIndexing = true ; // implied by `descriptorIndexing`
16831672 vulkan12Features.shaderStorageImageArrayNonUniformIndexing = true ; // require
1684- vulkan12Features.shaderInputAttachmentArrayNonUniformIndexing = limits. shaderInputAttachmentArrayNonUniformIndexing ;
1673+ vulkan12Features.shaderInputAttachmentArrayNonUniformIndexing = true ; // implied by `descriptorIndexing`
16851674 vulkan12Features.shaderUniformTexelBufferArrayNonUniformIndexing = true ; // implied by `descriptorIndexing`
16861675 vulkan12Features.shaderStorageTexelBufferArrayNonUniformIndexing = true ; // ubiquitous
16871676 vulkan12Features.descriptorBindingUniformBufferUpdateAfterBind = limits.descriptorBindingUniformBufferUpdateAfterBind ;
@@ -1823,10 +1812,9 @@ core::smart_refctd_ptr<ILogicalDevice> CVulkanPhysicalDevice::createLogicalDevic
18231812 rasterizationOrderAttachmentAccessFeatures.rasterizationOrderStencilAttachmentAccess = enabledFeatures.rasterizationOrderStencilAttachmentAccess ;
18241813
18251814 // colorWriteEnableFeatures [LIMIT SO ENABLE EVERYTHING BY DEFAULT]
1826- # if 0
1815+
18271816 cooperativeMatrixFeatures.cooperativeMatrix = true ;
18281817 cooperativeMatrixFeatures.cooperativeMatrixRobustBufferAccess = enabledFeatures.cooperativeMatrixRobustBufferAccess ;
1829- #endif
18301818
18311819 // convert a set into a vector
18321820 core::vector<const char *> extensionStrings (extensionsToEnable.size ());
0 commit comments