@@ -403,14 +403,19 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
403403
404404 if (!vulkan12Properties.shaderSignedZeroInfNanPreserveFloat32 )
405405 return nullptr ;
406- if (!vulkan12Properties.shaderDenormPreserveFloat32 )
407- return nullptr ;
408- if (!vulkan12Properties.shaderDenormFlushToZeroFloat32 )
409- return nullptr ;
410- if (!vulkan12Properties.shaderRoundingModeRTEFloat32 )
411- return nullptr ;
412- if (!vulkan12Properties.shaderRoundingModeRTZFloat32 )
413- return nullptr ;
406+ properties.limits .shaderSignedZeroInfNanPreserveFloat64 = vulkan12Properties.shaderSignedZeroInfNanPreserveFloat64 ;
407+ properties.limits .shaderDenormPreserveFloat16 = vulkan12Properties.shaderDenormPreserveFloat16 ;
408+ properties.limits .shaderDenormPreserveFloat32 = vulkan12Properties.shaderDenormPreserveFloat32 ;
409+ properties.limits .shaderDenormPreserveFloat64 = vulkan12Properties.shaderDenormPreserveFloat64 ;
410+ properties.limits .shaderDenormFlushToZeroFloat16 = vulkan12Properties.shaderDenormFlushToZeroFloat16 ;
411+ properties.limits .shaderDenormFlushToZeroFloat32 = vulkan12Properties.shaderDenormFlushToZeroFloat32 ;
412+ properties.limits .shaderDenormFlushToZeroFloat64 = vulkan12Properties.shaderDenormFlushToZeroFloat64 ;
413+ properties.limits .shaderRoundingModeRTEFloat16 = vulkan12Properties.shaderRoundingModeRTEFloat16 ;
414+ properties.limits .shaderRoundingModeRTEFloat32 = vulkan12Properties.shaderRoundingModeRTEFloat32 ;
415+ properties.limits .shaderRoundingModeRTEFloat64 = vulkan12Properties.shaderRoundingModeRTEFloat64 ;
416+ properties.limits .shaderRoundingModeRTZFloat16 = vulkan12Properties.shaderRoundingModeRTZFloat16 ;
417+ properties.limits .shaderRoundingModeRTZFloat32 = vulkan12Properties.shaderRoundingModeRTZFloat32 ;
418+ properties.limits .shaderRoundingModeRTZFloat64 = vulkan12Properties.shaderRoundingModeRTZFloat64 ;
414419
415420 // descriptor indexing
416421 properties.limits .maxUpdateAfterBindDescriptorsInAllPools = vulkan12Properties.maxUpdateAfterBindDescriptorsInAllPools ;
@@ -900,32 +905,6 @@ std::unique_ptr<CVulkanPhysicalDevice> CVulkanPhysicalDevice::create(core::smart
900905 properties.limits .shaderFloat16 = vulkan12Features.shaderFloat16 ;
901906 if (!vulkan12Features.shaderInt8 )
902907 return nullptr ;
903-
904- if (properties.limits .shaderFloat16 ) {
905- if (!vulkan12Properties.shaderSignedZeroInfNanPreserveFloat16 )
906- return nullptr ;
907- if (!vulkan12Properties.shaderDenormPreserveFloat16 )
908- return nullptr ;
909- if (!vulkan12Properties.shaderDenormFlushToZeroFloat16 )
910- return nullptr ;
911- if (!vulkan12Properties.shaderRoundingModeRTEFloat16 )
912- return nullptr ;
913- if (!vulkan12Properties.shaderRoundingModeRTZFloat16 )
914- return nullptr ;
915- }
916-
917- if (properties.limits .shaderFloat64 ) {
918- if (!vulkan12Properties.shaderSignedZeroInfNanPreserveFloat64 )
919- return nullptr ;
920- if (!vulkan12Properties.shaderDenormPreserveFloat64 )
921- return nullptr ;
922- if (!vulkan12Properties.shaderDenormFlushToZeroFloat64 )
923- return nullptr ;
924- if (!vulkan12Properties.shaderRoundingModeRTEFloat64 )
925- return nullptr ;
926- if (!vulkan12Properties.shaderRoundingModeRTZFloat64 )
927- return nullptr ;
928- }
929908
930909 if (!vulkan12Features.descriptorIndexing )
931910 return nullptr ;
0 commit comments