{-# 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_opacity_micromap (pattern EXT_OPACITY_MICROMAP_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_synchronization2 (pattern KHR_SYNCHRONIZATION_2_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 .&&. :: forall a. Bits a => 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
"RayTracingOpacityMicromapEXT" ->
    (,)
      [ 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_OPACITY_MICROMAP_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_SYNCHRONIZATION_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_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
_ -> ([], [])