C Specification
The members of the VkPhysicalDeviceFloatControlsPropertiesKHR
structure describe the following implementationdependent limits:
typedef struct VkPhysicalDeviceFloatControlsPropertiesKHR {
VkStructureType sType;
void* pNext;
VkShaderFloatControlsIndependenceKHR denormBehaviorIndependence;
VkShaderFloatControlsIndependenceKHR roundingModeIndependence;
VkBool32 shaderSignedZeroInfNanPreserveFloat16;
VkBool32 shaderSignedZeroInfNanPreserveFloat32;
VkBool32 shaderSignedZeroInfNanPreserveFloat64;
VkBool32 shaderDenormPreserveFloat16;
VkBool32 shaderDenormPreserveFloat32;
VkBool32 shaderDenormPreserveFloat64;
VkBool32 shaderDenormFlushToZeroFloat16;
VkBool32 shaderDenormFlushToZeroFloat32;
VkBool32 shaderDenormFlushToZeroFloat64;
VkBool32 shaderRoundingModeRTEFloat16;
VkBool32 shaderRoundingModeRTEFloat32;
VkBool32 shaderRoundingModeRTEFloat64;
VkBool32 shaderRoundingModeRTZFloat16;
VkBool32 shaderRoundingModeRTZFloat32;
VkBool32 shaderRoundingModeRTZFloat64;
} VkPhysicalDeviceFloatControlsPropertiesKHR;
Members

denormBehaviorIndependence
is a VkShaderFloatControlsIndependenceKHR value indicating whether, and how, denorm behavior can be set independently for different bit widths. 
roundingModeIndependence
is a VkShaderFloatControlsIndependenceKHR value indicating whether, and how, rounding modes can be set independently for different bit widths. 
shaderSignedZeroInfNanPreserveFloat16
is a boolean value indicating whether sign of a zero, Nans and \(\pm\infty\) can be preserved in 16bit floatingpoint computations. It also indicates whether theSignedZeroInfNanPreserve
execution mode can be used for 16bit floatingpoint types. 
shaderSignedZeroInfNanPreserveFloat32
is a boolean value indicating whether sign of a zero, Nans and \(\pm\infty\) can be preserved in 32bit floatingpoint computations. It also indicates whether theSignedZeroInfNanPreserve
execution mode can be used for 32bit floatingpoint types. 
shaderSignedZeroInfNanPreserveFloat64
is a boolean value indicating whether sign of a zero, Nans and \(\pm\infty\) can be preserved in 64bit floatingpoint computations. It also indicates whether theSignedZeroInfNanPreserve
execution mode can be used for 64bit floatingpoint types. 
shaderDenormPreserveFloat16
is a boolean value indicating whether denormals can be preserved in 16bit floatingpoint computations. It also indicates whether theDenormPreserve
execution mode can be used for 16bit floatingpoint types. 
shaderDenormPreserveFloat32
is a boolean value indicating whether denormals can be preserved in 32bit floatingpoint computations. It also indicates whether theDenormPreserve
execution mode can be used for 32bit floatingpoint types. 
shaderDenormPreserveFloat64
is a boolean value indicating whether denormals can be preserved in 64bit floatingpoint computations. It also indicates whether theDenormPreserve
execution mode can be used for 64bit floatingpoint types. 
shaderDenormFlushToZeroFloat16
is a boolean value indicating whether denormals can be flushed to zero in 16bit floatingpoint computations. It also indicates whether theDenormFlushToZero
execution mode can be used for 16bit floatingpoint types. 
shaderDenormFlushToZeroFloat32
is a boolean value indicating whether denormals can be flushed to zero in 32bit floatingpoint computations. It also indicates whether theDenormFlushToZero
execution mode can be used for 32bit floatingpoint types. 
shaderDenormFlushToZeroFloat64
is a boolean value indicating whether denormals can be flushed to zero in 64bit floatingpoint computations. It also indicates whether theDenormFlushToZero
execution mode can be used for 64bit floatingpoint types. 
shaderRoundingModeRTEFloat16
is a boolean value indicating whether an implementation supports the roundtonearesteven rounding mode for 16bit floatingpoint arithmetic and conversion instructions. It also indicates whether theRoundingModeRTE
execution mode can be used for 16bit floatingpoint types. 
shaderRoundingModeRTEFloat32
is a boolean value indicating whether an implementation supports the roundtonearesteven rounding mode for 32bit floatingpoint arithmetic and conversion instructions. It also indicates whether theRoundingModeRTE
execution mode can be used for 32bit floatingpoint types. 
shaderRoundingModeRTEFloat64
is a boolean value indicating whether an implementation supports the roundtonearesteven rounding mode for 64bit floatingpoint arithmetic and conversion instructions. It also indicates whether theRoundingModeRTE
execution mode can be used for 64bit floatingpoint types. 
shaderRoundingModeRTZFloat16
is a boolean value indicating whether an implementation supports the roundtowardszero rounding mode for 16bit floatingpoint arithmetic and conversion instructions. It also indicates whether theRoundingModeRTZ
execution mode can be used for 16bit floatingpoint types. 
shaderRoundingModeRTZFloat32
is a boolean value indicating whether an implementation supports the roundtowardszero rounding mode for 32bit floatingpoint arithmetic and conversion instructions. It also indicates whether theRoundingModeRTZ
execution mode can be used for 32bit floatingpoint types. 
shaderRoundingModeRTZFloat64
is a boolean value indicating whether an implementation supports the roundtowardszero rounding mode for 64bit floatingpoint arithmetic and conversion instructions. It also indicates whether theRoundingModeRTZ
execution mode can be used for 64bit floatingpoint types.
Description
If the VkPhysicalDeviceFloatControlsPropertiesKHR
structure is
included in the pNext
chain of VkPhysicalDeviceProperties2, it
is filled with the implementationdependent limits.
See Also
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.
Copyright
Copyright (c) 20142019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.