spirv_tools_sys::val

Function validator_options_set_scalar_block_layout

Source
pub unsafe extern "C" fn validator_options_set_scalar_block_layout(
    opts: *mut ValidatorOptions,
    toggle: bool,
)
Expand description

Records whether the validator should use “scalar” block layout rules. Scalar layout rules are more permissive than relaxed block layout.

See Vulkan extnesion VK_EXT_scalar_block_layout. The scalar alignment is defined as follows:

  • scalar alignment of a scalar is the scalar size
  • scalar alignment of a vector is the scalar alignment of its component
  • scalar alignment of a matrix is the scalar alignment of its component
  • scalar alignment of an array is the scalar alignment of its element
  • scalar alignment of a struct is the max scalar alignment among its members

For a struct in Uniform, StorageClass, or PushConstant:

  • a member Offset must be a multiple of the member’s scalar alignment
  • ArrayStride or MatrixStride must be a multiple of the array or matrix scalar alignment