{-# language CPP #-}
{-# language OverloadedLists #-}
{-# language TupleSections #-}
-- No documentation found for Chapter "SPIRVRequirements"
module Vulkan.SPIRVRequirements  ( spirvExtensionRequirements
                                 , spirvCapabilityRequirements
                                 ) where

import Vulkan.Requirement (DeviceRequirement(..))
import Vulkan.Requirement (InstanceRequirement(..))
import Data.Bits ((.&.))
import Data.Bits (zeroBits)
import Data.Bits (Bits)
import Data.ByteString (ByteString)
import Vulkan.Core10.Handles (Instance)
import Vulkan.Core10.Handles (PhysicalDevice)
import Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage (PhysicalDevice16BitStorageFeatures(..))
import Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT(..))
import Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV(..))
import Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV(..))
import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures(..))
import Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT(..))
import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR(..))
import Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)
import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR(..))
import Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT(..))
import Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR(..))
import Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM(..))
import Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures(..))
import Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR(..))
import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (PhysicalDeviceRayTracingMaintenance1FeaturesKHR(..))
import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV(..))
import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR(..))
import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT(..))
import Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT(..))
import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)
import Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures(..))
import Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures(..))
import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(..))
import Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV(..))
import Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)
import Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures(..))
import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(..))
import Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV(..))
import Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV(..))
import Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT(..))
import Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures(..))
import Vulkan.Core12 (PhysicalDeviceVulkan11Features(..))
import Vulkan.Core12 (PhysicalDeviceVulkan11Properties)
import Vulkan.Core12 (PhysicalDeviceVulkan11Properties(..))
import Vulkan.Core12 (PhysicalDeviceVulkan12Features(..))
import Vulkan.Core12 (PhysicalDeviceVulkan12Properties)
import Vulkan.Core12 (PhysicalDeviceVulkan12Properties(..))
import Vulkan.Core13 (PhysicalDeviceVulkan13Features(..))
import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(..))
import Vulkan.Extensions.VK_AMD_gcn_shader (pattern AMD_GCN_SHADER_EXTENSION_NAME)
import Vulkan.Extensions.VK_AMD_gpu_shader_half_float (pattern AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME)
import Vulkan.Extensions.VK_AMD_gpu_shader_int16 (pattern AMD_GPU_SHADER_INT16_EXTENSION_NAME)
import Vulkan.Extensions.VK_AMD_shader_ballot (pattern AMD_SHADER_BALLOT_EXTENSION_NAME)
import Vulkan.Extensions.VK_AMD_shader_explicit_vertex_parameter (pattern AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME)
import Vulkan.Extensions.VK_AMD_shader_fragment_mask (pattern AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME)
import Vulkan.Extensions.VK_AMD_shader_image_load_store_lod (pattern AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME)
import Vulkan.Extensions.VK_AMD_shader_trinary_minmax (pattern AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME)
import Vulkan.Extensions.VK_AMD_texture_gather_bias_lod (pattern AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_buffer_device_address (pattern EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_descriptor_indexing (pattern EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_fragment_density_map (pattern EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_fragment_shader_interlock (pattern EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_mesh_shader (pattern EXT_MESH_SHADER_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_post_depth_coverage (pattern EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_shader_atomic_float (pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (pattern EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_shader_stencil_export (pattern EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_shader_subgroup_ballot (pattern EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_shader_subgroup_vote (pattern EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_shader_viewport_index_layer (pattern EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME)
import Vulkan.Extensions.VK_EXT_transform_feedback (pattern EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME)
import Vulkan.Extensions.VK_GOOGLE_decorate_string (pattern GOOGLE_DECORATE_STRING_EXTENSION_NAME)
import Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1 (pattern GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME)
import Vulkan.Extensions.VK_GOOGLE_user_type (pattern GOOGLE_USER_TYPE_EXTENSION_NAME)
import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (pattern INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_16bit_storage (pattern KHR_16BIT_STORAGE_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_8bit_storage (pattern KHR_8BIT_STORAGE_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_acceleration_structure (pattern KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_buffer_device_address (pattern KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_create_renderpass2 (pattern KHR_CREATE_RENDERPASS_2_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_deferred_host_operations (pattern KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_device_group_creation (pattern KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_device_group (pattern KHR_DEVICE_GROUP_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_format_feature_flags2 (pattern KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_fragment_shading_rate (pattern KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_get_memory_requirements2 (pattern KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_get_physical_device_properties2 (pattern KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_maintenance2 (pattern KHR_MAINTENANCE_2_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_maintenance3 (pattern KHR_MAINTENANCE_3_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_multiview (pattern KHR_MULTIVIEW_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_ray_query (pattern KHR_RAY_QUERY_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (pattern KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (pattern KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_shader_atomic_int64 (pattern KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_shader_clock (pattern KHR_SHADER_CLOCK_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_shader_draw_parameters (pattern KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_shader_float16_int8 (pattern KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_shader_float_controls (pattern KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_shader_integer_dot_product (pattern KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_shader_non_semantic_info (pattern KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (pattern KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_shader_terminate_invocation (pattern KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_spirv_1_4 (pattern KHR_SPIRV_1_4_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_storage_buffer_storage_class (pattern KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_variable_pointers (pattern KHR_VARIABLE_POINTERS_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_vulkan_memory_model (pattern KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME)
import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME)
import Vulkan.Version (pattern MAKE_API_VERSION)
import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (pattern NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_compute_shader_derivatives (pattern NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_cooperative_matrix (pattern NV_COOPERATIVE_MATRIX_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_fragment_shader_barycentric (pattern NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_geometry_shader_passthrough (pattern NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_mesh_shader (pattern NV_MESH_SHADER_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_ray_tracing (pattern NV_RAY_TRACING_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (pattern NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_sample_mask_override_coverage (pattern NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_shader_image_footprint (pattern NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_shader_sm_builtins (pattern NV_SHADER_SM_BUILTINS_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_shader_subgroup_partitioned (pattern NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_shading_rate_image (pattern NV_SHADING_RATE_IMAGE_EXTENSION_NAME)
import Vulkan.Extensions.VK_NV_viewport_array2 (pattern NV_VIEWPORT_ARRAY_2_EXTENSION_NAME)
import Vulkan.Extensions.VK_QCOM_image_processing (pattern QCOM_IMAGE_PROCESSING_EXTENSION_NAME)
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_ARITHMETIC_BIT))
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_BALLOT_BIT))
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_BASIC_BIT))
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_CLUSTERED_BIT))
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_PARTITIONED_BIT_NV))
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_QUAD_BIT))
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_SHUFFLE_BIT))
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT))
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)
import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_VOTE_BIT))
-- | Check if the intersection of bits is non-zero
(.&&.) :: Bits a => a -> a -> Bool
a
x .&&. :: a -> a -> Bool
.&&. a
y = (a
x a -> a -> a
forall a. Bits a => a -> a -> a
.&. a
y) a -> a -> Bool
forall a. Eq a => a -> a -> Bool
/= a
forall a. Bits a => a
zeroBits

spirvExtensionRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])
spirvExtensionRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])
spirvExtensionRequirements = \case
  ByteString
"SPV_KHR_variable_pointers" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
  ByteString
"SPV_AMD_shader_explicit_vertex_parameter" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_AMD_gcn_shader" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
AMD_GCN_SHADER_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_AMD_gpu_shader_half_float" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_AMD_gpu_shader_int16" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
AMD_GPU_SHADER_INT16_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_AMD_shader_ballot" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
AMD_SHADER_BALLOT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_AMD_shader_fragment_mask" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_AMD_shader_image_load_store_lod" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_AMD_shader_trinary_minmax" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_AMD_texture_gather_bias_lod" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_shader_draw_parameters" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
  ByteString
"SPV_KHR_8bit_storage" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
  ByteString
"SPV_KHR_16bit_storage" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
  ByteString
"SPV_KHR_shader_clock" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_CLOCK_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_float_controls" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
  ByteString
"SPV_KHR_storage_buffer_storage_class" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
  ByteString
"SPV_KHR_post_depth_coverage" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_EXT_shader_stencil_export" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_shader_ballot" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_subgroup_vote" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_NV_sample_mask_override_coverage" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_NV_geometry_shader_passthrough" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_NV_mesh_shader" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_MESH_SHADER_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_NV_viewport_array2" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_NV_shader_subgroup_partitioned" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_EXT_shader_viewport_index_layer" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
  ByteString
"SPV_NVX_multiview_per_view_attributes" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MULTIVIEW_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_EXT_descriptor_indexing" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
  ByteString
"SPV_KHR_vulkan_memory_model" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
  ByteString
"SPV_NV_compute_shader_derivatives" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_NV_fragment_shader_barycentric" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_NV_shader_image_footprint" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_NV_shading_rate" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_SHADING_RATE_IMAGE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_NV_ray_tracing" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_RAY_TRACING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_ray_tracing" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SPIRV_1_4_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_ray_query" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_RAY_QUERY_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SPIRV_1_4_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_ray_cull_mask" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_GOOGLE_hlsl_functionality1" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_GOOGLE_user_type" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
GOOGLE_USER_TYPE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_GOOGLE_decorate_string" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
GOOGLE_DECORATE_STRING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_EXT_fragment_invocation_density" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_physical_storage_buffer" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
  ByteString
"SPV_EXT_physical_storage_buffer" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_NV_cooperative_matrix" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_COOPERATIVE_MATRIX_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_NV_shader_sm_builtins" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_SHADER_SM_BUILTINS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_EXT_fragment_shader_interlock" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_EXT_demote_to_helper_invocation" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0]
  ByteString
"SPV_KHR_fragment_shading_rate" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_CREATE_RENDERPASS_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MULTIVIEW_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_non_semantic_info" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0]
  ByteString
"SPV_EXT_shader_image_int64" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_terminate_invocation" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0]
  ByteString
"SPV_KHR_multiview" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
  ByteString
"SPV_KHR_workgroup_memory_explicit_layout" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_EXT_shader_atomic_float_add" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_fragment_shader_barycentric" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_subgroup_uniform_control_flow" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0]
  ByteString
"SPV_EXT_shader_atomic_float_min_max" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_EXT_shader_atomic_float16_add" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_integer_dot_product" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0]
  ByteString
"SPV_INTEL_shader_integer_functions" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_KHR_device_group" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
  ByteString
"SPV_QCOM_image_processing" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
QCOM_IMAGE_PROCESSING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SPV_EXT_mesh_shader" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_MESH_SHADER_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SPIRV_1_4_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
_ -> ([], [])

spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])
spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])
spirvCapabilityRequirements = \case
  ByteString
"Matrix" -> (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
  ByteString
"Shader" -> (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
  ByteString
"InputAttachment" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
  ByteString
"Sampled1D" -> (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
  ByteString
"Image1D"   -> (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
  ByteString
"SampledBuffer" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
  ByteString
"ImageBuffer" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
  ByteString
"ImageQuery" -> (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
  ByteString
"DerivativeControl" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
  ByteString
"Geometry" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"geometryShader"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
geometryShader :: Bool
geometryShader } -> Bool
geometryShader
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:geometryShader:PhysicalDeviceFeatures :: Bool
geometryShader = Bool
True, Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"Tessellation" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"tessellationShader"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
tessellationShader :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
tessellationShader } -> Bool
tessellationShader
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:tessellationShader:PhysicalDeviceFeatures :: Bool
tessellationShader = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"Float64" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderFloat64"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderFloat64 :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderFloat64 } -> Bool
shaderFloat64
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
shaderFloat64 = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"Int64" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderInt64"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderInt64 :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderInt64 } -> Bool
shaderInt64
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderInt64:PhysicalDeviceFeatures :: Bool
shaderInt64 = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"Int64Atomics" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderBufferInt64Atomics"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderBufferInt64Atomics :: Bool
shaderBufferInt64Atomics } -> Bool
shaderBufferInt64Atomics
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
shaderBufferInt64Atomics = Bool
True, Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"AtomicFloat16AddEXT" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderBufferFloat16AtomicAdd"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT { Bool
$sel:shaderBufferFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
shaderBufferFloat16AtomicAdd :: Bool
shaderBufferFloat16AtomicAdd } ->
                          Bool
shaderBufferFloat16AtomicAdd
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT
-> PhysicalDeviceShaderAtomicFloat2FeaturesEXT
enableFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT {Bool
$sel:sparseImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
sparseImageFloat32AtomicMinMax :: Bool
shaderImageFloat32AtomicMinMax :: Bool
shaderSharedFloat64AtomicMinMax :: Bool
shaderSharedFloat32AtomicMinMax :: Bool
shaderSharedFloat16AtomicMinMax :: Bool
shaderSharedFloat16AtomicAdd :: Bool
shaderSharedFloat16Atomics :: Bool
shaderBufferFloat64AtomicMinMax :: Bool
shaderBufferFloat32AtomicMinMax :: Bool
shaderBufferFloat16AtomicMinMax :: Bool
shaderBufferFloat16AtomicAdd :: Bool
shaderBufferFloat16Atomics :: Bool
$sel:shaderBufferFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
..} ->
                          PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceShaderAtomicFloat2FeaturesEXT
PhysicalDeviceShaderAtomicFloat2FeaturesEXT { $sel:shaderBufferFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
shaderBufferFloat16AtomicAdd = Bool
True, Bool
$sel:sparseImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
sparseImageFloat32AtomicMinMax :: Bool
shaderImageFloat32AtomicMinMax :: Bool
shaderSharedFloat64AtomicMinMax :: Bool
shaderSharedFloat32AtomicMinMax :: Bool
shaderSharedFloat16AtomicMinMax :: Bool
shaderSharedFloat16AtomicAdd :: Bool
shaderSharedFloat16Atomics :: Bool
shaderBufferFloat64AtomicMinMax :: Bool
shaderBufferFloat32AtomicMinMax :: Bool
shaderBufferFloat16AtomicMinMax :: Bool
shaderBufferFloat16Atomics :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"AtomicFloat32AddEXT" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderBufferFloat32AtomicAdd"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceShaderAtomicFloatFeaturesEXT { Bool
$sel:shaderBufferFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
shaderBufferFloat32AtomicAdd :: Bool
shaderBufferFloat32AtomicAdd } ->
                          Bool
shaderBufferFloat32AtomicAdd
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT
enableFeature = \PhysicalDeviceShaderAtomicFloatFeaturesEXT {Bool
$sel:sparseImageFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:sparseImageFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderImageFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderImageFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderSharedFloat64AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderSharedFloat64Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderSharedFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderSharedFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderBufferFloat64AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderBufferFloat64Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderBufferFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
sparseImageFloat32AtomicAdd :: Bool
sparseImageFloat32Atomics :: Bool
shaderImageFloat32AtomicAdd :: Bool
shaderImageFloat32Atomics :: Bool
shaderSharedFloat64AtomicAdd :: Bool
shaderSharedFloat64Atomics :: Bool
shaderSharedFloat32AtomicAdd :: Bool
shaderSharedFloat32Atomics :: Bool
shaderBufferFloat64AtomicAdd :: Bool
shaderBufferFloat64Atomics :: Bool
shaderBufferFloat32AtomicAdd :: Bool
shaderBufferFloat32Atomics :: Bool
$sel:shaderBufferFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
..} ->
                          PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT
PhysicalDeviceShaderAtomicFloatFeaturesEXT { $sel:shaderBufferFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
shaderBufferFloat32AtomicAdd = Bool
True, Bool
$sel:sparseImageFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:sparseImageFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderImageFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderImageFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderSharedFloat64AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderSharedFloat64Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderSharedFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderSharedFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderBufferFloat64AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderBufferFloat64Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderBufferFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
sparseImageFloat32AtomicAdd :: Bool
sparseImageFloat32Atomics :: Bool
shaderImageFloat32AtomicAdd :: Bool
shaderImageFloat32Atomics :: Bool
shaderSharedFloat64AtomicAdd :: Bool
shaderSharedFloat64Atomics :: Bool
shaderSharedFloat32AtomicAdd :: Bool
shaderSharedFloat32Atomics :: Bool
shaderBufferFloat64AtomicAdd :: Bool
shaderBufferFloat64Atomics :: Bool
shaderBufferFloat32Atomics :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"AtomicFloat64AddEXT" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderBufferFloat64AtomicAdd"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceShaderAtomicFloatFeaturesEXT { Bool
shaderBufferFloat64AtomicAdd :: Bool
$sel:shaderBufferFloat64AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
shaderBufferFloat64AtomicAdd } ->
                          Bool
shaderBufferFloat64AtomicAdd
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT
enableFeature = \PhysicalDeviceShaderAtomicFloatFeaturesEXT {Bool
sparseImageFloat32AtomicAdd :: Bool
sparseImageFloat32Atomics :: Bool
shaderImageFloat32AtomicAdd :: Bool
shaderImageFloat32Atomics :: Bool
shaderSharedFloat64AtomicAdd :: Bool
shaderSharedFloat64Atomics :: Bool
shaderSharedFloat32AtomicAdd :: Bool
shaderSharedFloat32Atomics :: Bool
shaderBufferFloat64AtomicAdd :: Bool
shaderBufferFloat64Atomics :: Bool
shaderBufferFloat32AtomicAdd :: Bool
shaderBufferFloat32Atomics :: Bool
$sel:sparseImageFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:sparseImageFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderImageFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderImageFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderSharedFloat64AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderSharedFloat64Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderSharedFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderSharedFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderBufferFloat64AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderBufferFloat64Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderBufferFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$sel:shaderBufferFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
..} ->
                          PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT
PhysicalDeviceShaderAtomicFloatFeaturesEXT { $sel:shaderBufferFloat64AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
shaderBufferFloat64AtomicAdd = Bool
True, Bool
sparseImageFloat32AtomicAdd :: Bool
sparseImageFloat32Atomics :: Bool
shaderImageFloat32AtomicAdd :: Bool
shaderImageFloat32Atomics :: Bool
shaderSharedFloat64AtomicAdd :: Bool
shaderSharedFloat64Atomics :: Bool
shaderSharedFloat32AtomicAdd :: Bool
shaderSharedFloat32Atomics :: Bool
shaderBufferFloat64Atomics :: Bool
shaderBufferFloat32AtomicAdd :: Bool
shaderBufferFloat32Atomics :: Bool
$sel:sparseImageFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:sparseImageFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderImageFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderImageFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderSharedFloat64AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderSharedFloat64Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderSharedFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderSharedFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderBufferFloat64Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderBufferFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
$sel:shaderBufferFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"AtomicFloat16MinMaxEXT" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderBufferFloat16AtomicMinMax"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT { Bool
shaderBufferFloat16AtomicMinMax :: Bool
$sel:shaderBufferFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
shaderBufferFloat16AtomicMinMax } ->
                          Bool
shaderBufferFloat16AtomicMinMax
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT
-> PhysicalDeviceShaderAtomicFloat2FeaturesEXT
enableFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT {Bool
sparseImageFloat32AtomicMinMax :: Bool
shaderImageFloat32AtomicMinMax :: Bool
shaderSharedFloat64AtomicMinMax :: Bool
shaderSharedFloat32AtomicMinMax :: Bool
shaderSharedFloat16AtomicMinMax :: Bool
shaderSharedFloat16AtomicAdd :: Bool
shaderSharedFloat16Atomics :: Bool
shaderBufferFloat64AtomicMinMax :: Bool
shaderBufferFloat32AtomicMinMax :: Bool
shaderBufferFloat16AtomicMinMax :: Bool
shaderBufferFloat16AtomicAdd :: Bool
shaderBufferFloat16Atomics :: Bool
$sel:sparseImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
..} ->
                          PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceShaderAtomicFloat2FeaturesEXT
PhysicalDeviceShaderAtomicFloat2FeaturesEXT { $sel:shaderBufferFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
shaderBufferFloat16AtomicMinMax = Bool
True, Bool
sparseImageFloat32AtomicMinMax :: Bool
shaderImageFloat32AtomicMinMax :: Bool
shaderSharedFloat64AtomicMinMax :: Bool
shaderSharedFloat32AtomicMinMax :: Bool
shaderSharedFloat16AtomicMinMax :: Bool
shaderSharedFloat16AtomicAdd :: Bool
shaderSharedFloat16Atomics :: Bool
shaderBufferFloat64AtomicMinMax :: Bool
shaderBufferFloat32AtomicMinMax :: Bool
shaderBufferFloat16AtomicAdd :: Bool
shaderBufferFloat16Atomics :: Bool
$sel:sparseImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"AtomicFloat32MinMaxEXT" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderBufferFloat32AtomicMinMax"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT { Bool
shaderBufferFloat32AtomicMinMax :: Bool
$sel:shaderBufferFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
shaderBufferFloat32AtomicMinMax } ->
                          Bool
shaderBufferFloat32AtomicMinMax
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT
-> PhysicalDeviceShaderAtomicFloat2FeaturesEXT
enableFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT {Bool
sparseImageFloat32AtomicMinMax :: Bool
shaderImageFloat32AtomicMinMax :: Bool
shaderSharedFloat64AtomicMinMax :: Bool
shaderSharedFloat32AtomicMinMax :: Bool
shaderSharedFloat16AtomicMinMax :: Bool
shaderSharedFloat16AtomicAdd :: Bool
shaderSharedFloat16Atomics :: Bool
shaderBufferFloat64AtomicMinMax :: Bool
shaderBufferFloat32AtomicMinMax :: Bool
shaderBufferFloat16AtomicMinMax :: Bool
shaderBufferFloat16AtomicAdd :: Bool
shaderBufferFloat16Atomics :: Bool
$sel:sparseImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
..} ->
                          PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceShaderAtomicFloat2FeaturesEXT
PhysicalDeviceShaderAtomicFloat2FeaturesEXT { $sel:shaderBufferFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
shaderBufferFloat32AtomicMinMax = Bool
True, Bool
sparseImageFloat32AtomicMinMax :: Bool
shaderImageFloat32AtomicMinMax :: Bool
shaderSharedFloat64AtomicMinMax :: Bool
shaderSharedFloat32AtomicMinMax :: Bool
shaderSharedFloat16AtomicMinMax :: Bool
shaderSharedFloat16AtomicAdd :: Bool
shaderSharedFloat16Atomics :: Bool
shaderBufferFloat64AtomicMinMax :: Bool
shaderBufferFloat16AtomicMinMax :: Bool
shaderBufferFloat16AtomicAdd :: Bool
shaderBufferFloat16Atomics :: Bool
$sel:sparseImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"AtomicFloat64MinMaxEXT" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderBufferFloat64AtomicMinMax"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT { Bool
shaderBufferFloat64AtomicMinMax :: Bool
$sel:shaderBufferFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
shaderBufferFloat64AtomicMinMax } ->
                          Bool
shaderBufferFloat64AtomicMinMax
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT
-> PhysicalDeviceShaderAtomicFloat2FeaturesEXT
enableFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT {Bool
sparseImageFloat32AtomicMinMax :: Bool
shaderImageFloat32AtomicMinMax :: Bool
shaderSharedFloat64AtomicMinMax :: Bool
shaderSharedFloat32AtomicMinMax :: Bool
shaderSharedFloat16AtomicMinMax :: Bool
shaderSharedFloat16AtomicAdd :: Bool
shaderSharedFloat16Atomics :: Bool
shaderBufferFloat64AtomicMinMax :: Bool
shaderBufferFloat32AtomicMinMax :: Bool
shaderBufferFloat16AtomicMinMax :: Bool
shaderBufferFloat16AtomicAdd :: Bool
shaderBufferFloat16Atomics :: Bool
$sel:sparseImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderSharedFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
$sel:shaderBufferFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool
..} ->
                          PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceShaderAtomicFloat2FeaturesEXT
PhysicalDeviceShaderAtomicFloat2FeaturesEXT { $sel:shaderBufferFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
shaderBufferFloat64AtomicMinMax = Bool
True, Bool
sparseImageFloat32AtomicMinMax :: Bool
shaderImageFloat32AtomicMinMax :: Bool
shaderSharedFloat64AtomicMinMax :: Bool
shaderSharedFloat32AtomicMinMax :: Bool
shaderSharedFloat16AtomicMinMax :: Bool
shaderSharedFloat16AtomicAdd :: Bool
shaderSharedFloat16Atomics :: Bool
shaderBufferFloat32AtomicMinMax :: Bool
shaderBufferFloat16AtomicMinMax :: Bool
shaderBufferFloat16AtomicAdd :: Bool
shaderBufferFloat16Atomics :: Bool
$sel:sparseImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderSharedFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
$sel:shaderBufferFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"Int64ImageEXT" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderImageInt64Atomics"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceShaderImageAtomicInt64FeaturesEXT { Bool
$sel:shaderImageInt64Atomics:PhysicalDeviceShaderImageAtomicInt64FeaturesEXT :: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT -> Bool
shaderImageInt64Atomics :: Bool
shaderImageInt64Atomics } ->
                          Bool
shaderImageInt64Atomics
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
-> PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
enableFeature = \PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {Bool
$sel:sparseImageInt64Atomics:PhysicalDeviceShaderImageAtomicInt64FeaturesEXT :: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT -> Bool
sparseImageInt64Atomics :: Bool
shaderImageInt64Atomics :: Bool
$sel:shaderImageInt64Atomics:PhysicalDeviceShaderImageAtomicInt64FeaturesEXT :: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT -> Bool
..} ->
                          PhysicalDeviceShaderImageAtomicInt64FeaturesEXT :: Bool -> Bool -> PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
PhysicalDeviceShaderImageAtomicInt64FeaturesEXT { $sel:shaderImageInt64Atomics:PhysicalDeviceShaderImageAtomicInt64FeaturesEXT :: Bool
shaderImageInt64Atomics = Bool
True, Bool
$sel:sparseImageInt64Atomics:PhysicalDeviceShaderImageAtomicInt64FeaturesEXT :: Bool
sparseImageInt64Atomics :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"Int16" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderInt16"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderInt16 :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderInt16 } -> Bool
shaderInt16
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderInt16:PhysicalDeviceFeatures :: Bool
shaderInt16 = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"TessellationPointSize" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderTessellationAndGeometryPointSize"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderTessellationAndGeometryPointSize :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderTessellationAndGeometryPointSize } ->
                          Bool
shaderTessellationAndGeometryPointSize
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} ->
                          PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
shaderTessellationAndGeometryPointSize = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"GeometryPointSize" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderTessellationAndGeometryPointSize"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderTessellationAndGeometryPointSize :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderTessellationAndGeometryPointSize } ->
                          Bool
shaderTessellationAndGeometryPointSize
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} ->
                          PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
shaderTessellationAndGeometryPointSize = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"ImageGatherExtended" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderImageGatherExtended"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderImageGatherExtended :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderImageGatherExtended } -> Bool
shaderImageGatherExtended
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
shaderImageGatherExtended = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"StorageImageMultisample" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderStorageImageMultisample"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderStorageImageMultisample :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderStorageImageMultisample } -> Bool
shaderStorageImageMultisample
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} ->
                          PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
shaderStorageImageMultisample = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"UniformBufferArrayDynamicIndexing" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderUniformBufferArrayDynamicIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderUniformBufferArrayDynamicIndexing } ->
                          Bool
shaderUniformBufferArrayDynamicIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} ->
                          PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
shaderUniformBufferArrayDynamicIndexing = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"SampledImageArrayDynamicIndexing" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderSampledImageArrayDynamicIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderSampledImageArrayDynamicIndexing :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderSampledImageArrayDynamicIndexing } ->
                          Bool
shaderSampledImageArrayDynamicIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} ->
                          PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
shaderSampledImageArrayDynamicIndexing = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"StorageBufferArrayDynamicIndexing" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderStorageBufferArrayDynamicIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderStorageBufferArrayDynamicIndexing } ->
                          Bool
shaderStorageBufferArrayDynamicIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} ->
                          PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
shaderStorageBufferArrayDynamicIndexing = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"StorageImageArrayDynamicIndexing" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderStorageImageArrayDynamicIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderStorageImageArrayDynamicIndexing :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderStorageImageArrayDynamicIndexing } ->
                          Bool
shaderStorageImageArrayDynamicIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} ->
                          PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
shaderStorageImageArrayDynamicIndexing = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"ClipDistance" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderClipDistance"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderClipDistance :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderClipDistance } -> Bool
shaderClipDistance
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
shaderClipDistance = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"CullDistance" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderCullDistance"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderCullDistance :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderCullDistance } -> Bool
shaderCullDistance
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
shaderCullDistance = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"ImageCubeArray" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"imageCubeArray"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
imageCubeArray :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
imageCubeArray } -> Bool
imageCubeArray
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
imageCubeArray = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"SampleRateShading" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"sampleRateShading"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
sampleRateShading :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
sampleRateShading } -> Bool
sampleRateShading
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
sampleRateShading = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"SparseResidency" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderResourceResidency"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderResourceResidency :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderResourceResidency } -> Bool
shaderResourceResidency
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
shaderResourceResidency = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"MinLod" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderResourceMinLod"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderResourceMinLod :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderResourceMinLod } -> Bool
shaderResourceMinLod
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
shaderResourceMinLod = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"SampledCubeArray" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"imageCubeArray"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
imageCubeArray :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
imageCubeArray } -> Bool
imageCubeArray
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
imageCubeArray = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"ImageMSArray" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderStorageImageMultisample"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderStorageImageMultisample :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderStorageImageMultisample } -> Bool
shaderStorageImageMultisample
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} ->
                          PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
shaderStorageImageMultisample = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"StorageImageExtendedFormats" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
  ByteString
"InterpolationFunction" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"sampleRateShading"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
sampleRateShading :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
sampleRateShading } -> Bool
sampleRateShading
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
sampleRateShading = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"StorageImageReadWithoutFormat" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderStorageImageReadWithoutFormat"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderStorageImageReadWithoutFormat :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderStorageImageReadWithoutFormat } ->
                          Bool
shaderStorageImageReadWithoutFormat
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} ->
                          PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
shaderStorageImageReadWithoutFormat = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"StorageImageWriteWithoutFormat" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderStorageImageWriteWithoutFormat"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
shaderStorageImageWriteWithoutFormat :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
shaderStorageImageWriteWithoutFormat } ->
                          Bool
shaderStorageImageWriteWithoutFormat
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} ->
                          PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
shaderStorageImageWriteWithoutFormat = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"MultiViewport" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"multiViewport"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> Bool
checkFeature  = \PhysicalDeviceFeatures { Bool
multiViewport :: Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
multiViewport } -> Bool
multiViewport
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFeatures -> PhysicalDeviceFeatures
enableFeature = \PhysicalDeviceFeatures {Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
multiViewport :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiViewport:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:largePoints:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:wideLines:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBounds:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:depthClamp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:logicOp:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:independentBlend:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
$sel:geometryShader:PhysicalDeviceFeatures :: PhysicalDeviceFeatures -> Bool
..} -> PhysicalDeviceFeatures :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFeatures
PhysicalDeviceFeatures { $sel:multiViewport:PhysicalDeviceFeatures :: Bool
multiViewport = Bool
True, Bool
inheritedQueries :: Bool
variableMultisampleRate :: Bool
sparseResidencyAliased :: Bool
sparseResidency16Samples :: Bool
sparseResidency8Samples :: Bool
sparseResidency4Samples :: Bool
sparseResidency2Samples :: Bool
sparseResidencyImage3D :: Bool
sparseResidencyImage2D :: Bool
sparseResidencyBuffer :: Bool
sparseBinding :: Bool
shaderResourceMinLod :: Bool
shaderResourceResidency :: Bool
shaderInt16 :: Bool
shaderInt64 :: Bool
shaderFloat64 :: Bool
shaderCullDistance :: Bool
shaderClipDistance :: Bool
shaderStorageImageArrayDynamicIndexing :: Bool
shaderStorageBufferArrayDynamicIndexing :: Bool
shaderSampledImageArrayDynamicIndexing :: Bool
shaderUniformBufferArrayDynamicIndexing :: Bool
shaderStorageImageWriteWithoutFormat :: Bool
shaderStorageImageReadWithoutFormat :: Bool
shaderStorageImageMultisample :: Bool
shaderStorageImageExtendedFormats :: Bool
shaderImageGatherExtended :: Bool
shaderTessellationAndGeometryPointSize :: Bool
fragmentStoresAndAtomics :: Bool
vertexPipelineStoresAndAtomics :: Bool
pipelineStatisticsQuery :: Bool
occlusionQueryPrecise :: Bool
textureCompressionBC :: Bool
textureCompressionASTC_LDR :: Bool
textureCompressionETC2 :: Bool
samplerAnisotropy :: Bool
alphaToOne :: Bool
largePoints :: Bool
wideLines :: Bool
depthBounds :: Bool
fillModeNonSolid :: Bool
depthBiasClamp :: Bool
depthClamp :: Bool
drawIndirectFirstInstance :: Bool
multiDrawIndirect :: Bool
logicOp :: Bool
dualSrcBlend :: Bool
sampleRateShading :: Bool
tessellationShader :: Bool
geometryShader :: Bool
independentBlend :: Bool
imageCubeArray :: Bool
fullDrawIndexUint32 :: Bool
robustBufferAccess :: Bool
$sel:inheritedQueries:PhysicalDeviceFeatures :: Bool
$sel:variableMultisampleRate:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyAliased:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency16Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency8Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency4Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidency2Samples:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage3D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyImage2D:PhysicalDeviceFeatures :: Bool
$sel:sparseResidencyBuffer:PhysicalDeviceFeatures :: Bool
$sel:sparseBinding:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceMinLod:PhysicalDeviceFeatures :: Bool
$sel:shaderResourceResidency:PhysicalDeviceFeatures :: Bool
$sel:shaderInt16:PhysicalDeviceFeatures :: Bool
$sel:shaderInt64:PhysicalDeviceFeatures :: Bool
$sel:shaderFloat64:PhysicalDeviceFeatures :: Bool
$sel:shaderCullDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderClipDistance:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures :: Bool
$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures :: Bool
$sel:shaderImageGatherExtended:PhysicalDeviceFeatures :: Bool
$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures :: Bool
$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures :: Bool
$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures :: Bool
$sel:occlusionQueryPrecise:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionBC:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures :: Bool
$sel:textureCompressionETC2:PhysicalDeviceFeatures :: Bool
$sel:samplerAnisotropy:PhysicalDeviceFeatures :: Bool
$sel:alphaToOne:PhysicalDeviceFeatures :: Bool
$sel:largePoints:PhysicalDeviceFeatures :: Bool
$sel:wideLines:PhysicalDeviceFeatures :: Bool
$sel:depthBounds:PhysicalDeviceFeatures :: Bool
$sel:fillModeNonSolid:PhysicalDeviceFeatures :: Bool
$sel:depthBiasClamp:PhysicalDeviceFeatures :: Bool
$sel:depthClamp:PhysicalDeviceFeatures :: Bool
$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures :: Bool
$sel:multiDrawIndirect:PhysicalDeviceFeatures :: Bool
$sel:logicOp:PhysicalDeviceFeatures :: Bool
$sel:dualSrcBlend:PhysicalDeviceFeatures :: Bool
$sel:sampleRateShading:PhysicalDeviceFeatures :: Bool
$sel:tessellationShader:PhysicalDeviceFeatures :: Bool
$sel:independentBlend:PhysicalDeviceFeatures :: Bool
$sel:imageCubeArray:PhysicalDeviceFeatures :: Bool
$sel:fullDrawIndexUint32:PhysicalDeviceFeatures :: Bool
$sel:robustBufferAccess:PhysicalDeviceFeatures :: Bool
$sel:geometryShader:PhysicalDeviceFeatures :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
0 Word32
0
    ]
  ByteString
"DrawParameters" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderDrawParameters"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> Bool
checkFeature  = \PhysicalDeviceVulkan11Features { Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
shaderDrawParameters :: Bool
shaderDrawParameters } -> Bool
shaderDrawParameters
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> PhysicalDeviceVulkan11Features
enableFeature = \PhysicalDeviceVulkan11Features {Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
..} ->
                          PhysicalDeviceVulkan11Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan11Features
PhysicalDeviceVulkan11Features { $sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: Bool
shaderDrawParameters = Bool
True, Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    ]
  ByteString
"MultiView" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"multiview"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> Bool
checkFeature  = \PhysicalDeviceVulkan11Features { Bool
multiview :: Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
multiview } -> Bool
multiview
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> PhysicalDeviceVulkan11Features
enableFeature = \PhysicalDeviceVulkan11Features {Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
..} -> PhysicalDeviceVulkan11Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan11Features
PhysicalDeviceVulkan11Features { $sel:multiview:PhysicalDeviceVulkan11Features :: Bool
multiview = Bool
True, Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    ]
  ByteString
"DeviceGroup" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
  ByteString
"VariablePointersStorageBuffer" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"variablePointersStorageBuffer"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> Bool
checkFeature  = \PhysicalDeviceVulkan11Features { Bool
variablePointersStorageBuffer :: Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
variablePointersStorageBuffer } ->
                          Bool
variablePointersStorageBuffer
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> PhysicalDeviceVulkan11Features
enableFeature = \PhysicalDeviceVulkan11Features {Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
..} ->
                          PhysicalDeviceVulkan11Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan11Features
PhysicalDeviceVulkan11Features { $sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: Bool
variablePointersStorageBuffer = Bool
True, Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    ]
  ByteString
"VariablePointers" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"variablePointers"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> Bool
checkFeature  = \PhysicalDeviceVulkan11Features { Bool
variablePointers :: Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
variablePointers } -> Bool
variablePointers
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> PhysicalDeviceVulkan11Features
enableFeature = \PhysicalDeviceVulkan11Features {Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
..} ->
                          PhysicalDeviceVulkan11Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan11Features
PhysicalDeviceVulkan11Features { $sel:variablePointers:PhysicalDeviceVulkan11Features :: Bool
variablePointers = Bool
True, Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    ]
  ByteString
"ShaderClockKHR" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_CLOCK_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"StencilExportEXT" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SubgroupBallotKHR" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SubgroupVoteKHR" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"ImageReadWriteLodAMD" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"ImageGatherBiasLodAMD" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"FragmentMaskAMD" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SampleMaskOverrideCoverageNV" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"GeometryShaderPassthroughNV" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"ShaderViewportIndex" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderOutputViewportIndex"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderOutputViewportIndex :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderOutputViewportIndex } -> Bool
shaderOutputViewportIndex
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
shaderOutputViewportIndex = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    ]
  ByteString
"ShaderLayer" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderOutputLayer"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderOutputLayer :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderOutputLayer } -> Bool
shaderOutputLayer
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
shaderOutputLayer = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    ]
  ByteString
"ShaderViewportIndexLayerEXT" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"ShaderViewportIndexLayerNV" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"ShaderViewportMaskNV" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"PerViewAttributesNV" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MULTIVIEW_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"StorageBuffer16BitAccess" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"storageBuffer16BitAccess"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> Bool
checkFeature  = \PhysicalDeviceVulkan11Features { Bool
storageBuffer16BitAccess :: Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
storageBuffer16BitAccess } -> Bool
storageBuffer16BitAccess
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> PhysicalDeviceVulkan11Features
enableFeature = \PhysicalDeviceVulkan11Features {Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
..} ->
                          PhysicalDeviceVulkan11Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan11Features
PhysicalDeviceVulkan11Features { $sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
storageBuffer16BitAccess = Bool
True, Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    ]
  ByteString
"UniformAndStorageBuffer16BitAccess" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"uniformAndStorageBuffer16BitAccess"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> Bool
checkFeature  = \PhysicalDeviceVulkan11Features { Bool
uniformAndStorageBuffer16BitAccess :: Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
uniformAndStorageBuffer16BitAccess } ->
                          Bool
uniformAndStorageBuffer16BitAccess
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> PhysicalDeviceVulkan11Features
enableFeature = \PhysicalDeviceVulkan11Features {Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
..} ->
                          PhysicalDeviceVulkan11Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan11Features
PhysicalDeviceVulkan11Features { $sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
uniformAndStorageBuffer16BitAccess = Bool
True, Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    ]
  ByteString
"StoragePushConstant16" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"storagePushConstant16"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> Bool
checkFeature  = \PhysicalDeviceVulkan11Features { Bool
storagePushConstant16 :: Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
storagePushConstant16 } -> Bool
storagePushConstant16
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> PhysicalDeviceVulkan11Features
enableFeature = \PhysicalDeviceVulkan11Features {Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
..} ->
                          PhysicalDeviceVulkan11Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan11Features
PhysicalDeviceVulkan11Features { $sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: Bool
storagePushConstant16 = Bool
True, Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    ]
  ByteString
"StorageInputOutput16" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"storageInputOutput16"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> Bool
checkFeature  = \PhysicalDeviceVulkan11Features { Bool
storageInputOutput16 :: Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
storageInputOutput16 } -> Bool
storageInputOutput16
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan11Features -> PhysicalDeviceVulkan11Features
enableFeature = \PhysicalDeviceVulkan11Features {Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storageInputOutput16 :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: PhysicalDeviceVulkan11Features -> Bool
..} ->
                          PhysicalDeviceVulkan11Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan11Features
PhysicalDeviceVulkan11Features { $sel:storageInputOutput16:PhysicalDeviceVulkan11Features :: Bool
storageInputOutput16 = Bool
True, Bool
shaderDrawParameters :: Bool
samplerYcbcrConversion :: Bool
protectedMemory :: Bool
variablePointers :: Bool
variablePointersStorageBuffer :: Bool
multiviewTessellationShader :: Bool
multiviewGeometryShader :: Bool
multiview :: Bool
storagePushConstant16 :: Bool
uniformAndStorageBuffer16BitAccess :: Bool
storageBuffer16BitAccess :: Bool
$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features :: Bool
$sel:protectedMemory:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointers:PhysicalDeviceVulkan11Features :: Bool
$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features :: Bool
$sel:multiview:PhysicalDeviceVulkan11Features :: Bool
$sel:storagePushConstant16:PhysicalDeviceVulkan11Features :: Bool
$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features :: Bool
$sel:shaderDrawParameters:PhysicalDeviceVulkan11Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    ]
  ByteString
"GroupNonUniform" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty
      { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan11Properties"
      , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan11Properties -> Bool
checkProperty = \PhysicalDeviceVulkan11Properties
p ->
        SubgroupFeatureFlagBits
SUBGROUP_FEATURE_BASIC_BIT SubgroupFeatureFlagBits -> SubgroupFeatureFlagBits -> Bool
forall a. Bits a => a -> a -> Bool
.&&. PhysicalDeviceVulkan11Properties -> SubgroupFeatureFlagBits
subgroupSupportedOperations (PhysicalDeviceVulkan11Properties
p :: PhysicalDeviceVulkan11Properties)
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0
    ]
  ByteString
"GroupNonUniformVote" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty
      { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan11Properties"
      , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan11Properties -> Bool
checkProperty = \PhysicalDeviceVulkan11Properties
p ->
        SubgroupFeatureFlagBits
SUBGROUP_FEATURE_VOTE_BIT SubgroupFeatureFlagBits -> SubgroupFeatureFlagBits -> Bool
forall a. Bits a => a -> a -> Bool
.&&. PhysicalDeviceVulkan11Properties -> SubgroupFeatureFlagBits
subgroupSupportedOperations (PhysicalDeviceVulkan11Properties
p :: PhysicalDeviceVulkan11Properties)
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0
    ]
  ByteString
"GroupNonUniformArithmetic" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty
      { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan11Properties"
      , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan11Properties -> Bool
checkProperty = \PhysicalDeviceVulkan11Properties
p ->
        SubgroupFeatureFlagBits
SUBGROUP_FEATURE_ARITHMETIC_BIT SubgroupFeatureFlagBits -> SubgroupFeatureFlagBits -> Bool
forall a. Bits a => a -> a -> Bool
.&&. PhysicalDeviceVulkan11Properties -> SubgroupFeatureFlagBits
subgroupSupportedOperations (PhysicalDeviceVulkan11Properties
p :: PhysicalDeviceVulkan11Properties)
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0
    ]
  ByteString
"GroupNonUniformBallot" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty
      { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan11Properties"
      , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan11Properties -> Bool
checkProperty = \PhysicalDeviceVulkan11Properties
p ->
        SubgroupFeatureFlagBits
SUBGROUP_FEATURE_BALLOT_BIT SubgroupFeatureFlagBits -> SubgroupFeatureFlagBits -> Bool
forall a. Bits a => a -> a -> Bool
.&&. PhysicalDeviceVulkan11Properties -> SubgroupFeatureFlagBits
subgroupSupportedOperations (PhysicalDeviceVulkan11Properties
p :: PhysicalDeviceVulkan11Properties)
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0
    ]
  ByteString
"GroupNonUniformShuffle" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty
      { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan11Properties"
      , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan11Properties -> Bool
checkProperty = \PhysicalDeviceVulkan11Properties
p ->
        SubgroupFeatureFlagBits
SUBGROUP_FEATURE_SHUFFLE_BIT SubgroupFeatureFlagBits -> SubgroupFeatureFlagBits -> Bool
forall a. Bits a => a -> a -> Bool
.&&. PhysicalDeviceVulkan11Properties -> SubgroupFeatureFlagBits
subgroupSupportedOperations (PhysicalDeviceVulkan11Properties
p :: PhysicalDeviceVulkan11Properties)
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0
    ]
  ByteString
"GroupNonUniformShuffleRelative" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty
      { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan11Properties"
      , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan11Properties -> Bool
checkProperty = \PhysicalDeviceVulkan11Properties
p ->
        SubgroupFeatureFlagBits
SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT SubgroupFeatureFlagBits -> SubgroupFeatureFlagBits -> Bool
forall a. Bits a => a -> a -> Bool
.&&. PhysicalDeviceVulkan11Properties -> SubgroupFeatureFlagBits
subgroupSupportedOperations (PhysicalDeviceVulkan11Properties
p :: PhysicalDeviceVulkan11Properties)
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0
    ]
  ByteString
"GroupNonUniformClustered" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty
      { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan11Properties"
      , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan11Properties -> Bool
checkProperty = \PhysicalDeviceVulkan11Properties
p ->
        SubgroupFeatureFlagBits
SUBGROUP_FEATURE_CLUSTERED_BIT SubgroupFeatureFlagBits -> SubgroupFeatureFlagBits -> Bool
forall a. Bits a => a -> a -> Bool
.&&. PhysicalDeviceVulkan11Properties -> SubgroupFeatureFlagBits
subgroupSupportedOperations (PhysicalDeviceVulkan11Properties
p :: PhysicalDeviceVulkan11Properties)
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0
    ]
  ByteString
"GroupNonUniformQuad" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty
      { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan11Properties"
      , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan11Properties -> Bool
checkProperty = \PhysicalDeviceVulkan11Properties
p ->
        SubgroupFeatureFlagBits
SUBGROUP_FEATURE_QUAD_BIT SubgroupFeatureFlagBits -> SubgroupFeatureFlagBits -> Bool
forall a. Bits a => a -> a -> Bool
.&&. PhysicalDeviceVulkan11Properties -> SubgroupFeatureFlagBits
subgroupSupportedOperations (PhysicalDeviceVulkan11Properties
p :: PhysicalDeviceVulkan11Properties)
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
1 Word32
0
    ]
  ByteString
"GroupNonUniformPartitionedNV" -> (,)
    []
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty
      { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan11Properties"
      , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan11Properties -> Bool
checkProperty = \PhysicalDeviceVulkan11Properties
p ->
        SubgroupFeatureFlagBits
SUBGROUP_FEATURE_PARTITIONED_BIT_NV SubgroupFeatureFlagBits -> SubgroupFeatureFlagBits -> Bool
forall a. Bits a => a -> a -> Bool
.&&. PhysicalDeviceVulkan11Properties -> SubgroupFeatureFlagBits
subgroupSupportedOperations (PhysicalDeviceVulkan11Properties
p :: PhysicalDeviceVulkan11Properties)
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SampleMaskPostDepthCoverage" -> (,)
    []
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"ShaderNonUniform" ->
    (,) [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0] [Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
  ByteString
"RuntimeDescriptorArray" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"runtimeDescriptorArray"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
runtimeDescriptorArray :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
runtimeDescriptorArray } -> Bool
runtimeDescriptorArray
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
runtimeDescriptorArray = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"InputAttachmentArrayDynamicIndexing" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderInputAttachmentArrayDynamicIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderInputAttachmentArrayDynamicIndexing } ->
                          Bool
shaderInputAttachmentArrayDynamicIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
shaderInputAttachmentArrayDynamicIndexing = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"UniformTexelBufferArrayDynamicIndexing" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderUniformTexelBufferArrayDynamicIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderUniformTexelBufferArrayDynamicIndexing } ->
                          Bool
shaderUniformTexelBufferArrayDynamicIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
shaderUniformTexelBufferArrayDynamicIndexing = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"StorageTexelBufferArrayDynamicIndexing" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderStorageTexelBufferArrayDynamicIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderStorageTexelBufferArrayDynamicIndexing } ->
                          Bool
shaderStorageTexelBufferArrayDynamicIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
shaderStorageTexelBufferArrayDynamicIndexing = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"UniformBufferArrayNonUniformIndexing" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderUniformBufferArrayNonUniformIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderUniformBufferArrayNonUniformIndexing } ->
                          Bool
shaderUniformBufferArrayNonUniformIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
shaderUniformBufferArrayNonUniformIndexing = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SampledImageArrayNonUniformIndexing" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderSampledImageArrayNonUniformIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderSampledImageArrayNonUniformIndexing } ->
                          Bool
shaderSampledImageArrayNonUniformIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
shaderSampledImageArrayNonUniformIndexing = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"StorageBufferArrayNonUniformIndexing" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderStorageBufferArrayNonUniformIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderStorageBufferArrayNonUniformIndexing } ->
                          Bool
shaderStorageBufferArrayNonUniformIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
shaderStorageBufferArrayNonUniformIndexing = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"StorageImageArrayNonUniformIndexing" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderStorageImageArrayNonUniformIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderStorageImageArrayNonUniformIndexing } ->
                          Bool
shaderStorageImageArrayNonUniformIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
shaderStorageImageArrayNonUniformIndexing = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"InputAttachmentArrayNonUniformIndexing" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderInputAttachmentArrayNonUniformIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderInputAttachmentArrayNonUniformIndexing } ->
                          Bool
shaderInputAttachmentArrayNonUniformIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
shaderInputAttachmentArrayNonUniformIndexing = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"UniformTexelBufferArrayNonUniformIndexing" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderUniformTexelBufferArrayNonUniformIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderUniformTexelBufferArrayNonUniformIndexing } ->
                          Bool
shaderUniformTexelBufferArrayNonUniformIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} -> PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features
                          { $sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing = Bool
True
                          , Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
..
                          }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"StorageTexelBufferArrayNonUniformIndexing" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderStorageTexelBufferArrayNonUniformIndexing"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderStorageTexelBufferArrayNonUniformIndexing } ->
                          Bool
shaderStorageTexelBufferArrayNonUniformIndexing
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} -> PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features
                          { $sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing = Bool
True
                          , Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
..
                          }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"Float16" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderFloat16"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderFloat16 :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderFloat16 } -> Bool
shaderFloat16
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
shaderFloat16 = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"Int8" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderInt8"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
shaderInt8 :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
shaderInt8 } -> Bool
shaderInt8
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} -> PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
shaderInt8 = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"StorageBuffer8BitAccess" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"storageBuffer8BitAccess"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
storageBuffer8BitAccess :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
storageBuffer8BitAccess } -> Bool
storageBuffer8BitAccess
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
storageBuffer8BitAccess = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_8BIT_STORAGE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"UniformAndStorageBuffer8BitAccess" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"uniformAndStorageBuffer8BitAccess"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
uniformAndStorageBuffer8BitAccess :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
uniformAndStorageBuffer8BitAccess } ->
                          Bool
uniformAndStorageBuffer8BitAccess
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
uniformAndStorageBuffer8BitAccess = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_8BIT_STORAGE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"StoragePushConstant8" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"storagePushConstant8"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
storagePushConstant8 :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
storagePushConstant8 } -> Bool
storagePushConstant8
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
storagePushConstant8 = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_8BIT_STORAGE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"VulkanMemoryModel" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"vulkanMemoryModel"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
vulkanMemoryModel :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
vulkanMemoryModel } -> Bool
vulkanMemoryModel
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
vulkanMemoryModel = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"VulkanMemoryModelDeviceScope" -> (,)
    [Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"vulkanMemoryModelDeviceScope"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
vulkanMemoryModelDeviceScope :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
vulkanMemoryModelDeviceScope } -> Bool
vulkanMemoryModelDeviceScope
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
vulkanMemoryModelDeviceScope = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"DenormPreserve" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan12Properties"
                            , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan12Properties -> Bool
checkProperty = \PhysicalDeviceVulkan12Properties
p -> PhysicalDeviceVulkan12Properties -> Bool
shaderDenormPreserveFloat16 (PhysicalDeviceVulkan12Properties
p :: PhysicalDeviceVulkan12Properties)
                            }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"DenormFlushToZero" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty
      { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan12Properties"
      , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan12Properties -> Bool
checkProperty = \PhysicalDeviceVulkan12Properties
p -> PhysicalDeviceVulkan12Properties -> Bool
shaderDenormFlushToZeroFloat16 (PhysicalDeviceVulkan12Properties
p :: PhysicalDeviceVulkan12Properties)
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"SignedZeroInfNanPreserve" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty
      { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan12Properties"
      , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan12Properties -> Bool
checkProperty = \PhysicalDeviceVulkan12Properties
p -> PhysicalDeviceVulkan12Properties -> Bool
shaderSignedZeroInfNanPreserveFloat16 (PhysicalDeviceVulkan12Properties
p :: PhysicalDeviceVulkan12Properties)
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"RoundingModeRTE" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan12Properties"
                            , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan12Properties -> Bool
checkProperty = \PhysicalDeviceVulkan12Properties
p -> PhysicalDeviceVulkan12Properties -> Bool
shaderRoundingModeRTEFloat16 (PhysicalDeviceVulkan12Properties
p :: PhysicalDeviceVulkan12Properties)
                            }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"RoundingModeRTZ" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceProperty :: forall struct.
KnownPropertyStruct struct =>
ByteString -> (struct -> Bool) -> DeviceRequirement
RequireDeviceProperty { $sel:propertyName:RequireDeviceVersion :: ByteString
propertyName  = ByteString
"VkPhysicalDeviceVulkan12Properties"
                            , $sel:checkProperty:RequireDeviceVersion :: PhysicalDeviceVulkan12Properties -> Bool
checkProperty = \PhysicalDeviceVulkan12Properties
p -> PhysicalDeviceVulkan12Properties -> Bool
shaderRoundingModeRTZFloat16 (PhysicalDeviceVulkan12Properties
p :: PhysicalDeviceVulkan12Properties)
                            }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"ComputeDerivativeGroupQuadsNV" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"computeDerivativeGroupQuads"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceComputeShaderDerivativesFeaturesNV -> Bool
checkFeature  = \PhysicalDeviceComputeShaderDerivativesFeaturesNV { Bool
$sel:computeDerivativeGroupQuads:PhysicalDeviceComputeShaderDerivativesFeaturesNV :: PhysicalDeviceComputeShaderDerivativesFeaturesNV -> Bool
computeDerivativeGroupQuads :: Bool
computeDerivativeGroupQuads } ->
                          Bool
computeDerivativeGroupQuads
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceComputeShaderDerivativesFeaturesNV
-> PhysicalDeviceComputeShaderDerivativesFeaturesNV
enableFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesNV {Bool
$sel:computeDerivativeGroupLinear:PhysicalDeviceComputeShaderDerivativesFeaturesNV :: PhysicalDeviceComputeShaderDerivativesFeaturesNV -> Bool
computeDerivativeGroupLinear :: Bool
computeDerivativeGroupQuads :: Bool
$sel:computeDerivativeGroupQuads:PhysicalDeviceComputeShaderDerivativesFeaturesNV :: PhysicalDeviceComputeShaderDerivativesFeaturesNV -> Bool
..} ->
                          PhysicalDeviceComputeShaderDerivativesFeaturesNV :: Bool -> Bool -> PhysicalDeviceComputeShaderDerivativesFeaturesNV
PhysicalDeviceComputeShaderDerivativesFeaturesNV { $sel:computeDerivativeGroupQuads:PhysicalDeviceComputeShaderDerivativesFeaturesNV :: Bool
computeDerivativeGroupQuads = Bool
True, Bool
$sel:computeDerivativeGroupLinear:PhysicalDeviceComputeShaderDerivativesFeaturesNV :: Bool
computeDerivativeGroupLinear :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"ComputeDerivativeGroupLinearNV" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"computeDerivativeGroupLinear"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceComputeShaderDerivativesFeaturesNV -> Bool
checkFeature  = \PhysicalDeviceComputeShaderDerivativesFeaturesNV { Bool
computeDerivativeGroupLinear :: Bool
$sel:computeDerivativeGroupLinear:PhysicalDeviceComputeShaderDerivativesFeaturesNV :: PhysicalDeviceComputeShaderDerivativesFeaturesNV -> Bool
computeDerivativeGroupLinear } ->
                          Bool
computeDerivativeGroupLinear
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceComputeShaderDerivativesFeaturesNV
-> PhysicalDeviceComputeShaderDerivativesFeaturesNV
enableFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesNV {Bool
computeDerivativeGroupLinear :: Bool
computeDerivativeGroupQuads :: Bool
$sel:computeDerivativeGroupLinear:PhysicalDeviceComputeShaderDerivativesFeaturesNV :: PhysicalDeviceComputeShaderDerivativesFeaturesNV -> Bool
$sel:computeDerivativeGroupQuads:PhysicalDeviceComputeShaderDerivativesFeaturesNV :: PhysicalDeviceComputeShaderDerivativesFeaturesNV -> Bool
..} ->
                          PhysicalDeviceComputeShaderDerivativesFeaturesNV :: Bool -> Bool -> PhysicalDeviceComputeShaderDerivativesFeaturesNV
PhysicalDeviceComputeShaderDerivativesFeaturesNV { $sel:computeDerivativeGroupLinear:PhysicalDeviceComputeShaderDerivativesFeaturesNV :: Bool
computeDerivativeGroupLinear = Bool
True, Bool
computeDerivativeGroupQuads :: Bool
$sel:computeDerivativeGroupQuads:PhysicalDeviceComputeShaderDerivativesFeaturesNV :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"FragmentBarycentricNV" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"fragmentShaderBarycentric"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFragmentShaderBarycentricFeaturesKHR -> Bool
checkFeature  = \PhysicalDeviceFragmentShaderBarycentricFeaturesKHR { Bool
$sel:fragmentShaderBarycentric:PhysicalDeviceFragmentShaderBarycentricFeaturesKHR :: PhysicalDeviceFragmentShaderBarycentricFeaturesKHR -> Bool
fragmentShaderBarycentric :: Bool
fragmentShaderBarycentric } ->
                          Bool
fragmentShaderBarycentric
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
-> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
enableFeature = \PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
_ -> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR :: Bool -> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
PhysicalDeviceFragmentShaderBarycentricFeaturesKHR { $sel:fragmentShaderBarycentric:PhysicalDeviceFragmentShaderBarycentricFeaturesKHR :: Bool
fragmentShaderBarycentric = Bool
True }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"ImageFootprintNV" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"imageFootprint"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceShaderImageFootprintFeaturesNV -> Bool
checkFeature  = \PhysicalDeviceShaderImageFootprintFeaturesNV { Bool
$sel:imageFootprint:PhysicalDeviceShaderImageFootprintFeaturesNV :: PhysicalDeviceShaderImageFootprintFeaturesNV -> Bool
imageFootprint :: Bool
imageFootprint } -> Bool
imageFootprint
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceShaderImageFootprintFeaturesNV
-> PhysicalDeviceShaderImageFootprintFeaturesNV
enableFeature = \PhysicalDeviceShaderImageFootprintFeaturesNV
_ -> PhysicalDeviceShaderImageFootprintFeaturesNV :: Bool -> PhysicalDeviceShaderImageFootprintFeaturesNV
PhysicalDeviceShaderImageFootprintFeaturesNV { $sel:imageFootprint:PhysicalDeviceShaderImageFootprintFeaturesNV :: Bool
imageFootprint = Bool
True }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"ShadingRateNV" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shadingRateImage"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceShadingRateImageFeaturesNV -> Bool
checkFeature  = \PhysicalDeviceShadingRateImageFeaturesNV { Bool
$sel:shadingRateImage:PhysicalDeviceShadingRateImageFeaturesNV :: PhysicalDeviceShadingRateImageFeaturesNV -> Bool
shadingRateImage :: Bool
shadingRateImage } -> Bool
shadingRateImage
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceShadingRateImageFeaturesNV
-> PhysicalDeviceShadingRateImageFeaturesNV
enableFeature = \PhysicalDeviceShadingRateImageFeaturesNV {Bool
$sel:shadingRateCoarseSampleOrder:PhysicalDeviceShadingRateImageFeaturesNV :: PhysicalDeviceShadingRateImageFeaturesNV -> Bool
shadingRateCoarseSampleOrder :: Bool
shadingRateImage :: Bool
$sel:shadingRateImage:PhysicalDeviceShadingRateImageFeaturesNV :: PhysicalDeviceShadingRateImageFeaturesNV -> Bool
..} ->
                          PhysicalDeviceShadingRateImageFeaturesNV :: Bool -> Bool -> PhysicalDeviceShadingRateImageFeaturesNV
PhysicalDeviceShadingRateImageFeaturesNV { $sel:shadingRateImage:PhysicalDeviceShadingRateImageFeaturesNV :: Bool
shadingRateImage = Bool
True, Bool
$sel:shadingRateCoarseSampleOrder:PhysicalDeviceShadingRateImageFeaturesNV :: Bool
shadingRateCoarseSampleOrder :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_SHADING_RATE_IMAGE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"MeshShadingNV" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_MESH_SHADER_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"RayTracingKHR" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"rayTracingPipeline"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
checkFeature  = \PhysicalDeviceRayTracingPipelineFeaturesKHR { Bool
$sel:rayTracingPipeline:PhysicalDeviceRayTracingPipelineFeaturesKHR :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
rayTracingPipeline :: Bool
rayTracingPipeline } -> Bool
rayTracingPipeline
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceRayTracingPipelineFeaturesKHR
-> PhysicalDeviceRayTracingPipelineFeaturesKHR
enableFeature = \PhysicalDeviceRayTracingPipelineFeaturesKHR {Bool
$sel:rayTraversalPrimitiveCulling:PhysicalDeviceRayTracingPipelineFeaturesKHR :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
$sel:rayTracingPipelineTraceRaysIndirect:PhysicalDeviceRayTracingPipelineFeaturesKHR :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
$sel:rayTracingPipelineShaderGroupHandleCaptureReplayMixed:PhysicalDeviceRayTracingPipelineFeaturesKHR :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
$sel:rayTracingPipelineShaderGroupHandleCaptureReplay:PhysicalDeviceRayTracingPipelineFeaturesKHR :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
rayTraversalPrimitiveCulling :: Bool
rayTracingPipelineTraceRaysIndirect :: Bool
rayTracingPipelineShaderGroupHandleCaptureReplayMixed :: Bool
rayTracingPipelineShaderGroupHandleCaptureReplay :: Bool
rayTracingPipeline :: Bool
$sel:rayTracingPipeline:PhysicalDeviceRayTracingPipelineFeaturesKHR :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
..} ->
                          PhysicalDeviceRayTracingPipelineFeaturesKHR :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceRayTracingPipelineFeaturesKHR
PhysicalDeviceRayTracingPipelineFeaturesKHR { $sel:rayTracingPipeline:PhysicalDeviceRayTracingPipelineFeaturesKHR :: Bool
rayTracingPipeline = Bool
True, Bool
$sel:rayTraversalPrimitiveCulling:PhysicalDeviceRayTracingPipelineFeaturesKHR :: Bool
$sel:rayTracingPipelineTraceRaysIndirect:PhysicalDeviceRayTracingPipelineFeaturesKHR :: Bool
$sel:rayTracingPipelineShaderGroupHandleCaptureReplayMixed:PhysicalDeviceRayTracingPipelineFeaturesKHR :: Bool
$sel:rayTracingPipelineShaderGroupHandleCaptureReplay:PhysicalDeviceRayTracingPipelineFeaturesKHR :: Bool
rayTraversalPrimitiveCulling :: Bool
rayTracingPipelineTraceRaysIndirect :: Bool
rayTracingPipelineShaderGroupHandleCaptureReplayMixed :: Bool
rayTracingPipelineShaderGroupHandleCaptureReplay :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SPIRV_1_4_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"RayQueryKHR" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"rayQuery"
                           , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceRayQueryFeaturesKHR -> Bool
checkFeature  = \PhysicalDeviceRayQueryFeaturesKHR { Bool
$sel:rayQuery:PhysicalDeviceRayQueryFeaturesKHR :: PhysicalDeviceRayQueryFeaturesKHR -> Bool
rayQuery :: Bool
rayQuery } -> Bool
rayQuery
                           , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceRayQueryFeaturesKHR
-> PhysicalDeviceRayQueryFeaturesKHR
enableFeature = \PhysicalDeviceRayQueryFeaturesKHR
_ -> PhysicalDeviceRayQueryFeaturesKHR :: Bool -> PhysicalDeviceRayQueryFeaturesKHR
PhysicalDeviceRayQueryFeaturesKHR { $sel:rayQuery:PhysicalDeviceRayQueryFeaturesKHR :: Bool
rayQuery = Bool
True }
                           }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_RAY_QUERY_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SPIRV_1_4_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"RayTraversalPrimitiveCullingKHR" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"rayTraversalPrimitiveCulling"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
checkFeature  = \PhysicalDeviceRayTracingPipelineFeaturesKHR { Bool
rayTraversalPrimitiveCulling :: Bool
$sel:rayTraversalPrimitiveCulling:PhysicalDeviceRayTracingPipelineFeaturesKHR :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
rayTraversalPrimitiveCulling } ->
                          Bool
rayTraversalPrimitiveCulling
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceRayTracingPipelineFeaturesKHR
-> PhysicalDeviceRayTracingPipelineFeaturesKHR
enableFeature = \PhysicalDeviceRayTracingPipelineFeaturesKHR {Bool
rayTraversalPrimitiveCulling :: Bool
rayTracingPipelineTraceRaysIndirect :: Bool
rayTracingPipelineShaderGroupHandleCaptureReplayMixed :: Bool
rayTracingPipelineShaderGroupHandleCaptureReplay :: Bool
rayTracingPipeline :: Bool
$sel:rayTraversalPrimitiveCulling:PhysicalDeviceRayTracingPipelineFeaturesKHR :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
$sel:rayTracingPipelineTraceRaysIndirect:PhysicalDeviceRayTracingPipelineFeaturesKHR :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
$sel:rayTracingPipelineShaderGroupHandleCaptureReplayMixed:PhysicalDeviceRayTracingPipelineFeaturesKHR :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
$sel:rayTracingPipelineShaderGroupHandleCaptureReplay:PhysicalDeviceRayTracingPipelineFeaturesKHR :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
$sel:rayTracingPipeline:PhysicalDeviceRayTracingPipelineFeaturesKHR :: PhysicalDeviceRayTracingPipelineFeaturesKHR -> Bool
..} ->
                          PhysicalDeviceRayTracingPipelineFeaturesKHR :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceRayTracingPipelineFeaturesKHR
PhysicalDeviceRayTracingPipelineFeaturesKHR { $sel:rayTraversalPrimitiveCulling:PhysicalDeviceRayTracingPipelineFeaturesKHR :: Bool
rayTraversalPrimitiveCulling = Bool
True, Bool
rayTracingPipelineTraceRaysIndirect :: Bool
rayTracingPipelineShaderGroupHandleCaptureReplayMixed :: Bool
rayTracingPipelineShaderGroupHandleCaptureReplay :: Bool
rayTracingPipeline :: Bool
$sel:rayTracingPipelineTraceRaysIndirect:PhysicalDeviceRayTracingPipelineFeaturesKHR :: Bool
$sel:rayTracingPipelineShaderGroupHandleCaptureReplayMixed:PhysicalDeviceRayTracingPipelineFeaturesKHR :: Bool
$sel:rayTracingPipelineShaderGroupHandleCaptureReplay:PhysicalDeviceRayTracingPipelineFeaturesKHR :: Bool
$sel:rayTracingPipeline:PhysicalDeviceRayTracingPipelineFeaturesKHR :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SPIRV_1_4_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"RayCullMaskKHR" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"rayTracingMaintenance1"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceRayTracingMaintenance1FeaturesKHR -> Bool
checkFeature  = \PhysicalDeviceRayTracingMaintenance1FeaturesKHR { Bool
$sel:rayTracingMaintenance1:PhysicalDeviceRayTracingMaintenance1FeaturesKHR :: PhysicalDeviceRayTracingMaintenance1FeaturesKHR -> Bool
rayTracingMaintenance1 :: Bool
rayTracingMaintenance1 } ->
                          Bool
rayTracingMaintenance1
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceRayTracingMaintenance1FeaturesKHR
-> PhysicalDeviceRayTracingMaintenance1FeaturesKHR
enableFeature = \PhysicalDeviceRayTracingMaintenance1FeaturesKHR {Bool
$sel:rayTracingPipelineTraceRaysIndirect2:PhysicalDeviceRayTracingMaintenance1FeaturesKHR :: PhysicalDeviceRayTracingMaintenance1FeaturesKHR -> Bool
rayTracingPipelineTraceRaysIndirect2 :: Bool
rayTracingMaintenance1 :: Bool
$sel:rayTracingMaintenance1:PhysicalDeviceRayTracingMaintenance1FeaturesKHR :: PhysicalDeviceRayTracingMaintenance1FeaturesKHR -> Bool
..} ->
                          PhysicalDeviceRayTracingMaintenance1FeaturesKHR :: Bool -> Bool -> PhysicalDeviceRayTracingMaintenance1FeaturesKHR
PhysicalDeviceRayTracingMaintenance1FeaturesKHR { $sel:rayTracingMaintenance1:PhysicalDeviceRayTracingMaintenance1FeaturesKHR :: Bool
rayTracingMaintenance1 = Bool
True, Bool
$sel:rayTracingPipelineTraceRaysIndirect2:PhysicalDeviceRayTracingMaintenance1FeaturesKHR :: Bool
rayTracingPipelineTraceRaysIndirect2 :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"RayTracingNV" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_RAY_TRACING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"RayTracingMotionBlurNV" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"rayTracingMotionBlur"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceRayTracingMotionBlurFeaturesNV -> Bool
checkFeature  = \PhysicalDeviceRayTracingMotionBlurFeaturesNV { Bool
$sel:rayTracingMotionBlur:PhysicalDeviceRayTracingMotionBlurFeaturesNV :: PhysicalDeviceRayTracingMotionBlurFeaturesNV -> Bool
rayTracingMotionBlur :: Bool
rayTracingMotionBlur } -> Bool
rayTracingMotionBlur
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceRayTracingMotionBlurFeaturesNV
-> PhysicalDeviceRayTracingMotionBlurFeaturesNV
enableFeature = \PhysicalDeviceRayTracingMotionBlurFeaturesNV {Bool
$sel:rayTracingMotionBlurPipelineTraceRaysIndirect:PhysicalDeviceRayTracingMotionBlurFeaturesNV :: PhysicalDeviceRayTracingMotionBlurFeaturesNV -> Bool
rayTracingMotionBlurPipelineTraceRaysIndirect :: Bool
rayTracingMotionBlur :: Bool
$sel:rayTracingMotionBlur:PhysicalDeviceRayTracingMotionBlurFeaturesNV :: PhysicalDeviceRayTracingMotionBlurFeaturesNV -> Bool
..} ->
                          PhysicalDeviceRayTracingMotionBlurFeaturesNV :: Bool -> Bool -> PhysicalDeviceRayTracingMotionBlurFeaturesNV
PhysicalDeviceRayTracingMotionBlurFeaturesNV { $sel:rayTracingMotionBlur:PhysicalDeviceRayTracingMotionBlurFeaturesNV :: Bool
rayTracingMotionBlur = Bool
True, Bool
$sel:rayTracingMotionBlurPipelineTraceRaysIndirect:PhysicalDeviceRayTracingMotionBlurFeaturesNV :: Bool
rayTracingMotionBlurPipelineTraceRaysIndirect :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SPIRV_1_4_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_3_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"TransformFeedback" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"transformFeedback"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceTransformFeedbackFeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceTransformFeedbackFeaturesEXT { Bool
$sel:transformFeedback:PhysicalDeviceTransformFeedbackFeaturesEXT :: PhysicalDeviceTransformFeedbackFeaturesEXT -> Bool
transformFeedback :: Bool
transformFeedback } -> Bool
transformFeedback
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceTransformFeedbackFeaturesEXT
-> PhysicalDeviceTransformFeedbackFeaturesEXT
enableFeature = \PhysicalDeviceTransformFeedbackFeaturesEXT {Bool
$sel:geometryStreams:PhysicalDeviceTransformFeedbackFeaturesEXT :: PhysicalDeviceTransformFeedbackFeaturesEXT -> Bool
geometryStreams :: Bool
transformFeedback :: Bool
$sel:transformFeedback:PhysicalDeviceTransformFeedbackFeaturesEXT :: PhysicalDeviceTransformFeedbackFeaturesEXT -> Bool
..} ->
                          PhysicalDeviceTransformFeedbackFeaturesEXT :: Bool -> Bool -> PhysicalDeviceTransformFeedbackFeaturesEXT
PhysicalDeviceTransformFeedbackFeaturesEXT { $sel:transformFeedback:PhysicalDeviceTransformFeedbackFeaturesEXT :: Bool
transformFeedback = Bool
True, Bool
$sel:geometryStreams:PhysicalDeviceTransformFeedbackFeaturesEXT :: Bool
geometryStreams :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"GeometryStreams" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"geometryStreams"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceTransformFeedbackFeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceTransformFeedbackFeaturesEXT { Bool
geometryStreams :: Bool
$sel:geometryStreams:PhysicalDeviceTransformFeedbackFeaturesEXT :: PhysicalDeviceTransformFeedbackFeaturesEXT -> Bool
geometryStreams } -> Bool
geometryStreams
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceTransformFeedbackFeaturesEXT
-> PhysicalDeviceTransformFeedbackFeaturesEXT
enableFeature = \PhysicalDeviceTransformFeedbackFeaturesEXT {Bool
geometryStreams :: Bool
transformFeedback :: Bool
$sel:geometryStreams:PhysicalDeviceTransformFeedbackFeaturesEXT :: PhysicalDeviceTransformFeedbackFeaturesEXT -> Bool
$sel:transformFeedback:PhysicalDeviceTransformFeedbackFeaturesEXT :: PhysicalDeviceTransformFeedbackFeaturesEXT -> Bool
..} ->
                          PhysicalDeviceTransformFeedbackFeaturesEXT :: Bool -> Bool -> PhysicalDeviceTransformFeedbackFeaturesEXT
PhysicalDeviceTransformFeedbackFeaturesEXT { $sel:geometryStreams:PhysicalDeviceTransformFeedbackFeaturesEXT :: Bool
geometryStreams = Bool
True, Bool
transformFeedback :: Bool
$sel:transformFeedback:PhysicalDeviceTransformFeedbackFeaturesEXT :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"FragmentDensityEXT" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"fragmentDensityMap"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFragmentDensityMapFeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceFragmentDensityMapFeaturesEXT { Bool
$sel:fragmentDensityMap:PhysicalDeviceFragmentDensityMapFeaturesEXT :: PhysicalDeviceFragmentDensityMapFeaturesEXT -> Bool
fragmentDensityMap :: Bool
fragmentDensityMap } -> Bool
fragmentDensityMap
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFragmentDensityMapFeaturesEXT
-> PhysicalDeviceFragmentDensityMapFeaturesEXT
enableFeature = \PhysicalDeviceFragmentDensityMapFeaturesEXT {Bool
$sel:fragmentDensityMapNonSubsampledImages:PhysicalDeviceFragmentDensityMapFeaturesEXT :: PhysicalDeviceFragmentDensityMapFeaturesEXT -> Bool
$sel:fragmentDensityMapDynamic:PhysicalDeviceFragmentDensityMapFeaturesEXT :: PhysicalDeviceFragmentDensityMapFeaturesEXT -> Bool
fragmentDensityMapNonSubsampledImages :: Bool
fragmentDensityMapDynamic :: Bool
fragmentDensityMap :: Bool
$sel:fragmentDensityMap:PhysicalDeviceFragmentDensityMapFeaturesEXT :: PhysicalDeviceFragmentDensityMapFeaturesEXT -> Bool
..} ->
                          PhysicalDeviceFragmentDensityMapFeaturesEXT :: Bool -> Bool -> Bool -> PhysicalDeviceFragmentDensityMapFeaturesEXT
PhysicalDeviceFragmentDensityMapFeaturesEXT { $sel:fragmentDensityMap:PhysicalDeviceFragmentDensityMapFeaturesEXT :: Bool
fragmentDensityMap = Bool
True, Bool
$sel:fragmentDensityMapNonSubsampledImages:PhysicalDeviceFragmentDensityMapFeaturesEXT :: Bool
$sel:fragmentDensityMapDynamic:PhysicalDeviceFragmentDensityMapFeaturesEXT :: Bool
fragmentDensityMapNonSubsampledImages :: Bool
fragmentDensityMapDynamic :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"PhysicalStorageBufferAddresses" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"bufferDeviceAddress"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> Bool
checkFeature  = \PhysicalDeviceVulkan12Features { Bool
bufferDeviceAddress :: Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
bufferDeviceAddress } -> Bool
bufferDeviceAddress
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan12Features -> PhysicalDeviceVulkan12Features
enableFeature = \PhysicalDeviceVulkan12Features {Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
bufferDeviceAddress :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: PhysicalDeviceVulkan12Features -> Bool
..} ->
                          PhysicalDeviceVulkan12Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan12Features
PhysicalDeviceVulkan12Features { $sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features :: Bool
bufferDeviceAddress = Bool
True, Bool
subgroupBroadcastDynamicId :: Bool
shaderOutputLayer :: Bool
shaderOutputViewportIndex :: Bool
vulkanMemoryModelAvailabilityVisibilityChains :: Bool
vulkanMemoryModelDeviceScope :: Bool
vulkanMemoryModel :: Bool
bufferDeviceAddressMultiDevice :: Bool
bufferDeviceAddressCaptureReplay :: Bool
timelineSemaphore :: Bool
hostQueryReset :: Bool
separateDepthStencilLayouts :: Bool
shaderSubgroupExtendedTypes :: Bool
uniformBufferStandardLayout :: Bool
imagelessFramebuffer :: Bool
scalarBlockLayout :: Bool
samplerFilterMinmax :: Bool
runtimeDescriptorArray :: Bool
descriptorBindingVariableDescriptorCount :: Bool
descriptorBindingPartiallyBound :: Bool
descriptorBindingUpdateUnusedWhilePending :: Bool
descriptorBindingStorageTexelBufferUpdateAfterBind :: Bool
descriptorBindingUniformTexelBufferUpdateAfterBind :: Bool
descriptorBindingStorageBufferUpdateAfterBind :: Bool
descriptorBindingStorageImageUpdateAfterBind :: Bool
descriptorBindingSampledImageUpdateAfterBind :: Bool
descriptorBindingUniformBufferUpdateAfterBind :: Bool
shaderStorageTexelBufferArrayNonUniformIndexing :: Bool
shaderUniformTexelBufferArrayNonUniformIndexing :: Bool
shaderInputAttachmentArrayNonUniformIndexing :: Bool
shaderStorageImageArrayNonUniformIndexing :: Bool
shaderStorageBufferArrayNonUniformIndexing :: Bool
shaderSampledImageArrayNonUniformIndexing :: Bool
shaderUniformBufferArrayNonUniformIndexing :: Bool
shaderStorageTexelBufferArrayDynamicIndexing :: Bool
shaderUniformTexelBufferArrayDynamicIndexing :: Bool
shaderInputAttachmentArrayDynamicIndexing :: Bool
descriptorIndexing :: Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
shaderSharedInt64Atomics :: Bool
shaderBufferInt64Atomics :: Bool
storagePushConstant8 :: Bool
uniformAndStorageBuffer8BitAccess :: Bool
storageBuffer8BitAccess :: Bool
drawIndirectCount :: Bool
samplerMirrorClampToEdge :: Bool
$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features :: Bool
$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features :: Bool
$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features :: Bool
$sel:timelineSemaphore:PhysicalDeviceVulkan12Features :: Bool
$sel:hostQueryReset:PhysicalDeviceVulkan12Features :: Bool
$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features :: Bool
$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features :: Bool
$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:descriptorIndexing:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderInt8:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderFloat16:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
$sel:storagePushConstant8:PhysicalDeviceVulkan12Features :: Bool
$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features :: Bool
$sel:drawIndirectCount:PhysicalDeviceVulkan12Features :: Bool
$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features :: Bool
$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
2 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"CooperativeMatrixNV" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"cooperativeMatrix"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceCooperativeMatrixFeaturesNV -> Bool
checkFeature  = \PhysicalDeviceCooperativeMatrixFeaturesNV { Bool
$sel:cooperativeMatrix:PhysicalDeviceCooperativeMatrixFeaturesNV :: PhysicalDeviceCooperativeMatrixFeaturesNV -> Bool
cooperativeMatrix :: Bool
cooperativeMatrix } -> Bool
cooperativeMatrix
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceCooperativeMatrixFeaturesNV
-> PhysicalDeviceCooperativeMatrixFeaturesNV
enableFeature = \PhysicalDeviceCooperativeMatrixFeaturesNV {Bool
$sel:cooperativeMatrixRobustBufferAccess:PhysicalDeviceCooperativeMatrixFeaturesNV :: PhysicalDeviceCooperativeMatrixFeaturesNV -> Bool
cooperativeMatrixRobustBufferAccess :: Bool
cooperativeMatrix :: Bool
$sel:cooperativeMatrix:PhysicalDeviceCooperativeMatrixFeaturesNV :: PhysicalDeviceCooperativeMatrixFeaturesNV -> Bool
..} ->
                          PhysicalDeviceCooperativeMatrixFeaturesNV :: Bool -> Bool -> PhysicalDeviceCooperativeMatrixFeaturesNV
PhysicalDeviceCooperativeMatrixFeaturesNV { $sel:cooperativeMatrix:PhysicalDeviceCooperativeMatrixFeaturesNV :: Bool
cooperativeMatrix = Bool
True, Bool
$sel:cooperativeMatrixRobustBufferAccess:PhysicalDeviceCooperativeMatrixFeaturesNV :: Bool
cooperativeMatrixRobustBufferAccess :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_COOPERATIVE_MATRIX_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"IntegerFunctions2INTEL" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderIntegerFunctions2"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> Bool
checkFeature  = \PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { Bool
$sel:shaderIntegerFunctions2:PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL :: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> Bool
shaderIntegerFunctions2 :: Bool
shaderIntegerFunctions2 } ->
                          Bool
shaderIntegerFunctions2
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
enableFeature = \PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
_ -> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL :: Bool -> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { $sel:shaderIntegerFunctions2:PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL :: Bool
shaderIntegerFunctions2 = Bool
True }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"ShaderSMBuiltinsNV" -> (,)
    []
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderSMBuiltins"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceShaderSMBuiltinsFeaturesNV -> Bool
checkFeature  = \PhysicalDeviceShaderSMBuiltinsFeaturesNV { Bool
$sel:shaderSMBuiltins:PhysicalDeviceShaderSMBuiltinsFeaturesNV :: PhysicalDeviceShaderSMBuiltinsFeaturesNV -> Bool
shaderSMBuiltins :: Bool
shaderSMBuiltins } -> Bool
shaderSMBuiltins
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceShaderSMBuiltinsFeaturesNV
-> PhysicalDeviceShaderSMBuiltinsFeaturesNV
enableFeature = \PhysicalDeviceShaderSMBuiltinsFeaturesNV
_ -> PhysicalDeviceShaderSMBuiltinsFeaturesNV :: Bool -> PhysicalDeviceShaderSMBuiltinsFeaturesNV
PhysicalDeviceShaderSMBuiltinsFeaturesNV { $sel:shaderSMBuiltins:PhysicalDeviceShaderSMBuiltinsFeaturesNV :: Bool
shaderSMBuiltins = Bool
True }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
NV_SHADER_SM_BUILTINS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"FragmentShaderSampleInterlockEXT" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"fragmentShaderSampleInterlock"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT { Bool
$sel:fragmentShaderSampleInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
fragmentShaderSampleInterlock :: Bool
fragmentShaderSampleInterlock } ->
                          Bool
fragmentShaderSampleInterlock
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT
-> PhysicalDeviceFragmentShaderInterlockFeaturesEXT
enableFeature = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT {Bool
$sel:fragmentShaderShadingRateInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
$sel:fragmentShaderPixelInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
fragmentShaderShadingRateInterlock :: Bool
fragmentShaderPixelInterlock :: Bool
fragmentShaderSampleInterlock :: Bool
$sel:fragmentShaderSampleInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
..} ->
                          PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: Bool
-> Bool -> Bool -> PhysicalDeviceFragmentShaderInterlockFeaturesEXT
PhysicalDeviceFragmentShaderInterlockFeaturesEXT { $sel:fragmentShaderSampleInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: Bool
fragmentShaderSampleInterlock = Bool
True, Bool
$sel:fragmentShaderShadingRateInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: Bool
$sel:fragmentShaderPixelInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: Bool
fragmentShaderShadingRateInterlock :: Bool
fragmentShaderPixelInterlock :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"FragmentShaderPixelInterlockEXT" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"fragmentShaderPixelInterlock"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT { Bool
fragmentShaderPixelInterlock :: Bool
$sel:fragmentShaderPixelInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
fragmentShaderPixelInterlock } ->
                          Bool
fragmentShaderPixelInterlock
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT
-> PhysicalDeviceFragmentShaderInterlockFeaturesEXT
enableFeature = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT {Bool
fragmentShaderShadingRateInterlock :: Bool
fragmentShaderPixelInterlock :: Bool
fragmentShaderSampleInterlock :: Bool
$sel:fragmentShaderShadingRateInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
$sel:fragmentShaderPixelInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
$sel:fragmentShaderSampleInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
..} ->
                          PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: Bool
-> Bool -> Bool -> PhysicalDeviceFragmentShaderInterlockFeaturesEXT
PhysicalDeviceFragmentShaderInterlockFeaturesEXT { $sel:fragmentShaderPixelInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: Bool
fragmentShaderPixelInterlock = Bool
True, Bool
fragmentShaderShadingRateInterlock :: Bool
fragmentShaderSampleInterlock :: Bool
$sel:fragmentShaderShadingRateInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: Bool
$sel:fragmentShaderSampleInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"FragmentShaderShadingRateInterlockEXT" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"fragmentShaderShadingRateInterlock"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
checkFeature  = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT { Bool
fragmentShaderShadingRateInterlock :: Bool
$sel:fragmentShaderShadingRateInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
fragmentShaderShadingRateInterlock } ->
                          Bool
fragmentShaderShadingRateInterlock
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT
-> PhysicalDeviceFragmentShaderInterlockFeaturesEXT
enableFeature = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT {Bool
fragmentShaderShadingRateInterlock :: Bool
fragmentShaderPixelInterlock :: Bool
fragmentShaderSampleInterlock :: Bool
$sel:fragmentShaderShadingRateInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
$sel:fragmentShaderPixelInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
$sel:fragmentShaderSampleInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: PhysicalDeviceFragmentShaderInterlockFeaturesEXT -> Bool
..} ->
                          PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: Bool
-> Bool -> Bool -> PhysicalDeviceFragmentShaderInterlockFeaturesEXT
PhysicalDeviceFragmentShaderInterlockFeaturesEXT { $sel:fragmentShaderShadingRateInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: Bool
fragmentShaderShadingRateInterlock = Bool
True
                                                                           , Bool
fragmentShaderPixelInterlock :: Bool
fragmentShaderSampleInterlock :: Bool
$sel:fragmentShaderPixelInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: Bool
$sel:fragmentShaderSampleInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT :: Bool
..
                                                                           }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"DemoteToHelperInvocationEXT" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderDemoteToHelperInvocation"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan13Features -> Bool
checkFeature  = \PhysicalDeviceVulkan13Features { Bool
$sel:shaderDemoteToHelperInvocation:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
shaderDemoteToHelperInvocation :: Bool
shaderDemoteToHelperInvocation } ->
                          Bool
shaderDemoteToHelperInvocation
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan13Features -> PhysicalDeviceVulkan13Features
enableFeature = \PhysicalDeviceVulkan13Features {Bool
$sel:maintenance4:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:dynamicRendering:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderZeroInitializeWorkgroupMemory:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:textureCompressionASTC_HDR:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:synchronization2:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:computeFullSubgroups:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:subgroupSizeControl:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderTerminateInvocation:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:privateData:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:pipelineCreationCacheControl:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:inlineUniformBlock:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:robustImageAccess:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
maintenance4 :: Bool
shaderIntegerDotProduct :: Bool
dynamicRendering :: Bool
shaderZeroInitializeWorkgroupMemory :: Bool
textureCompressionASTC_HDR :: Bool
synchronization2 :: Bool
computeFullSubgroups :: Bool
subgroupSizeControl :: Bool
shaderTerminateInvocation :: Bool
shaderDemoteToHelperInvocation :: Bool
privateData :: Bool
pipelineCreationCacheControl :: Bool
descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool
inlineUniformBlock :: Bool
robustImageAccess :: Bool
$sel:shaderDemoteToHelperInvocation:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
..} ->
                          PhysicalDeviceVulkan13Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan13Features
PhysicalDeviceVulkan13Features { $sel:shaderDemoteToHelperInvocation:PhysicalDeviceVulkan13Features :: Bool
shaderDemoteToHelperInvocation = Bool
True, Bool
$sel:maintenance4:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: Bool
$sel:dynamicRendering:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderZeroInitializeWorkgroupMemory:PhysicalDeviceVulkan13Features :: Bool
$sel:textureCompressionASTC_HDR:PhysicalDeviceVulkan13Features :: Bool
$sel:synchronization2:PhysicalDeviceVulkan13Features :: Bool
$sel:computeFullSubgroups:PhysicalDeviceVulkan13Features :: Bool
$sel:subgroupSizeControl:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderTerminateInvocation:PhysicalDeviceVulkan13Features :: Bool
$sel:privateData:PhysicalDeviceVulkan13Features :: Bool
$sel:pipelineCreationCacheControl:PhysicalDeviceVulkan13Features :: Bool
$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceVulkan13Features :: Bool
$sel:inlineUniformBlock:PhysicalDeviceVulkan13Features :: Bool
$sel:robustImageAccess:PhysicalDeviceVulkan13Features :: Bool
maintenance4 :: Bool
shaderIntegerDotProduct :: Bool
dynamicRendering :: Bool
shaderZeroInitializeWorkgroupMemory :: Bool
textureCompressionASTC_HDR :: Bool
synchronization2 :: Bool
computeFullSubgroups :: Bool
subgroupSizeControl :: Bool
shaderTerminateInvocation :: Bool
privateData :: Bool
pipelineCreationCacheControl :: Bool
descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool
inlineUniformBlock :: Bool
robustImageAccess :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"FragmentShadingRateKHR" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"pipelineFragmentShadingRate"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
checkFeature  = \PhysicalDeviceFragmentShadingRateFeaturesKHR { Bool
$sel:pipelineFragmentShadingRate:PhysicalDeviceFragmentShadingRateFeaturesKHR :: PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
pipelineFragmentShadingRate :: Bool
pipelineFragmentShadingRate } ->
                          Bool
pipelineFragmentShadingRate
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR
enableFeature = \PhysicalDeviceFragmentShadingRateFeaturesKHR {Bool
$sel:attachmentFragmentShadingRate:PhysicalDeviceFragmentShadingRateFeaturesKHR :: PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
$sel:primitiveFragmentShadingRate:PhysicalDeviceFragmentShadingRateFeaturesKHR :: PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
attachmentFragmentShadingRate :: Bool
primitiveFragmentShadingRate :: Bool
pipelineFragmentShadingRate :: Bool
$sel:pipelineFragmentShadingRate:PhysicalDeviceFragmentShadingRateFeaturesKHR :: PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
..} ->
                          PhysicalDeviceFragmentShadingRateFeaturesKHR :: Bool
-> Bool -> Bool -> PhysicalDeviceFragmentShadingRateFeaturesKHR
PhysicalDeviceFragmentShadingRateFeaturesKHR { $sel:pipelineFragmentShadingRate:PhysicalDeviceFragmentShadingRateFeaturesKHR :: Bool
pipelineFragmentShadingRate = Bool
True, Bool
$sel:attachmentFragmentShadingRate:PhysicalDeviceFragmentShadingRateFeaturesKHR :: Bool
$sel:primitiveFragmentShadingRate:PhysicalDeviceFragmentShadingRateFeaturesKHR :: Bool
attachmentFragmentShadingRate :: Bool
primitiveFragmentShadingRate :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_CREATE_RENDERPASS_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MULTIVIEW_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_MAINTENANCE_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"WorkgroupMemoryExplicitLayoutKHR" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"workgroupMemoryExplicitLayout"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
checkFeature  = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { Bool
$sel:workgroupMemoryExplicitLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
workgroupMemoryExplicitLayout :: Bool
workgroupMemoryExplicitLayout } ->
                          Bool
workgroupMemoryExplicitLayout
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
-> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
enableFeature = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {Bool
$sel:workgroupMemoryExplicitLayout16BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
$sel:workgroupMemoryExplicitLayout8BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
$sel:workgroupMemoryExplicitLayoutScalarBlockLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
workgroupMemoryExplicitLayout16BitAccess :: Bool
workgroupMemoryExplicitLayout8BitAccess :: Bool
workgroupMemoryExplicitLayoutScalarBlockLayout :: Bool
workgroupMemoryExplicitLayout :: Bool
$sel:workgroupMemoryExplicitLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
..} ->
                          PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { $sel:workgroupMemoryExplicitLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
workgroupMemoryExplicitLayout = Bool
True
                                                                                 , Bool
$sel:workgroupMemoryExplicitLayout16BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
$sel:workgroupMemoryExplicitLayout8BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
$sel:workgroupMemoryExplicitLayoutScalarBlockLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
workgroupMemoryExplicitLayout16BitAccess :: Bool
workgroupMemoryExplicitLayout8BitAccess :: Bool
workgroupMemoryExplicitLayoutScalarBlockLayout :: Bool
..
                                                                                 }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"WorkgroupMemoryExplicitLayout8BitAccessKHR" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"workgroupMemoryExplicitLayout8BitAccess"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
checkFeature  =
        \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { Bool
workgroupMemoryExplicitLayout8BitAccess :: Bool
$sel:workgroupMemoryExplicitLayout8BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
workgroupMemoryExplicitLayout8BitAccess } ->
          Bool
workgroupMemoryExplicitLayout8BitAccess
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
-> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
enableFeature = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {Bool
workgroupMemoryExplicitLayout16BitAccess :: Bool
workgroupMemoryExplicitLayout8BitAccess :: Bool
workgroupMemoryExplicitLayoutScalarBlockLayout :: Bool
workgroupMemoryExplicitLayout :: Bool
$sel:workgroupMemoryExplicitLayout16BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
$sel:workgroupMemoryExplicitLayout8BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
$sel:workgroupMemoryExplicitLayoutScalarBlockLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
$sel:workgroupMemoryExplicitLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
..} ->
                          PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
                            { $sel:workgroupMemoryExplicitLayout8BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
workgroupMemoryExplicitLayout8BitAccess = Bool
True
                            , Bool
workgroupMemoryExplicitLayout16BitAccess :: Bool
workgroupMemoryExplicitLayoutScalarBlockLayout :: Bool
workgroupMemoryExplicitLayout :: Bool
$sel:workgroupMemoryExplicitLayout16BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
$sel:workgroupMemoryExplicitLayoutScalarBlockLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
$sel:workgroupMemoryExplicitLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
..
                            }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"WorkgroupMemoryExplicitLayout16BitAccessKHR" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"workgroupMemoryExplicitLayout16BitAccess"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
checkFeature  =
        \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { Bool
workgroupMemoryExplicitLayout16BitAccess :: Bool
$sel:workgroupMemoryExplicitLayout16BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
workgroupMemoryExplicitLayout16BitAccess } ->
          Bool
workgroupMemoryExplicitLayout16BitAccess
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
-> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
enableFeature = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {Bool
workgroupMemoryExplicitLayout16BitAccess :: Bool
workgroupMemoryExplicitLayout8BitAccess :: Bool
workgroupMemoryExplicitLayoutScalarBlockLayout :: Bool
workgroupMemoryExplicitLayout :: Bool
$sel:workgroupMemoryExplicitLayout16BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
$sel:workgroupMemoryExplicitLayout8BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
$sel:workgroupMemoryExplicitLayoutScalarBlockLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
$sel:workgroupMemoryExplicitLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool
..} ->
                          PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
                            { $sel:workgroupMemoryExplicitLayout16BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
workgroupMemoryExplicitLayout16BitAccess = Bool
True
                            , Bool
workgroupMemoryExplicitLayout8BitAccess :: Bool
workgroupMemoryExplicitLayoutScalarBlockLayout :: Bool
workgroupMemoryExplicitLayout :: Bool
$sel:workgroupMemoryExplicitLayout8BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
$sel:workgroupMemoryExplicitLayoutScalarBlockLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
$sel:workgroupMemoryExplicitLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: Bool
..
                            }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"DotProductInputAllKHR" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderIntegerDotProduct"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan13Features -> Bool
checkFeature  = \PhysicalDeviceVulkan13Features { Bool
shaderIntegerDotProduct :: Bool
$sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
shaderIntegerDotProduct } -> Bool
shaderIntegerDotProduct
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan13Features -> PhysicalDeviceVulkan13Features
enableFeature = \PhysicalDeviceVulkan13Features {Bool
maintenance4 :: Bool
shaderIntegerDotProduct :: Bool
dynamicRendering :: Bool
shaderZeroInitializeWorkgroupMemory :: Bool
textureCompressionASTC_HDR :: Bool
synchronization2 :: Bool
computeFullSubgroups :: Bool
subgroupSizeControl :: Bool
shaderTerminateInvocation :: Bool
shaderDemoteToHelperInvocation :: Bool
privateData :: Bool
pipelineCreationCacheControl :: Bool
descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool
inlineUniformBlock :: Bool
robustImageAccess :: Bool
$sel:maintenance4:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:dynamicRendering:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderZeroInitializeWorkgroupMemory:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:textureCompressionASTC_HDR:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:synchronization2:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:computeFullSubgroups:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:subgroupSizeControl:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderTerminateInvocation:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:privateData:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:pipelineCreationCacheControl:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:inlineUniformBlock:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:robustImageAccess:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderDemoteToHelperInvocation:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
..} ->
                          PhysicalDeviceVulkan13Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan13Features
PhysicalDeviceVulkan13Features { $sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: Bool
shaderIntegerDotProduct = Bool
True, Bool
maintenance4 :: Bool
dynamicRendering :: Bool
shaderZeroInitializeWorkgroupMemory :: Bool
textureCompressionASTC_HDR :: Bool
synchronization2 :: Bool
computeFullSubgroups :: Bool
subgroupSizeControl :: Bool
shaderTerminateInvocation :: Bool
shaderDemoteToHelperInvocation :: Bool
privateData :: Bool
pipelineCreationCacheControl :: Bool
descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool
inlineUniformBlock :: Bool
robustImageAccess :: Bool
$sel:maintenance4:PhysicalDeviceVulkan13Features :: Bool
$sel:dynamicRendering:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderZeroInitializeWorkgroupMemory:PhysicalDeviceVulkan13Features :: Bool
$sel:textureCompressionASTC_HDR:PhysicalDeviceVulkan13Features :: Bool
$sel:synchronization2:PhysicalDeviceVulkan13Features :: Bool
$sel:computeFullSubgroups:PhysicalDeviceVulkan13Features :: Bool
$sel:subgroupSizeControl:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderTerminateInvocation:PhysicalDeviceVulkan13Features :: Bool
$sel:privateData:PhysicalDeviceVulkan13Features :: Bool
$sel:pipelineCreationCacheControl:PhysicalDeviceVulkan13Features :: Bool
$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceVulkan13Features :: Bool
$sel:inlineUniformBlock:PhysicalDeviceVulkan13Features :: Bool
$sel:robustImageAccess:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderDemoteToHelperInvocation:PhysicalDeviceVulkan13Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"DotProductInput4x8BitKHR" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderIntegerDotProduct"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan13Features -> Bool
checkFeature  = \PhysicalDeviceVulkan13Features { Bool
shaderIntegerDotProduct :: Bool
$sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
shaderIntegerDotProduct } -> Bool
shaderIntegerDotProduct
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan13Features -> PhysicalDeviceVulkan13Features
enableFeature = \PhysicalDeviceVulkan13Features {Bool
maintenance4 :: Bool
shaderIntegerDotProduct :: Bool
dynamicRendering :: Bool
shaderZeroInitializeWorkgroupMemory :: Bool
textureCompressionASTC_HDR :: Bool
synchronization2 :: Bool
computeFullSubgroups :: Bool
subgroupSizeControl :: Bool
shaderTerminateInvocation :: Bool
shaderDemoteToHelperInvocation :: Bool
privateData :: Bool
pipelineCreationCacheControl :: Bool
descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool
inlineUniformBlock :: Bool
robustImageAccess :: Bool
$sel:maintenance4:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:dynamicRendering:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderZeroInitializeWorkgroupMemory:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:textureCompressionASTC_HDR:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:synchronization2:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:computeFullSubgroups:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:subgroupSizeControl:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderTerminateInvocation:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:privateData:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:pipelineCreationCacheControl:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:inlineUniformBlock:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:robustImageAccess:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderDemoteToHelperInvocation:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
..} ->
                          PhysicalDeviceVulkan13Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan13Features
PhysicalDeviceVulkan13Features { $sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: Bool
shaderIntegerDotProduct = Bool
True, Bool
maintenance4 :: Bool
dynamicRendering :: Bool
shaderZeroInitializeWorkgroupMemory :: Bool
textureCompressionASTC_HDR :: Bool
synchronization2 :: Bool
computeFullSubgroups :: Bool
subgroupSizeControl :: Bool
shaderTerminateInvocation :: Bool
shaderDemoteToHelperInvocation :: Bool
privateData :: Bool
pipelineCreationCacheControl :: Bool
descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool
inlineUniformBlock :: Bool
robustImageAccess :: Bool
$sel:maintenance4:PhysicalDeviceVulkan13Features :: Bool
$sel:dynamicRendering:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderZeroInitializeWorkgroupMemory:PhysicalDeviceVulkan13Features :: Bool
$sel:textureCompressionASTC_HDR:PhysicalDeviceVulkan13Features :: Bool
$sel:synchronization2:PhysicalDeviceVulkan13Features :: Bool
$sel:computeFullSubgroups:PhysicalDeviceVulkan13Features :: Bool
$sel:subgroupSizeControl:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderTerminateInvocation:PhysicalDeviceVulkan13Features :: Bool
$sel:privateData:PhysicalDeviceVulkan13Features :: Bool
$sel:pipelineCreationCacheControl:PhysicalDeviceVulkan13Features :: Bool
$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceVulkan13Features :: Bool
$sel:inlineUniformBlock:PhysicalDeviceVulkan13Features :: Bool
$sel:robustImageAccess:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderDemoteToHelperInvocation:PhysicalDeviceVulkan13Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"DotProductInput4x8BitPackedKHR" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderIntegerDotProduct"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan13Features -> Bool
checkFeature  = \PhysicalDeviceVulkan13Features { Bool
shaderIntegerDotProduct :: Bool
$sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
shaderIntegerDotProduct } -> Bool
shaderIntegerDotProduct
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan13Features -> PhysicalDeviceVulkan13Features
enableFeature = \PhysicalDeviceVulkan13Features {Bool
maintenance4 :: Bool
shaderIntegerDotProduct :: Bool
dynamicRendering :: Bool
shaderZeroInitializeWorkgroupMemory :: Bool
textureCompressionASTC_HDR :: Bool
synchronization2 :: Bool
computeFullSubgroups :: Bool
subgroupSizeControl :: Bool
shaderTerminateInvocation :: Bool
shaderDemoteToHelperInvocation :: Bool
privateData :: Bool
pipelineCreationCacheControl :: Bool
descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool
inlineUniformBlock :: Bool
robustImageAccess :: Bool
$sel:maintenance4:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:dynamicRendering:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderZeroInitializeWorkgroupMemory:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:textureCompressionASTC_HDR:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:synchronization2:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:computeFullSubgroups:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:subgroupSizeControl:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderTerminateInvocation:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:privateData:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:pipelineCreationCacheControl:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:inlineUniformBlock:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:robustImageAccess:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderDemoteToHelperInvocation:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
..} ->
                          PhysicalDeviceVulkan13Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan13Features
PhysicalDeviceVulkan13Features { $sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: Bool
shaderIntegerDotProduct = Bool
True, Bool
maintenance4 :: Bool
dynamicRendering :: Bool
shaderZeroInitializeWorkgroupMemory :: Bool
textureCompressionASTC_HDR :: Bool
synchronization2 :: Bool
computeFullSubgroups :: Bool
subgroupSizeControl :: Bool
shaderTerminateInvocation :: Bool
shaderDemoteToHelperInvocation :: Bool
privateData :: Bool
pipelineCreationCacheControl :: Bool
descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool
inlineUniformBlock :: Bool
robustImageAccess :: Bool
$sel:maintenance4:PhysicalDeviceVulkan13Features :: Bool
$sel:dynamicRendering:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderZeroInitializeWorkgroupMemory:PhysicalDeviceVulkan13Features :: Bool
$sel:textureCompressionASTC_HDR:PhysicalDeviceVulkan13Features :: Bool
$sel:synchronization2:PhysicalDeviceVulkan13Features :: Bool
$sel:computeFullSubgroups:PhysicalDeviceVulkan13Features :: Bool
$sel:subgroupSizeControl:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderTerminateInvocation:PhysicalDeviceVulkan13Features :: Bool
$sel:privateData:PhysicalDeviceVulkan13Features :: Bool
$sel:pipelineCreationCacheControl:PhysicalDeviceVulkan13Features :: Bool
$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceVulkan13Features :: Bool
$sel:inlineUniformBlock:PhysicalDeviceVulkan13Features :: Bool
$sel:robustImageAccess:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderDemoteToHelperInvocation:PhysicalDeviceVulkan13Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"DotProductKHR" -> (,)
    [ Word32 -> InstanceRequirement
RequireInstanceVersion (Word32 -> InstanceRequirement) -> Word32 -> InstanceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0
    , RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"shaderIntegerDotProduct"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceVulkan13Features -> Bool
checkFeature  = \PhysicalDeviceVulkan13Features { Bool
shaderIntegerDotProduct :: Bool
$sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
shaderIntegerDotProduct } -> Bool
shaderIntegerDotProduct
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceVulkan13Features -> PhysicalDeviceVulkan13Features
enableFeature = \PhysicalDeviceVulkan13Features {Bool
maintenance4 :: Bool
shaderIntegerDotProduct :: Bool
dynamicRendering :: Bool
shaderZeroInitializeWorkgroupMemory :: Bool
textureCompressionASTC_HDR :: Bool
synchronization2 :: Bool
computeFullSubgroups :: Bool
subgroupSizeControl :: Bool
shaderTerminateInvocation :: Bool
shaderDemoteToHelperInvocation :: Bool
privateData :: Bool
pipelineCreationCacheControl :: Bool
descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool
inlineUniformBlock :: Bool
robustImageAccess :: Bool
$sel:maintenance4:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:dynamicRendering:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderZeroInitializeWorkgroupMemory:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:textureCompressionASTC_HDR:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:synchronization2:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:computeFullSubgroups:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:subgroupSizeControl:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderTerminateInvocation:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:privateData:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:pipelineCreationCacheControl:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:inlineUniformBlock:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:robustImageAccess:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
$sel:shaderDemoteToHelperInvocation:PhysicalDeviceVulkan13Features :: PhysicalDeviceVulkan13Features -> Bool
..} ->
                          PhysicalDeviceVulkan13Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceVulkan13Features
PhysicalDeviceVulkan13Features { $sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features :: Bool
shaderIntegerDotProduct = Bool
True, Bool
maintenance4 :: Bool
dynamicRendering :: Bool
shaderZeroInitializeWorkgroupMemory :: Bool
textureCompressionASTC_HDR :: Bool
synchronization2 :: Bool
computeFullSubgroups :: Bool
subgroupSizeControl :: Bool
shaderTerminateInvocation :: Bool
shaderDemoteToHelperInvocation :: Bool
privateData :: Bool
pipelineCreationCacheControl :: Bool
descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool
inlineUniformBlock :: Bool
robustImageAccess :: Bool
$sel:maintenance4:PhysicalDeviceVulkan13Features :: Bool
$sel:dynamicRendering:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderZeroInitializeWorkgroupMemory:PhysicalDeviceVulkan13Features :: Bool
$sel:textureCompressionASTC_HDR:PhysicalDeviceVulkan13Features :: Bool
$sel:synchronization2:PhysicalDeviceVulkan13Features :: Bool
$sel:computeFullSubgroups:PhysicalDeviceVulkan13Features :: Bool
$sel:subgroupSizeControl:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderTerminateInvocation:PhysicalDeviceVulkan13Features :: Bool
$sel:privateData:PhysicalDeviceVulkan13Features :: Bool
$sel:pipelineCreationCacheControl:PhysicalDeviceVulkan13Features :: Bool
$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceVulkan13Features :: Bool
$sel:inlineUniformBlock:PhysicalDeviceVulkan13Features :: Bool
$sel:robustImageAccess:PhysicalDeviceVulkan13Features :: Bool
$sel:shaderDemoteToHelperInvocation:PhysicalDeviceVulkan13Features :: Bool
.. }
      }
    , Word32 -> DeviceRequirement
RequireDeviceVersion (Word32 -> DeviceRequirement) -> Word32 -> DeviceRequirement
forall a b. (a -> b) -> a -> b
$ Word32 -> Word32 -> Word32 -> Word32
MAKE_API_VERSION Word32
1 Word32
3 Word32
0
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"FragmentBarycentricKHR" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"fragmentShaderBarycentric"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceFragmentShaderBarycentricFeaturesKHR -> Bool
checkFeature  = \PhysicalDeviceFragmentShaderBarycentricFeaturesKHR { Bool
fragmentShaderBarycentric :: Bool
$sel:fragmentShaderBarycentric:PhysicalDeviceFragmentShaderBarycentricFeaturesKHR :: PhysicalDeviceFragmentShaderBarycentricFeaturesKHR -> Bool
fragmentShaderBarycentric } ->
                          Bool
fragmentShaderBarycentric
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
-> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
enableFeature = \PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
_ -> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR :: Bool -> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
PhysicalDeviceFragmentShaderBarycentricFeaturesKHR { $sel:fragmentShaderBarycentric:PhysicalDeviceFragmentShaderBarycentricFeaturesKHR :: Bool
fragmentShaderBarycentric = Bool
True }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"TextureSampleWeightedQCOM" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"textureSampleWeighted"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
checkFeature  = \PhysicalDeviceImageProcessingFeaturesQCOM { Bool
$sel:textureSampleWeighted:PhysicalDeviceImageProcessingFeaturesQCOM :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
textureSampleWeighted :: Bool
textureSampleWeighted } -> Bool
textureSampleWeighted
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceImageProcessingFeaturesQCOM
-> PhysicalDeviceImageProcessingFeaturesQCOM
enableFeature = \PhysicalDeviceImageProcessingFeaturesQCOM {Bool
$sel:textureBlockMatch:PhysicalDeviceImageProcessingFeaturesQCOM :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
$sel:textureBoxFilter:PhysicalDeviceImageProcessingFeaturesQCOM :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
textureBlockMatch :: Bool
textureBoxFilter :: Bool
textureSampleWeighted :: Bool
$sel:textureSampleWeighted:PhysicalDeviceImageProcessingFeaturesQCOM :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
..} ->
                          PhysicalDeviceImageProcessingFeaturesQCOM :: Bool -> Bool -> Bool -> PhysicalDeviceImageProcessingFeaturesQCOM
PhysicalDeviceImageProcessingFeaturesQCOM { $sel:textureSampleWeighted:PhysicalDeviceImageProcessingFeaturesQCOM :: Bool
textureSampleWeighted = Bool
True, Bool
$sel:textureBlockMatch:PhysicalDeviceImageProcessingFeaturesQCOM :: Bool
$sel:textureBoxFilter:PhysicalDeviceImageProcessingFeaturesQCOM :: Bool
textureBlockMatch :: Bool
textureBoxFilter :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
QCOM_IMAGE_PROCESSING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"TextureBoxFilterQCOM" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"textureBoxFilter"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
checkFeature  = \PhysicalDeviceImageProcessingFeaturesQCOM { Bool
textureBoxFilter :: Bool
$sel:textureBoxFilter:PhysicalDeviceImageProcessingFeaturesQCOM :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
textureBoxFilter } -> Bool
textureBoxFilter
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceImageProcessingFeaturesQCOM
-> PhysicalDeviceImageProcessingFeaturesQCOM
enableFeature = \PhysicalDeviceImageProcessingFeaturesQCOM {Bool
textureBlockMatch :: Bool
textureBoxFilter :: Bool
textureSampleWeighted :: Bool
$sel:textureBlockMatch:PhysicalDeviceImageProcessingFeaturesQCOM :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
$sel:textureBoxFilter:PhysicalDeviceImageProcessingFeaturesQCOM :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
$sel:textureSampleWeighted:PhysicalDeviceImageProcessingFeaturesQCOM :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
..} ->
                          PhysicalDeviceImageProcessingFeaturesQCOM :: Bool -> Bool -> Bool -> PhysicalDeviceImageProcessingFeaturesQCOM
PhysicalDeviceImageProcessingFeaturesQCOM { $sel:textureBoxFilter:PhysicalDeviceImageProcessingFeaturesQCOM :: Bool
textureBoxFilter = Bool
True, Bool
textureBlockMatch :: Bool
textureSampleWeighted :: Bool
$sel:textureBlockMatch:PhysicalDeviceImageProcessingFeaturesQCOM :: Bool
$sel:textureSampleWeighted:PhysicalDeviceImageProcessingFeaturesQCOM :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
QCOM_IMAGE_PROCESSING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"TextureBlockMatchQCOM" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceFeature :: forall struct.
KnownFeatureStruct struct =>
ByteString
-> (struct -> Bool) -> (struct -> struct) -> DeviceRequirement
RequireDeviceFeature
      { $sel:featureName:RequireDeviceVersion :: ByteString
featureName   = ByteString
"textureBlockMatch"
      , $sel:checkFeature:RequireDeviceVersion :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
checkFeature  = \PhysicalDeviceImageProcessingFeaturesQCOM { Bool
textureBlockMatch :: Bool
$sel:textureBlockMatch:PhysicalDeviceImageProcessingFeaturesQCOM :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
textureBlockMatch } -> Bool
textureBlockMatch
      , $sel:enableFeature:RequireDeviceVersion :: PhysicalDeviceImageProcessingFeaturesQCOM
-> PhysicalDeviceImageProcessingFeaturesQCOM
enableFeature = \PhysicalDeviceImageProcessingFeaturesQCOM {Bool
textureBlockMatch :: Bool
textureBoxFilter :: Bool
textureSampleWeighted :: Bool
$sel:textureBlockMatch:PhysicalDeviceImageProcessingFeaturesQCOM :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
$sel:textureBoxFilter:PhysicalDeviceImageProcessingFeaturesQCOM :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
$sel:textureSampleWeighted:PhysicalDeviceImageProcessingFeaturesQCOM :: PhysicalDeviceImageProcessingFeaturesQCOM -> Bool
..} ->
                          PhysicalDeviceImageProcessingFeaturesQCOM :: Bool -> Bool -> Bool -> PhysicalDeviceImageProcessingFeaturesQCOM
PhysicalDeviceImageProcessingFeaturesQCOM { $sel:textureBlockMatch:PhysicalDeviceImageProcessingFeaturesQCOM :: Bool
textureBlockMatch = Bool
True, Bool
textureBoxFilter :: Bool
textureSampleWeighted :: Bool
$sel:textureBoxFilter:PhysicalDeviceImageProcessingFeaturesQCOM :: Bool
$sel:textureSampleWeighted:PhysicalDeviceImageProcessingFeaturesQCOM :: Bool
.. }
      }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
QCOM_IMAGE_PROCESSING_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
"MeshShadingEXT" -> (,)
    [ RequireInstanceExtension :: Maybe ByteString -> ByteString -> Word32 -> InstanceRequirement
RequireInstanceExtension { $sel:instanceExtensionLayerName:RequireInstanceVersion :: Maybe ByteString
instanceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                               , $sel:instanceExtensionName:RequireInstanceVersion :: ByteString
instanceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
                               , $sel:instanceExtensionMinVersion:RequireInstanceVersion :: Word32
instanceExtensionMinVersion = Word32
0
                               }
    ]
    [ RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
EXT_MESH_SHADER_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SPIRV_1_4_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    , RequireDeviceExtension :: Maybe ByteString -> ByteString -> Word32 -> DeviceRequirement
RequireDeviceExtension { $sel:deviceExtensionLayerName:RequireDeviceVersion :: Maybe ByteString
deviceExtensionLayerName  = Maybe ByteString
forall a. Maybe a
Nothing
                             , $sel:deviceExtensionName:RequireDeviceVersion :: ByteString
deviceExtensionName       = ByteString
forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
                             , $sel:deviceExtensionMinVersion:RequireDeviceVersion :: Word32
deviceExtensionMinVersion = Word32
0
                             }
    ]
  ByteString
_ -> ([], [])