/// <summary>
        ///
        /// </summary>
        /// <param name="pointer">
        /// </param>
        internal static unsafe PhysicalDeviceVulkan12Features MarshalFrom(SharpVk.Interop.PhysicalDeviceVulkan12Features *pointer)
        {
            PhysicalDeviceVulkan12Features result = default(PhysicalDeviceVulkan12Features);

            result.SamplerMirrorClampToEdge          = pointer->SamplerMirrorClampToEdge;
            result.DrawIndirectCount                 = pointer->DrawIndirectCount;
            result.StorageBuffer8BitAccess           = pointer->StorageBuffer8BitAccess;
            result.UniformAndStorageBuffer8BitAccess = pointer->UniformAndStorageBuffer8BitAccess;
            result.StoragePushConstant8              = pointer->StoragePushConstant8;
            result.ShaderBufferInt64Atomics          = pointer->ShaderBufferInt64Atomics;
            result.ShaderSharedInt64Atomics          = pointer->ShaderSharedInt64Atomics;
            result.ShaderFloat16      = pointer->ShaderFloat16;
            result.ShaderInt8         = pointer->ShaderInt8;
            result.DescriptorIndexing = pointer->DescriptorIndexing;
            result.ShaderInputAttachmentArrayDynamicIndexing          = pointer->ShaderInputAttachmentArrayDynamicIndexing;
            result.ShaderUniformTexelBufferArrayDynamicIndexing       = pointer->ShaderUniformTexelBufferArrayDynamicIndexing;
            result.ShaderStorageTexelBufferArrayDynamicIndexing       = pointer->ShaderStorageTexelBufferArrayDynamicIndexing;
            result.ShaderUniformBufferArrayNonUniformIndexing         = pointer->ShaderUniformBufferArrayNonUniformIndexing;
            result.ShaderSampledImageArrayNonUniformIndexing          = pointer->ShaderSampledImageArrayNonUniformIndexing;
            result.ShaderStorageBufferArrayNonUniformIndexing         = pointer->ShaderStorageBufferArrayNonUniformIndexing;
            result.ShaderStorageImageArrayNonUniformIndexing          = pointer->ShaderStorageImageArrayNonUniformIndexing;
            result.ShaderInputAttachmentArrayNonUniformIndexing       = pointer->ShaderInputAttachmentArrayNonUniformIndexing;
            result.ShaderUniformTexelBufferArrayNonUniformIndexing    = pointer->ShaderUniformTexelBufferArrayNonUniformIndexing;
            result.ShaderStorageTexelBufferArrayNonUniformIndexing    = pointer->ShaderStorageTexelBufferArrayNonUniformIndexing;
            result.DescriptorBindingUniformBufferUpdateAfterBind      = pointer->DescriptorBindingUniformBufferUpdateAfterBind;
            result.DescriptorBindingSampledImageUpdateAfterBind       = pointer->DescriptorBindingSampledImageUpdateAfterBind;
            result.DescriptorBindingStorageImageUpdateAfterBind       = pointer->DescriptorBindingStorageImageUpdateAfterBind;
            result.DescriptorBindingStorageBufferUpdateAfterBind      = pointer->DescriptorBindingStorageBufferUpdateAfterBind;
            result.DescriptorBindingUniformTexelBufferUpdateAfterBind = pointer->DescriptorBindingUniformTexelBufferUpdateAfterBind;
            result.DescriptorBindingStorageTexelBufferUpdateAfterBind = pointer->DescriptorBindingStorageTexelBufferUpdateAfterBind;
            result.DescriptorBindingUpdateUnusedWhilePending          = pointer->DescriptorBindingUpdateUnusedWhilePending;
            result.DescriptorBindingPartiallyBound          = pointer->DescriptorBindingPartiallyBound;
            result.DescriptorBindingVariableDescriptorCount = pointer->DescriptorBindingVariableDescriptorCount;
            result.RuntimeDescriptorArray      = pointer->RuntimeDescriptorArray;
            result.SamplerFilterMinmax         = pointer->SamplerFilterMinmax;
            result.ScalarBlockLayout           = pointer->ScalarBlockLayout;
            result.ImagelessFramebuffer        = pointer->ImagelessFramebuffer;
            result.UniformBufferStandardLayout = pointer->UniformBufferStandardLayout;
            result.ShaderSubgroupExtendedTypes = pointer->ShaderSubgroupExtendedTypes;
            result.SeparateDepthStencilLayouts = pointer->SeparateDepthStencilLayouts;
            result.HostQueryReset      = pointer->HostQueryReset;
            result.TimelineSemaphore   = pointer->TimelineSemaphore;
            result.BufferDeviceAddress = pointer->BufferDeviceAddress;
            result.BufferDeviceAddressCaptureReplay = pointer->BufferDeviceAddressCaptureReplay;
            result.BufferDeviceAddressMultiDevice   = pointer->BufferDeviceAddressMultiDevice;
            result.VulkanMemoryModel            = pointer->VulkanMemoryModel;
            result.VulkanMemoryModelDeviceScope = pointer->VulkanMemoryModelDeviceScope;
            result.VulkanMemoryModelAvailabilityVisibilityChains = pointer->VulkanMemoryModelAvailabilityVisibilityChains;
            result.ShaderOutputViewportIndex  = pointer->ShaderOutputViewportIndex;
            result.ShaderOutputLayer          = pointer->ShaderOutputLayer;
            result.SubgroupBroadcastDynamicId = pointer->SubgroupBroadcastDynamicId;
            return(result);
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="pointer">
 /// </param>
 internal unsafe void MarshalTo(SharpVk.Interop.PhysicalDeviceVulkan12Features *pointer)
 {
     pointer->SType = StructureType.PhysicalDeviceVulkan12Features;
     pointer->Next  = null;
     pointer->SamplerMirrorClampToEdge          = this.SamplerMirrorClampToEdge;
     pointer->DrawIndirectCount                 = this.DrawIndirectCount;
     pointer->StorageBuffer8BitAccess           = this.StorageBuffer8BitAccess;
     pointer->UniformAndStorageBuffer8BitAccess = this.UniformAndStorageBuffer8BitAccess;
     pointer->StoragePushConstant8              = this.StoragePushConstant8;
     pointer->ShaderBufferInt64Atomics          = this.ShaderBufferInt64Atomics;
     pointer->ShaderSharedInt64Atomics          = this.ShaderSharedInt64Atomics;
     pointer->ShaderFloat16      = this.ShaderFloat16;
     pointer->ShaderInt8         = this.ShaderInt8;
     pointer->DescriptorIndexing = this.DescriptorIndexing;
     pointer->ShaderInputAttachmentArrayDynamicIndexing          = this.ShaderInputAttachmentArrayDynamicIndexing;
     pointer->ShaderUniformTexelBufferArrayDynamicIndexing       = this.ShaderUniformTexelBufferArrayDynamicIndexing;
     pointer->ShaderStorageTexelBufferArrayDynamicIndexing       = this.ShaderStorageTexelBufferArrayDynamicIndexing;
     pointer->ShaderUniformBufferArrayNonUniformIndexing         = this.ShaderUniformBufferArrayNonUniformIndexing;
     pointer->ShaderSampledImageArrayNonUniformIndexing          = this.ShaderSampledImageArrayNonUniformIndexing;
     pointer->ShaderStorageBufferArrayNonUniformIndexing         = this.ShaderStorageBufferArrayNonUniformIndexing;
     pointer->ShaderStorageImageArrayNonUniformIndexing          = this.ShaderStorageImageArrayNonUniformIndexing;
     pointer->ShaderInputAttachmentArrayNonUniformIndexing       = this.ShaderInputAttachmentArrayNonUniformIndexing;
     pointer->ShaderUniformTexelBufferArrayNonUniformIndexing    = this.ShaderUniformTexelBufferArrayNonUniformIndexing;
     pointer->ShaderStorageTexelBufferArrayNonUniformIndexing    = this.ShaderStorageTexelBufferArrayNonUniformIndexing;
     pointer->DescriptorBindingUniformBufferUpdateAfterBind      = this.DescriptorBindingUniformBufferUpdateAfterBind;
     pointer->DescriptorBindingSampledImageUpdateAfterBind       = this.DescriptorBindingSampledImageUpdateAfterBind;
     pointer->DescriptorBindingStorageImageUpdateAfterBind       = this.DescriptorBindingStorageImageUpdateAfterBind;
     pointer->DescriptorBindingStorageBufferUpdateAfterBind      = this.DescriptorBindingStorageBufferUpdateAfterBind;
     pointer->DescriptorBindingUniformTexelBufferUpdateAfterBind = this.DescriptorBindingUniformTexelBufferUpdateAfterBind;
     pointer->DescriptorBindingStorageTexelBufferUpdateAfterBind = this.DescriptorBindingStorageTexelBufferUpdateAfterBind;
     pointer->DescriptorBindingUpdateUnusedWhilePending          = this.DescriptorBindingUpdateUnusedWhilePending;
     pointer->DescriptorBindingPartiallyBound          = this.DescriptorBindingPartiallyBound;
     pointer->DescriptorBindingVariableDescriptorCount = this.DescriptorBindingVariableDescriptorCount;
     pointer->RuntimeDescriptorArray      = this.RuntimeDescriptorArray;
     pointer->SamplerFilterMinmax         = this.SamplerFilterMinmax;
     pointer->ScalarBlockLayout           = this.ScalarBlockLayout;
     pointer->ImagelessFramebuffer        = this.ImagelessFramebuffer;
     pointer->UniformBufferStandardLayout = this.UniformBufferStandardLayout;
     pointer->ShaderSubgroupExtendedTypes = this.ShaderSubgroupExtendedTypes;
     pointer->SeparateDepthStencilLayouts = this.SeparateDepthStencilLayouts;
     pointer->HostQueryReset      = this.HostQueryReset;
     pointer->TimelineSemaphore   = this.TimelineSemaphore;
     pointer->BufferDeviceAddress = this.BufferDeviceAddress;
     pointer->BufferDeviceAddressCaptureReplay = this.BufferDeviceAddressCaptureReplay;
     pointer->BufferDeviceAddressMultiDevice   = this.BufferDeviceAddressMultiDevice;
     pointer->VulkanMemoryModel            = this.VulkanMemoryModel;
     pointer->VulkanMemoryModelDeviceScope = this.VulkanMemoryModelDeviceScope;
     pointer->VulkanMemoryModelAvailabilityVisibilityChains = this.VulkanMemoryModelAvailabilityVisibilityChains;
     pointer->ShaderOutputViewportIndex  = this.ShaderOutputViewportIndex;
     pointer->ShaderOutputLayer          = this.ShaderOutputLayer;
     pointer->SubgroupBroadcastDynamicId = this.SubgroupBroadcastDynamicId;
 }