Structures
VkPhysicalDeviceFloatControlsProperties
Structure describing properties supported by VK_KHR_shader_float_controls
The VkPhysicalDeviceFloatControlsProperties structure is defined as:
typedef struct VkPhysicalDeviceFloatControlsProperties {
VkStructureType sType;
void* pNext;
VkShaderFloatControlsIndependence denormBehaviorIndependence;
VkShaderFloatControlsIndependence 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;
} VkPhysicalDeviceFloatControlsProperties;
pub struct PhysicalDeviceFloatControlsProperties {
s_type: vk::StructureType,
p_next: *mut c_void,
denorm_behavior_independence: vk::ShaderFloatControlsIndependence,
rounding_mode_independence: vk::ShaderFloatControlsIndependence,
shader_signed_zero_inf_nan_preserve_float16: vk::Bool32, // An implementation can preserve signed zero, nan, inf
shader_signed_zero_inf_nan_preserve_float32: vk::Bool32, // An implementation can preserve signed zero, nan, inf
shader_signed_zero_inf_nan_preserve_float64: vk::Bool32, // An implementation can preserve signed zero, nan, inf
shader_denorm_preserve_float16: vk::Bool32, // An implementation can preserve denormals
shader_denorm_preserve_float32: vk::Bool32, // An implementation can preserve denormals
shader_denorm_preserve_float64: vk::Bool32, // An implementation can preserve denormals
shader_denorm_flush_to_zero_float16: vk::Bool32, // An implementation can flush to zero denormals
shader_denorm_flush_to_zero_float32: vk::Bool32, // An implementation can flush to zero denormals
shader_denorm_flush_to_zero_float64: vk::Bool32, // An implementation can flush to zero denormals
shader_rounding_mode_rte_float16: vk::Bool32, // An implementation can support RTE
shader_rounding_mode_rte_float32: vk::Bool32, // An implementation can support RTE
shader_rounding_mode_rte_float64: vk::Bool32, // An implementation can support RTE
shader_rounding_mode_rtz_float16: vk::Bool32, // An implementation can support RTZ
shader_rounding_mode_rtz_float32: vk::Bool32, // An implementation can support RTZ
shader_rounding_mode_rtz_float64: vk::Bool32, // An implementation can support RTZ
}
typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
type PhysicalDeviceFloatControlsPropertiesKHR = vk::PhysicalDeviceFloatControlsProperties;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.- EXTENSION FEATURES DENORMBEHAVIORINDEPENDENCE
denormBehaviorIndependenceis a VkShaderFloatControlsIndependence value indicating whether, and how, denorm behavior can be set independently for different bit widths. - EXTENSION FEATURES ROUNDINGMODEINDEPENDENCE
roundingModeIndependenceis a VkShaderFloatControlsIndependence value indicating whether, and how, rounding modes can be set independently for different bit widths. - EXTENSION LIMITS SHADERSIGNEDZEROINFNANPRESERVEFLOAT16
shaderSignedZeroInfNanPreserveFloat16is a boolean value indicating whether sign of a zero, Nans and can be preserved in 16-bit floating-point computations. It also indicates whether theSignedZeroInfNanPreserveexecution mode can be used for 16-bit floating-point types. - EXTENSION LIMITS SHADERSIGNEDZEROINFNANPRESERVEFLOAT32
shaderSignedZeroInfNanPreserveFloat32is a boolean value indicating whether sign of a zero, Nans and can be preserved in 32-bit floating-point computations. It also indicates whether theSignedZeroInfNanPreserveexecution mode can be used for 32-bit floating-point types. - EXTENSION LIMITS SHADERSIGNEDZEROINFNANPRESERVEFLOAT64
shaderSignedZeroInfNanPreserveFloat64is a boolean value indicating whether sign of a zero, Nans and can be preserved in 64-bit floating-point computations. It also indicates whether theSignedZeroInfNanPreserveexecution mode can be used for 64-bit floating-point types. - EXTENSION LIMITS SHADERDENORMPRESERVEFLOAT16
shaderDenormPreserveFloat16is a boolean value indicating whether denormals can be preserved in 16-bit floating-point computations. It also indicates whether theDenormPreserveexecution mode can be used for 16-bit floating-point types. - EXTENSION LIMITS SHADERDENORMPRESERVEFLOAT32
shaderDenormPreserveFloat32is a boolean value indicating whether denormals can be preserved in 32-bit floating-point computations. It also indicates whether theDenormPreserveexecution mode can be used for 32-bit floating-point types. - EXTENSION LIMITS SHADERDENORMPRESERVEFLOAT64
shaderDenormPreserveFloat64is a boolean value indicating whether denormals can be preserved in 64-bit floating-point computations. It also indicates whether theDenormPreserveexecution mode can be used for 64-bit floating-point types. - EXTENSION LIMITS SHADERDENORMFLUSHTOZEROFLOAT16
shaderDenormFlushToZeroFloat16is a boolean value indicating whether denormals can be flushed to zero in 16-bit floating-point computations. It also indicates whether theDenormFlushToZeroexecution mode can be used for 16-bit floating-point types. - EXTENSION LIMITS SHADERDENORMFLUSHTOZEROFLOAT32
shaderDenormFlushToZeroFloat32is a boolean value indicating whether denormals can be flushed to zero in 32-bit floating-point computations. It also indicates whether theDenormFlushToZeroexecution mode can be used for 32-bit floating-point types. - EXTENSION LIMITS SHADERDENORMFLUSHTOZEROFLOAT64
shaderDenormFlushToZeroFloat64is a boolean value indicating whether denormals can be flushed to zero in 64-bit floating-point computations. It also indicates whether theDenormFlushToZeroexecution mode can be used for 64-bit floating-point types. - EXTENSION LIMITS SHADERROUNDINGMODERTEFLOAT16
shaderRoundingModeRTEFloat16is a boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 16-bit floating-point arithmetic and conversion instructions. It also indicates whether theRoundingModeRTEexecution mode can be used for 16-bit floating-point types. - EXTENSION LIMITS SHADERROUNDINGMODERTEFLOAT32
shaderRoundingModeRTEFloat32is a boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 32-bit floating-point arithmetic and conversion instructions. It also indicates whether theRoundingModeRTEexecution mode can be used for 32-bit floating-point types. - EXTENSION LIMITS SHADERROUNDINGMODERTEFLOAT64
shaderRoundingModeRTEFloat64is a boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 64-bit floating-point arithmetic and conversion instructions. It also indicates whether theRoundingModeRTEexecution mode can be used for 64-bit floating-point types. - EXTENSION LIMITS SHADERROUNDINGMODERTZFLOAT16
shaderRoundingModeRTZFloat16is a boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 16-bit floating-point arithmetic and conversion instructions. It also indicates whether theRoundingModeRTZexecution mode can be used for 16-bit floating-point types. - EXTENSION LIMITS SHADERROUNDINGMODERTZFLOAT32
shaderRoundingModeRTZFloat32is a boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 32-bit floating-point arithmetic and conversion instructions. It also indicates whether theRoundingModeRTZexecution mode can be used for 32-bit floating-point types. - EXTENSION LIMITS SHADERROUNDINGMODERTZFLOAT64
shaderRoundingModeRTZFloat64is a boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 64-bit floating-point arithmetic and conversion instructions. It also indicates whether theRoundingModeRTZexecution mode can be used for 64-bit floating-point types.
If the VkPhysicalDeviceFloatControlsProperties structure is included in the pNext chain of the
VkPhysicalDeviceProperties2 structure passed to
vkGetPhysicalDeviceProperties2, it is filled in with each
corresponding implementation-dependent property.
Valid Usage (Implicit)
VUID-VkPhysicalDeviceFloatControlsProperties-sType-sType
sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES