<?xml version="1.0"?>
<doc>
    <assembly>
        <name>VulkanCore</name>
    </assembly>
    <members>
        <member name="T:VulkanCore.AllocationCallbacks">
            <summary>
            Structure containing callback functions for memory allocation.
            </summary>
        </member>
        <member name="M:VulkanCore.AllocationCallbacks.#ctor(VulkanCore.AllocationCallbacks.AllocationFunction,VulkanCore.AllocationCallbacks.ReallocationFunction,VulkanCore.AllocationCallbacks.FreeFunction,VulkanCore.AllocationCallbacks.InternalAllocationNotification,VulkanCore.AllocationCallbacks.InternalFreeNotification,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.AllocationCallbacks"/> structure.
            </summary>
            <param name="alloc">The application-defined memory allocation function.</param>
            <param name="realloc">The application-defined memory reallocation function.</param>
            <param name="free">The application-defined memory free function</param>
            <param name="internalAlloc">
            The application-defined function that is called by the implementation when the
            implementation makes internal allocations.
            </param>
            <param name="internalFree">
            The application-defined function that is called by the implementation when the
            implementation frees internal allocations.
            </param>
            <param name="userData">
            The value to be interpreted by the implementation of the callbacks.
            <para>
            When any of the callbacks in <see cref="T:VulkanCore.AllocationCallbacks"/> are called, the Vulkan
            implementation will pass this value as the first parameter to the callback.
            </para>
            <para>
            This value can vary each time an allocator is passed into a command, even when the same
            object takes an allocator in multiple commands.
            </para>
            </param>
        </member>
        <member name="F:VulkanCore.AllocationCallbacks.UserData">
            <summary>
            The value to be interpreted by the implementation of the callbacks.
            <para>
            When any of the callbacks in <see cref="T:VulkanCore.AllocationCallbacks"/> are called, the Vulkan
            implementation will pass this value as the first parameter to the callback.
            </para>
            <para>
            This value can vary each time an allocator is passed into a command, even when the same
            object takes an allocator in multiple commands.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.AllocationCallbacks.Allocation">
            <summary>
            The application-defined memory allocation function.
            </summary>
        </member>
        <member name="F:VulkanCore.AllocationCallbacks.Reallocation">
            <summary>
            Gets the application-defined memory reallocation function.
            </summary>
        </member>
        <member name="F:VulkanCore.AllocationCallbacks.Free">
            <summary>
            Gets the application-defined memory free function.
            </summary>
        </member>
        <member name="F:VulkanCore.AllocationCallbacks.InternalAllocation">
            <summary>
            The application-defined function that is called by the implementation when the
            implementation makes internal allocations. This value may be <c>null</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.AllocationCallbacks.InternalFree">
            <summary>
            The application-defined function that is called by the implementation when
            the implementation frees internal allocations. This value may be <c>null</c>.
            </summary>
        </member>
        <member name="T:VulkanCore.AllocationCallbacks.AllocationFunction">
            <summary>
            Application-defined memory allocation function.
            <para>
            If this function is unable to allocate the requested memory, it must return <see
            cref="F:System.IntPtr.Zero"/>. If the allocation was successful, it must return a valid handle to
            memory allocation containing at least <paramref name="size"/> bytes, and with the pointer
            value being a multiple of <paramref name="alignment"/>.
            </para>
            <para>
            For example, this function (or <see cref="T:VulkanCore.AllocationCallbacks.ReallocationFunction"/>) could cause
            termination of running Vulkan instance(s) on a failed allocation for debugging purposes,
            either directly or indirectly. In these circumstances, it cannot be assumed that any part
            of any affected <see cref="T:VulkanCore.Instance"/> objects are going to operate correctly (even <see
            cref="M:VulkanCore.Instance.Dispose"/>), and the application must ensure it cleans up properly via
            other means (e.g. process termination).
            </para>
            <para>
            If this function returns <see cref="F:System.IntPtr.Zero"/>, and if the implementation is unable
            to continue correct processing of the current command without the requested allocation,
            it must treat this as a run-time error, and generate <see
            cref="F:VulkanCore.Result.ErrorOutOfHostMemory"/> at the appropriate time for the command in which the
            condition was detected.
            </para>
            <para>
            If the implementation is able to continue correct processing of the current command
            without the requested allocation, then it may do so, and must not generate <see
            cref="F:VulkanCore.Result.ErrorOutOfHostMemory"/> as a result of this failed allocation.
            </para>
            </summary>
            <param name="userData">
            Value specified for <see cref="F:VulkanCore.AllocationCallbacks.UserData"/> in the allocator specified by the application.
            </param>
            <param name="size">Size in bytes of the requested allocation.</param>
            <param name="alignment">
            Requested alignment of the allocation in bytes and must be a power of two.
            </param>
            <param name="allocationScope">
            Value specifying the allocation scope of the lifetime of the allocation.
            </param>
        </member>
        <member name="T:VulkanCore.AllocationCallbacks.ReallocationFunction">
            <summary>
            Application-defined memory reallocation function.
            <para>
            Must return an allocation with enough space for <paramref name="size"/> bytes, and the
            contents of the original allocation from bytes zero to `min(original size, new size) - 1`
            must be preserved in the returned allocation. If <paramref name="size"/> is larger than
            the old size, the contents of the additional space are undefined. If satisfying these
            requirements involves creating a new allocation, then the old allocation should be freed.
            </para>
            <para>
            If <paramref name="original"/> is <see cref="F:System.IntPtr.Zero"/>, then the function must
            behave equivalently to a call to <see cref="T:VulkanCore.AllocationCallbacks.AllocationFunction"/> with the same parameter
            values (without <paramref name="original"/>).
            </para>
            <para>
            If <paramref name="size"/> is zero, then the function must behave equivalently to a call
            to <see cref="T:VulkanCore.AllocationCallbacks.FreeFunction"/> with the same <paramref name="userData"/> parameter value,
            and 'memory' equal to <paramref name="original"/>.
            </para>
            <para>
            If <paramref name="original"/> is not <see cref="F:System.IntPtr.Zero"/>, the implementation must
            ensure that <paramref name="alignment"/> is equal to the <paramref name="alignment"/>
            used to originally allocate <paramref name="original"/>.
            </para>
            <para>
            If this function fails and <paramref name="original"/> is not <see cref="F:System.IntPtr.Zero"/>
            the application must not free the old allocation.
            </para>
            <para>This function must follow the same rules for return values as <see cref="T:VulkanCore.AllocationCallbacks.AllocationFunction"/>.</para>
            </summary>
            <param name="userData">
            Value specified for <see cref="F:VulkanCore.AllocationCallbacks.UserData"/> in the allocator specified by the application.
            </param>
            <param name="original">
            Must be either <see cref="F:System.IntPtr.Zero"/> or a pointer previously returned by <see
            cref="F:VulkanCore.AllocationCallbacks.Reallocation"/> or <see cref="F:VulkanCore.AllocationCallbacks.Allocation"/> of the same allocator.
            </param>
            <param name="size">Size in bytes of the requested allocation.</param>
            <param name="alignment">
            Requested alignment of the allocation in bytes and must be a power of two.
            </param>
            <param name="allocationScope">
            Value specifying the allocation scope of the lifetime of the allocation.
            </param>
        </member>
        <member name="T:VulkanCore.AllocationCallbacks.FreeFunction">
            <summary>
            Application-defined memory free function.
            <para>
            <paramref name="memory"/> may be <see cref="F:System.IntPtr.Zero"/>, which the callback must
            handle safely. If <paramref name="memory"/> is not <see cref="F:System.IntPtr.Zero"/>, it must be
            a handle to previously allocated by <see cref="T:VulkanCore.AllocationCallbacks.AllocationFunction"/> or <see
            cref="T:VulkanCore.AllocationCallbacks.ReallocationFunction"/>. The application should free this memory.
            </para>
            </summary>
            <param name="userData">
            Value specified for <see cref="F:VulkanCore.AllocationCallbacks.UserData"/> in the allocator specified
            by the application.
            </param>
            <param name="memory">Allocation to be freed.</param>
        </member>
        <member name="T:VulkanCore.AllocationCallbacks.InternalAllocationNotification">
            <summary>
            Application-defined memory allocation notification function.
            <para>This is a purely informational callback.</para>
            </summary>
            <param name="userData">
            Value specified for <see cref="F:VulkanCore.AllocationCallbacks.UserData"/> in the allocator specified by the application.
            </param>
            <param name="size">Size in bytes of the requested allocation.</param>
            <param name="allocationType">Requested type of an allocation.</param>
            <param name="allocationScope">
            Value specifying the allocation scope of the lifetime of the allocation.
            </param>
        </member>
        <member name="T:VulkanCore.AllocationCallbacks.InternalFreeNotification">
            <summary>
            Application-defined memory free notification function.
            </summary>
            <param name="userData">
            Value specified for <see cref="F:VulkanCore.AllocationCallbacks.UserData"/> in the allocator specified by the application.
            </param>
            <param name="size">Size in bytes of the requested allocation.</param>
            <param name="allocationType">Requested type of an allocation.</param>
            <param name="allocationScope">
            Value specifying the allocation scope of the lifetime of the allocation.
            </param>
        </member>
        <member name="T:VulkanCore.SystemAllocationScope">
            <summary>
            Allocation scope.
            </summary>
        </member>
        <member name="F:VulkanCore.SystemAllocationScope.Command">
            <summary>
            Specifies that the allocation is scoped to the duration of the Vulkan command.
            </summary>
        </member>
        <member name="F:VulkanCore.SystemAllocationScope.Object">
            <summary>
            Specifies that the allocation is scoped to the lifetime of the Vulkan object that is
            being created or used.
            </summary>
        </member>
        <member name="F:VulkanCore.SystemAllocationScope.Cache">
            <summary>
            Specifies that the allocation is scoped to the lifetime of a <see cref="T:VulkanCore.PipelineCache"/> object.
            </summary>
        </member>
        <member name="F:VulkanCore.SystemAllocationScope.Device">
            <summary>
            Specifies that the allocation is scoped to the lifetime of the Vulkan device.
            </summary>
        </member>
        <member name="F:VulkanCore.SystemAllocationScope.Instance">
            <summary>
            Specifies that the allocation is scoped to the lifetime of the Vulkan instance.
            </summary>
        </member>
        <member name="T:VulkanCore.InternalAllocationType">
            <summary>
            Allocation type.
            </summary>
        </member>
        <member name="F:VulkanCore.InternalAllocationType.Executable">
            <summary>
            Specifies that the allocation is intended for execution by the host.
            </summary>
        </member>
        <member name="T:VulkanCore.Amd.CommandBufferExtensions">
            <summary>
            Provides AMD specific extension methods for the <see cref="T:VulkanCore.CommandBuffer"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Amd.CommandBufferExtensions.CmdDrawIndirectCountAmd(VulkanCore.CommandBuffer,VulkanCore.Buffer,System.Int64,VulkanCore.Buffer,System.Int64,System.Int32,System.Int32)">
            <summary>
            Perform an indirect draw with the draw count sourced from a buffer.
            <para>
            Behaves similar to <see cref="M:VulkanCore.CommandBuffer.CmdDrawIndirect(VulkanCore.Buffer,System.Int64,System.Int32,System.Int32)"/> except that the draw count
            is read by the device from a buffer during execution.
            </para>
            <para>
            The command will read an unsigned 32-bit integer from <paramref name="countBuffer"/>
            located at <paramref name="countBufferOffset"/> and use this as the draw count.
            </para>
            </summary>
            <param name="commandBuffer">The command buffer into which the command is recorded.</param>
            <param name="buffer">The buffer containing draw parameters.</param>
            <param name="offset">
            The byte offset into <paramref name="buffer"/> where parameters begin.
            </param>
            <param name="countBuffer">The buffer containing the draw count.</param>
            <param name="countBufferOffset">
            The byte offset into <paramref name="countBuffer"/> where the draw count begins.
            </param>
            <param name="maxDrawCount">
            Specifies the maximum number of draws that will be executed.
            <para>
            The actual number of executed draw calls is the minimum of the count specified in
            <paramref name="countBuffer"/> and <paramref name="maxDrawCount"/>.
            </para>
            </param>
            <param name="stride">The byte stride between successive sets of draw parameters.</param>
        </member>
        <member name="M:VulkanCore.Amd.CommandBufferExtensions.CmdDrawIndexedIndirectCountAmd(VulkanCore.CommandBuffer,VulkanCore.Buffer,System.Int64,VulkanCore.Buffer,System.Int64,System.Int32,System.Int32)">
            <summary>
            Perform an indexed indirect draw with the draw count sourced from a buffer.
            <para>
            Behaves similar to <see cref="M:VulkanCore.Amd.CommandBufferExtensions.CmdDrawIndirectCountAmd(VulkanCore.CommandBuffer,VulkanCore.Buffer,System.Int64,VulkanCore.Buffer,System.Int64,System.Int32,System.Int32)"/> except that the draw count is
            read by the device from a buffer during execution.
            </para>
            <para>
            The command will read an unsigned 32-bit integer from <paramref name="countBuffer"/>
            located at <paramref name="countBufferOffset"/> and use this as the draw count.
            </para>
            </summary>
            <param name="commandBuffer">The command buffer into which the command is recorded.</param>
            <param name="buffer">The buffer containing draw parameters.</param>
            <param name="offset">
            The byte offset into <paramref name="buffer"/> where parameters begin.
            </param>
            <param name="countBuffer">The buffer containing the draw count.</param>
            <param name="countBufferOffset">
            The byte offset into <paramref name="countBuffer"/> where the draw count begins.
            </param>
            <param name="maxDrawCount">
            Specifies the maximum number of draws that will be executed.
            <para>
            The actual number of executed draw calls is the minimum of the count specified in
            <paramref name="countBuffer"/> and <paramref name="maxDrawCount"/>.
            </para>
            </param>
            <param name="stride">The byte stride between successive sets of draw parameters.</param>
        </member>
        <member name="T:VulkanCore.Amd.PipelineRasterizationStateRasterizationOrderAmd">
            <summary>
            Structure defining rasterization order for a graphics pipeline.
            </summary>
        </member>
        <member name="F:VulkanCore.Amd.PipelineRasterizationStateRasterizationOrderAmd.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Amd.PipelineRasterizationStateRasterizationOrderAmd.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Amd.PipelineRasterizationStateRasterizationOrderAmd.RasterizationOrder">
            <summary>
            Specifies the primitive rasterization order to use.
            </summary>
        </member>
        <member name="M:VulkanCore.Amd.PipelineRasterizationStateRasterizationOrderAmd.#ctor(VulkanCore.Amd.RasterizationOrderAmd,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see
            cref="T:VulkanCore.Amd.PipelineRasterizationStateRasterizationOrderAmd"/> structure.
            </summary>
            <param name="rasterizationOrder">Specifies the primitive rasterization order to use.</param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Amd.RasterizationOrderAmd">
            <summary>
            Specify rasterization order for a graphics pipeline.
            </summary>
        </member>
        <member name="F:VulkanCore.Amd.RasterizationOrderAmd.Strict">
            <summary>
            Specifies that the order of these operations for each primitive in a subpass must occur
            in primitive order.
            </summary>
        </member>
        <member name="F:VulkanCore.Amd.RasterizationOrderAmd.Relaxed">
            <summary>
            Specifies that the order of these operations for each primitive in a subpass may not
            occur in primitive order.
            </summary>
        </member>
        <member name="T:VulkanCore.Amd.TextureLodGatherFormatPropertiesAmd">
            <summary>
            Structure informing whether or not texture gather bias/LOD functionality is
            supported for a given image format and a given physical device.
            </summary>
        </member>
        <member name="F:VulkanCore.Amd.TextureLodGatherFormatPropertiesAmd.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Amd.TextureLodGatherFormatPropertiesAmd.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Amd.TextureLodGatherFormatPropertiesAmd.SupportsTextureGatherLodBiasAmd">
            <summary>
            Tells if the image format can be used with texture gather bias/LOD functions, as
            introduced by the "VK_AMD_texture_gather_bias_lod" extension. This field is set by the
            implementation. User-specified value is ignored.
            </summary>
        </member>
        <member name="T:VulkanCore.Bool">
            <summary>
            Vulkan boolean type.
            <para>
            <c>true</c> represents a boolean True (integer 1) value, and <c>false</c> a boolean False
            (integer 0) value.
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.Bool.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Bool"/> struct.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:VulkanCore.Bool.ToString">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Bool"/> instance.
            </summary>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Bool.Equals(VulkanCore.Bool)">
            <summary>
            Returns a boolean indicating whether the given <see cref="T:VulkanCore.Bool"/> is equal to this <see
            cref="T:VulkanCore.Bool"/> instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Bool"/> to compare this instance to.</param>
            <returns>
            <c>true</c> if the other <see cref="T:VulkanCore.Bool"/> is equal to this instance; <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:VulkanCore.Bool.Equals(System.Object)">
            <summary>
            Returns a boolean indicating whether the given <see cref="T:System.Object"/> is equal to this <see
            cref="T:VulkanCore.Bool"/> instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare against.</param>
            <returns>
            <c>true</c> if the <see cref="T:System.Object"/> is equal to this instance; <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:VulkanCore.Bool.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>The hash code.</returns>
        </member>
        <member name="M:VulkanCore.Bool.op_Equality(VulkanCore.Bool,VulkanCore.Bool)">
            <summary>
            Returns a boolean indicating whether the two given booleans are equal.
            </summary>
            <param name="left">The first boolean to compare.</param>
            <param name="right">The second boolean to compare.</param>
            <returns><c>true</c> if the booleans are equal; <c>false</c> otherwise.</returns>
        </member>
        <member name="M:VulkanCore.Bool.op_Inequality(VulkanCore.Bool,VulkanCore.Bool)">
            <summary>
            Returns a boolean indicating whether the two given booleans are not equal.
            </summary>
            <param name="left">The first boolean to compare.</param>
            <param name="right">The second boolean to compare.</param>
            <returns>
            <c>true</c> if the booleans are not equal; <c>false</c> if they are equal.
            </returns>
        </member>
        <member name="M:VulkanCore.Bool.op_Implicit(System.Boolean)~VulkanCore.Bool">
            <summary>
            Performs an implicit conversion from <see cref="T:System.Boolean"/> to <see cref="T:VulkanCore.Bool"/>.
            </summary>
            <param name="value">The value to convert.</param>
        </member>
        <member name="M:VulkanCore.Bool.op_Implicit(VulkanCore.Bool)~System.Boolean">
            <summary>
            Performs an implicit conversion from <see cref="T:VulkanCore.Bool"/> to <see cref="T:System.Boolean"/>.
            </summary>
            <param name="value">The value to convert.</param>
        </member>
        <member name="M:VulkanCore.Bool.op_Implicit(System.Int32)~VulkanCore.Bool">
            <summary>
            Performs an implicit conversion from <see cref="T:System.Int32"/> to <see cref="T:VulkanCore.Bool"/>.
            </summary>
            <param name="value">The value to convert.</param>
        </member>
        <member name="M:VulkanCore.Bool.op_Implicit(VulkanCore.Bool)~System.Int32">
            <summary>
            Performs an implicit conversion from <see cref="T:VulkanCore.Bool"/> to <see cref="T:System.Int32"/>.
            </summary>
            <param name="value">The value to convert.</param>
        </member>
        <member name="T:VulkanCore.Buffer">
            <summary>
            Opaque handle to a buffer object.
            <para>
            Buffers represent linear arrays of data which are used for various purposes by binding them
            to a graphics or compute pipeline via descriptor sets or via certain commands, or by directly
            specifying them as parameters to certain commands.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.Buffer.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Buffer.BindMemory(VulkanCore.DeviceMemory,System.Int64)">
            <summary>
            Bind device memory to a buffer object.
            <para>Must not already be backed by a memory object.</para>
            <para>Must not have been created with any sparse memory binding flags.</para>
            </summary>
            <param name="memory">The object describing the device memory to attach.</param>
            <param name="memoryOffset">
            The start offset of the region of memory which is to be bound to the buffer. The number
            of bytes returned in the <see cref="F:VulkanCore.MemoryRequirements.Size"/> member in memory, starting
            from <paramref name="memoryOffset"/> bytes, will be bound to the specified buffer.
            </param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Buffer.CreateView(VulkanCore.BufferViewCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new buffer view object.
            </summary>
            <param name="createInfo">
            The structure containing parameters to be used to create the buffer.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Buffer.GetMemoryRequirements">
            <summary>
            Returns the memory requirements for the buffer.
            </summary>
            <returns>Memory requirements of the buffer object.</returns>
        </member>
        <member name="M:VulkanCore.Buffer.Dispose">
            <summary>
            Destroy a buffer object.
            </summary>
        </member>
        <member name="T:VulkanCore.BufferCreateInfo">
            <summary>
            Structure specifying the parameters of a newly created buffer object.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCreateInfo.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCreateInfo.Flags">
            <summary>
            A bitmask specifying additional parameters of the buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCreateInfo.Size">
            <summary>
            The size in bytes of the buffer to be created.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCreateInfo.Usage">
            <summary>
            A bitmask specifying allowed usages of the buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCreateInfo.SharingMode">
            <summary>
            The sharing mode of the buffer when it will be accessed by multiple queue families.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCreateInfo.QueueFamilyIndices">
            <summary>
            A list of queue families that will access this buffer (ignored if <see
            cref="F:VulkanCore.BufferCreateInfo.SharingMode"/> is not <see cref="F:VulkanCore.SharingMode.Concurrent"/>).
            </summary>
        </member>
        <member name="M:VulkanCore.BufferCreateInfo.#ctor(System.Int64,VulkanCore.BufferUsages,VulkanCore.BufferCreateFlags,VulkanCore.SharingMode,System.Int32[],System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.BufferCreateInfo"/> structure.
            </summary>
            <param name="size">The size in bytes of the buffer to be created.</param>
            <param name="usages">The bitmask specifying allowed usages of the buffer.</param>
            <param name="flags">A bitmask specifying additional parameters of the buffer.</param>
            <param name="sharingMode">
            The sharing mode of the buffer when it will be accessed by multiple queue families.
            </param>
            <param name="queueFamilyIndices">
            A list of queue families that will access this buffer (ignored if <see
            cref="F:VulkanCore.BufferCreateInfo.SharingMode"/> is not <see cref="F:VulkanCore.SharingMode.Concurrent"/>).
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.BufferUsages">
            <summary>
            Bitmask specifying allowed usages of a buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferUsages.TransferSrc">
            <summary>
            Specifies that the buffer can be used as the source of a transfer command. (see the
            definition of <see cref="F:VulkanCore.PipelineStages.Transfer"/>).
            </summary>
        </member>
        <member name="F:VulkanCore.BufferUsages.TransferDst">
            <summary>
            Specifies that the buffer can be used as the destination of a transfer command.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferUsages.UniformTexelBuffer">
            <summary>
            Specifies that the buffer can be used to create a <see cref="T:VulkanCore.BufferView"/> suitable for
            occupying a <see cref="T:VulkanCore.DescriptorSet"/> slot of type <see cref="F:VulkanCore.DescriptorType.UniformTexelBuffer"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferUsages.StorageTexelBuffer">
            <summary>
            Specifies that the buffer can be used to create a <see cref="T:VulkanCore.BufferView"/> suitable for
            occupying a <see cref="T:VulkanCore.DescriptorSet"/> slot of type <see cref="F:VulkanCore.DescriptorType.StorageTexelBuffer"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferUsages.UniformBuffer">
            <summary>
            Specifies that the buffer can be used in a <see cref="T:VulkanCore.DescriptorBufferInfo"/> suitable
            for occupying a <see cref="T:VulkanCore.DescriptorSet"/> slot either of type <see
            cref="F:VulkanCore.DescriptorType.UniformBuffer"/> or <see cref="F:VulkanCore.DescriptorType.UniformBufferDynamic"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferUsages.StorageBuffer">
            <summary>
            Specifies that the buffer can be used in a <see cref="T:VulkanCore.DescriptorBufferInfo"/> suitable
            for occupying a <see cref="T:VulkanCore.DescriptorSet"/> slot either of type <see
            cref="F:VulkanCore.DescriptorType.StorageBuffer"/> or <see cref="F:VulkanCore.DescriptorType.StorageBufferDynamic"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferUsages.IndexBuffer">
            <summary>
            Specifies that the buffer is suitable for passing as the buffer parameter to <see cref="M:VulkanCore.CommandBuffer.CmdBindIndexBuffer(VulkanCore.Buffer,System.Int64,VulkanCore.IndexType)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferUsages.VertexBuffer">
            <summary>
            Specifies that the buffer is suitable for passing as an element of the pBuffers array to
            <see cref="M:VulkanCore.CommandBuffer.CmdBindVertexBuffers(System.Int32,System.Int32,VulkanCore.Buffer[],System.Int64[])"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferUsages.IndirectBuffer">
            <summary>
            Specifies that the buffer is suitable for passing as the buffer parameter to <see
            cref="M:VulkanCore.CommandBuffer.CmdDrawIndirect(VulkanCore.Buffer,System.Int64,System.Int32,System.Int32)"/>, <see
            cref="M:VulkanCore.CommandBuffer.CmdDrawIndexedIndirect(VulkanCore.Buffer,System.Int64,System.Int32,System.Int32)"/>, or <see
            cref="M:VulkanCore.CommandBuffer.CmdDispatchIndirect(VulkanCore.Buffer,System.Int64)"/>. It is also suitable for passing as the <see
            cref="F:VulkanCore.Nvx.IndirectCommandsTokenNvx.Buffer"/> member, or <see
            cref="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.SequencesCountBuffer"/> or <see
            cref="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.SequencesIndexBuffer"/> member.
            </summary>
        </member>
        <member name="T:VulkanCore.BufferCreateFlags">
            <summary>
            Bitmask specifying additional parameters of a buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCreateFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCreateFlags.SparseBinding">
            <summary>
            Specifies that the buffer will be backed using sparse memory binding.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCreateFlags.SparseResidency">
            <summary>
            Specifies that the buffer can be partially backed using sparse memory binding. Buffers
            created with this flag must also be created with the <see cref="F:VulkanCore.BufferCreateFlags.SparseBinding"/> flag.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCreateFlags.SparseAliased">
            <summary>
            Specifies that the buffer will be backed using sparse memory binding with memory ranges
            that might also simultaneously be backing another buffer (or another portion of the same
            buffer). Buffers created with this flag must also be created with the <see
            cref="F:VulkanCore.BufferCreateFlags.SparseBinding"/> flag.
            </summary>
        </member>
        <member name="T:VulkanCore.MemoryRequirements">
            <summary>
            Structure specifying memory requirements.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryRequirements.Size">
            <summary>
            The size, in bytes, of the memory allocation required for the resource.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryRequirements.Alignment">
            <summary>
            The alignment, in bytes, of the offset within the allocation required for the resource.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryRequirements.MemoryTypeBits">
            <summary>
            A bitmask that contains one bit set for every supported memory type for the resource. Bit
            `i` is set if and only if the memory type `i` in the <see
            cref="T:VulkanCore.PhysicalDeviceMemoryProperties"/> structure for the physical device is supported
            for the resource.
            </summary>
        </member>
        <member name="T:VulkanCore.SharingMode">
            <summary>
            Buffer and image sharing modes.
            </summary>
        </member>
        <member name="F:VulkanCore.SharingMode.Exclusive">
            <summary>
            Specifies that access to any range or image subresource of the object will be
            exclusive to a single queue family at a time.
            </summary>
        </member>
        <member name="F:VulkanCore.SharingMode.Concurrent">
            <summary>
            Specifies that concurrent access to any range or image subresource of the
            object from multiple queue families is supported.
            </summary>
        </member>
        <member name="T:VulkanCore.BufferView">
            <summary>
            Opaque handle to a buffer view object.
            <para>
            A buffer view represents a contiguous range of a buffer and a specific format to be used to
            interpret the data. Buffer views are used to enable shaders to access buffer contents
            interpreted as formatted data.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.BufferView.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.BufferView.Dispose">
            <summary>
            Destroy a buffer view object.
            </summary>
        </member>
        <member name="T:VulkanCore.BufferViewCreateInfo">
            <summary>
            Structure specifying parameters of a newly created buffer view.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferViewCreateInfo.Format">
            <summary>
            The format of the data elements in the buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferViewCreateInfo.Offset">
            <summary>
            An offset in bytes from the base address of the buffer. Accesses to the buffer view from
            shaders use addressing that is relative to this starting offset.
            <para>Must be less than the size of buffer.</para>
            <para>Must be a multiple of <see cref="F:VulkanCore.PhysicalDeviceLimits.MinTexelBufferOffsetAlignment"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.BufferViewCreateInfo.Range">
            <summary>
            A size in bytes of the buffer view. If range is equal to <see
            cref="F:VulkanCore.Constant.WholeSize"/>, the range from offset to the end of the buffer is used. If
            <see cref="F:VulkanCore.Constant.WholeSize"/> is used and the remaining size of the buffer is not a
            multiple of the element size of format, then the nearest smaller multiple is used.
            </summary>
        </member>
        <member name="M:VulkanCore.BufferViewCreateInfo.#ctor(VulkanCore.Format,System.Int64,System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.BufferViewCreateInfo"/> structure.
            </summary>
            <param name="format">The format of the data elements in the buffer.</param>
            <param name="offset">
            An offset in bytes from the base address of the buffer. Accesses to the buffer view from
            shaders use addressing that is relative to this starting offset.
            <para>Must be less than the size of buffer.</para>
            <para>Must be a multiple of <see cref="F:VulkanCore.PhysicalDeviceLimits.MinTexelBufferOffsetAlignment"/>.</para>
            </param>
            <param name="range">
            A size in bytes of the buffer view. If range is equal to <see
            cref="F:VulkanCore.Constant.WholeSize"/>, the range from offset to the end of the buffer is used. If
            <see cref="F:VulkanCore.Constant.WholeSize"/> is used and the remaining size of the buffer is not a
            multiple of the element size of format, then the nearest smaller multiple is used.
            </param>
        </member>
        <member name="T:VulkanCore.ColorF4">
            <summary>
            Structure specifying color value when the format of the image or attachment is one of the
            formats other than signed integer or unsigned integer. Floating point values are
            automatically converted to the format of the image.
            </summary>
        </member>
        <member name="P:VulkanCore.ColorF4.Zero">
            <summary>
            Gets a <see cref="T:VulkanCore.ColorF4"/> with all of its components set to zero.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorF4.R">
            <summary>
            The red component of the color.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorF4.G">
            <summary>
            The green component of the color.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorF4.B">
            <summary>
            The blue component of the color.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorF4.A">
            <summary>
            The alpha component of the color.
            </summary>
        </member>
        <member name="M:VulkanCore.ColorF4.#ctor(System.Single,System.Single,System.Single,System.Single)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ColorF4"/> structure.
            </summary>
            <param name="r">The red component.</param>
            <param name="g">The green component.</param>
            <param name="b">The blue component.</param>
            <param name="a">The alpha component.</param>
        </member>
        <member name="M:VulkanCore.ColorF4.ToString">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.ColorF4"/> instance.
            </summary>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.ColorF4.ToString(System.IFormatProvider)">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.ColorF4"/> instance, using the specified
            format to format individual elements and the given <paramref name="formatProvider"/>.
            </summary>
            <param name="formatProvider">The format provider to use when formatting elements.</param>
            <returns>The string representation.</returns>
        </member>
        <member name="T:VulkanCore.ColorI4">
            <summary>
            Structure specifying color value when the format of the image or attachment is signed
            integer. Signed integer values are converted to the format of the image by casting to the
            smaller type (with negative 32-bit values mapping to negative values in the smaller type). If
            the integer value is not representable in the target type (e.g. would overflow in conversion
            to that type), the value is undefined.
            </summary>
        </member>
        <member name="P:VulkanCore.ColorI4.Zero">
            <summary>
            Gets a <see cref="T:VulkanCore.ColorI4"/> with all of its components set to zero.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorI4.R">
            <summary>
            The red component of the color.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorI4.G">
            <summary>
            The green component of the color.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorI4.B">
            <summary>
            The blue component of the color.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorI4.A">
            <summary>
            The alpha component of the color.
            </summary>
        </member>
        <member name="M:VulkanCore.ColorI4.#ctor(System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ColorI4"/> structure.
            </summary>
            <param name="r">The red component.</param>
            <param name="g">The green component.</param>
            <param name="b">The blue component.</param>
            <param name="a">The alpha component.</param>
        </member>
        <member name="M:VulkanCore.ColorI4.ToString">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.ColorI4"/> instance.
            </summary>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.ColorI4.ToString(System.IFormatProvider)">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.ColorI4"/> instance, using the specified
            format to format individual elements and the given <paramref name="formatProvider"/>.
            </summary>
            <param name="formatProvider">The format provider to use when formatting elements.</param>
            <returns>The string representation.</returns>
        </member>
        <member name="T:VulkanCore.ColorU4">
            <summary>
            Structure specifying color value when the format of the image or attachment is unsigned
            integer. Unsigned integer values are converted to the format of the image by casting to the
            integer type with fewer bits.
            </summary>
        </member>
        <member name="P:VulkanCore.ColorU4.Zero">
            <summary>
            Gets a <see cref="T:VulkanCore.ColorU4"/> with all of its components set to zero.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorU4.R">
            <summary>
            The red component of the color.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorU4.G">
            <summary>
            The green component of the color.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorU4.B">
            <summary>
            The blue component of the color.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorU4.A">
            <summary>
            The alpha component of the color.
            </summary>
        </member>
        <member name="M:VulkanCore.ColorU4.#ctor(System.UInt32,System.UInt32,System.UInt32,System.UInt32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ColorU4"/> structure.
            </summary>
            <param name="r">The red component.</param>
            <param name="g">The green component.</param>
            <param name="b">The blue component.</param>
            <param name="a">The alpha component.</param>
        </member>
        <member name="M:VulkanCore.ColorU4.ToString">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.ColorU4"/> instance.
            </summary>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.ColorU4.ToString(System.IFormatProvider)">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.ColorU4"/> instance, using the specified
            format to format individual elements and the given <paramref name="formatProvider"/>.
            </summary>
            <param name="formatProvider">The format provider to use when formatting elements.</param>
            <returns>The string representation.</returns>
        </member>
        <member name="T:VulkanCore.CommandBuffer">
            <summary>
            Opaque handle to a command buffer object.
            <para>
            Command buffers are objects used to record commands which can be subsequently submitted to a
            device queue for execution. There are two levels of command buffers - primary command
            buffers, which can execute secondary command buffers, and which are submitted to queues, and
            secondary command buffers, which can be executed by primary command buffers, and which are
            not directly submitted to queues.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.CommandBuffer.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.CommandBuffer.Begin(VulkanCore.CommandBufferBeginInfo)">
            <summary>
            Start recording the command buffer.
            </summary>
            <param name="beginInfo">
            Defines additional information about how the command buffer begins recording.
            </param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.CommandBuffer.End">
            <summary>
            Finish recording the command buffer.
            </summary>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.CommandBuffer.Reset(VulkanCore.CommandBufferResetFlags)">
            <summary>
            Reset a command buffer to the initial state.
            </summary>
            <param name="flags">
            A bitmask controlling the reset operation.
            <para>
            If flags includes <see cref="F:VulkanCore.CommandBufferResetFlags.ReleaseResources"/>, then most or
            all memory resources currently owned by the command buffer should be returned to the
            parent command pool. If this flag is not set, then the command buffer may hold onto
            memory resources and reuse them when recording commands.
            </para>
            </param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdBindPipeline(VulkanCore.PipelineBindPoint,VulkanCore.Pipeline)">
            <summary>
            Bind a pipeline object to a command buffer.
            </summary>
            <param name="pipelineBindPoint">
            Specifies whether pipeline will be bound as a compute or graphics pipeline. There are
            separate bind points for each of graphics and compute, so binding one does not disturb
            the other.
            </param>
            <param name="pipeline">The pipeline to be bound.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdSetViewport(VulkanCore.Viewport)">
            <summary>
            Set the viewport on a command buffer.
            <para>
            If the bound pipeline state object was not created with the <see
            cref="F:VulkanCore.DynamicState.Viewport"/> dynamic state enabled, viewport transformation parameters
            are specified using the <see cref="F:VulkanCore.PipelineViewportStateCreateInfo.Viewports"/> member in
            the pipeline state object. If the pipeline state object was created with the <see
            cref="F:VulkanCore.DynamicState.Viewport"/> dynamic state enabled, the viewport transformation
            parameters are dynamically set and changed with this command.
            </para>
            </summary>
            <param name="viewport">Specifies viewport parameters.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdSetViewports(System.Int32,System.Int32,VulkanCore.Viewport[])">
            <summary>
            Set the viewport on a command buffer.
            <para>
            If the bound pipeline state object was not created with the <see
            cref="F:VulkanCore.DynamicState.Viewport"/> dynamic state enabled, viewport transformation parameters
            are specified using the <see cref="F:VulkanCore.PipelineViewportStateCreateInfo.Viewports"/> member in
            the pipeline state object. If the pipeline state object was created with the <see
            cref="F:VulkanCore.DynamicState.Viewport"/> dynamic state enabled, the viewport transformation
            parameters are dynamically set and changed with this command.
            </para>
            </summary>
            <param name="firstViewport">
            The index of the first viewport whose parameters are updated by the command.
            </param>
            <param name="viewportCount">
            The index of the first viewport whose parameters are updated by the command.
            </param>
            <param name="viewports">Structures specifying viewport parameters.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdSetScissor(VulkanCore.Rect2D)">
            <summary>
            Set the dynamic scissor rectangles on a command buffer.
            <para>
            The scissor test determines if a fragment’s framebuffer coordinates (xf,yf) lie within
            the scissor rectangle corresponding to the viewport index used by the primitive that
            generated the fragment. If the pipeline state object is created without <see
            cref="F:VulkanCore.DynamicState.Scissor"/> enabled then the scissor rectangles are set by the <see
            cref="F:VulkanCore.PipelineViewportStateCreateInfo.Scissors"/> state of the pipeline state object.
            Otherwise, to dynamically set the scissor rectangles call this command.
            </para>
            </summary>
            <param name="scissor">Defines scissor rectangle.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdSetScissors(System.Int32,System.Int32,VulkanCore.Rect2D[])">
            <summary>
            Set the dynamic scissor rectangles on a command buffer.
            <para>
            The scissor test determines if a fragment’s framebuffer coordinates (xf,yf) lie within
            the scissor rectangle corresponding to the viewport index used by the primitive that
            generated the fragment. If the pipeline state object is created without <see
            cref="F:VulkanCore.DynamicState.Scissor"/> enabled then the scissor rectangles are set by the <see
            cref="F:VulkanCore.PipelineViewportStateCreateInfo.Scissors"/> state of the pipeline state object.
            Otherwise, to dynamically set the scissor rectangles call this command.
            </para>
            </summary>
            <param name="firstScissor">
            The index of the first scissor whose state is updated by the command.
            </param>
            <param name="scissorCount">
            The number of scissors whose rectangles are updated by the command.
            </param>
            <param name="scissors">Structures defining scissor rectangles.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdSetLineWidth(System.Single)">
            <summary>
            Set the dynamic line width state.
            <para>
            The line width is set by the <see cref="F:VulkanCore.PipelineRasterizationStateCreateInfo.LineWidth"/>
            property in the currently active pipeline if the pipeline was not created with <see
            cref="F:VulkanCore.DynamicState.LineWidth"/> enabled. Otherwise, the line width is set by calling this command.
            </para>
            </summary>
            <param name="lineWidth">The width of rasterized line segments.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdSetDepthBias(System.Single,System.Single,System.Single)">
            <summary>
            Set the depth bias dynamic state.
            <para>
            The depth values of all fragments generated by the rasterization of a polygon can be
            offset by a single value that is computed for that polygon. This behavior is controlled
            by the <see cref="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthBiasEnable"/>, <see
            cref="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthBiasConstantFactor"/><see
            cref="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthBiasClamp"/><see
            cref="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthBiasSlopeFactor"/> members, or by the
            corresponding parameters to the this command if depth bias state is dynamic.
            </para>
            </summary>
            <param name="depthBiasConstantFactor">
            A scalar factor controlling the constant depth value added to each fragment.
            </param>
            <param name="depthBiasClamp">The maximum (or minimum) depth bias of a fragment.</param>
            <param name="depthBiasSlopeFactor">
            A scalar factor applied to a fragment’s slope in depth bias calculations.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdSetBlendConstants(VulkanCore.ColorF4)">
            <summary>
            Set the values of blend constants.
            </summary>
            <param name="blendConstants">
            The R, G, B, and A components of the blend constant color used in blending, depending on
            the blend factor.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdSetDepthBounds(System.Single,System.Single)">
            <summary>
            Set the depth bounds test values for a command buffer.
            <para>
            The depth bounds test conditionally disables coverage of a sample based on the outcome of
            a comparison between the value za in the depth attachment at location (xf,yf) (for the
            appropriate sample) and a range of values. The test is enabled or disabled by the <see
            cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.DepthBoundsTestEnable"/> member. If the
            pipeline state object is created without the <see cref="F:VulkanCore.DynamicState.DepthBounds"/>
            dynamic state enabled then the range of values used in the depth bounds test are defined
            by the <see cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.MinDepthBounds"/> and <see
            cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.MaxDepthBounds"/> members. Otherwise, to
            dynamically set the depth bounds range values call this command.
            </para>
            </summary>
            <param name="minDepthBounds">
            The lower bound of the range of depth values used in the depth bounds test.
            </param>
            <param name="maxDepthBounds">The upper bound of the range.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdSetStencilCompareMask(VulkanCore.StencilFaces,System.Int32)">
            <summary>
            Set the stencil compare mask dynamic state.
            <para>
            If the pipeline state object is created with the <see
            cref="F:VulkanCore.DynamicState.StencilCompareMask"/> dynamic state enabled, then to dynamically set
            the stencil compare mask call this command.
            </para>
            </summary>
            <param name="faceMask">
            A bitmask specifying the set of stencil state for which to update the compare mask.
            </param>
            <param name="compareMask">The new value to use as the stencil compare mask.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdSetStencilWriteMask(VulkanCore.StencilFaces,System.Int32)">
            <summary>
            Set the stencil write mask dynamic state.
            <para>
            If the pipeline state object is created with the <see
            cref="F:VulkanCore.DynamicState.StencilWriteMask"/> dynamic state enabled, then to dynamically set the
            stencil write mask call this command.
            </para>
            </summary>
            <param name="faceMask">
            Specifies the set of stencil state for which to update the write mask.
            </param>
            <param name="writeMask">The new value to use as the stencil write mask.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdSetStencilReference(VulkanCore.StencilFaces,System.Int32)">
            <summary>
            Set the stencil reference dynamic state.
            <para>
            If the pipeline state object is created with the <see
            cref="F:VulkanCore.DynamicState.StencilReference"/> dynamic state enabled, then to dynamically set the
            stencil reference value call this command.
            </para>
            </summary>
            <param name="faceMask">
            Specifies the set of stencil state for which to update the reference value.
            </param>
            <param name="reference">the new value to use as the stencil reference value.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdBindDescriptorSet(VulkanCore.PipelineBindPoint,VulkanCore.PipelineLayout,VulkanCore.DescriptorSet,System.Nullable{System.Int32})">
            <summary>
            Binds descriptor set to a command buffer.
            </summary>
            <param name="pipelineBindPoint">
            Indicates whether the descriptors will be used by graphics pipelines or compute
            pipelines. There is a separate set of bind points for each of graphics and compute, so
            binding one does not disturb the other.
            </param>
            <param name="layout">A <see cref="T:VulkanCore.PipelineLayout"/> object used to program the bindings.</param>
            <param name="descriptorSet">
            Handle to a <see cref="T:VulkanCore.DescriptorSet"/> object describing the descriptor set to write to.
            </param>
            <param name="dynamicOffset">Value specifying dynamic offset.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdBindDescriptorSets(VulkanCore.PipelineBindPoint,VulkanCore.PipelineLayout,System.Int32,VulkanCore.DescriptorSet[],System.Int32[])">
            <summary>
            Binds descriptor sets to a command buffer.
            </summary>
            <param name="pipelineBindPoint">
            Indicates whether the descriptors will be used by graphics pipelines or compute
            pipelines. There is a separate set of bind points for each of graphics and compute, so
            binding one does not disturb the other.
            </param>
            <param name="layout">A <see cref="T:VulkanCore.PipelineLayout"/> object used to program the bindings.</param>
            <param name="firstSet">The set number of the first descriptor set to be bound.</param>
            <param name="descriptorSets">
            Handles to <see cref="T:VulkanCore.DescriptorSet"/> objects describing the descriptor sets to write to.
            </param>
            <param name="dynamicOffsets">Values specifying dynamic offsets.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdBindIndexBuffer(VulkanCore.Buffer,System.Int64,VulkanCore.IndexType)">
            <summary>
            Bind an index buffer to a command buffer.
            </summary>
            <param name="buffer">The buffer being bound.</param>
            <param name="offset">
            The starting offset in bytes within buffer used in index buffer address calculations.
            </param>
            <param name="indexType">Selects whether indices are treated as 16 bits or 32 bits.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdBindVertexBuffer(VulkanCore.Buffer,System.Int64)">
            <summary>
            Bind vertex buffer to a command buffer.
            </summary>
            <param name="buffer">The <see cref="T:VulkanCore.Buffer"/> handle.</param>
            <param name="offset">The <see cref="T:VulkanCore.Buffer"/> offsets.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdBindVertexBuffers(System.Int32,System.Int32,VulkanCore.Buffer[],System.Int64[])">
            <summary>
            Bind vertex buffers to a command buffer.
            </summary>
            <param name="firstBinding">
            The index of the first vertex input binding whose state is updated by the command.
            </param>
            <param name="bindingCount">
            The number of vertex input bindings whose state is updated by the command.
            </param>
            <param name="buffers">An array of <see cref="T:VulkanCore.Buffer"/> handles.</param>
            <param name="offsets">An array of <see cref="T:VulkanCore.Buffer"/> offsets.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdDraw(System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Draw primitives.
            <para>
            When the command is executed, primitives are assembled using the current primitive
            topology and <paramref name="vertexCount"/> consecutive vertex indices with the first
            vertex index value equal to <paramref name="firstVertex"/>. The primitives are drawn
            <paramref name="instanceCount"/> times with instance index starting with <paramref
            name="firstInstance"/> and increasing sequentially for each instance. The assembled
            primitives execute the currently bound graphics pipeline.
            </para>
            </summary>
            <param name="vertexCount">The number of vertices to draw.</param>
            <param name="instanceCount">The number of instances to draw.</param>
            <param name="firstVertex">The index of the first vertex to draw.</param>
            <param name="firstInstance">The instance id of the first instance to draw.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdDrawIndexed(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Issue an indexed draw into a command buffer.
            <para>
            When the command is executed, primitives are assembled using the current primitive
            topology and <paramref name="indexCount"/> vertices whose indices are retrieved from the
            index buffer. The index buffer is treated as an array of tightly packed unsigned integers
            of size defined by the <see cref="M:VulkanCore.CommandBuffer.CmdBindIndexBuffer(VulkanCore.Buffer,System.Int64,VulkanCore.IndexType)"/> index type parameter with which
            the buffer was bound.
            </para>
            </summary>
            <param name="indexCount">The number of vertices to draw.</param>
            <param name="instanceCount">The number of instances to draw.</param>
            <param name="firstIndex">The base index within the index buffer.</param>
            <param name="vertexOffset">
            The value added to the vertex index before indexing into the vertex buffer.
            </param>
            <param name="firstInstance">The instance id of the first instance to draw.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdDrawIndirect(VulkanCore.Buffer,System.Int64,System.Int32,System.Int32)">
            <summary>
            Issue an indirect draw into a command buffer.
            <para>
            Behaves similarly to <see cref="M:VulkanCore.CommandBuffer.CmdDraw(System.Int32,System.Int32,System.Int32,System.Int32)"/> except that the parameters are read by the
            device from a buffer during execution. <paramref name="drawCount"/> draws are executed by
            the command, with parameters taken from buffer starting at <paramref name="offset"/> and
            increasing by <paramref name="stride"/> bytes for each successive draw. If <paramref
            name="drawCount"/> is less than or equal to one, <paramref name="stride"/> is ignored.
            </para>
            </summary>
            <param name="buffer">The buffer containing draw parameters.</param>
            <param name="offset">The byte offset into buffer where parameters begin.</param>
            <param name="drawCount">The number of draws to execute, and can be zero.</param>
            <param name="stride">The byte stride between successive sets of draw parameters.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdDrawIndexedIndirect(VulkanCore.Buffer,System.Int64,System.Int32,System.Int32)">
            <summary>
            Perform an indexed indirect draw.
            <para>
            Behaves similarly to <see cref="M:VulkanCore.CommandBuffer.CmdDrawIndexed(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/> except that the parameters are read by
            the device from a buffer during execution. <paramref name="drawCount"/> draws are
            executed by the command, with parameters taken from buffer starting at <paramref
            name="offset"/> and increasing by <paramref name="stride"/> bytes for each successive
            draw. If <paramref name="drawCount"/> is less than or equal to one, <paramref
            name="stride"/> is ignored.
            </para>
            </summary>
            <param name="buffer">The buffer containing draw parameters.</param>
            <param name="offset">The byte offset into buffer where parameters begin.</param>
            <param name="drawCount">The number of draws to execute, and can be zero.</param>
            <param name="stride">The byte stride between successive sets of draw parameters.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdDispatch(System.Int32,System.Int32,System.Int32)">
            <summary>
            Dispatch compute work items.
            <para>
            When the command is executed, a global workgroup consisting of x × y × z local workgroups
            is assembled.
            </para>
            </summary>
            <param name="groupCountX">The number of local workgroups to dispatch in the X dimension.</param>
            <param name="groupCountY">The number of local workgroups to dispatch in the Y dimension.</param>
            <param name="groupCountZ">The number of local workgroups to dispatch in the Z dimension.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdDispatchIndirect(VulkanCore.Buffer,System.Int64)">
            <summary>
            Dispatch compute work items using indirect parameters.
            <para>
            Behaves similarly to <see cref="M:VulkanCore.CommandBuffer.CmdDispatch(System.Int32,System.Int32,System.Int32)"/> except that the parameters are read by the
            device from a buffer during execution.
            </para>
            </summary>
            <param name="buffer">The buffer containing dispatch parameters.</param>
            <param name="offset">The byte offset into buffer where parameters begin.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdCopyBuffer(VulkanCore.Buffer,VulkanCore.Buffer,VulkanCore.BufferCopy[])">
            <summary>
            Copy data between buffer regions.
            <para>
            Each region in <paramref name="regions"/> is copied from the source buffer to the same
            region of the destination buffer. <paramref name="srcBuffer"/> and <paramref
            name="dstBuffer"/> can be the same buffer or alias the same memory, but the result is
            undefined if the copy regions overlap in memory.
            </para>
            </summary>
            <param name="srcBuffer">The source buffer.</param>
            <param name="dstBuffer">The destination buffer.</param>
            <param name="regions">Structures specifying the regions to copy.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdCopyImage(VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.ImageCopy[])">
            <summary>
            Copy data between images.
            </summary>
            <param name="srcImage">The source image.</param>
            <param name="srcImageLayout">The current layout of the source image subresource.</param>
            <param name="dstImage">The destination image.</param>
            <param name="dstImageLayout">The current layout of the destination image subresource.</param>
            <param name="regions">Structures specifying the regions to copy.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdBlitImage(VulkanCore.Image,VulkanCore.ImageLayout,System.Int64,VulkanCore.ImageLayout,VulkanCore.ImageBlit[],VulkanCore.Filter)">
            <summary>
            Copy regions of an image, potentially performing format conversion, arbitrary scaling,
            and filtering.
            <para>
            Must not be used for multisampled source or destination images. Use <see
            cref="M:VulkanCore.CommandBuffer.CmdResolveImage(VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.ImageResolve[])"/> for this purpose.
            </para>
            </summary>
            <param name="srcImage">The source image.</param>
            <param name="srcImageLayout">The layout of the source image subresources for the blit.</param>
            <param name="dstImage">The source image.</param>
            <param name="dstImageLayout">
            The layout of the destination image subresources for the blit.
            </param>
            <param name="regions">Structures specifying the regions to blit.</param>
            <param name="filter">Specifies the filter to apply if the blits require scaling.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdCopyBufferToImage(VulkanCore.Buffer,VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.BufferImageCopy[])">
            <summary>
            Copy data from a buffer into an image.
            <para>
            Each region in <paramref name="regions"/> is copied from the specified region of the
            source buffer to the specified region of the destination image.
            </para>
            </summary>
            <param name="srcBuffer">The source buffer.</param>
            <param name="dstImage">The destination image.</param>
            <param name="dstImageLayout">
            The layout of the destination image subresources for the copy.
            </param>
            <param name="regions">Structures specifying the regions to copy.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdCopyImageToBuffer(VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.Buffer,VulkanCore.BufferImageCopy[])">
            <summary>
            Copy image data into a buffer.
            <para>
            Each region in <paramref name="regions"/> is copied from the specified region of the
            source image to the specified region of the destination buffer.
            </para>
            </summary>
            <param name="srcImage">The source image.</param>
            <param name="srcImageLayout">The layout of the source image subresources for the copy.</param>
            <param name="dstBuffer">The destination buffer.</param>
            <param name="regions">Structures specifying the regions to copy.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdUpdateBuffer(VulkanCore.Buffer,System.Int64,System.Int64,System.IntPtr)">
            <summary>
            Update a buffer's contents from host memory.
            <para>
            <paramref name="dataSize"/> must be less than or equal to 65536 bytes. For larger
            updates, applications can use buffer to buffer copies.
            </para>
            <para>
            Is only allowed outside of a render pass. This command is treated as "transfer"
            operation, for the purposes of synchronization barriers. The <see
            cref="F:VulkanCore.BufferUsages.TransferDst"/> must be specified in usage of <see
            cref="T:VulkanCore.BufferViewCreateInfo"/> in order for the buffer to be compatible with <see cref="M:VulkanCore.CommandBuffer.CmdUpdateBuffer(VulkanCore.Buffer,System.Int64,System.Int64,System.IntPtr)"/>.
            </para>
            </summary>
            <param name="dstBuffer">A handle to the buffer to be updated.</param>
            <param name="dstOffset">
            The byte offset into the buffer to start updating, and must be a multiple of 4.
            </param>
            <param name="dataSize">The number of bytes to update, and must be a multiple of 4.</param>
            <param name="data">
            A pointer to the source data for the buffer update, and must be at least <paramref
            name="dataSize"/> bytes in size.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdFillBuffer(VulkanCore.Buffer,System.Int64,System.Int64,System.Int32)">
            <summary>
            Fill a region of a buffer with a fixed value.
            <para>
            Is treated as "transfer" operation for the purposes of synchronization barriers. The <see
            cref="F:VulkanCore.BufferUsages.TransferDst"/> must be specified in usage of <see
            cref="T:VulkanCore.BufferCreateInfo"/> in order for the buffer to be compatible with <see cref="M:VulkanCore.CommandBuffer.CmdFillBuffer(VulkanCore.Buffer,System.Int64,System.Int64,System.Int32)"/>.
            </para>
            </summary>
            <param name="dstBuffer">The buffer to be filled.</param>
            <param name="dstOffset">
            The byte offset into the buffer at which to start filling, and must be a multiple of 4.
            </param>
            <param name="size">
            the number of bytes to fill, and must be either a multiple of 4, or <see
            cref="F:VulkanCore.Constant.WholeSize"/> to fill the range from offset to the end of the buffer. If <see
            cref="F:VulkanCore.Constant.WholeSize"/> is used and the remaining size of the buffer is not a multiple of 4,
            then the nearest smaller multiple is used.
            </param>
            <param name="data">
            The 4-byte word written repeatedly to the buffer to fill size bytes of data. The data
            word is written to memory according to the host endianness.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdClearColorImage(VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.ClearColorValue,VulkanCore.ImageSubresourceRange[])">
            <summary>
            Clear regions of a color image.
            <para>
            Each specified range in <paramref name="ranges"/> is cleared to the value specified by
            <paramref name="color"/>.
            </para>
            </summary>
            <param name="image">The image to be cleared.</param>
            <param name="imageLayout">
            Specifies the current layout of the image subresource ranges to be cleared, and must be
            <see cref="F:VulkanCore.ImageLayout.General"/> or <see cref="F:VulkanCore.ImageLayout.TransferDstOptimal"/>.
            </param>
            <param name="color">
            Contains the values the image subresource ranges will be cleared to.
            </param>
            <param name="ranges">
            Structures that describe a range of mipmap levels, array layers, and aspects to be
            cleared. The aspect mask of all image subresource ranges must only include <see cref="F:VulkanCore.ImageAspects.Color"/>.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdClearDepthStencilImage(VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.ClearDepthStencilValue,VulkanCore.ImageSubresourceRange[])">
            <summary>
            Fill regions of a combined depth/stencil image.
            </summary>
            <param name="image">The image to be cleared.</param>
            <param name="imageLayout">
            Specifies the current layout of the image subresource ranges to be cleared, and must be
            <see cref="F:VulkanCore.ImageLayout.General"/> or <see cref="F:VulkanCore.ImageLayout.TransferDstOptimal"/>.
            </param>
            <param name="depthStencil">
            Structure that contains the values the depth and stencil image subresource ranges will be
            cleared to.
            </param>
            <param name="ranges">
            Structures that describe a range of mipmap levels, array layers, and aspects to be
            cleared. The aspect mask of each image subresource range in <paramref name="ranges"/> can
            include <see cref="F:VulkanCore.ImageAspects.Depth"/> if the image format has a depth component,
            and <see cref="F:VulkanCore.ImageAspects.Stencil"/> if the image format has a stencil component.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdClearAttachments(VulkanCore.ClearAttachment[],VulkanCore.ClearRect[])">
            <summary>
            Clear regions within currently bound framebuffer attachments.
            <para>
            Can clear multiple regions of each attachment used in the current subpass of a render
            pass instance. This command must be called only inside a render pass instance, and
            implicitly selects the images to clear based on the current framebuffer attachments and
            the command parameters.
            </para>
            </summary>
            <param name="attachments">
            Structures defining the attachments to clear and the clear values to use.
            </param>
            <param name="rects">
            Structures defining regions within each selected attachment to clear.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdResolveImage(VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.ImageResolve[])">
            <summary>
            Resolve regions of an image.
            <para>
            During the resolve the samples corresponding to each pixel location in the source are
            converted to a single sample before being written to the destination. If the source
            formats are floating-point or normalized types, the sample values for each pixel are
            resolved in an implementation-dependent manner. If the source formats are integer types,
            a single sample’s value is selected for each pixel.
            </para>
            </summary>
            <param name="srcImage">The source image.</param>
            <param name="srcImageLayout">The layout of the source image subresources for the resolve.</param>
            <param name="dstImage">The destination image.</param>
            <param name="dstImageLayout">
            The layout of the destination image subresources for the resolve.
            </param>
            <param name="regions">Structures specifying the regions to resolve.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdSetEvent(VulkanCore.Event,VulkanCore.PipelineStages)">
            <summary>
            Set an event object to signaled state.
            <para>
            When <see cref="M:VulkanCore.CommandBuffer.CmdSetEvent(VulkanCore.Event,VulkanCore.PipelineStages)"/> is submitted to a queue, it defines an execution
            dependency on commands that were submitted before it, and defines an event signal
            operation which sets the event to the signaled state.
            </para>
            </summary>
            <param name="event">The event that will be signaled.</param>
            <param name="stageMask">
            Specifies the source stage mask used to determine when the <paramref name="event"/> is signaled.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdResetEvent(VulkanCore.Event,VulkanCore.PipelineStages)">
            <summary>
            Reset an event object to non-signaled state.
            <para>
            When <see cref="M:VulkanCore.CommandBuffer.CmdResetEvent(VulkanCore.Event,VulkanCore.PipelineStages)"/> is submitted to a queue, it defines an execution
            dependency on commands that were submitted before it, and defines an event unsignal
            operation which resets the event to the unsignaled state.
            </para>
            </summary>
            <param name="event">The event that will be unsignaled.</param>
            <param name="stageMask">
            Specifies the source stage mask used to determine when the <paramref name="event"/> is unsignaled.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdWaitEvents(VulkanCore.Event[],VulkanCore.PipelineStages,VulkanCore.PipelineStages,VulkanCore.MemoryBarrier[],VulkanCore.BufferMemoryBarrier[],VulkanCore.ImageMemoryBarrier[])">
            <summary>
            Wait for one or more events and insert a set of memory.
            <para>
            When <see cref="M:VulkanCore.CommandBuffer.CmdWaitEvents(VulkanCore.Event[],VulkanCore.PipelineStages,VulkanCore.PipelineStages,VulkanCore.MemoryBarrier[],VulkanCore.BufferMemoryBarrier[],VulkanCore.ImageMemoryBarrier[])"/> is submitted to a queue, it defines a memory dependency
            between prior event signal operations, and subsequent commands.
            </para>
            </summary>
            <param name="events">Event object handles to wait on.</param>
            <param name="srcStageMask">The source stage mask.</param>
            <param name="dstStageMask">The destination stage mask.</param>
            <param name="memoryBarriers">An array of <see cref="T:VulkanCore.MemoryBarrier"/> structures.</param>
            <param name="bufferMemoryBarriers">An array of <see cref="T:VulkanCore.BufferMemoryBarrier"/> structures.</param>
            <param name="imageMemoryBarriers">An array of <see cref="T:VulkanCore.ImageMemoryBarrier"/> structures.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdWaitEvent(VulkanCore.Event,VulkanCore.PipelineStages,VulkanCore.PipelineStages,VulkanCore.MemoryBarrier[],VulkanCore.BufferMemoryBarrier[],VulkanCore.ImageMemoryBarrier[])">
            <summary>
            Wait for an event and insert a set of memory.
            <para>
            When <see cref="M:VulkanCore.CommandBuffer.CmdWaitEvent(VulkanCore.Event,VulkanCore.PipelineStages,VulkanCore.PipelineStages,VulkanCore.MemoryBarrier[],VulkanCore.BufferMemoryBarrier[],VulkanCore.ImageMemoryBarrier[])"/> is submitted to a queue, it defines a memory dependency
            between prior event signal operations, and subsequent commands.
            </para>
            </summary>
            <param name="event">Event object handle to wait on.</param>
            <param name="srcStageMask">The source stage mask.</param>
            <param name="dstStageMask">The destination stage mask.</param>
            <param name="memoryBarriers">An array of <see cref="T:VulkanCore.MemoryBarrier"/> structures.</param>
            <param name="bufferMemoryBarriers">An array of <see cref="T:VulkanCore.BufferMemoryBarrier"/> structures.</param>
            <param name="imageMemoryBarriers">An array of <see cref="T:VulkanCore.ImageMemoryBarrier"/> structures.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdPipelineBarrier(VulkanCore.PipelineStages,VulkanCore.PipelineStages,VulkanCore.Dependencies,VulkanCore.MemoryBarrier[],VulkanCore.BufferMemoryBarrier[],VulkanCore.ImageMemoryBarrier[])">
            <summary>
            Insert a memory dependency.
            <para>
            When the command is submitted to a queue, it defines a memory dependency between commands
            that were submitted before it, and those submitted after it.
            </para>
            </summary>
            <param name="srcStageMask">Defines a source stage mask.</param>
            <param name="dstStageMask">Defines a destination stage mask.</param>
            <param name="dependencyFlags">a bitmask of <see cref="T:VulkanCore.Dependencies"/>.</param>
            <param name="memoryBarriers">An array of <see cref="T:VulkanCore.MemoryBarrier"/> structures.</param>
            <param name="bufferMemoryBarriers">An array of <see cref="T:VulkanCore.BufferMemoryBarrier"/> structures.</param>
            <param name="imageMemoryBarriers">An array of <see cref="T:VulkanCore.ImageMemoryBarrier"/> structures.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdBeginQuery(VulkanCore.QueryPool,System.Int32,VulkanCore.QueryControlFlags)">
            <summary>
            Begin a query.
            </summary>
            <param name="queryPool">The query pool that will manage the results of the query.</param>
            <param name="query">The query index within the query pool that will contain the results.</param>
            <param name="flags">
            A bitmask indicating constraints on the types of queries that can be performed.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdEndQuery(VulkanCore.QueryPool,System.Int32)">
            <summary>
            Ends a query.
            <para>
            As queries operate asynchronously, ending a query does not immediately set the query’s
            status to available. A query is considered finished when the final results of the query
            are ready to be retrieved by <see cref="F:VulkanCore.QueryPool.vkGetQueryPoolResults"/> and <see
            cref="M:VulkanCore.CommandBuffer.CmdCopyQueryPoolResults(VulkanCore.QueryPool,System.Int32,System.Int32,VulkanCore.Buffer,System.Int64,System.Int64,VulkanCore.QueryResults)"/>, and this is when the query’s status is set to available.
            </para>
            <para>
            Once a query is ended the query must finish in finite time, unless the state of the query
            is changed using other commands, e.g. by issuing a reset of the query.
            </para>
            </summary>
            <param name="queryPool">The query pool that is managing the results of the query.</param>
            <param name="query">The query index within the query pool where the result is stored.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdResetQueryPool(VulkanCore.QueryPool,System.Int32,System.Int32)">
            <summary>
            Reset queries in a query pool.
            <para>
            When executed on a queue, this command sets the status of query indices [firstQuery,
            firstQuery + queryCount - 1] to unavailable.
            </para>
            </summary>
            <param name="queryPool">The handle of the query pool managing the queries being reset.</param>
            <param name="firstQuery">The initial query index to reset.</param>
            <param name="queryCount">The number of queries to reset.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdWriteTimestamp(VulkanCore.PipelineStages,VulkanCore.QueryPool,System.Int32)">
            <summary>
            Write a device timestamp into a query object.
            <para>
            Latches the value of the timer when all previous commands have completed executing as far
            as the specified pipeline stage, and writes the timestamp value to memory. When the
            timestamp value is written, the availability status of the query is set to available.
            </para>
            </summary>
            <param name="pipelineStage">Specifies a stage of the pipeline.</param>
            <param name="queryPool">The query pool that will manage the timestamp.</param>
            <param name="query">The query within the query pool that will contain the timestamp.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdCopyQueryPoolResults(VulkanCore.QueryPool,System.Int32,System.Int32,VulkanCore.Buffer,System.Int64,System.Int64,VulkanCore.QueryResults)">
            <summary>
            Copy the results of queries in a query pool to a buffer object.
            <para>
            Is guaranteed to see the effect of previous uses of <see cref="M:VulkanCore.CommandBuffer.CmdResetQueryPool(VulkanCore.QueryPool,System.Int32,System.Int32)"/> in
            the same queue, without any additional synchronization. Thus, the results will always
            reflect the most recent use of the query.
            </para>
            </summary>
            <param name="queryPool">
            The query pool managing the queries containing the desired results.
            </param>
            <param name="firstQuery">The initial query index.</param>
            <param name="queryCount">
            The number of queries. <paramref name="firstQuery"/> and <paramref name="queryCount"/>
            together define a range of queries.
            </param>
            <param name="dstBuffer">Buffer object that will receive the results of the copy command.</param>
            <param name="dstOffset">An offset into <paramref name="dstBuffer"/>.</param>
            <param name="stride">
            The stride in bytes between results for individual queries within <paramref
            name="dstBuffer"/>. The required size of the backing memory for <paramref
            name="dstBuffer"/> is determined as described above for <see cref="M:VulkanCore.QueryPool.GetResults(System.Int32,System.Int32,System.Int32,System.IntPtr,System.Int64,VulkanCore.QueryResults)"/>.
            </param>
            <param name="flags">A bitmask specifying how and when results are returned.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdPushConstants(VulkanCore.PipelineLayout,VulkanCore.ShaderStages,System.Int32,System.Int32,System.IntPtr)">
            <summary>
            Update the values of push constants.
            </summary>
            <param name="layout">The pipeline layout used to program the push constant updates.</param>
            <param name="stageFlags">
            A bitmask specifying the shader stages that will use the push constants in the updated range.
            <para>
            Must match exactly the shader stages used in <paramref name="layout"/> for the range
            specified by <paramref name="offset"/> and <paramref name="size"/>.
            </para>
            </param>
            <param name="offset">
            The start offset of the push constant range to update, in units of bytes.
            <para>Must be a multiple of 4.</para>
            <para>Must be less than <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxPushConstantsSize"/>.</para>
            </param>
            <param name="size">
            The size of the push constant range to update, in units of bytes.
            <para>Must be a multiple of 4.</para>
            <para>
            Must be less than or equal to <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxPushConstantsSize"/>
            minus <paramref name="offset"/>.
            </para>
            </param>
            <param name="values">
            An array of <paramref name="size"/> bytes containing the new push constant values.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdBeginRenderPass(VulkanCore.RenderPassBeginInfo,VulkanCore.SubpassContents)">
            <summary>
            Begin a new render pass.
            <para>
            After beginning a render pass instance, the command buffer is ready to record the
            commands for the first subpass of that render pass.
            </para>
            </summary>
            <param name="beginInfo">
            Indicates the render pass to begin an instance of, and the framebuffer the instance uses.
            </param>
            <param name="contents">Specifies how the commands in the first subpass will be provided.</param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdNextSubpass(VulkanCore.SubpassContents)">
            <summary>
            Transition to the next subpass of a render pass.
            <para>
            The subpass index for a render pass begins at zero when <see cref="M:VulkanCore.CommandBuffer.CmdBeginRenderPass(VulkanCore.RenderPassBeginInfo,VulkanCore.SubpassContents)"/>
            is recorded, and increments each time <see cref="M:VulkanCore.CommandBuffer.CmdNextSubpass(VulkanCore.SubpassContents)"/> is recorded.
            </para>
            <para>
            Moving to the next subpass automatically performs any multisample resolve operations in
            the subpass being ended. End-of-subpass multisample resolves are treated as color
            attachment writes for the purposes of synchronization. That is, they are considered to
            execute in the <see cref="F:VulkanCore.PipelineStages.ColorAttachmentOutput"/> pipeline stage and
            their writes are synchronized with <see cref="F:VulkanCore.Accesses.ColorAttachmentWrite"/>.
            Synchronization between rendering within a subpass and any resolve operations at the end
            of the subpass occurs automatically, without need for explicit dependencies or pipeline
            barriers. However, if the resolve attachment is also used in a different subpass, an
            explicit dependency is needed.
            </para>
            <para>
            After transitioning to the next subpass, the application can record the commands for that subpass.
            </para>
            </summary>
            <param name="contents">
            Specifies how the commands in the next subpass will be provided, in the same fashion as
            the corresponding parameter of <see cref="M:VulkanCore.CommandBuffer.CmdBeginRenderPass(VulkanCore.RenderPassBeginInfo,VulkanCore.SubpassContents)"/>.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdEndRenderPass">
            <summary>
            End the current render pass.
            <para>
            Ending a render pass instance performs any multisample resolve operations on the final subpass.
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdExecuteCommand(VulkanCore.CommandBuffer)">
            <summary>
            Execute a secondary command buffer from a primary command buffer.
            <para>
            A secondary command buffer must not be directly submitted to a queue. Instead, secondary
            command buffers are recorded to execute as part of a primary command buffer with this command.
            </para>
            </summary>
            <param name="commandBuffer">
            Secondary command buffer handle, which is recorded to execute in the primary command buffer.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.CmdExecuteCommands(VulkanCore.CommandBuffer[])">
            <summary>
            Execute a secondary command buffer from a primary command buffer.
            <para>
            A secondary command buffer must not be directly submitted to a queue. Instead, secondary
            command buffers are recorded to execute as part of a primary command buffer with this command.
            </para>
            </summary>
            <param name="commandBuffers">
            Secondary command buffer handles, which are recorded to execute in the primary command
            buffer in the order they are listed in the array.
            </param>
        </member>
        <member name="M:VulkanCore.CommandBuffer.Dispose">
            <summary>
            Free command buffer.
            </summary>
        </member>
        <member name="T:VulkanCore.CommandBufferAllocateInfo">
            <summary>
            Structure specifying the allocation parameters for command buffer object.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferAllocateInfo.Level">
            <summary>
            Specifies the command buffer level.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferAllocateInfo.CommandBufferCount">
            <summary>
            The number of command buffers to allocate from the pool.
            </summary>
        </member>
        <member name="M:VulkanCore.CommandBufferAllocateInfo.#ctor(VulkanCore.CommandBufferLevel,System.Int32)">
            <summary>
            Inititializes a new instance of the <see cref="T:VulkanCore.CommandBuffer"/> structure.
            </summary>
            <param name="level">Specifies the command buffer level.</param>
            <param name="count">The number of command buffers to allocate from the pool.</param>
        </member>
        <member name="T:VulkanCore.CommandBufferLevel">
            <summary>
            Enumerant specifying a command buffer level.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferLevel.Primary">
            <summary>
            Specifies a primary command buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferLevel.Secondary">
            <summary>
            Specifies a secondary command buffer.
            </summary>
        </member>
        <member name="T:VulkanCore.CommandBufferBeginInfo">
            <summary>
            Structure specifying a command buffer begin operation.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferBeginInfo.Flags">
            <summary>
            A bitmask specifying usage behavior for the command buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferBeginInfo.InheritanceInfo">
            <summary>
            Structure, which is used if command buffer is a secondary command buffer.
            <para>If it is a primary command buffer, then this value is ignored.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.CommandBufferBeginInfo.#ctor(VulkanCore.CommandBufferUsages,System.Nullable{VulkanCore.CommandBufferInheritanceInfo})">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.CommandBufferBeginInfo"/> structure.
            </summary>
            <param name="flags">A bitmask specifying usage behavior for the command buffer.</param>
            <param name="inheritanceInfo">
            Structure, which is used if command buffer is a secondary command buffer.
            <para>If it is a primary command buffer, then this value is ignored.</para>
            </param>
        </member>
        <member name="T:VulkanCore.CommandBufferUsages">
            <summary>
            Bitmask specifying usage behavior for command buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferUsages.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferUsages.OneTimeSubmit">
            <summary>
            Specifies that each recording of the command buffer will only be submitted once, and the
            command buffer will be reset and recorded again between each submission.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferUsages.RenderPassContinue">
            <summary>
            Specifies that a secondary command buffer is considered to be entirely inside a render pass.
            <para>If this is a primary command buffer, then this bit is ignored.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferUsages.SimultaneousUse">
            <summary>
            Specifies that a command buffer can be resubmitted to a queue while it is in the pending
            State, and recorded into multiple primary command buffers.
            </summary>
        </member>
        <member name="T:VulkanCore.CommandBufferInheritanceInfo">
            <summary>
            Structure specifying command buffer inheritance info.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferInheritanceInfo.RenderPass">
            <summary>
            A <see cref="T:VulkanCore.RenderPass"/> object defining which render passes the <see
            cref="T:VulkanCore.CommandBuffer"/> will be compatible with and can be executed within. If the <see
            cref="T:VulkanCore.CommandBuffer"/> will not be executed within a render pass instance, <see
            cref="F:VulkanCore.CommandBufferInheritanceInfo.RenderPass"/> is ignored.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferInheritanceInfo.Subpass">
            <summary>
            The index of the subpass within the render pass instance that the <see
            cref="T:VulkanCore.CommandBuffer"/> will be executed within. If the <see cref="T:VulkanCore.CommandBuffer"/> will
            not be executed within a render pass instance, subpass is ignored.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferInheritanceInfo.Framebuffer">
            <summary>
            Optionally refers to the <see cref="T:VulkanCore.Framebuffer"/> object that the <see
            cref="T:VulkanCore.CommandBuffer"/> will be rendering to if it is executed within a render pass
            instance. It can be 0 if the framebuffer is not known, or if the <see
            cref="T:VulkanCore.CommandBuffer"/> will not be executed within a render pass instance.
            <para>
            Specifying the exact framebuffer that the secondary command buffer will be executed with
            may result in better performance at command buffer execution time.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferInheritanceInfo.OcclusionQueryEnable">
            <summary>
            Indicates whether the command buffer can be executed while an occlusion query is active
            in the primary command buffer. If this is <c>true</c>, then this command buffer can be
            executed whether the primary command buffer has an occlusion query active or not. If this
            is <c>false</c>, then the primary command buffer must not have an occlusion query active.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferInheritanceInfo.QueryFlags">
            <summary>
            Indicates the query flags that can be used by an active occlusion query in the primary
            command buffer when this secondary command buffer is executed. If this value includes the
            <see cref="F:VulkanCore.QueryControlFlags.Precise"/> bit, then the active query can return boolean
            results or actual sample counts. If this bit is not set, then the active query must not
            use the <see cref="F:VulkanCore.QueryControlFlags.Precise"/> bit.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferInheritanceInfo.PipelineStatistics">
            <summary>
            Specifies the set of pipeline statistics that can be counted by an active query in the
            primary command buffer when this secondary command buffer is executed. If this value
            includes a given bit, then this command buffer can be executed whether the primary
            command buffer has a pipeline statistics query active that includes this bit or not. If
            this value excludes a given bit, then the active pipeline statistics query must not be
            from a query pool that counts that statistic.
            </summary>
        </member>
        <member name="T:VulkanCore.QueryControlFlags">
            <summary>
            Bitmask specifying constraints on a query.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryControlFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryControlFlags.Precise">
            <summary>
            Specifies the precision of occlusion queries.
            </summary>
        </member>
        <member name="T:VulkanCore.QueryPipelineStatistics">
            <summary>
            Bitmask specifying queried pipeline statistics.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPipelineStatistics.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPipelineStatistics.InputAssemblyVertices">
            <summary>
            Specifies that queries managed by the pool will count the number of vertices processed by
            the input assembly stage.
            <para>Vertices corresponding to incomplete primitives may contribute to the count.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPipelineStatistics.InputAssemblyPrimitives">
            <summary>
            Specifies that queries managed by the pool will count the number of primitives processed
            by the input assembly stage.
            <para>
            If primitive restart is enabled, restarting the primitive topology has no effect on the count.
            </para>
            <para>Incomplete primitives may be counted.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPipelineStatistics.VertexShaderInvocations">
            <summary>
            Specifies that queries managed by the pool will count the number of vertex shader invocations.
            <para>This counter's value is incremented each time a vertex shader is invoked.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPipelineStatistics.GeometryShaderInvocations">
            <summary>
            Specifies that queries managed by the pool will count the number of geometry shader invocations.
            <para>This counter's value is incremented each time a geometry shader is invoked.</para>
            <para>
            In the case of instanced geometry shaders, the geometry shader invocations count is
            incremented for each separate instanced invocation.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPipelineStatistics.GeometryShaderPrimitives">
            <summary>
            Specifies that queries managed by the pool will count the number of primitives generated
            by geometry shader invocations.
            <para>The counter's value is incremented each time the geometry shader emits a primitive.</para>
            <para>
            Restarting primitive topology using the SPIR-V instructions <c>OpEndPrimitive</c> or
            <c>OpEndStreamPrimitive</c> has no effect on the geometry shader output primitives count.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPipelineStatistics.ClippingInvocations">
            <summary>
            Specifies that queries managed by the pool will count the number of primitives processed
            by the primitive clipping stage of the pipeline.
            <para>
            The counter's value is incremented each time a primitive reaches the primitive clipping stage.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPipelineStatistics.ClippingPrimitives">
            <summary>
            Specifies that queries managed by the pool will count the number of primitives output by
            the primitive clipping stage of the pipeline.
            <para>
            The counter's value is incremented each time a primitive passes the primitive clipping stage.
            </para>
            <para>
            The actual number of primitives output by the primitive clipping stage for a particular
            input primitive is implementation-dependent but must satisfy the following conditions:
            </para>
            <para>
            ** If at least one vertex of the input primitive lies inside the clipping volume, the
            counter is incremented by one or more.
            </para>
            <para>** Otherwise, the counter is incremented by zero or more.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPipelineStatistics.FragmentShaderInvocations">
            <summary>
            Specifies that queries managed by the pool will count the number of fragment shader invocations.
            <para>The counter's value is incremented each time the fragment shader is invoked.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPipelineStatistics.TessellationControlShaderPatches">
            <summary>
            Specifies that queries managed by the pool will count the number of patches processed by
            the tessellation control shader.
            <para>
            The counter's value is incremented once for each patch for which a tessellation control
            shader is invoked.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPipelineStatistics.TessellationEvaluationShaderInvocations">
            <summary>
            Specifies that queries managed by the pool will count the number of invocations of the
            tessellation evaluation shader.
            <para>
            The counter's value is incremented each time the tessellation evaluation shader is invoked.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPipelineStatistics.ComputeShaderInvocations">
            <summary>
            Specifies that queries managed by the pool will count the number of compute shader invocations.
            <para>The counter's value is incremented every time the compute shader is invoked.</para>
            <para>
            Implementations may skip the execution of certain compute shader invocations or execute
            additional compute shader invocations for implementation-dependent reasons as long as the
            results of rendering otherwise remain unchanged.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.CommandBufferResetFlags">
            <summary>
            Bitmask controlling behavior of a command buffer reset.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferResetFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandBufferResetFlags.ReleaseResources">
            <summary>
            Specifies that most or all memory resources currently owned by the command buffer should
            be returned to the parent command pool.
            <para>
            If this flag is not set, then the command buffer may hold onto memory resources and reuse
            them when recording commands.
            </para>
            <para>Command buffer is moved to the initial state.</para>
            </summary>
        </member>
        <member name="T:VulkanCore.IndexType">
            <summary>
            Type of index buffer indices.
            </summary>
        </member>
        <member name="F:VulkanCore.IndexType.UInt16">
            <summary>
            Specifies that indices are 16-bit unsigned integer values.
            </summary>
        </member>
        <member name="F:VulkanCore.IndexType.UInt32">
            <summary>
            Specifies that indices are 32-bit unsigned integer values.
            </summary>
        </member>
        <member name="T:VulkanCore.StencilFaces">
            <summary>
            Bitmask specifying sets of stencil state for which to update the compare mask.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilFaces.Front">
            <summary>
            Specifies that only the front set of stencil state is updated.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilFaces.Back">
            <summary>
            Specifies that only the back set of stencil state is updated.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilFaces.StencilFrontAndBack">
            <summary>
            Is the combination of <see cref="F:VulkanCore.StencilFaces.Front"/> and <see cref="F:VulkanCore.StencilFaces.Back"/>, and specifies that both
            sets of stencil state are updated.
            </summary>
        </member>
        <member name="T:VulkanCore.BufferCopy">
            <summary>
            Structure specifying a buffer copy operation.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCopy.SrcOffset">
            <summary>
            The starting offset in bytes from the start of source buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCopy.DstOffset">
            <summary>
            The starting offset in bytes from the start of destination buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferCopy.Size">
            <summary>
            The number of bytes to copy.
            </summary>
        </member>
        <member name="M:VulkanCore.BufferCopy.#ctor(System.Int64,System.Int64,System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.BufferCopy"/> structure.
            </summary>
            <param name="srcOffset">The starting offset in bytes from the start of source buffer.</param>
            <param name="dstOffset">The starting offset in bytes from the start of destination buffer.</param>
            <param name="size">The number of bytes to copy.</param>
        </member>
        <member name="T:VulkanCore.ImageCopy">
            <summary>
            Structure specifying an image copy operation.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCopy.SrcSubresource">
            <summary>
            Specifies the image subresource of the image used for the source image data.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCopy.SrcOffset">
            <summary>
            Selects the initial x, y, and z offsets in texels of the sub-region of the source image data.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCopy.DstSubresource">
            <summary>
            Specifies the image subresource of the image used for the destination image data.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCopy.DstOffset">
            <summary>
            Selects the initial x, y, and z offsets in texels of the sub-region of the source image data.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCopy.Extent">
            <summary>
            The size in texels of the source image to copy in width, height and depth.
            </summary>
        </member>
        <member name="T:VulkanCore.ImageSubresourceLayers">
            <summary>
            Structure specifying a image subresource layers.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageSubresourceLayers.AspectMask">
            <summary>
            A combination of <see cref="T:VulkanCore.ImageAspects"/> selecting the color, depth and/or stencil
            aspects to be copied.
            <para>Must not contain <see cref="F:VulkanCore.ImageAspects.Metadata"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.ImageSubresourceLayers.MipLevel">
            <summary>
            The mipmap level to copy from.
            <para>
            Must be less than the specified <see cref="F:VulkanCore.ImageCreateInfo.MipLevels"/> when the image
            was created.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.ImageSubresourceLayers.BaseArrayLayer">
            <summary>
            The starting layer.
            <para>
            Must be less than or equal to the arrayLayers specified in <see cref="T:VulkanCore.ImageCreateInfo"/>
            when the image was created.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.ImageSubresourceLayers.LayerCount">
            <summary>
            The number of layers to copy.
            </summary>
        </member>
        <member name="M:VulkanCore.ImageSubresourceLayers.#ctor(VulkanCore.ImageAspects,System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ImageSubresourceLayers"/> structure.
            </summary>
            <param name="aspectMask">
            A combination of <see cref="T:VulkanCore.ImageAspects"/> selecting the color, depth and/or stencil
            aspects to be copied.
            </param>
            <param name="mipLevel">The mipmap level to copy from.</param>
            <param name="baseArrayLayer">The starting layer.</param>
            <param name="layerCount">The number of layers to copy.</param>
        </member>
        <member name="T:VulkanCore.ImageBlit">
            <summary>
            Structure specifying an image blit operation.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageBlit.SrcSubresource">
            <summary>
            The subresource to blit from.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageBlit.SrcOffset1">
            <summary>
            Specifies the bounds of the first source region within <see cref="F:VulkanCore.ImageBlit.SrcSubresource"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageBlit.SrcOffset2">
            <summary>
            Specifies the bounds of the second source region within <see cref="F:VulkanCore.ImageBlit.SrcSubresource"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageBlit.DstSubresource">
            <summary>
            The subresource to blit into.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageBlit.DstOffset1">
            <summary>
            Specifies the bounds of the first destination region within <see cref="F:VulkanCore.ImageBlit.DstSubresource"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageBlit.DstOffset2">
            <summary>
            Specifies the bounds of the second destination region within <see cref="F:VulkanCore.ImageBlit.DstSubresource"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.BufferImageCopy">
            <summary>
            Structure specifying a buffer image copy operation.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferImageCopy.BufferOffset">
            <summary>
            the offset in bytes from the start of the buffer object where the image data is copied
            from or to.
            <para>Must be a multiple of 4.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.BufferImageCopy.BufferRowLength">
            <summary>
            Specifies the data in buffer memory as a subregion of a larger two- or three-dimensional
            image, and control the addressing calculations of data in buffer memory. If this value is
            zero, that aspect of the buffer memory is considered to be tightly packed according to
            the <see cref="F:VulkanCore.BufferImageCopy.ImageExtent"/>.
            <para>Must be 0, or greater than or equal to the width member.</para>
            of imageExtent.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferImageCopy.BufferImageHeight">
            <summary>
            Specifies the data in buffer memory as a subregion of a larger two- or three-dimensional
            image, and control the addressing calculations of data in buffer memory. If this value is
            zero, that aspect of the buffer memory is considered to be tightly packed according to
            the <see cref="F:VulkanCore.BufferImageCopy.ImageExtent"/>.
            <para>Must be 0, or greater than or equal to the height member of <see cref="F:VulkanCore.BufferImageCopy.ImageExtent"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.BufferImageCopy.ImageSubresource">
            <summary>
            Used to specify the specific image subresources of the image used for the source or
            destination image data.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferImageCopy.ImageOffset">
            <summary>
            Selects the initial x, y, z offsets in texels of the sub-region of the source or
            destination image data.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferImageCopy.ImageExtent">
            <summary>
            The size in texels of the image to copy in width, height and depth.
            </summary>
        </member>
        <member name="T:VulkanCore.ClearColorValue">
            <summary>
            Structure specifying a clear color value.
            </summary>
        </member>
        <member name="F:VulkanCore.ClearColorValue.Float4">
            <summary>
            Are the color clear values when the format of the image or attachment is one of the
            formats other than signed integer or unsigned integer. Floating point values are
            automatically converted to the format of the image, with the clear value being treated as
            linear if the image is sRGB.
            </summary>
        </member>
        <member name="F:VulkanCore.ClearColorValue.Int4">
            <summary>
            Are the color clear values when the format of the image or attachment is signed integer.
            Signed integer values are converted to the format of the image by casting to the smaller
            type (with negative 32-bit values mapping to negative values in the smaller type). If the
            integer clear value is not representable in the target type (e.g. would overflow in
            conversion to that type), the clear value is undefined.
            </summary>
        </member>
        <member name="F:VulkanCore.ClearColorValue.UInt4">
            <summary>
            Are the color clear values when the format of the image or attachment is unsigned
            integer. Unsigned integer values are converted to the format of the image by casting to
            the integer type with fewer bits.
            </summary>
        </member>
        <member name="M:VulkanCore.ClearColorValue.#ctor(VulkanCore.ColorF4)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ClearColorValue"/> structure.
            </summary>
            <param name="value">
            Are the color clear values when the format of the image or attachment is one of the
            formats other than signed integer or unsigned integer. Floating point values are
            automatically converted to the format of the image, with the clear value being treated as
            linear if the image is sRGB.
            </param>
        </member>
        <member name="M:VulkanCore.ClearColorValue.#ctor(VulkanCore.ColorI4)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ClearColorValue"/> structure.
            </summary>
            <param name="value">
            Are the color clear values when the format of the image or attachment is signed integer.
            Signed integer values are converted to the format of the image by casting to the smaller
            type (with negative 32-bit values mapping to negative values in the smaller type). If the
            integer clear value is not representable in the target type (e.g. would overflow in
            conversion to that type), the clear value is undefined.
            </param>
        </member>
        <member name="M:VulkanCore.ClearColorValue.#ctor(VulkanCore.ColorU4)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ClearColorValue"/> structure.
            </summary>
            <param name="value">
            Are the color clear values when the format of the image or attachment is unsigned
            integer. Unsigned integer values are converted to the format of the image by casting to
            the integer type with fewer bits.
            </param>
        </member>
        <member name="T:VulkanCore.ClearDepthStencilValue">
            <summary>
            Structure specifying a clear depth stencil value.
            </summary>
        </member>
        <member name="F:VulkanCore.ClearDepthStencilValue.Depth">
            <summary>
            The clear value for the depth aspect of the depth/stencil attachment. It is a
            floating-point value which is automatically converted to the attachment’s format.
            <para>Must be between 0.0 and 1.0, inclusive.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.ClearDepthStencilValue.Stencil">
            <summary>
            The clear value for the stencil aspect of the depth/stencil attachment. It is a 32-bit
            integer value which is converted to the attachment's format by taking the appropriate
            number of LSBs.
            </summary>
        </member>
        <member name="M:VulkanCore.ClearDepthStencilValue.#ctor(System.Single,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ClearDepthStencilValue"/> structure.
            </summary>
            <param name="depth">
            The clear value for the depth aspect of the depth/stencil attachment. It is a
            floating-point value which is automatically converted to the attachment’s format.
            </param>
            <param name="stencil">
            The clear value for the stencil aspect of the depth/stencil attachment. It is a 32-bit
            integer value which is converted to the attachment's format by taking the appropriate
            number of LSBs.
            </param>
        </member>
        <member name="T:VulkanCore.ClearValue">
            <summary>
            Structure specifying a clear value.
            </summary>
        </member>
        <member name="F:VulkanCore.ClearValue.Color">
            <summary>
            Specifies the color image clear values to use when clearing a color image or attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.ClearValue.DepthStencil">
            <summary>
            Specifies the depth and stencil clear values to use when clearing a depth/stencil image
            or attachment.
            </summary>
        </member>
        <member name="M:VulkanCore.ClearValue.#ctor(VulkanCore.ClearColorValue)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ClearValue"/> structure.
            </summary>
            <param name="color">
            Specifies the color image clear values to use when clearing a color image or attachment.
            </param>
        </member>
        <member name="M:VulkanCore.ClearValue.#ctor(VulkanCore.ClearDepthStencilValue)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ClearValue"/> structure.
            </summary>
            <param name="depthStencil">
            Specifies the depth and stencil clear values to use when clearing a depth/stencil image
            or attachment.
            </param>
        </member>
        <member name="M:VulkanCore.ClearValue.op_Implicit(VulkanCore.ClearColorValue)~VulkanCore.ClearValue">
            <summary>
            Implicitly converts an instance of <see cref="T:VulkanCore.ClearColorValue"/> to an instance of <see cref="T:VulkanCore.ClearValue"/>.
            </summary>
            <param name="value">Instance to convert.</param>
        </member>
        <member name="M:VulkanCore.ClearValue.op_Implicit(VulkanCore.ClearDepthStencilValue)~VulkanCore.ClearValue">
            <summary>
            Implicitly converts an instance of <see cref="T:VulkanCore.ClearDepthStencilValue"/> to an instance of
            <see cref="T:VulkanCore.ClearValue"/>.
            </summary>
            <param name="value">Instance to convert.</param>
        </member>
        <member name="T:VulkanCore.ClearAttachment">
            <summary>
            Structure specifying a clear attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.ClearAttachment.AspectMask">
            <summary>
            A mask selecting the color, depth and/or stencil aspects of the attachment to be cleared.
            <see cref="F:VulkanCore.ClearAttachment.AspectMask"/> can include <see cref="F:VulkanCore.ImageAspects.Color"/> for color
            attachments, <see cref="F:VulkanCore.ImageAspects.Depth"/> for depth/stencil attachments with a
            depth component, and <see cref="F:VulkanCore.ImageAspects.Stencil"/> for depth/stencil attachments
            with a stencil component. If the subpass's depth/stencil attachment is <see
            cref="F:VulkanCore.Constant.AttachmentUnused"/>, then the clear has no effect.
            <para>Must not include <see cref="F:VulkanCore.ImageAspects.Metadata"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.ClearAttachment.ColorAttachment">
            <summary>
            Is only meaningful if <see cref="F:VulkanCore.ImageAspects.Color"/> is set in <see
            cref="F:VulkanCore.ClearAttachment.AspectMask"/>, in which case it is an index to the <see
            cref="F:VulkanCore.SubpassDescription.ColorAttachments"/> array in the of the current subpass which
            selects the color attachment to clear. If <see cref="F:VulkanCore.ClearAttachment.ColorAttachment"/> is <see
            cref="F:VulkanCore.Constant.AttachmentUnused"/> then the clear has no effect.
            </summary>
        </member>
        <member name="F:VulkanCore.ClearAttachment.ClearValue">
            <summary>
            The color or depth/stencil value to clear the attachment to.
            </summary>
        </member>
        <member name="T:VulkanCore.ImageResolve">
            <summary>
            Structure specifying an image resolve operation.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageResolve.SrcSubresource">
            <summary>
            Specifies the image subresource of the source image data. Resolve of depth/stencil image
            is not supported.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageResolve.SrcOffset">
            <summary>
            Selects the initial x, y, and z offsets in texels of the sub-region of the source image data.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageResolve.DstSubresource">
            <summary>
            Specifies the image subresource of the destination image data. Resolve of depth/stencil
            image is not supported.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageResolve.DstOffset">
            <summary>
            Selects the initial x, y, and z offsets in texels of the sub-region of the destination
            image data.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageResolve.Extent">
            <summary>
            The size in texels of the source image to resolve in width, height and depth.
            </summary>
        </member>
        <member name="T:VulkanCore.MemoryBarrier">
            <summary>
            Structure specifying a global memory barrier.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryBarrier.SrcAccessMask">
            <summary>
            Specifies a source access mask.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryBarrier.DstAccessMask">
            <summary>
            Specifies a destination access mask.
            </summary>
        </member>
        <member name="M:VulkanCore.MemoryBarrier.#ctor(VulkanCore.Accesses,VulkanCore.Accesses)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.MemoryBarrier"/> structure.
            </summary>
            <param name="srcAccessMask">Specifies a source access mask.</param>
            <param name="dstAccessMask">Specifies a destination access mask.</param>
        </member>
        <member name="T:VulkanCore.BufferMemoryBarrier">
            <summary>
            Structure specifying a buffer memory barrier.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferMemoryBarrier.SrcAccessMask">
            <summary>
            Specifies a source access mask.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferMemoryBarrier.DstAccessMask">
            <summary>
            Specifies a destination access mask.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferMemoryBarrier.SrcQueueFamilyIndex">
            <summary>
            The source queue family for a queue family ownership transfer.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferMemoryBarrier.DstQueueFamilyIndex">
            <summary>
            The destination queue family for a queue family ownership transfer.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferMemoryBarrier.Buffer">
            <summary>
            A <see cref="T:VulkanCore.Buffer"/> handle to the buffer whose backing memory is affected by the barrier.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferMemoryBarrier.Offset">
            <summary>
            An offset in bytes into the backing memory for buffer; this is relative to the base
            offset as bound to the buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.BufferMemoryBarrier.Size">
            <summary>
            A size in bytes of the affected area of backing memory for buffer, or <see
            cref="F:VulkanCore.Constant.WholeSize"/> to use the range from offset to the end of the buffer.
            </summary>
        </member>
        <member name="M:VulkanCore.BufferMemoryBarrier.#ctor(VulkanCore.Buffer,VulkanCore.Accesses,VulkanCore.Accesses,System.Int64,System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.BufferMemoryBarrier"/> structure.
            </summary>
            <param name="buffer">
            A <see cref="T:VulkanCore.Buffer"/> handle to the buffer whose backing memory is affected
            by the barrier.
            </param>
            <param name="srcAccessMask">Specifies a source access mask.</param>
            <param name="dstAccessMask">Specifies a destination access mask.</param>
            <param name="offset">
            An offset in bytes into the backing memory for buffer; this is relative to the base
            offset as bound to the buffer.
            </param>
            <param name="size">
            A size in bytes of the affected area of backing memory for buffer, or <see
            cref="F:VulkanCore.Constant.WholeSize"/> to use the range from offset to the end of the buffer.
            </param>
        </member>
        <member name="M:VulkanCore.BufferMemoryBarrier.#ctor(VulkanCore.Buffer,VulkanCore.Accesses,VulkanCore.Accesses,System.Int32,System.Int32,System.Int64,System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.BufferMemoryBarrier"/> structure.
            </summary>
            <param name="buffer">
            A <see cref="T:VulkanCore.Buffer"/> handle to the buffer whose backing memory is affected
            by the barrier.
            </param>
            <param name="srcAccessMask">Specifies a source access mask.</param>
            <param name="dstAccessMask">Specifies a destination access mask.</param>
            <param name="srcQueueFamilyIndex">
            The source queue family for a queue family ownership transfer.
            </param>
            <param name="dstQueueFamilyIndex">
            The destination queue family for a queue family ownership transfer.
            </param>
            <param name="offset">
            An offset in bytes into the backing memory for buffer; this is relative to the base
            offset as bound to the buffer.
            </param>
            <param name="size">
            A size in bytes of the affected area of backing memory for buffer, or <see
            cref="F:VulkanCore.Constant.WholeSize"/> to use the range from offset to the end of the buffer.
            </param>
        </member>
        <member name="T:VulkanCore.ImageMemoryBarrier">
            <summary>
            Structure specifying the parameters of an image memory barrier.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageMemoryBarrier.SrcAccessMask">
            <summary>
            Specifies a source access mask.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageMemoryBarrier.DstAccessMask">
            <summary>
            Specifies a destination access mask.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageMemoryBarrier.OldLayout">
            <summary>
            The old layout in an image layout transition.
            <para>
            Must be <see cref="F:VulkanCore.ImageLayout.Undefined"/> or the current layout of the image
            subresources affected by the barrier.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.ImageMemoryBarrier.NewLayout">
            <summary>
            The new layout in an image layout transition.
            <para>Must not be <see cref="F:VulkanCore.ImageLayout.Undefined"/> or <see cref="F:VulkanCore.ImageLayout.Preinitialized"/></para>
            </summary>
        </member>
        <member name="F:VulkanCore.ImageMemoryBarrier.SrcQueueFamilyIndex">
            <summary>
            The source queue family for a queue family ownership transfer.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageMemoryBarrier.DstQueueFamilyIndex">
            <summary>
            The destination queue family for a queue family ownership transfer.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageMemoryBarrier.Image">
            <summary>
            A handle to the <see cref="T:VulkanCore.Image"/> affected by this barrier.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageMemoryBarrier.SubresourceRange">
            <summary>
            Describes an area of the backing memory for image, as well as the set of image
            subresources whose image layouts are modified.
            </summary>
        </member>
        <member name="M:VulkanCore.ImageMemoryBarrier.#ctor(VulkanCore.Image,VulkanCore.ImageSubresourceRange,VulkanCore.Accesses,VulkanCore.Accesses,VulkanCore.ImageLayout,VulkanCore.ImageLayout,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ImageMemoryBarrier"/> structure.
            </summary>
            <param name="image">
            A handle to the <see cref="T:VulkanCore.Image"/> affected by this barrier.
            </param>
            <param name="subresourceRange">
            Describes an area of the backing memory for image, as well as the set of image
            subresources whose image layouts are modified.
            </param>
            <param name="srcAccessMask">Specifies a source access mask.</param>
            <param name="dstAccessMask">Specifies a destination access mask.</param>
            <param name="oldLayout">The old layout in an image layout transition.</param>
            <param name="newLayout">The new layout in an image layout transition.</param>
            <param name="srcQueueFamilyIndex">
            The source queue family for a queue family ownership transfer.
            </param>
            <param name="dstQueueFamilyIndex">
            The destination queue family for a queue family ownership transfer.
            </param>
        </member>
        <member name="T:VulkanCore.Accesses">
            <summary>
            Bitmask specifying memory access types that will participate in a memory dependency.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.IndirectCommandRead">
            <summary>
            Specifies read access to an indirect command structure read as part of an indirect
            drawing or dispatch command.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.IndexRead">
            <summary>
            Specifies read access to an index buffer as part of an indexed drawing command, bound by
            <see cref="M:VulkanCore.CommandBuffer.CmdBindIndexBuffer(VulkanCore.Buffer,System.Int64,VulkanCore.IndexType)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.VertexAttributeRead">
            <summary>
            Specifies read access to a vertex buffer as part of a drawing command, bound by <see cref="M:VulkanCore.CommandBuffer.CmdBindVertexBuffers(System.Int32,System.Int32,VulkanCore.Buffer[],System.Int64[])"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.UniformRead">
            <summary>
            Specifies read access to a uniform buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.InputAttachmentRead">
            <summary>
            Specifies read access to an input attachment within a renderpass during fragment shading.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.ShaderRead">
            <summary>
            Specifies read access to a storage buffer, uniform texel buffer, storage texel buffer,
            sampled image or storage image.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.ShaderWrite">
            <summary>
            Specifies write access to a storage buffer, storage texel buffer or storage image.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.ColorAttachmentRead">
            <summary>
            Specifies read access to a color attachment, such as via blending, logic operations or
            via certain subpass load operations.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.ColorAttachmentWrite">
            <summary>
            Specifies write access to a color or resolve attachment during a render pass or via
            certain subpass load and store operations.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.DepthStencilAttachmentRead">
            <summary>
            Specifies read access to a depth/stencil attachment via depth or stencil operations or
            via certain subpass load operations.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.DepthStencilAttachmentWrite">
            <summary>
            Specifies write access to a depth/stencil attachment via depth or stencil operations or
            via certain subpass load and store operations.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.TransferRead">
            <summary>
            Specifies read access to an image or buffer in a copy operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.TransferWrite">
            <summary>
            Specifies write access to an image or buffer in a clear or copy operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.HostRead">
            <summary>
            Specifies read access by a host operation. Accesses of this type are not performed
            through a resource, but directly on memory.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.HostWrite">
            <summary>
            Specifies write access by a host operation. Accesses of this type are not performed
            through a resource, but directly on memory.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.MemoryRead">
            <summary>
            Specifies read access via non-specific entities. These entities include the Vulkan device
            and host, but may also include entities external to the Vulkan device or otherwise not
            part of the core Vulkan pipeline. When included in a destination access mask, makes all
            available writes visible to all future read accesses on entities known to the Vulkan device.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.MemoryWrite">
            <summary>
            Specifies write access via non-specific entities. These entities include the Vulkan
            device and host, but may also include entities external to the Vulkan device or otherwise
            not part of the core Vulkan pipeline. When included in a source access mask, all writes
            that are performed by entities known to the Vulkan device are made available. When
            included in a destination access mask, makes all available writes visible to all future
            write accesses on entities known to the Vulkan device.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.CommandProcessReadNvx">
            <summary>
            Specifies reads from <see cref="T:VulkanCore.Buffer"/> inputs to <see cref="M:VulkanCore.Nvx.CommandBufferExtensions.CmdProcessCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdProcessCommandsInfoNvx)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.CommandProcessWriteNvx">
            <summary>
            Specifies writes to the target command buffer in <see cref="M:VulkanCore.Nvx.CommandBufferExtensions.CmdProcessCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdProcessCommandsInfoNvx)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Accesses.ColorAttachmentReadNoncoherentExt">
            <summary>
            Is similar to <see cref="F:VulkanCore.Accesses.ColorAttachmentRead"/>, but also includes advanced blend operations.
            </summary>
        </member>
        <member name="T:VulkanCore.RenderPassBeginInfo">
            <summary>
            Structure specifying render pass begin info.
            </summary>
        </member>
        <member name="F:VulkanCore.RenderPassBeginInfo.RenderPass">
            <summary>
            The <see cref="T:VulkanCore.RenderPass"/> to begin an instance of.
            </summary>
        </member>
        <member name="F:VulkanCore.RenderPassBeginInfo.Framebuffer">
            <summary>
            The <see cref="T:VulkanCore.Framebuffer"/> containing the attachments that are used with
            the render pass.
            </summary>
        </member>
        <member name="F:VulkanCore.RenderPassBeginInfo.RenderArea">
            <summary>
            The render area that is affected by the render pass instance.
            <para>
            The effects of attachment load, store and multisample resolve operations are restricted
            to the pixels whose x and y coordinates fall within the render area on all attachments.
            The render area extends to all layers of framebuffer. The application must ensure (using
            scissor if necessary) that all rendering is contained within the render area, otherwise
            the pixels outside of the render area become undefined and shader side effects may occur
            for fragments outside the render area. The render area must be contained within the
            framebuffer dimensions.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.RenderPassBeginInfo.ClearValues">
            <summary>
            An array of <see cref="T:VulkanCore.ClearValue"/> structures that contains clear values for each
            attachment, if the attachment uses a <see cref="F:VulkanCore.AttachmentDescription.LoadOp"/> value of
            <see cref="F:VulkanCore.AttachmentLoadOp.Clear"/> or if the attachment has a depth/stencil format and
            uses a <see cref="F:VulkanCore.AttachmentDescription.StencilLoadOp"/> value of <see
            cref="F:VulkanCore.AttachmentLoadOp.Clear"/>. The array is indexed by attachment number. Only elements
            corresponding to cleared attachments are used. Other elements of <see
            cref="F:VulkanCore.RenderPassBeginInfo.ClearValues"/> are ignored.
            </summary>
        </member>
        <member name="M:VulkanCore.RenderPassBeginInfo.#ctor(VulkanCore.Framebuffer,VulkanCore.Rect2D,VulkanCore.ClearValue[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.RenderPassBeginInfo"/> structure.
            </summary>
            <param name="framebuffer">
            The <see cref="T:VulkanCore.Framebuffer"/> containing the attachments that are used with
            the render pass.
            </param>
            <param name="renderArea">The render area that is affected by the render pass instance.</param>
            <param name="clearValues">
            An array of <see cref="T:VulkanCore.ClearValue"/> structures that contains clear values for each
            attachment, if the attachment uses a <see cref="F:VulkanCore.AttachmentDescription.LoadOp"/> value of
            <see cref="F:VulkanCore.AttachmentLoadOp.Clear"/> or if the attachment has a depth/stencil format and
            uses a <see cref="F:VulkanCore.AttachmentDescription.StencilLoadOp"/> value of <see
            cref="F:VulkanCore.AttachmentLoadOp.Clear"/>. The array is indexed by attachment number. Only elements
            corresponding to cleared attachments are used. Other elements of <see
            cref="F:VulkanCore.RenderPassBeginInfo.ClearValues"/> are ignored.
            </param>
        </member>
        <member name="M:VulkanCore.RenderPassBeginInfo.#ctor(VulkanCore.Framebuffer,VulkanCore.RenderPass,VulkanCore.Rect2D,VulkanCore.ClearValue[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.RenderPassBeginInfo"/> structure.
            </summary>
            <param name="framebuffer">
            The <see cref="T:VulkanCore.Framebuffer"/> containing the attachments that are used with
            the render pass.
            </param>
            <param name="renderPass">The <see cref="T:VulkanCore.RenderPass"/> to use.</param>
            <param name="renderArea">The render area that is affected by the render pass instance.</param>
            <param name="clearValues">
            An array of <see cref="T:VulkanCore.ClearValue"/> structures that contains clear values for each
            attachment, if the attachment uses a <see cref="F:VulkanCore.AttachmentDescription.LoadOp"/> value of
            <see cref="F:VulkanCore.AttachmentLoadOp.Clear"/> or if the attachment has a depth/stencil format and
            uses a <see cref="F:VulkanCore.AttachmentDescription.StencilLoadOp"/> value of <see
            cref="F:VulkanCore.AttachmentLoadOp.Clear"/>. The array is indexed by attachment number. Only elements
            corresponding to cleared attachments are used. Other elements of <see
            cref="F:VulkanCore.RenderPassBeginInfo.ClearValues"/> are ignored.
            </param>
        </member>
        <member name="T:VulkanCore.SubpassContents">
            <summary>
            Specify how commands in the first subpass of a render pass are provided.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassContents.Inline">
            <summary>
            Specifies that the contents of the subpass will be recorded inline in the primary command
            buffer, and secondary command buffers must not be executed within the subpass.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassContents.SecondaryCommandBuffers">
            <summary>
            Specifies that the contents are recorded in secondary command buffers that will be called
            from the primary command buffer, and <see cref="M:VulkanCore.CommandBuffer.CmdExecuteCommands(VulkanCore.CommandBuffer[])"/> is
            the only valid command on the command buffer until <see
            cref="F:VulkanCore.CommandBuffer.vkCmdNextSubpass"/> or <see cref="M:VulkanCore.CommandBuffer.CmdEndRenderPass"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.PipelineStages">
            <summary>
            Bitmask specifying pipeline stages.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.TopOfPipe">
            <summary>
            Specifies the stage of the pipeline where any commands are initially received by the queue.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.DrawIndirect">
            <summary>
            Specifies the stage of the pipeline where Draw/DispatchIndirect data structures are consumed.
            <para>This stage also includes reading commands written by <see cref="M:VulkanCore.Nvx.CommandBufferExtensions.CmdProcessCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdProcessCommandsInfoNvx)"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.VertexInput">
            <summary>
            Specifies the stage of the pipeline where vertex and index buffers are consumed.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.VertexShader">
            <summary>
            Specifies the vertex shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.TessellationControlShader">
            <summary>
            Specifies the tessellation control shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.TessellationEvaluationShader">
            <summary>
            Specifies the tessellation evaluation shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.GeometryShader">
            <summary>
            Specifies the geometry shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.FragmentShader">
            <summary>
            Specifies the fragment shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.EarlyFragmentTests">
            <summary>
            Specifies the stage of the pipeline where early fragment tests (depth and stencil tests
            before fragment
            shading) are performed. This stage also includes subpass load operations for framebuffer
            attachments with a depth/stencil format.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.LateFragmentTests">
            <summary>
            Specifies that the stage of the pipeline where late fragment tests (depth and stencil
            tests after fragment shading) are performed.
            <para>
            This stage also includes subpass store operations for framebuffer attachments with a
            depth/stencil format.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.ColorAttachmentOutput">
            <summary>
            Specifies that the stage of the pipeline after blending where the final color values are
            output from the pipeline.
            <para>
            This stage also includes subpass load and store operations and multisample resolve
            operations for framebuffer attachments with a color format.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.ComputeShader">
            <summary>
            Specifies the execution of a compute shader.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.Transfer">
            <summary>
            Transfer/copy operations.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.BottomOfPipe">
            <summary>
            Specifies the final stage in the pipeline where operations generated by all commands
            complete execution.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.Host">
            <summary>
            Specifies a pseudo-stage indicating execution on the host of reads/writes of device
            memory.
            <para>This stage is not invoked by any commands recorded in a command buffer.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.AllGraphics">
            <summary>
            Specifies the execution of all graphics pipeline stages, and is equivalent to the logical
            OR of:
            <para>
            <see cref="F:VulkanCore.PipelineStages.TopOfPipe"/>, <see cref="F:VulkanCore.PipelineStages.DrawIndirect"/>, <see cref="F:VulkanCore.PipelineStages.VertexInput"/>, <see
            cref="F:VulkanCore.PipelineStages.VertexShader"/>, <see cref="F:VulkanCore.PipelineStages.TessellationControlShader"/>, <see
            cref="F:VulkanCore.PipelineStages.TessellationEvaluationShader"/>, <see cref="F:VulkanCore.PipelineStages.GeometryShader"/>, <see
            cref="F:VulkanCore.PipelineStages.FragmentShader"/>, <see cref="F:VulkanCore.PipelineStages.EarlyFragmentTests"/>, <see
            cref="F:VulkanCore.PipelineStages.LateFragmentTests"/>, <see cref="F:VulkanCore.PipelineStages.ColorAttachmentOutput"/>, <see cref="F:VulkanCore.PipelineStages.BottomOfPipe"/>.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.AllCommands">
            <summary>
            Equivalent to the logical OR of every other pipeline stage flag that is supported on the
            queue it is used with.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineStages.CommandProcessNvx">
            <summary>
            Specifies the stage of the pipeline where device-side generation of commands via <see
            cref="M:VulkanCore.Nvx.CommandBufferExtensions.CmdProcessCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdProcessCommandsInfoNvx)"/> is handled.
            </summary>
        </member>
        <member name="T:VulkanCore.ClearRect">
            <summary>
            Structure specifying a clear rectangle.
            </summary>
        </member>
        <member name="F:VulkanCore.ClearRect.Rect">
            <summary>
            The two-dimensional region to be cleared.
            </summary>
        </member>
        <member name="F:VulkanCore.ClearRect.BaseArrayLayer">
            <summary>
            The first layer to be cleared.
            </summary>
        </member>
        <member name="F:VulkanCore.ClearRect.LayerCount">
            <summary>
            The number of layers to clear.
            </summary>
        </member>
        <member name="M:VulkanCore.ClearRect.#ctor(VulkanCore.Rect2D,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ClearRect"/> structure.
            </summary>
            <param name="rect">The two-dimensional region to be cleared.</param>
            <param name="baseArrayLayer">The first layer to be cleared.</param>
            <param name="layerCount">The number of layers to clear.</param>
        </member>
        <member name="T:VulkanCore.CommandPool">
            <summary>
            Opaque handle to a command pool object.
            <para>
            Command pools are opaque objects that command buffer memory is allocated from, and which
            allow the implementation to amortize the cost of resource creation across multiple command
            buffers. Command pools are application-synchronized, meaning that a command pool must not be
            used concurrently in multiple threads. That includes use via recording commands on any
            command buffers allocated from the pool, as well as operations that allocate, free, and reset
            command buffers or the pool itself.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.CommandPool.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.CommandPool.Reset(VulkanCore.CommandPoolResetFlags)">
            <summary>
            Reset a command pool.
            </summary>
            <param name="flags">
            Contains additional flags controlling the behavior of the reset. If flags includes <see
            cref="F:VulkanCore.CommandPoolResetFlags.ReleaseResources"/>, resetting a command pool recycles all of
            the resources from the command pool back to the system.
            </param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.CommandPool.AllocateBuffers(VulkanCore.CommandBufferAllocateInfo)">
            <summary>
            Allocate command buffers from an existing command pool.
            </summary>
            <param name="allocateInfo">The structure describing parameters of the allocation.</param>
            <returns>
            The resulting command buffer objects returned. Each allocated command buffer begins in
            the initial state.
            </returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.CommandPool.FreeBuffers(VulkanCore.CommandBuffer[])">
            <summary>
            Free command buffers.
            </summary>
            <param name="commandBuffers">Command buffers to free.</param>
        </member>
        <member name="M:VulkanCore.CommandPool.Dispose">
            <summary>
            Destroy a command pool object.
            <para>
            When a pool is destroyed, all command buffers allocated from the pool are implicitly
            freed and become invalid. Command buffers allocated from a given pool do not need to be
            freed before destroying that command pool.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.CommandPoolCreateInfo">
            <summary>
            Structure specifying parameters of a newly created command pool.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandPoolCreateInfo.Flags">
            <summary>
            A bitmask indicating usage behavior for the pool and command buffers allocated from it.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandPoolCreateInfo.QueueFamilyIndex">
            <summary>
            Designates a queue family.
            <para>
            All command buffers allocated from this command pool must be submitted on queues from the
            same queue family.
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.CommandPoolCreateInfo.#ctor(System.Int32,VulkanCore.CommandPoolCreateFlags)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.CommandPoolCreateInfo"/> structure.
            </summary>
            <param name="queueFamilyIndex">
            Designates a queue family.
            <para>
            All command buffers allocated from this command pool must be submitted on queues from the
            same queue family.
            </para>
            </param>
            <param name="flags">
            A bitmask indicating usage behavior for the pool and command buffers allocated from it.
            </param>
        </member>
        <member name="T:VulkanCore.CommandPoolCreateFlags">
            <summary>
            Bitmask specifying usage behavior for a command pool.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandPoolCreateFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandPoolCreateFlags.Transient">
            <summary>
            Indicates that command buffers allocated from the pool will be short-lived,
            meaning that they will be reset or freed in a relatively short timeframe.
            <para>This
            flag may be used by the implementation to control memory allocation behavior
            within the pool.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.CommandPoolCreateFlags.ResetCommandBuffer">
            <summary>
            Allows any command buffer allocated from a pool to be individually reset to the initial
            state either by calling <see cref="M:VulkanCore.CommandBuffer.Reset(VulkanCore.CommandBufferResetFlags)"/>, or via the implicit reset when
            calling <see cref="M:VulkanCore.CommandBuffer.Begin(VulkanCore.CommandBufferBeginInfo)"/>.
            <para>
            If this flag is not set on a pool, then <see cref="M:VulkanCore.CommandBuffer.Reset(VulkanCore.CommandBufferResetFlags)"/> must not be
            called for any command buffer allocated from that pool.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.CommandPoolResetFlags">
            <summary>
            Bitmask controlling behavior of a command pool reset.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandPoolResetFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.CommandPoolResetFlags.ReleaseResources">
            <summary>
            Specifies that resetting a command pool recycles all of the resources from the command
            pool back to the system.
            </summary>
        </member>
        <member name="T:VulkanCore.Constant">
            <summary>
            Provides Vulkan specific constants for special values, layer names and extension names.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.MaxMemoryHeaps">
            <summary>
            The maximum number of unique memory heaps, each of which supporting 1 or more memory types.
            </summary>
        </member>
        <member name="T:VulkanCore.Constant.InstanceExtension">
            <summary>
            Provides name constants for common Vulkan instance extensions.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhrXlibSurface">
            <summary>
            The "VK_KHR_xlib_surface" extension is an instance extension. It provides a mechanism
            to create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object (defined by the "VK_KHR_surface"
            extension) that refers to an X11 window, using the Xlib client-side library, as well
            as a query to determine support for rendering via Xlib.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhrXcbSurface">
            <summary>
            The "VK_KHR_xcb_surface" extension is an instance extension. It provides a mechanism
            to create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object (defined by the "VK_KHR_surface"
            extension) that refers to an X11 window, using the XCB client-side library, as well
            as a query to determine support for rendering via XCB.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhrWaylandSurface">
            <summary>
            The "VK_KHR_wayland_surface" extension is an instance extension. It provides a
            mechanism to create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object (defined by the
            "VK_KHR_surface" extension) that refers to a Wayland wl_surface, as well as a query
            to determine support for rendering to the windows desktop.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhrMirSurface">
            <summary>
            The "VK_KHR_mir_surface" extension is an instance extension. It provides a mechanism
            to create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object (defined by the "VK_KHR_surface"
            extension) that refers to a Mir surface, as well as a query to determine support for
            rendering to the windows desktop.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhrAndroidSurface">
            <summary>
            The "VK_KHR_android_surface" extension is an instance extension. It provides a
            mechanism to create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object (defined by the
            "VK_KHR_surface" extension) that refers to an ANativeWindow, Android’s native surface
            type. The ANativeWindow represents the producer endpoint of any buffer queue,
            regardless of consumer endpoint. Common consumer endpoints for ANativeWindows are the
            system window compositor, video encoders, and application-specific compositors
            importing the images through a SurfaceTexture.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhrWin32Surface">
            <summary>
            The "VK_KHR_win32_surface" extension is an instance extension. It provides a mechanism to
            create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object (defined by the "VK_KHR_surface" extension) that
            refers to a Win32 HWND, as well as a query to determine support for rendering to the
            windows desktop.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.ExtDebugReport">
            <summary>
            This extension defines a way for layers and the implementation to call back to the
            application for events of interest to the application.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhrSurface">
            <summary>
            <para>
            The "VK_KHR_surface" extension is an instance extension. It introduces <see
            cref="T:VulkanCore.Khr.SurfaceKhr"/> objects, which abstract native platform surface or window objects for
            use with Vulkan. It also provides a way to determine whether a queue family in a physical
            device supports presenting to particular surface.
            </para>
            <para>
            Separate extensions for each each platform provide the mechanisms for creating <see
            cref="T:VulkanCore.Khr.SurfaceKhr"/> objects, but once created they may be used in this and other
            platform-independent extensions, in particular the "VK_KHR_swapchain" extension.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.NVExternalMemoryCapabilities">
            <summary>
            Applications may wish to import memory from the Direct 3D API, or export memory to
            other Vulkan instances. This extension provides a set of capability queries that
            allow applications determine what types of win32 memory handles an implementation
            supports for a given set of use cases.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhrGetPhysicalDeviceProperties2">
            <summary>
            This extension provides new entry points to query device features, device properties,
            and format properties in a way that can be easily extended by other extensions,
            without introducing any further entry points. The Vulkan 1.0
            feature/limit/formatproperty structures do not include a Type/Next, this extension
            wraps them in new structures with Type/Next so an application can query a chain of
            feature/limit/formatproperty structures by constructing the chain and letting the
            implementation fill them in. A new command is added for each <see
            cref="T:VulkanCore.PhysicalDevice"/>.Get* command in core Vulkan 1.0. The new feature structure
            (and a chain of extensions) can also be passed in to device creation to enable features.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.ExtValidationFlags">
            <summary>
            This extension provides the <c>VkValidationFlagsEXT</c> struct that can be included
            in the <see cref="F:VulkanCore.InstanceCreateInfo.Next"/> chain at instance creation time. The new
            struct contains an array of <c>VkValidationCheckEXT</c> values that will be disabled
            by the validation layers.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.NNVISurface">
            <summary>
            The "VK_NN_vi_surface" extension is an instance extension. It provides a mechanism to
            create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object (defined by the "VK_KHR_surface"
            extension) associated with an <c>nn::vi::Layer</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.ExtDirectModeDisplay">
            <summary>
            This is extension, along with related platform exentions, allows applications to take
            exclusive control of displays associated with a native windowing system. This is
            especially useful for virtual reality applications that wish to hide HMDs (head
            mounted displays) from the native platform’s display management system, desktop,
            and/or other applications.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.ExtAcquireXlibDisplay">
            <summary>
            This extension allows an application to take exclusive control on a display currently
            associated with an X11 screen. When control is acquired, the display will be
            deassociated from the X11 screen until control is released or the specified display
            connection is closed. Essentially, the X11 screen will behave as if the monitor has
            been unplugged until control is released.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.ExtDisplaySurfaceCounter">
            <summary>
            This is extension defines a vertical blanking period counter associated with display
            surfaces. It provides a mechanism to query support for such a counter from a
            <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.ExtSwapchainColorspace">
            <summary>
            This extension defines additional enums for <see cref="T:VulkanCore.Khr.ColorSpaceKhr"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhxDeviceGroupCreation">
            <summary>
            This extension provides instance-level commands to enumerate groups of physical
            devices, and to create a logical device from a subset of one of those groups. Such a
            logical device can then be used with new features in the "VK_KHX_device_group" extension.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhrExternalMemoryCapabilities">
            <summary>
            An application may wish to reference device memory in multiple Vulkan logical devices
            or instances, in multiple processes, and/or in multiple APIs. This extension provides
            a set of capability queries and handle definitions that allow an application to
            determine what types of "external" memory handles an implementation supports for a
            given set of use cases.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhrExternalSemaphoreCapabilities">
            <summary>
            An application may wish to reference device semaphores in multiple Vulkan logical
            devices or instances, in multiple processes, and/or in multiple APIs. This extension
            provides a set of capability queries and handle definitions that allow an application
            to determine what types of “external” semaphore handles an implementation supports
            for a given set of use cases.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhrExternalFenceCapabilities">
            <summary>
            An application may wish to reference device fences in multiple Vulkan logical devices
            or instances, in multiple processes, and/or in multiple APIs. This extension provides
            a set of capability queries and handle definitions that allow an application to
            determine what types of "external" fence handles an implementation supports for a
            given set of use cases.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.KhrGetSurfaceCapabilities2">
            <summary>
            This extension provides new entry points to query device surface capabilities in a
            way that can be easily extended by other extensions, without introducing any further
            entry points.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.MvkIOSSurface">
            <summary>
            The "VK_MVK_ios_surface" extension is an instance extension. It provides a mechanism
            to create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object (defined by the "VK_KHR_surface"
            extension) that refers to a <c>UIView</c>, the native surface type of iOS, which is
            underpinned by a <c>CAMetalLayer</c>, to support rendering to the surface using
            Apple’s Metal framework.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceExtension.MvkMacOSSurface">
            <summary>
            The "VK_MVK_macos_surface" extension is an instance extension. It provides a
            mechanism to create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object (defined by the
            "VK_KHR_surface" extension) that refers to an <c>NSView</c>, the native surface type
            of macOS, which is underpinned by a <c>CAMetalLayer</c>, to support rendering to the
            surface using Apple’s Metal framework.
            </summary>
        </member>
        <member name="T:VulkanCore.Constant.DeviceExtension">
            <summary>
            Provides name constants for common Vulkan device extensions.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrSwapchain">
            <summary>
            This extension is the device-level companion to the "VK_KHR_surface" extension. It
            introduces <see cref="T:VulkanCore.Khr.SwapchainKhr"/> objects, which provide the ability to
            present rendering results to a surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrDisplay">
            <summary>
            This extension provides the API to enumerate displays and available modes on a given device.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrDisplaySwapchain">
            <summary>
            This extension provides an API to create a swapchain directly on a device’s display
            without any underlying window system.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVGlslShader">
            <summary>
            Implementations that expose this function allow GLSL shaders to be referenced by <see
            cref="F:VulkanCore.ShaderModuleCreateInfo.Code"/> as an alternative to SPIR-V shaders.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrSamplerMirrorClampToEdge">
            <summary>
            This extension extends the set of sampler address modes to include an additional mode
            (<see cref="F:VulkanCore.SamplerAddressMode.MirrorClampToEdge"/>) that effectively uses a texture
            map twice as large as the original image in which the additional half of the new
            image is a mirror image of the original image.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.ImgFilterCubic">
            <summary>
            This extension adds an additional, high quality cubic filtering mode to Vulkan,
            using a Catmull-Rom bicubic filter.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.AmdRasterizationOrder">
            <summary>
            This extension introduces the possibility for the application to control the order of
            primitive rasterization.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.AmdShaderTrinaryMinMax">
            <summary>
            This extension adds support for the "SPV_AMD_shader_trinary_minmax" SPIR-V extension.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.AmdShaderExplicitVertexParameter">
            <summary>
            This extension adds support for the "SPV_AMD_shader_explicit_vertex_parameter" SPIR-V extension.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.ExtDebugMarker">
            <summary>
            This extension introduces concepts of object naming and tagging, for better tracking
            of Vulkan objects, as well as additional commands for recording annotations of named
            sections of a workload to aid organisation and offline analysis in external tools.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.AmdGcnShader">
            <summary>
            This extension adds support for the "SPV_AMD_gcn_shader" SPIR-V extension.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVDedicatedAllocation">
            <summary>
            This extension allows device memory to be allocated for a particular buffer or image
            resource, which on some devices can significantly improve the performance of that
            resource.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.AmdDrawIndirectCount">
            <summary>
            This extension allows an application to source the number of draw calls for indirect
            draw calls from a buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.AmdNegativeViewportHeight">
            <summary>
            This extension allows an application to specify a negative viewport height.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.AmdGpuShaderHalfFloat">
            <summary>
            This extension adds support for the "SPV_AMD_gpu_shader_half_float" SPIR-V extension.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.AmdShaderBallot">
            <summary>
            This extension adds support for the "SPV_AMD_shader_ballot" SPIR-V extension.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVExternalMemory">
            <summary>
            This extension enables applications to create exportable Vulkan memory objects such
            that the underlying resources can be referenced outside the Vulkan instance that
            created them.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVExternalMemoryWin32">
            <summary>
            This extension enables win32 applications to export win32 handles from Vulkan memory
            objects such that the underlying resources can be referenced outside the Vulkan
            instance that created them, and import win32 handles created in the Direct3D API to
            Vulkan memory objects.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVWin32KeyedMutex">
            <summary>
            This extension provides a way for an application to access the keyed mutex associated
            with an imported Vulkan memory object when submitting command buffers to a queue.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrShaderDrawParamters">
            <summary>
            This extension adds support for the "SPV_KHR_shader_draw_parameters" SPIR-V extension.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.ExtShaderSubgroupBallot">
            <summary>
            This extension adds support for the "SPV_KHR_shader_ballot" SPIR-V extension.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.ExtShaderSubgroupVote">
            <summary>
            This extension adds support for the "SPV_KHR_subgroup_vote" SPIR-V extension.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrMaintenance1">
            <summary>
            This extension adds a collection of minor features that were intentionally left out
            or overlooked from the original Vulkan 1.0 release.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NvxDeviceGeneratedCommands">
            <summary>
            This extension allows the device to generate a number of critical commands for command buffers.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.ExtDisplayControl">
            <summary>
            This extension defines a set of utility functions for use with the "VK_KHR_display"
            and "VK_KHR_display_swapchain" extensions.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.ExtHdrMetadata">
            <summary>
            This extension defines two new structures and a function to assign SMPTE (the Society
            of Motion Picture and Television Engineers) 2086 metadata and CTA (Consumer
            Technology Assocation) 861.3 metadata to a swapchain.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.GoogleDisplayTiming">
            <summary>
            This extension allows an application that uses the "VK_KHR_swapchain" extension to
            obtain information about the presentation engine's display, to obtain timing
            information about each present, and to schedule a present to happen no earlier than a
            desired time.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhxMultiview">
            <summary>
            This extension has the same goal as the OpenGL ES "GL_OVR_multiview" extension - it
            enables rendering to multiple "views" by recording a single set of commands to be
            executed with slightly different behavior for each view.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhxDeviceGroup">
            <summary>
            This extension provides functionality to use a logical device that consists of
            multiple physical devices, as created with the "VK_KHX_device_group_creation" extension.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrExternalMemory">
            <summary>
            This extension enables an application to export non-Vulkan handles from Vulkan memory
            objects such that the underlying resources can be referenced outside the scope of the
            Vulkan logical device that created them.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrExternalMemoryWin32">
            <summary>
            This extension enables an application to export Windows handles from Vulkan memory
            objects and to import Vulkan memory objects from Windows handles exported from other
            Vulkan memory objects or from similar resources in other APIs.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrExternalMemoryFd">
            <summary>
            This extension enables an application to export POSIX file descriptor handles from
            Vulkan memory objects and to import Vulkan memory objects from POSIX file descriptor
            handles exported from other Vulkan memory objects or from similar resources in other APIs.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrWin32KeyedMutex">
            <summary>
            This extension provides a way for an application to access the keyed mutex associated
            with an imported Vulkan memory object when submitting command buffers to a queue.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrExternalSemaphore">
            <summary>
            This extension enables an application to create semaphores from which non-Vulkan
            handles that reference the underlying synchronization primitive can be exported.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrExternalSemaphoreWin32">
            <summary>
            This extension enables an application to export semaphore state to and import
            semaphore state from Windows handles.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrExternalSemaphoreFd">
            <summary>
            This extension enables an application to export semaphore state to and import
            semaphore state from POSIX file descriptors.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrPushDescriptor">
            <summary>
            This extension allows descriptors to be written into the command buffer, with the
            implementation being responsible for managing their memory.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.Khr16BitStorage">
            <summary>
            The VK_KHR_16bit_storage extension allows use of 16-bit types in shader input and
            output interfaces, and push constant blocks.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrIncrementalPresent">
            <summary>
            This extension provides a way to update a fixed set of descriptors in a single <see
            cref="T:VulkanCore.DescriptorSet"/> with a pointer to a user defined data structure which
            describes the new descriptors.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrDescriptorUpdateTemplate">
            <summary>
            This extension provides a way to update a fixed set of descriptors in a single <see
            cref="T:VulkanCore.DescriptorSet"/> with a pointer to a user defined data structure which
            describes the new descriptors.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVClipSpaceWScaling">
            <summary>
            This extension provides a mechanism to render VR scenes at a non-uniform resolution,
            in particular a resolution that falls linearly from the center towards the edges.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVSampleMaskOverrideCoverage">
            <summary>
            This extension adds support for the following SPIR-V extension in Vulkan: "SPV_NV_sample_mask_override_coverage".
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVGeometryShaderPassthrough">
            <summary>
            This extension adds support for the following SPIR-V extension in Vulkan: "SPV_NV_geometry_shader_passthrough".
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVViewportArray2">
            <summary>
            This extension adds support for the following SPIR-V extension in Vulkan: "SPV_NV_viewport_array2".
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NvxMultiviewPerViewAttributes">
            <summary>
            This extension adds a new way to write shaders to be used with multiview subpasses,
            where the attributes for all views are written out by a single invocation of the
            vertex processing stages.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVViewportSwizzle">
            <summary>
            This extension provides a new per-viewport swizzle that can modify the position of
            primitives sent to each viewport.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.ExtDiscardRectangles">
            <summary>
            This extension provides additional orthogonally aligned "discard rectangles"
            specified in framebuffer-space coordinates that restrict rasterization of all points,
            lines and triangles.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.AmdTextureGatherBiasLod">
            <summary>
            This extension adds support for the following SPIR-V extension:
            "SPV_AMD_shader_trinary_minmax". Secondly, the extension allows the application to
            query, which formats can be used together with the new function prototypes introduced
            by the SPIR-V extension.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrSharedPresentableImage">
            <summary>
            This extension extends VK_KHR_swapchain to enable creation of a shared presentable
            image. This allows the application to use the image while the presention engine is
            accessing it, in order to reduce the latency between rendering and presentation.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrExternalFence">
            <summary>
            An application using external memory may wish to synchronize access to that memory
            using fences. This extension enables an application to create fences from which
            non-Vulkan handles that reference the underlying synchronization primitive can be exported.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrExternalFenceWin32">
            <summary>
            An application using external memory may wish to synchronize access to that memory
            using fences. This extension enables an application to export fence payload to and
            import fence payload from Windows handles.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrExternalFenceFD">
            <summary>
            An application using external memory may wish to synchronize access to that memory
            using fences. This extension enables an application to export fence payload to and
            import fence payload from POSIX file descriptors.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrVariablePointers">
            <summary>
            The VK_KHR_variable_pointers extension allows implementations to indicate their level
            of support for the SPV_KHR_variable_pointers SPIR-V extension.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrDedicatedAllocation">
            <summary>
            This extension enables resources to be bound to a dedicated allocation, rather than suballocated.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.ExtSamplerFilterMinmax">
            <summary>
            This extension provides a new sampler parameter which allows applications to produce
            a filtered texel value by computing a component-wise minimum (MIN) or maximum (MAX)
            of the texels that would normally be averaged.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrStorageBufferStorageClass">
            <summary>
            This extension adds support for the following SPIR-V extension in Vulkan: "SPV_KHR_storage_buffer_storage_class".
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.AmdGpuShaderInt16">
            <summary>
            This extension adds support for the following SPIR-V extension in Vulkan: "SPV_AMD_gpu_shader_int16".
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.KhrGetMemoryRequirements2">
            <summary>
            This extension provides new entry points to query memory requirements of images and
            buffers in a way that can be easily extended by other extensions, without introducing
            any further entry points.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.ExtBlendOperationAdvanced">
            <summary>
            This extension adds a number of "advanced" blending operations that can be used to
            perform new color blending operations, many of which are more complex than the
            standard blend modes provided by unextended Vulkan.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVFragmentCoverageToColor">
            <summary>
            This extension allows the fragment coverage value, represented as an integer bitmask,
            to be substituted for a color output being written to a single-component color
            attachment with integer components (e.g. <see cref="F:VulkanCore.Format.R8UInt"/>).
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVFramebufferMixedSamples">
            <summary>
            This extension allows multisample rendering with a raster and depth/stencil sample
            count that is larger than the color sample count.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.DeviceExtension.NVFillRectangle">
            <summary>
            This extension adds a new <see cref="F:VulkanCore.PolygonMode.FillRectangleNV"/> enum where a
            triangle is rasterized by computing and filling its axis-aligned screen-space
            bounding box, disregarding the actual triangle edges.
            </summary>
        </member>
        <member name="T:VulkanCore.Constant.InstanceLayer">
            <summary>
            Provides name constants for common Vulkan instance layers.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceLayer.LunarGStandardValidation">
            <summary>
            A built-in meta-layer definition which simplifies validation for applications. Specifying
            this short-hand layer definition will load a standard set of validation layers in the
            optimal order:
            <para>"VK_LAYER_GOOGLE_threading"</para>
            <para>"VK_LAYER_LUNARG_parameter_validation"</para>
            <para>"VK_LAYER_LUNARG_device_limits"</para>
            <para>"VK_LAYER_LUNARG_object_tracker"</para>
            <para>"VK_LAYER_LUNARG_image"</para>
            <para>"VK_LAYER_LUNARG_core_validation"</para>
            <para>"VK_LAYER_LUNARG_swapchain"</para>
            <para>"VK_LAYER_GOOGLE_unique_objects"</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceLayer.GoogleUniqueObjects">
            <summary>
            Wrap all Vulkan objects in a unique pointer at create time and unwrap them at use time.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceLayer.LunarGApiDump">
            <summary>
            Print API calls and their parameters and values.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceLayer.LunarGDeviceLimits">
            <summary>
            Validate that app properly queries features and obeys feature limitations.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceLayer.LunarGCoreValidation">
            <summary>
            Validate the descriptor set, pipeline state, and dynamic state; validate the interfaces
            between SPIR-V modules and the graphics pipeline; track and validate GPU memory and its
            binding to objects and command buffers.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceLayer.LunarGImage">
            <summary>
            Validate texture formats and render target formats.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceLayer.LunarGObjectTracker">
            <summary>
            Track all Vulkan objects and flag invalid objects and object memory leaks.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceLayer.LunarGParameterValidation">
            <summary>
            Validate API parameter values.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceLayer.LunarGSwapchain">
            <summary>
            Validate the use of the WSI "swapchain" extensions.
            </summary>
        </member>
        <member name="F:VulkanCore.Constant.InstanceLayer.GoogleThreading">
            <summary>
            Check validity of multi-threaded API usage.
            </summary>
        </member>
        <member name="T:VulkanCore.DescriptorPool">
            <summary>
            Opaque handle to a descriptor pool object.
            </summary>
        </member>
        <member name="P:VulkanCore.DescriptorPool.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.DescriptorPool.Reset">
            <summary>
            Resets a descriptor pool object.
            <para>
            Resetting a descriptor pool recycles all of the resources from all of the descriptor sets
            allocated from the descriptor pool back to the descriptor pool, and the descriptor sets
            are implicitly freed.
            </para>
            </summary>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.DescriptorPool.AllocateSets(VulkanCore.DescriptorSetAllocateInfo)">
            <summary>
            Allocate one or more descriptor sets.
            <para>
            The pool must have enough free descriptor capacity remaining to allocate the descriptor
            sets of the specified layouts.
            </para>
            <para>
            When a descriptor set is allocated, the initial state is largely uninitialized and all
            descriptors are undefined. However, the descriptor set can be bound in a command buffer
            without causing errors or exceptions. All entries that are statically used by a pipeline
            in a drawing or dispatching command must have been populated before the descriptor set is
            bound for use by that command. Entries that are not statically used by a pipeline can
            have uninitialized descriptors or descriptors of resources that have been destroyed, and
            executing a draw or dispatch with such a descriptor set bound does not cause undefined
            behavior. This means applications need not populate unused entries with dummy descriptors.
            </para>
            <para>
            If an allocation fails due to fragmentation, an indeterminate error is returned with an
            unspecified error code. Any returned error other than <see
            cref="F:VulkanCore.Result.ErrorFragmentedPool"/> does not imply its usual meaning: applications should
            assume that the allocation failed due to fragmentation, and create a new descriptor pool.
            </para>
            </summary>
            <param name="allocateInfo">The structure describing parameters of the allocation.</param>
        </member>
        <member name="M:VulkanCore.DescriptorPool.UpdateSets(VulkanCore.WriteDescriptorSet[],VulkanCore.CopyDescriptorSet[])">
            <summary>
            Update the contents of a descriptor set object.
            <para>
            The operations described by <paramref name="descriptorWrites"/> are performed first,
            followed by the operations described by <paramref name="descriptorCopies"/>. Within each
            array, the operations are performed in the order they appear in the array.
            </para>
            <para>
            Each element in the <paramref name="descriptorWrites"/> array describes an operation
            updating the descriptor set using descriptors for resources specified in the structure.
            </para>
            <para>
            Each element in the <paramref name="descriptorCopies"/> array is a structure describing an
            operation copying descriptors between sets.
            </para>
            </summary>
            <param name="descriptorWrites">The structures describing the descriptor sets to write to.</param>
            <param name="descriptorCopies">The structures describing the descriptor sets to copy between.</param>
        </member>
        <member name="M:VulkanCore.DescriptorPool.FreeSets(VulkanCore.DescriptorSet[])">
            <summary>
            Free one or more descriptor sets.
            </summary>
            <param name="descriptorSets">An array of handles to <see cref="T:VulkanCore.DescriptorSet"/> objects.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.DescriptorPool.Dispose">
            <summary>
            Destroy a descriptor pool object.
            <para>
            When a pool is destroyed, all descriptor sets allocated from the pool are implicitly
            freed and become invalid. Descriptor sets allocated from a given pool do not need to be
            freed before destroying that descriptor pool.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.DescriptorPoolCreateInfo">
            <summary>
            Structure specifying parameters of a newly created descriptor pool.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorPoolCreateInfo.Flags">
            <summary>
            A bitmask specifying certain supported operations on the pool.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorPoolCreateInfo.MaxSets">
            <summary>
            The maximum number of descriptor sets that can be allocated from the pool.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorPoolCreateInfo.PoolSizes">
            <summary>
            Structures, each containing a descriptor type and number of descriptors of that type to
            be allocated in the pool.
            </summary>
        </member>
        <member name="M:VulkanCore.DescriptorPoolCreateInfo.#ctor(System.Int32,VulkanCore.DescriptorPoolSize[],VulkanCore.DescriptorPoolCreateFlags)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.DescriptorPoolCreateInfo"/> structure.
            </summary>
            <param name="maxSets">
            The maximum number of descriptor sets that can be allocated from the pool.
            </param>
            <param name="poolSizes">
            Structures, each containing a descriptor type and number of descriptors of that type to
            be allocated in the pool.
            </param>
            <param name="flags">A bitmask specifying certain supported operations on the pool.</param>
        </member>
        <member name="T:VulkanCore.DescriptorPoolCreateFlags">
            <summary>
            Bitmask specifying certain supported operations on a descriptor pool.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorPoolCreateFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorPoolCreateFlags.FreeDescriptorSet">
            <summary>
            Specifies that descriptor sets can return their individual allocations to the pool, i.e.
            all of <see cref="M:VulkanCore.DescriptorPool.AllocateSets(VulkanCore.DescriptorSetAllocateInfo)"/>, <see cref="M:VulkanCore.DescriptorPool.FreeSets(VulkanCore.DescriptorSet[])"/>,
            and <see cref="M:VulkanCore.DescriptorPool.Reset"/> are allowed.
            <para>
            Otherwise, descriptor sets allocated from the pool must not be individually freed back to
            the pool, i.e. only <see cref="M:VulkanCore.DescriptorPool.AllocateSets(VulkanCore.DescriptorSetAllocateInfo)"/> and <see
            cref="M:VulkanCore.DescriptorPool.Reset"/> are allowed.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.DescriptorPoolSize">
            <summary>
            Structure specifying descriptor pool size.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorPoolSize.Type">
            <summary>
            The type of descriptor.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorPoolSize.DescriptorCount">
            <summary>
            The number of descriptors of that type to allocate.
            <para>Must be greater than 0.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.DescriptorPoolSize.#ctor(VulkanCore.DescriptorType,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.DescriptorPoolSize"/> structure.
            </summary>
            <param name="type">The type of descriptor.</param>
            <param name="descriptorCount">The number of descriptors of that type to allocate.</param>
        </member>
        <member name="T:VulkanCore.DescriptorSet">
            <summary>
            Opaque handle to a descriptor set object.
            <para>Descriptor sets are allocated from descriptor pool objects.</para>
            </summary>
        </member>
        <member name="P:VulkanCore.DescriptorSet.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.DescriptorSet.Dispose">
            <summary>
            Free descriptor set.
            </summary>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.DescriptorSetAllocateInfo">
            <summary>
            Structure specifying the allocation parameters for descriptor sets.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorSetAllocateInfo.DescriptorSetCount">
            <summary>
            Determines the number of descriptor sets to be allocated from the pool.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorSetAllocateInfo.SetLayouts">
            <summary>
            An array of <see cref="T:VulkanCore.DescriptorSetLayout"/>, with each member specifying how the
            corresponding descriptor set is allocated.
            <para>Array length must be greater than 0.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.DescriptorSetAllocateInfo.#ctor(System.Int32,VulkanCore.DescriptorSetLayout[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.DescriptorSetAllocateInfo"/> structure.
            </summary>
            <param name="descriptorSetCount">
            Determines the number of descriptor sets to be allocated from the pool.
            </param>
            <param name="setLayouts">
            An array of descriptor set layouts, with each member specifying how the corresponding
            descriptor set is allocated.
            </param>
        </member>
        <member name="T:VulkanCore.WriteDescriptorSet">
            <summary>
            Structure specifying the parameters of a descriptor set write operation.
            </summary>
        </member>
        <member name="F:VulkanCore.WriteDescriptorSet.DstSet">
            <summary>
            The destination descriptor set to update.
            </summary>
        </member>
        <member name="F:VulkanCore.WriteDescriptorSet.DstBinding">
            <summary>
            The descriptor binding within that set.
            </summary>
        </member>
        <member name="F:VulkanCore.WriteDescriptorSet.DstArrayElement">
            <summary>
            The starting element in that array.
            </summary>
        </member>
        <member name="F:VulkanCore.WriteDescriptorSet.DescriptorCount">
            <summary>
            The number of descriptors to update (the number of elements in <see cref="F:VulkanCore.WriteDescriptorSet.ImageInfo"/>,
            <see cref="F:VulkanCore.WriteDescriptorSet.BufferInfo"/>, or <see cref="F:VulkanCore.WriteDescriptorSet.TexelBufferView"/>).
            </summary>
        </member>
        <member name="F:VulkanCore.WriteDescriptorSet.DescriptorType">
            <summary>
            Specifies the type of each descriptor in <see cref="F:VulkanCore.WriteDescriptorSet.ImageInfo"/>, <see
            cref="F:VulkanCore.WriteDescriptorSet.BufferInfo"/>, or <see cref="F:VulkanCore.WriteDescriptorSet.TexelBufferView"/>, as described below. It must be the
            same type as that specified in <see cref="T:VulkanCore.DescriptorSetLayoutBinding"/> for <see
            cref="F:VulkanCore.WriteDescriptorSet.DstSet"/> at <see cref="F:VulkanCore.WriteDescriptorSet.DstBinding"/>. The type of the descriptor also controls
            which array the descriptors are taken from.
            </summary>
        </member>
        <member name="F:VulkanCore.WriteDescriptorSet.ImageInfo">
            <summary>
            An array of <see cref="T:VulkanCore.DescriptorImageInfo"/> structures or is ignored.
            </summary>
        </member>
        <member name="F:VulkanCore.WriteDescriptorSet.BufferInfo">
            <summary>
            An array of <see cref="T:VulkanCore.DescriptorBufferInfo"/> structures or is ignored.
            </summary>
        </member>
        <member name="F:VulkanCore.WriteDescriptorSet.TexelBufferView">
            <summary>
            An array of <see cref="T:VulkanCore.BufferView"/> handles or is ignored.
            </summary>
        </member>
        <member name="M:VulkanCore.WriteDescriptorSet.#ctor(VulkanCore.DescriptorSet,System.Int32,System.Int32,System.Int32,VulkanCore.DescriptorType,VulkanCore.DescriptorImageInfo[],VulkanCore.DescriptorBufferInfo[],VulkanCore.BufferView[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.WriteDescriptorSet"/> structure.
            </summary>
            <param name="dstSet">The destination descriptor set to update.</param>
            <param name="dstBinding">The descriptor binding within that set.</param>
            <param name="dstArrayElement">The starting element in that array.</param>
            <param name="descriptorCount">
            The number of descriptors to update (the number of elements in <see cref="F:VulkanCore.WriteDescriptorSet.ImageInfo"/>,
            <see cref="F:VulkanCore.WriteDescriptorSet.BufferInfo"/>, or <see cref="F:VulkanCore.WriteDescriptorSet.TexelBufferView"/>).
            </param>
            <param name="descriptorType">
            Specifies the type of each descriptor in <see cref="F:VulkanCore.WriteDescriptorSet.ImageInfo"/>, <see
            cref="F:VulkanCore.WriteDescriptorSet.BufferInfo"/>, or <see cref="F:VulkanCore.WriteDescriptorSet.TexelBufferView"/>, as described below. It must be the
            same type as that specified in <see cref="T:VulkanCore.DescriptorSetLayoutBinding"/> for <see
            cref="F:VulkanCore.WriteDescriptorSet.DstSet"/> at <see cref="F:VulkanCore.WriteDescriptorSet.DstBinding"/>. The type of the descriptor also controls
            which array the descriptors are taken from.
            </param>
            <param name="imageInfo">
            An array of <see cref="T:VulkanCore.DescriptorImageInfo"/> structures or is ignored.
            </param>
            <param name="bufferInfo">
            An array of <see cref="T:VulkanCore.DescriptorBufferInfo"/> structures or is ignored.
            </param>
            <param name="texelBufferView">An array of <see cref="T:VulkanCore.BufferView"/> handles or is ignored.</param>
        </member>
        <member name="T:VulkanCore.DescriptorType">
            <summary>
            Specifies the type of a descriptor in a descriptor set.
            </summary>
        </member>
        <member name="T:VulkanCore.DescriptorImageInfo">
            <summary>
            Structure specifying descriptor image info.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorImageInfo.Sampler">
            <summary>
            A sampler handle, and is used in descriptor updates for types <see
            cref="F:VulkanCore.DescriptorType.Sampler"/> and <see cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/> if
            the binding being updated does not use immutable samplers.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorImageInfo.ImageView">
            <summary>
            An <see cref="F:VulkanCore.DescriptorImageInfo.ImageView"/> handle, and is used in descriptor updates for types <see
            cref="F:VulkanCore.DescriptorType.SampledImage"/>, <see cref="F:VulkanCore.DescriptorType.StorageImage"/>, <see
            cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/>, and <see cref="F:VulkanCore.DescriptorType.InputAttachment"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorImageInfo.ImageLayout">
            <summary>
            The layout that the image subresources accessible from <see cref="F:VulkanCore.DescriptorImageInfo.ImageView"/> will be in
            at the time this descriptor is accessed. Is used in descriptor updates for types <see
            cref="F:VulkanCore.DescriptorType.SampledImage"/>, <see cref="F:VulkanCore.DescriptorType.StorageImage"/>, <see
            cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/>, and <see cref="F:VulkanCore.DescriptorType.InputAttachment"/>.
            </summary>
        </member>
        <member name="M:VulkanCore.DescriptorImageInfo.#ctor(VulkanCore.Sampler,VulkanCore.ImageView,VulkanCore.ImageLayout)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.DescriptorImageInfo"/> structure.
            </summary>
            <param name="sampler">
            A sampler handle, and is used in descriptor updates for types <see
            cref="F:VulkanCore.DescriptorType.Sampler"/> and <see cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/> if
            the binding being updated does not use immutable samplers.
            </param>
            <param name="imageView">
            An image view handle, and is used in descriptor updates for types <see
            cref="F:VulkanCore.DescriptorType.SampledImage"/>, <see cref="F:VulkanCore.DescriptorType.StorageImage"/>, <see
            cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/>, and <see cref="F:VulkanCore.DescriptorType.InputAttachment"/>.
            </param>
            <param name="imageLayout">
            The layout that the image will be in at the time this descriptor is accessed. Is used in
            descriptor updates for types <see cref="F:VulkanCore.DescriptorType.SampledImage"/>, <see
            cref="F:VulkanCore.DescriptorType.StorageImage"/>, <see cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/>,
            and <see cref="F:VulkanCore.DescriptorType.InputAttachment"/>.
            </param>
        </member>
        <member name="T:VulkanCore.DescriptorBufferInfo">
            <summary>
            Structure specifying descriptor buffer info.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorBufferInfo.Buffer">
            <summary>
            The <see cref="F:VulkanCore.DescriptorBufferInfo.Buffer"/> resource.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorBufferInfo.Offset">
            <summary>
            The offset in bytes from the start of buffer. Access to buffer memory via this descriptor
            uses addressing that is relative to this starting offset.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorBufferInfo.Range">
            <summary>
            The size in bytes that is used for this descriptor update, or <see cref="F:VulkanCore.Constant.WholeSize"/> to
            use the range from <see cref="F:VulkanCore.DescriptorBufferInfo.Offset"/> to the end of the buffer.
            </summary>
        </member>
        <member name="M:VulkanCore.DescriptorBufferInfo.#ctor(VulkanCore.Buffer,System.Int64,System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.DescriptorBufferInfo"/> structure.
            </summary>
            <param name="buffer">The buffer resource.</param>
            <param name="offset">
            The offset in bytes from the start of buffer. Access to buffer memory via this descriptor
            uses addressing that is relative to this starting offset.
            </param>
            <param name="range">
            The size in bytes that is used for this descriptor update, or <see cref="F:VulkanCore.Constant.WholeSize"/> to
            use the range from <see cref="F:VulkanCore.DescriptorBufferInfo.Offset"/> to the end of the buffer.
            </param>
        </member>
        <member name="T:VulkanCore.CopyDescriptorSet">
            <summary>
            Structure specifying a copy descriptor set operation.
            </summary>
        </member>
        <member name="F:VulkanCore.CopyDescriptorSet.SrcSet">
            <summary>
            Source <see cref="T:VulkanCore.DescriptorSet"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.CopyDescriptorSet.SrcBinding">
            <summary>
            Source binding.
            <para>
            Must be a valid binding within <see cref="F:VulkanCore.CopyDescriptorSet.SrcSet"/>. The sum of <see
            cref="F:VulkanCore.CopyDescriptorSet.SrcArrayElement"/> and <see cref="F:VulkanCore.CopyDescriptorSet.DescriptorCount"/> must be less than or equal to
            the number of array elements in the descriptor set binding specified by <see
            cref="F:VulkanCore.CopyDescriptorSet.SrcBinding"/>, and all applicable consecutive bindings.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.CopyDescriptorSet.SrcArrayElement">
            <summary>
            Array element within the source binding to copy from.
            </summary>
        </member>
        <member name="F:VulkanCore.CopyDescriptorSet.DstSet">
            <summary>
            Destination <see cref="T:VulkanCore.DescriptorSet"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.CopyDescriptorSet.DstBinding">
            <summary>
            Destination binding.
            <para>
            Must be a valid binding within <see cref="F:VulkanCore.CopyDescriptorSet.DstSet"/>. The sum of <see
            cref="F:VulkanCore.CopyDescriptorSet.DstArrayElement"/> and <see cref="F:VulkanCore.CopyDescriptorSet.DescriptorCount"/> must be less than or equal to
            the number of array elements in the descriptor set binding specified by <see
            cref="F:VulkanCore.CopyDescriptorSet.DstBinding"/>, and all applicable consecutive bindings. If <see cref="F:VulkanCore.CopyDescriptorSet.SrcSet"/> is
            equal to <see cref="F:VulkanCore.CopyDescriptorSet.DstSet"/>, then the source and destination ranges of descriptors must
            not overlap, where the ranges may include array elements from consecutive bindings.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.CopyDescriptorSet.DstArrayElement">
            <summary>
            Array element within the destination binding to copy to.
            </summary>
        </member>
        <member name="F:VulkanCore.CopyDescriptorSet.DescriptorCount">
            <summary>
            The number of descriptors to copy from the source to destination.
            <para>
            If <see cref="F:VulkanCore.CopyDescriptorSet.DescriptorCount"/> is greater than the number of remaining array elements
            in the source or destination binding, those affect consecutive bindings in a manner
            similar to <see cref="T:VulkanCore.WriteDescriptorSet"/>.
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.CopyDescriptorSet.#ctor(VulkanCore.DescriptorSet,System.Int32,System.Int32,VulkanCore.DescriptorSet,System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.CopyDescriptorSet"/> structure.
            </summary>
            <param name="srcSet">Source descriptor set.</param>
            <param name="srcBinding">Source binding.</param>
            <param name="srcArrayElement">Array element within the source binding to copy from.</param>
            <param name="dstSet">Destination descriptor set.</param>
            <param name="dstBinding">Destination binding.</param>
            <param name="dstArrayElement">
            Array element within the destination binding to copy to.
            </param>
            <param name="descriptorCount">
            The number of descriptors to copy from the source to destination.
            </param>
        </member>
        <member name="T:VulkanCore.DescriptorSetLayout">
            <summary>
            Opaque handle to a descriptor set layout object.
            <para>
            A descriptor set layout object is defined by an array of zero or more descriptor bindings.
            Each individual descriptor binding is specified by a descriptor type, a count (array size) of
            the number of descriptors in the binding, a set of shader stages that can access the binding,
            and (if using immutable samplers) an array of sampler descriptors.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.DescriptorSetLayout.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.DescriptorSetLayout.Dispose">
            <summary>
            Destroy a descriptor set layout object.
            </summary>
        </member>
        <member name="T:VulkanCore.DescriptorSetLayoutCreateInfo">
            <summary>
            Structure specifying parameters of a newly created descriptor set layout.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorSetLayoutCreateInfo.Flags">
            <summary>
            A bitmask specifying options for descriptor set layout creation.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorSetLayoutCreateInfo.Bindings">
            <summary>
            An array of <see cref="T:VulkanCore.DescriptorSetLayoutBinding"/> structures.
            </summary>
        </member>
        <member name="M:VulkanCore.DescriptorSetLayoutCreateInfo.#ctor(VulkanCore.DescriptorSetLayoutBinding[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.DescriptorSetLayoutCreateInfo"/> structure.
            </summary>
            <param name="bindings">An array of <see cref="T:VulkanCore.DescriptorSetLayoutBinding"/> structures.</param>
        </member>
        <member name="M:VulkanCore.DescriptorSetLayoutCreateInfo.#ctor(VulkanCore.DescriptorSetLayoutBinding[],VulkanCore.DescriptorSetLayoutCreateFlags)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.DescriptorSetLayoutCreateInfo"/> structure.
            </summary>
            <param name="bindings">An array of <see cref="T:VulkanCore.DescriptorSetLayoutBinding"/> structures.</param>
            <param name="flags">A bitmask specifying options for descriptor set layout creation.</param>
        </member>
        <member name="T:VulkanCore.DescriptorSetLayoutCreateFlags">
            <summary>
            Bitmask specifying descriptor set layout properties.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorSetLayoutCreateFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorSetLayoutCreateFlags.PushDescriptorKhr">
            <summary>
            Specifies that descriptor sets must not be allocated using this layout, and descriptors
            are instead pushed by <see cref="M:VulkanCore.Khr.CommandBufferExtensions.CmdPushDescriptorSetKhr(VulkanCore.CommandBuffer,VulkanCore.PipelineBindPoint,VulkanCore.PipelineLayout,System.Int32,VulkanCore.WriteDescriptorSet[])"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.DescriptorSetLayoutBinding">
            <summary>
            Structure specifying a descriptor set layout binding.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorSetLayoutBinding.Binding">
            <summary>
            The binding number of this entry and corresponds to a resource of the same binding number
            in the shader stages.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorSetLayoutBinding.DescriptorType">
            <summary>
            Specifies which type of resource descriptors are used for this binding.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorSetLayoutBinding.DescriptorCount">
            <summary>
            The number of descriptors contained in the binding, accessed in a shader as an array. If
            <see cref="F:VulkanCore.DescriptorSetLayoutBinding.DescriptorCount"/> is zero this binding entry is reserved and the resource
            must not be accessed from any stage via this binding within any pipeline using the set layout.
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorSetLayoutBinding.StageFlags">
            <summary>
            Specifies which pipeline shader stages can access a resource for this binding. <see
            cref="F:VulkanCore.ShaderStages.All"/> is a shorthand specifying that all defined shader stages,
            including any additional stages defined by extensions, can access the resource.
            <para>
            If a shader stage is not included in <see cref="F:VulkanCore.DescriptorSetLayoutBinding.StageFlags"/>, then a resource must not
            be accessed from that stage via this binding within any pipeline using the set layout.
            There are no limitations on what combinations of stages can be used by a descriptor
            binding, and in particular a binding can be used by both graphics stages and the compute stage.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.DescriptorSetLayoutBinding.ImmutableSamplers">
            <summary>
            Affects initialization of samplers. If <see cref="F:VulkanCore.DescriptorSetLayoutBinding.DescriptorType"/> specifies a <see
            cref="F:VulkanCore.DescriptorType.Sampler"/> or <see
            cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/> type descriptor, then <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.ImmutableSamplers"/> can be used to initialize a set of immutable samplers.
            Immutable samplers are permanently bound into the set layout; later binding a sampler
            into an immutable sampler slot in a descriptor set is not allowed. If <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.ImmutableSamplers"/> is not <c>null</c>, then it is considered to be an array of
            sampler handles that will be consumed by the set layout and used for the corresponding
            binding. If <see cref="F:VulkanCore.DescriptorSetLayoutBinding.ImmutableSamplers"/> is <c>null</c>, then the sampler slots are
            dynamic and sampler handles must be bound into descriptor sets using this layout. If <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.DescriptorType"/> is not one of these descriptor types, then <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.ImmutableSamplers"/> is ignored.
            </summary>
        </member>
        <member name="M:VulkanCore.DescriptorSetLayoutBinding.#ctor(System.Int32,VulkanCore.DescriptorType,System.Int32,VulkanCore.ShaderStages,VulkanCore.Sampler[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.DescriptorSetLayoutBinding"/> structure.
            </summary>
            <param name="binding">
            The binding number of this entry and corresponds to a resource of the same binding number
            in the shader stages.
            </param>
            <param name="descriptorType">
            Specifies which type of resource descriptors are used for this binding.
            </param>
            <param name="descriptorCount">
            The number of descriptors contained in the binding, accessed in a shader as an array. If
            <see cref="F:VulkanCore.DescriptorSetLayoutBinding.DescriptorCount"/> is zero this binding entry is reserved and the resource
            must not be accessed from any stage via this binding within any pipeline using the set layout.
            </param>
            <param name="stageFlags">
            Specifies which pipeline shader stages can access a resource for this binding. <see
            cref="F:VulkanCore.ShaderStages.All"/> is a shorthand specifying that all defined shader stages,
            including any additional stages defined by extensions, can access the resource.
            </param>
            <param name="immutableSamplers">
            Affects initialization of samplers. If <see cref="F:VulkanCore.DescriptorSetLayoutBinding.DescriptorType"/> specifies a <see
            cref="F:VulkanCore.DescriptorType.Sampler"/> or <see
            cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/> type descriptor, then <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.ImmutableSamplers"/> can be used to initialize a set of immutable samplers.
            Immutable samplers are permanently bound into the set layout; later binding a sampler
            into an immutable sampler slot in a descriptor set is not allowed. If <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.ImmutableSamplers"/> is not <c>null</c>, then it is considered to be an array of
            sampler handles that will be consumed by the set layout and used for the corresponding
            binding. If <see cref="F:VulkanCore.DescriptorSetLayoutBinding.ImmutableSamplers"/> is <c>null</c>, then the sampler slots are
            dynamic and sampler handles must be bound into descriptor sets using this layout. If <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.DescriptorType"/> is not one of these descriptor types, then <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.ImmutableSamplers"/> is ignored.
            </param>
        </member>
        <member name="T:VulkanCore.Device">
            <summary>
            Opaque handle to a device object.
            </summary>
        </member>
        <member name="P:VulkanCore.Device.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Device.GetProcAddr(System.String)">
            <summary>
            Return a function handle for a command or <see cref="F:System.IntPtr.Zero"/> if not found.
            <para>
            In order to support systems with multiple Vulkan implementations comprising heterogeneous
            collections of hardware and software, the function pointers returned by <see
            cref="M:VulkanCore.Device.GetProcAddr(System.String)"/> may point to dispatch code, which calls a different real
            implementation for different <see cref="T:VulkanCore.Device"/> objects (and objects created from
            them). The overhead of this internal dispatch can be avoided by obtaining device-specific
            function pointers for any commands that use a device or device-child object as their
            dispatchable object.
            </para>
            </summary>
            <param name="name">The name of the command to obtain.</param>
            <returns>Function handle for a command or <see cref="F:System.IntPtr.Zero"/> if not found.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="name"/> is <c>null</c>.</exception>
        </member>
        <member name="M:VulkanCore.Device.GetProc``1(System.String)">
            <summary>
            Return a function delegate for a command or <c>null</c> if not found.
            <para>
            In order to support systems with multiple Vulkan implementations comprising heterogeneous
            collections of hardware and software, the function delegates returned by <see
            cref="M:VulkanCore.Device.GetProc``1(System.String)"/> may point to dispatch code, which calls a different real
            implementation for different <see cref="T:VulkanCore.Device"/> objects (and objects created from
            them). The overhead of this internal dispatch can be avoided by obtaining device-specific
            function delegate for any commands that use a device or device-child object as their
            dispatchable object.
            </para>
            </summary>
            <param name="name">The name of the command to obtain.</param>
            <returns>Function delegate for a command or <c>null</c> if not found.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="name"/> is <c>null</c>.</exception>
        </member>
        <member name="M:VulkanCore.Device.GetQueue(System.Int32,System.Int32)">
            <summary>
            Get a queue handle from a device.
            </summary>
            <param name="queueFamilyIndex">
            The index of the queue family to which the queue belongs. Must be one of the queue family
            indices specified when device was created, via the <see cref="T:VulkanCore.DeviceQueueCreateInfo"/> structure.
            </param>
            <param name="queueIndex">
            The index within this queue family of the queue to retrieve. Must be less than the number
            of queues created for the specified queue family index when device was created, via the
            length of <see cref="F:VulkanCore.DeviceQueueCreateInfo.QueuePriorities"/>.
            </param>
            <returns>Handle to a queue.</returns>
        </member>
        <member name="M:VulkanCore.Device.WaitIdle">
            <summary>
            Wait for a device to become idle.
            <para>Equivalent to calling <see cref="M:VulkanCore.Queue.WaitIdle"/> for all queues owned by device.</para>
            </summary>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateBuffer(VulkanCore.BufferCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new buffer object.
            </summary>
            <param name="createInfo">
            The structure containing parameters affecting creation of the buffer.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>Buffer object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateImage(VulkanCore.ImageCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new image object.
            </summary>
            <param name="createInfo">
            The structure containing parameters to be used to create the image.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.AllocateMemory(VulkanCore.MemoryAllocateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Allocate GPU memory.
            </summary>
            <param name="allocateInfo">
            The structure describing parameters of the allocation. A successful returned allocation
            must use the requested parameters — no substitution is permitted by the implementation.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.FlushMappedMemoryRange(VulkanCore.MappedMemoryRange)">
            <summary>
            Flush mapped memory range.
            <para>
            Must be used to guarantee that host writes to non-coherent memory are visible to the
            device. It must be called after the host writes to non-coherent memory have completed and
            before command buffers that will read or write any of those memory locations are
            submitted to a queue.
            </para>
            <para>
            Unmapping non-coherent memory does not implicitly flush the mapped memory, and host
            writes that have not been flushed may not ever be visible to the device.
            </para>
            </summary>
            <param name="memoryRange">Structure describing the memory range to flush.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.FlushMappedMemoryRanges(VulkanCore.MappedMemoryRange[])">
            <summary>
            Flush mapped memory ranges.
            <para>
            Must be used to guarantee that host writes to non-coherent memory are visible to the
            device. It must be called after the host writes to non-coherent memory have completed and
            before command buffers that will read or write any of those memory locations are
            submitted to a queue.
            </para>
            <para>
            Unmapping non-coherent memory does not implicitly flush the mapped memory, and host
            writes that have not been flushed may not ever be visible to the device.
            </para>
            </summary>
            <param name="memoryRanges">Structures describing the memory ranges to flush.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.InvalidateMappedMemoryRange(VulkanCore.MappedMemoryRange)">
            <summary>
            Invalidate a range of mapped memory.
            <para>
            Must be used to guarantee that device writes to non-coherent memory are visible to the
            host. It must be called after command buffers that execute and flush (via memory
            barriers) the device writes have completed, and before the host will read or write any of
            those locations. If a range of non-coherent memory is written by the host and then
            invalidated without first being flushed, its contents are undefined.
            </para>
            <para>
            Mapping non-coherent memory does not implicitly invalidate the mapped memory, and device
            writes that have not been invalidated must be made visible before the host reads or
            overwrites them.
            </para>
            </summary>
            <param name="memoryRange">Structure describing the memory range to invalidate.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.InvalidateMappedMemoryRanges(VulkanCore.MappedMemoryRange[])">
            <summary>
            Invalidate ranges of mapped memory objects.
            <para>
            Must be used to guarantee that device writes to non-coherent memory are visible to the
            host. It must be called after command buffers that execute and flush (via memory
            barriers) the device writes have completed, and before the host will read or write any of
            those locations. If a range of non-coherent memory is written by the host and then
            invalidated without first being flushed, its contents are undefined.
            </para>
            <para>
            Mapping non-coherent memory does not implicitly invalidate the mapped memory, and device
            writes that have not been invalidated must be made visible before the host reads or
            overwrites them.
            </para>
            </summary>
            <param name="memoryRanges">Structures describing the memory ranges to invalidate.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateShaderModule(VulkanCore.ShaderModuleCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Creates a new shader module object.
            </summary>
            <param name="createInfo">
            The structure containing information of a newly created shader module.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>Resulting shader module object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreatePipelineCache(VulkanCore.PipelineCacheCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Creates a new pipeline cache.
            </summary>
            <param name="createInfo">
            The structure containing information of a newly created pipeline cache.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>Resulting pipeline cache.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateComputePipeline(VulkanCore.ComputePipelineCreateInfo,VulkanCore.PipelineCache,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Creates a new compute pipeline object.
            </summary>
            <param name="createInfo">
            Structure specifying parameters of a newly created compute pipeline.
            </param>
            <param name="cache">
            Is either <c>null</c>, indicating that pipeline caching is disabled; or the handle of a
            valid pipeline cache object, in which case use of that cache is enabled for the duration
            of the command.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The resulting compute pipeline object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateComputePipelines(VulkanCore.ComputePipelineCreateInfo[],VulkanCore.PipelineCache,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create new compute pipeline objects.
            </summary>
            <param name="createInfos">
            Structures specifying parameters of newly created compute pipelines.
            <para>
            If the flags member of any given element contains the <see
            cref="F:VulkanCore.PipelineCreateFlags.Derivative"/> flag, and the <see
            cref="F:VulkanCore.ComputePipelineCreateInfo.BasePipelineIndex"/> member of that same element is not
            -1, <see cref="F:VulkanCore.ComputePipelineCreateInfo.BasePipelineIndex"/> must be less than the index
            into <paramref name="createInfos"/> that corresponds to that element
            </para>
            </param>
            <param name="cache">
            Is either <c>null</c>, indicating that pipeline caching is disabled; or the handle of a
            valid pipeline cache object, in which case use of that cache is enabled for the duration
            of the command.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>An array in which the resulting compute pipeline objects are returned.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateGraphicsPipeline(VulkanCore.GraphicsPipelineCreateInfo,VulkanCore.PipelineCache,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a graphics pipeline.
            </summary>
            <param name="createInfo">
            Structure specifying parameters of a newly created graphics pipeline.
            </param>
            <param name="cache">
            Is either <c>null</c>, indicating that pipeline caching is disabled; or the handle of a
            valid pipeline cache object, in which case use of that cache is enabled for the duration
            of the command.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The resulting graphics pipeline object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateGraphicsPipelines(VulkanCore.GraphicsPipelineCreateInfo[],VulkanCore.PipelineCache,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create graphics pipelines.
            </summary>
            <param name="createInfos">
            Structures specifying parameters of newly created graphics pipelines.
            <para>
            If the flags member of any given element contains the <see
            cref="F:VulkanCore.PipelineCreateFlags.Derivative"/> flag, and the <see
            cref="F:VulkanCore.GraphicsPipelineCreateInfo.BasePipelineIndex"/> member of that same element is not
            -1, <see cref="F:VulkanCore.GraphicsPipelineCreateInfo.BasePipelineIndex"/> must be less than the index
            into <paramref name="createInfos"/> that corresponds to that element
            </para>
            </param>
            <param name="cache">
            Is either <c>null</c>, indicating that pipeline caching is disabled; or the handle of a
            valid pipeline cache object, in which case use of that cache is enabled for the duration
            of the command.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>An array in which the resulting graphics pipeline objects are returned.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreatePipelineLayout(VulkanCore.PipelineLayoutCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Creates a new pipeline layout object.
            </summary>
            <param name="createInfo">
            The structure specifying the state of the pipeline layout object.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>Handle in which the resulting pipeline layout object is returned.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateSampler(VulkanCore.SamplerCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new sampler object.
            </summary>
            <param name="createInfo">The structure specifying the state of the sampler object.</param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>Resulting sampler object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateDescriptorSetLayout(VulkanCore.DescriptorSetLayoutCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new descriptor set layout.
            </summary>
            <param name="createInfo">
            The structure specifying the state of the descriptor set layout object.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The resulting descriptor set layout object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateDescriptorPool(VulkanCore.DescriptorPoolCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Creates a descriptor pool object.
            </summary>
            <param name="createInfo">
            The structure specifying the state of the descriptor pool object.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The resulting descriptor pool object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateRenderPass(VulkanCore.RenderPassCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new render pass object.
            </summary>
            <param name="createInfo">
            The structure that describes the parameters of the render pass.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The resulting render pass object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateCommandPool(VulkanCore.CommandPoolCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new command pool object.
            </summary>
            <param name="createInfo">Contains information used to create the command pool.</param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The created pool.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateEvent(System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new event object.
            </summary>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The resulting event object.</returns>
        </member>
        <member name="M:VulkanCore.Device.CreateFence(VulkanCore.FenceCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new fence object.
            </summary>
            <param name="createInfo">
            The structure which contains information about how the fence is to be created.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The resulting fence object.</returns>
        </member>
        <member name="M:VulkanCore.Device.ResetFences(VulkanCore.Fence[])">
            <summary>
            Resets one or more fence objects.
            <para>
            Defines a fence unsignal operation for each fence, which resets the fence to the
            unsignaled state.
            </para>
            <para>
            If any member of <paramref name="fences"/> is already in the unsignaled state, then the
            command has no effect on that fence.
            </para>
            </summary>
            <param name="fences">Fence handles to reset.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.WaitFences(VulkanCore.Fence[],System.Boolean,System.Int64)">
            <summary>
            Wait for one or more fences to become signaled.
            <para>
            If the condition is satisfied when the command is called, then the command returns
            immediately. If the condition is not satisfied at the time the command is called, then
            the command will block and wait up to timeout nanoseconds for the condition to become satisfied.
            </para>
            </summary>
            <param name="fences">Fence handle.</param>
            <param name="waitAll">
            The condition that must be satisfied to successfully unblock the wait. If <c>true</c> ,
            then the condition is that all fences in <paramref name="fences"/> are signaled.
            Otherwise, the condition is that at least one fence in <paramref name="fences"/> is signaled.
            </param>
            <param name="timeout">
            The timeout period in units of nanoseconds. Timeout is adjusted to the closest value
            allowed by the implementation-dependent timeout accuracy, which may be substantially
            longer than one nanosecond, and may be longer than the requested period.
            <para>
            If timeout is zero, then the command does not wait, but simply returns the current state
            of the fences. The result <see cref="F:VulkanCore.Result.Timeout"/> will be thrown in this case if the
            condition is not satisfied, even though no actual wait was performed.
            </para>
            <para>
            If the specified timeout period expires before the condition is satisfied, the command
            throws with <see cref="F:VulkanCore.Result.Timeout"/>. If the condition is satisfied before timeout
            nanoseconds has expired, the command returns successfully.
            </para>
            </param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateSemaphore(System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new queue semaphore object.
            </summary>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>Resulting semaphore object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.CreateQueryPool(VulkanCore.QueryPoolCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new query pool object.
            </summary>
            <param name="createInfo">
            Structure containing the number and type of queries to be managed by the pool.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The resulting query pool object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Device.Dispose">
            <summary>
            Destroy a logical device.
            </summary>
        </member>
        <member name="T:VulkanCore.DeviceCreateInfo">
            <summary>
            Structure specifying parameters of a newly created device.
            </summary>
        </member>
        <member name="F:VulkanCore.DeviceCreateInfo.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.DeviceCreateInfo.QueueCreateInfos">
            <summary>
            Structures describing the queues that are requested to be created along with the logical device.
            </summary>
        </member>
        <member name="F:VulkanCore.DeviceCreateInfo.EnabledExtensionNames">
            <summary>
            Is <c>null</c> or unicode strings containing the names of extensions to enable for the
            created device.
            </summary>
        </member>
        <member name="F:VulkanCore.DeviceCreateInfo.EnabledFeatures">
            <summary>
            Is <c>null</c> or a <see cref="T:VulkanCore.PhysicalDeviceFeatures"/> structure that contains boolean
            indicators of all the features to be enabled.
            </summary>
        </member>
        <member name="M:VulkanCore.DeviceCreateInfo.#ctor(VulkanCore.DeviceQueueCreateInfo[],System.String[],System.Nullable{VulkanCore.PhysicalDeviceFeatures},System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.DeviceCreateInfo"/> structure.
            </summary>
            <param name="queueCreateInfos">
            Structures describing the queues that are requested to be created along with the logical device.
            </param>
            <param name="enabledExtensionNames">
            Is <c>null</c> or unicode strings containing the names of extensions to enable for the
            created device.
            </param>
            <param name="enabledFeatures">
            Is <c>null</c> or a <see cref="T:VulkanCore.PhysicalDeviceFeatures"/> structure that contains boolean
            indicators of all the features to be enabled.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.DeviceQueueCreateInfo">
            <summary>
            Structure specifying parameters of a newly created device queue.
            </summary>
        </member>
        <member name="M:VulkanCore.DeviceQueueCreateInfo.#ctor(System.Int32,System.Int32,System.Single[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.DeviceQueueCreateInfo"/> structure.
            </summary>
            <param name="queueFamilyIndex">
            An unsigned integer indicating the index of the queue family to create on this device.
            This index corresponds to the index of an element of the <see
            cref="T:VulkanCore.QueueFamilyProperties"/> array that was returned by <see cref="M:VulkanCore.PhysicalDevice.GetQueueFamilyProperties"/>.
            </param>
            <param name="queueCount">
            An unsigned integer specifying the number of queues to create in the queue family
            indicated by <paramref name="queueFamilyIndex"/>.
            </param>
            <param name="queuePriorities">
            Normalized floating point values, specifying priorities of work that will be submitted to
            each created queue.
            </param>
        </member>
        <member name="F:VulkanCore.DeviceQueueCreateInfo.QueueFamilyIndex">
            <summary>
            An unsigned integer indicating the index of the queue family to create on this device.
            This index corresponds to the index of an element of the <see
            cref="T:VulkanCore.QueueFamilyProperties"/> array that was returned by <see cref="M:VulkanCore.PhysicalDevice.GetQueueFamilyProperties"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.DeviceQueueCreateInfo.QueueCount">
            <summary>
            An unsigned integer specifying the number of queues to create in the queue family
            indicated by <see cref="F:VulkanCore.DeviceQueueCreateInfo.QueueFamilyIndex"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.DeviceQueueCreateInfo.QueuePriorities">
            <summary>
            An array of normalized floating point values, specifying priorities of work that
            will be submitted to each created queue.
            </summary>
        </member>
        <member name="T:VulkanCore.MappedMemoryRange">
            <summary>
            Structure specifying a mapped memory range.
            </summary>
        </member>
        <member name="F:VulkanCore.MappedMemoryRange.Memory">
            <summary>
            The memory object to which this range belongs.
            <para>Must currently be mapped.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.MappedMemoryRange.Offset">
            <summary>
            The zero-based byte offset from the beginning of the memory object.
            <para>Must be a multiple of <see cref="F:VulkanCore.PhysicalDeviceLimits.NonCoherentAtomSize"/>.</para>
            <para>
            If <see cref="F:VulkanCore.MappedMemoryRange.Size"/> is equal to <see cref="F:VulkanCore.Constant.WholeSize"/>, offset must be within the
            currently mapped range of memory
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.MappedMemoryRange.Size">
            <summary>
            Is either the size of range, or <see cref="F:VulkanCore.Constant.WholeSize"/> to affect the range from offset
            to the end of the current mapping of the allocation.
            <para>
            If size is not equal to <see cref="F:VulkanCore.Constant.WholeSize"/>, offset and size must specify a range
            contained within the currently mapped range of memory.
            </para>
            <para>
            If size is not equal to <see cref="F:VulkanCore.Constant.WholeSize"/>, size must be a multiple of <see cref="F:VulkanCore.PhysicalDeviceLimits.NonCoherentAtomSize"/>
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.MappedMemoryRange.#ctor(VulkanCore.DeviceMemory,System.Int64,System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.MappedMemoryRange"/> structure.
            </summary>
            <param name="memory">The memory object to which this range belongs.</param>
            <param name="offset">The zero-based byte offset from the beginning of the memory object.</param>
            <param name="size">
            Is either the size of range, or <see cref="F:VulkanCore.Constant.WholeSize"/> to affect the range from offset
            to the end of the current mapping of the allocation.
            </param>
        </member>
        <member name="T:VulkanCore.DeviceMemory">
            <summary>
            Opaque handle to a device memory object.
            <para>
            A Vulkan device operates on data in device memory via memory objects that are represented in
            the API by a <see cref="T:VulkanCore.DeviceMemory"/> handle.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.DeviceMemory.Parent">
            <summary>
            Gets the owner of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.DeviceMemory.Map(System.Int64,System.Int64)">
            <summary>
            Map a memory object into application address space.
            <para>
            It is an application error to call <see cref="M:VulkanCore.DeviceMemory.Map(System.Int64,System.Int64)"/> on a memory object that is already mapped.
            </para>
            <para>
            Will fail if the implementation is unable to allocate an appropriately sized contiguous
            virtual address range, e.g. due to virtual address space fragmentation or platform
            limits. In such cases, <see cref="M:VulkanCore.DeviceMemory.Map(System.Int64,System.Int64)"/> must return <see
            cref="F:VulkanCore.Result.ErrorMemoryMapFailed"/>. The application can improve the likelihood of
            success by reducing the size of the mapped range and/or removing unneeded mappings using
            <see cref="M:VulkanCore.DeviceMemory.Unmap"/>.
            </para>
            <para>
            Does not check whether the device memory is currently in use before returning the
            host-accessible pointer. The application must guarantee that any previously submitted
            command that writes to this range has completed before the host reads from or writes to
            that range, and that any previously submitted command that reads from that range has
            completed before the host writes to that region (see here for details on fulfilling such
            a guarantee). If the device memory was allocated without the <see
            cref="F:VulkanCore.MemoryProperties.HostCoherent"/> set, these guarantees must be made for an extended
            range: the application must round down the start of the range to the nearest multiple of
                   <see cref="F:VulkanCore.PhysicalDeviceLimits.NonCoherentAtomSize"/>, and round the end of the
            range up to the nearest multiple of <see cref="F:VulkanCore.PhysicalDeviceLimits.NonCoherentAtomSize"/>.
            </para>
            <para>
            While a range of device memory is mapped for host access, the application is responsible
            for synchronizing both device and host access to that memory range.
            </para>
            </summary>
            <param name="offset">A zero-based byte offset from the beginning of the memory object.</param>
            <param name="size">
            The size of the memory range to map, or <see cref="F:VulkanCore.Constant.WholeSize"/> to map from
            offset to the end of the allocation.
            </param>
            <returns>
            A pointer in which is returned a host-accessible pointer to the beginning of the mapped
            range. This pointer minus offset must be aligned to at least <see cref="F:VulkanCore.PhysicalDeviceLimits.MinMemoryMapAlignment"/>.
            </returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.DeviceMemory.Unmap">
            <summary>
            Unmap a previously mapped memory object.
            </summary>
        </member>
        <member name="M:VulkanCore.DeviceMemory.GetCommitment">
            <summary>
            Query the current commitment for a <see cref="T:VulkanCore.DeviceMemory"/>.
            <para>
            The implementation may update the commitment at any time, and the value returned by this
            query may be out of date.
            </para>
            <para>
            The implementation guarantees to allocate any committed memory from the <see
            cref="F:VulkanCore.MemoryType.HeapIndex"/> indicated by the memory type that the memory object was
            created with.
            </para>
            </summary>
            <returns>The number of bytes currently committed.</returns>
        </member>
        <member name="M:VulkanCore.DeviceMemory.Dispose">
            <summary>
            Free GPU memory.
            <para>
            Before freeing a memory object, an application must ensure the memory object is no longer
            in use by the device—​for example by command buffers queued for execution. The memory can
            remain bound to images or buffers at the time the memory object is freed, but any further
            use of them (on host or device) for anything other than destroying those objects will
            result in undefined behavior. If there are still any bound images or buffers, the memory
            may not be immediately released by the implementation, but must be released by the time
            all bound images and buffers have been destroyed. Once memory is released, it is returned
            to the heap from which it was allocated.
            </para>
            <para>If a memory object is mapped at the time it is freed, it is implicitly unmapped.</para>
            </summary>
        </member>
        <member name="T:VulkanCore.MemoryAllocateInfo">
            <summary>
            Structure containing parameters of a memory allocation.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryAllocateInfo.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryAllocateInfo.AllocationSize">
            <summary>
            The size of the allocation in bytes. Must be greater than 0.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryAllocateInfo.MemoryTypeIndex">
            <summary>
            The memory type index, which selects the properties of the memory to be allocated, as
            well as the heap the memory will come from.
            </summary>
        </member>
        <member name="M:VulkanCore.MemoryAllocateInfo.#ctor(System.Int64,System.Int32,System.IntPtr)">
            <summary>
            Initializes a new instance of <see cref="T:VulkanCore.MemoryAllocateInfo"/> structure.
            </summary>
            <param name="allocationSize">
            The size of the allocation in bytes. Must be greater than 0.
            </param>
            <param name="memoryTypeIndex">
            The memory type index, which selects the properties of the memory to be allocated, as
            well as the heap the memory will come from.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Event">
            <summary>
            Opaque handle to a event object.
            <para>
            Events are a synchronization primitive that can be used to insert a fine-grained dependency
            between commands submitted to the same queue, or between the host and a queue. Events have
            two states - signaled and unsignaled. An application can signal an event, or unsignal it, on
            either the host or the device. A device can wait for an event to become signaled before
            executing further operations. No command exists to wait for an event to become signaled on
            the host, but the current state of an event can be queried.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.Event.Parent">
            <summary>
            Gets the parent of this resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Event.GetStatus">
            <summary>
            Retrieve the status of an event object. Upon success, the command returns the state of
            the event object with the following return codes:
            <para>* <see cref="F:VulkanCore.Result.EventSet"/> - The event is signaled</para>
            <para>* <see cref="F:VulkanCore.Result.EventReset"/> - The event is unsignaled</para>
            </summary>
            <returns><see cref="F:VulkanCore.Result.EventSet"/> if the event is signaled; otherwise <see cref="F:VulkanCore.Result.EventReset"/>.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Event.Set">
            <summary>
            Set an event to signaled state.
            </summary>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Event.Reset">
            <summary>
            Reset an event to non-signaled state.
            </summary>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Event.Dispose">
            <summary>
            Destroy an event object.
            </summary>
        </member>
        <member name="T:VulkanCore.EventCreateInfo">
            <summary>
            Structure specifying parameters of a newly created event.
            </summary>
        </member>
        <member name="T:VulkanCore.Extent2D">
            <summary>
            Structure specifying a two-dimensional extent.
            </summary>
        </member>
        <member name="F:VulkanCore.Extent2D.WholeSize">
            <summary>
            A special valued <see cref="T:VulkanCore.Extent3D"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Extent2D.Zero">
            <summary>
            An <see cref="T:VulkanCore.Extent3D"/> with all of its components set to zero.
            </summary>
        </member>
        <member name="F:VulkanCore.Extent2D.Width">
            <summary>
            The width component of the extent.
            </summary>
        </member>
        <member name="F:VulkanCore.Extent2D.Height">
            <summary>
            The height component of the extent.
            </summary>
        </member>
        <member name="M:VulkanCore.Extent2D.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of <see cref="T:VulkanCore.Extent2D"/> structure.
            </summary>
            <param name="width">The width component of the extent.</param>
            <param name="height">The height component of the extent.</param>
        </member>
        <member name="M:VulkanCore.Extent2D.ToString">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Extent2D"/> instance.
            </summary>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Extent2D.ToString(System.IFormatProvider)">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Extent2D"/> instance, using the specified
            format to format individual elements and the given <paramref name="formatProvider"/>.
            </summary>
            <param name="formatProvider">The format provider to use when formatting elements.</param>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Extent2D.Equals(VulkanCore.Extent2D@)">
            <summary>
            Determines whether the specified <see cref="T:VulkanCore.Extent2D"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Extent2D"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:VulkanCore.Extent2D"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Extent2D.Equals(VulkanCore.Extent2D)">
            <summary>
            Determines whether the specified <see cref="T:VulkanCore.Extent2D"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Extent2D"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:VulkanCore.Extent2D"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Extent2D.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Extent2D.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>The hash code.</returns>
        </member>
        <member name="M:VulkanCore.Extent2D.op_Equality(VulkanCore.Extent2D,VulkanCore.Extent2D)">
            <summary>
            Returns a boolean indicating whether the two given extents are equal.
            </summary>
            <param name="left">The first extent to compare.</param>
            <param name="right">The second extent to compare.</param>
            <returns><c>true</c> if the extents are equal; <c>false</c> otherwise.</returns>
        </member>
        <member name="M:VulkanCore.Extent2D.op_Inequality(VulkanCore.Extent2D,VulkanCore.Extent2D)">
            <summary>
            Returns a boolean indicating whether the two given extents are not equal.
            </summary>
            <param name="left">The first extent to compare.</param>
            <param name="right">The second extent to compare.</param>
            <returns>
            <c>true</c> if the extents are not equal; <c>false</c> if they are equal.
            </returns>
        </member>
        <member name="T:VulkanCore.Extent3D">
            <summary>
            Structure specifying a three-dimensional extent.
            </summary>
        </member>
        <member name="F:VulkanCore.Extent3D.WholeSize">
            <summary>
            A special valued <see cref="T:VulkanCore.Extent3D"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Extent3D.Zero">
            <summary>
            An <see cref="T:VulkanCore.Extent3D"/> with all of its components set to zero.
            </summary>
        </member>
        <member name="F:VulkanCore.Extent3D.Width">
            <summary>
            The width component of the extent.
            </summary>
        </member>
        <member name="F:VulkanCore.Extent3D.Height">
            <summary>
            The height component of the extent.
            </summary>
        </member>
        <member name="F:VulkanCore.Extent3D.Depth">
            <summary>
            The depth component of the extent.
            </summary>
        </member>
        <member name="M:VulkanCore.Extent3D.#ctor(System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of <see cref="T:VulkanCore.Extent3D"/> structure.
            </summary>
            <param name="width">The width component of the extent.</param>
            <param name="height">The height component of the extent.</param>
            <param name="depth">The depth component of the extent.</param>
        </member>
        <member name="M:VulkanCore.Extent3D.ToString">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Extent3D"/> instance.
            </summary>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Extent3D.ToString(System.IFormatProvider)">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Extent3D"/> instance, using the specified
            format to format individual elements and the given <paramref name="formatProvider"/>.
            </summary>
            <param name="formatProvider">The format provider to use when formatting elements.</param>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Extent3D.Equals(VulkanCore.Extent3D@)">
            <summary>
            Determines whether the specified <see cref="T:VulkanCore.Extent3D"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Extent3D"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:VulkanCore.Extent3D"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Extent3D.Equals(VulkanCore.Extent3D)">
            <summary>
            Determines whether the specified <see cref="T:VulkanCore.Extent3D"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Extent3D"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:VulkanCore.Extent3D"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Extent3D.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Extent3D.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>The hash code.</returns>
        </member>
        <member name="M:VulkanCore.Extent3D.op_Equality(VulkanCore.Extent3D,VulkanCore.Extent3D)">
            <summary>
            Returns a boolean indicating whether the two given extents are equal.
            </summary>
            <param name="left">The first extent to compare.</param>
            <param name="right">The second extent to compare.</param>
            <returns><c>true</c> if the extents are equal; <c>false</c> otherwise.</returns>
        </member>
        <member name="M:VulkanCore.Extent3D.op_Inequality(VulkanCore.Extent3D,VulkanCore.Extent3D)">
            <summary>
            Returns a boolean indicating whether the two given extents are not equal.
            </summary>
            <param name="left">The first extent to compare.</param>
            <param name="right">The second extent to compare.</param>
            <returns>
            <c>true</c> if the extents are not equal; <c>false</c> if they are equal.
            </returns>
        </member>
        <member name="T:VulkanCore.Ext.CommandBufferExtensions">
            <summary>
            Provides extension methods for the <see cref="T:VulkanCore.CommandBuffer"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.CommandBufferExtensions.CmdDebugMarkerBeginExt(VulkanCore.CommandBuffer,VulkanCore.Ext.DebugMarkerMarkerInfoExt)">
            <summary>
            Open a command buffer marker region.
            <para>
            Typical Vulkan applications will submit many command buffers in each frame, with each
            command buffer containing a large number of individual commands. Being able to logically
            annotate regions of command buffers that belong together as well as hierarchically
            subdivide the frame is important to a developer’s ability to navigate the commands viewed holistically.
            </para>
            <para>
            The marker commands <see cref="M:VulkanCore.Ext.CommandBufferExtensions.CmdDebugMarkerBeginExt(VulkanCore.CommandBuffer,VulkanCore.Ext.DebugMarkerMarkerInfoExt)"/> and <see cref="M:VulkanCore.Ext.CommandBufferExtensions.CmdDebugMarkerEndExt(VulkanCore.CommandBuffer)"/>
            define regions of a series of commands that are grouped together, and they can be nested
            to create a hierarchy.
            </para>
            </summary>
            <param name="commandBuffer">The command buffer into which the command is recorded.</param>
            <param name="markerInfo">Specifies the parameters of the marker region to open.</param>
        </member>
        <member name="M:VulkanCore.Ext.CommandBufferExtensions.CmdDebugMarkerEndExt(VulkanCore.CommandBuffer)">
            <summary>
            Close a command buffer marker region.
            <para>
            Typical Vulkan applications will submit many command buffers in each frame, with each
            command buffer containing a large number of individual commands. Being able to logically
            annotate regions of command buffers that belong together as well as hierarchically
            subdivide the frame is important to a developer’s ability to navigate the commands viewed holistically.
            </para>
            <para>
            The marker commands <see cref="M:VulkanCore.Ext.CommandBufferExtensions.CmdDebugMarkerBeginExt(VulkanCore.CommandBuffer,VulkanCore.Ext.DebugMarkerMarkerInfoExt)"/> and <see cref="M:VulkanCore.Ext.CommandBufferExtensions.CmdDebugMarkerEndExt(VulkanCore.CommandBuffer)"/>
            define regions of a series of commands that are grouped together, and they can be nested
            to create a hierarchy.
            </para>
            </summary>
            <param name="commandBuffer">The command buffer into which the command is recorded.</param>
        </member>
        <member name="M:VulkanCore.Ext.CommandBufferExtensions.CmdDebugMarkerInsertExt(VulkanCore.CommandBuffer,VulkanCore.Ext.DebugMarkerMarkerInfoExt)">
            <summary>
            Insert a marker label into a command buffer.
            <para>Allows insertion of a single label within a command buffer.</para>
            </summary>
            <param name="commandBuffer">The command buffer into which the command is recorded.</param>
            <param name="markerInfo">Specifies the parameters of the marker to insert.</param>
        </member>
        <member name="M:VulkanCore.Ext.CommandBufferExtensions.CmdSetDiscardRectangleExt(VulkanCore.CommandBuffer,System.Int32,VulkanCore.Rect2D[])">
            <summary>
            If the pipeline state object was created with the <see
            cref="F:VulkanCore.DynamicState.DiscardRectangleExt"/> dynamic state enabled, the discard rectangles
            are dynamically set and changed with this command.
            </summary>
            <param name="commandBuffer">The command buffer into which the command will be recorded.</param>
            <param name="firstDiscardRectangle">
            The index of the first discard rectangle whose state is updated by the command.
            </param>
            <param name="discardRectangles">Structures specifying discard rectangles.</param>
        </member>
        <member name="T:VulkanCore.Ext.DebugMarkerMarkerInfoExt">
            <summary>
            Specify parameters of a command buffer marker region.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugMarkerMarkerInfoExt.MarkerName">
            <summary>
            A unicode string that contains the name of the marker.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugMarkerMarkerInfoExt.Color">
            <summary>
            An optional RGBA color value that can be associated with the marker. A particular
            implementation may choose to ignore this color value. The values contain RGBA values in
            order, in the range 0.0 to 1.0. If all elements in color are set to 0.0 then it is ignored.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.DebugMarkerMarkerInfoExt.#ctor(System.String,VulkanCore.ColorF4)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Ext.DebugMarkerMarkerInfoExt"/> structure.
            </summary>
            <param name="markerName">A unicode string that contains the name of the marker.</param>
            <param name="color">
            An optional RGBA color value that can be associated with the marker. A particular
            implementation may choose to ignore this color value. The values contain RGBA values in
            order, in the range 0.0 to 1.0. If all elements in color are set to 0.0 then it is ignored.
            </param>
        </member>
        <member name="T:VulkanCore.Ext.DebugReportCallbackExt">
            <summary>
            Opaque handle to a debug report callback object.
            </summary>
        </member>
        <member name="P:VulkanCore.Ext.DebugReportCallbackExt.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.DebugReportCallbackExt.Dispose">
            <summary>
            Destroy a debug report callback object.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.DebugReportCallbackCreateInfoExt">
            <summary>
            Structure specifying parameters of a newly created debug report callback.
            <para>
            For each <see cref="T:VulkanCore.Ext.DebugReportCallbackCreateInfoExt"/> that is created the flags determine
            when that function is called.
            </para>
            <para>
            A callback will be made for issues that match any bit set in its flags. The callback will
            come directly from the component that detected the event, unless some other layer intercepts
            the calls for its own purposes (filter them in different way, log to system error log, etc.)
            An application may receive multiple callbacks if multiple <see
            cref="T:VulkanCore.Ext.DebugReportCallbackCreateInfoExt"/> objects were created.
            </para>
            <para>A callback will always be executed in the same thread as the originating Vulkan call.</para>
            <para>
            A callback may be called from multiple threads simultaneously (if the application is making
            Vulkan calls from multiple threads).
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportCallbackCreateInfoExt.Flags">
            <summary>
            A bitmask specifying which event(s) will cause this callback to be called. Flags are
            interpreted as bitmasks and multiple can be set.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportCallbackCreateInfoExt.Callback">
            <summary>
            The application callback function to call.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportCallbackCreateInfoExt.UserData">
            <summary>
            User data to be passed to the callback.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.DebugReportCallbackCreateInfoExt.#ctor(VulkanCore.Ext.DebugReportFlagsExt,System.Func{VulkanCore.Ext.DebugReportCallbackInfo,System.Boolean},System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Ext.DebugReportCallbackCreateInfoExt"/> structure.
            </summary>
            <param name="flags">
            A bitmask specifying which event(s) will cause this callback to be called. Flags are
            interpreted as bitmasks and multiple can be set.
            </param>
            <param name="callback">The application callback function to call.</param>
            <param name="userData">User data to be passed to the callback.</param>
        </member>
        <member name="T:VulkanCore.Ext.DebugReportCallbackInfo">
            <summary>
            Structure specifying arguments for a debug report callback function.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportCallbackInfo.Flags">
            <summary>
            The <see cref="T:VulkanCore.Ext.DebugReportFlagsExt"/> that triggered this callback.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportCallbackInfo.ObjectType">
            <summary>
            The <see cref="T:VulkanCore.Ext.DebugReportObjectTypeExt"/> specifying the type of object being used or
            created at the time the event was triggered.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportCallbackInfo.Object">
            <summary>
            The object where the issue was detected. <see cref="F:VulkanCore.Ext.DebugReportCallbackInfo.Object"/> may be 0 if there is no
            object associated with the event.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportCallbackInfo.Location">
            <summary>
            The component (layer, driver, loader) defined value that indicates the location of the
            trigger. This is an optional value.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportCallbackInfo.MessageCode">
            <summary>
            The layer-defined value indicating what test triggered this callback.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportCallbackInfo.LayerPrefix">
            <summary>
            The abbreviation of the component making the callback.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportCallbackInfo.Message">
            <summary>
            The string detailing the trigger conditions.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportCallbackInfo.UserData">
            <summary>
            The user data given when the <see cref="T:VulkanCore.Ext.DebugReportCallbackCreateInfoExt"/> was created.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.DebugReportFlagsExt">
            <summary>
            Bitmask specifying events which cause a debug report callback.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportFlagsExt.Information">
            <summary>
            Specifies an informational message such as resource details that may be handy when
            debugging an application.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportFlagsExt.Warning">
            <summary>
            Specifies use of Vulkan that may expose an app bug. Such cases may not be immediately
            harmful, such as a fragment shader outputting to a location with no attachment. Other
            cases may point to behavior that is almost certainly bad when unintended such as using an
            image whose memory has not been filled. In general if you see a warning but you know that
            the behavior is intended/desired, then simply ignore the warning.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportFlagsExt.PerformanceWarning">
            <summary>
            Specifies a potentially non-optimal use of Vulkan. E.g. using <see
            cref="M:VulkanCore.CommandBuffer.CmdClearColorImage(VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.ClearColorValue,VulkanCore.ImageSubresourceRange[])"/> when a <see cref="T:VulkanCore.RenderPass"/> load op would
            have worked.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportFlagsExt.Error">
            <summary>
            Specifies that an error that may cause undefined results, including an application crash.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportFlagsExt.Debug">
            <summary>
            Specifies diagnostic information from the loader and layers.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportFlagsExt.All">
            <summary>
            All flags.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.DebugReportObjectTypeExt">
            <summary>
            Specify the type of an object handle.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.Unknown">
            <summary>
            Specifies an unknown object.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.Instance">
            <summary>
            Specifies an <see cref="T:VulkanCore.Instance"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.PhysicalDevice">
            <summary>
            Specifies a <see cref="T:VulkanCore.PhysicalDevice"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.Device">
            <summary>
            Specifies a <see cref="T:VulkanCore.Device"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.Queue">
            <summary>
            Specifies a <see cref="T:VulkanCore.Queue"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.Semaphore">
            <summary>
            Specifies a <see cref="T:VulkanCore.Semaphore"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.CommandBuffer">
            <summary>
            Specifies a <see cref="T:VulkanCore.CommandBuffer"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.Fence">
            <summary>
            Specifies a <see cref="T:VulkanCore.Fence"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.DeviceMemory">
            <summary>
            Specifies a <see cref="T:VulkanCore.DeviceMemory"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.Buffer">
            <summary>
            Specifies a <see cref="T:VulkanCore.Buffer"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.Image">
            <summary>
            Specifies an <see cref="T:VulkanCore.Image"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.Event">
            <summary>
            Specifies an <see cref="T:VulkanCore.Event"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.QueryPool">
            <summary>
            Specifies a <see cref="T:VulkanCore.QueryPool"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.BufferView">
            <summary>
            Specifies an <see cref="T:VulkanCore.BufferView"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.ImageView">
            <summary>
            Specifies an <see cref="T:VulkanCore.ImageView"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.ShaderModule">
            <summary>
            Specifies a <see cref="T:VulkanCore.ShaderModule"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.PipelineCache">
            <summary>
            Specifies a <see cref="T:VulkanCore.PipelineCache"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.PipelineLayout">
            <summary>
            Specifies a <see cref="T:VulkanCore.PipelineLayout"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.RenderPass">
            <summary>
            Specifies a <see cref="T:VulkanCore.RenderPass"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.Pipeline">
            <summary>
            Specifies a <see cref="T:VulkanCore.Pipeline"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.DescriptorSetLayout">
            <summary>
            Specifies a <see cref="T:VulkanCore.DescriptorSetLayout"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.Sampler">
            <summary>
            Specifies a <see cref="T:VulkanCore.Sampler"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.DescriptorPool">
            <summary>
            Specifies a <see cref="T:VulkanCore.DescriptorPool"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.DescriptorSet">
            <summary>
            Specifies a <see cref="T:VulkanCore.DescriptorSet"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.Framebuffer">
            <summary>
            Specifies a <see cref="T:VulkanCore.Framebuffer"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.CommandPool">
            <summary>
            Specifies a <see cref="T:VulkanCore.CommandPool"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.SurfaceKhr">
            <summary>
            Specifies a <see cref="T:VulkanCore.Khr.SurfaceKhr"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.SwapchainKhr">
            <summary>
            Specifies a <see cref="T:VulkanCore.Khr.SwapchainKhr"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.DebugReportCallback">
            <summary>
            Specifies a <see cref="T:VulkanCore.Ext.DebugReportCallbackExt"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.DisplayKhr">
            <summary>
            Specifies a <see cref="T:VulkanCore.Khr.DisplayKhr"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.DisplayModeKhr">
            <summary>
            Specifies a <see cref="T:VulkanCore.Khr.DisplayModeKhr"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.ObjectTableNvx">
            <summary>
            Specifies a <see cref="T:VulkanCore.Nvx.ObjectTableNvx"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.IndirectCommandsLayoutNvx">
            <summary>
            Specifies a <see cref="T:VulkanCore.Nvx.IndirectCommandsLayoutNvx"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugReportObjectTypeExt.DescriptorUpdateTemplateKhrExt">
            <summary>
            Specifies a <see cref="T:VulkanCore.Khr.DescriptorUpdateTemplateKhr"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.DeviceExtensions">
            <summary>
            Provides extension methods for the <see cref="T:VulkanCore.Device"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.DeviceExtensions.DebugMarkerSetObjectNameExt(VulkanCore.Device,VulkanCore.Ext.DebugMarkerObjectNameInfoExt)">
            <summary>
            Give a user-friendly name to an object.
            <para>
            Applications may change the name associated with an object simply by calling <see
            cref="M:VulkanCore.Ext.DeviceExtensions.DebugMarkerSetObjectNameExt(VulkanCore.Device,VulkanCore.Ext.DebugMarkerObjectNameInfoExt)"/> again with a new string. To remove a previously set
            name, name should be set to an empty string.
            </para>
            </summary>
            <param name="device">The device that created the object.</param>
            <param name="nameInfo">Specifies the parameters of the name to set on the object.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Ext.DeviceExtensions.DebugMarkerSetObjectTagExt(VulkanCore.Device,VulkanCore.Ext.DebugMarkerObjectTagInfoExt)">
            <summary>
            Attach arbitrary data to an object.
            <para>
            In addition to setting a name for an object, debugging and validation layers may have
            uses for additional binary data on a per-object basis that has no other place in the
            Vulkan API. For example, a <see cref="T:VulkanCore.ShaderModule"/> could have additional debugging
            data attached to it to aid in offline shader tracing.
            </para>
            </summary>
            <param name="device">The device that created the object.</param>
            <param name="tagInfo">Specifies the parameters of the tag to attach to the object.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Ext.DeviceExtensions.DisplayPowerControlExt(VulkanCore.Device,VulkanCore.Khr.DisplayKhr,VulkanCore.Ext.DisplayPowerInfoExt)">
            <summary>
            Set the power state of a display.
            </summary>
            <param name="device">The display whose power state is modified.</param>
            <param name="display">A logical device associated with <paramref name="display"/>.</param>
            <param name="displayPowerInfo">Specifies the new power state of <paramref name="display"/>.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Ext.DeviceExtensions.RegisterDeviceEventExt(VulkanCore.Device,VulkanCore.Ext.DeviceEventInfoExt,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Signal a fence when a device event occurs.
            </summary>
            <param name="device">A logical device on which the event may occur.</param>
            <param name="deviceEventInfo">A structure describing the event of interest to the application.</param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The resulting fence object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Ext.DeviceExtensions.RegisterDisplayEventExt(VulkanCore.Device,VulkanCore.Khr.DisplayKhr,VulkanCore.Ext.DisplayEventInfoExt,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Signal a fence when a display event occurs.
            </summary>
            <param name="device">A logical device associated with <paramref name="display"/>.</param>
            <param name="display">The display on which the event may occur.</param>
            <param name="displayEventInfo">
            The structure describing the event of interest to the application.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The resulting fence object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Ext.DeviceExtensions.SetHdrMetadataExt(VulkanCore.Device,VulkanCore.Khr.SwapchainKhr[],VulkanCore.Ext.HdrMetadataExt[])">
            <summary>
            Function to set HDR metadata.
            </summary>
            <param name="device">The logical device where the swapchain(s) were created.</param>
            <param name="swapchains">The array of <see cref="T:VulkanCore.Khr.SwapchainKhr"/> handles.</param>
            <param name="metadata">The array of <see cref="T:VulkanCore.Ext.HdrMetadataExt"/> structures.</param>
        </member>
        <member name="T:VulkanCore.Ext.DebugMarkerObjectNameInfoExt">
            <summary>
            Specify parameters of a name to give to an object.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugMarkerObjectNameInfoExt.ObjectType">
            <summary>
            Specifies specifying the type of the object to be named.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugMarkerObjectNameInfoExt.Object">
            <summary>
            The object to be named.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugMarkerObjectNameInfoExt.ObjectName">
            <summary>
            A unicode string specifying the name to apply to object.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.DebugMarkerObjectNameInfoExt.#ctor(VulkanCore.VulkanHandle{System.IntPtr},System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Ext.DebugMarkerObjectNameInfoExt"/> structure.
            </summary>
            <param name="obj">Vulkan object to be name.</param>
            <param name="name">Name to set.</param>
        </member>
        <member name="M:VulkanCore.Ext.DebugMarkerObjectNameInfoExt.#ctor(VulkanCore.VulkanHandle{System.Int64},System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Ext.DebugMarkerObjectNameInfoExt"/> structure.
            </summary>
            <param name="obj">Vulkan object to name.</param>
            <param name="name">Name to set.</param>
        </member>
        <member name="T:VulkanCore.Ext.DebugMarkerObjectTagInfoExt">
            <summary>
            Specify parameters of a tag to attach to an object.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugMarkerObjectTagInfoExt.ObjectType">
            <summary>
            Specifies the type of the object to be named.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugMarkerObjectTagInfoExt.Object">
            <summary>
            The object to be tagged.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugMarkerObjectTagInfoExt.TagName">
            <summary>
            A numerical identifier of the tag.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DebugMarkerObjectTagInfoExt.Tag">
            <summary>
            Bytes containing the data to be associated with the object.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.DebugMarkerObjectTagInfoExt.#ctor(VulkanCore.VulkanHandle{System.IntPtr},System.Int64,System.Byte[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Ext.DebugMarkerObjectTagInfoExt"/> structure.
            </summary>
            <param name="obj">Vulkan object to be tagged.</param>
            <param name="tagName">A numerical identifier of the tag.</param>
            <param name="tag">Bytes containing the data to be associated with the object.</param>
        </member>
        <member name="M:VulkanCore.Ext.DebugMarkerObjectTagInfoExt.#ctor(VulkanCore.VulkanHandle{System.Int64},System.Int64,System.Byte[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Ext.DebugMarkerObjectTagInfoExt"/> structure.
            </summary>
            <param name="obj">Vulkan object to be tagged.</param>
            <param name="tagName">A numerical identifier of the tag.</param>
            <param name="tag">Bytes containing the data to be associated with the object.</param>
        </member>
        <member name="T:VulkanCore.Ext.DisplayPowerInfoExt">
            <summary>
            Describe the power state of a display.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DisplayPowerInfoExt.PowerState">
            <summary>
            The new power state of the display.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.DisplayPowerInfoExt.#ctor(VulkanCore.Ext.DisplayPowerStateExt)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Ext.DisplayPowerInfoExt"/> structure.
            </summary>
            <param name="powerState">The new power state of the display.</param>
        </member>
        <member name="T:VulkanCore.Ext.DisplayPowerStateExt">
            <summary>
            Possible power states for a display.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DisplayPowerStateExt.Off">
            <summary>
            Specifies that the display is powered down.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DisplayPowerStateExt.Suspend">
            <summary>
            Specifies that the display is in a low power mode, but may be able to transition back to
            <see cref="F:VulkanCore.Ext.DisplayPowerStateExt.On"/> more quickly than if it were in <see cref="F:VulkanCore.Ext.DisplayPowerStateExt.Off"/>.
            <para>This state may be the same as <see cref="F:VulkanCore.Ext.DisplayPowerStateExt.Off"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DisplayPowerStateExt.On">
            <summary>
            Specifies that the display is powered on.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.DeviceEventInfoExt">
            <summary>
            Describe a device event to create.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DeviceEventInfoExt.DeviceEvent">
            <summary>
            Specifies when the fence will be signaled.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.DeviceEventInfoExt.#ctor(VulkanCore.Ext.DeviceEventTypeExt)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Ext.DeviceEventInfoExt"/> structure.
            </summary>
            <param name="deviceEvent">Specifies when the fence will be signaled.</param>
        </member>
        <member name="T:VulkanCore.Ext.DisplayEventInfoExt">
            <summary>
            Describe a display event to create.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DisplayEventInfoExt.DisplayEvent">
            <summary>
            Specifies when the fence will be signaled.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.DisplayEventInfoExt.#ctor(VulkanCore.Ext.DisplayEventTypeExt)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Ext.DisplayEventInfoExt"/> structure.
            </summary>
            <param name="displayEvent">Specifies when the fence will be signaled.</param>
        </member>
        <member name="T:VulkanCore.Ext.DeviceEventTypeExt">
            <summary>
            Events that can occur on a device object.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DeviceEventTypeExt.DisplayHotplug">
            <summary>
            Specifies that the fence is signaled when a display is plugged into or unplugged from the
            specified device.
            <para>
            Applications can use this notification to determine when they need to re-enumerate the
            available displays on a device.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.DisplayEventTypeExt">
            <summary>
            Events that can occur on a display object.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DisplayEventTypeExt.FirstPixelOut">
            <summary>
            Specifies that the fence is signaled when the first pixel of the next display refresh
            cycle leaves the display engine for the display.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.HdrMetadataExt">
            <summary>
            Structure to specify HDR metadata.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.HdrMetadataExt.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.HdrMetadataExt.DisplayPrimaryRed">
            <summary>
            The mastering display's red primary in chromaticity coordinates.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.HdrMetadataExt.DisplayPrimaryGreen">
            <summary>
            The mastering display's green primary in chromaticity coordinates.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.HdrMetadataExt.DisplayPrimaryBlue">
            <summary>
            The mastering display's blue primary in chromaticity coordinates.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.HdrMetadataExt.WhitePoint">
            <summary>
            The mastering display's white-point in chromaticity coordinates.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.HdrMetadataExt.MaxLuminance">
            <summary>
            The maximum luminance of the mastering display in nits.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.HdrMetadataExt.MinLuminance">
            <summary>
            The minimum luminance of the mastering display in nits.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.HdrMetadataExt.MaxContentLightLevel">
            <summary>
            Content's maximum luminance in nits.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.HdrMetadataExt.MaxFrameAverageLightLevel">
            <summary>
            The maximum frame average light level in nits.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.XYColorExt">
            <summary>
            Structure to specify X,Y chromaticity coordinates.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.XYColorExt.X">
            <summary>
            The X coordinate of chromaticity limited to between 0 and 1.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.XYColorExt.Y">
            <summary>
            The Y coordinate of chromaticity limited to between 0 and 1.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.DisplayKhrExtensions">
            <summary>
            Provides extension methods for the <see cref="T:VulkanCore.Khr.DisplayKhr"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.DisplayKhrExtensions.AcquireXlibDisplayExt(VulkanCore.Khr.DisplayKhr,System.IntPtr)">
            <summary>
            Acquire access to a DisplayKhr using Xlib.
            <para>
            All permissions necessary to control the display are granted to the Vulkan instance
            associated with <see cref="T:VulkanCore.PhysicalDevice"/> until the display is released or the X11
            connection specified by <paramref name="dpy"/> is terminated.
            </para>
            <para>
            Permission to access the display may be temporarily revoked during periods when the X11
            server from which control was acquired itself looses access to <paramref name="display"/>.
            </para>
            <para>
            During such periods, operations which require access to the display must fail with an
            approriate error code.
            </para>
            <para>
            If the X11 server associated with <paramref name="dpy"/> does not own <paramref
            name="display"/>, or if permission to access it has already been acquired by another
            entity, the call must throw with the error code <see cref="F:VulkanCore.Result.ErrorInitializationFailed"/>.
            </para>
            </summary>
            <param name="display"></param>
            <param name="dpy"></param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Ext.DisplayKhrExtensions.ReleaseDisplayExt(VulkanCore.Khr.DisplayKhr)">
            <summary>
            Release access to an acquired DisplayKhr.
            </summary>
            <param name="display">The display to release control of.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Ext.InstanceExtensions">
            <summary>
            Provides extension methods for the <see cref="T:VulkanCore.Instance"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.InstanceExtensions.CreateDebugReportCallbackExt(VulkanCore.Instance,VulkanCore.Ext.DebugReportCallbackCreateInfoExt,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a debug report callback object.
            </summary>
            <param name="instance">The instance the callback will be logged on.</param>
            <param name="createInfo">
            The structure which defines the conditions under which this callback will be called.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>A <see cref="T:VulkanCore.Ext.DebugReportCallbackExt"/> handle.</returns>
            <exception cref="T:System.InvalidOperationException">Vulkan command not found.</exception>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Ext.InstanceExtensions.DebugReportMessageExt(VulkanCore.Instance,VulkanCore.Ext.DebugReportFlagsExt,System.String,VulkanCore.Ext.DebugReportObjectTypeExt,System.Int64,System.IntPtr,System.Int32,System.String)">
            <summary>
            To inject it's own messages into the debug stream an application uses this method.
            </summary>
            <param name="instance">The instance the callback will be logged on.</param>
            <param name="flags">
            Indicates the <see cref="T:VulkanCore.Ext.DebugReportFlagsExt"/> that triggered this callback.
            </param>
            <param name="objectType">
            The type of object being used / created at the time the event was triggered.
            </param>
            <param name="object">
            Gives the object where the issue was detected. Object may be 0 if there is no object
            associated with the event.
            </param>
            <param name="location">
            A component (layer, driver, loader) defined value that indicates the "location" of the
            trigger. This is an optional value.
            </param>
            <param name="messageCode">
            A layer defined value indicating what test triggered this callback.
            </param>
            <param name="layerPrefix">Abbreviation of the component making the callback.</param>
            <param name="message">Unicode string detailing the trigger conditions.</param>
            <exception cref="T:System.InvalidOperationException">Vulkan command not found.</exception>
        </member>
        <member name="T:VulkanCore.Ext.ValidationFlagsExt">
            <summary>
            Specify validation checks to disable for a Vulkan instance.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.ValidationFlagsExt.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.ValidationFlagsExt.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.ValidationFlagsExt.DisabledValidationCheckCount">
            <summary>
            The number of checks to disable.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.ValidationFlagsExt.DisabledValidationChecks">
            <summary>
            A pointer to an array of <see cref="T:VulkanCore.Ext.ValidationCheckExt"/> values specifying the
            validation checks to be disabled.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.ValidationCheckExt">
            <summary>
            Specify validation checks to disable.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.ValidationCheckExt.All">
            <summary>
            Specifies that all validation checks are disabled.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.ValidationCheckExt.Shaders">
            <summary>
            Specifies that shader validation is disabled.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.PhysicalDeviceExtensions">
            <summary>
            Provides extension methods for the <see cref="T:VulkanCore.PhysicalDevice"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.PhysicalDeviceExtensions.GetSurfaceCapabilities2Ext(VulkanCore.PhysicalDevice,VulkanCore.Khr.SurfaceKhr)">
            <summary>
            Query surface capabilities.
            </summary>
            <param name="physicalDevice">
            The physical device that will be associated with the swapchain to be created, as
            described for <see cref="M:VulkanCore.Khr.DeviceExtensions.CreateSwapchainKhr(VulkanCore.Device,VulkanCore.Khr.SwapchainCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})"/>.
            </param>
            <param name="surface">The surface that will be associated with the swapchain.</param>
            <returns>The structure in which the capabilities are returned.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Ext.PhysicalDeviceExtensions.GetRandROutputDisplayExt(VulkanCore.PhysicalDevice,System.IntPtr,System.IntPtr)">
            <summary>
            Query the <see cref="T:VulkanCore.Khr.DisplayKhr"/> corresponding to an X11 RandR Output.
            <para>
            When acquiring displays from an X11 server, an application may also wish to enumerate and
            identify them using a native handle rather than a <see cref="T:VulkanCore.Khr.DisplayKhr"/> handle.
            </para>
            </summary>
            <param name="physicalDevice">The physical device to query the display handle on.</param>
            <param name="dpy">A connection to the X11 server from which <paramref name="rrOutput"/> was queried.</param>
            <param name="rrOutput">An X11 RandR output ID.</param>
            <returns>The corresponding <see cref="T:VulkanCore.Khr.DisplayKhr"/> handle.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Ext.SurfaceCapabilities2Ext">
            <summary>
            Structure describing capabilities of a surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCapabilities2Ext.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCapabilities2Ext.MinImageCount">
            <summary>
            The minimum number of images the specified device supports for a swapchain created for
            the surface, and will be at least one.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCapabilities2Ext.MaxImageCount">
            <summary>
            The maximum number of images the specified device supports for a swapchain created for
            the surface, and will be either 0, or greater than or equal to <see
            cref="F:VulkanCore.Ext.SurfaceCapabilities2Ext.MinImageCount"/>. A value of 0 means that there is no limit on the number of
            images, though there may be limits related to the total amount of memory used by
            swapchain images.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCapabilities2Ext.CurrentExtent">
            <summary>
            The current width and height of the surface, or the special value <see
            cref="F:VulkanCore.Extent2D.WholeSize"/> indicating that the surface size will be determined by the
            extent of a swapchain targeting the surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCapabilities2Ext.MinImageExtent">
            <summary>
            Contains the smallest valid swapchain extent for the surface on the specified device. The
            width and height of the extent will each be less than or equal to the corresponding width
            and height of <see cref="F:VulkanCore.Ext.SurfaceCapabilities2Ext.CurrentExtent"/>, unless <see cref="F:VulkanCore.Ext.SurfaceCapabilities2Ext.CurrentExtent"/> has the
            special value described above.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCapabilities2Ext.MaxImageExtent">
            <summary>
            Contains the largest valid swapchain extent for the surface on the specified device. The
            width and height of the extent will each be greater than or equal to the corresponding
            width and height of <see cref="F:VulkanCore.Ext.SurfaceCapabilities2Ext.MinImageExtent"/>. The width and height of the extent will
            each be greater than or equal to the corresponding width and height of <see
            cref="F:VulkanCore.Ext.SurfaceCapabilities2Ext.CurrentExtent"/>, unless <see cref="F:VulkanCore.Ext.SurfaceCapabilities2Ext.CurrentExtent"/> has the special value
            described above.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCapabilities2Ext.MaxImageArrayLayers">
            <summary>
            The maximum number of layers swapchain images can have for a swapchain created for this
            device and surface, and will be at least one.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCapabilities2Ext.SupportedTransforms">
            <summary>
            A bitmask of <see cref="T:VulkanCore.Khr.SurfaceTransformsKhr"/>, describing the presentation
            transforms supported for the surface on the specified device, and at least one bit will
            be set.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCapabilities2Ext.CurrentTransform">
            <summary>
            The surface's current transform relative to the presentation engine's natural
            orientation, as described by <see cref="T:VulkanCore.Khr.SurfaceTransformsKhr"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCapabilities2Ext.SupportedCompositeAlpha">
            <summary>
            A bitmask of <see cref="T:VulkanCore.Khr.CompositeAlphasKhr"/>, representing the alpha compositing
            modes supported by the presentation engine for the surface on the specified device, and
            at least one bit will be set. Opaque composition can be achieved in any alpha compositing
            mode by either using a swapchain image format that has no alpha component, or by ensuring
            that all pixels in the swapchain images have an alpha value of 1.0.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCapabilities2Ext.SupportedUsageFlags">
            <summary>
            A bitmask of <see cref="T:VulkanCore.ImageUsages"/> representing the ways the
            application can use the presentable images of a swapchain created for the
            surface on the specified device. <see cref="F:VulkanCore.ImageUsages.ColorAttachment"/>
            must be included in the set but implementations may support additional usages.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCapabilities2Ext.SupportedSurfaceCounters">
            <summary>
            A bitfield containing one bit set for each surface counter type supported.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.SurfaceCountersExt">
            <summary>
            Surface-relative counter types.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCountersExt.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SurfaceCountersExt.VBlank">
            <summary>
            Indicates a counter incrementing once every time a vertical blanking period occurs on the
            display associated with the surface.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.PhysicalDeviceDiscardRectanglePropertiesExt">
            <summary>
            Structure describing discard rectangle limits that can be supported by an implementation.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PhysicalDeviceDiscardRectanglePropertiesExt.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PhysicalDeviceDiscardRectanglePropertiesExt.MaxDiscardRectangles">
            <summary>
            Max number of active discard rectangles.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.PhysicalDeviceBlendOperationAdvancedFeaturesExt">
            <summary>
            Structure describing advanced blending features that can be supported by an implementation.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PhysicalDeviceBlendOperationAdvancedFeaturesExt.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.PhysicalDeviceBlendOperationAdvancedPropertiesExt">
            <summary>
            Structure describing advanced blending limits that can be supported by an implementation.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PhysicalDeviceBlendOperationAdvancedPropertiesExt.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.PipelineDiscardRectangleStateCreateInfoExt">
            <summary>
            Structure specifying discard rectangle.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineDiscardRectangleStateCreateInfoExt.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineDiscardRectangleStateCreateInfoExt.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineDiscardRectangleStateCreateInfoExt.Flags">
            <summary>
            Is reserved for future use.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineDiscardRectangleStateCreateInfoExt.DiscardRectangleMode">
            <summary>
            The mode used to determine whether fragments that lie within the discard
            rectangle are discarded or not.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineDiscardRectangleStateCreateInfoExt.DiscardRectangleCount">
            <summary>
            The number of discard rectangles used by the pipeline.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineDiscardRectangleStateCreateInfoExt.DiscardRectangles">
            <summary>
            A pointer to an array of <see cref="T:VulkanCore.Rect2D"/> structures, defining the discard
            rectangles.
            <para>If the discard rectangle state is dynamic, this member is ignored.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.PipelineDiscardRectangleStateCreateInfoExt.#ctor(VulkanCore.Ext.DiscardRectangleModeExt,System.Int32,System.IntPtr,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see
            cref="T:VulkanCore.Ext.PipelineDiscardRectangleStateCreateInfoExt"/> structure.
            </summary>
            <param name="discardRectangleMode">
            The mode used to determine whether fragments that lie within the discard rectangle are
            discarded or not.
            </param>
            <param name="discardRectangleCount">The number of discard rectangles used by the pipeline.</param>
            <param name="discardRectangles">
            A pointer to an array of <see cref="T:VulkanCore.Rect2D"/> structures, defining the discard rectangles.
            <para>If the discard rectangle state is dynamic, this member is ignored.</para>
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="F:VulkanCore.Ext.PipelineDiscardRectangleStateCreateFlagsExt.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.DiscardRectangleModeExt">
            <summary>
            Specify the discard rectangle mode.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DiscardRectangleModeExt.Inclusive">
            <summary>
            Specifies that a fragment within any discard rectangle satisfies the test.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.DiscardRectangleModeExt.Exclusive">
            <summary>
            Specifies that a fragment not within any of the discard rectangles satisfies
            the test.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.BlendOverlapExt">
            <summary>
            Enumerant specifying the blend overlap parameter.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.BlendOverlapExt.Uncorrelated">
            <summary>
            Specifies that there is no correlation between the source and destination
            coverage.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.BlendOverlapExt.Disjoint">
            <summary>
            Specifies that the source and destination coverage are considered to have
            minimal overlap.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.BlendOverlapExt.Conjoint">
            <summary>
            Specifies that the source and destination coverage are considered to have
            maximal overlap.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.PipelineColorBlendAdvancedStateCreateInfoExt">
            <summary>
            Structure specifying parameters that affect advanced blend operations.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineColorBlendAdvancedStateCreateInfoExt.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineColorBlendAdvancedStateCreateInfoExt.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineColorBlendAdvancedStateCreateInfoExt.SrcPremultiplied">
            <summary>
            Specifies whether the source color of the blend operation is treated as premultiplied.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineColorBlendAdvancedStateCreateInfoExt.DstPremultiplied">
            <summary>
            Specifies whether the destination color of the blend operation is treated as premultiplied.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineColorBlendAdvancedStateCreateInfoExt.BlendOverlap">
            <summary>
            Specifies how the source and destination sample's coverage is correlated.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.PipelineCoverageModulationStateCreateInfoNV">
            <summary>
            Structure specifying parameters controlling coverage modulation.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineCoverageModulationStateCreateInfoNV.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineCoverageModulationStateCreateInfoNV.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineCoverageModulationStateCreateInfoNV.Flags">
            <summary>
            Is reserved for future use.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineCoverageModulationStateCreateInfoNV.CoverageModulationMode">
            <summary>
            Controls which color components are modulated and is of type <see cref="T:VulkanCore.Ext.CoverageModulationModeNV"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineCoverageModulationStateCreateInfoNV.CoverageModulationTableEnable">
            <summary>
            Controls whether the modulation factor is looked up from a table in <see cref="F:VulkanCore.Ext.PipelineCoverageModulationStateCreateInfoNV.CoverageModulationTable"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineCoverageModulationStateCreateInfoNV.CoverageModulationTableCount">
            <summary>
            The number of elements in <see cref="F:VulkanCore.Ext.PipelineCoverageModulationStateCreateInfoNV.CoverageModulationTable"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineCoverageModulationStateCreateInfoNV.CoverageModulationTable">
            <summary>
            A pointer to a table of modulation factors containing a value for each number of covered samples.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PipelineCoverageModulationStateCreateFlagsNV.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.CoverageModulationModeNV">
            <summary>
            Specify the discard rectangle mode.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.CoverageModulationModeNV.None">
            <summary>
            Specifies that no components are multiplied by the modulation factor.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.CoverageModulationModeNV.Rgb">
            <summary>
            Specifies that the red, green, and blue components are multiplied by the modulation factor.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.CoverageModulationModeNV.Alpha">
            <summary>
            Specifies that the alpha component is multiplied by the modulation factor.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.CoverageModulationModeNV.Rgba">
            <summary>
            Specifies that all components are multiplied by the modulation factor.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.SamplerReductionModeExt">
            <summary>
            Specify reduction mode for texture filtering.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SamplerReductionModeExt.WeightedAverage">
            <summary>
            Indicates that texel values are combined by computing a weighted average of values in the
            footprint, using weights.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SamplerReductionModeExt.Min">
            <summary>
            Indicates that texel values are combined by taking the component-wise minimum of values
            in the footprint with non-zero weights.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SamplerReductionModeExt.Max">
            <summary>
            Indicates that texel values are combined by taking the component-wise maximum of values
            in the footprint with non-zero weights.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.PhysicalDeviceSamplerFilterMinmaxPropertiesExt">
            <summary>
            Structure describing sampler filter minmax limits that can be supported by an implementation.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.PhysicalDeviceSamplerFilterMinmaxPropertiesExt.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.SamplerReductionModeCreateInfoExt">
            <summary>
            Structure specifying sampler reduction mode.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SamplerReductionModeCreateInfoExt.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SamplerReductionModeCreateInfoExt.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Ext.SamplerReductionModeCreateInfoExt.ReductionMode">
            <summary>
            Controls how texture filtering combines texel values.
            </summary>
        </member>
        <member name="T:VulkanCore.Ext.SwapchainKhrExtensions">
            <summary>
            Provides extension methods for the <see cref="T:VulkanCore.Khr.SwapchainKhr"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Ext.SwapchainKhrExtensions.GetCounterExt(VulkanCore.Khr.SwapchainKhr,VulkanCore.Ext.SurfaceCountersExt)">
            <summary>
            Query the current value of a surface counter.
            <para>
            The requested counters become active when the first presentation command for the
            associated swapchain is processed by the presentation engine.
            </para>
            </summary>
            <param name="swapchain">The swapchain from which to query the counter value.</param>
            <param name="counter">The counter to query.</param>
            <returns>The current value of the counter.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Fence">
            <summary>
            Opaque handle to a fence object.
            <para>
            Fences are a synchronization primitive that can be used to insert a dependency from a queue
            to the host. Fences have two states - signaled and unsignaled. A fence can be signaled as
            part of the execution of a queue submission command. Fences can be unsignaled on the host
            with <see cref="M:VulkanCore.Device.ResetFences(VulkanCore.Fence[])"/>. Fences can be waited on by the host with the <see
            cref="M:VulkanCore.Device.WaitFences(VulkanCore.Fence[],System.Boolean,System.Int64)"/> command, and the current state can be queried with <see cref="M:VulkanCore.Fence.GetStatus"/>.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.Fence.Parent">
            <summary>
            Gets the parent of this resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Fence.GetStatus">
            <summary>
            Return the status of a fence. Upon success, returns the status of the fence object, with
            the following return codes:
            <para>* <see cref="F:VulkanCore.Result.Success"/> - The fence is signaled</para>
            <para>* <see cref="F:VulkanCore.Result.NotReady"/> - The fence is unsignaled</para>
            </summary>
            <returns><see cref="F:VulkanCore.Result.Success"/> if the fence is signaled; otherwise <see cref="F:VulkanCore.Result.NotReady"/>.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Fence.Reset">
            <summary>
            Resets the fence object.
            <para>Defines a fence unsignal operation, which resets the fence to the unsignaled state.</para>
            <para>
            If fence is already in the unsignaled state, then the command has no effect on that fence.
            </para>
            </summary>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Fence.Wait(System.Int64)">
            <summary>
            Wait for the fence to become signaled.
            <para>
            If the condition is satisfied when the command is called, then the command returns
            immediately. If the condition is not satisfied at the time the command is called, then
            the command will block and wait up to timeout nanoseconds for the condition to become satisfied.
            </para>
            </summary>
            <param name="timeout">
            The timeout period in units of nanoseconds. Timeout is adjusted to the closest value
            allowed by the implementation-dependent timeout accuracy, which may be substantially
            longer than one nanosecond, and may be longer than the requested period.
            <para>
            If timeout is zero, then the command does not wait, but simply returns the current state
            of the fences. The result <see cref="F:VulkanCore.Result.Timeout"/> will be thrown in this case if the
            condition is not satisfied, even though no actual wait was performed.
            </para>
            <para>
            If the specified timeout period expires before the condition is satisfied, the command
            throws with <see cref="F:VulkanCore.Result.Timeout"/>. If the condition is satisfied before timeout
            nanoseconds has expired, the command returns successfully.
            </para>
            </param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Fence.Dispose">
            <summary>
            Destroy a fence object.
            </summary>
        </member>
        <member name="T:VulkanCore.FenceCreateInfo">
            <summary>
            Structure specifying parameters of a newly created fence.
            </summary>
        </member>
        <member name="F:VulkanCore.FenceCreateInfo.Flags">
            <summary>
            Specifies the initial state and behavior of the fence.
            </summary>
        </member>
        <member name="M:VulkanCore.FenceCreateInfo.#ctor(VulkanCore.FenceCreateFlags)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.FenceCreateInfo"/> structure.
            </summary>
            <param name="flags">Specifies the initial state and behavior of the fence.</param>
        </member>
        <member name="T:VulkanCore.FenceCreateFlags">
            <summary>
            Bitmask specifying initial state and behavior of a fence.
            </summary>
        </member>
        <member name="F:VulkanCore.FenceCreateFlags.None">
            <summary>
            Specifies that the fence object is created in the unsignaled state.
            </summary>
        </member>
        <member name="F:VulkanCore.FenceCreateFlags.Signaled">
            <summary>
            Specifies that the fence object is created in the signaled state. Otherwise, it is
            created in the unsignaled state.
            </summary>
        </member>
        <member name="T:VulkanCore.Format">
            <summary>
            Available image formats.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Undefined">
            <summary>
            Indicates that the format is not specified.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R4G4UNormPack8">
            <summary>
            Specifies a two-component, 8-bit packed unsigned normalized format that has a 4-bit R
            component in bits 4..7, and a 4-bit G component in bits 0..3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R4G4B4A4UNormPack16">
            <summary>
            Specifies a four-component, 16-bit packed unsigned normalized format that has a 4-bit R
            component in bits 12..15, a 4-bit G component in bits 8..11, a 4-bit B component in bits
            4..7, and a 4-bit A component in bits 0..3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B4G4R4A4UNormPack16">
            <summary>
            Specifies a four-component, 16-bit packed unsigned normalized format that has a 4-bit B
            component in bits 12..15, a 4-bit G component in bits 8..11, a 4-bit R component in bits
            4..7, and a 4-bit A component in bits 0..3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R5G6B5UNormPack16">
            <summary>
            Specifies a three-component, 16-bit packed unsigned normalized format that has a 5-bit R
            component in bits 11..15, a 6-bit G component in bits 5..10, and a 5-bit B component in
            bits 0..4.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B5G6R5UNormPack16">
            <summary>
            Specifies a three-component, 16-bit packed unsigned normalized format that has a 5-bit B
            component in bits 11..15, a 6-bit G component in bits 5..10, and a 5-bit R component in
            bits 0..4.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R5G5B5A1UNormPack16">
            <summary>
            Specifies a four-component, 16-bit packed unsigned normalized format that has a 5-bit R
            component in bits 11..15, a 5-bit G component in bits 6..10, a 5-bit B component in bits
            1..5, and a 1-bit A component in bit 0.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B5G5R5A1UNormPack16">
            <summary>
            Specifies a four-component, 16-bit packed unsigned normalized format that has a 5-bit B
            component in bits 11..15, a 5-bit G component in bits 6..10, a 5-bit R component in bits
            1..5, and a 1-bit A component in bit 0.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A1R5G5B5UNormPack16">
            <summary>
            Specifies a four-component, 16-bit packed unsigned normalized format that has a 1-bit A
            component in bit 15, a 5-bit R component in bits 10..14, a 5-bit G component in bits
            5..9, and a 5-bit B component in bits 0..4.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8UNorm">
            <summary>
            Specifies a one-component, 8-bit unsigned normalized format that has a single 8-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8SNorm">
            <summary>
            Specifies a one-component, 8-bit signed normalized format that has a single 8-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8UScaled">
            <summary>
            Specifies a one-component, 8-bit unsigned scaled integer format that has a single 8-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8SScaled">
            <summary>
            Specifies a one-component, 8-bit signed scaled integer format that has a single 8-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8UInt">
            <summary>
            Specifies a one-component, 8-bit unsigned integer format that has a single 8-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8SInt">
            <summary>
            Specifies a one-component, 8-bit signed integer format that has a single 8-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8SRgb">
            <summary>
            Specifies a one-component, 8-bit unsigned normalized format that has a single 8-bit R
            component stored with sRGB nonlinear encoding.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8UNorm">
            <summary>
            Specifies a two-component, 16-bit unsigned normalized format that has an 8-bit R
            component in byte 0, and an 8-bit G component in byte 1.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8SNorm">
            <summary>
            Specifies a two-component, 16-bit signed normalized format that has an 8-bit R component
            in byte 0, and an 8-bit G component in byte 1.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8UScaled">
            <summary>
            Specifies a two-component, 16-bit unsigned scaled integer format that has an 8-bit R
            component in byte 0, and an 8-bit G component in byte 1.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8SScaled">
            <summary>
            Specifies a two-component, 16-bit signed scaled integer format that has an 8-bit R
            component in byte 0, and an 8-bit G component in byte 1.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8UInt">
            <summary>
            Specifies a two-component, 16-bit unsigned integer format that has an 8-bit R component
            in byte 0, and an 8-bit G component in byte 1.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8SInt">
            <summary>
            Specifies a two-component, 16-bit signed integer format that has an 8-bit R component in
            byte 0, and an 8-bit G component in byte 1.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8SRgb">
            <summary>
            Specifies a two-component, 16-bit unsigned normalized format that has an 8-bit R
            component stored with sRGB nonlinear encoding in byte 0, and an 8-bit G component stored
            with sRGB nonlinear encoding in byte 1.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8UNorm">
            <summary>
            Specifies a three-component, 24-bit unsigned normalized format that has an 8-bit R
            component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8SNorm">
            <summary>
            Specifies a three-component, 24-bit signed normalized format that has an 8-bit R
            component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8UScaled">
            <summary>
            Specifies a three-component, 24-bit unsigned scaled format that has an 8-bit R component
            in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8SScaled">
            <summary>
            Specifies a three-component, 24-bit signed scaled format that has an 8-bit R component in
            byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8UInt">
            <summary>
            Specifies a three-component, 24-bit unsigned integer format that has an 8-bit R component
            in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8SInt">
            <summary>
            Specifies a three-component, 24-bit signed integer format that has an 8-bit R component
            in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8SRgb">
            <summary>
            Specifies a three-component, 24-bit unsigned normalized format that has an 8-bit R
            component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with
            sRGB nonlinear encoding in byte 1, and an 8-bit B component stored with sRGB nonlinear
            encoding in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8UNorm">
            <summary>
            Specifies a three-component, 24-bit unsigned normalized format that has an 8-bit B
            component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8SNorm">
            <summary>
            Specifies a three-component, 24-bit signed normalized format that has an 8-bit B
            component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8UScaled">
            <summary>
            Specifies a three-component, 24-bit unsigned scaled format that has an 8-bit B component
            in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8SScaled">
            <summary>
            Specifies a three-component, 24-bit signed scaled format that has an 8-bit B component in
            byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8UInt">
            <summary>
            Specifies a three-component, 24-bit unsigned integer format that has an 8-bit B component
            in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8SInt">
            <summary>
            Specifies a three-component, 24-bit signed integer format that has an 8-bit B component
            in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8SRgb">
            <summary>
            Specifies a three-component, 24-bit unsigned normalized format that has an 8-bit B
            component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with
            sRGB nonlinear encoding in byte 1, and an 8-bit R component stored with sRGB nonlinear
            encoding in byte 2.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8A8UNorm">
            <summary>
            Specifies a four-component, 32-bit unsigned normalized format that has an 8-bit R
            component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and
            an 8-bit A component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8A8SNorm">
            <summary>
            Specifies a four-component, 32-bit signed normalized format that has an 8-bit R component
            in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A
            component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8A8UScaled">
            <summary>
            Specifies a four-component, 32-bit unsigned scaled format that has an 8-bit R component
            in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A
            component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8A8SScaled">
            <summary>
            Specifies a four-component, 32-bit signed scaled format that has an 8-bit R component in
            byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A
            component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8A8UInt">
            <summary>
            Specifies a four-component, 32-bit unsigned integer format that has an 8-bit R component
            in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A
            component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8A8SInt">
            <summary>
            Specifies a four-component, 32-bit signed integer format that has an 8-bit R component in
            byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A
            component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R8G8B8A8SRgb">
            <summary>
            Specifies a four-component, 32-bit unsigned normalized format that has an 8-bit R
            component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with
            sRGB nonlinear encoding in byte 1, an 8-bit B component stored with sRGB nonlinear
            encoding in byte 2, and an 8-bit A component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8A8UNorm">
            <summary>
            Specifies a four-component, 32-bit unsigned normalized format that has an 8-bit B
            component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and
            an 8-bit A component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8A8SNorm">
            <summary>
            Specifies a four-component, 32-bit signed normalized format that has an 8-bit B component
            in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A
            component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8A8UScaled">
            <summary>
            Specifies a four-component, 32-bit unsigned scaled format that has an 8-bit B component
            in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A
            component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8A8SScaled">
            <summary>
            Specifies a four-component, 32-bit signed scaled format that has an 8-bit B component in
            byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A
            component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8A8UInt">
            <summary>
            Specifies a four-component, 32-bit unsigned integer format that has an 8-bit B component
            in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A
            component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8A8SInt">
            <summary>
            Specifies a four-component, 32-bit signed integer format that has an 8-bit B component in
            byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A
            component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B8G8R8A8SRgb">
            <summary>
            Specifies a four-component, 32-bit unsigned normalized format that has an 8-bit B
            component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with
            sRGB nonlinear encoding in byte 1, an 8-bit R component stored with sRGB nonlinear
            encoding in byte 2, and an 8-bit A component in byte 3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A8B8G8R8UNormPack32">
            <summary>
            Specifies a four-component, 32-bit packed unsigned normalized format that has an 8-bit A
            component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in
            bits 8..15, and an 8-bit R component in bits 0..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A8B8G8R8SNormPack32">
            <summary>
            Specifies a four-component, 32-bit packed signed normalized format that has an 8-bit A
            component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in
            bits 8..15, and an 8-bit R component in bits 0..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A8B8G8R8UScaledPack32">
            <summary>
            Specifies a four-component, 32-bit packed unsigned scaled integer format that has an
            8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G
            component in bits 8..15, and an 8-bit R component in bits 0..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A8B8G8R8SScaledPack32">
            <summary>
            Specifies a four-component, 32-bit packed signed scaled integer format that has an 8-bit
            A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in
            bits 8..15, and an 8-bit R component in bits 0..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A8B8G8R8UIntPack32">
            <summary>
            Specifies a four-component, 32-bit packed unsigned integer format that has an 8-bit A
            component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in
            bits 8..15, and an 8-bit R component in bits 0..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A8B8G8R8SIntPack32">
            <summary>
            Specifies a four-component, 32-bit packed signed integer format that has an 8-bit A
            component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in
            bits 8..15, and an 8-bit R component in bits 0..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A8B8G8R8SRgbPack32">
            <summary>
            Specifies a four-component, 32-bit packed unsigned normalized format that has an 8-bit A
            component in bits 24..31, an 8-bit B component stored with sRGB nonlinear encoding in
            bits 16..23, an 8-bit G component stored with sRGB nonlinear encoding in bits 8..15, and
            an 8-bit R component stored with sRGB nonlinear encoding in bits 0..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A2R10G10B10UNormPack32">
            <summary>
            Specifies a four-component, 32-bit packed unsigned normalized format that has a 2-bit A
            component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in
            bits 10..19, and a 10-bit B component in bits 0..9.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A2R10G10B10SNormPack32">
            <summary>
            Specifies a four-component, 32-bit packed signed normalized format that has a 2-bit A
            component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in
            bits 10..19, and a 10-bit B component in bits 0..9.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A2R10G10B10UScaledPack32">
            <summary>
            Specifies a four-component, 32-bit packed unsigned scaled integer format that has a 2-bit
            A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in
            bits 10..19, and a 10-bit B component in bits 0..9.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A2R10G10B10SScaledPack32">
            <summary>
            Specifies a four-component, 32-bit packed signed scaled integer format that has a 2-bit A
            component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in
            bits 10..19, and a 10-bit B component in bits 0..9.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A2R10G10B10UIntPack32">
            <summary>
            Specifies a four-component, 32-bit packed unsigned integer format that has a 2-bit A
            component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in
            bits 10..19, and a 10-bit B component in bits 0..9.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A2R10G10B10SIntPack32">
            <summary>
            Specifies a four-component, 32-bit packed signed integer format that has a 2-bit A
            component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in
            bits 10..19, and a 10-bit B component in bits 0..9.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A2B10G10R10UNormPack32">
            <summary>
            Specifies a four-component, 32-bit packed unsigned normalized format that has a 2-bit A
            component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in
            bits 10..19, and a 10-bit R component in bits 0..9.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A2B10G10R10SNormPack32">
            <summary>
            Specifies a four-component, 32-bit packed signed normalized format that has a 2-bit A
            component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in
            bits 10..19, and a 10-bit R component in bits 0..9.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A2B10G10R10UScaledPack32">
            <summary>
            Specifies a four-component, 32-bit packed unsigned scaled integer format that has a 2-bit
            A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in
            bits 10..19, and a 10-bit R component in bits 0..9.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A2B10G10R10SScaledPack32">
            <summary>
            Specifies a four-component, 32-bit packed signed scaled integer format that has a 2-bit A
            component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in
            bits 10..19, and a 10-bit R component in bits 0..9.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A2B10G10R10UIntPack32">
            <summary>
            Specifies a four-component, 32-bit packed unsigned integer format that has a 2-bit A
            component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in
            bits 10..19, and a 10-bit R component in bits 0..9.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.A2B10G10R10SIntPack32">
            <summary>
            Specifies a four-component, 32-bit packed signed integer format that has a 2-bit A
            component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in
            bits 10..19, and a 10-bit R component in bits 0..9.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16UNorm">
            <summary>
            Specifies a one-component, 16-bit unsigned normalized format that has a single 16-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16SNorm">
            <summary>
            Specifies a one-component, 16-bit signed normalized format that has a single 16-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16UScaled">
            <summary>
            Specifies a one-component, 16-bit unsigned scaled integer format that has a single 16-bit
            R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16SScaled">
            <summary>
            Specifies a one-component, 16-bit signed scaled integer format that has a single 16-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16UInt">
            <summary>
            Specifies a one-component, 16-bit unsigned integer format that has a single 16-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16SInt">
            <summary>
            Specifies a one-component, 16-bit signed integer format that has a single 16-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16SFloat">
            <summary>
            Specifies a one-component, 16-bit signed floating-point format that has a single 16-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16UNorm">
            <summary>
            Specifies a two-component, 32-bit unsigned normalized format that has a 16-bit R
            component in bytes 0..1, and a 16-bit G component in bytes 2..3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16SNorm">
            <summary>
            Specifies a two-component, 32-bit signed normalized format that has a 16-bit R component
            in bytes 0..1, and a 16-bit G component in bytes 2..3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16UScaled">
            <summary>
            Specifies a two-component, 32-bit unsigned scaled integer format that has a 16-bit R
            component in bytes 0..1, and a 16-bit G component in bytes 2..3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16SScaled">
            <summary>
            Specifies a two-component, 32-bit signed scaled integer format that has a 16-bit R
            component in bytes 0..1, and a 16-bit G component in bytes 2..3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16UInt">
            <summary>
            Specifies a two-component, 32-bit unsigned integer format that has a 16-bit R component
            in bytes 0..1, and a 16-bit G component in bytes 2..3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16SInt">
            <summary>
            Specifies a two-component, 32-bit signed integer format that has a 16-bit R component in
            bytes 0..1, and a 16-bit G component in bytes 2..3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16SFloat">
            <summary>
            Specifies a two-component, 32-bit signed floating-point format that has a 16-bit R
            component in bytes 0..1, and a 16-bit G component in bytes 2..3.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16UNorm">
            <summary>
            Specifies a three-component, 48-bit unsigned normalized format that has a 16-bit R
            component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in
            bytes 4..5.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16SNorm">
            <summary>
            Specifies a three-component, 48-bit signed normalized format that has a 16-bit R
            component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in
            bytes 4..5.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16UScaled">
            <summary>
            Specifies a three-component, 48-bit unsigned scaled integer format that has a 16-bit R
            component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in
            bytes 4..5.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16SScaled">
            <summary>
            Specifies a three-component, 48-bit signed scaled integer format that has a 16-bit R
            component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in
            bytes 4..5.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16UInt">
            <summary>
            Specifies a three-component, 48-bit unsigned integer format that has a 16-bit R component
            in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16SInt">
            <summary>
            Specifies a three-component, 48-bit signed integer format that has a 16-bit R component
            in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16SFloat">
            <summary>
            Specifies a three-component, 48-bit signed floating-point format that has a 16-bit R
            component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in
            bytes 4..5.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16A16UNorm">
            <summary>
            Specifies a four-component, 64-bit unsigned normalized format that has a 16-bit R
            component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in
            bytes 4..5, and a 16-bit A component in bytes 6..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16A16SNorm">
            <summary>
            Specifies a four-component, 64-bit signed normalized format that has a 16-bit R component
            in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5,
            and a 16-bit A component in bytes 6..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16A16UScaled">
            <summary>
            Specifies a four-component, 64-bit unsigned scaled integer format that has a 16-bit R
            component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in
            bytes 4..5, and a 16-bit A component in bytes 6..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16A16SScaled">
            <summary>
            Specifies a four-component, 64-bit signed scaled integer format that has a 16-bit R
            component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in
            bytes 4..5, and a 16-bit A component in bytes 6..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16A16UInt">
            <summary>
            Specifies a four-component, 64-bit unsigned integer format that has a 16-bit R component
            in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5,
            and a 16-bit A component in bytes 6..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16A16SInt">
            <summary>
            Specifies a four-component, 64-bit signed integer format that has a 16-bit R component in
            bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a
            16-bit A component in bytes 6..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R16G16B16A16SFloat">
            <summary>
            Specifies a four-component, 64-bit signed floating-point format that has a 16-bit R
            component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in
            bytes 4..5, and a 16-bit A component in bytes 6..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R32UInt">
            <summary>
            Specifies a one-component, 32-bit unsigned integer format that has a single 32-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R32SInt">
            <summary>
            Specifies a one-component, 32-bit signed integer format that has a single 32-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R32SFloat">
            <summary>
            Specifies a one-component, 32-bit signed floating-point format that has a single 32-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R32G32UInt">
            <summary>
            Specifies a two-component, 64-bit unsigned integer format that has a 32-bit R component
            in bytes 0..3, and a 32-bit G component in bytes 4..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R32G32SInt">
            <summary>
            Specifies a two-component, 64-bit signed integer format that has a 32-bit R component in
            bytes 0..3, and a 32-bit G component in bytes 4..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R32G32SFloat">
            <summary>
            Specifies a two-component, 64-bit signed floating-point format that has a 32-bit R
            component in bytes 0..3, and a 32-bit G component in bytes 4..7.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R32G32B32UInt">
            <summary>
            Specifies a three-component, 96-bit unsigned integer format that has a 32-bit R component
            in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R32G32B32SInt">
            <summary>
            Specifies a three-component, 96-bit signed integer format that has a 32-bit R component
            in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R32G32B32SFloat">
            <summary>
            Specifies a three-component, 96-bit signed floating-point format that has a 32-bit R
            component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in
            bytes 8..11.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R32G32B32A32UInt">
            <summary>
            Specifies a four-component, 128-bit unsigned integer format that has a 32-bit R component
            in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11,
            and a 32-bit A component in bytes 12..15.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R32G32B32A32SInt">
            <summary>
            Specifies a four-component, 128-bit signed integer format that has a 32-bit R component
            in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11,
            and a 32-bit A component in bytes 12..15.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R32G32B32A32SFloat">
            <summary>
            Specifies a four-component, 128-bit signed floating-point format that has a 32-bit R
            component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in
            bytes 8..11, and a 32-bit A component in bytes 12..15.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R64UInt">
            <summary>
            Specifies a one-component, 64-bit unsigned integer format that has a single 64-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R64SInt">
            <summary>
            Specifies a one-component, 64-bit signed integer format that has a single 64-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R64SFloat">
            <summary>
            Specifies a one-component, 64-bit signed floating-point format that has a single 64-bit R component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R64G64UInt">
            <summary>
            Specifies a two-component, 128-bit unsigned integer format that has a 64-bit R component
            in bytes 0..7, and a 64-bit G component in bytes 8..15.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R64G64SInt">
            <summary>
            Specifies a two-component, 128-bit signed integer format that has a 64-bit R component in
            bytes 0..7, and a 64-bit G component in bytes 8..15.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R64G64SFloat">
            <summary>
            Specifies a two-component, 128-bit signed floating-point format that has a 64-bit R
            component in bytes 0..7, and a 64-bit G component in bytes 8..15.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R64G64B64UInt">
            <summary>
            Specifies a three-component, 192-bit unsigned integer format that has a 64-bit R
            component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in
            bytes 16..23.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R64G64B64SInt">
            <summary>
            Specifies a three-component, 192-bit signed integer format that has a 64-bit R component
            in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R64G64B64SFloat">
            <summary>
            Specifies a three-component, 192-bit signed floating-point format that has a 64-bit R
            component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in
            bytes 16..23.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R64G64B64A64UInt">
            <summary>
            Specifies a four-component, 256-bit unsigned integer format that has a 64-bit R component
            in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23,
            and a 64-bit A component in bytes 24..31.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R64G64B64A64SInt">
            <summary>
            Specifies a four-component, 256-bit signed integer format that has a 64-bit R component
            in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23,
            and a 64-bit A component in bytes 24..31.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.R64G64B64A64SFloat">
            <summary>
            Specifies a four-component, 256-bit signed floating-point format that has a 64-bit R
            component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in
            bytes 16..23, and a 64-bit A component in bytes 24..31.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.B10G11R11UFloatPack32">
            <summary>
            Specifies a three-component, 32-bit packed unsigned floating-point format that has a
            10-bit B component in bits 22..31, an 11-bit G component in bits 11..21, an 11-bit R
            component in bits 0..10. See "fundamentals-fp10" and "fundamentals-fp11".
            </summary>
        </member>
        <member name="F:VulkanCore.Format.E5B9G9R9UFloatPack32">
            <summary>
            Specifies a three-component, 32-bit packed unsigned floating-point format that has a
            5-bit shared exponent in bits 27..31, a 9-bit B component mantissa in bits 18..26, a
            9-bit G component mantissa in bits 9..17, and a 9-bit R component mantissa in bits 0..8.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.D16UNorm">
            <summary>
            Specifies a one-component, 16-bit unsigned normalized format that has a single 16-bit
            depth component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.X8D24UNormPack32">
            <summary>
            Specifies a two-component, 32-bit format that has 24 unsigned normalized bits in the
            depth component and, optionally:, 8 bits that are unused.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.D32SFloat">
            <summary>
            Specifies a one-component, 32-bit signed floating-point format that has 32-bits in the
            depth component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.S8UInt">
            <summary>
            Specifies a one-component, 8-bit unsigned integer format that has 8-bits in the stencil component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.D16UNormS8UInt">
            <summary>
            Specifies a two-component, 24-bit format that has 16 unsigned normalized bits in the
            depth component and 8 unsigned integer bits in the stencil component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.D24UNormS8UInt">
            <summary>
            Specifies a two-component, 32-bit packed format that has 8 unsigned integer bits in the
            stencil component, and 24 unsigned normalized bits in the depth component.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.D32SFloatS8UInt">
            <summary>
            Specifies a two-component format that has 32 signed float bits in the depth component and
            8 unsigned integer bits in the stencil component. There are optionally: 24-bits that are unused.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC1RgbUNormBlock">
            <summary>
            Specifies a three-component, block-compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGB texel data. This format has no
            alpha and is considered opaque.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC1RgbSRgbBlock">
            <summary>
            Specifies a three-component, block-compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear
            encoding. This format has no alpha and is considered opaque.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC1RgbaUNormBlock">
            <summary>
            Specifies a four-component, block-compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGB texel data, and provides 1 bit
            of alpha.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC1RgbaSRgbBlock">
            <summary>
            Specifies a four-component, block-compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear
            encoding, and provides 1 bit of alpha.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC2UNormBlock">
            <summary>
            Specifies a four-component, block-compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with the first 64
            bits encoding alpha values followed by 64 bits encoding RGB values.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC2SRgbBlock">
            <summary>
            Specifies a four-component, block-compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with the first 64
            bits encoding alpha values followed by 64 bits encoding RGB values with sRGB nonlinear encoding.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC3UNormBlock">
            <summary>
            Specifies a four-component, block-compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with the first 64
            bits encoding alpha values followed by 64 bits encoding RGB values.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC3SRgbBlock">
            <summary>
            Specifies a four-component, block-compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with the first 64
            bits encoding alpha values followed by 64 bits encoding RGB values with sRGB nonlinear encoding.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC4UNormBlock">
            <summary>
            Specifies a one-component, block-compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized red texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC4SNormBlock">
            <summary>
            Specifies a one-component, block-compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of signed normalized red texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC5UNormBlock">
            <summary>
            Specifies a two-component, block-compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RG texel data with the first 64 bits
            encoding red values followed by 64 bits encoding green values.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC5SNormBlock">
            <summary>
            Specifies a two-component, block-compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of signed normalized RG texel data with the first 64 bits
            encoding red values followed by 64 bits encoding green values.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC6HUFloatBlock">
            <summary>
            Specifies a three-component, block-compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of unsigned floating-point RGB texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC6HSFloatBlock">
            <summary>
            Specifies a three-component, block-compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of signed floating-point RGB texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC7UNormBlock">
            <summary>
            Specifies a four-component, block-compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.BC7SRgbBlock">
            <summary>
            Specifies a four-component, block-compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear
            encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Etc2R8G8B8UNormBlock">
            <summary>
            Specifies a three-component, ETC2 compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGB texel data. This format has no
            alpha and is considered opaque.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Etc2R8G8B8SRgbBlock">
            <summary>
            Specifies a three-component, ETC2 compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear
            encoding. This format has no alpha and is considered opaque.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Etc2R8G8B8A1UNormBlock">
            <summary>
            Specifies a four-component, ETC2 compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGB texel data, and provides 1 bit
            of alpha.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Etc2R8G8B8A1SRgbBlock">
            <summary>
            Specifies a four-component, ETC2 compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear
            encoding, and provides 1 bit of alpha.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Etc2R8G8B8A8UNormBlock">
            <summary>
            Specifies a four-component, ETC2 compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with the first 64
            bits encoding alpha values followed by 64 bits encoding RGB values.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Etc2R8G8B8A8SRgbBlock">
            <summary>
            Specifies a four-component, ETC2 compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with the first 64
            bits encoding alpha values followed by 64 bits encoding RGB values with sRGB nonlinear
            encoding applied.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.EacR11UNormBlock">
            <summary>
            Specifies a one-component, ETC2 compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized red texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.EacR11SNormBlock">
            <summary>
            Specifies a one-component, ETC2 compressed format where each 64-bit compressed texel
            block encodes a 4x4 rectangle of signed normalized red texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.EacR11G11UNormBlock">
            <summary>
            Specifies a two-component, ETC2 compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RG texel data with the first 64 bits
            encoding red values followed by 64 bits encoding green values.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.EacR11G11SNormBlock">
            <summary>
            Specifies a two-component, ETC2 compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of signed normalized RG texel data with the first 64 bits
            encoding red values followed by 64 bits encoding green values.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc4X4UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc4X4SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 4x4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear
            encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc5X4UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 5x4 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc5X4SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 5x4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear
            encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc5X5UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 5x5 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc5X5SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 5x5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear
            encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc6X5UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 6x5 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc6X5SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 6x5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear
            encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc6X6UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 6x6 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc6X6SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 6x6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear
            encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc8X5UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes an 8x5 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc8X5SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes an 8x5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear
            encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc8X6UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes an 8x6 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc8X6SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes an 8x6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear
            encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc8X8UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes an 8x8 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc8X8SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes an 8x8 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear
            encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc10X5UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 10x5 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc10X5SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 10x5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear
            encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc10X6UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 10x6 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc10X6SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 10x6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear
            encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc10X8UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 10x8 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc10X8SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 10x8 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear
            encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc10X10UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 10x10 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc10X10SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 10x10 rectangle of unsigned normalized RGBA texel data with sRGB
            nonlinear encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc12X10UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 12x10 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc12X10SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 12x10 rectangle of unsigned normalized RGBA texel data with sRGB
            nonlinear encoding applied to the RGB components.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc12X12UNormBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 12x12 rectangle of unsigned normalized RGBA texel data.
            </summary>
        </member>
        <member name="F:VulkanCore.Format.Astc12X12SRgbBlock">
            <summary>
            Specifies a four-component, ASTC compressed format where each 128-bit compressed texel
            block encodes a 12x12 rectangle of unsigned normalized RGBA texel data with sRGB
            nonlinear encoding applied to the RGB components.
            </summary>
        </member>
        <member name="T:VulkanCore.Framebuffer">
            <summary>
            Opaque handle to a framebuffer object.
            <para>
            Render passes operate in conjunction with framebuffers. Framebuffers represent a collection
            of specific memory attachments that a render pass instance uses.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.Framebuffer.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="P:VulkanCore.Framebuffer.RenderPass">
            <summary>
            Gets the render pass the framebuffer is compatible with.
            </summary>
        </member>
        <member name="M:VulkanCore.Framebuffer.Dispose">
            <summary>
            Destroy a framebuffer object.
            </summary>
        </member>
        <member name="T:VulkanCore.FramebufferCreateInfo">
            <summary>
            Structure specifying parameters of a newly created framebuffer.
            <para>
            Image subresources used as attachments must not be used via any non-attachment usage for the
            duration of a render pass instance. This restriction means that the render pass has full
            knowledge of all uses of all of the attachments, so that the implementation is able to make
            correct decisions about when and how to perform layout transitions, when to overlap execution
            of subpasses, etc.
            </para>
            <para>
            It is legal for a subpass to use no color or depth/stencil attachments, and rather use shader
            side effects such as image stores and atomics to produce an output. In this case, the subpass
            continues to use the width, height, and layers of the framebuffer to define the dimensions of
            the rendering area, and the rasterizationSamples from each pipeline’s <see
            cref="T:VulkanCore.PipelineMultisampleStateCreateInfo"/> to define the number of samples used in
            rasterization; however, if <see cref="F:VulkanCore.PhysicalDeviceFeatures.VariableMultisampleRate"/> is
            <c>false</c>, then all pipelines to be bound with a given zero-attachment subpass must have
            the same value for <see cref="F:VulkanCore.PipelineMultisampleStateCreateInfo.RasterizationSamples"/>.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.FramebufferCreateInfo.Attachments">
            <summary>
            An array of <see cref="T:VulkanCore.ImageView"/> handles, each of which will be used as the
            corresponding attachment in a render pass instance.
            </summary>
        </member>
        <member name="F:VulkanCore.FramebufferCreateInfo.Width">
            <summary>
            Dimension of the framebuffer.
            <para>Must be less than or equal to <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxFramebufferWidth"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.FramebufferCreateInfo.Height">
            <summary>
            Dimension of the framebuffer.
            <para>Must be less than or equal to <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxFramebufferHeight"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.FramebufferCreateInfo.Layers">
            <summary>
            Dimension of the framebuffer.
            <para>Must be less than or equal to <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxFramebufferLayers"/>.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.FramebufferCreateInfo.#ctor(VulkanCore.ImageView[],System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.FramebufferCreateInfo"/> structure.
            </summary>
            <param name="attachments">
            An array of <see cref="T:VulkanCore.ImageView"/> handles, each of which will be used as the
            corresponding attachment in a render pass instance.
            </param>
            <param name="width">Dimension of the framebuffer.</param>
            <param name="height">Dimension of the framebuffer.</param>
            <param name="layers">Dimension of the framebuffer.</param>
        </member>
        <member name="T:VulkanCore.Google.SwapchainKhrExtensions">
            <summary>
            Provides Google specific extension methods for the <see cref="T:VulkanCore.Khr.SwapchainKhr"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Google.SwapchainKhrExtensions.GetRefreshCycleDurationGoogle(VulkanCore.Khr.SwapchainKhr)">
            <summary>
            Obtain the RC duration of the PE's display.
            </summary>
            <param name="swapchain">The swapchain to obtain the refresh duration for.</param>
            <returns>An instance of the <see cref="T:VulkanCore.Google.RefreshCycleDurationGoogle"/> structure.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Google.SwapchainKhrExtensions.GetPastPresentationTimingGoogle(VulkanCore.Khr.SwapchainKhr)">
            <summary>
            Obtain timing of a previously-presented image.
            <para>
            The implementation will maintain a limited amount of history of timing information about
            previous presents.
            </para>
            <para>
            Because of the asynchronous nature of the presentation engine, the timing information for
            a given <see cref="M:VulkanCore.Khr.QueueExtensions.PresentKhr(VulkanCore.Queue,VulkanCore.Semaphore,VulkanCore.Khr.SwapchainKhr,System.Int32)"/>
            command will become available some time later.
            </para>
            <para>These time values can be asynchronously queried, and will be returned if available.</para>
            <para>
            All time values are in nanoseconds, relative to a monotonically-increasing clock (e.g.
            `CLOCK_MONOTONIC` (see clock_gettime(2)) on Android and Linux).
            </para>
            </summary>
            <param name="swapchain">
            The swapchain to obtain presentation timing information duration for.
            </param>
            <returns>An array of <see cref="T:VulkanCore.Google.PastPresentationTimingGoogle"/> structures.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Google.RefreshCycleDurationGoogle">
            <summary>
            Structure containing the RC duration of a display.
            </summary>
        </member>
        <member name="F:VulkanCore.Google.RefreshCycleDurationGoogle.RefreshDuration">
            <summary>
            The number of nanoseconds from the start of one refresh cycle to the next.
            </summary>
        </member>
        <member name="T:VulkanCore.Google.PastPresentationTimingGoogle">
            <summary>
            Structure containing timing information about a previously-presented image.
            </summary>
        </member>
        <member name="F:VulkanCore.Google.PastPresentationTimingGoogle.PresentId">
            <summary>
            An application-provided value that was given to a previous <see
            cref="M:VulkanCore.Khr.QueueExtensions.PresentKhr(VulkanCore.Queue,VulkanCore.Khr.PresentInfoKhr)"/> command via <see
            cref="F:VulkanCore.Google.PastPresentationTimingGoogle.PresentId"/> (see below). It can be used to uniquely identify a previous present
            with the flink:vkQueuePresentKHR command.
            </summary>
        </member>
        <member name="F:VulkanCore.Google.PastPresentationTimingGoogle.DesiredPresentTime">
            <summary>
            An application-provided value that was given to a previous <see
            cref="M:VulkanCore.Khr.QueueExtensions.PresentKhr(VulkanCore.Queue,VulkanCore.Khr.PresentInfoKhr)"/> command via <see
            cref="F:VulkanCore.Google.PastPresentationTimingGoogle.DesiredPresentTime"/>. If non-zero, it was used by the application to indicate that
            an image not be presented any sooner than <see cref="F:VulkanCore.Google.PastPresentationTimingGoogle.DesiredPresentTime"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Google.PastPresentationTimingGoogle.ActualPresentTime">
            <summary>
            The time when the image of the swapchain was actually displayed.
            </summary>
        </member>
        <member name="F:VulkanCore.Google.PastPresentationTimingGoogle.EarliestPresentTime">
            <summary>
            The time when the image of the swapchain could have been displayed. This may differ from
            <see cref="F:VulkanCore.Google.PastPresentationTimingGoogle.ActualPresentTime"/> if the application requested that the image be presented
            no sooner than <see cref="F:VulkanCore.Google.PastPresentationTimingGoogle.DesiredPresentTime"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Google.PastPresentationTimingGoogle.PresentMargin">
            <summary>
            An indication of how early the <see cref="M:VulkanCore.Khr.QueueExtensions.PresentKhr(VulkanCore.Queue,VulkanCore.Khr.PresentInfoKhr)"/>
            command was processed compared to how soon it needed to be processed, and still be
            presented at <see cref="F:VulkanCore.Google.PastPresentationTimingGoogle.EarliestPresentTime"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Google.PresentTimesInfoGoogle">
            <summary>
            The earliest time each image should be presented.
            </summary>
        </member>
        <member name="F:VulkanCore.Google.PresentTimesInfoGoogle.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Google.PresentTimesInfoGoogle.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Google.PresentTimesInfoGoogle.SwapchainCount">
            <summary>
            The number of swapchains being presented to by this command.
            </summary>
        </member>
        <member name="F:VulkanCore.Google.PresentTimesInfoGoogle.Times">
            <summary>
            Is <c>null</c> or a pointer to an array of <see cref="T:VulkanCore.Google.PresentTimeGoogle"/> elements with
            <see cref="F:VulkanCore.Google.PresentTimesInfoGoogle.SwapchainCount"/> entries. If not <c>null</c>, each element of <see
            cref="F:VulkanCore.Google.PresentTimesInfoGoogle.Times"/> contains the earliest time to present the image corresponding to the entry
            in the <see cref="F:VulkanCore.Khr.PresentInfoKhr.ImageIndices"/> array.
            </summary>
        </member>
        <member name="T:VulkanCore.Google.PresentTimeGoogle">
            <summary>
            The earliest time image should be presented.
            </summary>
        </member>
        <member name="F:VulkanCore.Google.PresentTimeGoogle.PresentId">
            <summary>
            An application-provided identification value, that can be used with the results of <see
            cref="M:VulkanCore.Google.SwapchainKhrExtensions.GetPastPresentationTimingGoogle(VulkanCore.Khr.SwapchainKhr)"/>, in order to uniquely
            identify this present. In order to be useful to the application, it should be unique
            within some period of time that is meaningful to the application.
            </summary>
        </member>
        <member name="F:VulkanCore.Google.PresentTimeGoogle.DesiredPresentTime">
            <summary>
            Indicates that the image given should not be displayed to the user any earlier than this
            time. <see cref="F:VulkanCore.Google.PresentTimeGoogle.DesiredPresentTime"/> is a time in nanoseconds, relative to a
            monotonically-increasing clock (e.g. `CLOCKMONOTONIC` (see ClockGettime(2)) on Android
            and Linux). A value of zero indicates that the presentation engine may display the image
            at any time. This is useful when the application desires to provide presentID, but
            doesn't need a specific <see cref="F:VulkanCore.Google.PresentTimeGoogle.DesiredPresentTime"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.VulkanHandle`1">
            <summary>
            Handle to an unmanaged Vulkan resource.
            </summary>
            <typeparam name="THandle">Handle type.</typeparam>
        </member>
        <member name="P:VulkanCore.VulkanHandle`1.Handle">
            <summary>
            Gets the handle to the unmanaged Vulkan resource.
            </summary>
        </member>
        <member name="M:VulkanCore.VulkanHandle`1.op_Implicit(VulkanCore.VulkanHandle{`0})~`0">
            <summary>
            Implicitly converts an instance of <see cref="T:VulkanCore.VulkanHandle`1"/> to its handle type.
            </summary>
            <param name="value">Instance to convert.</param>
        </member>
        <member name="T:VulkanCore.DisposableHandle`1">
            <summary>
            <see cref="T:VulkanCore.VulkanHandle`1"/> that implements dispose pattern as described in
            https://msdn.microsoft.com/en-us/library/b1yfkh5e%28v=vs.110%29.aspx and stores an allocator.
            </summary>
            <typeparam name="THandle">Handle type.</typeparam>
        </member>
        <member name="M:VulkanCore.DisposableHandle`1.Finalize">
            <summary>
            Allows the object to free unmanaged resources before it is reclaimed by garbage collection.
            </summary>
        </member>
        <member name="P:VulkanCore.DisposableHandle`1.Allocator">
            <summary>
            Gets the memory allocator for the resource. This may be <c>null</c>.
            </summary>
        </member>
        <member name="P:VulkanCore.DisposableHandle`1.Disposed">
            <summary>
            Gets if the instance is disposed.
            </summary>
        </member>
        <member name="M:VulkanCore.DisposableHandle`1.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting resources.
            </summary>
        </member>
        <member name="T:VulkanCore.VulkanHandleExtensions">
            <summary>
            Provides extensions methods for the <see cref="T:VulkanCore.VulkanHandle`1"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.VulkanHandleExtensions.ToHandleArray(System.Collections.Generic.IEnumerable{VulkanCore.VulkanHandle{System.IntPtr}})">
            <summary>
            Creates an array of pointers from the sequence of <see cref="T:VulkanCore.VulkanHandle`1"/> types.
            </summary>
            <param name="values">A sequence to create an array from.</param>
            <returns>An array that contains the pointers to the input handles.</returns>
        </member>
        <member name="M:VulkanCore.VulkanHandleExtensions.ToHandleArray(System.Collections.Generic.IEnumerable{VulkanCore.VulkanHandle{System.Int64}})">
            <summary>
            Creates an array of pointers from the sequence of <see cref="T:VulkanCore.VulkanHandle`1"/> types.
            </summary>
            <param name="values">A sequence to create an array from.</param>
            <returns>An array that contains the pointers to the input handles.</returns>
        </member>
        <member name="T:VulkanCore.Image">
            <summary>
            Opaque handle to a image object.
            <para>
            Images represent multidimensional - up to 3 - arrays of data which can be used for various
            purposes (e.g. attachments, textures), by binding them to a graphics or compute pipeline via
            descriptor sets, or by directly specifying them as parameters to certain commands.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.Image.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Image.BindMemory(VulkanCore.DeviceMemory,System.Int64)">
            <summary>
            Bind device memory to an image object.
            </summary>
            <param name="memory">The object describing the device memory to attach.</param>
            <param name="memoryOffset">
            The start offset of the region of memory which is to be bound to the image. The number of
            bytes returned in the <see cref="F:VulkanCore.MemoryRequirements.Size"/> member in memory, starting
            from <paramref name="memoryOffset"/> bytes, will be bound to the specified image.
            </param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Image.GetMemoryRequirements">
            <summary>
            Returns the memory requirements for the image.
            </summary>
            <returns>Memory requirements of the image object.</returns>
        </member>
        <member name="M:VulkanCore.Image.GetSubresourceLayout(VulkanCore.ImageSubresource)">
            <summary>
            Retrieve information about an image subresource.
            </summary>
            <returns>Subresource layout of an image.</returns>
        </member>
        <member name="M:VulkanCore.Image.CreateView(VulkanCore.ImageViewCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create an image view from an existing image.
            </summary>
            <param name="createInfo">
            The structure containing parameters to be used to create the image view.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Image.GetSparseMemoryRequirements">
            <summary>
            Query the memory requirements for a sparse image.
            <para>
            If the image was not created with <see cref="F:VulkanCore.ImageCreateFlags.SparseResidency"/> then the
            result will be empty.
            </para>
            </summary>
            <returns>Memory requirements for a sparse image.</returns>
        </member>
        <member name="M:VulkanCore.Image.Dispose">
            <summary>
            Destroy an image object.
            </summary>
        </member>
        <member name="T:VulkanCore.ImageCreateInfo">
            <summary>
            Structure specifying the parameters of a newly created image object.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.Flags">
            <summary>
            Bitmask describing additional parameters of the image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.ImageType">
            <summary>
            Specifies the basic dimensionality of the image.
            <para>
            Layers in array textures do not count as a dimension for the purposes of the image type.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.Format">
            <summary>
            Describes the format and type of the data elements that will be contained in the image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.Extent">
            <summary>
            Describes the number of data elements in each dimension of the base level.
            <para>The width, height, and depth members of extent must all be greater than 0.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.MipLevels">
            <summary>
            Describes the number of levels of detail available for minified sampling of the image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.ArrayLayers">
            <summary>
            The number of layers in the image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.Samples">
            <summary>
            The number of sub-data element samples in the image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.Tiling">
            <summary>
            Specifies the tiling arrangement of the data elements in memory.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.Usage">
            <summary>
            A bitmask describing the intended usage of the image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.SharingMode">
            <summary>
            Specifies the sharing mode of the image when it will be accessed by multiple queue families.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.QueueFamilyIndices">
            <summary>
            A list of queue families that will access this image (ignored if <see
            cref="F:VulkanCore.ImageCreateInfo.SharingMode"/> is not <see cref="F:VulkanCore.SharingMode.Concurrent"/>).
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateInfo.InitialLayout">
            <summary>
            Specifies the initial <see cref="T:VulkanCore.ImageLayout"/> of all image subresources of the image.
            </summary>
        </member>
        <member name="T:VulkanCore.ImageCreateFlags">
            <summary>
            Bitmask specifying additional parameters of an image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateFlags.SparseBinding">
            <summary>
            Specifies that the image will be backed using sparse memory binding.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateFlags.SparseResidency">
            <summary>
            Specifies that the image can be partially backed using sparse memory binding. Images
            created with this flag must also be created with the <see cref="F:VulkanCore.ImageCreateFlags.SparseBinding"/> flag.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateFlags.SparseAliased">
            <summary>
            Specifies that the image will be backed using sparse memory binding with memory ranges
            that might also simultaneously be backing another image (or another portion of the same
            image). Images created with this flag must also be created with the <see
            cref="F:VulkanCore.ImageCreateFlags.SparseBinding"/> flag.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateFlags.MutableFormat">
            <summary>
            Specifies that the image can be used to create an <see cref="T:VulkanCore.ImageView"/> with a
            different format from the image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateFlags.CubeCompatible">
            <summary>
            Specifies that the image can be used to create an <see cref="T:VulkanCore.ImageView"/> of type <see
            cref="F:VulkanCore.ImageViewType.ImageCube"/> or <see cref="F:VulkanCore.ImageViewType.ImageCubeArray"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateFlags.Image2DArrayCompatibleKhr">
            <summary>
            Specifies that the image can be used to create a <see cref="T:VulkanCore.ImageView"/> of type <see
            cref="F:VulkanCore.ImageViewType.Image2D"/> or <see cref="F:VulkanCore.ImageViewType.Image2DArray"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageCreateFlags.BindSfrKhx">
            <summary>
            Specifies that the image can be used with a non-zero length of the <see
            cref="F:VulkanCore.Khx.BindImageMemoryInfoKhx.SFRRects"/> member passed into <see
            cref="M:VulkanCore.Khx.DeviceExtensions.BindImageMemory2Khx(VulkanCore.Device,VulkanCore.Khx.BindImageMemoryInfoKhx[])"/>. This flag also has the effect of
            making the image use the standard sparse image block dimensions.
            </summary>
        </member>
        <member name="T:VulkanCore.ImageType">
            <summary>
            Specifies the type of an image object.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageType.Image1D">
            <summary>
            Specify a one-dimensional image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageType.Image2D">
            <summary>
            Specify a two-dimensional image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageType.Image3D">
            <summary>
            Specify a three-dimensional image.
            </summary>
        </member>
        <member name="T:VulkanCore.ImageUsages">
            <summary>
            Bitmask specifying intended usage of an image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageUsages.TransferSrc">
            <summary>
            Specifies that the image can be used as the source of a transfer command.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageUsages.TransferDst">
            <summary>
            Specifies that the image can be used as the destination of a transfer command.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageUsages.Sampled">
            <summary>
            Specifies that the image can be used to create a <see cref="T:VulkanCore.ImageView"/> suitable for
            occupying a <see cref="T:VulkanCore.DescriptorSet"/> slot either of type <see
            cref="F:VulkanCore.DescriptorType.SampledImage"/> or <see
            cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/>, and be sampled by a shader.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageUsages.Storage">
            <summary>
            Specifies that the image can be used to create a <see cref="T:VulkanCore.ImageView"/> suitable for
            occupying a <see cref="T:VulkanCore.DescriptorSet"/> slot of type <see cref="F:VulkanCore.DescriptorType.StorageImage"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageUsages.ColorAttachment">
            <summary>
            Specifies that the image can be used to create a <see cref="T:VulkanCore.ImageView"/> suitable for use
            as a color or resolve attachment in a <see cref="T:VulkanCore.Framebuffer"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageUsages.DepthStencilAttachment">
            <summary>
            Specifies that the image can be used to create a <see cref="T:VulkanCore.ImageView"/> suitable for use
            as a depth/stencil attachment in a <see cref="T:VulkanCore.Framebuffer"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageUsages.TransientAttachment">
            <summary>
            Specifies that the memory bound to this image will have been allocated with the <see
            cref="F:VulkanCore.MemoryProperties.LazilyAllocated"/>. This bit can be set for any image that can
            be used to create a <see cref="T:VulkanCore.ImageView"/> suitable for use as a color, resolve,
            depth/stencil, or input attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageUsages.InputAttachment">
            <summary>
            Specifies that the image can be used to create a <see cref="T:VulkanCore.ImageView"/> suitable for
            occupying <see cref="T:VulkanCore.DescriptorSet"/> slot of type <see
            cref="F:VulkanCore.DescriptorType.InputAttachment"/>; be read from a shader as an input attachment;
            and be used as an input attachment in a framebuffer.
            </summary>
        </member>
        <member name="T:VulkanCore.ImageLayout">
            <summary>
            Layout of image and image subresources.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageLayout.Undefined">
            <summary>
            Does not support device access. This layout must only be used as the <see
            cref="F:VulkanCore.ImageCreateInfo.InitialLayout"/> or <see
            cref="F:VulkanCore.AttachmentDescription.InitialLayout"/> member, or as the old layout in an image
            transition. When transitioning out of this layout, the contents of the memory are not
            guaranteed to be preserved.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageLayout.General">
            <summary>
            Supports all types of device access.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageLayout.ColorAttachmentOptimal">
            <summary>
            Must only be used as a color or resolve attachment in a <see cref="T:VulkanCore.Framebuffer"/>. This
            layout is valid only for image subresources of images created with the <see
            cref="F:VulkanCore.ImageUsages.ColorAttachment"/> usage bit enabled.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageLayout.DepthStencilAttachmentOptimal">
            <summary>
            Must only be used as a depth/stencil attachment in a <see cref="T:VulkanCore.Framebuffer"/>. This
            layout is valid only for image subresources of images created with the <see
            cref="F:VulkanCore.ImageUsages.DepthStencilAttachment"/> usage bit enabled.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageLayout.DepthStencilReadOnlyOptimal">
            <summary>
            Must only be used as a read-only depth/stencil attachment in a <see cref="T:VulkanCore.Framebuffer"/>
            and/or as a read-only image in a shader (which can be read as a sampled image, combined
            image/sampler and/or input attachment). This layout is valid only for image subresources
            of images created with the <see cref="F:VulkanCore.ImageUsages.DepthStencilAttachment"/> usage bit
            enabled. Only image subresources of images created with <see
            cref="F:VulkanCore.ImageUsages.Sampled"/> can be used as sampled image or combined image/sampler
            in a shader. Similarly, only image subresources of images created with <see
            cref="F:VulkanCore.ImageUsages.InputAttachment"/> can be used as input attachments.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageLayout.ShaderReadOnlyOptimal">
            <summary>
            Must only be used as a read-only image in a shader (which can be read as a sampled image,
            combined image/sampler and/or input attachment). This layout is valid only for image
            subresources of images created with the <see cref="F:VulkanCore.ImageUsages.Sampled"/> or <see
            cref="F:VulkanCore.ImageUsages.InputAttachment"/> usage bit enabled.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageLayout.TransferSrcOptimal">
            <summary>
            Must only be used as a source image of a transfer command (see the definition of <see
            cref="F:VulkanCore.PipelineStages.Transfer"/>. This layout is valid only for image subresources of
            images created with the <see cref="F:VulkanCore.ImageUsages.TransferSrc"/> usage bit enabled.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageLayout.TransferDstOptimal">
            <summary>
            Must only be used as a destination image of a transfer command. This layout is valid only
            for image subresources of images created with the <see
            cref="F:VulkanCore.ImageUsages.TransferDst"/> usage bit enabled.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageLayout.Preinitialized">
            <summary>
            Does not support device access. This layout must only be used as the <see
            cref="F:VulkanCore.ImageCreateInfo.InitialLayout"/> or <see
            cref="F:VulkanCore.AttachmentDescription.InitialLayout"/> member, or as the old layout in an image
            transition. When transitioning out of this layout, the contents of the memory are
            preserved. This layout is intended to be used as the initial layout for an image whose
            contents are written by the host, and hence the data can be written to memory
            immediately, without first executing a layout transition. Currently, <see
            cref="F:VulkanCore.ImageLayout.Preinitialized"/> is only useful with <see cref="F:VulkanCore.ImageTiling.Linear"/> images
            because there is not a standard layout defined for <see cref="F:VulkanCore.ImageTiling.Optimal"/> images.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageLayout.PresentSrcKhr">
            <summary>
            Must only be used for presenting a swapchain image for display. A swapchain's image must
            be transitioned to this layout before calling <see
            cref="M:VulkanCore.Khr.QueueExtensions.PresentKhr(VulkanCore.Queue,VulkanCore.Khr.PresentInfoKhr)"/>, and must be transitioned away
            from this layout after calling <see cref="F:VulkanCore.Khr.SwapchainKhr.vkAcquireNextImageKHR"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageLayout.SharedPresentKhr">
            <summary>
            Is valid only for shared presentable images, and must be used for any usage the image supports.
            </summary>
        </member>
        <member name="T:VulkanCore.AttachmentDescription">
            <summary>
            Structure specifying an attachment description.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentDescription.Flags">
            <summary>
            A bitmask specifying additional properties of the attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentDescription.Format">
            <summary>
            Specifies the format of the image that will be used for the attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentDescription.Samples">
            <summary>
            The number of samples of the image.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentDescription.LoadOp">
            <summary>
            Specifies how the contents of color and depth components of the attachment are treated at
            the beginning of the subpass where it is first used.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentDescription.StoreOp">
            <summary>
            Specifies how the contents of color and depth components of the attachment are treated at
            the end of the subpass where it is last used.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentDescription.StencilLoadOp">
            <summary>
            Specifies how the contents of stencil components of the attachment are treated at the
            beginning of the subpass where it is first used, and must be one of the same values
            allowed for <see cref="F:VulkanCore.AttachmentDescription.LoadOp"/> above.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentDescription.StencilStoreOp">
            <summary>
            Specifies how the contents of stencil components of the attachment are treated at the end
            of the last subpass where it is used, and must be one of the same values allowed for <see
            cref="F:VulkanCore.AttachmentDescription.StoreOp"/> above.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentDescription.InitialLayout">
            <summary>
            The layout the attachment image subresource will be in when a render pass instance begins.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentDescription.FinalLayout">
            <summary>
            The layout the attachment image subresource will be transitioned to when a render pass
            instance ends. During a render pass instance, an attachment can use a different layout in
            each subpass, if desired.
            </summary>
        </member>
        <member name="T:VulkanCore.AttachmentDescriptions">
            <summary>
            Bitmask specifying additional properties of an attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentDescriptions.MayAlias">
            <summary>
            Specifies that the attachment aliases the same device memory as other attachments.
            </summary>
        </member>
        <member name="T:VulkanCore.AttachmentLoadOp">
            <summary>
            Specify how contents of an attachment are treated at the beginning of a subpass.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentLoadOp.Load">
            <summary>
            Specifies that the previous contents of the image within the render area will be
            preserved. For attachments with a depth/stencil format, this uses the access type <see
            cref="F:VulkanCore.Accesses.DepthStencilAttachmentRead"/>. For attachments with a color format, this
            uses the access type <see cref="F:VulkanCore.Accesses.ColorAttachmentRead"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentLoadOp.Clear">
            <summary>
            Specifies that the contents within the render area will be cleared to a uniform value,
            which is specified when a render pass instance is begun. For attachments with a
            depth/stencil format, this uses the access type <see
            cref="F:VulkanCore.Accesses.DepthStencilAttachmentWrite"/>. For attachments with a color format, this
            uses the access type <see cref="F:VulkanCore.Accesses.ColorAttachmentWrite"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentLoadOp.DontCare">
            <summary>
            Specifies that the previous contents within the area need not be preserved; the contents
            of the attachment will be undefined inside the render area. For attachments with a
            depth/stencil format, this uses the access type <see
            cref="F:VulkanCore.Accesses.DepthStencilAttachmentWrite"/>. For attachments with a color format, this
            uses the access type <see cref="F:VulkanCore.Accesses.ColorAttachmentWrite"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.AttachmentStoreOp">
            <summary>
            Specify how contents of an attachment are treated at the end of a subpass.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentStoreOp.Store">
            <summary>
            Specifies the contents generated during the render pass and within the render area are
            written to memory. For attachments with a depth/stencil format, this uses the access type
            <see cref="F:VulkanCore.Accesses.DepthStencilAttachmentWrite"/>. For attachments with a color format,
            this uses the access type <see cref="F:VulkanCore.Accesses.ColorAttachmentWrite"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentStoreOp.DontCare">
            <summary>
            Specifies the contents within the render area are not needed after rendering, and may be
            discarded; the contents of the attachment will be undefined inside the render area. For
            attachments with a depth/stencil format, this uses the access type <see
            cref="F:VulkanCore.Accesses.DepthStencilAttachmentWrite"/>. For attachments with a color format, this
            uses the access type <see cref="F:VulkanCore.Accesses.ColorAttachmentWrite"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.ImageFormatProperties">
            <summary>
            Structure specifying a image format properties.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageFormatProperties.MaxExtent">
            <summary>
            Are the maximum image dimensions.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageFormatProperties.MaxMipLevels">
            <summary>
            The maximum number of mipmap levels. Must either be equal to 1 (valid only if tiling is
            <see cref="F:VulkanCore.ImageTiling.Linear"/>) or be equal to `ceil(log2(max(width, height, depth))) +
            1`. Width, height and depth are taken from the corresponding members of <see cref="F:VulkanCore.ImageFormatProperties.MaxExtent"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageFormatProperties.MaxArrayLayers">
            <summary>
            The maximum number of array layers. Must either be equal to 1 or be greater than or equal
            to the <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxImageArrayLayers"/> member. A value of 1 is
            valid only if tiling is <see cref="F:VulkanCore.ImageTiling.Linear"/> or if type is <see cref="F:VulkanCore.ImageType.Image3D"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageFormatProperties.SampleCounts">
            <summary>
            A bitmask of <see cref="T:VulkanCore.SampleCounts"/> specifying all the supported sample
            counts for this image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageFormatProperties.MaxResourceSize">
            <summary>
            An upper bound on the total image size in bytes, inclusive of all image subresources.
            Implementations may have an address space limit on total size of a resource, which is
            advertised by this property. Must be at least 2^31.
            </summary>
        </member>
        <member name="T:VulkanCore.ImageSubresource">
            <summary>
            Structure specifying an image subresource.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageSubresource.AspectMask">
            <summary>
            An <see cref="T:VulkanCore.ImageAspects"/> selecting the image aspect.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageSubresource.MipLevel">
            <summary>
            Selects the mipmap level.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageSubresource.ArrayLayer">
            <summary>
            Selects the array layer.
            </summary>
        </member>
        <member name="M:VulkanCore.ImageSubresource.#ctor(VulkanCore.ImageAspects,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of <see cref="T:VulkanCore.ImageSubresource"/> structure.
            </summary>
            <param name="aspectMask">An <see cref="T:VulkanCore.ImageAspects"/> selecting the image aspect.</param>
            <param name="mipLevel">Selects the mipmap level.</param>
            <param name="arrayLayer">Selects the array layer.</param>
        </member>
        <member name="T:VulkanCore.SparseImageFormatProperties">
            <summary>
            Structure specifying sparse image format properties.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageFormatProperties.AspectMask">
            <summary>
            A bitmask specifying which aspects of the image the properties apply to.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageFormatProperties.ImageGranularity">
            <summary>
            The width, height, and depth of the sparse image block in texels or compressed texel blocks.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageFormatProperties.Flags">
            <summary>
            A bitmask specifying additional information about the sparse resource.
            </summary>
        </member>
        <member name="T:VulkanCore.SparseImageFormats">
            <summary>
            Bitmask specifying additional information about a sparse image resource.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageFormats.SingleMiptail">
            <summary>
            Specifies that the image uses a single mip tail region for all array layers.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageFormats.AlignedMipSize">
            <summary>
            Specifies that the first mip level whose dimensions are not integer multiples of the
            corresponding dimensions of the sparse image block begins the mip tail region.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageFormats.NonstandardBlockSize">
            <summary>
            Specifies that the image uses non-standard sparse image block dimensions, and the image
            granularity values do not match the standard sparse image block dimensions for the given
            pixel format.
            </summary>
        </member>
        <member name="T:VulkanCore.SparseImageMemoryRequirements">
            <summary>
            Structure specifying sparse image memory requirements.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryRequirements.FormatProperties">
            <summary>
            The sparse image format properties.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryRequirements.ImageMipTailFirstLod">
            <summary>
            The first mip level at which image subresources are included in the mip tail region.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryRequirements.ImageMipTailSize">
            <summary>
            The memory size (in bytes) of the mip tail region. If <see cref="F:VulkanCore.SparseImageMemoryRequirements.FormatProperties"/>
            contains <see cref="F:VulkanCore.SparseImageFormats.SingleMiptail"/>, this is the size of the
            whole mip tail, otherwise this is the size of the mip tail of a single array layer. This
            value is guaranteed to be a multiple of the sparse block size in bytes.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryRequirements.ImageMipTailOffset">
            <summary>
            The opaque memory offset used with <see cref="T:VulkanCore.SparseImageOpaqueMemoryBindInfo"/> to bind
            the mip tail region(s).
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryRequirements.ImageMipTailStride">
            <summary>
            The offset stride between each array-layer's mip tail, if <see cref="F:VulkanCore.SparseImageMemoryRequirements.FormatProperties"/>
            does not contain <see cref="F:VulkanCore.SparseImageFormats.SingleMiptail"/> (otherwise the value
            is undefined).
            </summary>
        </member>
        <member name="T:VulkanCore.SubresourceLayout">
            <summary>
            Structure specifying subresource layout.
            </summary>
        </member>
        <member name="F:VulkanCore.SubresourceLayout.Offset">
            <summary>
            The byte offset from the start of the image where the image subresource begins.
            </summary>
        </member>
        <member name="F:VulkanCore.SubresourceLayout.Size">
            <summary>
            The size in bytes of the image subresource. size includes any extra memory that is
            required based on <see cref="F:VulkanCore.SubresourceLayout.RowPitch"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.SubresourceLayout.RowPitch">
            <summary>
            Describes the number of bytes between each row of texels in an image.
            </summary>
        </member>
        <member name="F:VulkanCore.SubresourceLayout.ArrayPitch">
            <summary>
            Describes the number of bytes between each array layer of an image.
            </summary>
        </member>
        <member name="F:VulkanCore.SubresourceLayout.DepthPitch">
            <summary>
            Describes the number of bytes between each slice of 3D image.
            </summary>
        </member>
        <member name="T:VulkanCore.SampleCounts">
            <summary>
            Bitmask specifying sample counts supported for an image used for storage
            operations.
            </summary>
        </member>
        <member name="F:VulkanCore.SampleCounts.Count1">
            <summary>
            Specifies an image with one sample per pixel.
            </summary>
        </member>
        <member name="F:VulkanCore.SampleCounts.Count2">
            <summary>
            Specifies an image with 2 samples per pixel.
            </summary>
        </member>
        <member name="F:VulkanCore.SampleCounts.Count4">
            <summary>
            Specifies an image with 4 samples per pixel.
            </summary>
        </member>
        <member name="F:VulkanCore.SampleCounts.Count8">
            <summary>
            Specifies an image with 8 samples per pixel.
            </summary>
        </member>
        <member name="F:VulkanCore.SampleCounts.Count16">
            <summary>
            Specifies an image with 16 samples per pixel.
            </summary>
        </member>
        <member name="F:VulkanCore.SampleCounts.Count32">
            <summary>
            Specifies an image with 32 samples per pixel.
            </summary>
        </member>
        <member name="F:VulkanCore.SampleCounts.Count64">
            <summary>
            Specifies an image with 64 samples per pixel.
            </summary>
        </member>
        <member name="T:VulkanCore.ImageView">
            <summary>
            Opaque handle to a image view object.
            <para>
            Image objects are not directly accessed by pipeline shaders for reading or writing image
            data. Instead, image views representing contiguous ranges of the image subresources and
            containing additional metadata are used for that purpose. Views must be created on images of
            compatible types, and must represent a valid subset of image subresources.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.ImageView.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.ImageView.Dispose">
            <summary>
            Destroy an image view object.
            </summary>
        </member>
        <member name="T:VulkanCore.ImageViewCreateInfo">
            <summary>
            Structure specifying parameters of a newly created image view.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageViewCreateInfo.ViewType">
            <summary>
            Specifies the type of the image view.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageViewCreateInfo.Format">
            <summary>
            A <see cref="F:VulkanCore.ImageViewCreateInfo.Format"/> describing the format and type used to interpret data elements in
            the image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageViewCreateInfo.Components">
            <summary>
            Specifies a remapping of color components (or of depth or stencil components after they
            have been converted into color components).
            </summary>
        </member>
        <member name="F:VulkanCore.ImageViewCreateInfo.SubresourceRange">
            <summary>
            A range selecting the set of mipmap levels and array layers to be accessible to the view.
            <para>
            Must be a valid image subresource range for image. If image was created with the <see
            cref="F:VulkanCore.ImageCreateFlags.MutableFormat"/> flag, format must be compatible with the format
            used to create image. If image was not created with the <see
            cref="F:VulkanCore.ImageCreateFlags.MutableFormat"/> flag, format must be identical to the format used
            to create image. If image is non-sparse then it must be bound completely and contiguously
            to a single <see cref="T:VulkanCore.DeviceMemory"/> object.
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.ImageViewCreateInfo.#ctor(VulkanCore.Format,VulkanCore.ImageSubresourceRange,VulkanCore.ImageViewType,VulkanCore.ComponentMapping)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ImageViewCreateInfo"/> structure.
            </summary>
            <param name="format">
            A <see cref="F:VulkanCore.ImageViewCreateInfo.Format"/> describing the format and type used to interpret data elements in
            the image.
            </param>
            <param name="subresourceRange">
            A range selecting the set of mipmap levels and array layers to be accessible to the view.
            </param>
            <param name="viewType">Specifies the type of the image view.</param>
            <param name="components">
            Specifies a remapping of color components (or of depth or stencil components after they
            have been converted into color components).
            </param>
        </member>
        <member name="T:VulkanCore.ImageViewType">
            <summary>
            Image view types.
            </summary>
        </member>
        <member name="T:VulkanCore.ComponentMapping">
            <summary>
            Structure specifying a color component mapping.
            </summary>
        </member>
        <member name="F:VulkanCore.ComponentMapping.R">
            <summary>
            Specifies the component value placed in the R component of the output vector.
            </summary>
        </member>
        <member name="F:VulkanCore.ComponentMapping.G">
            <summary>
            Specifies the component value placed in the G component of the output vector.
            </summary>
        </member>
        <member name="F:VulkanCore.ComponentMapping.B">
            <summary>
            Specifies the component value placed in the B component of the output vector.
            </summary>
        </member>
        <member name="F:VulkanCore.ComponentMapping.A">
            <summary>
            Specifies the component value placed in the A component of the output vector.
            </summary>
        </member>
        <member name="M:VulkanCore.ComponentMapping.#ctor(VulkanCore.ComponentSwizzle,VulkanCore.ComponentSwizzle,VulkanCore.ComponentSwizzle,VulkanCore.ComponentSwizzle)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ComponentMapping"/> structure.
            </summary>
            <param name="r">
            Specifies the component value placed in the R component of the output vector.
            </param>
            <param name="g">
            Specifies the component value placed in the G component of the output vector.
            </param>
            <param name="b">
            Specifies the component value placed in the B component of the output vector.
            </param>
            <param name="a">
            Specifies the component value placed in the A component of the output vector.
            </param>
        </member>
        <member name="T:VulkanCore.ComponentSwizzle">
            <summary>
            Specify how a component is swizzled.
            </summary>
        </member>
        <member name="F:VulkanCore.ComponentSwizzle.Identity">
            <summary>
            Specifies that the component is set to the identity swizzle.
            </summary>
        </member>
        <member name="F:VulkanCore.ComponentSwizzle.Zero">
            <summary>
            Specifies that the component is set to zero.
            </summary>
        </member>
        <member name="F:VulkanCore.ComponentSwizzle.One">
            <summary>
            Specifies that the component is set to either 1 or 1.0, depending on whether the type of
            the image view format is integer or floating-point respectively.
            </summary>
        </member>
        <member name="F:VulkanCore.ComponentSwizzle.R">
            <summary>
            Specifies that the component is set to the value of the R component of the image.
            </summary>
        </member>
        <member name="F:VulkanCore.ComponentSwizzle.G">
            <summary>
            Specifies that the component is set to the value of the G component of the image.
            </summary>
        </member>
        <member name="F:VulkanCore.ComponentSwizzle.B">
            <summary>
            Specifies that the component is set to the value of the B component of the image.
            </summary>
        </member>
        <member name="F:VulkanCore.ComponentSwizzle.A">
            <summary>
            Specifies that the component is set to the value of the A component of the image.
            </summary>
        </member>
        <member name="T:VulkanCore.ImageSubresourceRange">
            <summary>
            Structure specifying a image subresource range.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageSubresourceRange.AspectMask">
            <summary>
            A bitmask specifying which aspect(s) of the image are included in the view.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageSubresourceRange.BaseMipLevel">
            <summary>
            The first mipmap level accessible to the view.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageSubresourceRange.LevelCount">
            <summary>
            The number of mipmap levels (starting from <see cref="F:VulkanCore.ImageSubresourceRange.BaseMipLevel"/>) accessible to the view.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageSubresourceRange.BaseArrayLayer">
            <summary>
            The first array layer accessible to the view.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageSubresourceRange.LayerCount">
            <summary>
            The number of array layers (starting from <see cref="F:VulkanCore.ImageSubresourceRange.BaseArrayLayer"/>) accessible to the view.
            </summary>
        </member>
        <member name="M:VulkanCore.ImageSubresourceRange.#ctor(VulkanCore.ImageAspects,System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ImageSubresourceRange"/> structure.
            </summary>
            <param name="aspectMask">
            A bitmask specifying which aspect(s) of the image are included in the view.
            </param>
            <param name="baseMipLevel">The first mipmap level accessible to the view.</param>
            <param name="levelCount">
            The number of mipmap levels (starting from <see cref="F:VulkanCore.ImageSubresourceRange.BaseMipLevel"/>) accessible to the view.
            </param>
            <param name="baseArrayLayer">The first array layer accessible to the view.</param>
            <param name="layerCount">
            The number of array layers (starting from <see cref="F:VulkanCore.ImageSubresourceRange.BaseArrayLayer"/>) accessible to the view.
            </param>
        </member>
        <member name="T:VulkanCore.ImageAspects">
            <summary>
            Bitmask specifying which aspects of an image are included in a view.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageAspects.Color">
            <summary>
            Specifies the color aspect.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageAspects.Depth">
            <summary>
            Specifies the depth aspect.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageAspects.Stencil">
            <summary>
            Specifies the stencil aspect.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageAspects.Metadata">
            <summary>
            Specifies the metadata aspect, used for sparse resource operations.
            </summary>
        </member>
        <member name="T:VulkanCore.Instance">
            <summary>
            Opaque handle to an instance object.
            <para>
            There is no global state in Vulkan and all per-application state is stored in an <see
            cref="T:VulkanCore.Instance"/> object. Creating an <see cref="T:VulkanCore.Instance"/> object initializes the Vulkan
            library and allows the application to pass information about itself to the implementation.
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.Instance.#ctor(VulkanCore.InstanceCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new Vulkan instance.
            </summary>
            <param name="createInfo">
            An instance of <see cref="T:VulkanCore.InstanceCreateInfo"/> controlling creation of the instance.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Instance.EnumeratePhysicalDevices">
            <summary>
            Enumerates the physical devices accessible to a Vulkan instance.
            </summary>
            <returns>A list of accessible physical devices. The result is never null.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Instance.GetProcAddr(System.String)">
            <summary>
            Return a function handle for a command or <see cref="F:System.IntPtr.Zero"/> if not found.
            <para>
            Vulkan commands are not necessarily exposed statically on a platform. Function pointers
            for all Vulkan commands can be obtained with this method.
            </para>
            </summary>
            <param name="name">The name of the command to obtain.</param>
            <returns>Function handle for a command or <see cref="F:System.IntPtr.Zero"/> if not found.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="name"/> is <c>null</c>.</exception>
        </member>
        <member name="M:VulkanCore.Instance.GetProc``1(System.String)">
            <summary>
            Return a function delegate for a command or <c>null</c> if not found.
            <para>
            Vulkan commands are not necessarily exposed statically on a platform. Function pointers
            for all Vulkan commands can be obtained with this method.
            </para>
            </summary>
            <param name="name">The name of the command to obtain.</param>
            <returns>Function delegate for a command or <c>null</c> if not found.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="name"/> is <c>null</c>.</exception>
        </member>
        <member name="M:VulkanCore.Instance.EnumerateExtensionProperties(System.String)">
            <summary>
            Returns global extension properties.
            </summary>
            <param name="layerName">
            Is either <c>null</c> or a unicode string naming the layer to retrieve extensions from.
            When parameter is <c>null</c>, only extensions provided by the Vulkan implementation or
            by implicitly enabled layers are returned.
            </param>
            <returns>Properties of available extensions for layer.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Instance.EnumerateLayerProperties">
            <summary>
            Returns global layer properties.
            </summary>
            <returns>Properties of available layers.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Instance.Dispose">
            <summary>
            Destroy an instance of Vulkan.
            </summary>
        </member>
        <member name="T:VulkanCore.InstanceCreateInfo">
            <summary>
            Structure specifying parameters of a newly created instance.
            </summary>
        </member>
        <member name="F:VulkanCore.InstanceCreateInfo.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.InstanceCreateInfo.ApplicationInfo">
            <summary>
            The information that helps implementations recognize behavior inherent to classes of applications.
            </summary>
        </member>
        <member name="F:VulkanCore.InstanceCreateInfo.EnabledLayerNames">
            <summary>
            Unicode strings containing the names of layers to enable for the created instance.
            </summary>
        </member>
        <member name="F:VulkanCore.InstanceCreateInfo.EnabledExtensionNames">
            <summary>
            Unicode strings containing the names of extensions to enable.
            </summary>
        </member>
        <member name="M:VulkanCore.InstanceCreateInfo.#ctor(System.Nullable{VulkanCore.ApplicationInfo},System.String[],System.String[],System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.InstanceCreateInfo"/> structure.
            </summary>
            <param name="appInfo">
            The information that helps implementations recognize behavior inherent to classes of applications.
            </param>
            <param name="enabledLayerNames">
            Unicode strings containing the names of layers to enable for the created instance.
            </param>
            <param name="enabledExtensionNames">
            Unicode strings containing the names of extensions to enable.
            </param>
            <param name="next">Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.</param>
        </member>
        <member name="T:VulkanCore.ApplicationInfo">
            <summary>
            Structure specifying application info.
            </summary>
        </member>
        <member name="F:VulkanCore.ApplicationInfo.ApplicationName">
            <summary>
            The unicode string containing the name of the application.
            </summary>
        </member>
        <member name="F:VulkanCore.ApplicationInfo.ApplicationVersion">
            <summary>
            The unsigned integer variable containing the developer-supplied version
            number of the application.
            </summary>
        </member>
        <member name="F:VulkanCore.ApplicationInfo.EngineName">
            <summary>
            The unicode string containing the name of the engine (if any) used to create the application.
            </summary>
        </member>
        <member name="F:VulkanCore.ApplicationInfo.EngineVersion">
            <summary>
            The unsigned integer variable containing the developer-supplied version
            number of the engine used to create the application.
            </summary>
        </member>
        <member name="F:VulkanCore.ApplicationInfo.ApiVersion">
            <summary>
            The version of the Vulkan API against which the application expects to run. If <see
            cref="F:VulkanCore.ApplicationInfo.ApiVersion"/> is <see cref="P:VulkanCore.Version.Zero"/> the implementation must ignore it,
            otherwise if the implementation does not support the requested <see cref="F:VulkanCore.ApplicationInfo.ApiVersion"/>
            it must return <see cref="F:VulkanCore.Result.ErrorIncompatibleDriver"/>. The patch version number
            specified in <see cref="F:VulkanCore.ApplicationInfo.ApiVersion"/> is ignored when creating an instance object. Only
            the major and minor versions of the instance must match those requested in <see cref="F:VulkanCore.ApplicationInfo.ApiVersion"/>.
            </summary>
        </member>
        <member name="M:VulkanCore.ApplicationInfo.#ctor(System.String,System.Int32,System.String,System.Int32,VulkanCore.Version)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ApplicationInfo"/> structure.
            </summary>
            <param name="applicationName">The unicode string containing the name of the application.</param>
            <param name="applicationVersion">
            The unsigned integer variable containing the developer-supplied version number of the application.
            </param>
            <param name="engineName">
            The unicode string containing the name of the engine (if any) used to create the application.
            </param>
            <param name="engineVersion">
            The unsigned integer variable containing the developer-supplied version number of the
            engine used to create the application.
            </param>
            <param name="apiVersion">
            The version of the Vulkan API against which the application expects to run. If <see
            cref="F:VulkanCore.ApplicationInfo.ApiVersion"/> is <see cref="P:VulkanCore.Version.Zero"/> the implementation must ignore it,
            otherwise if the implementation does not support the requested <see cref="F:VulkanCore.ApplicationInfo.ApiVersion"/>
            it must return <see cref="F:VulkanCore.Result.ErrorIncompatibleDriver"/>. The patch version number
            specified in <see cref="F:VulkanCore.ApplicationInfo.ApiVersion"/> is ignored when creating an instance object. Only
            the major and minor versions of the instance must match those requested in <see cref="F:VulkanCore.ApplicationInfo.ApiVersion"/>.
            </param>
        </member>
        <member name="T:VulkanCore.ExtensionProperties">
            <summary>
            Structure specifying a extension properties.
            </summary>
        </member>
        <member name="F:VulkanCore.ExtensionProperties.ExtensionName">
            <summary>
            The name of the extension.
            </summary>
        </member>
        <member name="F:VulkanCore.ExtensionProperties.SpecVersion">
            <summary>
            The version of this extension. It is an integer, incremented with backward compatible changes.
            </summary>
        </member>
        <member name="M:VulkanCore.ExtensionProperties.ToString">
            <summary>
            Returns a string that represents the current object.
            </summary>
            <returns>A string that represents the current object.</returns>
        </member>
        <member name="T:VulkanCore.LayerProperties">
            <summary>
            Structure specifying layer properties.
            </summary>
        </member>
        <member name="F:VulkanCore.LayerProperties.LayerName">
            <summary>
            A unicode string specifying the name of the layer. Use this name in the <see
            cref="F:VulkanCore.InstanceCreateInfo.EnabledLayerNames"/> array to enable this layer for an instance.
            </summary>
        </member>
        <member name="F:VulkanCore.LayerProperties.SpecVersion">
            <summary>
            The Vulkan version the layer was written to.
            </summary>
        </member>
        <member name="F:VulkanCore.LayerProperties.ImplementationVersion">
            <summary>
            The version of this layer. It is an integer, increasing with backward compatible changes.
            </summary>
        </member>
        <member name="F:VulkanCore.LayerProperties.Description">
            <summary>
            A unicode string providing additional details that can be used by the application to
            identify the layer.
            </summary>
        </member>
        <member name="M:VulkanCore.LayerProperties.ToString">
            <summary>
            Returns a string that represents the current object.
            </summary>
            <returns>A string that represents the current object.</returns>
        </member>
        <member name="T:VulkanCore.Interop">
            <summary>
            Utilities for interoping with the Vulkan C API.
            </summary>
        </member>
        <member name="M:VulkanCore.Interop.Alloc(VulkanCore.Size)">
            <summary>
            Allocates memory from the unmanaged memory of the process.
            </summary>
            <param name="byteCount">The required number of bytes in memory.</param>
            <returns>
            A pointer to the newly allocated memory. This memory must be released using the <see
            cref="M:VulkanCore.Interop.Free(System.IntPtr)"/> method.
            </returns>
        </member>
        <member name="M:VulkanCore.Interop.Alloc``1(System.Int32)">
            <summary>
            Allocates memory from the unmanaged memory of the process.
            </summary>
            <typeparam name="T">Type to allocate for.</typeparam>
            <param name="count">
            The number of instances of <typeparamref name="T"/> to allocate for.
            </param>
            <returns>
            A pointer to the newly allocated memory. This memory must be released using the <see
            cref="M:VulkanCore.Interop.Free(System.IntPtr)"/> method.
            </returns>
        </member>
        <member name="M:VulkanCore.Interop.ReAlloc(System.IntPtr,VulkanCore.Size)">
            <summary>
            Resizes a block of memory previously allocated with <see cref="M:VulkanCore.Interop.Alloc(VulkanCore.Size)"/>.
            </summary>
            <param name="original">A pointer to memory allocated with <see cref="M:VulkanCore.Interop.Alloc(VulkanCore.Size)"/>.</param>
            <param name="size">The new size of the allocated block.</param>
            <returns>
            A pointer to the reallocated memory. This memory must be released using <see cref="M:VulkanCore.Interop.Free(System.IntPtr)"/>.
            </returns>
        </member>
        <member name="M:VulkanCore.Interop.Free(System.Void*)">
            <summary>
            Frees memory previously allocated from the unmanaged memory of the process.
            </summary>
            <param name="pointer">The handle to free memory from.</param>
        </member>
        <member name="M:VulkanCore.Interop.Free(System.IntPtr)">
            <summary>
            Frees memory previously allocated from the unmanaged memory of the process.
            </summary>
            <param name="pointer">The handle to free memory from.</param>
        </member>
        <member name="M:VulkanCore.Interop.Free(System.IntPtr*,System.Int32)">
            <summary>
            Frees memory previously allocated from the unmanaged memory of the process.
            <para>Both the handle as well as the handles pointed by the handle are freed.</para>
            </summary>
            <param name="pointers">A handle to handles to free memory from.</param>
            <param name="count">Number of handles to free.</param>
        </member>
        <member name="M:VulkanCore.Interop.GetDelegateForFunctionPointer``1(System.IntPtr)">
            <summary>
            Converts an unmanaged function pointer to a delegate of a specified type.
            </summary>
            <typeparam name="TDelegate">The type of the delegate to return.</typeparam>
            <param name="pointer">The unmanaged function pointer to convert.</param>
            <returns>An instance of the specified delegate type.</returns>
        </member>
        <member name="M:VulkanCore.Interop.GetFunctionPointerForDelegate``1(``0)">
            <summary>
            Converts a delegate of a specified type to a function pointer that is callable from
            unmanaged code.
            </summary>
            <typeparam name="TDelegate">The delegate to be passed to unmanaged code.</typeparam>
            <param name="delegate">The type of delegate to convert.</param>
            <returns>
            A value that can be passed to unmanaged code, which, in turn, can use it to call the
            underlying managed delegate.
            </returns>
        </member>
        <member name="M:VulkanCore.Interop.Read``1(System.IntPtr,``0@)">
            <summary>
            Copies a value of type <typeparamref name="T"/> to the given location.
            </summary>
            <typeparam name="T">The type of value to copy.</typeparam>
            <param name="srcPointer">A pointer to the value to copy.</param>
            <param name="value">The location to copy to.</param>
        </member>
        <member name="M:VulkanCore.Interop.Read``1(System.IntPtr,``0[])">
            <summary>
            Copies values of type <typeparamref name="T"/> to the given location.
            </summary>
            <typeparam name="T">The type of values to copy.</typeparam>
            <param name="srcPointer">A pointer to the value to copy.</param>
            <param name="values">The location to copy to.</param>
        </member>
        <member name="M:VulkanCore.Interop.Write``1(System.IntPtr,``0@)">
            <summary>
            Copies a value of type <typeparamref name="T"/> to the given location.
            </summary>
            <typeparam name="T">The type of value to copy.</typeparam>
            <param name="dstPointer">The location to copy to.</param>
            <param name="value">A reference to the value to copy.</param>
        </member>
        <member name="M:VulkanCore.Interop.Write``1(System.IntPtr,``0[])">
            <summary>
            Copies values of type <typeparamref name="T"/> to the given location.
            </summary>
            <typeparam name="T">The type of values to copy.</typeparam>
            <param name="dstPointer">The location to copy to.</param>
            <param name="values">A reference to the values to copy.</param>
        </member>
        <member name="M:VulkanCore.Interop.SizeOf``1">
            <summary>
            Returns the size of an object of the given type parameter.
            </summary>
            <typeparam name="T">The type of object whose size is retrieved.</typeparam>
            <returns>The size of an object of type <typeparamref name="T"/>.</returns>
        </member>
        <member name="M:VulkanCore.Interop.As``1(System.Object)">
            <summary>
            Casts the gived object to the specified type.
            </summary>
            <typeparam name="T">The type which the object will be cast to.</typeparam>
            <param name="obj">The object to cast.</param>
            <returns>The original object, casted to the given type.</returns>
        </member>
        <member name="T:VulkanCore.Interop.String">
            <summary>
            Utilities for interoping with strings.
            </summary>
        </member>
        <member name="M:VulkanCore.Interop.String.FromPointer(System.Byte*)">
            <summary>
            Decodes specified null-terminated UTF-8 bytes into string.
            </summary>
            <param name="pointer">Pointer to decode from.</param>
            <returns>
            A string that contains the results of decoding the specified sequence of bytes.
            </returns>
        </member>
        <member name="M:VulkanCore.Interop.String.FromPointer(System.IntPtr)">
            <summary>
            Decodes specified null-terminated UTF-8 bytes into string.
            </summary>
            <param name="pointer">Pointer to decode from.</param>
            <returns>
            A string that contains the results of decoding the specified sequence of bytes.
            </returns>
        </member>
        <member name="M:VulkanCore.Interop.String.ToPointer(System.String,System.Byte*,System.Int32)">
            <summary>
            Encodes a string as null-terminated UTF-8 bytes and stores into specified pointer.
            </summary>
            <param name="value">The string to encode.</param>
            <param name="dstPointer">Pointer to store encoded bytes.</param>
            <param name="maxByteCount">
            The maximum number of bytes the string can occupy found by <see cref="M:VulkanCore.Interop.String.GetMaxByteCount(System.String)"/>.
            </param>
        </member>
        <member name="M:VulkanCore.Interop.String.AllocToPointer(System.String)">
            <summary>
            Encodes a string as null-terminated UTF-8 bytes and allocates to unmanaged memory.
            </summary>
            <param name="value">The string to encode.</param>
            <returns>
            A pointer to the newly allocated memory. This memory must be released using the <see
            cref="M:VulkanCore.Interop.Free(System.IntPtr)"/> method.
            </returns>
        </member>
        <member name="M:VulkanCore.Interop.String.AllocToPointers(System.String[])">
            <summary>
            Encodes strings as null-terminated UTF-8 byte sequences and allocates sequences as
            well as pointers to unmanaged memory.
            </summary>
            <param name="values">Strings to encode.</param>
            <returns>
            A pointer to the newly allocated memory. This memory must be released using the <see
            cref="M:VulkanCore.Interop.Free(System.IntPtr*,System.Int32)"/> method.
            </returns>
        </member>
        <member name="M:VulkanCore.Interop.String.GetMaxByteCount(System.String)">
            <summary>
            Calculates the maximum number of bytes produced by encoding the specified number of
            UTF-8 characters.
            </summary>
            <param name="value">The string to get byte count for.</param>
            <returns>
            The maximum number of bytes produced by encoding the specified number of characters.
            </returns>
        </member>
        <member name="T:VulkanCore.Interop.Struct">
            <summary>
            Utilities for interoping with structs.
            </summary>
        </member>
        <member name="M:VulkanCore.Interop.Struct.AllocToPointer``1(``0@)">
            <summary>
            Allocates unmanaged memory and copies the specified structure over.
            </summary>
            <typeparam name="T">Type of structure to copy.</typeparam>
            <param name="value">The value to copy.</param>
            <returns>
            A pointer to the newly allocated memory. This memory must be released using the <see
            cref="M:VulkanCore.Interop.Free(System.IntPtr)"/> method.
            </returns>
        </member>
        <member name="M:VulkanCore.Interop.Struct.AllocToPointer``1(System.Nullable{``0}@)">
            <summary>
            Allocates unmanaged memory and copies the specified structure over.
            <para>If the value is <c>null</c>, returns <see cref="F:System.IntPtr.Zero"/>.</para>
            </summary>
            <typeparam name="T">Type of structure to copy.</typeparam>
            <param name="value">The value to copy.</param>
            <returns>
            A pointer to the newly allocated memory. This memory must be released using the <see
            cref="M:VulkanCore.Interop.Free(System.IntPtr)"/> method.
            </returns>
        </member>
        <member name="M:VulkanCore.Interop.Struct.AllocToPointer``1(``0[])">
            <summary>
            Allocates unmanaged memory and copies the specified structures over.
            <para>If the array is <c>null</c> or empty, returns <see cref="F:System.IntPtr.Zero"/>.</para>
            </summary>
            <typeparam name="T">Type of elements to copy.</typeparam>
            <param name="values">The values to copy.</param>
            <returns>
            A pointer to the newly allocated memory. This memory must be released using the <see
            cref="M:VulkanCore.Interop.Free(System.IntPtr)"/> method.
            </returns>
        </member>
        <member name="P:VulkanCore.Interop.ThreadId">
            <summary>
            Gets a per-thread unique id to distuingish the static instance of <see cref="T:VulkanCore.Interop"/>.
            Useful when tracking unmanaged memory.
            </summary>
        </member>
        <member name="E:VulkanCore.Interop.OnDebugAlloc">
            <summary>
            Occurs when unmanaged memory is allocated in Debug mode.
            </summary>
        </member>
        <member name="E:VulkanCore.Interop.OnDebugFree">
            <summary>
            Occurs when unmanaged memory is freed in Debug mode.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.CommandBufferExtensions">
            <summary>
            Provides Khronos specific extension methods for the <see cref="T:VulkanCore.CommandBuffer"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.CommandBufferExtensions.CmdPushDescriptorSetKhr(VulkanCore.CommandBuffer,VulkanCore.PipelineBindPoint,VulkanCore.PipelineLayout,System.Int32,VulkanCore.WriteDescriptorSet[])">
            <summary>
            Pushes descriptor updates into a command buffer.
            </summary>
            <param name="commandBuffer">
            The command buffer that the descriptors will be recorded in.
            </param>
            <param name="pipelineBindPoint">
            Indicates whether the descriptors will be used by graphics pipelines or compute pipelines.
            <para>
            There is a separate set of push descriptor bindings for each of graphics and compute, so
            binding one does not disturb the other.
            </para>
            </param>
            <param name="layout">The object used to program the bindings.</param>
            <param name="set">
            The set number of the descriptor set in the pipeline layout that will be updated.
            </param>
            <param name="descriptorWrites">Structures describing the descriptors to be updated.</param>
        </member>
        <member name="M:VulkanCore.Khr.CommandBufferExtensions.CmdPushDescriptorSetWithTemplateKhr(VulkanCore.CommandBuffer,VulkanCore.Khr.DescriptorUpdateTemplateKhr,VulkanCore.PipelineLayout,System.Int32,System.IntPtr)">
            <summary>
            Pushes descriptor updates into a command buffer using a descriptor update template.
            </summary>
            <param name="commandBuffer">
            The command buffer that the descriptors will be recorded in.
            </param>
            <param name="descriptorUpdateTemplate">
            A descriptor update template which defines how to interpret the descriptor information in
            <paramref name="data"/>.
            </param>
            <param name="layout">
            The object used to program the bindings.
            <para>
            It must be compatible with the layout used to create the <paramref
            name="descriptorUpdateTemplate"/> handle.
            </para>
            </param>
            <param name="set">
            The set number of the descriptor set in the pipeline layout that will be updated.
            <para>
            This must be the same number used to create the <paramref
            name="descriptorUpdateTemplate"/> handle.
            </para>
            </param>
            <param name="data">
            Points to memory which contains the descriptors for the templated update.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.D3D12FenceSubmitInfoKhr">
            <summary>
            Structure specifying values for Direct3D 12 fence-backed semaphores.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.D3D12FenceSubmitInfoKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.D3D12FenceSubmitInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.D3D12FenceSubmitInfoKhr.WaitSemaphoreValuesCount">
            <summary>
            The number of semaphore wait values specified in <see cref="F:VulkanCore.Khr.D3D12FenceSubmitInfoKhr.WaitSemaphoreValues"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.D3D12FenceSubmitInfoKhr.WaitSemaphoreValues">
            <summary>
            Values for the corresponding semaphores in <see cref="F:VulkanCore.SubmitInfo.WaitSemaphores"/> to
            wait for.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.D3D12FenceSubmitInfoKhr.SignalSemaphoreValuesCount">
            <summary>
            The number of semaphore signal values specified in <see cref="F:VulkanCore.Khr.D3D12FenceSubmitInfoKhr.SignalSemaphoreValues"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.D3D12FenceSubmitInfoKhr.SignalSemaphoreValues">
            <summary>
            Values for the corresponding semaphores in <see cref="F:VulkanCore.SubmitInfo.SignalSemaphores"/> to
            set when signaled.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.D3D12FenceSubmitInfoKhr.#ctor(System.Int64[],System.Int64[],System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.D3D12FenceSubmitInfoKhr"/> structure.
            </summary>
            <param name="waitSemaphoreValues">
            Values for the corresponding semaphores in <see cref="F:VulkanCore.SubmitInfo.WaitSemaphores"/> to
            wait for.
            </param>
            <param name="signalSemaphoreValues">
            Values for the corresponding semaphores in <see cref="F:VulkanCore.SubmitInfo.SignalSemaphores"/> to
            set when signaled.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.CommandPoolExtensions">
            <summary>
            Provides Khronos specific extension methods for the <see cref="T:VulkanCore.CommandPool"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.CommandPoolExtensions.TrimKhr(VulkanCore.CommandPool)">
            <summary>
            Trim a command pool.
            <para>
            Trimming a command pool recycles unused memory from the command pool back to the system.
            </para>
            <para>Command buffers allocated from the pool are not affected by the command.</para>
            </summary>
            <param name="commandPool">The command pool to trim.</param>
        </member>
        <member name="T:VulkanCore.Khr.DescriptorSetExtensions">
            <summary>
            Provides Khronos specific extension methods for the <see cref="T:VulkanCore.DescriptorSet"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.DescriptorSetExtensions.UpdateWithTemplateKhr(VulkanCore.DescriptorSet,VulkanCore.Khr.DescriptorUpdateTemplateKhr,System.IntPtr)">
            <summary>
            Update the contents of a descriptor set object using an update template.
            </summary>
            <param name="descriptorSet">The descriptor set to update.</param>
            <param name="descriptorUpdateTemplate">
            Specifies the update mapping between the application pointer and the descriptor set to update.
            </param>
            <param name="data">
            A pointer to memory which contains one or more structures of <see
            cref="T:VulkanCore.DescriptorImageInfo"/>, <see cref="T:VulkanCore.DescriptorBufferInfo"/>, or <see
            cref="T:VulkanCore.BufferView"/> used to write the descriptors.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.DescriptorUpdateTemplateKhr">
            <summary>
            Opaque handle to a descriptor update template.
            <para>
            A descriptor update template specifies a mapping from descriptor update information in host
            memory to descriptors in a descriptor set. It is designed to avoid passing redundant
            information to the driver when frequently updating the same set of descriptors in descriptor sets.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.Khr.DescriptorUpdateTemplateKhr.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.DescriptorUpdateTemplateKhr.Dispose">
            <summary>
            Destroy a descriptor update template object.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr">
            <summary>
            Structure specifying parameters of a newly created descriptor update template.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.DescriptorUpdateEntries">
            <summary>
            Structures describing the descriptors to be updated by the descriptor update template.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.TemplateType">
            <summary>
            Specifies the type of the descriptor update template. If set to <see
            cref="F:VulkanCore.Khr.DescriptorUpdateTemplateTypeKhr.DescriptorSet"/> it can only be used to update
            descriptor sets with a fixed <see cref="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.DescriptorSetLayout"/>. If set to <see
            cref="F:VulkanCore.Khr.DescriptorUpdateTemplateTypeKhr.PushDescriptors"/> it can only be used to push
            descriptor sets using the provided <see cref="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.PipelineBindPoint"/>, <see
            cref="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.PipelineLayout"/>, and <see cref="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.Set"/> number.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.DescriptorSetLayout">
            <summary>
            The <see cref="T:VulkanCore.DescriptorSetLayout"/> the parameter update template will be
            used with. All descriptor sets which are going to be updated through the newly created
            descriptor update template must be created with this layout. <see
            cref="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.DescriptorSetLayout"/> is the descriptor set layout used to build the descriptor
            update template. All descriptor sets which are going to be updated through the newly
            created descriptor update template must be created with a layout that matches (is the
            same as, or defined identically to) this layout. This parameter is ignored if <see
            cref="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.TemplateType"/> is not <see cref="F:VulkanCore.Khr.DescriptorUpdateTemplateTypeKhr.DescriptorSet"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.PipelineBindPoint">
            <summary>
            Indicates whether the descriptors will be used by graphics pipelines or compute pipelines.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.PipelineLayout">
            <summary>
            The <see cref="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.PipelineLayout"/> object used to program the bindings.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr.Set">
            <summary>
            The set number of the descriptor set in the pipeline layout that will be updated.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.DescriptorUpdateTemplateEntryKhr">
            <summary>
            Describes a single descriptor update of the descriptor update template.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateEntryKhr.DstBinding">
            <summary>
            Must be a valid binding in the descriptor set layout implicitly specified when using a
            descriptor update template to update descriptors.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateEntryKhr.DstArrayElement">
            <summary>
            And descriptorCount must be less than or equal to the number of array elements in the
            descriptor set binding implicitly specified when using a descriptor update template to
            update descriptors, and all applicable consecutive bindings.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateEntryKhr.DescriptorCount">
            <summary>
            The number of descriptors to update. If descriptorCount is greater than the number of
            remaining array elements in the destination binding, those affect consecutive bindings in
            a manner similar to <see cref="T:VulkanCore.WriteDescriptorSet"/> above.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateEntryKhr.DescriptorType">
            <summary>
            Specifies the type of the descriptor.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateEntryKhr.Offset">
            <summary>
            The offset in bytes of the first binding in the raw data structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateEntryKhr.Stride">
            <summary>
            The stride in bytes between two consecutive array elements of the descriptor update
            informations in the raw data structure. The stride is useful in case the bindings are
            stored in structs along with other data.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.DescriptorUpdateTemplateTypeKhr">
            <summary>
            Indicates the valid usage of the descriptor update template.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateTypeKhr.DescriptorSet">
            <summary>
            Specifies that the descriptor update template will be used for descriptor set updates only.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DescriptorUpdateTemplateTypeKhr.PushDescriptors">
            <summary>
            Specifies that the descriptor update template will be used for push descriptor updates only.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.DeviceExtensions">
            <summary>
            Provides Khronos specific extension methods for the <see cref="T:VulkanCore.Device"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.DeviceExtensions.CreateSwapchainKhr(VulkanCore.Device,VulkanCore.Khr.SwapchainCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a swapchain.
            </summary>
            <param name="device">The device to create the swapchain for.</param>
            <param name="createInfo">The structure specifying the parameters of the created swapchain.</param>
            <param name="allocator">
            The allocator used for host memory allocated for the swapchain object when there is no
            more specific allocator available.
            </param>
            <returns>Created swapchain object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.DeviceExtensions.CreateSharedSwapchainsKhr(VulkanCore.Device,VulkanCore.Khr.SwapchainCreateInfoKhr[],System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create multiple swapchains that share presentable images.
            <para>
            Is similar to <see cref="M:VulkanCore.Khr.DeviceExtensions.CreateSwapchainKhr(VulkanCore.Device,VulkanCore.Khr.SwapchainCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})"/>, except that it takes an array of <see
            cref="T:VulkanCore.Khr.SwapchainCreateInfoKhr"/> structures, and returns an array of swapchain objects.
            </para>
            <para>
            The swapchain creation parameters that affect the properties and number of presentable
            images must match between all the swapchains.If the displays used by any of the
            swapchains do not use the same presentable image layout or are incompatible in a way that
            prevents sharing images, swapchain creation will fail with the result code <see
            cref="F:VulkanCore.Result.ErrorIncompatibleDisplayKhr"/>. If any error occurs, no swapchains will be
            created. Images presented to multiple swapchains must be re-acquired from all of them
            before transitioning away from <see cref="F:VulkanCore.ImageLayout.PresentSrcKhr"/>. After destroying
            one or more of the swapchains, the remaining swapchains and the presentable images can
            continue to be used.
            </para>
            </summary>
            <param name="device">The device to create the swapchains for.</param>
            <param name="createInfos">Structures specifying the parameters of the created swapchains.</param>
            <param name="allocator">
            The allocator used for host memory allocated for the swapchain objects when there is no
            more specific allocator available.
            </param>
            <returns>The created swapchain objects.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.DeviceExtensions.CreateDescriptorUpdateTemplateKhr(VulkanCore.Device,VulkanCore.Khr.DescriptorUpdateTemplateCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new descriptor update template.
            </summary>
            <param name="device">The logical device that creates the descriptor update template.</param>
            <param name="createInfo">
            Specifies the set of descriptors to update with a single call to <see cref="M:VulkanCore.Khr.DescriptorSetExtensions.UpdateWithTemplateKhr(VulkanCore.DescriptorSet,VulkanCore.Khr.DescriptorUpdateTemplateKhr,System.IntPtr)"/>.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The resulting descriptor update template object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.DeviceExtensions.GetMemoryWin32HandlePropertiesKhr(VulkanCore.Device,VulkanCore.Khr.ExternalMemoryHandleTypesKhr,System.IntPtr)">
            <summary>
            Get properties of external memory Win32 handles.
            <para>
            Windows memory handles compatible with Vulkan may also be created by non-Vulkan APIs
            using methods beyond the scope of this specification.
            </para>
            </summary>
            <param name="device">The logical device that will be importing <paramref name="handle"/>.</param>
            <param name="handleType">The type of the handle <paramref name="handle"/>.</param>
            <param name="handle">the handle which will be imported.</param>
            <returns>Properties of <paramref name="handle"/>.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.DeviceExtensions.GetMemoryFdPropertiesKhr(VulkanCore.Device,VulkanCore.Khr.ExternalMemoryHandleTypesKhr,System.Int32)">
            <summary>
            Get properties of external memory file descriptors.
            <para>
            POSIX file descriptor memory handles compatible with Vulkan may also be created by
            non-Vulkan APIs using methods beyond the scope of this specification.
            </para>
            </summary>
            <param name="device">The logical device that will be importing <paramref name="fd"/>.</param>
            <param name="handleType">The type of the handle <paramref name="fd"/>.</param>
            <param name="fd">The handle which will be imported.</param>
            <returns>Properties of the handle <paramref name="fd"/>.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.DeviceExtensions.ImportSemaphoreWin32HandleKhr(VulkanCore.Device)">
            <summary>
            Import a semaphore from a Windows HANDLE.
            </summary>
            <param name="device">The logical device that created the semaphore.</param>
            <returns>Structure specifying the semaphore and import parameters.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.DeviceExtensions.ImportSemaphoreFdKhr(VulkanCore.Device)">
            <summary>
            Import a semaphore from a POSIX file descriptor.
            </summary>
            <param name="device">The logical device that created the semaphore.</param>
            <returns>Structure specifying the semaphore and import parameters.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.DeviceExtensions.GetBufferMemoryRequirements2Khr(VulkanCore.Device,VulkanCore.Khr.BufferMemoryRequirementsInfo2Khr)">
            <summary>
            Returns the memory requirements for specified Vulkan object.
            </summary>
            <param name="device">The logical device that owns the buffer.</param>
            <param name="info">Structure containing parameters required for the memory requirements query.</param>
            <returns>Structure in which the memory requirements of the buffer object are returned.</returns>
        </member>
        <member name="M:VulkanCore.Khr.DeviceExtensions.GetImageMemoryRequirements2Khr(VulkanCore.Device,VulkanCore.Khr.ImageMemoryRequirementsInfo2Khr)">
            <summary>
            Returns the memory requirements for specified Vulkan object.
            </summary>
            <param name="device">The logical device that owns the image.</param>
            <param name="info">Structure containing parameters required for the memory requirements query.</param>
            <returns>Structure in which the memory requirements of the image object are returned.</returns>
        </member>
        <member name="T:VulkanCore.Khr.ImportSemaphoreWin32HandleInfoKhr">
            <summary>
            Structure specifying Windows handle to import to a semaphore.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportSemaphoreWin32HandleInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportSemaphoreWin32HandleInfoKhr.Semaphore">
            <summary>
            The semaphore into which the state will be imported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportSemaphoreWin32HandleInfoKhr.Flags">
            <summary>
            Specifies additional parameters for the semaphore payload import operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportSemaphoreWin32HandleInfoKhr.HandleType">
            <summary>
            Specifies the type of <see cref="F:VulkanCore.Khr.ImportSemaphoreWin32HandleInfoKhr.Handle"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportSemaphoreWin32HandleInfoKhr.Handle">
            <summary>
            The external handle to import, or <c>null</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportSemaphoreWin32HandleInfoKhr.Name">
            <summary>
            A NULL-terminated UTF-16 string naming the underlying synchronization primitive to import,
            or <c>null</c>.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ImportSemaphoreFdInfoKhr">
            <summary>
            Structure specifying POSIX file descriptor to import to a semaphore.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportSemaphoreFdInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportSemaphoreFdInfoKhr.Semaphore">
            <summary>
            The semaphore into which the payload will be imported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportSemaphoreFdInfoKhr.Flags">
            <summary>
            Specifies additional parameters for the semaphore payload import operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportSemaphoreFdInfoKhr.HandleType">
            <summary>
            Specifies the type of <see cref="F:VulkanCore.Khr.ImportSemaphoreFdInfoKhr.Fd"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportSemaphoreFdInfoKhr.Fd">
            <summary>
            The external handle to import.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExternalSemaphoreHandleTypesKhr">
            <summary>
            Bitmask of valid external semaphore handle types.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalSemaphoreHandleTypesKhr.OpaqueFd">
            <summary>
            Specifies a POSIX file descriptor handle that has only limited valid usage outside of
            Vulkan and other compatible APIs.
            <para>
            It must be compatible with the POSIX system calls <c>dup</c>, <c>dup2</c>, <c>close</c>,
            and the non-standard system call <c>dup3</c>. Additionally, it must be transportable over
            a socket using an <c>SCM_RIGHTS</c> control message.
            </para>
            <para>
            It owns a reference to the underlying synchronization primitive represented by its Vulkan
            semaphore object.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalSemaphoreHandleTypesKhr.OpaqueWin32">
            <summary>
            Specifies an NT handle that has only limited valid usage outside of Vulkan and other
            compatible APIs.
            <para>
            It must be compatible with the functions <c>DuplicateHandle</c>, <c>CloseHandle</c>,
            <c>CompareObjectHandles</c>, <c>GetHandleInformation</c>, and <c>SetHandleInformation</c>.
            </para>
            <para>
            It owns a reference to the underlying synchronization primitive represented by its Vulkan
            semaphore object.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalSemaphoreHandleTypesKhr.OpaqueWin32Kmt">
            <summary>
            Specifies a global share handle that has only limited valid usage outside of Vulkan and
            other compatible APIs.
            <para>It is not compatible with any native APIs.</para>
            <para>
            It does not own own a reference to the underlying synchronization primitive represented
            its Vulkan semaphore object, and will therefore become invalid when all Vulkan semaphore
            objects associated with it are destroyed.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalSemaphoreHandleTypesKhr.D3D12Fence">
            <summary>
            Specifies an NT handle returned by <c>ID3D12Device::CreateSharedHandle</c> referring to a
            Direct3D 12 fence.
            <para>
            It owns a reference to the underlying synchronization primitive associated with the
            Direct3D fence.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalSemaphoreHandleTypesKhr.SyncFd">
            <summary>
            Specifies a POSIX file descriptor handle to a Linux or Android Fence object.
            <para>
            It can be used with any native API accepting a valid fence object file descriptor as input.
            </para>
            <para>
            It owns a reference to the underlying synchronization primitive associated with the file descriptor.
            </para>
            <para>
            Implementations which support importing this handle type must accept any type of fence FD
            supported by the native system they are running on.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.MemoryWin32HandlePropertiesKhr">
            <summary>
            Properties of external memory windows handles.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryWin32HandlePropertiesKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryWin32HandlePropertiesKhr.MemoryTypeBits">
            <summary>
            A bitmask containing one bit set for every memory type which the specified windows handle
            can be imported as.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.MemoryFdPropertiesKhr">
            <summary>
            Properties of external memory file descriptors.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryFdPropertiesKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryFdPropertiesKhr.MemoryTypeBits">
            <summary>
            A bitmask containing one bit set for every memory type which the specified file
            descriptor can be imported as.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.BufferMemoryRequirementsInfo2Khr.Type">
            <summary>
            Type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.BufferMemoryRequirementsInfo2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.BufferMemoryRequirementsInfo2Khr.Buffer">
            <summary>
            The <see cref="T:VulkanCore.Buffer"/> to query.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.MemoryRequirements2Khr">
            <summary>
            Structure specifying memory requirements.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryRequirements2Khr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryRequirements2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryRequirements2Khr.MemoryRequirements">
            <summary>
            Describes the memory requirements of the resource.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImageMemoryRequirementsInfo2Khr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImageMemoryRequirementsInfo2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImageMemoryRequirementsInfo2Khr.Image">
            <summary>
            The <see cref="T:VulkanCore.Image"/> to query.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImageSparseMemoryRequirementsInfo2Khr.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SparseImageMemoryRequirements2Khr.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.DeviceMemoryExtensions">
            <summary>
            Provides Khronos specific extension methods for the <see cref="T:VulkanCore.DeviceMemory"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.DeviceMemoryExtensions.GetWin32HandleKhr(VulkanCore.DeviceMemory,VulkanCore.Khr.ExternalMemoryHandleTypesKhr)">
            <summary>
            Get a Windows HANDLE for a memory object.
            </summary>
            <param name="memory">The memory object from which the handle will be exported.</param>
            <param name="handleType">The type of handle requested.</param>
            <returns>The Windows handle representing the underlying resources of the device memory object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.DeviceMemoryExtensions.GetFdKhr(VulkanCore.DeviceMemory,VulkanCore.Khr.ExternalMemoryHandleTypesKhr)">
            <summary>
            Get a POSIX file descriptor for a memory object.
            </summary>
            <param name="memory">The memory object from which the handle will be exported.</param>
            <param name="handleType">The type of handle requested.</param>
            <returns>A file descriptor representing the underlying resources of the device memory object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Khr.DisplayKhr">
            <summary>
            Opaque handle to a display object.
            </summary>
        </member>
        <member name="P:VulkanCore.Khr.DisplayKhr.Parent">
            <summary>
            Gets the parent of this resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.DisplayKhr.GetDisplayModeProperties">
            <summary>
            Query display supported modes.
            <para>Each display has one or more supported modes associated with it by default.</para>
            </summary>
            <returns>An array of <see cref="T:VulkanCore.Khr.DisplayModePropertiesKhr"/> structures.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Khr.DisplayModeKhr">
            <summary>
            Opaque handle to a display mode object.
            <para>There is currently no way to destroy "built in" modes.</para>
            </summary>
        </member>
        <member name="P:VulkanCore.Khr.DisplayModeKhr.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.DisplayModeKhr.GetDisplayPlaneCapabilities(System.Int32)">
            <summary>
            Query capabilities of a mode and plane combination.
            <para>
            Applications that wish to present directly to a display must select which layer, or
            "plane" of the display they wish to target, and a mode to use with the display.
            </para>
            <para>Each display supports at least one plane.</para>
            </summary>
            <param name="planeIndex">
            The plane which the application intends to use with the display, and is less than the
            number of display planes supported by the device.
            </param>
            <returns>The structure in which the capabilities are returned.</returns>
        </member>
        <member name="T:VulkanCore.Khr.DisplayModeCreateInfoKhr">
            <summary>
            Structure specifying parameters of a newly created display mode object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayModeCreateInfoKhr.Parameters">
            <summary>
            A structure describing the display parameters to use in creating the new mode. If the
            parameters are not compatible with the specified display, the implementation must throw
            with <see cref="F:VulkanCore.Result.ErrorInitializationFailed"/>.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.DisplayModeCreateInfoKhr.#ctor(VulkanCore.Khr.DisplayModeParametersKhr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.DisplayModeParametersKhr"/> structure.
            </summary>
            <param name="parameters">
            A structure describing the display parameters to use in creating the new mode. If the
            parameters are not compatible with the specified display, the implementation must throw
            with <see cref="F:VulkanCore.Result.ErrorInitializationFailed"/>.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.InstanceExtensions">
            <summary>
            Provides Khronos specific extension methods for the <see cref="T:VulkanCore.Instance"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.InstanceExtensions.CreateAndroidSurfaceKhr(VulkanCore.Instance,VulkanCore.Khr.AndroidSurfaceCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object for an Android native window.
            </summary>
            <param name="instance">The <see cref="T:VulkanCore.Instance"/> to associate with the surface.</param>
            <param name="createInfo">
            The structure containing the parameters affecting the creation of the surface object.
            </param>
            <param name="allocator">
            The allocator used for host memory allocated for the surface object.
            </param>
            <returns>The resulting surface object handle.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.InstanceExtensions.CreateMirSurfaceKhr(VulkanCore.Instance,VulkanCore.Khr.MirSurfaceCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object for a Mir window.
            </summary>
            <param name="instance">The <see cref="T:VulkanCore.Instance"/> to associate with the surface.</param>
            <param name="createInfo">
            The structure containing the parameters affecting the creation of the surface object.
            </param>
            <param name="allocator">
            The allocator used for host memory allocated for the surface object.
            </param>
            <returns>The resulting surface object handle.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.InstanceExtensions.CreateWaylandSurfaceKhr(VulkanCore.Instance,VulkanCore.Khr.WaylandSurfaceCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object for a Wayland window.
            </summary>
            <param name="instance">The <see cref="T:VulkanCore.Instance"/> to associate with the surface.</param>
            <param name="createInfo">
            The structure containing the parameters affecting the creation of the surface object.
            </param>
            <param name="allocator">
            The allocator used for host memory allocated for the surface object.
            </param>
            <returns>The resulting surface object handle.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.InstanceExtensions.CreateWin32SurfaceKhr(VulkanCore.Instance,VulkanCore.Khr.Win32SurfaceCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object for a Win32 window.
            </summary>
            <param name="instance">The <see cref="T:VulkanCore.Instance"/> to associate with the surface.</param>
            <param name="createInfo">
            The structure containing the parameters affecting the creation of the surface object.
            </param>
            <param name="allocator">
            The allocator used for host memory allocated for the surface object.
            </param>
            <returns>The resulting surface object handle.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.InstanceExtensions.CreateXlibSurfaceKhr(VulkanCore.Instance,VulkanCore.Khr.XlibSurfaceCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object for an X11 window, using the Xlib client-side library.
            </summary>
            <param name="instance">The <see cref="T:VulkanCore.Instance"/> to associate with the surface.</param>
            <param name="createInfo">
            The structure containing the parameters affecting the creation of the surface object.
            </param>
            <param name="allocator">
            The allocator used for host memory allocated for the surface object.
            </param>
            <returns>The resulting surface object handle.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.InstanceExtensions.CreateDisplayPlaneSurfaceKhr(VulkanCore.Instance,VulkanCore.Khr.DisplaySurfaceCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> structure representing a display plane and mode.
            </summary>
            <param name="instance">The <see cref="T:VulkanCore.Instance"/> to associate with the surface.</param>
            <param name="createInfo">
            The structure specifying which mode, plane, and other parameters to use.
            </param>
            <param name="allocator">
            The allocator used for host memory allocated for the surface object.
            </param>
            <returns>The resulting surface object handle.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.InstanceExtensions.CreateXcbSurfaceKhr(VulkanCore.Instance,VulkanCore.Khr.XcbSurfaceCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object for a X11 window, using the XCB client-side library.
            </summary>
            <param name="instance">The <see cref="T:VulkanCore.Instance"/> to associate with the surface.</param>
            <param name="createInfo">
            The structure containing the parameters affecting the creation of the surface object.
            </param>
            <param name="allocator">
            The allocator used for host memory allocated for the surface object.
            </param>
            <returns>The resulting surface object handle.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceExtensions">
            <summary>
            Provides Khronos specific extension methods for the <see cref="T:VulkanCore.PhysicalDevice"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetSurfaceSupportKhr(VulkanCore.PhysicalDevice,System.Int32,VulkanCore.Khr.SurfaceKhr)">
            <summary>
            Query if presentation is supported.
            </summary>
            <param name="physicalDevice">The physical device.</param>
            <param name="queueFamilyIndex">The queue family.</param>
            <param name="surface">The surface to query for.</param>
            <returns><c>true</c> if supported; otherwise <c>false</c>.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetSurfaceCapabilitiesKhr(VulkanCore.PhysicalDevice,VulkanCore.Khr.SurfaceKhr)">
            <summary>
            Query surface capabilities.
            </summary>
            <param name="physicalDevice">
            The physical device that will be associated with the swapchain to be created,
            </param>
            <param name="surface">The surface that will be associated with the swapchain.</param>
            <returns>A structure in which the capabilities are returned.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetSurfaceFormatsKhr(VulkanCore.PhysicalDevice,VulkanCore.Khr.SurfaceKhr)">
            <summary>
            Query color formats supported by surface.
            </summary>
            <param name="device">A valid physical device.</param>
            <param name="surface">The surface to query.</param>
            <returns>An array of valid surface formats.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetSurfacePresentModesKhr(VulkanCore.PhysicalDevice,VulkanCore.Khr.SurfaceKhr)">
            <summary>
            Query supported presentation modes.
            </summary>
            <param name="physicalDevice">
            The physical device that will be associated with the swapchain to be created.
            </param>
            <param name="surface">The surface that will be associated with the swapchain.</param>
            <returns>An array of valid present modes.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetDisplayPropertiesKhr(VulkanCore.PhysicalDevice)">
            <summary>
            Query information about the available displays.
            </summary>
            <param name="device">A valid physical device.</param>
            <returns>An array of <see cref="T:VulkanCore.Khr.DisplayPropertiesKhr"/> structures.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetDisplayPlanePropertiesKhr(VulkanCore.PhysicalDevice)">
            <summary>
            Query the plane properties.
            <para>
            Images are presented to individual planes on a display. Devices must support at least one
            plane on each display.Planes can be stacked and blended to composite multiple images on
            one display. Devices may support only a fixed stacking order and fixed mapping between
            planes and displays, or they may allow arbitrary application specified stacking orders
            and mappings between planes and displays.
            </para>
            </summary>
            <param name="physicalDevice">A valid physical device.</param>
            <returns>An array of <see cref="T:VulkanCore.Khr.DisplayPlanePropertiesKhr"/> structures.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetDisplayPlaneSupportedDisplaysKhr(VulkanCore.PhysicalDevice,System.Int32)">
            <summary>
            Get list of displays a plane supports.
            </summary>
            <param name="device">A valid physical device.</param>
            <param name="planeIndex">The plane which the application wishes to use.</param>
            <returns>An array of display handles.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetDisplayPlaneCapabilitiesKhr(VulkanCore.PhysicalDevice,VulkanCore.Khr.DisplayModeKhr,System.Int32)">
            <summary>
            Get the capabilities of a mode and plane combination.
            </summary>
            <param name="physicalDevice">The physical device associated with the display.</param>
            <param name="mode">
            The display mode the application intends to program when using the specified plane.
            </param>
            <param name="planeIndex">The plane which the application intends to use with the display.</param>
            <returns>A <see cref="T:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr"/> structure.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetMirPresentationSupportKhr(VulkanCore.PhysicalDevice,System.Int32,System.IntPtr)">
            <summary>
            Query physical device for presentation to Mir.
            <para>
            Determines whether a queue family of a physical device supports presentation to the Mir compositor.
            </para>
            </summary>
            <param name="device">A physical device handle.</param>
            <param name="queueFamilyIndex">Index to a queue family.</param>
            <param name="connection">A pointer to a MirConnection.</param>
            <returns><c>true</c> if the physical device supports presentation to the Mir compositor.</returns>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetWaylandPresentationSupportKhr(VulkanCore.PhysicalDevice,System.Int32,System.IntPtr)">
            <summary>
            Query physical device for presentation to Wayland.
            <para>
            Determines whether a queue family of a physical device supports presentation to the
            Wayland compositor.
            </para>
            </summary>
            <param name="physicalDevice">A physical device handle.</param>
            <param name="queueFamilyIndex">Index to a queue family.</param>
            <param name="display">A pointer to a wl_display value.</param>
            <returns>
            <c>true</c> if the physical device supports presentation to the Wayland compositor.
            </returns>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetXcbPresentationSupportKhr(VulkanCore.PhysicalDevice,System.Int32,System.IntPtr,System.IntPtr)">
            <summary>
            Query physical device for presentation to X11 server using XCB.
            <para>
            Determines whether a queue family of a physical device supports presentation to an X11
            server, using the XCB client-side library.
            </para>
            </summary>
            <param name="device">A physical device handle.</param>
            <param name="queueFamilyIndex">Index to a queue family.</param>
            <param name="connection">Pointer to a xcb_connection_t value.</param>
            <param name="visualId">An xcb_visualid_t.</param>
            <returns><c>true</c> if the physical device supports presentation to an X11 server.</returns>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetWin32PresentationSupportKhr(VulkanCore.PhysicalDevice,System.Int32)">
            <summary>
            Query physical device for presentation to Windows desktop.
            <para>
            Determines whether a queue family of a physical device supports presentation to the
            Microsoft Windows desktop.
            </para>
            </summary>
            <param name="physicalDevice">A physical device handle.</param>
            <param name="queueFamilyIndex">Index to a queue family.</param>
            <returns>
            <c>true</c> if the physical device supports presentation to The Windows desktop.
            </returns>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetXlibPresentationSupportKhr(VulkanCore.PhysicalDevice,System.Int32,System.IntPtr,System.IntPtr)">
            <summary>
            Query physical device for presentation to X11 server using Xlib.
            <para>
            Determines whether a queue family of a physical device supports presentation to an X11
            server, using the Xlib client-side library.
            </para>
            </summary>
            <param name="device">A physical device handle.</param>
            <param name="queueFamilyIndex">Index to a queue family.</param>
            <param name="connection">Pointer to an Xlib Display.</param>
            <param name="visualId">An X11 VisualID.</param>
            <returns><c>true</c> if the physical device supports presentation to an X11 server.</returns>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetFeatures2Khr(VulkanCore.PhysicalDevice)">
            <summary>
            Reports capabilities of a physical device.
            </summary>
            <param name="physicalDevice">
            The physical device from which to query the supported features.
            </param>
            <returns>A structure in which the physical device features are returned.</returns>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetProperties2Khr(VulkanCore.PhysicalDevice)">
            <summary>
            Returns properties of a physical device.
            </summary>
            <param name="physicalDevice">
            The handle to the physical device whose properties will be queried.
            </param>
            <returns>The structure, that will be filled with returned information.</returns>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetFormatProperties2Khr(VulkanCore.PhysicalDevice,VulkanCore.Format)">
            <summary>
            Lists physical device's format capabilities.
            </summary>
            <param name="physicalDevice">The physical device from which to query the format properties.</param>
            <param name="format">The format whose properties are queried.</param>
            <returns>
            The structure in which physical device properties for <paramref name="format"/> are returned.
            </returns>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetImageFormatProperties2Khr(VulkanCore.PhysicalDevice,VulkanCore.Khr.PhysicalDeviceImageFormatInfo2Khr)">
            <summary>
            Lists physical device's image format capabilities.
            </summary>
            <param name="physicalDevice">The physical device from which to query the image capabilities.</param>
            <param name="imageFormatInfo">
            A structure, describing the parameters that would be consumed by <see cref="M:VulkanCore.Device.CreateImage(VulkanCore.ImageCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})"/>.
            </param>
            <returns>A structure in which capabilities are returned.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetQueueFamilyProperties2Khr(VulkanCore.PhysicalDevice)">
            <summary>
            Reports properties of the queues of the specified physical device.
            </summary>
            <param name="physicalDevice">
            The handle to the physical device whose properties will be queried.
            </param>
            <returns>An array of <see cref="T:VulkanCore.Khr.QueueFamilyProperties2Khr"/> structures.</returns>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetMemoryProperties2Khr(VulkanCore.PhysicalDevice)">
            <summary>
            Reports memory information for the specified physical device.
            </summary>
            <param name="physicalDevice">The handle to the device to query.</param>
            <returns>The structure in which the properties are returned.</returns>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetSparseImageFormatProperties2Khr(VulkanCore.PhysicalDevice,VulkanCore.Khr.PhysicalDeviceSparseImageFormatInfo2Khr)">
            <summary>
            Retrieve properties of an image format applied to sparse images.
            <para>
            Each element will describe properties for one set of image aspects that are bound
            simultaneously in the image.
            </para>
            <para>
            This is usually one element for each aspect in the image, but for interleaved
            depth/stencil images there is only one element describing the combined aspects.
            </para>
            </summary>
            <param name="physicalDevice">
            The physical device from which to query the sparse image capabilities.
            </param>
            <param name="formatInfo">Contains input parameters to the command.</param>
            <returns>An array of <see cref="T:VulkanCore.Khr.SparseImageFormatProperties2Khr"/> structures.</returns>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetSurfaceCapabilities2Khr(VulkanCore.PhysicalDevice,VulkanCore.Khr.PhysicalDeviceSurfaceInfo2Khr)">
            <summary>
            Reports capabilities of a surface on a physical device.
            </summary>
            <param name="physicalDevice">
            The physical device that will be associated with the swapchain to be created, as
            described for <see cref="M:VulkanCore.Khr.DeviceExtensions.CreateSwapchainKhr(VulkanCore.Device,VulkanCore.Khr.SwapchainCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})"/>.
            </param>
            <param name="surfaceInfo">
            Describes the surface and other fixed parameters that would be consumed by <see cref="M:VulkanCore.Khr.DeviceExtensions.CreateSwapchainKhr(VulkanCore.Device,VulkanCore.Khr.SwapchainCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})"/>.
            </param>
            <returns>A structure in which the capabilities are returned.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetSurfaceFormats2Khr(VulkanCore.PhysicalDevice,VulkanCore.Khr.PhysicalDeviceSurfaceInfo2Khr)">
            <summary>
            Query color formats supported by surface.
            </summary>
            <param name="physicalDevice">
            The physical device that will be associated with the swapchain to be created, as
            described for <see cref="M:VulkanCore.Khr.DeviceExtensions.CreateSwapchainKhr(VulkanCore.Device,VulkanCore.Khr.SwapchainCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})"/>.
            </param>
            <param name="surfaceInfo">
            Describes the surface and other fixed parameters that would be consumed by <see cref="M:VulkanCore.Khr.DeviceExtensions.CreateSwapchainKhr(VulkanCore.Device,VulkanCore.Khr.SwapchainCreateInfoKhr,System.Nullable{VulkanCore.AllocationCallbacks})"/>.
            </param>
            <returns>An array of <see cref="T:VulkanCore.Khr.SurfaceFormat2Khr"/> structures.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetExternalBufferPropertiesKhr(VulkanCore.PhysicalDevice,VulkanCore.Khr.PhysicalDeviceExternalBufferInfoKhr)">
            <summary>
            Query the external handle types supported by buffers.
            </summary>
            <param name="physicalDevice">The physical device from which to query the buffer capabilities.</param>
            <param name="externalBufferInfo">
            Structure, describing the parameters that would be consumed by <see cref="M:VulkanCore.Device.CreateBuffer(VulkanCore.BufferCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})"/>.
            </param>
            <returns>A structure in which capabilities are returned.</returns>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetExternalSemaphorePropertiesKhx(VulkanCore.PhysicalDevice,VulkanCore.Khr.PhysicalDeviceExternalSemaphoreInfoKhr)">
            <summary>
            Function for querying external semaphore handle capabilities.
            <para>Semaphores may support import and export of external semaphore handles.</para>
            </summary>
            <param name="physicalDevice">
            The physical device from which to query the semaphore capabilities.
            </param>
            <param name="externalSemaphoreInfo">
            Describes the parameters that would be consumed by <see cref="M:VulkanCore.Device.CreateSemaphore(System.Nullable{VulkanCore.AllocationCallbacks})"/>.
            </param>
            <returns>Structure in which capabilities are returned.</returns>
        </member>
        <member name="T:VulkanCore.Khr.SurfaceCapabilitiesKhr">
            <summary>
            Structure describing capabilities of a surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.MinImageCount">
            <summary>
            The minimum number of images the specified device supports for a swapchain created for
            the surface, and will be at least one.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.MaxImageCount">
            <summary>
            The maximum number of images the specified device supports for a swapchain created for
            the surface, and will be either 0, or greater than or equal to <see
            cref="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.MinImageCount"/>. A value of 0 means that there is no limit on the number of
            images, though there may be limits related to the total amount of memory used by
            presentable images.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.CurrentExtent">
            <summary>
            The current width and height of the surface, or the special value <see
            cref="F:VulkanCore.Extent2D.WholeSize"/> indicating that the surface size will be determined by the
            extent of a swapchain targeting the surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.MinImageExtent">
            <summary>
            Contains the smallest valid swapchain extent for the surface on the specified device. The
            width and height of the extent will each be less than or equal to the corresponding width
            and height of <see cref="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.CurrentExtent"/>, unless <see cref="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.CurrentExtent"/> has the
            special value described above.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.MaxImageExtent">
            <summary>
            Contains the largest valid swapchain extent for the surface on the specified device. The
            width and height of the extent will each be greater than or equal to the corresponding
            width and height of <see cref="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.MinImageExtent"/>. The width and height of the extent will
            each be greater than or equal to the corresponding width and height of <see
            cref="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.CurrentExtent"/>, unless <see cref="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.CurrentExtent"/> has the special value
            described above.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.MaxImageArrayLayers">
            <summary>
            The maximum number of layers presentable images can have for a swapchain created for this
            device and surface, and will be at least one.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.SupportedTransforms">
            <summary>
            A bitmask of <see cref="T:VulkanCore.Khr.SurfaceTransformsKhr"/>, indicating the presentation transforms
            supported for the surface on the specified device.
            <para>At least one bit will be set.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.CurrentTransform">
            <summary>
            Indicates the surface's current transform relative to the presentation engine's natural
            orientation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.SupportedCompositeAlpha">
            <summary>
            A bitmask of <see cref="T:VulkanCore.Khr.CompositeAlphasKhr"/>, representing the alpha compositing
            modes supported by the presentation engine for the surface on the specified device, and
            at least one bit will be set. Opaque composition can be achieved in any alpha compositing
            mode by either using an image format that has no alpha component, or by ensuring
            that all pixels in the presentable images have an alpha value of 1.0.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.SupportedUsageFlags">
            <summary>
            A bitmask of <see cref="T:VulkanCore.ImageUsages"/> representing the ways the application can use the
            presentable images of a swapchain created for the surface on the specified device.
            <para>
            <see cref="F:VulkanCore.ImageUsages.ColorAttachment"/> must be included in the set but implementations
            may support additional usages.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.SurfaceFormatKhr">
            <summary>
            Structure describing a supported swapchain format-color space pair.
            <para>
            While the <see cref="F:VulkanCore.Khr.SurfaceFormatKhr.Format"/> of a presentable image refers to the encoding of each pixel,
            the <see cref="F:VulkanCore.Khr.SurfaceFormatKhr.ColorSpace"/> determines how the presentation engine interprets the pixel values.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceFormatKhr.Format">
            <summary>
            A <see cref="F:VulkanCore.Khr.SurfaceFormatKhr.Format"/> that is compatible with the specified surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceFormatKhr.ColorSpace">
            <summary>
            A presentation <see cref="T:VulkanCore.Khr.ColorSpaceKhr"/> that is compatible with the surface.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.DisplayPropertiesKhr">
            <summary>
            Structure describing an available display device.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPropertiesKhr.Display">
            <summary>
            A handle that is used to refer to the display described here. This handle will be valid
            for the lifetime of the Vulkan instance.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPropertiesKhr.DisplayName">
            <summary>
            A unicode string containing the name of the display. Generally, this will be the name
            provided by the display's EDID. It can be <c>null</c> if no suitable name is available.
            If not <c>null</c>, the memory it points to must remain accessible as long as display is valid.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPropertiesKhr.PhysicalDimensions">
            <summary>
            Describes the physical width and height of the visible portion of the display, in millimeters.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPropertiesKhr.PhysicalResolution">
            <summary>
            Describes the physical, native, or preferred resolution of the display.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPropertiesKhr.SupportedTransforms">
            <summary>
            Tells which transforms are supported by this display. This will contain one or more of
            the bits from <see cref="T:VulkanCore.Khr.SurfaceTransformsKhr"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPropertiesKhr.PlaneReorderPossible">
            <summary>
            Tells whether the planes on this display can have their z order changed. If this is
            <c>true</c>, the application can re-arrange the planes on this display in any order
            relative to each other.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPropertiesKhr.PersistentContent">
            <summary>
            Tells whether the display supports self-refresh/internal buffering. If this is
            <c>true</c>, the application can submit persistent present operations on swapchains
            created against this display.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.DisplayPlanePropertiesKhr">
            <summary>
            Structure describing display plane properties.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlanePropertiesKhr.CurrentDisplay">
            <summary>
            The handle of the display the plane is currently associated with. If the plane is not
            currently attached to any displays, this will be <see cref="F:System.IntPtr.Zero"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlanePropertiesKhr.CurrentStackIndex">
            <summary>
            The current z-order of the plane. This will be between 0 and the count of the elements
            returned by <see cref="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetDisplayPlanePropertiesKhr(VulkanCore.PhysicalDevice)"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.DisplayModeParametersKhr">
            <summary>
            Structure describing display parameters associated with a display mode.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayModeParametersKhr.VisibleRegion">
            <summary>
            The 2D extents of the visible region.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayModeParametersKhr.RefreshRate">
            <summary>
            The number of times the display is refreshed each second multiplied by 1000.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.DisplayModePropertiesKhr">
            <summary>
            Structure describing display mode properties.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayModePropertiesKhr.DisplayMode">
            <summary>
            A handle to the display mode described in this structure. This handle will be valid for
            the lifetime of the Vulkan instance.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayModePropertiesKhr.Parameters">
            <summary>
            Is a <see cref="T:VulkanCore.Khr.DisplayModeParametersKhr"/> structure describing the display parameters
            associated with displayMode.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr">
            <summary>
            Structure describing capabilities of a mode and plane combination.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.SupportedAlpha">
            <summary>
            A bitmask of <see cref="T:VulkanCore.Khr.DisplayPlaneAlphasKhr"/> describing the supported alpha
            blending modes.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MinSrcPosition">
            <summary>
            Is the minimum source rectangle offset supported by this plane using the specified mode.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MaxSrcPosition">
            <summary>
            The maximum source rectangle offset supported by this plane using the specified mode. The
            x and y components of maxSrcPosition must each be greater than or equal to the x and y
            components of <see cref="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MinSrcPosition"/>, respectively.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MinSrcExtent">
            <summary>
            The minimum source rectangle size supported by this plane using the specified mode.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MaxSrcExtent">
            <summary>
            The maximum source rectangle size supported by this plane using the specified mode.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MinDstPosition">
            <summary>
            Has similar semantics to <see cref="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MinSrcPosition"/>, but apply to the output region
            within the mode rather than the input region within the source image.
            <para>Unlike <see cref="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MinSrcPosition"/>, may contain negative values.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MaxDstPosition">
            <summary>
            Has similar semantics to <see cref="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MaxSrcPosition"/>, but apply to the output region
            within the mode rather than the input region within the source image.
            <para>Unlike <see cref="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MaxSrcPosition"/>, may contain negative values.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MinDstExtent">
            <summary>
            Has similar semantics to <see cref="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MinSrcExtent"/>, but apply to the output region
            within the mode rather than the input region within the source image.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MaxDstExtent">
            <summary>
            Has similar semantics to <see cref="F:VulkanCore.Khr.DisplayPlaneCapabilitiesKhr.MaxSrcExtent"/>, but apply to the output region
            within the mode rather than the input region within the source image.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceFeatures2Khr">
            <summary>
            Structure describing the fine-grained features that can be supported by an implementation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceFeatures2Khr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceFeatures2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceFeatures2Khr.Features">
            <summary>
            A structure describing the fine-grained features of the Vulkan 1.0 API.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceProperties2Khr">
            <summary>
            Structure specifying physical device properties.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceProperties2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceProperties2Khr.Properties">
            <summary>
            A structure describing the properties of the physical device. This structure is written
            with the same values as if it were written by <see cref="M:VulkanCore.PhysicalDevice.GetProperties"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.FormatProperties2Khr">
            <summary>
            Structure specifying image format properties.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.FormatProperties2Khr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.FormatProperties2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.FormatProperties2Khr.FormatProperties">
            <summary>
            A structure describing features supported by the requested format.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ImageFormatProperties2Khr">
            <summary>
            Structure specifying a image format properties.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImageFormatProperties2Khr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImageFormatProperties2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure. The <see
            cref="F:VulkanCore.Khr.ImageFormatProperties2Khr.Next"/> chain is used to allow the specification of additional capabilities to be
            returned from <see cref="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetImageFormatProperties2Khr(VulkanCore.PhysicalDevice,VulkanCore.Khr.PhysicalDeviceImageFormatInfo2Khr)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImageFormatProperties2Khr.ImageFormatProperties">
            <summary>
            A structure in which capabilities are returned.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceImageFormatInfo2Khr">
            <summary>
            Structure specifying image creation parameters.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceImageFormatInfo2Khr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceImageFormatInfo2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure. The <see
            cref="F:VulkanCore.Khr.PhysicalDeviceImageFormatInfo2Khr.Next"/> chain is used to provide additional image parameters to <see cref="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetImageFormatProperties2Khr(VulkanCore.PhysicalDevice,VulkanCore.Khr.PhysicalDeviceImageFormatInfo2Khr)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceImageFormatInfo2Khr.Format">
            <summary>
            The image format, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.Format"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceImageFormatInfo2Khr.ImageType">
            <summary>
            The image type, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.ImageType"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceImageFormatInfo2Khr.Tiling">
            <summary>
            The image tiling, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.Tiling"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceImageFormatInfo2Khr.Usage">
            <summary>
            The intended usage of the image, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.Usage"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceImageFormatInfo2Khr.Flags">
            <summary>
            A bitmask describing additional parameters of the image, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.Flags"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.QueueFamilyProperties2Khr">
            <summary>
            Structure providing information about a queue family.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.QueueFamilyProperties2Khr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.QueueFamilyProperties2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.QueueFamilyProperties2Khr.QueueFamilyProperties">
            <summary>
            A structure which is populated with the same values as in <see cref="M:VulkanCore.PhysicalDevice.GetQueueFamilyProperties"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceMemoryProperties2Khr">
            <summary>
            Structure specifying physical device memory properties.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceMemoryProperties2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceMemoryProperties2Khr.MemoryProperties">
            <summary>
            A structure which is populated with the same values as in <see cref="M:VulkanCore.PhysicalDevice.GetMemoryProperties"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.SparseImageFormatProperties2Khr">
            <summary>
            Structure specifying sparse image format properties.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SparseImageFormatProperties2Khr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SparseImageFormatProperties2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SparseImageFormatProperties2Khr.Properties">
            <summary>
            A structure which is populated with the same values as in <see cref="M:VulkanCore.PhysicalDevice.GetSparseImageFormatProperties(VulkanCore.Format,VulkanCore.ImageType,VulkanCore.SampleCounts,VulkanCore.ImageUsages,VulkanCore.ImageTiling)"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceSparseImageFormatInfo2Khr">
            <summary>
            Structure specifying sparse image format inputs.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceSparseImageFormatInfo2Khr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceSparseImageFormatInfo2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceSparseImageFormatInfo2Khr.Format">
            <summary>
            The image format.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceSparseImageFormatInfo2Khr.ImageType">
            <summary>
            The dimensionality of image.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceSparseImageFormatInfo2Khr.Samples">
            <summary>
            The number of samples per pixel as defined in <see cref="T:VulkanCore.SampleCounts"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceSparseImageFormatInfo2Khr.Usage">
            <summary>
            A bitmask describing the intended usage of the image.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceSparseImageFormatInfo2Khr.Tiling">
            <summary>
            The tiling arrangement of the data elements in memory.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.SurfaceCapabilities2Ext">
            <summary>
            Structure describing capabilities of a surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.MinImageCount">
            <summary>
            Supported minimum number of images for the surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.MaxImageCount">
            <summary>
            Supported maximum number of images for the surface, 0 for unlimited.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.CurrentExtent">
            <summary>
            Current image width and height for the surface, (0, 0) if undefined.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.MinImageExtent">
            <summary>
            Supported minimum image width and height for the surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.MaxImageExtent">
            <summary>
            Supported maximum image width and height for the surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.MaxImageArrayLayers">
            <summary>
            Supported maximum number of image layers for the surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.SupportedTransforms">
            <summary>
            1 or more bits representing the transforms supported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.CurrentTransform">
            <summary>
            The surface's current transform relative to the device's natural orientation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.SupportedCompositeAlpha">
            <summary>
            1 or more bits representing the alpha compositing modes supported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.SupportedUsageFlags">
            <summary>
            Supported image usage flags for the surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Ext.SupportedSurfaceCounters">
            <summary>
            Must not include <see cref="F:VulkanCore.Ext.SurfaceCountersExt.VBlank"/> unless the surface queried
            is a display surface.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDevicePushDescriptorPropertiesKhr">
            <summary>
            Structure describing push descriptor limits that can be supported by an implementation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDevicePushDescriptorPropertiesKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDevicePushDescriptorPropertiesKhr.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDevicePushDescriptorPropertiesKhr.MaxPushDescriptors">
            <summary>
            The maximum number of descriptors that can be used in a descriptor set created with <see
            cref="F:VulkanCore.DescriptorSetLayoutCreateFlags.PushDescriptorKhr"/> set.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDevicePushDescriptorPropertiesKhr.#ctor(System.Int32,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.PhysicalDevicePushDescriptorPropertiesKhr"/> structure.
            </summary>
            <param name="maxPushDescriptors">
            The maximum number of descriptors that can be used in a descriptor set created with <see
            cref="F:VulkanCore.DescriptorSetLayoutCreateFlags.PushDescriptorKhr"/> set.
            </param>
            <param name="next">Pointer to next structure.</param>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceSurfaceInfo2Khr">
            <summary>
            Structure specifying a surface and related swapchain creation parameters.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceSurfaceInfo2Khr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceSurfaceInfo2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceSurfaceInfo2Khr.Surface">
            <summary>
            The <see cref="T:VulkanCore.Khr.SurfaceKhr"/> that will be associated with the swapchain.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceSurfaceInfo2Khr.#ctor(VulkanCore.Khr.SurfaceKhr,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.PhysicalDeviceSurfaceInfo2Khr"/> structure.
            </summary>
            <param name="surface">
            The <see cref="T:VulkanCore.Khr.SurfaceKhr"/> that will be associated with the swapchain.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.SurfaceCapabilities2Khr">
            <summary>
            Structure describing capabilities of a surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Khr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceCapabilities2Khr.SurfaceCapabilities">
            <summary>
            Describes the capabilities of the specified surface.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.SurfaceCapabilities2Khr.#ctor(VulkanCore.Khr.SurfaceCapabilitiesKhr,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.SurfaceCapabilities2Khr"/> structure.
            </summary>
            <param name="surfaceCapabilities">Describes the capabilities of the specified surface.</param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.SurfaceFormat2Khr">
            <summary>
            Structure describing a supported swapchain format tuple.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceFormat2Khr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceFormat2Khr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceFormat2Khr.SurfaceFormat">
            <summary>
            Describes a format-color space pair that is compatible with the specified surface.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.SurfaceFormat2Khr.#ctor(VulkanCore.Khr.SurfaceFormatKhr,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.SurfaceFormat2Khr"/> structure.
            </summary>
            <param name="surfaceFormat">
            Describes a format-color space pair that is compatible with the specified surface.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.SharedPresentSurfaceCapabilitiesKhr">
            <summary>
            Structure describing capabilities of a surface for shared presentation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SharedPresentSurfaceCapabilitiesKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SharedPresentSurfaceCapabilitiesKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SharedPresentSurfaceCapabilitiesKhr.SharedPresentSupportedUsages">
            <summary>
            A bitmask representing the ways the application can use the shared presentable image from
            a swapchain created with <see cref="T:VulkanCore.Khr.PresentModeKhr"/> set to <see
            cref="F:VulkanCore.Khr.PresentModeKhr.SharedDemandRefreshKhr"/> or <see
            cref="F:VulkanCore.Khr.PresentModeKhr.SharedContinuousRefreshKhr"/> for the surface on the specified device.
            <para>
            <see cref="F:VulkanCore.ImageUsages.ColorAttachment"/> must be included in the set but implementations
            may support additional usages.
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.SharedPresentSurfaceCapabilitiesKhr.#ctor(VulkanCore.ImageUsages,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.SharedPresentSurfaceCapabilitiesKhr"/> structure.
            </summary>
            <param name="sharedPresentSupportedUsages">
            A bitmask representing the ways the application can use the shared presentable image from
            a swapchain created with <see cref="T:VulkanCore.Khr.PresentModeKhr"/> set to <see
            cref="F:VulkanCore.Khr.PresentModeKhr.SharedDemandRefreshKhr"/> or <see
            cref="F:VulkanCore.Khr.PresentModeKhr.SharedContinuousRefreshKhr"/> for the surface on the specified device.
            <para>
            <see cref="F:VulkanCore.ImageUsages.ColorAttachment"/> must be included in the set but implementations
            may support additional usages.
            </para>
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceExternalImageFormatInfoKhr">
            <summary>
            Structure specifying external image creation parameters.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceExternalImageFormatInfoKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceExternalImageFormatInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceExternalImageFormatInfoKhr.HandleType">
            <summary>
            A bit indicating a memory handle type that will be used with the memory associated with
            the image.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.PhysicalDeviceExternalImageFormatInfoKhr.#ctor(VulkanCore.Khr.ExternalMemoryHandleTypesKhr,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.PhysicalDeviceExternalImageFormatInfoKhr"/> structure.
            </summary>
            <param name="handleType">
            A bit indicating a memory handle type that will be used with the memory associated with
            the image.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.ExternalMemoryPropertiesKhr">
            <summary>
            Structure specifying external memory handle type capabilities.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryPropertiesKhr.ExternalMemoryFeatures">
            <summary>
            A bitmask describing the features of handle type.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryPropertiesKhr.ExportFromImportedHandleTypes">
            <summary>
            A bitmask specifying handle types that can be used to import objects from which handle
            type can be exported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryPropertiesKhr.CompatibleHandleTypes">
            <summary>
            A bitmask specifying handle types which can be specified at the same time as handle type
            when creating an image compatible with external memory.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExternalBufferPropertiesKhr">
            <summary>
            Structure specifying supported external handle capabilities.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalBufferPropertiesKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalBufferPropertiesKhr.ExternalMemoryProperties">
            <summary>
            Specifies various capabilities of the external handle type when used with the specified
            buffer creation parameters.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceExternalBufferInfoKhr">
            <summary>
            Structure specifying buffer creation parameters.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceExternalBufferInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceExternalBufferInfoKhr.Flags">
            <summary>
            A bitmask describing additional parameters of the buffer, corresponding to <see cref="F:VulkanCore.BufferCreateInfo.Flags"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceExternalBufferInfoKhr.Usage">
            <summary>
            A bitmask describing the intended usage of the buffer, corresponding to <see cref="F:VulkanCore.BufferCreateInfo.Usage"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceExternalBufferInfoKhr.HandleType">
            <summary>
            A bit indicating a memory handle type that will be used with the memory associated with
            the buffer.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExternalImageFormatPropertiesKhr">
            <summary>
            Structure specifying supported external handle properties.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalImageFormatPropertiesKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalImageFormatPropertiesKhr.ExternalMemoryProperties">
            <summary>
            Specifies various capabilities of the external handle type when used with the specified
            image creation parameters.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExternalMemoryHandleTypesKhr">
            <summary>
            Bitmask specifying external memory handle types.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryHandleTypesKhr.OpaqueFd">
            <summary>
            Specifies a POSIX file descriptor handle that has only limited valid usage outside of Vulkan and
            other compatible APIs.
            <para>
            It must be compatible with the POSIX system calls <c>dup</c>, <c>dup2</c>, <c>close</c>, and the
            non-standard system call <c>dup3</c>. Additionally, it must be transportable over a socket
            using an <c>SCM_RIGHTS</c> control message.
            </para>
            <para>
            It owns a reference to the underlying memory resource represented by its Vulkan memory object.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryHandleTypesKhr.OpaqueWin32">
            <summary>
            Specifies an NT handle that has only limited valid usage outside of Vulkan and other compatible APIs.
            <para>
            It must: be compatible with the functions <c>DuplicateHandle</c>, <c>CloseHandle</c>,
            <c>CompareObjectHandles</c>, <c>GetHandleInformation</c>, and <c>SetHandleInformation</c>.
            </para>
            <para>
            It owns a reference to the underlying memory resource represented by its Vulkan memory object.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryHandleTypesKhr.OpaqueWin32Kmt">
            <summary>
            Specifies a global share handle that has only limited valid usage outside of Vulkan and other
            compatible APIs.
            <para>It is not compatible with any native APIs.</para>
            <para>
            It does not own own a reference to the underlying memory resource represented its Vulkan
            memory object, and will therefore become invalid when all Vulkan memory objects
            associated with it are destroyed.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryHandleTypesKhr.D3D11Texture">
            <summary>
            Specifies an NT handle returned by <c>IDXGIResource1::CreateSharedHandle</c> referring to a Direct3D 10
            or 11 texture resource.
            <para>It owns a reference to the memory used by the Direct3D resource.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryHandleTypesKhr.D3D11TextureKmt">
            <summary>
            Specifies a global share handle returned by <c>IDXGIResource::GetSharedHandle</c> referring to a
            Direct3D 10 or 11 texture resource.
            <para>
            It does not own own a reference to the underlying Direct3D resource, and will therefore
            become invalid when all Vulkan memory objects and Direct3D resources associated with it
            are destroyed.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryHandleTypesKhr.D3D12Heap">
            <summary>
            Specifies an NT handle returned by <c>ID3D12Device::CreateSharedHandle</c> referring to a Direct3D 12
            heap resource.
            <para>It owns a reference to the resources used by the Direct3D heap.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryHandleTypesKhr.D3D12Resource">
            <summary>
            Specifies an NT handle returned by <c>ID3D12Device::CreateSharedHandle</c> referring to a Direct3D 12
            committed resource.
            <para>It owns a reference to the memory used by the Direct3D resource.</para>
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExternalMemoryFeaturesKhr">
            <summary>
            Bitmask specifying features of an external memory handle type.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryFeaturesKhr.DedicatedOnly">
            <summary>
            Specifies that images or buffers created with the specified parameters and handle type
            must use the mechanisms defined in the "VK_NV_dedicated_allocation" extension to to
            create (or import) a dedicated allocation for the image or buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryFeaturesKhr.Exportable">
            <summary>
            Specifies that handles of this type can be exported from Vulkan memory objects.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryFeaturesKhr.Importable">
            <summary>
            Specifies that handles of this type can be imported as Vulkan memory objects.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceExternalSemaphoreInfoKhr">
            <summary>
            Structure specifying semaphore creation parameters.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceExternalSemaphoreInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceExternalSemaphoreInfoKhr.HandleType">
            <summary>
            A bit indicating an external semaphore handle type for which capabilities will be returned.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExternalSemaphorePropertiesKhr">
            <summary>
            Structure describing supported external semaphore handle features.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalSemaphorePropertiesKhr.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalSemaphorePropertiesKhr.ExportFromImportedHandleTypes">
            <summary>
            A bitmask specifying handle types that can be used to import objects from which
            handleType can be exported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalSemaphorePropertiesKhr.CompatibleHandleTypes">
            <summary>
            A bitmask specifying handle types which can be specified at the same time as handleType
            when creating a semaphore.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalSemaphorePropertiesKhr.ExternalSemaphoreFeatures">
            <summary>
            A bitmask describing the features of handle type.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExternalSemaphoreFeaturesKhr">
            <summary>
            Bitfield describing features of an external semaphore handle type.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalSemaphoreFeaturesKhr.Exportable">
            <summary>
            Specifies that handles of this type can be exported from Vulkan semaphore objects.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalSemaphoreFeaturesKhr.Importable">
            <summary>
            Specifies that handles of this type can be imported as Vulkan semaphore objects.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceVariablePointerFeaturesKhr">
            <summary>
            Structure describing variable pointers features that can be supported by an implementation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceVariablePointerFeaturesKhr.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.SemaphoreImportFlagsKhr">
            <summary>
            Bitmask specifying additional parameters of semaphore payload import.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SemaphoreImportFlagsKhr.Temporary">
            <summary>
            Indicates that the semaphore payload will be imported only temporarily, regardless of the
            permanence of handleType.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExternalFenceHandleTypeFlagsKhr">
            <summary>
            Bitmask of valid external fence handle types.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalFenceHandleTypeFlagsKhr.OpaqueFd">
            <summary>
            Indicates a POSIX file descriptor handle that has only limited valid usage outside of
            Vulkan and other compatible APIs. It must be compatible with the POSIX system calls
            <c>dup</c>, <c>dup2</c>, <c>close</c>, and the non-standard system call <c>dup3</c>.
            Additionally, it must be transportable over a socket using an <c>SCMRIGHTS</c> control
            message. It owns a reference to the underlying synchronization primitive represented by
            its Vulkan fence object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalFenceHandleTypeFlagsKhr.OpaqueWin32">
            <summary>
            Indicates an NT handle that has only limited valid usage outside of Vulkan and other
            compatible APIs. It must be compatible with the functions <c>DuplicateHandle</c>,
            <c>CloseHandle</c>, <c>CompareObjectHandles</c>, <c>GetHandleInformation</c>, and
            <c>SetHandleInformation</c>. It owns a reference to the underlying synchronization
            primitive represented by its Vulkan fence object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalFenceHandleTypeFlagsKhr.OpaqueWin32Kmt">
            <summary>
            Indicates a global share handle that has only limited valid usage outside of Vulkan and
            other compatible APIs. It is not compatible with any native APIs. It does not own a
            reference to the underlying synchronization primitive represented by its Vulkan fence
            object, and will therefore become invalid when all Vulkan fence objects associated with
            it are destroyed.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalFenceHandleTypeFlagsKhr.SyncFd">
            <summary>
            Indicates a POSIX file descriptor handle to a Linux Sync File or Android Fence. It can be
            used with any native API accepting a valid sync file or fence as input. It owns a
            reference to the underlying synchronization primitive associated with the file
            descriptor. Implementations which support importing this handle type must accept any type
            of sync or fence FD supported by the native system they are running on.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExternalFenceFeatureFlagsKhr">
            <summary>
            Bitfield describing features of an external fence handle type.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalFenceFeatureFlagsKhr.Exportable">
            <summary>
            Indicates handles of this type can be exported from Vulkan fence objects.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalFenceFeatureFlagsKhr.Importable">
            <summary>
            Indicates handles of this type can be imported to Vulkan fence objects.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.FenceImportFlagsKhr">
            <summary>
            Bitmask specifying additional parameters of fence payload import.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.FenceImportFlagsKhr.Temporary">
            <summary>
            Specifies that the fence payload will be imported only temporarily, regardless of the
            permanence of handle type.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceIdPropertiesKhr">
            <summary>
            Structure specifying IDs related to the physical device.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceIdPropertiesKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceIdPropertiesKhr.DeviceUuid">
            <summary>
            An array of size <see cref="F:VulkanCore.Constant.UuidSize"/>, containing 8-bit values that represent a
            universally unique identifier for the device.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceIdPropertiesKhr.DriverUuid">
            <summary>
            An array of size <see cref="F:VulkanCore.Constant.UuidSize"/>, containing 8-bit values that represent a
            universally unique identifier for the driver build in use by the device.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceIdPropertiesKhr.DeviceLuid">
            <summary>
            A array of size <see cref="F:VulkanCore.Constant.LuidSizeKhr"/>, containing 8-bit values that represent a
            locally unique identifier for the device.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceIdPropertiesKhr.DeviceNodeMask">
            <summary>
            A bitfield identifying the node within a linked device adapter corresponding to the device.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceIdPropertiesKhr.DeviceLuidValid">
            <summary>
            A boolean value that will be <c>true</c> if <see cref="F:VulkanCore.Khr.PhysicalDeviceIdPropertiesKhr.DeviceLuid"/> contains a valid
            LUID, and <c>false</c> if it does not.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExternalMemoryImageCreateInfoKhr">
            <summary>
            Specify that an image may be backed by external memory.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryImageCreateInfoKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryImageCreateInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryImageCreateInfoKhr.HandleTypes">
            <summary>
            Specifies one or more external memory handle types.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExternalMemoryBufferCreateInfoKhr">
            <summary>
            Specify that a buffer may be backed by external memory.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryBufferCreateInfoKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryBufferCreateInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalMemoryBufferCreateInfoKhr.HandleTypes">
            <summary>
            Specifies one or more external memory handle types.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExportMemoryAllocateInfoKhr">
            <summary>
            Specify exportable handle types for a device memory object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportMemoryAllocateInfoKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportMemoryAllocateInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportMemoryAllocateInfoKhr.HandleTypes">
            <summary>
            Specifies one or more memory handle types the application can export from the resulting
            allocation. The application can request multiple handle types for the same allocation.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ImportMemoryWin32HandleInfoKhr">
            <summary>
            Import Win32 memory created on the same physical device.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportMemoryWin32HandleInfoKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportMemoryWin32HandleInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportMemoryWin32HandleInfoKhr.HandleType">
            <summary>
            Specifies the type of handle or name.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportMemoryWin32HandleInfoKhr.Handle">
            <summary>
            The external handle to import, or <c>null</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportMemoryWin32HandleInfoKhr.Name">
            <summary>
            A NULL-terminated UTF-16 string naming the underlying memory resource to import, or <c>null</c>.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExportMemoryWin32HandleInfoKhr">
            <summary>
            Structure specifying additional attributes of Windows handles exported from a memory.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportMemoryWin32HandleInfoKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportMemoryWin32HandleInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportMemoryWin32HandleInfoKhr.Attributes">
            <summary>
            A pointer to a Windows <c>SECURITY_ATTRIBUTES</c> structure specifying security
            attributes of the handle.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportMemoryWin32HandleInfoKhr.Access">
            <summary>
            A <c>DWORD</c> specifying access rights of the handle.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportMemoryWin32HandleInfoKhr.Name">
            <summary>
            A NULL-terminated UTF-16 string to associate with the underlying resource referenced by
            NT handles exported from the created memory.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.MemoryGetWin32HandleInfoKhr">
            <summary>
            Structure describing a Win32 handle semaphore export operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryGetWin32HandleInfoKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryGetWin32HandleInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryGetWin32HandleInfoKhr.Memory">
            <summary>
            The memory object from which the handle will be exported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryGetWin32HandleInfoKhr.HandleType">
            <summary>
            The type of handle requested.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.MemoryGetFdInfoKhr">
            <summary>
            Structure describing a POSIX FD semaphore export operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryGetFdInfoKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryGetFdInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryGetFdInfoKhr.Memory">
            <summary>
            The memory object from which the handle will be exported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryGetFdInfoKhr.HandleType">
            <summary>
            The type of handle requested.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExportSemaphoreWin32HandleInfoKhr">
            <summary>
            Structure specifying additional attributes of Windows handles exported from a
            semaphore.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportSemaphoreWin32HandleInfoKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportSemaphoreWin32HandleInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportSemaphoreWin32HandleInfoKhr.Attributes">
            <summary>
            A pointer to a Windows <c>SECURITY_ATTRIBUTES</c> structure specifying security
            attributes of the handle.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportSemaphoreWin32HandleInfoKhr.Access">
            <summary>
            A <c>DWORD</c> specifying access rights of the handle.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportSemaphoreWin32HandleInfoKhr.Name">
            <summary>
            A NULL-terminated UTF-16 string to associate with the underlying synchronization
            primitive referenced by NT handles exported from the created semaphore.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.SemaphoreGetWin32HandleInfoKhr">
            <summary>
            Structure describing a Win32 handle semaphore export operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SemaphoreGetWin32HandleInfoKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SemaphoreGetWin32HandleInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SemaphoreGetWin32HandleInfoKhr.Semaphore">
            <summary>
            The semaphore from which state will be exported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SemaphoreGetWin32HandleInfoKhr.HandleType">
            <summary>
            The type of handle requested.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.SemaphoreGetFdInfoKhr">
            <summary>
            Structure describing a POSIX FD semaphore export operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SemaphoreGetFdInfoKhr.Type">
            <summary>
            Is the type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SemaphoreGetFdInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SemaphoreGetFdInfoKhr.Semaphore">
            <summary>
            Is the semaphore from which state will be exported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SemaphoreGetFdInfoKhr.HandleType">
            <summary>
            Is the type of handle requested.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDeviceExternalFenceInfoKhr">
            <summary>
            Structure specifying fence creation parameters.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceExternalFenceInfoKhr.Type">
            <summary>
            Is the type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceExternalFenceInfoKhr.Next">
            <summary>
            Is NULL or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDeviceExternalFenceInfoKhr.HandleType">
            <summary>
            Is a <see cref="T:VulkanCore.Khr.ExternalFenceHandleTypeFlagsKhr"/> value indicating an external fence
            handle type for which capabilities will be returned.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExternalFencePropertiesKhr">
            <summary>
            Structure describing supported external fence handle features.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalFencePropertiesKhr.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalFencePropertiesKhr.ExportFromImportedHandleTypes">
            <summary>
            Is a bitmask of <see cref="T:VulkanCore.Khr.ExternalFenceHandleTypeFlagsKhr"/> indicating which types of
            imported handle handleType can be exported from.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalFencePropertiesKhr.CompatibleHandleTypes">
            <summary>
            Is a bitmask of <see cref="T:VulkanCore.Khr.ExternalFenceHandleTypeFlagsKhr"/> specifying handle types
            which can be specified at the same time as handleType when creating a fence.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExternalFencePropertiesKhr.ExternalFenceFeatures">
            <summary>
            Is a bitmask of <see cref="T:VulkanCore.Khr.ExternalFenceFeatureFlagsKhr"/> indicating the features of handleType.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExportFenceCreateInfoKhr">
            <summary>
            Structure specifying handle types that can be exported from a fence.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportFenceCreateInfoKhr.Type">
            <summary>
            Is the type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportFenceCreateInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportFenceCreateInfoKhr.HandleTypes">
            <summary>
            Is a bitmask of <see cref="T:VulkanCore.Khr.ExternalFenceHandleTypeFlagsKhr"/> specifying one or more
            fence handle types the application can export from the resulting fence. The application
            can request multiple handle types for the same fence.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ImportFenceWin32HandleInfoKhr">
            <summary>
            (None).
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceWin32HandleInfoKhr.Type">
            <summary>
            Is the type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceWin32HandleInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceWin32HandleInfoKhr.Fence">
            <summary>
            Is the fence into which the state will be imported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceWin32HandleInfoKhr.Flags">
            <summary>
            Is a bitmask of <see cref="T:VulkanCore.Khr.FenceImportFlagsKhr"/> specifying additional parameters for
            the fence payload import operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceWin32HandleInfoKhr.HandleType">
            <summary>
            Specifies the type of handle.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceWin32HandleInfoKhr.Handle">
            <summary>
            Is the external handle to import, or <c>null</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceWin32HandleInfoKhr.Name">
            <summary>
            Is the NULL-terminated UTF-16 string naming the underlying synchronization primitive to
            import, or <c>null</c>.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ExportFenceWin32HandleInfoKhr">
            <summary>
            Structure specifying additional attributes of Windows handles exported from a
            fence.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportFenceWin32HandleInfoKhr.Type">
            <summary>
            Is the type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportFenceWin32HandleInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportFenceWin32HandleInfoKhr.Attributes">
            <summary>
            Is a pointer to a Windows <c>SECURITY_ATTRIBUTES</c> structure specifying security
            attributes of the handle.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportFenceWin32HandleInfoKhr.Access">
            <summary>
            Is a <c>xDWORD</c> specifying access rights of the handle.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ExportFenceWin32HandleInfoKhr.Name">
            <summary>
            Is a NULL-terminated UTF-16 string to associate with the underlying
            synchronization primitive referenced by NT handles exported from the created
            fence.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.FenceGetWin32HandleInfoKhr">
            <summary>
            Structure describing a Win32 handle fence export operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.FenceGetWin32HandleInfoKhr.Type">
            <summary>
            Is the type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.FenceGetWin32HandleInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.FenceGetWin32HandleInfoKhr.Fence">
            <summary>
            Is the fence from which state will be exported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.FenceGetWin32HandleInfoKhr.HandleType">
            <summary>
            Is the type of handle requested.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ImportFenceFdInfoKhr">
            <summary>
            (None).
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceFdInfoKhr.Type">
            <summary>
            Is the type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceFdInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceFdInfoKhr.Fence">
            <summary>
            Is the fence into which the payload will be imported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceFdInfoKhr.Flags">
            <summary>
            Is a bitmask of <see cref="T:VulkanCore.Khr.FenceImportFlagsKhr"/> specifying additional parameters for
            the fence payload import operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceFdInfoKhr.HandleType">
            <summary>
            Specifies the type of fd.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ImportFenceFdInfoKhr.Fd">
            <summary>
            Is the external handle to import.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.FenceGetFdInfoKhr">
            <summary>
            Structure describing a POSIX FD fence export operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.FenceGetFdInfoKhr.Type">
            <summary>
            Is the type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.FenceGetFdInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.FenceGetFdInfoKhr.Fence">
            <summary>
            Is the fence from which state will be exported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.FenceGetFdInfoKhr.HandleType">
            <summary>
            Is the type of handle requested.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PhysicalDevice16BitStorageFeaturesKhr">
            <summary>
            Structure describing features supported by VKKHR16bitStorage.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDevice16BitStorageFeaturesKhr.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDevice16BitStorageFeaturesKhr.StorageBuffer16BitAccess">
            <summary>
            16-bit integer/floating-point variables supported in BufferBlock.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDevice16BitStorageFeaturesKhr.UniformAndStorageBuffer16BitAccess">
            <summary>
            16-bit integer/floating-point variables supported in BufferBlock and Block.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDevice16BitStorageFeaturesKhr.StoragePushConstant16">
            <summary>
            16-bit integer/floating-point variables supported in PushConstant.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PhysicalDevice16BitStorageFeaturesKhr.StorageInputOutput16">
            <summary>
            16-bit integer/floating-point variables supported in shader inputs and outputs.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.MemoryDedicatedRequirementsKhr">
            <summary>
            Structure describing dedicated allocation requirements of buffer and image resources.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryDedicatedRequirementsKhr.Type">
            <summary>
            Is the type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryDedicatedRequirementsKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryDedicatedRequirementsKhr.PrefersDedicatedAllocation">
            <summary>
            Indicates that the implementation would prefer a dedicated allocation for this resource.
            The application is still free to suballocate the resource but it may get better
            performance if a dedicated allocation is used.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryDedicatedRequirementsKhr.RequiresDedicatedAllocation">
            <summary>
            Indicates that a dedicated allocation is required for this resource.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.MemoryDedicatedAllocateInfoKhr">
            <summary>
            Specify a dedicated memory allocation resource.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryDedicatedAllocateInfoKhr.Type">
            <summary>
            Is the type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryDedicatedAllocateInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryDedicatedAllocateInfoKhr.Image">
            <summary>
            Is 0 or a handle of an image which this memory will be bound to.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MemoryDedicatedAllocateInfoKhr.Buffer">
            <summary>
            Is 0 or a handle of a buffer which this memory will be bound to.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.QueueExtensions">
            <summary>
            Provides Khronos specific extension methods for the <see cref="T:VulkanCore.Queue"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.QueueExtensions.PresentKhr(VulkanCore.Queue,VulkanCore.Khr.PresentInfoKhr)">
            <summary>
            Queue an image for presentation.
            </summary>
            <param name="queue">
            The queue that is capable of presentation to the target surface's platform on the same
            device as the image's swapchain.
            </param>
            <param name="presentInfo">The structure specifying the parameters of the presentation.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.QueueExtensions.PresentKhr(VulkanCore.Queue,VulkanCore.Semaphore,VulkanCore.Khr.SwapchainKhr,System.Int32)">
            <summary>
            Queue an image for presentation.
            </summary>
            <param name="queue">
            The queue that is capable of presentation to the target surface's platform on the same
            device as the image's swapchain.
            </param>
            <param name="waitSemaphore">Semaphore to wait for before presenting.</param>
            <param name="swapchain">Valid swapchain handle.</param>
            <param name="imageIndex">Index into the array of swapchain's presentable images.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Khr.PresentInfoKhr">
            <summary>
            Structure describing parameters of a queue presentation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentInfoKhr.WaitSemaphores">
            <summary>
            Semaphores to wait for before presenting.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentInfoKhr.Swapchains">
            <summary>
            Valid <see cref="T:VulkanCore.Khr.SwapchainKhr"/> handles.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentInfoKhr.ImageIndices">
            <summary>
            Indices into the array of each swapchain's presentable images, with swapchain count entries.
            <para>
            Each entry in this array identifies the image to present on the corresponding entry in
            the <see cref="F:VulkanCore.Khr.PresentInfoKhr.Swapchains"/> array.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentInfoKhr.Results">
            <summary>
            <see cref="T:VulkanCore.Result"/> typed elements with swapchain count entries.
            <para>
            Applications that do not need per-swapchain results can use <c>null</c> for <see cref="F:VulkanCore.Khr.PresentInfoKhr.Results"/>.
            </para>
            <para>
            If not <c>null</c>, each entry in <see cref="F:VulkanCore.Khr.PresentInfoKhr.Results"/> will be set to the <see
            cref="T:VulkanCore.Result"/> for presenting the swapchain corresponding to the same index in <see cref="F:VulkanCore.Khr.PresentInfoKhr.Swapchains"/>.
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.PresentInfoKhr.#ctor(VulkanCore.Semaphore[],VulkanCore.Khr.SwapchainKhr[],System.Int32[],VulkanCore.Result[],System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.PresentInfoKhr"/> structure.
            </summary>
            <param name="waitSemaphores">Semaphores to wait for before presenting.</param>
            <param name="swapchains">Valid <see cref="T:VulkanCore.Khr.SwapchainKhr"/> handles.</param>
            <param name="imageIndices">
            Indices into the array of each swapchain’s presentable images, with swapchain count entries.
            <para>
            Each entry in this array identifies the image to present on the corresponding entry in
            the <see cref="F:VulkanCore.Khr.PresentInfoKhr.Swapchains"/> array.
            </para>
            </param>
            <param name="results">
            <see cref="T:VulkanCore.Result"/> typed elements with swapchain count entries.
            <para>
            Applications that do not need per-swapchain results can use <c>null</c> for <see cref="F:VulkanCore.Khr.PresentInfoKhr.Results"/>.
            </para>
            <para>
            If not <c>null</c>, each entry in <see cref="F:VulkanCore.Khr.PresentInfoKhr.Results"/> will be set to the <see
            cref="T:VulkanCore.Result"/> for presenting the swapchain corresponding to the same index in <see cref="F:VulkanCore.Khr.PresentInfoKhr.Swapchains"/>.
            </para>
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.DisplayPresentInfoKhr">
            <summary>
            Structure describing parameters of a queue presentation to a swapchain.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPresentInfoKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPresentInfoKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPresentInfoKhr.SrcRect">
            <summary>
            A rectangular region of pixels to present.
            <para>It must be a subset of the image being presented.</para>
            <para>
            If <see cref="T:VulkanCore.Khr.DisplayPresentInfoKhr"/> is not specified, this region will be assumed to
            be the entire presentable image.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPresentInfoKhr.DstRect">
            <summary>
            A rectangular region within the visible region of the swapchain's display mode.
            <para>
            If <see cref="T:VulkanCore.Khr.DisplayPresentInfoKhr"/> is not specified, this region will be assumed to
            be the entire visible region of the visible region of the swapchain's mode.
            </para>
            <para>
            If the specified rectangle is a subset of the display mode's visible region, content from
            display planes below the swapchain's plane will be visible outside the rectangle.
            </para>
            <para>
            If there are no planes below the swapchain's, the area outside the specified rectangle
            will be black.
            </para>
            <para>
            If portions of the specified rectangle are outside of the display's visible region,
            pixels mapping only to those portions of the rectangle will be discarded.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPresentInfoKhr.Persistent">
            <summary>
            If this is <c>true</c>, the display engine will enable buffered mode on displays that
            support it. This allows the display engine to stop sending content to the display until a
            new image is presented. The display will instead maintain a copy of the last presented
            image. This allows less power to be used, but may increase presentation latency.
            <para>
            If <see cref="T:VulkanCore.Khr.DisplayPresentInfoKhr"/> is not specified, persistent mode will not be used.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PresentRegionsKhr">
            <summary>
            Structure hint of rectangular regions changed by <see cref="M:VulkanCore.Khr.QueueExtensions.PresentKhr(VulkanCore.Queue,VulkanCore.Khr.PresentInfoKhr)"/>.
            <para>
            When the "VK_KHR_incremental_present" extension is enabled, additional fields can be
            specified that allow an application to specify that only certain rectangular regions of the
            presentable images of a swapchain are changed.
            </para>
            <para>
            This is an optimization hint that a presentation engine may use to only update the region of
            a surface that is actually changing. The application still must ensure that all pixels of a
            presented image contain the desired values, in case the presentation engine ignores this hint.
            </para>
            <para>
            An application can provide this hint by including the <see cref="T:VulkanCore.Khr.PresentRegionsKhr"/>
            structure in the <see cref="F:VulkanCore.Khr.PresentInfoKhr.Next"/> chain.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentRegionsKhr.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentRegionsKhr.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentRegionsKhr.SwapchainCount">
            <summary>
            The number of swapchains being presented to by this command.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentRegionsKhr.Regions">
            <summary>
            Is <c>null</c> or a pointer to an array of <see cref="T:VulkanCore.Khr.PresentRegionKhr"/> elements with
            <see cref="F:VulkanCore.Khr.PresentRegionsKhr.SwapchainCount"/> entries. If not <c>null</c>, each element of <see
            cref="F:VulkanCore.Khr.PresentRegionsKhr.Regions"/> contains the region that has changed since the last present to the
            swapchain in the corresponding entry in the <see cref="F:VulkanCore.Khr.PresentInfoKhr.Swapchains"/> array.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.PresentRegionsKhr.#ctor(System.Int32,VulkanCore.Khr.PresentRegionKhr*,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.PresentRegionsKhr"/> structure.
            </summary>
            <param name="swapchainCount">The number of swapchains being presented to by this command.</param>
            <param name="regions">
            Is <c>null</c> or a pointer to an array of <see cref="T:VulkanCore.Khr.PresentRegionKhr"/> elements with
            <see cref="F:VulkanCore.Khr.PresentRegionsKhr.SwapchainCount"/> entries. If not <c>null</c>, each element of <see
            cref="F:VulkanCore.Khr.PresentRegionsKhr.Regions"/> contains the region that has changed since the last present to the
            swapchain in the corresponding entry in the <see cref="F:VulkanCore.Khr.PresentInfoKhr.Swapchains"/> array.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.PresentRegionKhr">
            <summary>
            Structure containing rectangular region changed by <see
            cref="M:VulkanCore.Khr.QueueExtensions.PresentKhr(VulkanCore.Queue,VulkanCore.Khr.PresentInfoKhr)"/> for a given <see cref="T:VulkanCore.Image"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentRegionKhr.RectangleCount">
            <summary>
            The number of rectangles in <see cref="F:VulkanCore.Khr.PresentRegionKhr.Rectangles"/>, or zero if the entire image has
            changed and should be presented.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentRegionKhr.Rectangles">
            <summary>
            Is either <c>null</c> or a pointer to an array of <see cref="T:VulkanCore.Khr.RectLayerKhr"/> structures.
            <para>
            The <see cref="T:VulkanCore.Khr.RectLayerKhr"/> structure is the framebuffer coordinates, plus layer, of a
            portion of a presentable image that has changed and must be presented. If non-
            <c>null</c>, each entry in <see cref="F:VulkanCore.Khr.PresentRegionKhr.Rectangles"/> is a rectangle of the given image
            that has changed since the last image was presented to the given swapchain.
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.PresentRegionKhr.#ctor(System.Int32,VulkanCore.Khr.RectLayerKhr*)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.PresentRegionKhr"/> structure.
            </summary>
            <param name="rectangleCount">
            The number of rectangles in <see cref="F:VulkanCore.Khr.PresentRegionKhr.Rectangles"/>, or zero if the entire image has
            changed and should be presented.
            </param>
            <param name="rectangles">
            Is either <c>null</c> or a pointer to an array of <see cref="T:VulkanCore.Khr.RectLayerKhr"/> structures.
            <para>
            The <see cref="T:VulkanCore.Khr.RectLayerKhr"/> structure is the framebuffer coordinates, plus layer, of a
            portion of a presentable image that has changed and must be presented. If non-
            <c>null</c>, each entry in <see cref="F:VulkanCore.Khr.PresentRegionKhr.Rectangles"/> is a rectangle of the given image
            that has changed since the last image was presented to the given swapchain.
            </para>
            </param>
        </member>
        <member name="T:VulkanCore.Khr.RectLayerKhr">
            <summary>
            Structure containing a rectangle, including layer, changed by <see
            cref="M:VulkanCore.Khr.QueueExtensions.PresentKhr(VulkanCore.Queue,VulkanCore.Khr.PresentInfoKhr)"/> for a given <see cref="T:VulkanCore.Image"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.RectLayerKhr.Offset">
            <summary>
            The origin of the rectangle, in pixels.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.RectLayerKhr.Extent">
            <summary>
            The size of the rectangle, in pixels.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.RectLayerKhr.Layer">
            <summary>
            The layer of the image.
            <para>For images with only one layer, the value of <see cref="F:VulkanCore.Khr.RectLayerKhr.Layer"/> must be 0.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.RectLayerKhr.#ctor(VulkanCore.Offset2D,VulkanCore.Extent2D,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.RectLayerKhr"/> structure.
            </summary>
            <param name="offset">The origin of the rectangle, in pixels.</param>
            <param name="extent">The size of the rectangle, in pixels.</param>
            <param name="layer">
            The layer of the image.
            <para>For images with only one layer, the value of <see cref="F:VulkanCore.Khr.RectLayerKhr.Layer"/> must be 0.</para>
            </param>
        </member>
        <member name="T:VulkanCore.Khr.SemaphoreExtensions">
            <summary>
            Provides Khronos specific extension methods for the <see cref="T:VulkanCore.Semaphore"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.SemaphoreExtensions.GetWin32HandleKhr(VulkanCore.Semaphore,VulkanCore.Khr.ExternalSemaphoreHandleTypesKhr)">
            <summary>
            Get a Windows HANDLE for a semaphore.
            </summary>
            <param name="semaphore">The semaphore from which state will be exported.</param>
            <param name="handleType">The type of handle requested.</param>
            <returns>The Windows handle representing the semaphore state.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.SemaphoreExtensions.GetFdKhr(VulkanCore.Semaphore,VulkanCore.Khr.ExternalSemaphoreHandleTypesKhr)">
            <summary>
            Get a POSIX file descriptor handle for a semaphore.
            </summary>
            <param name="semaphore">The semaphore from which state will be exported.</param>
            <param name="handleType">The type of handle requested.</param>
            <returns>The file descriptor representing the semaphore state.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Khr.SurfaceKhr">
            <summary>
            A <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object abstracts a native platform surface or window object for
            use with Vulkan.
            <para>
            The <see cref="F:VulkanCore.Constant.InstanceExtension.KhrSurface"/> extension declares the <see
            cref="T:VulkanCore.Khr.SurfaceKhr"/> object, and provides a function for destroying <see cref="T:VulkanCore.Khr.SurfaceKhr"/>
            objects. Separate platform-specific extensions each provide a function for creating a <see
            cref="T:VulkanCore.Khr.SurfaceKhr"/> object for the respective platform. From the application’s perspective
            this is an opaque handle, just like the handles of other Vulkan objects.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.Khr.SurfaceKhr.Parent">
            <summary>
            Gets the parent of this resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.SurfaceKhr.Dispose">
            <summary>
            Destroy a surface object.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.AndroidSurfaceCreateInfoKhr">
            <summary>
            Structure specifying parameters of a newly created Android surface object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.AndroidSurfaceCreateInfoKhr.Window">
            <summary>
            Pointer to the Android ANativeWindow to associate the surface with.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.AndroidSurfaceCreateInfoKhr.#ctor(System.IntPtr)">
            <summary>
            Initializes a new instance of <see cref="T:VulkanCore.Khr.AndroidSurfaceCreateInfoKhr"/> structure.
            </summary>
            <param name="window">
            Pointer to the Android ANativeWindow to associate the surface with.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.MirSurfaceCreateInfoKhr">
            <summary>
            Structure specifying parameters of a newly created Mir surface object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MirSurfaceCreateInfoKhr.Connection">
            <summary>
            Pointer to the MirConnection to associate the surface with.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.MirSurfaceCreateInfoKhr.MirSurface">
            <summary>
            Pointer to the MirSurface for the window to associate the surface with.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.MirSurfaceCreateInfoKhr.#ctor(System.IntPtr,System.IntPtr)">
            <summary>
            Initializes a new instance of <see cref="T:VulkanCore.Khr.MirSurfaceCreateInfoKhr"/> structure.
            </summary>
            <param name="connection">Pointer to the MirConnection to associate the surface with.</param>
            <param name="mirSurface">
            Pointer to the MirSurface for the window to associate the surface with.
            </param>
        </member>
        <member name="T:VulkanCore.Khr.WaylandSurfaceCreateInfoKhr">
            <summary>
            Structure specifying parameters of a newly created Wayland surface object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.WaylandSurfaceCreateInfoKhr.Display">
            <summary>
            Wayland wl_display to associate the surface with.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.WaylandSurfaceCreateInfoKhr.Surface">
            <summary>
            Wayland wl_surface to associate the surface with.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.WaylandSurfaceCreateInfoKhr.#ctor(System.IntPtr,System.IntPtr)">
            <summary>
            Initializes a new instance of <see cref="T:VulkanCore.Khr.WaylandSurfaceCreateInfoKhr"/> structure.
            </summary>
            <param name="display">Wayland wl_display to associate the surface with.</param>
            <param name="surface">Wayland wl_surface to associate the surface with.</param>
        </member>
        <member name="T:VulkanCore.Khr.Win32SurfaceCreateInfoKhr">
            <summary>
            Structure specifying parameters of a newly created Win32 surface object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.Win32SurfaceCreateInfoKhr.HInstance">
            <summary>
            Win32 HINSTANCE to associate the surface with.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.Win32SurfaceCreateInfoKhr.Hwnd">
            <summary>
            Win32 HWND for the window to associate the surface with.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.Win32SurfaceCreateInfoKhr.#ctor(System.IntPtr,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.Win32SurfaceCreateInfoKhr"/> structure.
            </summary>
            <param name="hInstance">Win32 HINSTANCE to associate the surface with.</param>
            <param name="hwnd">Win32 HWND to associate the surface with.</param>
        </member>
        <member name="T:VulkanCore.Khr.XlibSurfaceCreateInfoKhr">
            <summary>
            Structure specifying parameters of a newly created Xlib surface object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.XlibSurfaceCreateInfoKhr.Dpy">
            <summary>
            A pointer to an Xlib Display connection to the X server.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.XlibSurfaceCreateInfoKhr.Window">
            <summary>
            A pointer to an Xlib Window to associate the surface with.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.XlibSurfaceCreateInfoKhr.#ctor(System.IntPtr,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.XlibSurfaceCreateInfoKhr"/> structure.
            </summary>
            <param name="display">A pointer to an Xlib Display connection to the X server.</param>
            <param name="window">A pointer to an Xlib Window to associate the surface with.</param>
        </member>
        <member name="T:VulkanCore.Khr.DisplaySurfaceCreateInfoKhr">
            <summary>
            Structure specifying parameters of a newly created display plane surface object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplaySurfaceCreateInfoKhr.DisplayMode">
            <summary>
            A <see cref="T:VulkanCore.Khr.DisplayModeKhr"/> handle specifying the mode to use when displaying this surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplaySurfaceCreateInfoKhr.PlaneIndex">
            <summary>
            The plane on which this surface appears.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplaySurfaceCreateInfoKhr.PlaneStackIndex">
            <summary>
            The z-order of the plane.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplaySurfaceCreateInfoKhr.Transform">
            <summary>
            Specifies the transform to apply to the images as part of the scanout operation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplaySurfaceCreateInfoKhr.GlobalAlpha">
            <summary>
            The global alpha value.
            <para>This value is ignored if <see cref="F:VulkanCore.Khr.DisplaySurfaceCreateInfoKhr.AlphaMode"/> is not <see cref="F:VulkanCore.Khr.DisplayPlaneAlphasKhr.Global"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplaySurfaceCreateInfoKhr.AlphaMode">
            <summary>
            Specifies the type of alpha blending to use.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplaySurfaceCreateInfoKhr.ImageExtent">
            <summary>
            The size of the presentable images to use with the surface.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.DisplaySurfaceCreateInfoKhr.#ctor(VulkanCore.Khr.DisplayModeKhr,System.Int32,System.Int32,VulkanCore.Khr.SurfaceTransformsKhr,System.Single,VulkanCore.Khr.DisplayPlaneAlphasKhr,VulkanCore.Extent2D)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.DisplaySurfaceCreateInfoKhr"/> structure.
            </summary>
            <param name="displayMode">
            A <see cref="T:VulkanCore.Khr.DisplayModeKhr"/> handle specifying the mode to use when displaying this surface.
            </param>
            <param name="planeIndex">The plane on which this surface appears.</param>
            <param name="planeStackIndex">The z-order of the plane.</param>
            <param name="transform">
            Specifies the transform to apply to the images as part of the scanout operation.
            </param>
            <param name="globalAlpha">
            The global alpha value. This value is ignored if <see cref="F:VulkanCore.Khr.DisplaySurfaceCreateInfoKhr.AlphaMode"/> is not <see cref="F:VulkanCore.Khr.DisplayPlaneAlphasKhr.Global"/>.
            </param>
            <param name="alphaMode">Specifies the type of alpha blending to use.</param>
            <param name="imageExtent">Size of the images to use with this surface.</param>
        </member>
        <member name="T:VulkanCore.Khr.DisplayPlaneAlphasKhr">
            <summary>
            Alpha blending type.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneAlphasKhr.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneAlphasKhr.Opaque">
            <summary>
            Specifies that the source image will be treated as opaque.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneAlphasKhr.Global">
            <summary>
            Specifies that a global alpha value must be specified that will be applied to all pixels
            in the source image.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneAlphasKhr.PerPixel">
            <summary>
            Specifies that the alpha value will be determined by the alpha channel of the source
            image's pixels.
            <para>If the source format contains no alpha values, no blending will be applied.</para>
            <para>
            The source alpha values are not premultiplied into the source image's other color channels.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.DisplayPlaneAlphasKhr.PerPixelPremultiplied">
            <summary>
            Is equivalent to <see cref="F:VulkanCore.Khr.DisplayPlaneAlphasKhr.PerPixel"/>, except the source alpha values are assumed to be
            premultiplied into the source image's other color channels.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.XcbSurfaceCreateInfoKhr">
            <summary>
            Structure specifying parameters of a newly created Xcb surface object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.XcbSurfaceCreateInfoKhr.Connection">
            <summary>
            A pointer to an xcb_connection_t to the X server.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.XcbSurfaceCreateInfoKhr.Window">
            <summary>
            The xcb_window_t for the X11 window to associate the surface with.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.XcbSurfaceCreateInfoKhr.#ctor(System.IntPtr,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.XcbSurfaceCreateInfoKhr"/> structure.
            </summary>
            <param name="connection">A pointer to an xcb_connection_t to the X server.</param>
            <param name="window">The xcb_window_t for the X11 window to associate the surface with.</param>
        </member>
        <member name="T:VulkanCore.Khr.SwapchainKhr">
            <summary>
            Opaque handle to a swapchain object.
            <para>
            A swapchain object (a.k.a. swapchain) provides the ability to present rendering results to a surface.
            </para>
            <para>
            A swapchain is an abstraction for an array of presentable images that are associated with a
            surface. The swapchain images are represented by <see cref="T:VulkanCore.Image"/> objects created by the
            platform. One image (which can be an array image for multiview/stereoscopic-3D surfaces) is
            displayed at a time, but multiple images can be queued for presentation. An application
            renders to the image, and then queues the image for presentation to the surface.
            </para>
            <para>A native window cannot be associated with more than one swapchain at a time.</para>
            <para>
            Further, swapchains cannot be created for native windows that have a non-Vulkan graphics API
            surface associated with them.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.Khr.SwapchainKhr.Parent">
            <summary>
            Gets the parent of this resource.
            </summary>
        </member>
        <member name="P:VulkanCore.Khr.SwapchainKhr.Format">
            <summary>
            Gets the format.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.SwapchainKhr.GetImages">
            <summary>
            Obtain the array of presentable images associated with a swapchain.
            </summary>
            <returns>An array of <see cref="T:VulkanCore.Image"/> objects.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.SwapchainKhr.AcquireNextImage(System.Int64,VulkanCore.Semaphore,VulkanCore.Fence)">
            <summary>
            Retrieve the index of the next available presentable image.
            </summary>
            <param name="timeout">
            Indicates how long the function waits, in nanoseconds, if no image is available.
            <para>
            If timeout is 0, the command will not block, but will either succeed or throw with <see
            cref="F:VulkanCore.Result.NotReady"/>. If timeout is -1, the function will not return until an image
            is acquired from the presentation engine. Other values for timeout will cause the
            function to return when an image becomes available, or when the specified number of
            nanoseconds have passed (in which case it will return throw with <see
            cref="F:VulkanCore.Result.Timeout"/>). An error can also cause the command to return early.
            </para>
            </param>
            <param name="semaphore">
            <c>null</c> or a semaphore to signal. <paramref name="semaphore"/> and <paramref
            name="fence"/> must not both be equal to <c>null</c>.
            </param>
            <param name="fence">
            <c>null</c> or a fence to signal. <paramref name="semaphore"/> and <paramref
            name="fence"/> must not both be equal to <c>null</c>.
            </param>
            <returns>The index of the next available presentable image.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khr.SwapchainKhr.GetStatus">
            <summary>
            Get a swapchain's status. The possible return values should be interpreted as follows:
            <para>
            * <see cref="F:VulkanCore.Result.Success"/> - Indicates the presentation engine is presenting the
              contents of the shared presentable image, as per the swapchain's <see cref="T:VulkanCore.Khr.PresentModeKhr"/>
            </para>
            <para>
            * <see cref="F:VulkanCore.Result.SuboptimalKhr"/> - The swapchain no longer matches the surface
              properties exactly, but the presentation engine is presenting the contents of the
              shared presentable image, as per the swapchain's <see cref="T:VulkanCore.Khr.PresentModeKhr"/>
            </para>
            <para>
            * <see cref="F:VulkanCore.Result.ErrorOutOfDateKhr"/> - The surface has changed in such a way that it
              is no longer compatible with the swapchain
            </para>
            <para>* <see cref="F:VulkanCore.Result.ErrorSurfaceLostKhr"/> - The surface is no longer available</para>
            </summary>
            <returns>Status of the swapchain.</returns>
        </member>
        <member name="M:VulkanCore.Khr.SwapchainKhr.Dispose">
            <summary>
            Destroy a swapchain object.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.SwapchainCreateInfoKhr">
            <summary>
            Structure specifying parameters of a newly created swapchain object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.Flags">
            <summary>
            A bitmask indicating parameters of swapchain creation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.Surface">
            <summary>
            The <see cref="T:VulkanCore.Khr.SurfaceKhr"/> that the swapchain will present images to.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.MinImageCount">
            <summary>
            The minimum number of presentable images that the application needs.
            <para>
            The platform will either create the swapchain with at least that many images, or will
            fail to create the swapchain.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.ImageFormat">
            <summary>
            A format that is valid for swapchains on the specified surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.ImageColorSpace">
            <summary>
            Color space that is valid for swapchains on the specified surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.ImageExtent">
            <summary>
            The size (in pixels) of the swapchain.
            <para>
            Behavior is platform-dependent when the image extent does not match the surface's <see
            cref="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.CurrentExtent"/> as returned by <see cref="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetSurfaceCapabilitiesKhr(VulkanCore.PhysicalDevice,VulkanCore.Khr.SurfaceKhr)"/>.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.ImageArrayLayers">
            <summary>
            The number of views in a multiview/stereo surface.
            <para>For non-stereoscopic-3D applications, this value is 1.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.ImageUsage">
            <summary>
            A bitmask indicating how the application will use the swapchain's presentable images.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.ImageSharingMode">
            <summary>
            The sharing mode used for the images of the swapchain.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.QueueFamilyIndices">
            <summary>
            Queue family indices having access to the images of the swapchain in case <see
            cref="F:VulkanCore.Khr.SwapchainCreateInfoKhr.ImageSharingMode"/> is <see cref="F:VulkanCore.SharingMode.Concurrent"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.PreTransform">
            <summary>
            A bitmask describing the transform, relative to the presentation engine's natural
            orientation, applied to the image content prior to presentation.
            <para>
            If it does not match the <see cref="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.CurrentTransform"/> value
            returned by <see cref="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetSurfaceCapabilitiesKhr(VulkanCore.PhysicalDevice,VulkanCore.Khr.SurfaceKhr)"/>, the
            presentation engine will transform the image content as part of the presentation operation.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.CompositeAlpha">
            <summary>
            A bitmask indicating the alpha compositing mode to use when this surface is composited
            together with other surfaces on certain window systems.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.PresentMode">
            <summary>
            The presentation mode the swapchain will use.
            <para>
            A swapchain's present mode determines how incoming present requests will be processed and
            queued internally.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.Clipped">
            <summary>
            Indicates whether the Vulkan implementation is allowed to discard rendering operations
            that affect regions of the surface which are not visible.
            <para>
            If set to <c>true</c>, the presentable images associated with the swapchain may not own
            all of their pixels. Pixels in the presentable images that correspond to regions of the
            target surface obscured by another window on the desktop or subject to some other
            clipping mechanism will have undefined content when read back. Pixel shaders may not
            execute for these pixels, and thus any side affects they would have had will not occur.
            </para>
            <para>
            If set to <c>false</c>, presentable images associated with the swapchain will own all the
            pixels they contain. Setting this value to <c>true</c> does not guarantee any clipping
            will occur, but allows more optimal presentation methods to be used on some platforms.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateInfoKhr.OldSwapchain">
            <summary>
            Existing swapchain to replace, if any.
            </summary>
        </member>
        <member name="M:VulkanCore.Khr.SwapchainCreateInfoKhr.#ctor(VulkanCore.Khr.SurfaceKhr,VulkanCore.Format,VulkanCore.Extent2D,VulkanCore.Khr.SurfaceTransformsKhr,VulkanCore.Khr.PresentModeKhr,VulkanCore.Khr.SwapchainCreateFlagsKhr,System.Int32,VulkanCore.ImageUsages,VulkanCore.Khr.CompositeAlphasKhr,System.Int32,System.Boolean,VulkanCore.Khr.SwapchainKhr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khr.SwapchainCreateInfoKhr"/> structure.
            </summary>
            <param name="surface">
            The <see cref="T:VulkanCore.Khr.SurfaceKhr"/> that the swapchain will present images to.
            </param>
            <param name="imageExtent">
            The size (in pixels) of the swapchain.
            <para>
            Behavior is platform-dependent when the image extent does not match the surface's <see
            cref="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.CurrentExtent"/> as returned by <see cref="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetSurfaceCapabilitiesKhr(VulkanCore.PhysicalDevice,VulkanCore.Khr.SurfaceKhr)"/>.
            </para>
            </param>
            <param name="preTransform">
            A bitmask describing the transform, relative to the presentation engine's natural
            orientation, applied to the image content prior to presentation.
            <para>
            If it does not match the <see cref="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.CurrentTransform"/> value
            returned by <see cref="M:VulkanCore.Khr.PhysicalDeviceExtensions.GetSurfaceCapabilitiesKhr(VulkanCore.PhysicalDevice,VulkanCore.Khr.SurfaceKhr)"/>, the
            presentation engine will transform the image content as part of the presentation operation.
            </para>
            </param>
            <param name="imageUsage">
            A bitmask indicating how the application will use the swapchain's presentable images.
            </param>
            <param name="flags">A bitmask indicating parameters of swapchain creation.</param>
            <param name="minImageCount">
            The minimum number of presentable images that the application needs. The platform will
            either create the swapchain with at least that many images, or will fail to create the swapchain.
            </param>
            <param name="imageFormat">A format that is valid for swapchains on the specified surface.</param>
            <param name="compositeAlpha">
            A bitmask indicating the alpha compositing mode to use when this surface is composited
            together with other surfaces on certain window systems.
            </param>
            <param name="imageArrayLayers">
            The number of views in a multiview/stereo surface. For non-stereoscopic-3D applications,
            this value is 1.
            </param>
            <param name="presentMode">
            The presentation mode the swapchain will use.
            <para>
            A swapchain's present mode determines how incoming present requests will be processed and
            queued internally.
            </para>
            </param>
            <param name="clipped">
            Indicates whether the Vulkan implementation is allowed to discard rendering operations
            that affect regions of the surface which are not visible.
            </param>
            <param name="oldSwapchain">Existing swapchain to replace, if any.</param>
        </member>
        <member name="T:VulkanCore.Khr.SwapchainCreateFlagsKhr">
            <summary>
            Bitmask controlling swapchain creation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateFlagsKhr.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SwapchainCreateFlagsKhr.BindSfrKhx">
            <summary>
            Specifies that images created from the swapchain (i.e. with the swapchain member of <see
            cref="F:VulkanCore.Khx.ImageSwapchainCreateInfoKhx.Swapchain"/> set to this swapchain's
            handle) must use <see cref="F:VulkanCore.ImageCreateFlags.BindSfrKhx"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.ColorSpaceKhr">
            <summary>
            Supported color space of the presentation engine.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.SRgbNonlinear">
            <summary>
            Indicates support for the sRGB color space.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.DisplayP3NonlinearExt">
            <summary>
            Indicates support for the Display-P3 color space and applies an sRGB-like transfer function.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.ExtendedSRgbLinearExt">
            <summary>
            Indicates support for the extended sRGB color space and applies a linear transfer function.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.DciP3LinearExt">
            <summary>
            Indicates support for the DCI-P3 color space and applies a linear OETF.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.DciP3NonlinearExt">
            <summary>
            Indicates support for the DCI-P3 color space and applies the Gamma 2.6 OETF.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.BT709LinearExt">
            <summary>
            Indicates support for the BT709 color space and applies a linear OETF.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.BT709NonlinearExt">
            <summary>
            Indicates support for the BT709 color space and applies the SMPTE 170M OETF.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.BT2020LinearExt">
            <summary>
            Indicates support for the BT2020 color space and applies a linear OETF.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.Hdr10ST2084Ext">
            <summary>
            Indicates support for HDR10 (BT2020 color) space and applies the SMPTE ST2084 Perceptual
            Quantizer (PQ) OETF.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.DolbyVisionExt">
            <summary>
            Indicates support for Dolby Vision (BT2020 color space), proprietary encoding, and
            applies the SMPTE ST2084 OETF.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.Hdr10HlgExt">
            <summary>
            Indicates support for HDR10 (BT2020 color space) and applies the Hybrid Log Gamma (HLG) OETF.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.AdobeRgbLinearExt">
            <summary>
            Indicates support for the AdobeRGB color space and applies a linear OETF.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.AdobeRgbNonlinearExt">
            <summary>
            Indicates support for the AdobeRGB color space and applies the Gamma 2.2 OETF.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.PassThroughExt">
            <summary>
            Indicates that color components are used "as is". This is intended to allow application
            to supply data for color spaces not described here.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.ColorSpaceKhr.ExtendedSRgbNonlinearExt">
            <summary>
            Indicates support for the extended sRGB color space and applies an sRGB transfer function.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.SurfaceTransformsKhr">
            <summary>
            Presentation transforms supported on a device.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceTransformsKhr.Identity">
            <summary>
            Indicates that image content is presented without being transformed.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceTransformsKhr.Rotate90">
            <summary>
            Indicates that image content is rotated 90 degrees clockwise.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceTransformsKhr.Rotate180">
            <summary>
            Indicates that image content is rotated 180 degrees clockwise.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceTransformsKhr.Rotate270">
            <summary>
            Indicates that image content is rotated 270 degrees clockwise.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceTransformsKhr.HorizontalMirror">
            <summary>
            Indicates that image content is mirrored horizontally.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceTransformsKhr.HorizontalMirrorRotate90">
            <summary>
            Indicates that image content is mirrored horizontally, then rotated 90 degrees clockwise.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceTransformsKhr.HorizontalMirrorRotate180">
            <summary>
            Indicates that image content is mirrored horizontally, then rotated 180 degrees clockwise.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceTransformsKhr.HorizontalMirrorRotate270">
            <summary>
            Indicates that image content is mirrored horizontally, then rotated 270 degrees clockwise.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.SurfaceTransformsKhr.Inherit">
            <summary>
            Indicates that presentation transform is not specified, and is instead determined by
            platform-specific considerations and mechanisms outside Vulkan.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.CompositeAlphasKhr">
            <summary>
            Alpha compositing modes supported on a device.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.CompositeAlphasKhr.Opaque">
            <summary>
            The alpha channel, if it exists, of the images is ignored in the compositing process.
            Instead, the image is treated as if it has a constant alpha of 1.0.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.CompositeAlphasKhr.PreMultiplied">
            <summary>
            The alpha channel, if it exists, of the images is respected in the compositing process.
            The non-alpha channels of the image are expected to already be multiplied by the alpha
            channel by the application.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.CompositeAlphasKhr.PostMultiplied">
            <summary>
            The alpha channel, if it exists, of the images is respected in the compositing process.
            The non-alpha channels of the image are not expected to already be multiplied by the
            alpha channel by the application; instead, the compositor will multiply the non-alpha
            channels of the image by the alpha channel during compositing.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.CompositeAlphasKhr.Inherit">
            <summary>
            The way in which the presentation engine treats the alpha channel in the images is
            unknown to the Vulkan API. Instead, the application is responsible for setting the
            composite alpha blending mode using native window system commands. If the application
            does not set the blending mode using native window system commands, then a
            platform-specific default will be used.
            </summary>
        </member>
        <member name="T:VulkanCore.Khr.PresentModeKhr">
            <summary>
            Presentation mode supported for a surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentModeKhr.Immediate">
            <summary>
            Indicates that the presentation engine does not wait for a vertical blanking period to
            update the current image, meaning this mode may result in visible tearing. No internal
            queuing of presentation requests is needed, as the requests are applied immediately.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentModeKhr.Mailbox">
            <summary>
            Indicates that the presentation engine waits for the next vertical blanking period to
            update the current image. Tearing cannot be observed. An internal single-entry queue is
            used to hold pending presentation requests. If the queue is full when a new presentation
            request is received, the new request replaces the existing entry, and any images
            associated with the prior entry become available for re-use by the application. One
            request is removed from the queue and processed during each vertical blanking period in
            which the queue is non-empty.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentModeKhr.Fifo">
            <summary>
            Indicates that the presentation engine waits for the next vertical blanking period to
            update the current image. Tearing cannot be observed. An internal queue is used to hold
            pending presentation requests. New requests are appended to the end of the queue, and one
            request is removed from the beginning of the queue and processed during each vertical
            blanking period in which the queue is non-empty. This is the only value of presentMode
            that is required: to be supported.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentModeKhr.FifoRelaxed">
            <summary>
            Indicates that the presentation engine generally waits for the next vertical blanking
            period to update the current image. If a vertical blanking period has already passed
            since the last update of the current image then the presentation engine does not wait for
            another vertical blanking period for the update, meaning this mode may result in visible
            tearing in this case. This mode is useful for reducing visual stutter with an application
            that will mostly present a new image before the next vertical blanking period, but may
            occasionally be late, and present a new image just after the next vertical blanking
            period. An internal queue is used to hold pending presentation requests. New requests are
            appended to the end of the queue, and one request is removed from the beginning of the
            queue and processed during or after each vertical blanking period in which the queue is non-empty.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentModeKhr.SharedDemandRefreshKhr">
            <summary>
            Indicates that the presentation engine and application have concurrent access to a single
            image, which is referred to as a shared presentable image. The presentation engine is
            only required to update the current image after a new presentation request is received.
            Therefore the application must make a presentation request whenever an update is
            required. However, the presentation engine may update the current image at any point,
            meaning this mode may result in visible tearing.
            </summary>
        </member>
        <member name="F:VulkanCore.Khr.PresentModeKhr.SharedContinuousRefreshKhr">
            <summary>
            Indicates that the presentation engine and application have concurrent access to a single
            image, which is referred to as a shared presentable image. The presentation engine
            periodically updates the current image on its regular refresh cycle. The application is
            only required to make one initial presentation request, after which the presentation
            engine must update the current image without any need for further presentation requests.
            The application can indicate the image contents have been updated by making a
            presentation request, but this does not guarantee the timing of when it will be updated.
            This mode may result in visible tearing if rendering to the image is not timed correctly.
            </summary>
        </member>
        <member name="T:VulkanCore.Khx.CommandBufferExtensions">
            <summary>
            Provides experimental Khronos specific extension methods for the <see cref="T:VulkanCore.CommandBuffer"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.CommandBufferExtensions.CmdSetDeviceMaskKhx(VulkanCore.CommandBuffer,System.Int32)">
            <summary>
            Modify device mask of a command buffer.
            </summary>
            <param name="commandBuffer">Command buffer whose current device mask is modified.</param>
            <param name="deviceMask">The new value of the current device mask.</param>
        </member>
        <member name="M:VulkanCore.Khx.CommandBufferExtensions.CmdDispatchBaseKhx(VulkanCore.CommandBuffer,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Dispatch compute work items.
            </summary>
            <param name="commandBuffer">The command buffer into which the command will be recorded.</param>
            <param name="baseGroupX">The start value for the X component of <c>WorkgroupId</c>.</param>
            <param name="baseGroupY">The start value for the Y component of <c>WorkgroupId</c>.</param>
            <param name="baseGroupZ">The start value for the Z component of <c>WorkgroupId</c>.</param>
            <param name="groupCountX">The number of local workgroups to dispatch in the X dimension.</param>
            <param name="groupCountY">The number of local workgroups to dispatch in the Y dimension.</param>
            <param name="groupCountZ">The number of local workgroups to dispatch in the Z dimension.</param>
        </member>
        <member name="T:VulkanCore.Khx.DeviceGroupCommandBufferBeginInfoKhx">
            <summary>
            Set the initial device mask for a command buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupCommandBufferBeginInfoKhx.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupCommandBufferBeginInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupCommandBufferBeginInfoKhx.DeviceMask">
            <summary>
            The initial value of the command buffer's device mask.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.DeviceGroupCommandBufferBeginInfoKhx.#ctor(System.Int32,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.DeviceGroupCommandBufferBeginInfoKhx"/> structure.
            </summary>
            <param name="deviceMask">The initial value of the command buffer's device mask.</param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khx.DeviceGroupRenderPassBeginInfoKhx">
            <summary>
            Set the initial device mask and render areas for a render pass instance.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupRenderPassBeginInfoKhx.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupRenderPassBeginInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupRenderPassBeginInfoKhx.DeviceMask">
            <summary>
            The device mask for the render pass instance.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupRenderPassBeginInfoKhx.DeviceRenderAreaCount">
            <summary>
            The number of elements in the <see cref="F:VulkanCore.Khx.DeviceGroupRenderPassBeginInfoKhx.DeviceRenderAreas"/> array.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupRenderPassBeginInfoKhx.DeviceRenderAreas">
            <summary>
            Structures defining the render area for each physical device.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.DeviceGroupRenderPassBeginInfoKhx.#ctor(System.Int32,VulkanCore.Rect2D[],System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.DeviceGroupRenderPassBeginInfoKhx"/> structure.
            </summary>
            <param name="deviceMask">The device mask for the render pass instance.</param>
            <param name="deviceRenderAreas">
            Structures defining the render area for each physical device.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx">
            <summary>
            Use Windows keyex mutex mechanism to synchronize work.
            <para>
            When submitting work that operates on memory imported from a Direct3D 11 resource to a queue,
            the keyed mutex mechanism may be used in addition to Vulkan semaphores to synchronize the work.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.AcquireCount">
            <summary>
            the number of entries in the <see cref="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.AcquireSyncs"/>, <see cref="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.AcquireKeys"/>, and
            <see cref="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.AcquireTimeoutMilliseconds"/> arrays.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.AcquireSyncs">
            <summary>
            An array of <see cref="T:VulkanCore.DeviceMemory"/> objects which were imported from Direct3D 11 resources.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.AcquireKeys">
            <summary>
            Mutex key values to wait for prior to beginning the submitted work.
            <para>
            Entries refer to the keyed mutex associated with the corresponding entries in <see cref="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.AcquireSyncs"/>.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.AcquireTimeoutMilliseconds">
            <summary>
            Timeout values, in millisecond units, for each acquire specified in <see cref="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.AcquireKeys"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.ReleaseCount">
            <summary>
            The number of entries in the <see cref="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.ReleaseSyncs"/> and <see cref="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.ReleaseKeys"/> arrays.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.ReleaseSyncs">
            <summary>
            An array of <see cref="T:VulkanCore.DeviceMemory"/> objects which were imported from Direct3D 11 resources.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.ReleaseKeys">
            <summary>
            Mutex key values to set when the submitted work has completed.
            <para>
            Entries refer to the keyed mutex associated with the corresponding entries in <see cref="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.ReleaseSyncs"/>.
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.#ctor(VulkanCore.DeviceMemory[],System.Int64[],System.Int32[],VulkanCore.DeviceMemory[],System.Int64[],System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx"/> structure.
            </summary>
            <param name="acquireSyncs">
            An array of <see cref="T:VulkanCore.DeviceMemory"/> objects which were imported from Direct3D 11 resources.
            </param>
            <param name="acquireKeys">
            Mutex key values to wait for prior to beginning the submitted work.
            </param>
            <param name="acquireTimeoutMilliseconds">
            Timeout values, in millisecond units, for each acquire specified in <see cref="F:VulkanCore.Khx.Win32KeyedMutexAcquireReleaseInfoKhx.AcquireKeys"/>.
            </param>
            <param name="releaseSyncs">
            An array of <see cref="T:VulkanCore.DeviceMemory"/> objects which were imported from Direct3D 11 resources.
            </param>
            <param name="releaseKeys">
            An array of <see cref="T:VulkanCore.DeviceMemory"/> objects which were imported from Direct3D 11 resources.
            </param>
            <param name="next"></param>
        </member>
        <member name="T:VulkanCore.Khx.DeviceGroupSubmitInfoKhx">
            <summary>
            Structure indicating which physical devices execute semaphore operations and
            command buffers.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupSubmitInfoKhx.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupSubmitInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupSubmitInfoKhx.WaitSemaphoreCount">
            <summary>
            The number of elements in the <see cref="F:VulkanCore.Khx.DeviceGroupSubmitInfoKhx.WaitSemaphoreDeviceIndices"/> array.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupSubmitInfoKhx.WaitSemaphoreDeviceIndices">
            <summary>
            Device indices indicating which physical device executes the semaphore wait operation in
            the corresponding element of <see cref="F:VulkanCore.SubmitInfo.WaitSemaphores"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupSubmitInfoKhx.CommandBufferCount">
            <summary>
            The number of elements in the <see cref="F:VulkanCore.Khx.DeviceGroupSubmitInfoKhx.CommandBufferDeviceMasks"/> array.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupSubmitInfoKhx.CommandBufferDeviceMasks">
            <summary>
            Device masks indicating which physical devices execute the command buffer in the
            corresponding element of <see cref="F:VulkanCore.SubmitInfo.CommandBuffers"/>. A physical device
            executes the command buffer if the corresponding bit is set in the mask.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupSubmitInfoKhx.SignalSemaphoreCount">
            <summary>
            The number of elements in the <see cref="F:VulkanCore.Khx.DeviceGroupSubmitInfoKhx.SignalSemaphoreDeviceIndices"/> array.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupSubmitInfoKhx.SignalSemaphoreDeviceIndices">
            <summary>
            Device indices indicating which physical device executes the semaphore signal operation
            in the corresponding element of <see cref="F:VulkanCore.SubmitInfo.SignalSemaphores"/>.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.DeviceGroupSubmitInfoKhx.#ctor(System.Int32[],System.Int32[],System.Int32[],System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.DeviceGroupSubmitInfoKhx"/> structure.
            </summary>
            <param name="waitSemaphoreDeviceIndices">
            Device indices indicating which physical device executes the semaphore wait operation in
            the corresponding element of <see cref="F:VulkanCore.SubmitInfo.WaitSemaphores"/>.
            </param>
            <param name="commandBufferDeviceMasks">
            Device masks indicating which physical devices execute the command buffer in the
            corresponding element of <see cref="F:VulkanCore.SubmitInfo.CommandBuffers"/>. A physical device
            executes the command buffer if the corresponding bit is set in the mask.
            </param>
            <param name="signalSemaphoreDeviceIndices">
            Device indices indicating which physical device executes the semaphore signal operation
            in the corresponding element of <see cref="F:VulkanCore.SubmitInfo.SignalSemaphores"/>.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khx.DeviceExtensions">
            <summary>
            Provides experimental Khronos specific extension methods for the <see cref="T:VulkanCore.Device"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.DeviceExtensions.GetDeviceGroupPeerMemoryFeaturesKhx(VulkanCore.Device,System.Int32,System.Int32,System.Int32)">
            <summary>
            Query supported peer memory features of a device.
            <para>
            Peer memory is memory that is allocated for a given physical device and then bound to a
            resource and accessed by a different physical device, in a logical device that represents
            multiple physical devices.
            </para>
            </summary>
            <param name="device">The logical device that owns the memory.</param>
            <param name="heapIndex">The index of the memory heap from which the memory is allocated.</param>
            <param name="localDeviceIndex">
            The device index of the physical device that performs the memory access.
            </param>
            <param name="remoteDeviceIndex">
            The device index of the physical device that the memory is allocated for.
            </param>
            <returns>
            A bitmask indicating which types of memory accesses are supported for the combination of
            heap, local, and remote devices.
            </returns>
        </member>
        <member name="M:VulkanCore.Khx.DeviceExtensions.BindBufferMemory2Khx(VulkanCore.Device,VulkanCore.Khx.BindBufferMemoryInfoKhx[])">
            <summary>
            Bind device memory to buffer objects.
            </summary>
            <param name="device">The logical device that owns the buffers and memory.</param>
            <param name="bindInfos">Structures describing buffers and memory to bind.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khx.DeviceExtensions.BindImageMemory2Khx(VulkanCore.Device,VulkanCore.Khx.BindImageMemoryInfoKhx[])">
            <summary>
            Bind device memory to image objects.
            </summary>
            <param name="device">The logical device that owns the images and memory.</param>
            <param name="bindInfos">Structures describing images and memory to bind.</param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khx.DeviceExtensions.GetGroupPresentCapabilitiesKhx(VulkanCore.Device)">
            <summary>
            Query present capabilities from other physical devices.
            <para>
            A logical device that represents multiple physical devices may support presenting from
            images on more than one physical device, or combining images from multiple physical devices.
            </para>
            </summary>
            <param name="device">The logical device.</param>
            <returns>Structure that is filled with the logical device's capabilities.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khx.DeviceExtensions.GetGroupSurfacePresentModesKhx(VulkanCore.Device,VulkanCore.Khr.SurfaceKhr)">
            <summary>
            Query present capabilities for a surface.
            <para>Some surfaces may not be capable of using all the device group present modes.</para>
            </summary>
            <param name="device">The logical device.</param>
            <param name="surface">The surface.</param>
            <returns>
            A value that is filled with the supported device group present modes for the surface.
            </returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Khx.DeviceExtensions.AcquireNextImage2Khx(VulkanCore.Device,VulkanCore.Khx.AcquireNextImageInfoKhx)">
            <summary>
            Retrieve the index of the next available presentable image.
            </summary>
            <param name="device">The device associated with <see cref="F:VulkanCore.Khx.AcquireNextImageInfoKhx.Swapchain"/>.</param>
            <param name="acquireInfo">Structure containing parameters of the acquire.</param>
            <returns>The index of the next image to use.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Khx.PeerMemoryFeaturesKhx">
            <summary>
            Bitmask specifying supported peer memory features.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PeerMemoryFeaturesKhx.PeerMemoryFeatureCopySrcKhx">
            <summary>
            Indicates that the memory can be accessed as the source of a
            <c>CommandBuffer.CmdCopy*</c> command.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PeerMemoryFeaturesKhx.PeerMemoryFeatureCopyDstKhx">
            <summary>
            Indicates that the memory can be accessed as the destination of a
            <c>CommandBuffer.CmdCopy*</c> command.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PeerMemoryFeaturesKhx.PeerMemoryFeatureGenericSrcKhx">
            <summary>
            Indicates that the memory can be read as any other memory access type.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PeerMemoryFeaturesKhx.PeerMemoryFeatureGenericDstKhx">
            <summary>
            Indicates that the memory can be written as any other memory access type.
            <para>Shader atomics are considered to be writes.</para>
            </summary>
        </member>
        <member name="T:VulkanCore.Khx.BindBufferMemoryInfoKhx">
            <summary>
            Structure specifying how to bind a buffer to memory.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindBufferMemoryInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindBufferMemoryInfoKhx.Buffer">
            <summary>
            The <see cref="T:VulkanCore.Buffer"/> to be attached to memory.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindBufferMemoryInfoKhx.Memory">
            <summary>
            A <see cref="T:VulkanCore.DeviceMemory"/> object describing the device memory to attach.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindBufferMemoryInfoKhx.MemoryOffset">
            <summary>
            The start offset of the region of memory which is to be bound to the buffer. The number
            of bytes returned in the <see cref="F:VulkanCore.MemoryRequirements.Size"/> member in memory, starting
            from <see cref="F:VulkanCore.Khx.BindBufferMemoryInfoKhx.MemoryOffset"/> bytes, will be bound to the specified buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindBufferMemoryInfoKhx.DeviceIndices">
            <summary>
            An array of device indices.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.BindBufferMemoryInfoKhx.#ctor(VulkanCore.Buffer,VulkanCore.DeviceMemory,System.Int64,System.Int32[],System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.BindBufferMemoryInfoKhx"/> structure.
            </summary>
            <param name="buffer">The <see cref="T:VulkanCore.Buffer"/> to be attached to memory.</param>
            <param name="memory">
            A <see cref="T:VulkanCore.DeviceMemory"/> object describing the device memory to attach.
            </param>
            <param name="memoryOffset">
            The start offset of the region of memory which is to be bound to the buffer. The number
            of bytes returned in the <see cref="F:VulkanCore.MemoryRequirements.Size"/> member in memory, starting
            from <see cref="F:VulkanCore.Khx.BindBufferMemoryInfoKhx.MemoryOffset"/> bytes, will be bound to the specified buffer.
            </param>
            <param name="deviceIndices">An array of device indices.</param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khx.BindImageMemoryInfoKhx">
            <summary>
            Structure specifying how to bind an image to memory.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindImageMemoryInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindImageMemoryInfoKhx.Image">
            <summary>
            The <see cref="T:VulkanCore.Image"/> to be attached to memory.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindImageMemoryInfoKhx.Memory">
            <summary>
            A <see cref="T:VulkanCore.DeviceMemory"/> object describing the device memory to attach.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindImageMemoryInfoKhx.MemoryOffset">
            <summary>
            The start offset of the region of memory which is to be bound to the image. If the length
            of <see cref="F:VulkanCore.Khx.BindImageMemoryInfoKhx.SFRRects"/> is zero, the number of bytes returned in the <see
            cref="F:VulkanCore.MemoryRequirements.Size"/> member in memory, starting from <see
            cref="F:VulkanCore.Khx.BindImageMemoryInfoKhx.MemoryOffset"/> bytes, will be bound to the specified image.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindImageMemoryInfoKhx.DeviceIndices">
            <summary>
            An array of device indices.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindImageMemoryInfoKhx.SFRRects">
            <summary>
            An array of rectangles describing which regions of the image are attached to each
            instance of memory.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.BindImageMemoryInfoKhx.#ctor(VulkanCore.Image,VulkanCore.DeviceMemory,System.Int64,System.Int32[],VulkanCore.Rect2D[],System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.BindImageMemoryInfoKhx"/> structure.
            </summary>
            <param name="image">The <see cref="T:VulkanCore.Image"/> to be attached to memory.</param>
            <param name="memory">
            A <see cref="T:VulkanCore.DeviceMemory"/> object describing the device memory to attach.
            </param>
            <param name="memoryOffset">
            The start offset of the region of memory which is to be bound to the image. If the length
            of <see cref="F:VulkanCore.Khx.BindImageMemoryInfoKhx.SFRRects"/> is zero, the number of bytes returned in the <see
            cref="F:VulkanCore.MemoryRequirements.Size"/> member in memory, starting from <see
            cref="F:VulkanCore.Khx.BindImageMemoryInfoKhx.MemoryOffset"/> bytes, will be bound to the specified image.
            </param>
            <param name="deviceIndices">An array of device indices.</param>
            <param name="sfrRects">
            An array of rectangles describing which regions of the image are attached to each
            instance of memory.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khx.DeviceGroupPresentCapabilitiesKhx">
            <summary>
            Present capabilities from other physical devices.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupPresentCapabilitiesKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupPresentCapabilitiesKhx.PresentMask">
            <summary>
            An array of masks, where the mask at element [i] is non-zero if physical device [i] has a
            presentation engine, and where bit [j] is set in element [i] if physical device [i] can
            present swapchain images from physical device [j]. If element [i] is non-zero, then bit
            [i] must be set.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupPresentCapabilitiesKhx.Modes">
            <summary>
            A bitmask indicating which device group presentation modes are supported.
            </summary>
        </member>
        <member name="T:VulkanCore.Khx.DeviceGroupPresentModesKhx">
            <summary>
            Bitmask specifying supported device group present modes.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupPresentModesKhx.Local">
            <summary>
            Indicates that any physical device with a presentation engine can present its own
            swapchain images.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupPresentModesKhx.Remote">
            <summary>
            Indicates that any physical device with a presentation engine can present swapchain
            images from any physical device in its present mask.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupPresentModesKhx.Sum">
            <summary>
            Indicates that any physical device with a presentation engine can present the sum of
            swapchain images from any physical devices in its present mask.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupPresentModesKhx.LocalMultiDevice">
            <summary>
            Indicates that multiple physical devices with a presentation engine can each present
            their own swapchain images.
            </summary>
        </member>
        <member name="T:VulkanCore.Khx.AcquireNextImageInfoKhx">
            <summary>
            Structure specifying parameters of the acquire.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.AcquireNextImageInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.AcquireNextImageInfoKhx.Swapchain">
            <summary>
            The <see cref="T:VulkanCore.Khr.SwapchainKhr"/> from which an image is being acquired.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.AcquireNextImageInfoKhx.Timeout">
            <summary>
            Indicates how long the function waits, in nanoseconds, if no image is available.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.AcquireNextImageInfoKhx.Semaphore">
            <summary>
            Is <c>0</c> or a <see cref="F:VulkanCore.Khx.AcquireNextImageInfoKhx.Semaphore"/> to signal.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.AcquireNextImageInfoKhx.Fence">
            <summary>
            Is <c>0</c> or a <see cref="F:VulkanCore.Khx.AcquireNextImageInfoKhx.Fence"/> to signal.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.AcquireNextImageInfoKhx.DeviceMask">
            <summary>
            A mask of physical devices for which the swapchain image will be ready to use when the
            semaphore or fence is signaled.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.AcquireNextImageInfoKhx.#ctor(VulkanCore.Khr.SwapchainKhr,System.Int64,VulkanCore.Semaphore,VulkanCore.Fence,System.Int32,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.AcquireNextImageInfoKhx"/> structure.
            </summary>
            <param name="swapchain">
            The <see cref="T:VulkanCore.Khr.SwapchainKhr"/> from which an image is being acquired.
            </param>
            <param name="timeout">
            Indicates how long the function waits, in nanoseconds, if no image is available.
            </param>
            <param name="semaphore">A <see cref="F:VulkanCore.Khx.AcquireNextImageInfoKhx.Semaphore"/> to signal.</param>
            <param name="fence">A <see cref="F:VulkanCore.Khx.AcquireNextImageInfoKhx.Fence"/> to signal.</param>
            <param name="deviceMask">
            A mask of physical devices for which the swapchain image will be ready to use when the
            semaphore or fence is signaled.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khx.PhysicalDeviceMultiviewFeaturesKhx">
            <summary>
            Structure describing multiview features that can be supported by an implementation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PhysicalDeviceMultiviewFeaturesKhx.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PhysicalDeviceMultiviewFeaturesKhx.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PhysicalDeviceMultiviewFeaturesKhx.Multiview">
            <summary>
            Multiple views in a renderpass.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PhysicalDeviceMultiviewFeaturesKhx.MultiviewGeometryShader">
            <summary>
            Multiple views in a renderpass w/ geometry shader.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PhysicalDeviceMultiviewFeaturesKhx.MultiviewTessellationShader">
            <summary>
            Multiple views in a renderpass w/ tessellation shader.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.PhysicalDeviceMultiviewFeaturesKhx.#ctor(System.Boolean,System.Boolean,System.Boolean,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.PhysicalDeviceMultiviewFeaturesKhx"/> structure.
            </summary>
            <param name="multiview">Multiple views in a renderpass.</param>
            <param name="multiviewGeometryShader">Multiple views in a renderpass w/ geometry shader.</param>
            <param name="multiviewTessellationShader">
            Multiple views in a renderpass w/ tessellation shader.
            </param>
            <param name="next">Pointer to next structure.</param>
        </member>
        <member name="T:VulkanCore.Khx.DeviceGroupDeviceCreateInfoKhx">
            <summary>
            Create a logical device from multiple physical devices.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupDeviceCreateInfoKhx.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupDeviceCreateInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupDeviceCreateInfoKhx.PhysicalDeviceCount">
            <summary>
            The number of elements in the <see cref="F:VulkanCore.Khx.DeviceGroupDeviceCreateInfoKhx.PhysicalDevices"/> array.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupDeviceCreateInfoKhx.PhysicalDevices">
            <summary>
            A pointer to an array of <see cref="T:VulkanCore.PhysicalDevice"/> handles belonging to the same
            device group.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.DeviceGroupDeviceCreateInfoKhx.#ctor(System.Int32,System.IntPtr,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.DeviceGroupDeviceCreateInfoKhx"/> structure.
            </summary>
            <param name="physicalDeviceCount">
            The number of elements in the <paramref name="physicalDevices"/> array.
            </param>
            <param name="physicalDevices">
            A pointer to an array of <see cref="T:VulkanCore.PhysicalDevice"/> handles belonging to the same
            device group.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khx.BindImageMemorySwapchainInfoKhx">
            <summary>
            Structure specifying swapchain image memory to bind to.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindImageMemorySwapchainInfoKhx.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindImageMemorySwapchainInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindImageMemorySwapchainInfoKhx.Swapchain">
            <summary>
            Is 0 or a <see cref="T:VulkanCore.Khr.SwapchainKhr"/> handle.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.BindImageMemorySwapchainInfoKhx.ImageIndex">
            <summary>
            An image index within <see cref="F:VulkanCore.Khx.BindImageMemorySwapchainInfoKhx.Swapchain"/>.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.BindImageMemorySwapchainInfoKhx.#ctor(VulkanCore.Khr.SwapchainKhr,System.Int32,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.BindImageMemorySwapchainInfoKhx"/> structure.
            </summary>
            <param name="swapchain">Is <c>null</c> or a <see cref="T:VulkanCore.Khr.SwapchainKhr"/> handle.</param>
            <param name="imageIndex">An image index within <see cref="F:VulkanCore.Khx.BindImageMemorySwapchainInfoKhx.Swapchain"/>.</param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khx.DeviceGroupSwapchainCreateInfoKhx">
            <summary>
            Structure specifying parameters of a newly created swapchain object.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupSwapchainCreateInfoKhx.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupSwapchainCreateInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupSwapchainCreateInfoKhx.Modes">
            <summary>
            A bitfield of modes that the swapchain can be used with.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.DeviceGroupSwapchainCreateInfoKhx.#ctor(VulkanCore.Khx.DeviceGroupPresentModesKhx,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.DeviceGroupSwapchainCreateInfoKhx"/> structure.
            </summary>
            <param name="modes">A bitfield of modes that the swapchain can be used with.</param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khx.DeviceGroupPresentInfoKhx">
            <summary>
            Mode and mask controlling which physical devices' images are presented.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupPresentInfoKhx.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupPresentInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupPresentInfoKhx.SwapchainCount">
            <summary>
            Is zero or the number of elements in <see cref="F:VulkanCore.Khx.DeviceGroupPresentInfoKhx.DeviceMasks"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupPresentInfoKhx.DeviceMasks">
            <summary>
            An array of device masks, one for each element of <see cref="F:VulkanCore.Khr.PresentInfoKhr.Swapchains"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupPresentInfoKhx.Mode">
            <summary>
            The device group present mode that will be used for this present.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.DeviceGroupPresentInfoKhx.#ctor(System.Int32,System.Int32*,VulkanCore.Khx.DeviceGroupPresentModesKhx,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.DeviceGroupPresentInfoKhx"/> structure.
            </summary>
            <param name="swapchainCount">Is zero or the number of elements in <see cref="F:VulkanCore.Khx.DeviceGroupPresentInfoKhx.DeviceMasks"/>.</param>
            <param name="deviceMasks">An array of device masks, one for each element of <see cref="F:VulkanCore.Khr.PresentInfoKhr.Swapchains"/>.</param>
            <param name="mode">The device group present mode that will be used for this present.</param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="F:VulkanCore.Khx.MemoryAllocateFlagsInfoKhx.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.MemoryAllocateFlagsInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.MemoryAllocateFlagsInfoKhx.Flags">
            <summary>
            A bitmask of flags controlling the allocation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.MemoryAllocateFlagsInfoKhx.DeviceMask">
            <summary>
            A mask of physical devices in the logical device, indicating that memory must be
            allocated on each device in the mask, if <see cref="F:VulkanCore.Khx.MemoryAllocateFlagsKhx.DeviceMask"/>
            is set.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.MemoryAllocateFlagsInfoKhx.#ctor(VulkanCore.Khx.MemoryAllocateFlagsKhx,System.Int32,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.MemoryAllocateFlagsInfoKhx"/> structure.
            </summary>
            <param name="flags">A bitmask of flags controlling the allocation.</param>
            <param name="deviceMask">A mask of physical devices in the logical device, indicating that memory must be
            allocated on each device in the mask, if <see cref="F:VulkanCore.Khx.MemoryAllocateFlagsKhx.DeviceMask"/>
            is set.</param>
            <param name="next">Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.</param>
        </member>
        <member name="T:VulkanCore.Khx.MemoryAllocateFlagsKhx">
            <summary>
            Bitmask specifying flags for a device memory allocation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.MemoryAllocateFlagsKhx.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.MemoryAllocateFlagsKhx.DeviceMask">
            <summary>
            Specifies that memory will be allocated for the devices in <see cref="F:VulkanCore.Khx.MemoryAllocateFlagsInfoKhx.DeviceMask"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Khx.ImageSwapchainCreateInfoKhx">
            <summary>
            Specify that an image will be bound to swapchain memory.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.ImageSwapchainCreateInfoKhx.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.ImageSwapchainCreateInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.ImageSwapchainCreateInfoKhx.Swapchain">
            <summary>
            Is 0 or a handle of an <see cref="T:VulkanCore.Khr.SwapchainKhr"/> that the image will be bound to.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.ImageSwapchainCreateInfoKhx.#ctor(VulkanCore.Khr.SwapchainKhr,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.ImageSwapchainCreateInfoKhx"/> structure.
            </summary>
            <param name="swapchain">
            Is <c>null</c> or a handle of an <see cref="T:VulkanCore.Khr.SwapchainKhr"/> that the image will be bound to.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khx.DeviceGroupBindSparseInfoKhx">
            <summary>
            Structure indicating which instances are bound.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupBindSparseInfoKhx.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupBindSparseInfoKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupBindSparseInfoKhx.ResourceDeviceIndex">
            <summary>
            A device index indicating which instance of the resource is bound.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.DeviceGroupBindSparseInfoKhx.MemoryDeviceIndex">
            <summary>
            A device index indicating which instance of the memory the resource instance is bound to.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.DeviceGroupBindSparseInfoKhx.#ctor(System.Int32,System.Int32,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Khx.DeviceGroupBindSparseInfoKhx"/> structure.
            </summary>
            <param name="resourceDeviceIndex">
            A device index indicating which instance of the resource is bound.
            </param>
            <param name="memoryDeviceIndex">
            A device index indicating which instance of the memory the resource instance is bound to.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Khx.InstanceExtensions">
            <summary>
            Provides experimental Khronos specific extension methods for the <see cref="T:VulkanCore.Instance"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.InstanceExtensions.EnumeratePhysicalDeviceGroupsKhx(VulkanCore.Instance)">
            <summary>
            Enumerates groups of physical devices that can be used to create a single logical device.
            </summary>
            <param name="instance">A handle to a previously created Vulkan instance.</param>
            <returns>An array of <see cref="T:VulkanCore.Khx.PhysicalDeviceGroupPropertiesKhx"/> structures.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Khx.PhysicalDeviceGroupPropertiesKhx">
            <summary>
            Structure specifying physical device group properties.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PhysicalDeviceGroupPropertiesKhx.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PhysicalDeviceGroupPropertiesKhx.PhysicalDevices">
            <summary>
            An array of physical device handles representing all physical devices in the group.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PhysicalDeviceGroupPropertiesKhx.SubsetAllocation">
            <summary>
            Indicates whether logical devices created from the group support allocating device memory
            on a subset of devices, via the <see cref="F:VulkanCore.Khx.MemoryAllocateFlagsInfoKhx.DeviceMask"/>
            member. If this is <c>false</c>, then all device memory allocations are made across all
            physical devices in the group. If <see cref="F:VulkanCore.Khx.PhysicalDeviceGroupPropertiesKhx.PhysicalDevices"/> length is 1, then <see
            cref="F:VulkanCore.Khx.PhysicalDeviceGroupPropertiesKhx.SubsetAllocation"/> must be <c>false</c>.
            </summary>
        </member>
        <member name="T:VulkanCore.Khx.PhysicalDeviceExtensions">
            <summary>
            Provides experimental Khronos specific extension methods for the <see cref="T:VulkanCore.PhysicalDevice"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Khx.PhysicalDeviceExtensions.GetPresentRectanglesKhx(VulkanCore.PhysicalDevice,VulkanCore.Khr.SurfaceKhr)">
            <summary>
            Query present rectangles for a surface on a physical device.
            <para>
            When using <see cref="F:VulkanCore.Khx.DeviceGroupPresentModesKhx.LocalMultiDevice"/>, the application may
            need to know which regions of the surface are used when presenting locally on each
            physical device.
            </para>
            <para>
            Presentation of swapchain images to this surface need only have valid contents in the
            regions returned by this command.
            </para>
            </summary>
            <param name="physicalDevice">The physical device.</param>
            <param name="surface">The surface.</param>
            <returns>An array of <see cref="T:VulkanCore.Rect2D"/> structures.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Khx.PhysicalDeviceMultiviewPropertiesKhx">
            <summary>
            Structure describing multiview limits that can be supported by an implementation.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PhysicalDeviceMultiviewPropertiesKhx.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PhysicalDeviceMultiviewPropertiesKhx.MaxMultiviewViewCount">
            <summary>
            Max number of views in a subpass.
            </summary>
        </member>
        <member name="F:VulkanCore.Khx.PhysicalDeviceMultiviewPropertiesKhx.MaxMultiviewInstanceIndex">
            <summary>
            Max instance index for a draw in a multiview subpass.
            </summary>
        </member>
        <member name="T:VulkanCore.Mvk.InstanceExtensions">
            <summary>
            Provides Brenwill Workshop specific extension methods for the <see cref="T:VulkanCore.Instance"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Mvk.InstanceExtensions.CreateIOSSurfaceMvk(VulkanCore.Instance,VulkanCore.Mvk.IOSSurfaceCreateInfoMvk,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object for an iOS UIView.
            </summary>
            <param name="instance">The instance with which to associate the surface.</param>
            <param name="createInfo">
            Structure containing parameters affecting the creation of the surface object.
            </param>
            <param name="allocator">
            The allocator used for host memory allocated for the surface object when there is no more
            specific allocator available
            </param>
            <returns>The created surface object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Mvk.InstanceExtensions.CreateMacOSSurfaceMvk(VulkanCore.Instance,VulkanCore.Mvk.MacOSSurfaceCreateInfoMvk,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object for a macOS NSView.
            </summary>
            <param name="instance">The instance with which to associate the surface.</param>
            <param name="createInfo">
            Structure containing parameters affecting the creation of the surface object.
            </param>
            <param name="allocator">
            The allocator used for host memory allocated for the surface object when there is no more
            specific allocator available.
            </param>
            <returns>The created surface object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Mvk.IOSSurfaceCreateInfoMvk">
            <summary>
            Structure specifying parameters of a newly created iOS surface object.
            </summary>
        </member>
        <member name="F:VulkanCore.Mvk.IOSSurfaceCreateInfoMvk.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Mvk.IOSSurfaceCreateInfoMvk.View">
            <summary>
            Must be a valid <c>UIView</c> and must be backed by a <c>CALayer</c> instance of type <c>CAMetalLayer</c>.
            </summary>
        </member>
        <member name="T:VulkanCore.Mvk.IOSSurfaceCreateFlagsMvk">
            Is reserved for future use.
        </member>
        <member name="T:VulkanCore.Mvk.MacOSSurfaceCreateInfoMvk">
            <summary>
            Structure specifying parameters of a newly created macOS surface object.
            </summary>
        </member>
        <member name="F:VulkanCore.Mvk.MacOSSurfaceCreateInfoMvk.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Mvk.MacOSSurfaceCreateInfoMvk.View">
            <summary>
            Must be a valid <c>NSView</c> and must be backed by a <c>CALayer</c> instance of type <c>CAMetalLayer</c>.
            </summary>
        </member>
        <member name="T:VulkanCore.Mvk.MacOSSurfaceCreateFlagsMvk">
            Is reserved for future use.
        </member>
        <member name="T:VulkanCore.NN.InstanceExtensions">
            <summary>
            Provides Nintendo specific extension methods for the <see cref="T:VulkanCore.Instance"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.NN.InstanceExtensions.CreateVISurfaceNN(VulkanCore.Instance,VulkanCore.NN.VISurfaceCreateInfoNN,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a <see cref="T:VulkanCore.Khr.SurfaceKhr"/> object for a VI layer.
            <para>
            During the lifetime of a surface created using a particular `NativeWindowHandle`, any
            attempts to create another surface for the same `Layer` and any attempts to connect to
            the same layer through other platform mechanisms will have undefined results.
            </para>
            <para>
            The <see cref="F:VulkanCore.Khr.SurfaceCapabilitiesKhr.CurrentExtent"/> of a VI surface is always
            undefined. Applications are expected to choose an appropriate size for the swapchain's
            <see cref="F:VulkanCore.Khr.SwapchainCreateInfoKhr.ImageExtent"/> (e.g., by matching the the result of a
            call to `GetDisplayResolution`).
            </para>
            </summary>
            <param name="instance">The <see cref="T:VulkanCore.Instance"/> to associate with the surface.</param>
            <param name="createInfo">
            The structure containing the parameters affecting the creation of the surface object.
            </param>
            <param name="allocator">
            The allocator used for host memory allocated for the surface object.
            </param>
            <returns>The resulting surface object handle.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.NN.VISurfaceCreateInfoNN">
            <summary>
            Structure specifying parameters of a newly created VI surface object.
            </summary>
        </member>
        <member name="F:VulkanCore.NN.VISurfaceCreateInfoNN.Window">
            <summary>
            The `NativeWindowHandle` for the `Layer` with which to associate the surface.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.CommandBufferExtensions">
            <summary>
            Provides NVIDIA specific extension methods for the <see cref="T:VulkanCore.CommandBuffer"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Nvx.CommandBufferExtensions.CmdProcessCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdProcessCommandsInfoNvx)">
            <summary>
            Performs the generation of commands on the device.
            </summary>
            <param name="commandBuffer">
            The primary command buffer in which the generation process takes space.
            </param>
            <param name="processCommandsInfo">
            The structure containing parameters affecting the processing of commands.
            </param>
        </member>
        <member name="M:VulkanCore.Nvx.CommandBufferExtensions.CmdReserveSpaceForCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdReserveSpaceForCommandsInfoNvx)">
            <summary>
            Perform a reservation of command buffer space.
            <para>
            The <paramref name="commandBuffer"/> must not have had a prior space reservation since
            its creation or the last reset.
            </para>
            <para>
            The state of the <paramref name="commandBuffer"/> must be legal to execute all commands
            within the sequence provided by the <see
            cref="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.IndirectCommandsLayout"/> member.
            </para>
            </summary>
            <param name="commandBuffer">
            The secondary command buffer in which the space for device-generated commands is reserved.
            </param>
            <param name="reserveSpaceInfo">
            The structure containing parameters affecting the reservation of command buffer space.
            </param>
        </member>
        <member name="T:VulkanCore.Nvx.CmdProcessCommandsInfoNvx">
            <summary>
            Structure specifying parameters for the generation of commands.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.ObjectTable">
            <summary>
            The <see cref="T:VulkanCore.Nvx.ObjectTableNvx"/> to be used for the generation process. Only registered
            objects at the time <see cref="M:VulkanCore.Nvx.CommandBufferExtensions.CmdReserveSpaceForCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdReserveSpaceForCommandsInfoNvx)"/>
            is called, will be taken into account for the reservation.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.IndirectCommandsLayout">
            <summary>
            The <see cref="T:VulkanCore.Nvx.IndirectCommandsLayoutNvx"/> that provides the command sequence to generate.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.IndirectCommandsTokens">
            <summary>
            Provides an array of <see cref="T:VulkanCore.Nvx.IndirectCommandsTokenNvx"/> that reference the input data
            for each token command.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.MaxSequencesCount">
            <summary>
            The maximum number of sequences for which command buffer space will be reserved. If <see
            cref="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.SequencesCountBuffer"/> is 0, this is also the actual number of sequences generated.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.TargetCommandBuffer">
            <summary>
            Can be the secondary <see cref="T:VulkanCore.CommandBuffer"/> in which the commands should be
            recorded. If <see cref="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.TargetCommandBuffer"/> is <see cref="F:System.IntPtr.Zero"/> an implicit
            reservation as well as execution takes place on the processing <see cref="T:VulkanCore.CommandBuffer"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.SequencesCountBuffer">
            <summary>
            Can be <see cref="T:VulkanCore.Buffer"/> from which the actual amount of sequences is sourced from as
            <see cref="T:System.Int32"/> value.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.SequencesCountOffset">
            <summary>
            The byte offset into <see cref="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.SequencesCountBuffer"/> where the count value is stored.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.SequencesIndexBuffer">
            <summary>
            Must be set if <see cref="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.IndirectCommandsLayout"/>'s <see
            cref="F:VulkanCore.Nvx.IndirectCommandsLayoutUsagesNvx.IndexedSequences"/> bit is set and provides the
            used sequence indices as <see cref="T:System.Int32"/> array. Otherwise it must be 0.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.SequencesIndexOffset">
            <summary>
            The byte offset into <see cref="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.SequencesIndexBuffer"/> where the index values start.
            </summary>
        </member>
        <member name="M:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.#ctor(VulkanCore.Nvx.ObjectTableNvx,VulkanCore.Nvx.IndirectCommandsLayoutNvx,VulkanCore.Nvx.IndirectCommandsTokenNvx[],System.Int32,VulkanCore.CommandBuffer,VulkanCore.Buffer,System.Int64,VulkanCore.Buffer,System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Nvx.CmdProcessCommandsInfoNvx"/> structure.
            </summary>
            <param name="objectTable">
            The <see cref="T:VulkanCore.Nvx.ObjectTableNvx"/> to be used for the generation process. Only registered
            objects at the time <see cref="M:VulkanCore.Nvx.CommandBufferExtensions.CmdReserveSpaceForCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdReserveSpaceForCommandsInfoNvx)"/>
            is called, will be taken into account for the reservation.
            </param>
            <param name="indirectCommandsLayout">
            The <see cref="T:VulkanCore.Nvx.IndirectCommandsLayoutNvx"/> that provides the command sequence to generate.
            </param>
            <param name="indirectCommandsTokens">
            Provides an array of <see cref="T:VulkanCore.Nvx.IndirectCommandsTokenNvx"/> that reference the input data
            for each token command.
            </param>
            <param name="maxSequencesCount">
            The maximum number of sequences for which command buffer space will be reserved. If <see
            cref="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.SequencesCountBuffer"/> is 0, this is also the actual number of sequences generated.
            </param>
            <param name="targetCommandBuffer">
            Can be the secondary <see cref="T:VulkanCore.CommandBuffer"/> in which the commands should be
            recorded. If <c>null</c> an implicit reservation as well as execution takes place on the
            processing <see cref="T:VulkanCore.CommandBuffer"/>.
            </param>
            <param name="sequencesCountBuffer">
            Can be <see cref="T:VulkanCore.Buffer"/> from which the actual amount of sequences is sourced from as
            <see cref="T:System.Int32"/> value.
            </param>
            <param name="sequencesCountOffset">
            The byte offset into <see cref="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.SequencesCountBuffer"/> where the count value is stored.
            </param>
            <param name="sequencesIndexBuffer">
            Must be set if <see cref="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.IndirectCommandsLayout"/>'s <see
            cref="F:VulkanCore.Nvx.IndirectCommandsLayoutUsagesNvx.IndexedSequences"/> bit is set and provides the
            used sequence indices as <see cref="T:System.Int32"/> array. Otherwise it must be 0.
            </param>
            <param name="sequencesIndexOffset">
            The byte offset into <see cref="F:VulkanCore.Nvx.CmdProcessCommandsInfoNvx.SequencesIndexBuffer"/> where the index values start.
            </param>
        </member>
        <member name="T:VulkanCore.Nvx.IndirectCommandsTokenNvx">
            <summary>
            Structure specifying parameters for the reservation of command buffer space.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsTokenNvx.TokenType">
            <summary>
            Specifies the token command type.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsTokenNvx.Buffer">
            <summary>
            Specifies the <see cref="T:VulkanCore.Buffer"/> storing the functional arguments for each
            squence. These argumetns can be written by the device.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsTokenNvx.Offset">
            <summary>
            Specified an offset into <see cref="F:VulkanCore.Nvx.IndirectCommandsTokenNvx.Buffer"/> where the arguments start.
            </summary>
        </member>
        <member name="M:VulkanCore.Nvx.IndirectCommandsTokenNvx.#ctor(VulkanCore.Nvx.IndirectCommandsTokenTypeNvx,VulkanCore.Buffer,System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Nvx.IndirectCommandsTokenNvx"/> structure.
            </summary>
            <param name="tokenType">Specifies the token command type.</param>
            <param name="buffer">
            Specifies the <see cref="T:VulkanCore.Buffer"/> storing the functional arguments for each
            squence. These argumetns can be written by the device.
            </param>
            <param name="offset">
            Specified an offset into <see cref="F:VulkanCore.Nvx.IndirectCommandsTokenNvx.Buffer"/> where the arguments start.
            </param>
        </member>
        <member name="T:VulkanCore.Nvx.CmdReserveSpaceForCommandsInfoNvx">
            <summary>
            Structure specifying parameters for the reservation of command buffer space.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.CmdReserveSpaceForCommandsInfoNvx.ObjectTable">
            <summary>
            The <see cref="T:VulkanCore.Nvx.ObjectTableNvx"/> to be used for the generation process. Only registered
            objects at the time <see cref="M:VulkanCore.Nvx.CommandBufferExtensions.CmdReserveSpaceForCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdReserveSpaceForCommandsInfoNvx)"/>
            is called, will be taken into account for the reservation.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.CmdReserveSpaceForCommandsInfoNvx.IndirectCommandsLayout">
            <summary>
            The <see cref="T:VulkanCore.Nvx.IndirectCommandsLayoutNvx"/> that must also be used at generation time.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.CmdReserveSpaceForCommandsInfoNvx.MaxSequencesCount">
            <summary>
            The maximum number of sequences for which command buffer space will be reserved.
            </summary>
        </member>
        <member name="M:VulkanCore.Nvx.CmdReserveSpaceForCommandsInfoNvx.#ctor(VulkanCore.Nvx.ObjectTableNvx,VulkanCore.Nvx.IndirectCommandsLayoutNvx,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Nvx.CmdReserveSpaceForCommandsInfoNvx"/> structure.
            </summary>
            <param name="objectTable">
            The <see cref="T:VulkanCore.Nvx.ObjectTableNvx"/> to be used for the generation process. Only registered
            objects at the time <see cref="M:VulkanCore.Nvx.CommandBufferExtensions.CmdReserveSpaceForCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdReserveSpaceForCommandsInfoNvx)"/>
            is called, will be taken into account for the reservation.
            </param>
            <param name="indirectCommandsLayout">
            The <see cref="T:VulkanCore.Nvx.IndirectCommandsLayoutNvx"/> that must also be used at generation time.
            </param>
            <param name="maxSequencesCount">
            The maximum number of sequences for which command buffer space will be reserved.
            </param>
        </member>
        <member name="T:VulkanCore.Nvx.DeviceExtensions">
            <summary>
            Provides NVIDIA specific extension methods for the <see cref="T:VulkanCore.Device"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Nvx.DeviceExtensions.CreateIndirectCommandsLayoutNvx(VulkanCore.Device,VulkanCore.Nvx.IndirectCommandsLayoutCreateInfoNvx,System.Nullable{VulkanCore.AllocationCallbacks})">
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Nvx.DeviceExtensions.CreateObjectTableNvx(VulkanCore.Device,VulkanCore.Nvx.ObjectTableCreateInfoNvx,System.Nullable{VulkanCore.AllocationCallbacks})">
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.Nvx.IndirectCommandsLayoutNvx">
            <summary>
            Opaque handle to an indirect commands layout object.
            <para>
            The device-side command generation happens through an iterative processing of an atomic
            sequence comprised of command tokens, which are represented by <see cref="T:VulkanCore.Nvx.IndirectCommandsLayoutNvx"/>.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.Nvx.IndirectCommandsLayoutNvx.Parent">
            <summary>
            Gets the parent of this resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Nvx.IndirectCommandsLayoutNvx.Dispose">
            <summary>
            Destroy an indirect commands layout object.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.IndirectCommandsLayoutCreateInfoNvx">
            <summary>
            Structure specifying the parameters of a newly created indirect commands layout object.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsLayoutCreateInfoNvx.PipelineBindPoint">
            <summary>
            The <see cref="T:VulkanCore.PipelineBindPoint"/> that this layout targets.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsLayoutCreateInfoNvx.Flags">
            <summary>
            A bitmask providing usage hints of this layout.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsLayoutCreateInfoNvx.Tokens">
            <summary>
            An array describing each command token in detail. See <see
            cref="T:VulkanCore.Nvx.IndirectCommandsTokenTypeNvx"/> and <see cref="T:VulkanCore.Nvx.IndirectCommandsLayoutTokenNvx"/>
            for details.
            </summary>
        </member>
        <member name="M:VulkanCore.Nvx.IndirectCommandsLayoutCreateInfoNvx.#ctor(VulkanCore.PipelineBindPoint,VulkanCore.Nvx.IndirectCommandsLayoutUsagesNvx,VulkanCore.Nvx.IndirectCommandsLayoutTokenNvx[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Nvx.IndirectCommandsLayoutCreateInfoNvx"/> structure.
            </summary>
            <param name="pipelineBindPoint">
            The <see cref="T:VulkanCore.PipelineBindPoint"/> that this layout targets.
            </param>
            <param name="flags">A bitmask providing usage hints of this layout.</param>
            <param name="tokens">
            An array describing each command token in detail. See <see
            cref="T:VulkanCore.Nvx.IndirectCommandsTokenTypeNvx"/> and <see cref="T:VulkanCore.Nvx.IndirectCommandsLayoutTokenNvx"/>
            for details.
            </param>
        </member>
        <member name="T:VulkanCore.Nvx.IndirectCommandsLayoutTokenNvx">
            <summary>
            Structure specifying the details of an indirect command layout token.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsLayoutTokenNvx.TokenType">
            <summary>
            Specifies the token command type.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsLayoutTokenNvx.BindingUnit">
            <summary>
            Has a different meaning depending on the type.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsLayoutTokenNvx.DynamicCount">
            <summary>
            Has a different meaning depending on the type.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsLayoutTokenNvx.Divisor">
            <summary>
            Defines the rate at which the input data buffers are accessed.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.IndirectCommandsTokenTypeNvx">
            <summary>
            Enum specifying the token command type.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsTokenTypeNvx.Pipeline">
            <summary>
            Equivalent command: <see cref="M:VulkanCore.CommandBuffer.CmdBindPipeline(VulkanCore.PipelineBindPoint,VulkanCore.Pipeline)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsTokenTypeNvx.DescriptorSet">
            <summary>
            Equivalent command: <see cref="M:VulkanCore.CommandBuffer.CmdBindDescriptorSets(VulkanCore.PipelineBindPoint,VulkanCore.PipelineLayout,System.Int32,VulkanCore.DescriptorSet[],System.Int32[])"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsTokenTypeNvx.IndexBuffer">
            <summary>
            Equivalent command: <see cref="M:VulkanCore.CommandBuffer.CmdBindIndexBuffer(VulkanCore.Buffer,System.Int64,VulkanCore.IndexType)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsTokenTypeNvx.VertexBuffer">
            <summary>
            Equivalent command: <see cref="M:VulkanCore.CommandBuffer.CmdBindVertexBuffers(System.Int32,System.Int32,VulkanCore.Buffer[],System.Int64[])"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsTokenTypeNvx.PushConstant">
            <summary>
            Equivalent command: <see cref="M:VulkanCore.CommandBuffer.CmdPushConstants(VulkanCore.PipelineLayout,VulkanCore.ShaderStages,System.Int32,System.Int32,System.IntPtr)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsTokenTypeNvx.DrawIndexed">
            <summary>
            Equivalent command: <see cref="M:VulkanCore.CommandBuffer.CmdDrawIndexedIndirect(VulkanCore.Buffer,System.Int64,System.Int32,System.Int32)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsTokenTypeNvx.Draw">
            <summary>
            Equivalent command: <see cref="M:VulkanCore.CommandBuffer.CmdDrawIndirect(VulkanCore.Buffer,System.Int64,System.Int32,System.Int32)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsTokenTypeNvx.Dispatch">
            <summary>
            Equivalent command: <see cref="M:VulkanCore.CommandBuffer.CmdDispatchIndirect(VulkanCore.Buffer,System.Int64)"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.IndirectCommandsLayoutUsagesNvx">
            <summary>
            Bitmask specifying allowed usage of a indirect commands layout.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsLayoutUsagesNvx.UnorderedSequences">
            <summary>
            Indicates that the processing of sequences can happen at an implementation-dependent
            order, which is not guaranteed to be coherent across multiple invocations.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsLayoutUsagesNvx.SparseSequences">
            <summary>
            Indicates that there is likely a high difference between allocated number of sequences
            and actually used.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsLayoutUsagesNvx.EmptyExecutions">
            <summary>
            Indicates that there are likely many draw or dispatch calls that are zero-sized (zero grid
            dimension, no primitives to render).
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.IndirectCommandsLayoutUsagesNvx.IndexedSequences">
            <summary>
            Indicates that the input data for the sequences is not implicitly indexed from
            0..sequences used but a user provided <see cref="T:VulkanCore.Buffer"/> encoding the index is provided.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.ObjectTableNvx">
            <summary>
            Opaque handle to an object table.
            <para>The device-side bindings are registered inside a table.</para>
            </summary>
        </member>
        <member name="P:VulkanCore.Nvx.ObjectTableNvx.Parent">
            <summary>
            Gets the parent of this resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Nvx.ObjectTableNvx.RegisterObjects(VulkanCore.Nvx.ObjectTableEntryNvx[0:,0:],System.Int32[])">
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Nvx.ObjectTableNvx.UnregisterObjects(VulkanCore.Nvx.ObjectEntryTypeNvx[],System.Int32[])">
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Nvx.ObjectTableNvx.Dispose">
            <summary>
            Destroy an object table.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.ObjectTableCreateInfoNvx">
            <summary>
            Structure specifying the parameters of a newly created object table.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableCreateInfoNvx.ObjectEntryTypes">
            <summary>
            An array providing the entry type of a given configuration.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableCreateInfoNvx.ObjectEntryCounts">
            <summary>
            An array of how many objects can be registered in the table.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableCreateInfoNvx.ObjectEntryUsageFlags">
            <summary>
            An array of bitmasks describing the binding usage of the entry.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableCreateInfoNvx.MaxUniformBuffersPerDescriptor">
            <summary>
            The maximum number of <see cref="F:VulkanCore.DescriptorType.UniformBuffer"/> or <see
            cref="F:VulkanCore.DescriptorType.UniformBufferDynamic"/> used by any single registered <see
            cref="T:VulkanCore.DescriptorSet"/> in this table.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableCreateInfoNvx.MaxStorageBuffersPerDescriptor">
            <summary>
            The maximum number of <see cref="F:VulkanCore.DescriptorType.StorageBuffer"/> or <see
            cref="F:VulkanCore.DescriptorType.StorageBufferDynamic"/> used by any single registered <see
            cref="T:VulkanCore.DescriptorSet"/> in this table.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableCreateInfoNvx.MaxStorageImagesPerDescriptor">
            <summary>
            The maximum number of <see cref="F:VulkanCore.DescriptorType.StorageImage"/> or <see
            cref="F:VulkanCore.DescriptorType.StorageTexelBuffer"/> used by any single registered <see
            cref="T:VulkanCore.DescriptorSet"/> in this table.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableCreateInfoNvx.MaxSampledImagesPerDescriptor">
            <summary>
            The maximum number of <see cref="F:VulkanCore.DescriptorType.Sampler"/>, <see
            cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/>, <see
            cref="F:VulkanCore.DescriptorType.UniformTexelBuffer"/> or <see
            cref="F:VulkanCore.DescriptorType.InputAttachment"/> used by any single registered <see
            cref="T:VulkanCore.DescriptorSet"/> in this table.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableCreateInfoNvx.MaxPipelineLayouts">
            <summary>
            The maximum number of unique <see cref="T:VulkanCore.PipelineLayout"/> used by any registered <see
            cref="T:VulkanCore.DescriptorSet"/> or <see cref="T:VulkanCore.Pipeline"/> in this table.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.ObjectEntryUsagesNvx">
            <summary>
            Bitmask specifying allowed usage of an object entry.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectEntryUsagesNvx.Graphics">
            <summary>
            Indicates that the resource is bound to <see cref="F:VulkanCore.PipelineBindPoint.Graphics"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectEntryUsagesNvx.Compute">
            <summary>
            Indicates that the resource is bound to <see cref="F:VulkanCore.PipelineBindPoint.Compute"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.ObjectTableEntryNvx">
            <summary>
            Common parameters of an object table resource entry.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableEntryNvx.Type">
            <summary>
            Defines the entry type.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableEntryNvx.Flags">
            <summary>
            Defines which <see cref="T:VulkanCore.PipelineBindPoint"/> the resource can be used with.
            <para>Some entry types allow only a single flag to be set.</para>
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.ObjectEntryTypeNvx">
            <summary>
            Enum specifying object table entry type.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectEntryTypeNvx.DescriptorSet">
            <summary>
            Indicates a <see cref="F:VulkanCore.Nvx.ObjectEntryTypeNvx.DescriptorSet"/> resource entry that is registered via <see cref="T:VulkanCore.Nvx.ObjectTableDescriptorSetEntryNvx"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectEntryTypeNvx.Pipeline">
            <summary>
            Indicates a <see cref="F:VulkanCore.Nvx.ObjectEntryTypeNvx.Pipeline"/> resource entry that is registered via <see cref="T:VulkanCore.Nvx.ObjectTablePipelineEntryNvx"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectEntryTypeNvx.IndexBuffer">
            <summary>
            Indicates a <see cref="T:VulkanCore.Buffer"/> resource entry that is registered via <see cref="T:VulkanCore.Nvx.ObjectTableIndexBufferEntryNvx"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectEntryTypeNvx.VertexBuffer">
            <summary>
            Indicates a <see cref="T:VulkanCore.Buffer"/> resource entry that is registered via <see cref="T:VulkanCore.Nvx.ObjectTableVertexBufferEntryNvx"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectEntryTypeNvx.PushConstant">
            <summary>
            Indicates the resource entry is registered via <see cref="T:VulkanCore.Nvx.ObjectTablePushConstantEntryNvx"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.ObjectTablePipelineEntryNvx">
            <summary>
            Parameters of an object table pipeline entry.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTablePipelineEntryNvx.Type">
            <summary>
            Defines the entry type.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTablePipelineEntryNvx.Flags">
            <summary>
            Defines which <see cref="T:VulkanCore.PipelineBindPoint"/> the resource can be used with.
            <para>Some entry types allow only a single flag to be set.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTablePipelineEntryNvx.Pipeline">
            <summary>
            Specifies the <see cref="T:VulkanCore.Pipeline"/> that this resource entry references.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.ObjectTableDescriptorSetEntryNvx">
            <summary>
            Parameters of an object table descriptor set entry.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableDescriptorSetEntryNvx.Type">
            <summary>
            Defines the entry type.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableDescriptorSetEntryNvx.Flags">
            <summary>
            Defines which <see cref="T:VulkanCore.PipelineBindPoint"/> the resource can be used with.
            <para>Some entry types allow only a single flag to be set.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableDescriptorSetEntryNvx.PipelineLayout">
            <summary>
            Specifies the <see cref="T:VulkanCore.PipelineLayout"/> that the <see
            cref="F:VulkanCore.Nvx.ObjectTableDescriptorSetEntryNvx.DescriptorSet"/> is used with.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableDescriptorSetEntryNvx.DescriptorSet">
            <summary>
            Specifies the <see cref="T:VulkanCore.DescriptorSet"/> that can be bound with this entry.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.ObjectTableVertexBufferEntryNvx">
            <summary>
            Parameters of an object table vertex buffer entry.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableVertexBufferEntryNvx.Type">
            <summary>
            Defines the entry type.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableVertexBufferEntryNvx.Flags">
            <summary>
            Defines which <see cref="T:VulkanCore.PipelineBindPoint"/> the resource can be used with.
            <para>Some entry types allow only a single flag to be set.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableVertexBufferEntryNvx.Buffer">
            <summary>
            Specifies the <see cref="T:VulkanCore.Buffer"/> that can be bound as vertex buffer.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.ObjectTableIndexBufferEntryNvx">
            <summary>
            Parameters of an object table index buffer entry.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableIndexBufferEntryNvx.Type">
            <summary>
            Defines the entry type.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableIndexBufferEntryNvx.Flags">
            <summary>
            Defines which <see cref="T:VulkanCore.PipelineBindPoint"/> the resource can be used with.
            <para>Some entry types allow only a single flag to be set.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableIndexBufferEntryNvx.Buffer">
            <summary>
            Specifies the <see cref="T:VulkanCore.Buffer"/> that can be bound as index buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTableIndexBufferEntryNvx.IndexType">
            <summary>
            Specifies the <see cref="T:VulkanCore.IndexType"/> used with this index buffer.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.ObjectTablePushConstantEntryNvx">
            <summary>
            Parameters of an object table push constant entry.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTablePushConstantEntryNvx.Type">
            <summary>
            Defines the entry type.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTablePushConstantEntryNvx.Flags">
            <summary>
            Defines which <see cref="T:VulkanCore.PipelineBindPoint"/> the resource can be used with.
            <para>Some entry types allow only a single flag to be set.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTablePushConstantEntryNvx.PipelineLayout">
            <summary>
            Specifies the <see cref="T:VulkanCore.PipelineLayout"/> that push constants using this object index are used with.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.ObjectTablePushConstantEntryNvx.StageFlags">
            <summary>
            The <see cref="T:VulkanCore.ShaderStages"/> that push constants using this object index are used with.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.PhysicalDeviceExtensions">
            <summary>
            Provides NVIDIA specific extension methods for the <see cref="T:VulkanCore.PhysicalDevice"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.Nvx.PhysicalDeviceExtensions.GetGeneratedCommandsPropertiesNvx(VulkanCore.PhysicalDevice)">
            <summary>
            Returns device-generated commands related properties of a physical device.
            </summary>
            <param name="physicalDevice">
            The handle to the physical device whose properties will be queried.
            </param>
            <returns>Structures that will be filled with returned information.</returns>
        </member>
        <member name="T:VulkanCore.Nvx.DeviceGeneratedCommandsFeaturesNvx">
            <summary>
            Structure specifying physical device support.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.DeviceGeneratedCommandsFeaturesNvx.ComputeBindingPointSupport">
            <summary>
            Indicates whether the <see cref="T:VulkanCore.Nvx.ObjectTableNvx"/> supports entries with <see
            cref="F:VulkanCore.Nvx.ObjectEntryUsagesNvx.Graphics"/> bit set and <see
            cref="T:VulkanCore.Nvx.IndirectCommandsLayoutNvx"/> supports <see cref="F:VulkanCore.PipelineBindPoint.Compute"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.DeviceGeneratedCommandsLimitsNvx">
            <summary>
            Structure specifying physical device limits.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.DeviceGeneratedCommandsLimitsNvx.MaxIndirectCommandsLayoutTokenCount">
            <summary>
            The maximum number of tokens in <see cref="T:VulkanCore.Nvx.IndirectCommandsLayoutNvx"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.DeviceGeneratedCommandsLimitsNvx.MaxObjectEntryCounts">
            <summary>
            The maximum number of entries per resource type in <see cref="T:VulkanCore.Nvx.ObjectTableNvx"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.DeviceGeneratedCommandsLimitsNvx.MinSequenceCountBufferOffsetAlignment">
            <summary>
            The minimum alignment for memory addresses optionally used in <see cref="M:VulkanCore.Nvx.CommandBufferExtensions.CmdProcessCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdProcessCommandsInfoNvx)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.DeviceGeneratedCommandsLimitsNvx.MinSequenceIndexBufferOffsetAlignment">
            <summary>
            The minimum alignment for memory addresses optionally used in <see cref="M:VulkanCore.Nvx.CommandBufferExtensions.CmdProcessCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdProcessCommandsInfoNvx)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.DeviceGeneratedCommandsLimitsNvx.MinCommandsTokenBufferOffsetAlignment">
            <summary>
            The minimum alignment for memory addresses optionally used in <see cref="M:VulkanCore.Nvx.CommandBufferExtensions.CmdProcessCommandsNvx(VulkanCore.CommandBuffer,VulkanCore.Nvx.CmdProcessCommandsInfoNvx)"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Nvx.PhysicalDeviceMultiviewPerViewAttributesPropertiesNvx">
            <summary>
            Structure describing multiview limits that can be supported by an implementation.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.PhysicalDeviceMultiviewPerViewAttributesPropertiesNvx.Next">
            <summary>
            Pointer to next structure.
            </summary>
        </member>
        <member name="F:VulkanCore.Nvx.PhysicalDeviceMultiviewPerViewAttributesPropertiesNvx.PerViewPositionAllComponents">
            <summary>
            Is <c>true</c> if the implementation supports per-view position values that differ in
            components other than the X component.
            </summary>
        </member>
        <member name="T:VulkanCore.NV.CommandBufferExtensions">
            <summary>
            Provides NVIDIA specific extension methods for the <see cref="T:VulkanCore.CommandBuffer"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.NV.CommandBufferExtensions.CmdSetViewportWScalingNV(VulkanCore.CommandBuffer,System.Int32,VulkanCore.NV.ViewportWScalingNV[])">
            <summary>
            Set the viewport W scaling on a command buffer.
            </summary>
            <param name="commandBuffer">The command buffer into which the command will be recorded.</param>
            <param name="firstViewport">
            The index of the first viewport whose parameters are updated by the command.
            </param>
            <param name="viewportWScalings">Structures specifying viewport parameters.</param>
        </member>
        <member name="T:VulkanCore.NV.ViewportWScalingNV">
            <summary>
            Structure specifying a viewport.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ViewportWScalingNV.XCoeff">
            <summary>
            The viewport's W scaling factor for x.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ViewportWScalingNV.YCoeff">
            <summary>
            The viewport's W scaling factor for y.
            </summary>
        </member>
        <member name="M:VulkanCore.NV.ViewportWScalingNV.#ctor(System.Single,System.Single)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.NV.ViewportWScalingNV"/> structure.
            </summary>
            <param name="xCoeff">The viewport's W scaling factor for x.</param>
            <param name="yCoeff">The viewport's W scaling factor for y.</param>
        </member>
        <member name="T:VulkanCore.NV.PipelineViewportWScalingStateCreateInfoNV">
            <summary>
            Structure specifying parameters of a newly created pipeline viewport W scaling state.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineViewportWScalingStateCreateInfoNV.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineViewportWScalingStateCreateInfoNV.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineViewportWScalingStateCreateInfoNV.ViewportWScalingEnable">
            <summary>
            The enable for viewport W scaling.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineViewportWScalingStateCreateInfoNV.ViewportCount">
            <summary>
            The number of viewports used by W scaling and must match the number of viewports in the
            pipeline if viewport W scaling is enabled.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineViewportWScalingStateCreateInfoNV.ViewportWScalings">
            <summary>
            Structures which define the W scaling parameters for the corresponding viewport. If the
            viewport W scaling state is dynamic, this member is ignored.
            </summary>
        </member>
        <member name="M:VulkanCore.NV.PipelineViewportWScalingStateCreateInfoNV.#ctor(System.Boolean,VulkanCore.NV.ViewportWScalingNV[],System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.NV.PipelineViewportWScalingStateCreateInfoNV"/> structure.
            </summary>
            <param name="viewportWScalingEnable">The enable for viewport W scaling.</param>
            <param name="viewportWScalings">
            Structures which define the W scaling parameters for the corresponding viewport. If the
            viewport W scaling state is dynamic, this member is ignored.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV">
            <summary>
            Use Windows keyex mutex mechanism to synchronize work.
            <para>
            When submitting work that operates on memory imported from a Direct3D 11 resource to a queue,
            the keyed mutex mechanism may be used in addition to Vulkan semaphores to synchronize the work.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.AcquireCount">
            <summary>
            the number of entries in the <see cref="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.AcquireSyncs"/>, <see cref="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.AcquireKeys"/>, and
            <see cref="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.AcquireTimeoutMilliseconds"/> arrays.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.AcquireSyncs">
            <summary>
            An array of <see cref="T:VulkanCore.DeviceMemory"/> objects which were imported from Direct3D 11 resources.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.AcquireKeys">
            <summary>
            Mutex key values to wait for prior to beginning the submitted work.
            <para>
            Entries refer to the keyed mutex associated with the corresponding entries in <see cref="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.AcquireSyncs"/>.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.AcquireTimeoutMilliseconds">
            <summary>
            Timeout values, in millisecond units, for each acquire specified in <see cref="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.AcquireKeys"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.ReleaseCount">
            <summary>
            The number of entries in the <see cref="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.ReleaseSyncs"/> and <see cref="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.ReleaseKeys"/> arrays.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.ReleaseSyncs">
            <summary>
            An array of <see cref="T:VulkanCore.DeviceMemory"/> objects which were imported from Direct3D 11 resources.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.ReleaseKeys">
            <summary>
            Mutex key values to set when the submitted work has completed.
            <para>
            Entries refer to the keyed mutex associated with the corresponding entries in <see cref="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.ReleaseSyncs"/>.
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.#ctor(VulkanCore.DeviceMemory[],System.Int64[],System.Int32[],VulkanCore.DeviceMemory[],System.Int64[],System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV"/> structure.
            </summary>
            <param name="acquireSyncs">
            An array of <see cref="T:VulkanCore.DeviceMemory"/> objects which were imported from Direct3D 11 resources.
            </param>
            <param name="acquireKeys">
            Mutex key values to wait for prior to beginning the submitted work.
            </param>
            <param name="acquireTimeoutMilliseconds">
            Timeout values, in millisecond units, for each acquire specified in <see cref="F:VulkanCore.NV.Win32KeyedMutexAcquireReleaseInfoNV.AcquireKeys"/>.
            </param>
            <param name="releaseSyncs">
            An array of <see cref="T:VulkanCore.DeviceMemory"/> objects which were imported from Direct3D 11 resources.
            </param>
            <param name="releaseKeys">
            An array of <see cref="T:VulkanCore.DeviceMemory"/> objects which were imported from Direct3D 11 resources.
            </param>
            <param name="next"></param>
        </member>
        <member name="T:VulkanCore.NV.DeviceMemoryExtensions">
            <summary>
            Provides NVIDIA specific extension methods for the <see cref="T:VulkanCore.DeviceMemory"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.NV.DeviceMemoryExtensions.GetWin32HandleNV(VulkanCore.DeviceMemory,VulkanCore.NV.ExternalMemoryHandleTypesNV)">
            <summary>
            Retrieve Win32 handle to a device memory object.
            </summary>
            <param name="deviceMemory">Opaque handle to a device memory object.</param>
            <param name="handleType">
            A bitmask containing a single bit specifying the type of handle requested.
            </param>
            <returns>A Windows HANDLE.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.NV.ExternalMemoryHandleTypesNV">
            <summary>
            Bitmask specifying external memory handle types.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExternalMemoryHandleTypesNV.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExternalMemoryHandleTypesNV.OpaqueWin32">
            <summary>
            Indicates a handle to memory returned by <see
            cref="M:VulkanCore.NV.DeviceMemoryExtensions.GetWin32HandleNV(VulkanCore.DeviceMemory,VulkanCore.NV.ExternalMemoryHandleTypesNV)"/> or, one duplicated from such a handle
            using <c>DuplicateHandle()</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExternalMemoryHandleTypesNV.OpaqueWin32Kmt">
            <summary>
            Indicates a handle to memory returned by <see cref="M:VulkanCore.NV.DeviceMemoryExtensions.GetWin32HandleNV(VulkanCore.DeviceMemory,VulkanCore.NV.ExternalMemoryHandleTypesNV)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExternalMemoryHandleTypesNV.D3D11Image">
            <summary>
            Indicates a valid NT handle to memory returned by
            <c>IDXGIResource1::ftext:CreateSharedHandle()</c>, or a handle duplicated from such a
            handle using <c>DuplicateHandle()</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExternalMemoryHandleTypesNV.D3D11ImageKmt">
            <summary>
            Indicates a handle to memory returned by <c>IDXGIResource::GetSharedHandle()</c>.
            </summary>
        </member>
        <member name="T:VulkanCore.NV.DedicatedAllocationMemoryAllocateInfoNV">
            <summary>
            Specify a dedicated memory allocation resource.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.DedicatedAllocationMemoryAllocateInfoNV.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.DedicatedAllocationMemoryAllocateInfoNV.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.DedicatedAllocationMemoryAllocateInfoNV.Image">
            <summary>
            Is <c>0</c> or a handle of an <see cref="T:VulkanCore.Image"/> which this memory will be
            bound to.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.DedicatedAllocationMemoryAllocateInfoNV.Buffer">
            <summary>
            Is <c>0</c> or a handle of a <see cref="T:VulkanCore.Buffer"/> which this memory will be
            bound to.
            </summary>
        </member>
        <member name="M:VulkanCore.NV.DedicatedAllocationMemoryAllocateInfoNV.#ctor(VulkanCore.Image,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.NV.DedicatedAllocationMemoryAllocateInfoNV"/> structure.
            </summary>
            <param name="image">
            Is <c>null</c> or an <see cref="T:VulkanCore.Image"/> which this memory will be bound to.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="M:VulkanCore.NV.DedicatedAllocationMemoryAllocateInfoNV.#ctor(VulkanCore.Buffer,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.NV.DedicatedAllocationMemoryAllocateInfoNV"/> structure.
            </summary>
            <param name="buffer">A buffer which this memory will be bound to.</param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.NV.DedicatedAllocationBufferCreateInfoNV">
            <summary>
            Specify that a buffer is bound to a dedicated memory resource.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.DedicatedAllocationBufferCreateInfoNV.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.DedicatedAllocationBufferCreateInfoNV.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.DedicatedAllocationBufferCreateInfoNV.DedicatedAllocation">
            <summary>
            Indicates whether the buffer will have a dedicated allocation bound to it.
            </summary>
        </member>
        <member name="M:VulkanCore.NV.DedicatedAllocationBufferCreateInfoNV.#ctor(System.Boolean,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.NV.DedicatedAllocationBufferCreateInfoNV"/> structure.
            </summary>
            <param name="dedicatedAllocation">
            Indicates whether the buffer will have a dedicated allocation bound to it.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.NV.DedicatedAllocationImageCreateInfoNV">
            <summary>
            Specify that an image is bound to a dedicated memory resource.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.DedicatedAllocationImageCreateInfoNV.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.DedicatedAllocationImageCreateInfoNV.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.DedicatedAllocationImageCreateInfoNV.DedicatedAllocation">
            <summary>
            Indicates whether the image will have a dedicated allocation bound to it.
            </summary>
        </member>
        <member name="M:VulkanCore.NV.DedicatedAllocationImageCreateInfoNV.#ctor(System.Boolean,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.NV.DedicatedAllocationBufferCreateInfoNV"/> structure.
            </summary>
            <param name="dedicatedAllocation">
            Indicates whether the image will have a dedicated allocation bound to it.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.NV.ImportMemoryWin32HandleInfoNV">
            <summary>
            Import Win32 memory created on the same physical device.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ImportMemoryWin32HandleInfoNV.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ImportMemoryWin32HandleInfoNV.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ImportMemoryWin32HandleInfoNV.HandleType">
            <summary>
            Is <c>0</c> or a <see cref="T:VulkanCore.NV.ExternalMemoryHandleTypesNV"/> value specifying the type of
            memory handle in handle.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ImportMemoryWin32HandleInfoNV.Handle">
            <summary>
            A Windows <c>HANDLE</c> referring to the memory.
            </summary>
        </member>
        <member name="M:VulkanCore.NV.ImportMemoryWin32HandleInfoNV.#ctor(System.IntPtr,VulkanCore.NV.ExternalMemoryHandleTypesNV,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.NV.ImportMemoryWin32HandleInfoNV"/> structure.
            </summary>
            <param name="handle">A Windows <c>HANDLE</c> referring to the memory.</param>
            <param name="handleType">
            Is <c>0</c> or a <see cref="T:VulkanCore.NV.ExternalMemoryHandleTypesNV"/> value specifying the type of
            memory handle in handle.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.NV.ExportMemoryAllocateInfoNV">
            <summary>
            Specify memory handle types that may be exported.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExportMemoryAllocateInfoNV.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExportMemoryAllocateInfoNV.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExportMemoryAllocateInfoNV.HandleTypes">
            <summary>
            Specifies one or more memory handle types that may be exported.
            <para>
            Multiple handle types may be requested for the same allocation as long as they are
            compatible, as reported by <see cref="M:VulkanCore.NV.PhysicalDeviceExtensions.GetExternalImageFormatPropertiesNV(VulkanCore.PhysicalDevice,VulkanCore.Format,VulkanCore.ImageType,VulkanCore.ImageTiling,VulkanCore.ImageUsages,VulkanCore.ImageCreateFlags,VulkanCore.NV.ExternalMemoryHandleTypesNV)"/>.
            </para>
            </summary>
        </member>
        <member name="M:VulkanCore.NV.ExportMemoryAllocateInfoNV.#ctor(VulkanCore.NV.ExternalMemoryHandleTypesNV,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.NV.ExportMemoryAllocateInfoNV"/> structure.
            </summary>
            <param name="handleTypes">
            Specifies one or more memory handle types that may be exported.
            <para>
            Multiple handle types may be requested for the same allocation as long as they are
            compatible, as reported by <see cref="M:VulkanCore.NV.PhysicalDeviceExtensions.GetExternalImageFormatPropertiesNV(VulkanCore.PhysicalDevice,VulkanCore.Format,VulkanCore.ImageType,VulkanCore.ImageTiling,VulkanCore.ImageUsages,VulkanCore.ImageCreateFlags,VulkanCore.NV.ExternalMemoryHandleTypesNV)"/>.
            </para>
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.NV.PhysicalDeviceExtensions">
            <summary>
            Provides NVIDIA specific extension methods for the <see cref="T:VulkanCore.PhysicalDevice"/> class.
            </summary>
        </member>
        <member name="M:VulkanCore.NV.PhysicalDeviceExtensions.GetExternalImageFormatPropertiesNV(VulkanCore.PhysicalDevice,VulkanCore.Format,VulkanCore.ImageType,VulkanCore.ImageTiling,VulkanCore.ImageUsages,VulkanCore.ImageCreateFlags,VulkanCore.NV.ExternalMemoryHandleTypesNV)">
            <summary>
            Determine image capabilities compatible with external memory handle types.
            </summary>
            <param name="physicalDevice">The physical device from which to query the image capabilities.</param>
            <param name="format">The image format, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.Format"/>.</param>
            <param name="type">The image type, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.ImageType"/>.</param>
            <param name="tiling">The image tiling, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.Tiling"/>.</param>
            <param name="usage">The intended usage of the image, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.Usage"/>.</param>
            <param name="flags">
            A bitmask describing additional parameters of the image, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.Flags"/>.
            </param>
            <param name="externalHandleType">
            Either one of the bits from <see cref="T:VulkanCore.NV.ExternalMemoryHandleTypesNV"/>, or <c>0</c>.
            </param>
            <returns>The structure in which capabilities are returned.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.NV.ExternalImageFormatPropertiesNV">
            <summary>
            Structure specifying external image format properties.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExternalImageFormatPropertiesNV.ImageFormatProperties">
            <summary>
            Will be filled in as when calling <see
            cref="M:VulkanCore.NV.PhysicalDeviceExtensions.vkGetPhysicalDeviceExternalImageFormatPropertiesNV(VulkanCore.PhysicalDevice)"/>, but
            the values returned may vary depending on the external handle type requested.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExternalImageFormatPropertiesNV.ExternalMemoryFeatures">
            <summary>
            A bitmask of <see cref="T:VulkanCore.NV.ExternalMemoryFeaturesNV"/> indicating properties of the external
            memory handle type being queried, or <c>0</c> if the external memory handle type is <c>0</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExternalImageFormatPropertiesNV.ExportFromImportedHandleTypes">
            <summary>
            A bitmask of <see cref="T:VulkanCore.NV.ExternalMemoryHandleTypesNV"/> containing a bit set for every
            external handle type that may be used to create memory from which the handles of the type
            can be exported, or <c>0</c> if the external memory handle type is <c>0</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExternalImageFormatPropertiesNV.CompatibleHandleTypes">
            <summary>
            A bitmask of <see cref="T:VulkanCore.NV.ExternalMemoryHandleTypesNV"/> containing a bit set for every
            external handle type that may be specified simultaneously with the handle type when
            calling <see cref="M:VulkanCore.Device.AllocateMemory(VulkanCore.MemoryAllocateInfo,System.Nullable{VulkanCore.AllocationCallbacks})"/>, or <c>0</c> if the external memory handle
            type is <c>0</c>.
            </summary>
        </member>
        <member name="T:VulkanCore.NV.ExternalMemoryFeaturesNV">
            <summary>
            Bitmask specifying external memory features.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExternalMemoryFeaturesNV.DedicatedOnly">
            <summary>
            Indicates that external memory of the specified type must be created as a dedicated
            allocation when used in the manner specified.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExternalMemoryFeaturesNV.Exportable">
            <summary>
            Indicates that the implementation supports exporting handles of the specified type.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ExternalMemoryFeaturesNV.Importable">
            <summary>
            Indicates that the implementation supports importing handles of the specified type.
            </summary>
        </member>
        <member name="T:VulkanCore.NV.PipelineViewportSwizzleStateCreateInfoNV">
            <summary>
            Structure specifying swizzle applied to primitive clip coordinates.
            <para>
            Each primitive sent to a given viewport has a swizzle and optional negation applied to its
            clip coordinates.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineViewportSwizzleStateCreateInfoNV.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineViewportSwizzleStateCreateInfoNV.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineViewportSwizzleStateCreateInfoNV.Flags">
            <summary>
            Is reserved for future use.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineViewportSwizzleStateCreateInfoNV.ViewportCount">
            <summary>
            The number of viewport swizzles used by the pipeline.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineViewportSwizzleStateCreateInfoNV.ViewportSwizzles">
            <summary>
            A pointer to an array of <see cref="T:VulkanCore.NV.ViewportSwizzleNV"/> structures, defining the
            viewport swizzles.
            </summary>
        </member>
        <member name="M:VulkanCore.NV.PipelineViewportSwizzleStateCreateInfoNV.#ctor(System.Int32,System.IntPtr,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.NV.PipelineViewportSwizzleStateCreateInfoNV"/> structure.
            </summary>
            <param name="viewportCount">The number of viewport swizzles used by the pipeline.</param>
            <param name="viewportSwizzles">
            A pointer to an array of <see cref="T:VulkanCore.NV.ViewportSwizzleNV"/> structures, defining the
            viewport swizzles.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="F:VulkanCore.NV.PipelineViewportSwizzleStateCreateFlagsNV.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="T:VulkanCore.NV.ViewportSwizzleNV">
            <summary>
            Structure specifying a viewport swizzle.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ViewportSwizzleNV.X">
            <summary>
            Specifies the swizzle operation to apply to the x component of the primitive.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ViewportSwizzleNV.Y">
            <summary>
            Specifies the swizzle operation to apply to the y component of the primitive.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ViewportSwizzleNV.Z">
            <summary>
            Specifies the swizzle operation to apply to the z component of the primitive.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.ViewportSwizzleNV.W">
            <summary>
            Specifies the swizzle operation to apply to the w component of the primitive.
            </summary>
        </member>
        <member name="T:VulkanCore.NV.ViewportCoordinateSwizzleNV">
            <summary>
            Specify how a viewport coordinate is swizzled.
            </summary>
        </member>
        <member name="T:VulkanCore.NV.CoverageModulationModeNV">
            <summary>
            Specify the discard rectangle mode.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.CoverageModulationModeNV.None">
            <summary>
            Specifies that no components are multiplied by the modulation factor.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.CoverageModulationModeNV.Rgb">
            <summary>
            Specifies that the red, green, and blue components are multiplied by the
            modulation factor.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.CoverageModulationModeNV.Alpha">
            <summary>
            Specifies that the alpha component is multiplied by the modulation factor.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.CoverageModulationModeNV.Rgba">
            <summary>
            Specifies that all components are multiplied by the modulation factor.
            </summary>
        </member>
        <member name="T:VulkanCore.NV.PipelineCoverageToColorStateCreateInfoNV">
            <summary>
            Structure specifying whether fragment coverage replaces a color.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineCoverageToColorStateCreateInfoNV.Type">
            <summary>
            The type of this structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineCoverageToColorStateCreateInfoNV.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineCoverageToColorStateCreateInfoNV.Flags">
            <summary>
            Is reserved for future use.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineCoverageToColorStateCreateInfoNV.CoverageToColorEnable">
            <summary>
            Controls whether the fragment coverage value replaces a fragment color output.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineCoverageToColorStateCreateInfoNV.CoverageToColorLocation">
            <summary>
            Controls which fragment shader color output value is replaced.
            </summary>
        </member>
        <member name="F:VulkanCore.NV.PipelineCoverageToColorStateCreateFlagsNV.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="T:VulkanCore.ObjectType">
            <summary>
            Specify an enumeration to track object handle types.
            <para>
            The enumeration defines values, each of which corresponds to a specific Vulkan handle type.
            These values can be used to associate debug information with a particular type of object
            through one or more extensions.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.Offset2D">
            <summary>
            Structure specifying a two-dimensional offset.
            </summary>
        </member>
        <member name="F:VulkanCore.Offset2D.Zero">
            <summary>
            An <see cref="T:VulkanCore.Offset2D"/> with all of its components set to zero.
            </summary>
        </member>
        <member name="F:VulkanCore.Offset2D.X">
            <summary>
            The X component of the offset.
            </summary>
        </member>
        <member name="F:VulkanCore.Offset2D.Y">
            <summary>
            The Y component of the offset.
            </summary>
        </member>
        <member name="M:VulkanCore.Offset2D.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Offset2D"/> structure.
            </summary>
            <param name="x">The X component of the offset</param>
            <param name="y">The Y component of the offset.</param>
        </member>
        <member name="M:VulkanCore.Offset2D.ToString">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Offset2D"/> instance.
            </summary>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Offset2D.ToString(System.IFormatProvider)">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Offset2D"/> instance, using the specified
            format to format individual elements and the given <paramref name="formatProvider"/>.
            </summary>
            <param name="formatProvider">The format provider to use when formatting elements.</param>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Offset2D.Equals(VulkanCore.Offset2D@)">
            <summary>
            Determines whether the specified <see cref="T:VulkanCore.Offset2D"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Offset2D"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:VulkanCore.Offset2D"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Offset2D.Equals(VulkanCore.Offset2D)">
            <summary>
            Determines whether the specified <see cref="T:VulkanCore.Offset2D"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Offset2D"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:VulkanCore.Offset2D"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Offset2D.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Offset2D.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>The hash code.</returns>
        </member>
        <member name="M:VulkanCore.Offset2D.op_Equality(VulkanCore.Offset2D,VulkanCore.Offset2D)">
            <summary>
            Returns a boolean indicating whether the two given offsets are equal.
            </summary>
            <param name="left">The first offset to compare.</param>
            <param name="right">The second offset to compare.</param>
            <returns><c>true</c> if the offsets are equal; <c>false</c> otherwise.</returns>
        </member>
        <member name="M:VulkanCore.Offset2D.op_Inequality(VulkanCore.Offset2D,VulkanCore.Offset2D)">
            <summary>
            Returns a boolean indicating whether the two given offsets are not equal.
            </summary>
            <param name="left">The first offset to compare.</param>
            <param name="right">The second offset to compare.</param>
            <returns>
            <c>true</c> if the offsets are not equal; <c>false</c> if they are equal.
            </returns>
        </member>
        <member name="T:VulkanCore.Offset3D">
            <summary>
            Structure specifying a three-dimensional offset.
            </summary>
        </member>
        <member name="F:VulkanCore.Offset3D.Zero">
            <summary>
            An <see cref="T:VulkanCore.Offset3D"/> with all of its components set to zero.
            </summary>
        </member>
        <member name="F:VulkanCore.Offset3D.X">
            <summary>
            The X component of the offset.
            </summary>
        </member>
        <member name="F:VulkanCore.Offset3D.Y">
            <summary>
            The Y component of the offset.
            </summary>
        </member>
        <member name="F:VulkanCore.Offset3D.Z">
            <summary>
            The Z component of the offset.
            </summary>
        </member>
        <member name="M:VulkanCore.Offset3D.#ctor(System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Offset3D"/> structure.
            </summary>
            <param name="x">The X component of the offset</param>
            <param name="y">The Y component of the offset.</param>
            <param name="z">The Z component of the offset.</param>
        </member>
        <member name="M:VulkanCore.Offset3D.ToString">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Offset3D"/> instance.
            </summary>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Offset3D.ToString(System.IFormatProvider)">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Offset3D"/> instance, using the specified
            format to format individual elements and the given <paramref name="formatProvider"/>.
            </summary>
            <param name="formatProvider">The format provider to use when formatting elements.</param>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Offset3D.Equals(VulkanCore.Offset3D@)">
            <summary>
            Determines whether the specified <see cref="T:VulkanCore.Offset3D"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Offset3D"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:VulkanCore.Offset3D"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Offset3D.Equals(VulkanCore.Offset3D)">
            <summary>
            Determines whether the specified <see cref="T:VulkanCore.Offset3D"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Offset3D"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:VulkanCore.Offset3D"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Offset3D.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Offset3D.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>The hash code.</returns>
        </member>
        <member name="M:VulkanCore.Offset3D.op_Equality(VulkanCore.Offset3D,VulkanCore.Offset3D)">
            <summary>
            Returns a boolean indicating whether the two given offsets are equal.
            </summary>
            <param name="left">The first offset to compare.</param>
            <param name="right">The second offset to compare.</param>
            <returns><c>true</c> if the offsets are equal; <c>false</c> otherwise.</returns>
        </member>
        <member name="M:VulkanCore.Offset3D.op_Inequality(VulkanCore.Offset3D,VulkanCore.Offset3D)">
            <summary>
            Returns a boolean indicating whether the two given offsets are not equal.
            </summary>
            <param name="left">The first offset to compare.</param>
            <param name="right">The second offset to compare.</param>
            <returns>
            <c>true</c> if the offsets are not equal; <c>false</c> if they are equal.
            </returns>
        </member>
        <member name="T:VulkanCore.PhysicalDevice">
            <summary>
            Opaque handle to a physical device object.
            <para>
            Vulkan separates the concept of physical and logical devices. A physical device usually
            represents a single device in a system (perhaps made up of several individual hardware
            devices working together), of which there are a finite number. A logical device represents an
            application's view of the device.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.PhysicalDevice.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.PhysicalDevice.GetProperties">
            <summary>
            Returns properties of a physical device.
            </summary>
            <returns>Properties of a physical device.</returns>
        </member>
        <member name="M:VulkanCore.PhysicalDevice.GetQueueFamilyProperties">
            <summary>
            Reports properties of the queues of the physical device.
            </summary>
            <returns>Properties of the queues of the physical device.</returns>
        </member>
        <member name="M:VulkanCore.PhysicalDevice.GetMemoryProperties">
            <summary>
            Reports memory information for physical device.
            </summary>
            <returns>Structure in which the properties are returned.</returns>
        </member>
        <member name="M:VulkanCore.PhysicalDevice.GetFeatures">
            <summary>
            Reports capabilities of a physical device.
            </summary>
            <returns>Capabilities of a physical device.</returns>
        </member>
        <member name="M:VulkanCore.PhysicalDevice.GetFormatProperties(VulkanCore.Format)">
            <summary>
            Lists physical device's format capabilities.
            </summary>
            <param name="format">The format whose properties are queried.</param>
            <returns>Format capabilities of a physical device.</returns>
        </member>
        <member name="M:VulkanCore.PhysicalDevice.GetImageFormatProperties(VulkanCore.Format,VulkanCore.ImageType,VulkanCore.ImageTiling,VulkanCore.ImageUsages,VulkanCore.ImageCreateFlags)">
            <summary>
            Lists physical device's image format capabilities.
            </summary>
            <param name="format">The image format, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.Format"/>.</param>
            <param name="type">The image type, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.ImageType"/>.</param>
            <param name="tiling">The image tiling, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.Tiling"/>.</param>
            <param name="usages">The intended usage of the image, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.Usage"/>.</param>
            <param name="flags">
            A bitmask describing additional parameters of the image, corresponding to <see cref="F:VulkanCore.ImageCreateInfo.Flags"/>.
            </param>
            <returns>Image format capabilities of a physical device</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.PhysicalDevice.EnumerateExtensionProperties(System.String)">
            <summary>
            Returns properties of available physical device extensions.
            </summary>
            <param name="layerName">
            Is either <c>null</c> or a unicode string naming the layer to retrieve extensions from.
            When parameter is <c>null</c>, only extensions provided by the Vulkan implementation or
            by implicitly enabled layers are returned.
            </param>
            <returns>Properties of available extensions for layer.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.PhysicalDevice.EnumerateLayerProperties">
            <summary>
            Returns properties of available physical device layers.
            </summary>
            <returns>Properties of available layers.</returns>
            <exception cref="T:VulkanCore.VulkanException"></exception>
        </member>
        <member name="M:VulkanCore.PhysicalDevice.CreateDevice(VulkanCore.DeviceCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new device instance. A logical device is created as a connection to a physical device.
            </summary>
            <param name="createInfo">
            The structure containing information about how to create the device.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>Device instance.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.PhysicalDevice.GetSparseImageFormatProperties(VulkanCore.Format,VulkanCore.ImageType,VulkanCore.SampleCounts,VulkanCore.ImageUsages,VulkanCore.ImageTiling)">
            <summary>
            Retrieve properties of an image format applied to sparse images.
            </summary>
            <param name="format">The image format.</param>
            <param name="type">The dimensionality of image.</param>
            <param name="samples">The number of samples per pixel.</param>
            <param name="usage">The intended usage of the image.</param>
            <param name="tiling">The tiling arrangement of the data elements in memory.</param>
            <returns>Properties of an image format applied to sparse images.</returns>
        </member>
        <member name="T:VulkanCore.PhysicalDeviceFeatures">
            <summary>
            Structure describing the fine-grained features that can be supported by an implementation.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.RobustBufferAccess">
            <summary>
            Indicates that accesses to buffers are bounds-checked against the range of the buffer
            descriptor (as determined by <see cref="F:VulkanCore.DescriptorBufferInfo.Range"/>, <see
            cref="F:VulkanCore.BufferViewCreateInfo.Range"/>, or the size of the buffer).
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.FullDrawIndexUint32">
            <summary>
            Full 32-bit range of indices for indexed draw calls.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ImageCubeArray">
            <summary>
            Image views which are arrays of cube maps.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.IndependentBlend">
            <summary>
            Blending operations are controlled per-attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.GeometryShader">
            <summary>
            Geometry stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.TessellationShader">
            <summary>
            Tessellation control and evaluation stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.SampleRateShading">
            <summary>
            Per-sample shading and interpolation.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.DualSrcBlend">
            <summary>
            Blend operations which take two sources.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.LogicOp">
            <summary>
            Logic operations.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.MultiDrawIndirect">
            <summary>
            Multi draw indirect.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.DrawIndirectFirstInstance">
            <summary>
            Indirect draws can use non-zero firstInstance.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.DepthClamp">
            <summary>
            Depth clamping.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.DepthBiasClamp">
            <summary>
            Depth bias clamping.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.FillModeNonSolid">
            <summary>
            Point and wireframe fill modes.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.DepthBounds">
            <summary>
            Depth bounds test.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.WideLines">
            <summary>
            Lines with width greater than 1.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.LargePoints">
            <summary>
            Points with size greater than 1.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.AlphaToOne">
            <summary>
            The fragment alpha component can be forced to maximum representable alpha value.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.MultiViewport">
            <summary>
            Viewport arrays.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.SamplerAnisotropy">
            <summary>
            Anisotropic sampler filtering.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.TextureCompressionETC2">
            <summary>
            ETC texture compression formats.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.TextureCompressionASTC_LDR">
            <summary>
            ASTC LDR texture compression formats.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.TextureCompressionBC">
            <summary>
            BC1-7 texture compressed formats.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.OcclusionQueryPrecise">
            <summary>
            Precise occlusion queries returning actual sample counts.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.PipelineStatisticsQuery">
            <summary>
            Pipeline statistics query.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.VertexPipelineStoresAndAtomics">
            <summary>
            Stores and atomic ops on storage buffers and images are supported in vertex,
            tessellation, and geometry stages.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.FragmentStoresAndAtomics">
            <summary>
            Stores and atomic ops on storage buffers and images are supported in the fragment stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderTessellationAndGeometryPointSize">
            <summary>
            Tessellation and geometry stages can export point size.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderImageGatherExtended">
            <summary>
            Image gather with run-time values and independent offsets.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderStorageImageExtendedFormats">
            <summary>
            The extended set of formats can be used for storage images.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderStorageImageMultisample">
            <summary>
            Multisample images can be used for storage images.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderStorageImageReadWithoutFormat">
            <summary>
            Read from storage image does not require format qualifier.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderStorageImageWriteWithoutFormat">
            <summary>
            Write to storage image does not require format qualifier.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderUniformBufferArrayDynamicIndexing">
            <summary>
            Arrays of uniform buffers can be accessed with dynamically uniform indices.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderSampledImageArrayDynamicIndexing">
            <summary>
            Arrays of sampled images can be accessed with dynamically uniform indices.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderStorageBufferArrayDynamicIndexing">
            <summary>
            Arrays of storage buffers can be accessed with dynamically uniform indices.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderStorageImageArrayDynamicIndexing">
            <summary>
            Arrays of storage images can be accessed with dynamically uniform indices.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderClipDistance">
            <summary>
            Clip distance in shaders.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderCullDistance">
            <summary>
            Cull distance in shaders.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderFloat64">
            <summary>
            64-bit floats (doubles) in shaders.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderInt64">
            <summary>
            64-bit integers in shaders.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderInt16">
            <summary>
            16-bit integers in shaders.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderResourceResidency">
            <summary>
            Shader can use texture operations that return resource residency information (requires
            sparseNonResident support).
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.ShaderResourceMinLod">
            <summary>
            Shader can use texture operations that specify minimum resource level of detail.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.SparseBinding">
            <summary>
            Sparse resources support: resource memory can be managed at opaque page level rather than
            object level.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.SparseResidencyBuffer">
            <summary>
            Sparse resources support: GPU can access partially resident buffers.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.SparseResidencyImage2D">
            <summary>
            Sparse resources support: GPU can access partially resident 2D (non-MSAA
            non-depth/stencil) images.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.SparseResidencyImage3D">
            <summary>
            Sparse resources support: GPU can access partially resident 3D images.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.SparseResidency2Samples">
            <summary>
            Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.SparseResidency4Samples">
            <summary>
            Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.SparseResidency8Samples">
            <summary>
            Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.SparseResidency16Samples">
            <summary>
            Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.SparseResidencyAliased">
            <summary>
            Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in).
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.VariableMultisampleRate">
            <summary>
            Multisample rate must be the same for all pipelines in a subpass.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceFeatures.InheritedQueries">
            <summary>
            Queries may be inherited from primary to secondary command buffers.
            </summary>
        </member>
        <member name="T:VulkanCore.PhysicalDeviceLimits">
            <summary>
            Structure reporting implementation-dependent physical device limits.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxImageDimension1D">
            <summary>
            The maximum dimension (width) of an image created with an <see cref="F:VulkanCore.ImageType.Image1D"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxImageDimension2D">
            <summary>
            The maximum dimension (width or height) of an image created with an <see
            cref="F:VulkanCore.ImageType.Image2D"/> and without <see cref="F:VulkanCore.ImageCreateFlags.CubeCompatible"/> set
            in flags.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxImageDimension3D">
            <summary>
            The maximum dimension (width, height, or depth) of an image created with an <see cref="F:VulkanCore.ImageType.Image3D"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxImageDimensionCube">
            <summary>
            The maximum dimension (width or height) of an image created with an <see
            cref="F:VulkanCore.ImageType.Image2D"/> and with <see cref="F:VulkanCore.ImageCreateFlags.CubeCompatible"/> set in flags.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxImageArrayLayers">
            <summary>
            The maximum number of layers (array layers) for an image.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxTexelBufferElements">
            <summary>
            The maximum number of addressable texels for a buffer view created on a buffer which was
            created with the <see cref="F:VulkanCore.BufferUsages.UniformTexelBuffer"/> or <see
            cref="F:VulkanCore.BufferUsages.StorageTexelBuffer"/> set in the <see cref="F:VulkanCore.BufferCreateInfo.Usage"/> member.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxUniformBufferRange">
            <summary>
            The maximum value that can be specified in the range member of any <see
            cref="T:VulkanCore.DescriptorBufferInfo"/> structures passed to a call to <see
            cref="M:VulkanCore.DescriptorPool.UpdateSets(VulkanCore.WriteDescriptorSet[],VulkanCore.CopyDescriptorSet[])"/> for descriptors of type <see
            cref="F:VulkanCore.DescriptorType.UniformBuffer"/> or <see cref="F:VulkanCore.DescriptorType.UniformBufferDynamic"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxStorageBufferRange">
            <summary>
            The maximum value that can be specified in the range member of any <see cref="T:VulkanCore.DescriptorBufferInfo"/>
            structures passed to a call to <see cref="M:VulkanCore.DescriptorPool.UpdateSets(VulkanCore.WriteDescriptorSet[],VulkanCore.CopyDescriptorSet[])"/> for descriptors of type
            <see cref="F:VulkanCore.DescriptorType.StorageBuffer"/> or <see cref="F:VulkanCore.DescriptorType.StorageBufferDynamic"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxPushConstantsSize">
            <summary>
            The maximum size, in bytes, of the pool of push constant memory. For each of the push
            constant ranges indicated by the <see
            cref="F:VulkanCore.PipelineLayoutCreateInfo.PushConstantRanges"/> member, <see
            cref="F:VulkanCore.PushConstantRange.Offset"/> + <see cref="F:VulkanCore.PushConstantRange.Size"/> must be less
            than or equal to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxMemoryAllocationCount">
            <summary>
            The maximum number of device memory allocations, as created by <see
            cref="M:VulkanCore.Device.AllocateMemory(VulkanCore.MemoryAllocateInfo,System.Nullable{VulkanCore.AllocationCallbacks})"/>, which can simultaneously exist.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxSamplerAllocationCount">
            <summary>
            The maximum number of sampler objects, as created by <see cref="M:VulkanCore.Device.CreateSampler(VulkanCore.SamplerCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})"/>,
            which can simultaneously exist on a device.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.BufferImageGranularity">
            <summary>
            The granularity, in bytes, at which buffer or linear image resources, and optimal image
            resources can be bound to adjacent offsets in the same <see cref="T:VulkanCore.DeviceMemory"/> object
            without aliasing.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.SparseAddressSpaceSize">
            <summary>
            The total amount of address space available, in bytes, for sparse memory resources. This
            is an upper bound on the sum of the size of all sparse resources, regardless of whether
            any memory is bound to them.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxBoundDescriptorSets">
            <summary>
            The maximum number of descriptor sets that can be simultaneously used by a pipeline. All
            <see cref="T:VulkanCore.DescriptorSet"/> decorations in shader modules must have a value less than
            <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxBoundDescriptorSets"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxPerStageDescriptorSamplers">
            <summary>
            The maximum number of samplers that can be accessible to a single shader stage in a
            pipeline layout. Descriptors with a type of <see cref="F:VulkanCore.DescriptorType.Sampler"/> or <see
            cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/> count against this limit. A descriptor is
            accessible to a shader stage when the <see cref="F:VulkanCore.DescriptorSetLayoutBinding.StageFlags"/>
            member has the bit for that shader stage set.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxPerStageDescriptorUniformBuffers">
            <summary>
            The maximum number of uniform buffers that can be accessible to a single shader stage in
            a pipeline layout. Descriptors with a type of <see cref="F:VulkanCore.DescriptorType.UniformBuffer"/>
            or <see cref="F:VulkanCore.DescriptorType.UniformBufferDynamic"/> count against this limit. A
            descriptor is accessible to a shader stage when the <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.StageFlags"/> member has the bit for that shader stage set.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxPerStageDescriptorStorageBuffers">
            <summary>
            The maximum number of storage buffers that can be accessible to a single shader stage in
            a pipeline layout. Descriptors with a type of <see cref="F:VulkanCore.DescriptorType.StorageBuffer"/>
            or <see cref="F:VulkanCore.DescriptorType.StorageBufferDynamic"/> count against this limit. A
            descriptor is accessible to a pipeline shader stage when the <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.StageFlags"/> member has the bit for that shader stage set.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxPerStageDescriptorSampledImages">
            <summary>
            The maximum number of sampled images that can be accessible to a single shader stage in a
            pipeline layout. Descriptors with a type of <see
            cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/>, <see cref="F:VulkanCore.DescriptorType.SampledImage"/>,
            or <see cref="F:VulkanCore.DescriptorType.UniformTexelBuffer"/> count against this limit. A descriptor
            is accessible to a pipeline shader stage when the <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.StageFlags"/> member has the bit for that shader stage set.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxPerStageDescriptorStorageImages">
            <summary>
            The maximum number of storage images that can be accessible to a single shader stage in a
            pipeline layout. Descriptors with a type of <see cref="F:VulkanCore.DescriptorType.StorageImage"/>, or
            <see cref="F:VulkanCore.DescriptorType.StorageTexelBuffer"/> count against this limit. A descriptor is
            accessible to a pipeline shader stage when the <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.StageFlags"/> member has the bit for that shader stage set.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxPerStageDescriptorInputAttachments">
            <summary>
            The maximum number of input attachments that can be accessible to a single shader stage
            in a pipeline layout. Descriptors with a type of <see
            cref="F:VulkanCore.DescriptorType.InputAttachment"/> count against this limit. A descriptor is
            accessible to a pipeline shader stage when the <see
            cref="F:VulkanCore.DescriptorSetLayoutBinding.StageFlags"/> member has the bit for that shader stage
            set. These are only supported for the fragment stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxPerStageResources">
            <summary>
            The maximum number of resources that can be accessible to a single shader stage in a
            pipeline layout. Descriptors with a type of <see cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/>,
            <see cref="F:VulkanCore.DescriptorType.SampledImage"/>, <see cref="F:VulkanCore.DescriptorType.StorageImage"/>,
            <see cref="F:VulkanCore.DescriptorType.UniformTexelBuffer"/>, <see cref="F:VulkanCore.DescriptorType.StorageTexelBuffer"/>,
            <see cref="F:VulkanCore.DescriptorType.UniformBuffer"/>, <see cref="F:VulkanCore.DescriptorType.StorageBuffer"/>,
            <see cref="F:VulkanCore.DescriptorType.UniformBufferDynamic"/>, <see cref="F:VulkanCore.DescriptorType.StorageBufferDynamic"/>, or
            <see cref="F:VulkanCore.DescriptorType.InputAttachment"/> count against this limit. For the fragment shader
            stage the framebuffer color attachments also count against this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxDescriptorSetSamplers">
            <summary>
            The maximum number of samplers that can be included in descriptor bindings in a pipeline
            layout across all pipeline shader stages and descriptor set numbers. Descriptors with a
            type of <see cref="F:VulkanCore.DescriptorType.Sampler"/> or <see cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/> count
            against this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxDescriptorSetUniformBuffers">
            <summary>
            The maximum number of uniform buffers that can be included in descriptor bindings in a
            pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors
            with a type of <see cref="F:VulkanCore.DescriptorType.UniformBuffer"/> or
            <see cref="F:VulkanCore.DescriptorType.UniformBufferDynamic"/> count against this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxDescriptorSetUniformBuffersDynamic">
            <summary>
            The maximum number of dynamic uniform buffers that can be included in descriptor bindings
            in a pipeline layout across all pipeline shader stages and descriptor set numbers.
            Descriptors with a type of <see cref="F:VulkanCore.DescriptorType.UniformBufferDynamic"/> count against this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxDescriptorSetStorageBuffers">
            <summary>
            The maximum number of storage buffers that can be included in descriptor bindings in a
            pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors
            with a type of <see cref="F:VulkanCore.DescriptorType.StorageBuffer"/> or
            <see cref="F:VulkanCore.DescriptorType.StorageBufferDynamic"/> count against this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxDescriptorSetStorageBuffersDynamic">
            <summary>
            The maximum number of dynamic storage buffers that can be included in descriptor bindings
            in a pipeline layout across all pipeline shader stages and descriptor set numbers.
            Descriptors with a type of <see cref="F:VulkanCore.DescriptorType.StorageBufferDynamic"/> count against this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxDescriptorSetSampledImages">
            <summary>
            The maximum number of sampled images that can be included in descriptor bindings in a
            pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors
            with a type of <see cref="F:VulkanCore.DescriptorType.CombinedImageSampler"/>,
            <see cref="F:VulkanCore.DescriptorType.SampledImage"/>, or <see cref="F:VulkanCore.DescriptorType.UniformTexelBuffer"/> count
            against this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxDescriptorSetStorageImages">
            <summary>
            The maximum number of storage images that can be included in descriptor bindings in a
            pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors
            with a type of <see cref="F:VulkanCore.DescriptorType.StorageImage"/>, or
            <see cref="F:VulkanCore.DescriptorType.StorageTexelBuffer"/> count against this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxDescriptorSetInputAttachments">
            <summary>
            The maximum number of input attachments that can be included in descriptor bindings in a
            pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors
            with a type of <see cref="F:VulkanCore.DescriptorType.InputAttachment"/> count against this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxVertexInputAttributes">
            <summary>
            The maximum number of vertex input attributes that can be specified for a graphics
            pipeline. These are described in the array of <see
            cref="T:VulkanCore.VertexInputAttributeDescription"/> structures that are provided at graphics
            pipeline creation time via the <see
            cref="F:VulkanCore.PipelineVertexInputStateCreateInfo.VertexAttributeDescriptions"/> member.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxVertexInputBindings">
            <summary>
            The maximum number of vertex buffers that can be specified for providing vertex
            attributes to a graphics pipeline. These are described in the array of <see
            cref="T:VulkanCore.VertexInputBindingDescription"/> structures that are provided at graphics pipeline
            creation time via the <see
            cref="F:VulkanCore.PipelineVertexInputStateCreateInfo.VertexBindingDescriptions"/> member. The <see
            cref="F:VulkanCore.VertexInputBindingDescription.Binding"/> member must be less than this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxVertexInputAttributeOffset">
            <summary>
            The maximum vertex input attribute offset that can be added to the vertex input binding
            stride. The <see cref="F:VulkanCore.VertexInputAttributeDescription.Offset"/> member structure must be
            less than or equal to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxVertexInputBindingStride">
            <summary>
            The maximum vertex input binding stride that can be specified in a vertex input binding.
            The <see cref="F:VulkanCore.VertexInputBindingDescription.Stride"/> member must be less than or equal
            to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxVertexOutputComponents">
            <summary>
            The maximum number of components of output variables which can be output by a vertex shader.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxTessellationGenerationLevel">
            <summary>
            The maximum tessellation generation level supported by the fixed-function tessellation
            primitive generator.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxTessellationPatchSize">
            <summary>
            The maximum patch size, in vertices, of patches that can be processed by the tessellation
            control shader and tessellation primitive generator. The <see
            cref="F:VulkanCore.PipelineTessellationStateCreateInfo.PatchControlPoints"/> member specified at
            pipeline creation time and the value provided in the OutputVertices execution mode of
            shader modules must be less than or equal to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxTessellationControlPerVertexInputComponents">
            <summary>
            The maximum number of components of input variables which can be provided as per-vertex
            inputs to the tessellation control shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxTessellationControlPerVertexOutputComponents">
            <summary>
            The maximum number of components of per-vertex output variables which can be output from
            the tessellation control shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxTessellationControlPerPatchOutputComponents">
            <summary>
            The maximum number of components of per-patch output variables which can be output from
            the tessellation control shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxTessellationControlTotalOutputComponents">
            <summary>
            The maximum total number of components of per-vertex and per-patch output variables which
            can be output from the tessellation control shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxTessellationEvaluationInputComponents">
            <summary>
            The maximum number of components of input variables which can be provided as per-vertex
            inputs to the tessellation evaluation shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxTessellationEvaluationOutputComponents">
            <summary>
            The maximum number of components of per-vertex output variables which can be output from
            the tessellation evaluation shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxGeometryShaderInvocations">
            <summary>
            The maximum invocation count supported for instanced geometry shaders. The value provided
            in the`Invocations execution mode of shader modules must be less than or equal to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxGeometryInputComponents">
            <summary>
            The maximum number of components of input variables which can be provided as inputs to
            the geometry shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxGeometryOutputComponents">
            <summary>
            The maximum number of components of output variables which can be output from the
            geometry shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxGeometryOutputVertices">
            <summary>
            The maximum number of vertices which can be emitted by any geometry shader.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxGeometryTotalOutputComponents">
            <summary>
            The maximum total number of components of output, across all emitted vertices, which can
            be output from the geometry shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxFragmentInputComponents">
            <summary>
            The maximum number of components of input variables which can be provided as inputs to
            the fragment shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxFragmentOutputAttachments">
            <summary>
            The maximum number of output attachments which can be written to by the fragment shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxFragmentDualSrcAttachments">
            <summary>
            The maximum number of output attachments which can be written to by the fragment shader
            stage when blending is enabled and one of the dual source blend modes is in use.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxFragmentCombinedOutputResources">
            <summary>
            The total number of storage buffers, storage images, and output buffers which can be used
            in the fragment shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxComputeSharedMemorySize">
            <summary>
            The maximum total storage size, in bytes, of all variables declared with the
            WorkgroupLocal storage class in shader modules (or with the shared storage qualifier in
            GLSL) in the compute shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxComputeXWorkGroupCount">
            <summary>
            The maximum number of local workgroups that can be dispatched by a single dispatch
            command. This value represents the maximum number of local workgroups for the X
            dimension. The x parameter to the <see cref="M:VulkanCore.CommandBuffer.CmdDispatch(System.Int32,System.Int32,System.Int32)"/> command must be
            less than or equal to the limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxComputeYWorkGroupCount">
            <summary>
            The maximum number of local workgroups that can be dispatched by a single dispatch
            command. This value represents the maximum number of local workgroups for the Y
            dimension. The y parameter to the <see cref="M:VulkanCore.CommandBuffer.CmdDispatch(System.Int32,System.Int32,System.Int32)"/> command must be
            less than or equal to the limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxComputeZWorkGroupCount">
            <summary>
            The maximum number of local workgroups that can be dispatched by a single dispatch
            command. This value represents the maximum number of local workgroups for the Z
            dimension. The z parameter to the <see cref="M:VulkanCore.CommandBuffer.CmdDispatch(System.Int32,System.Int32,System.Int32)"/> command must be
            less than or equal to the limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxComputeWorkGroupInvocations">
            <summary>
            The maximum total number of compute shader invocations in a single local workgroup. The
            product of the X, Y, and Z sizes as specified by the LocalSize execution mode in shader
            modules and by the object decorated by the WorkgroupSize decoration must be less than or
            equal to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxComputeXWorkGroupSize">
            <summary>
            The maximum size of a local compute workgroup, per dimension. This value represents the
            maximum local workgroup size in the X dimension. The x size specified by the LocalSize
            execution mode and by the object decorated by the WorkgroupSize decoration in shader
            modules must be less than or equal to the limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxComputeYWorkGroupSize">
            <summary>
            The maximum size of a local compute workgroup, per dimension. This value represents the
            maximum local workgroup size in the Y dimension. The y size specified by the LocalSize
            execution mode and by the object decorated by the WorkgroupSize decoration in shader
            modules must be less than or equal to the limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxComputeZWorkGroupSize">
            <summary>
            The maximum size of a local compute workgroup, per dimension. This value represents the
            maximum local workgroup size in the Z dimension. The z size specified by the LocalSize
            execution mode and by the object decorated by the WorkgroupSize decoration in shader
            modules must be less than or equal to the limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.SubPixelPrecisionBits">
            <summary>
            The number of bits of subpixel precision in framebuffer coordinates.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.SubTexelPrecisionBits">
            <summary>
            The number of bits of precision in the division along an axis of an image used for
            minification and magnification filters. 2**<see cref="F:VulkanCore.PhysicalDeviceLimits.SubTexelPrecisionBits"/> is the
            actual number of divisions along each axis of the image represented. The filtering
            hardware will snap to these locations when computing the filtered results.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MipmapPrecisionBits">
            <summary>
            The number of bits of division that the LOD calculation for mipmap fetching get snapped
            to when determining the contribution from each mip level to the mip filtered results.
            2**<see cref="F:VulkanCore.PhysicalDeviceLimits.MipmapPrecisionBits"/> is the actual number of divisions.
            <para>
            For example, if this value is 2 bits then when linearly filtering between two levels,
            each level could contribute: 0%, 33%, 66%, or 100% (this is just an example and the
            amount of contribution should be covered by different equations in the spec).
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxDrawIndexedIndexValue">
            <summary>
            The maximum index value that can be used for indexed draw calls when using 32-bit
            indices. This excludes the primitive restart index value of 0xFFFFFFFF.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxDrawIndirectCount">
            <summary>
            The maximum draw count that is supported for indirect draw calls.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxSamplerLodBias">
            <summary>
            The maximum absolute sampler level of detail bias. The sum of the <see
            cref="F:VulkanCore.SamplerCreateInfo.MipLodBias"/> member and the Bias operand of image sampling
            operations in shader modules (or 0 if no Bias operand is provided to an image sampling
            operation) are clamped to the range [-<see cref="F:VulkanCore.PhysicalDeviceLimits.MaxSamplerLodBias"/>,+<see cref="F:VulkanCore.PhysicalDeviceLimits.MaxSamplerLodBias"/>].
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxSamplerAnisotropy">
            <summary>
            The maximum degree of sampler anisotropy. The maximum degree of anisotropic filtering
            used for an image sampling operation is the minimum of the <see
            cref="F:VulkanCore.SamplerCreateInfo.MaxAnisotropy"/> member and this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxViewports">
            <summary>
            The maximum number of active viewports. The <see
            cref="F:VulkanCore.PipelineViewportStateCreateInfo.Viewports"/> member length that is provided at
            pipeline creation must be less than or equal to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxViewportXDimension">
            <summary>
            The maximum viewport width in the X dimension. The maximum viewport dimension must be
            greater than or equal to the largest image which can be created and used as a framebuffer attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxViewportYDimension">
            <summary>
            The maximum viewport height in Y dimension. The maximum viewport dimension must be
            greater than or equal to the largest image which can be created and used as a framebuffer attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MinViewportBounds">
            <summary>
            The minimum of the range that the corners of a viewport must be contained in. This range
            must be at least [-2 × size, 2 × size - 1], where size = max( <see
            cref="F:VulkanCore.PhysicalDeviceLimits.MaxViewportXDimension"/>, <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxViewportYDimension"/>).
            <para>
            The intent of the limit is to allow a maximum sized viewport to be arbitrarily shifted
            relative to the output target as long as at least some portion intersects. This would
            give a bounds limit of [-size + 1, 2 × size - 1] which would allow all possible
            non-empty-set intersections of the output target and the viewport. Since these numbers
            are typically powers of two, picking the signed number range using the smallest possible
            number of bits ends up with the specified range.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxViewportBounds">
            <summary>
            The maximum of the range that the corners of a viewport must be contained in. This range
            must be at least [-2 × size, 2 × size - 1], where size = max( <see
            cref="F:VulkanCore.PhysicalDeviceLimits.MaxViewportXDimension"/>, <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxViewportYDimension"/>).
            <para>
            The intent of the limit is to allow a maximum sized viewport to be arbitrarily shifted
            relative to the output target as long as at least some portion intersects. This would
            give a bounds limit of [-size + 1, 2 × size - 1] which would allow all possible
            non-empty-set intersections of the output target and the viewport. Since these numbers
            are typically powers of two, picking the signed number range using the smallest possible
            number of bits ends up with the specified range.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.ViewportSubPixelBits">
            <summary>
            The number of bits of subpixel precision for viewport bounds. The subpixel precision that
            floating-point viewport bounds are interpreted at is given by this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MinMemoryMapAlignment">
            <summary>
            The minimum required alignment, in bytes, of host visible memory allocations within the
            host address space. When mapping a memory allocation with <see cref="M:VulkanCore.DeviceMemory.Map(System.Int64,System.Int64)"/>,
            subtracting offset bytes from the returned pointer will always produce an integer
            multiple of this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MinTexelBufferOffsetAlignment">
            <summary>
            The minimum required alignment, in bytes, for the <see
            cref="F:VulkanCore.BufferViewCreateInfo.Offset"/> member for texel buffers. When a buffer view is
            created for a buffer which was created with <see cref="F:VulkanCore.BufferUsages.UniformTexelBuffer"/>
            or <see cref="F:VulkanCore.BufferUsages.StorageTexelBuffer"/> set in the <see
            cref="F:VulkanCore.BufferCreateInfo.Usage"/> member, the offset must be an integer multiple of this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MinUniformBufferOffsetAlignment">
            <summary>
            The minimum required alignment, in bytes, for the offset member of the
            <see cref="T:VulkanCore.DescriptorBufferInfo"/> structure for uniform buffers. When a descriptor of type
            <see cref="F:VulkanCore.DescriptorType.UniformBuffer"/> or <see cref="F:VulkanCore.DescriptorType.UniformBufferDynamic"/> is
            updated, the offset must be an integer multiple of this limit. Similarly, dynamic offsets
            for uniform buffers must be multiples of this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MinStorageBufferOffsetAlignment">
            <summary>
            The minimum required alignment, in bytes, for the offset member of the
            <see cref="T:VulkanCore.DescriptorBufferInfo"/> structure for storage buffers. When a descriptor of type
            <see cref="F:VulkanCore.DescriptorType.StorageBuffer"/> or <see cref="F:VulkanCore.DescriptorType.StorageBufferDynamic"/> is
            updated, the offset must be an integer multiple of this limit. Similarly, dynamic offsets
            for storage buffers must be multiples of this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MinTexelOffset">
            <summary>
            The minimum offset value for the ConstOffset image operand of any of the OpImageSample*
            or OpImageFetch* image instructions.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxTexelOffset">
            <summary>
            The maximum offset value for the ConstOffset image operand of any of the OpImageSample*
            or OpImageFetch* image instructions.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MinTexelGatherOffset">
            <summary>
            The minimum offset value for the Offset or ConstOffsets image operands of any of the
            OpImage*Gather image instructions.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxTexelGatherOffset">
            <summary>
            The maximum offset value for the Offset or ConstOffsets image operands of any of the
            OpImage*Gather image instructions.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MinInterpolationOffset">
            <summary>
            The minimum negative offset value for the offset operand of the InterpolateAtOffset
            extended instruction.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxInterpolationOffset">
            <summary>
            The maximum positive offset value for the offset operand of the InterpolateAtOffset
            extended instruction.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.SubPixelInterpolationOffsetBits">
            <summary>
            The number of subpixel fractional bits that the x and y offsets to the
            InterpolateAtOffset extended instruction may be rounded to as fixed-point values.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxFramebufferWidth">
            <summary>
            The maximum width for a framebuffer. The <see cref="F:VulkanCore.FramebufferCreateInfo.Width"/> member
            must be less than or equal to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxFramebufferHeight">
            <summary>
            The maximum height for a framebuffer. The <see cref="F:VulkanCore.FramebufferCreateInfo.Height"/>
            member must be less than or equal to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxFramebufferLayers">
            <summary>
            The maximum layer count for a layered framebuffer. The <see
            cref="F:VulkanCore.FramebufferCreateInfo.Layers"/> member must be less than or equal to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.FramebufferColorSampleCounts">
            <summary>
            A bitmask indicating the color sample counts that are supported for all framebuffer color attachments.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.FramebufferDepthSampleCounts">
            <summary>
            A bitmask indicating the supported depth sample counts for all framebuffer depth/stencil
            attachments, when the format includes a depth component.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.FramebufferStencilSampleCounts">
            <summary>
            A bitmask of <see cref="T:VulkanCore.SampleCounts"/> bits indicating the supported stencil sample
            counts for all framebuffer depth/stencil attachments, when the format includes a stencil component.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.FramebufferNoAttachmentsSampleCounts">
            <summary>
            A bitmask of <see cref="T:VulkanCore.SampleCounts"/> bits indicating the supported sample counts for a
            framebuffer with no attachments.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxColorAttachments">
            <summary>
            The maximum number of color attachments that can be used by a subpass in a render pass.
            The <see cref="F:VulkanCore.SubpassDescription.ColorAttachments"/> length must be less than or equal
            to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.SampledImageColorSampleCounts">
            <summary>
            A bitmask indicating the sample counts supported for all 2D images created with <see
            cref="F:VulkanCore.ImageTiling.Optimal"/>, usage containing <see cref="F:VulkanCore.ImageUsages.Sampled"/>, and a
            non-integer color format.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.SampledImageIntegerSampleCounts">
            <summary>
            A bitmask indicating the sample counts supported for all 2D images created with <see
            cref="F:VulkanCore.ImageTiling.Optimal"/>, usage containing <see cref="F:VulkanCore.ImageUsages.Sampled"/>, and an
            integer color format.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.SampledImageDepthSampleCounts">
            <summary>
            A bitmask indicating the sample counts supported for all 2D images created with <see
            cref="F:VulkanCore.ImageTiling.Optimal"/>, usage containing <see cref="F:VulkanCore.ImageUsages.Sampled"/>, and a
            depth format.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.SampledImageStencilSampleCounts">
            <summary>
            A bitmask indicating the sample supported for all 2D images created with <see
            cref="F:VulkanCore.ImageTiling.Optimal"/>, usage containing <see cref="F:VulkanCore.ImageUsages.Sampled"/>, and a
            stencil format.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.StorageImageSampleCounts">
            <summary>
            A bitmask indicating the sample counts supported for all 2D images created with <see
            cref="F:VulkanCore.ImageTiling.Optimal"/>, and usage containing <see cref="F:VulkanCore.ImageUsages.Storage"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxSampleMaskWords">
            <summary>
            The maximum number of array elements of a variable decorated with the SampleMask built-in decoration.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.TimestampComputeAndGraphics">
            <summary>
            Indicates support for timestamps on all graphics and compute queues. If this limit is set
            to <c>true</c>, all queues that advertise the <see cref="F:VulkanCore.Queues.Graphics"/> or <see
            cref="F:VulkanCore.Queues.Compute"/> in the <see cref="F:VulkanCore.QueueFamilyProperties.QueueFlags"/> support
            <see cref="F:VulkanCore.QueueFamilyProperties.TimestampValidBits"/> of at least 36.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.TimestampPeriod">
            <summary>
            The number of nanoseconds required for a timestamp query to be incremented by 1.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxClipDistances">
            <summary>
            The maximum number of clip distances that can be used in a single shader stage. The size
            of any array declared with the ClipDistance built-in decoration in a shader module must
            be less than or equal to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxCullDistances">
            <summary>
            The maximum number of cull distances that can be used in a single shader stage. The size
            of any array declared with the CullDistance built-in decoration in a shader module must
            be less than or equal to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxCombinedClipAndCullDistances">
            <summary>
            The maximum combined number of clip and cull distances that can be used in a single
            shader stage. The sum of the sizes of any pair of arrays declared with the ClipDistance
            and CullDistance built-in decoration used by a single shader stage in a shader module
            must be less than or equal to this limit.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.DiscreteQueuePriorities">
            <summary>
            The number of discrete priorities that can be assigned to a queue based on the value of
            each member of VkDeviceQueueCreateInfo::pQueuePriorities. This must be at least 2, and
            levels must be spread evenly over the range, with at least one level at 1.0, and another
            at 0.0.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MinPointSize">
            <summary>
            The minimum of the range of supported sizes for points. Values written to variables
            decorated with the PointSize built-in decoration are clamped to this range.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxPointSize">
            <summary>
            The maximum of the range of supported sizes for points. Values written to variables
            decorated with the PointSize built-in decoration are clamped to this range.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MinLineWidth">
            <summary>
            The minimum of the range of supported widths for lines. Values specified by the <see
            cref="F:VulkanCore.PipelineRasterizationStateCreateInfo.LineWidth"/> member or the line width
            parameter to <see cref="M:VulkanCore.CommandBuffer.CmdSetLineWidth(System.Single)"/> are clamped to this range.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.MaxLineWidth">
            <summary>
            The maximum of the range of supported widths for lines. Values specified by the <see
            cref="F:VulkanCore.PipelineRasterizationStateCreateInfo.LineWidth"/> member or the line width
            parameter to <see cref="M:VulkanCore.CommandBuffer.CmdSetLineWidth(System.Single)"/> are clamped to this range.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.PointSizeGranularity">
            <summary>
            The granularity of supported point sizes. Not all point sizes in the range defined by
            <see cref="F:VulkanCore.PhysicalDeviceLimits.MinPointSize"/> and <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxPointSize"/> are supported. This limit
            specifies the granularity (or increment) between successive supported point sizes.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.LineWidthGranularity">
            <summary>
            The granularity of supported line widths. Not all line widths in the range defined by
            <see cref="F:VulkanCore.PhysicalDeviceLimits.MinLineWidth"/> and <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxLineWidth"/> are supported. This limit
            specifies the granularity (or increment) between successive supported line widths.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.StrictLines">
            <summary>
            Indicates whether lines are rasterized according to the preferred method of
            rasterization. If set to <c>false</c>, lines may be rasterized under a relaxed set of rules.
            If set to <c>true</c>, lines are rasterized as per the strict definition.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.StandardSampleLocations">
            <summary>
            Indicates whether rasterization uses the standard sample locations. If set to
            <c>true</c>, the implementation uses the documented sample locations. If set to
            <c>false</c>, the implementation may use different sample locations.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.OptimalBufferCopyOffsetAlignment">
            <summary>
            The optimal buffer offset alignment in bytes for <see
            cref="M:VulkanCore.CommandBuffer.CmdCopyBufferToImage(VulkanCore.Buffer,VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.BufferImageCopy[])"/> and <see
            cref="M:VulkanCore.CommandBuffer.CmdCopyImageToBuffer(VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.Buffer,VulkanCore.BufferImageCopy[])"/>. The per texel alignment requirements are
            still enforced, this is just an additional alignment recommendation for optimal
            performance and power.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.OptimalBufferCopyRowPitchAlignment">
            <summary>
            The optimal buffer row pitch alignment in bytes for <see
            cref="M:VulkanCore.CommandBuffer.CmdCopyBufferToImage(VulkanCore.Buffer,VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.BufferImageCopy[])"/> and <see
            cref="M:VulkanCore.CommandBuffer.CmdCopyImageToBuffer(VulkanCore.Image,VulkanCore.ImageLayout,VulkanCore.Buffer,VulkanCore.BufferImageCopy[])"/>. Row pitch is the number of bytes between
            texels with the same X coordinate in adjacent rows (Y coordinates differ by one). The per
            texel alignment requirements are still enforced, this is just an additional alignment
            recommendation for optimal performance and power.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceLimits.NonCoherentAtomSize">
            <summary>
            The size and alignment in bytes that bounds concurrent access to host-mapped device memory.
            </summary>
        </member>
        <member name="T:VulkanCore.PhysicalDeviceMemoryProperties">
            <summary>
            Structure specifying physical device memory properties.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceMemoryProperties.MemoryTypes">
            <summary>
            Structures describing the memory types that can be used to access memory allocated from
            the heaps specified by <see cref="F:VulkanCore.PhysicalDeviceMemoryProperties.MemoryHeaps"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceMemoryProperties.MemoryHeaps">
            <summary>
            Structures describing the memory heaps from which memory can be allocated.
            </summary>
        </member>
        <member name="T:VulkanCore.MemoryType">
            <summary>
            Structure specifying memory type.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryType.PropertyFlags">
            <summary>
            A bitmask of properties for this memory type.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryType.HeapIndex">
            <summary>
            Describes which memory heap this memory type corresponds to, and must be less than the
            length of <see cref="F:VulkanCore.PhysicalDeviceMemoryProperties.MemoryHeaps"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.MemoryHeap">
            <summary>
            Structure specifying a memory heap.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryHeap.Size">
            <summary>
            The total memory size in bytes in the heap.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryHeap.Flags">
            <summary>
            A bitmask of attribute flags for the heap.
            </summary>
        </member>
        <member name="T:VulkanCore.MemoryProperties">
            <summary>
            Bitmask specifying properties for a memory type.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryProperties.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryProperties.DeviceLocal">
            <summary>
            Indicates that memory allocated with this type is the most efficient for device access.
            This property will only be set for memory types belonging to heaps with the <see
            cref="F:VulkanCore.MemoryHeaps.DeviceLocal"/> set.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryProperties.HostVisible">
            <summary>
            Indicates that memory allocated with this type can be mapped for host access using <see cref="M:VulkanCore.DeviceMemory.Map(System.Int64,System.Int64)"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryProperties.HostCoherent">
            <summary>
            Indicates that the host cache management commands <see
            cref="M:VulkanCore.Device.FlushMappedMemoryRanges(VulkanCore.MappedMemoryRange[])"/> and <see
            cref="M:VulkanCore.Device.InvalidateMappedMemoryRanges(VulkanCore.MappedMemoryRange[])"/> are not needed to flush host writes to the
            device or make device writes visible to the host, respectively.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryProperties.HostCached">
            <summary>
            Indicates that memory allocated with this type is cached on the host. Host memory
            accesses to uncached memory are slower than to cached memory, however uncached memory is
            always host coherent.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryProperties.LazilyAllocated">
            <summary>
            Indicates that the memory type only allows device access to the memory. Memory types must
            not have both <see cref="F:VulkanCore.MemoryProperties.LazilyAllocated"/> and <see cref="F:VulkanCore.MemoryProperties.HostVisible"/> set.
            <para>
            Additionally, the object's backing memory may be provided by the implementation lazily.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.MemoryHeaps">
            <summary>
            Bitmask specifying attribute flags for a heap.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryHeaps.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryHeaps.DeviceLocal">
            <summary>
            Indicates that the heap corresponds to device local memory.
            <para>
            Device local memory may have different performance characteristics than host local
            memory, and may support different memory property flags.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.MemoryHeaps.MultiInstanceKhx">
            <summary>
            Indicates that in a logical device representing more than one physical device, there is a
            per-physical device instance of the heap memory.
            <para>
            By default, an allocation from such a heap will be replicated to each physical device's
            instance of the heap.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.PhysicalDeviceProperties">
            <summary>
            Structure specifying physical device properties.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceProperties.ApiVersion">
            <summary>
            The version of Vulkan supported by the device.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceProperties.DriverVersion">
            <summary>
            The vendor-specified version of the driver.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceProperties.VendorId">
            <summary>
            A unique identifier for the vendor of the physical device.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceProperties.DeviceId">
            <summary>
            A unique identifier for the physical device among devices available from the vendor.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceProperties.DeviceType">
            <summary>
            Specifies the type of device.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceProperties.DeviceName">
            <summary>
            The name of the device.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceProperties.PipelineCacheUuid">
            <summary>
            A universally unique identifier for the device.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceProperties.Limits">
            <summary>
            Specifies device-specific limits of the physical device.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceProperties.SparseProperties">
            <summary>
            Specifies various sparse related properties of the physical device.
            </summary>
        </member>
        <member name="T:VulkanCore.PhysicalDeviceSparseProperties">
            <summary>
            Structure specifying physical device sparse memory properties.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceSparseProperties.ResidencyStandard2DBlockShape">
            <summary>
            Is <c>true</c> if the physical device will access all single-sample 2D sparse resources
            using the standard sparse image block shapes (based on image format). If this property is
            not supported the value returned in the <see
            cref="F:VulkanCore.SparseImageFormatProperties.ImageGranularity"/> member for single-sample 2D images
            is not required to match the standard sparse image block dimensions listed in the table.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceSparseProperties.ResidencyStandard2DMultisampleBlockShape">
            <summary>
            Is <c>true</c> if the physical device will access all multisample 2D sparse resources
            using the standard sparse image block shapes (based on image format). If this property is
            not supported, the value returned in the <see
            cref="F:VulkanCore.SparseImageFormatProperties.ImageGranularity"/> member for multisample 2D images is
            not required to match the standard sparse image block dimensions listed in the table.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceSparseProperties.ResidencyStandard3DBlockShape">
            <summary>
            Is <c>true</c> if the physical device will access all 3D sparse resources using the
            standard sparse image block shapes (based on image format). If this property is not
            supported, the value returned in the <see
            cref="F:VulkanCore.SparseImageFormatProperties.ImageGranularity"/> member for 3D images is not
            required to match the standard sparse image block dimensions listed in the table.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceSparseProperties.ResidencyAlignedMipSize">
            <summary>
            Is <c>true</c> if images with mip level dimensions that are not integer multiples of the
            corresponding dimensions of the sparse image block may: be placed in the mip tail. If
            this property is not reported, only mip levels with dimensions smaller than the
            imageGranularity member of the <see cref="T:VulkanCore.SparseImageFormatProperties"/> structure will
            be placed in the mip tail. If this property is reported the implementation is allowed to
            return <see cref="F:VulkanCore.SparseImageFormats.AlignedMipSize"/> in the flags member of <see
            cref="T:VulkanCore.SparseImageFormatProperties"/>, indicating that mip level dimensions that are not
            integer multiples of the corresponding dimensions of the sparse image block will be
            placed in the mip tail.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceSparseProperties.ResidencyNonResidentStrict">
            <summary>
            Specifies whether the physical device can consistently access non-resident regions of a
            resource. If this property is <c>true</c>, access to non-resident regions of resources
            will be guaranteed to return values as if the resource were populated with 0; writes to
            non-resident regions will be discarded.
            </summary>
        </member>
        <member name="T:VulkanCore.QueueFamilyProperties">
            <summary>
            Structure providing information about a queue family.
            </summary>
        </member>
        <member name="F:VulkanCore.QueueFamilyProperties.QueueFlags">
            <summary>
            A bitmask indicating capabilities of the queues in this queue family.
            </summary>
        </member>
        <member name="F:VulkanCore.QueueFamilyProperties.QueueCount">
            <summary>
            The unsigned integer count of queues in this queue family.
            </summary>
        </member>
        <member name="F:VulkanCore.QueueFamilyProperties.TimestampValidBits">
            <summary>
            The unsigned integer count of meaningful bits in the timestamps written via <see
            cref="M:VulkanCore.CommandBuffer.CmdWriteTimestamp(VulkanCore.PipelineStages,VulkanCore.QueryPool,System.Int32)"/>. The valid range for the count is 36..64 bits,
            or a value of 0, indicating no support for timestamps. Bits outside the valid range are
            guaranteed to be zeros.
            </summary>
        </member>
        <member name="F:VulkanCore.QueueFamilyProperties.MinImageTransferGranularity">
            <summary>
            The minimum granularity supported for image transfer operations on the queues in this
            queue family.
            </summary>
        </member>
        <member name="T:VulkanCore.Queues">
            <summary>
            Bitmask specifying capabilities of queues in a queue family.
            </summary>
        </member>
        <member name="F:VulkanCore.Queues.Graphics">
            <summary>
            Indicates that queues in this queue family support graphics operations.
            </summary>
        </member>
        <member name="F:VulkanCore.Queues.Compute">
            <summary>
            Indicates that queues in this queue family support compute operations.
            </summary>
        </member>
        <member name="F:VulkanCore.Queues.Transfer">
            <summary>
            Indicates that queues in this queue family support transfer operations.
            </summary>
        </member>
        <member name="F:VulkanCore.Queues.SparseBinding">
            <summary>
            Indicates that queues in this queue family support sparse resource memory management operations.
            </summary>
        </member>
        <member name="T:VulkanCore.FormatProperties">
            <summary>
            Structure specifying image format properties.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatProperties.LinearTilingFeatures">
            <summary>
            A bitmask specifying features supported by images created with a tiling parameter of <see cref="F:VulkanCore.ImageTiling.Linear"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatProperties.OptimalTilingFeatures">
            <summary>
            A bitmask specifying features supported by images created with a tiling parameter of <see cref="F:VulkanCore.ImageTiling.Optimal"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatProperties.BufferFeatures">
            <summary>
            A bitmask specifying features supported by buffers.
            </summary>
        </member>
        <member name="T:VulkanCore.FormatFeatures">
            <summary>
            Bitmask specifying features supported by a buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.SampledImage">
            <summary>
            Specifies that an image view can be sampled from.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.StorageImage">
            <summary>
            Specifies that an image view can be used as a storage image.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.StorageImageAtomic">
            <summary>
            Specifies that an image view can be used as storage image that supports atomic operations.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.UniformTexelBuffer">
            <summary>
            Specifies that the format can be used to create a buffer view that can be bound to a <see
            cref="F:VulkanCore.DescriptorType.UniformTexelBuffer"/> descriptor.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.StorageTexelBuffer">
            <summary>
            Specifies that the format can be used to create a buffer view that can be bound to a <see
            cref="F:VulkanCore.DescriptorType.StorageTexelBuffer"/> descriptor.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.StorageTexelBufferAtomic">
            <summary>
            Specifies that atomic operations are supported on <see
            cref="F:VulkanCore.DescriptorType.StorageTexelBuffer"/> with this format.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.VertexBuffer">
            <summary>
            Specifies that the format can be used as a vertex attribute format ( <see cref="F:VulkanCore.VertexInputAttributeDescription.Format"/>).
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.ColorAttachment">
            <summary>
            Specifies that an image view can be used as a framebuffer color attachment and as an
            input attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.ColorAttachmentBlend">
            <summary>
            Specifies that an image view can be used as a framebuffer color attachment that supports
            blending and as an input attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.DepthStencilAttachment">
            <summary>
            Specifies that an image view can be used as a framebuffer depth/stencil attachment and as
            an input attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.BlitSrc">
            <summary>
            Specifies that an image can be used as source image for the <see
            cref="M:VulkanCore.CommandBuffer.CmdBlitImage(VulkanCore.Image,VulkanCore.ImageLayout,System.Int64,VulkanCore.ImageLayout,VulkanCore.ImageBlit[],VulkanCore.Filter)"/> command.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.BlitDst">
            <summary>
            Specifies that an image can be used as destination image for the <see
            cref="M:VulkanCore.CommandBuffer.CmdBlitImage(VulkanCore.Image,VulkanCore.ImageLayout,System.Int64,VulkanCore.ImageLayout,VulkanCore.ImageBlit[],VulkanCore.Filter)"/> command.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.SampledImageFilterLinear">
            <summary>
            Specifies that if <see cref="F:VulkanCore.FormatFeatures.SampledImage"/> is also set, an image view can be used with
            a sampler that has either of magnification or minification filter set to <see
            cref="F:VulkanCore.Filter.Linear"/>, or mipmap mode set to <see cref="F:VulkanCore.SamplerMipmapMode.Linear"/>.
            <para>
            If <see cref="F:VulkanCore.FormatFeatures.BlitSrc"/> is also set, an image can be used as the source image to <see
            cref="M:VulkanCore.CommandBuffer.CmdBlitImage(VulkanCore.Image,VulkanCore.ImageLayout,System.Int64,VulkanCore.ImageLayout,VulkanCore.ImageBlit[],VulkanCore.Filter)"/> with a <see cref="F:VulkanCore.Filter.Linear"/>.
            </para>
            <para>
            This bit must only be exposed for formats that also support the <see
            cref="F:VulkanCore.FormatFeatures.SampledImage"/> or <see cref="F:VulkanCore.FormatFeatures.BlitSrc"/>.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.SampledImageFilterCubicImg">
            <summary>
            An <see cref="T:VulkanCore.Image"/> can be used with a sampler that has either of magnification or
            minification filter set to <see cref="F:VulkanCore.Filter.CubicImg"/>, or be the source image for a
            blit with filter set to <see cref="F:VulkanCore.Filter.CubicImg"/>.
            <para>This bit must only be exposed for formats that also support the <see cref="F:VulkanCore.FormatFeatures.SampledImage"/>.</para>
            <para>
            If the format being queried is a depth/stencil format, this only indicates that the depth
            aspect is cubic filterable.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.TransferSrcKhr">
            <summary>
            Specifies that an image can be used as a source image for copy commands.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.TransferDstKhr">
            <summary>
            Specifies that an image can be used as a destination image for copy commands and clear commands.
            </summary>
        </member>
        <member name="F:VulkanCore.FormatFeatures.SampledImageFilterMinmaxExt">
            <summary>
            Specifies <see cref="T:VulkanCore.Image"/> can be used as a sampled image with a min or max <see cref="T:VulkanCore.Ext.SamplerReductionModeExt"/>.
            <para>This bit must only be exposed for formats that also support the <see cref="F:VulkanCore.FormatFeatures.SampledImage"/>.</para>
            </summary>
        </member>
        <member name="T:VulkanCore.ImageTiling">
            <summary>
            Specifies the tiling arrangement of data in an image.
            </summary>
        </member>
        <member name="F:VulkanCore.ImageTiling.Optimal">
            <summary>
            Specifies optimal tiling (texels are laid out in an implementation-dependent arrangement,
            for more optimal memory access).
            </summary>
        </member>
        <member name="F:VulkanCore.ImageTiling.Linear">
            <summary>
            Specifies linear tiling (texels are laid out in memory in row-major order, possibly with
            some padding on each row).
            </summary>
        </member>
        <member name="T:VulkanCore.Filter">
            <summary>
            Specify filters used for texture lookups.
            </summary>
        </member>
        <member name="F:VulkanCore.Filter.Nearest">
            <summary>
            Specifies nearest filtering.
            </summary>
        </member>
        <member name="F:VulkanCore.Filter.Linear">
            <summary>
            Specifies linear filtering.
            </summary>
        </member>
        <member name="F:VulkanCore.Filter.CubicImg">
            <summary>
            Cubic filtering computes a set of neighboring coordinates which bound the unnormalized coordinates.
            </summary>
        </member>
        <member name="T:VulkanCore.PhysicalDeviceType">
            <summary>
            Supported physical device types.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceType.Other">
            <summary>
            The device does not match any other available types.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceType.IntegratedGpu">
            <summary>
            The device is typically one embedded in or tightly coupled with the host.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceType.DiscreteGpu">
            <summary>
            The device is typically a separate processor connected to the host via an interlink.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceType.VirtualGpu">
            <summary>
            The device is typically a virtual node in a virtualization environment.
            </summary>
        </member>
        <member name="F:VulkanCore.PhysicalDeviceType.Cpu">
            <summary>
            The device is typically running on the same processors as the host.
            </summary>
        </member>
        <member name="T:VulkanCore.Pipeline">
            <summary>
            Opaque handle to a pipeline object.
            </summary>
        </member>
        <member name="P:VulkanCore.Pipeline.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="P:VulkanCore.Pipeline.Cache">
            <summary>
            Gets the cache of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Pipeline.Dispose">
            <summary>
            Destroy a pipeline object.
            </summary>
        </member>
        <member name="T:VulkanCore.GraphicsPipelineCreateInfo">
            <summary>
            Structure specifying parameters of a newly created graphics pipeline.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.Flags">
            <summary>
            A bitmask specifying how the pipeline will be generated.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.Stages">
            <summary>
            Structures describing the set of the shader stages to be included in the graphics pipeline.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.VertexInputState">
            <summary>
            An instance of the <see cref="T:VulkanCore.PipelineVertexInputStateCreateInfo"/> structure.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.InputAssemblyState">
            <summary>
            The structure which determines input assembly behavior.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.TessellationState">
            <summary>
            An instance of the <see cref="T:VulkanCore.PipelineTessellationStateCreateInfo"/> structure, and
            is ignored if the pipeline does not include a tessellation control shader stage and
            tessellation evaluation shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.ViewportState">
            <summary>
            An instance of the <see cref="T:VulkanCore.PipelineViewportStateCreateInfo"/> structure, and
            is ignored if the pipeline has rasterization disabled.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.RasterizationState">
            <summary>
            An instance of the <see cref="T:VulkanCore.PipelineRasterizationStateCreateInfo"/> structure.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.MultisampleState">
            <summary>
            An instance of the <see cref="T:VulkanCore.PipelineMultisampleStateCreateInfo"/>, and is ignored if
            the pipeline has rasterization disabled.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.DepthStencilState">
            <summary>
            An instance of the <see cref="T:VulkanCore.PipelineDepthStencilStateCreateInfo"/> structure, and
            is ignored if the pipeline has rasterization disabled or if the subpass of the render
            pass the pipeline is created against does not use a depth/stencil attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.ColorBlendState">
            <summary>
            An instance of the <see cref="T:VulkanCore.PipelineColorBlendStateCreateInfo"/> structure, and
            is ignored if the pipeline has rasterization disabled or if the subpass of the render
            pass the pipeline is created against does not use any color attachments.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.DynamicState">
            <summary>
            Is used to indicate which properties of the pipeline state object are dynamic and can be
            changed independently of the pipeline state. This can be <c>null</c>, which means no
            state in the pipeline is considered dynamic.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.Layout">
            <summary>
            The description of binding locations used by both the pipeline and descriptor sets used
            with the pipeline.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.RenderPass">
            <summary>
            A <see cref="F:VulkanCore.GraphicsPipelineCreateInfo.RenderPass"/> object describing the environment in which the pipeline will
            be used; the pipeline must only be used with an instance of any render pass compatible
            with the one provided.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.Subpass">
            <summary>
            The index of the subpass in the render pass where this pipeline will be used.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.BasePipelineHandle">
            <summary>
            A pipeline to derive from.
            </summary>
        </member>
        <member name="F:VulkanCore.GraphicsPipelineCreateInfo.BasePipelineIndex">
            <summary>
            An index into the <see cref="M:VulkanCore.Pipeline.CreateGraphicsPipelines(VulkanCore.Device,VulkanCore.PipelineCache,VulkanCore.GraphicsPipelineCreateInfo[],System.Nullable{VulkanCore.AllocationCallbacks}@)"/> create infos parameter
            to use as a pipeline to derive from.
            </summary>
        </member>
        <member name="M:VulkanCore.GraphicsPipelineCreateInfo.#ctor(VulkanCore.PipelineLayout,VulkanCore.RenderPass,System.Int32,VulkanCore.PipelineShaderStageCreateInfo[],VulkanCore.PipelineInputAssemblyStateCreateInfo,VulkanCore.PipelineVertexInputStateCreateInfo,VulkanCore.PipelineRasterizationStateCreateInfo,System.Nullable{VulkanCore.PipelineTessellationStateCreateInfo},System.Nullable{VulkanCore.PipelineViewportStateCreateInfo},System.Nullable{VulkanCore.PipelineMultisampleStateCreateInfo},System.Nullable{VulkanCore.PipelineDepthStencilStateCreateInfo},System.Nullable{VulkanCore.PipelineColorBlendStateCreateInfo},System.Nullable{VulkanCore.PipelineDynamicStateCreateInfo},VulkanCore.PipelineCreateFlags,VulkanCore.Pipeline,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.GraphicsPipelineCreateInfo"/> structure.
            </summary>
            <param name="layout">
            The description of binding locations used by both the pipeline and descriptor sets used
            with the pipeline.
            </param>
            <param name="renderPass">
            A <see cref="F:VulkanCore.GraphicsPipelineCreateInfo.RenderPass"/> object describing the environment in which the pipeline will
            be used; the pipeline must only be used with an instance of any render pass compatible
            with the one provided.
            </param>
            <param name="subpass">
            The index of the subpass in the render pass where this pipeline will be used.
            </param>
            <param name="stages">
            Structures describing the set of the shader stages to be included in the graphics pipeline.
            </param>
            <param name="inputAssemblyState">The structure which determines input assembly behavior.</param>
            <param name="vertexInputState">
            An instance of the <see cref="T:VulkanCore.PipelineVertexInputStateCreateInfo"/> structure.
            </param>
            <param name="rasterizationState">
            An instance of the <see cref="T:VulkanCore.PipelineRasterizationStateCreateInfo"/> structure.
            </param>
            <param name="tessellationState">
            An instance of the <see cref="T:VulkanCore.PipelineTessellationStateCreateInfo"/> structure, or
            <c>null</c> if the pipeline does not include a tessellation control shader stage and
            tessellation evaluation shader stage.
            </param>
            <param name="viewportState">
            An instance of the <see cref="T:VulkanCore.PipelineViewportStateCreateInfo"/> structure, or
            <c>null</c> if the pipeline has rasterization disabled.
            </param>
            <param name="multisampleState">
            An instance of the <see cref="T:VulkanCore.PipelineMultisampleStateCreateInfo"/>, or <c>null</c> if
            the pipeline has rasterization disabled.
            </param>
            <param name="depthStencilState">
            An instance of the <see cref="T:VulkanCore.PipelineDepthStencilStateCreateInfo"/> structure, or
            <c>null</c> if the pipeline has rasterization disabled or if the subpass of the render
            pass the pipeline is created against does not use a depth/stencil attachment.
            </param>
            <param name="colorBlendState">
            An instance of the <see cref="T:VulkanCore.PipelineColorBlendStateCreateInfo"/> structure, or
            <c>null</c> if the pipeline has rasterization disabled or if the subpass of the render
            pass the pipeline is created against does not use any color attachments.
            </param>
            <param name="dynamicState">
            Is used to indicate which properties of the pipeline state object are dynamic and can be
            changed independently of the pipeline state. This can be <c>null</c>, which means no
            state in the pipeline is considered dynamic.
            </param>
            <param name="flags">
            A bitmask of <see cref="T:VulkanCore.PipelineCreateFlags"/> controlling how the pipeline will be generated.
            </param>
            <param name="basePipelineHandle">A pipeline to derive from.</param>
            <param name="basePipelineIndex">
            An index into the <see cref="M:VulkanCore.Pipeline.CreateGraphicsPipelines(VulkanCore.Device,VulkanCore.PipelineCache,VulkanCore.GraphicsPipelineCreateInfo[],System.Nullable{VulkanCore.AllocationCallbacks}@)"/> create infos parameter
            to use as a pipeline to derive from.
            </param>
        </member>
        <member name="T:VulkanCore.PipelineCreateFlags">
            <summary>
            Bitmask controlling how a pipeline is created.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineCreateFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineCreateFlags.DisableOptimization">
            <summary>
            Specifies that the created pipeline will not be optimized. Using this flag may reduce the
            time taken to create the pipeline.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineCreateFlags.AllowDerivatives">
            <summary>
            Specifies that the pipeline to be created is allowed to be the parent of a pipeline that
            will be created in a subsequent call to <see cref="M:VulkanCore.Device.CreateGraphicsPipelines(VulkanCore.GraphicsPipelineCreateInfo[],VulkanCore.PipelineCache,System.Nullable{VulkanCore.AllocationCallbacks})"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineCreateFlags.Derivative">
            <summary>
            Specifies that the pipeline to be created will be a child of a previously created parent pipeline.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineCreateFlags.ViewIndexFromDeviceIndexKhx">
            <summary>
            Specifies that any shader input variables decorated as device index will be
            assigned values as if they were decorated as view index.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineCreateFlags.DispatchBaseKhx">
            <summary>
            Specifies that a compute pipeline can be used with <see
            cref="M:VulkanCore.Khx.CommandBufferExtensions.CmdDispatchBaseKhx(VulkanCore.CommandBuffer,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/> with a non-zero base workgroup.
            </summary>
        </member>
        <member name="T:VulkanCore.ComputePipelineCreateInfo">
            <summary>
            Structure specifying parameters of a newly created compute pipeline.
            </summary>
        </member>
        <member name="F:VulkanCore.ComputePipelineCreateInfo.Flags">
            <summary>
            A bitmask specifying options for pipeline creation.
            </summary>
        </member>
        <member name="F:VulkanCore.ComputePipelineCreateInfo.Stage">
            <summary>
            Describes the compute shader.
            </summary>
        </member>
        <member name="F:VulkanCore.ComputePipelineCreateInfo.Layout">
            <summary>
            The description of binding locations used by both the pipeline and descriptor sets used
            with the pipeline.
            <para>Must be consistent with the layout of the compute shader specified in stage.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.ComputePipelineCreateInfo.BasePipelineHandle">
            <summary>
            A pipeline to derive from.
            </summary>
        </member>
        <member name="F:VulkanCore.ComputePipelineCreateInfo.BasePipelineIndex">
            <summary>
            An index into the <see cref="M:VulkanCore.Pipeline.CreateComputePipelines(VulkanCore.Device,VulkanCore.PipelineCache,VulkanCore.ComputePipelineCreateInfo[],System.Nullable{VulkanCore.AllocationCallbacks}@)"/> create infos parameter to
            use as a pipeline to derive from.
            </summary>
        </member>
        <member name="M:VulkanCore.ComputePipelineCreateInfo.#ctor(VulkanCore.PipelineShaderStageCreateInfo,VulkanCore.PipelineLayout,VulkanCore.PipelineCreateFlags,VulkanCore.Pipeline,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ComputePipelineCreateInfo"/> structure.
            </summary>
            <param name="stage">Describes the compute shader.</param>
            <param name="layout">
            The description of binding locations used by both the pipeline and descriptor sets used
            with the pipeline.
            </param>
            <param name="flags">A bitmask specifying options for pipeline creation.</param>
            <param name="basePipelineHandle">A pipeline to derive from.</param>
            <param name="basePipelineIndex">
            An index into the <see cref="M:VulkanCore.Pipeline.CreateComputePipelines(VulkanCore.Device,VulkanCore.PipelineCache,VulkanCore.ComputePipelineCreateInfo[],System.Nullable{VulkanCore.AllocationCallbacks}@)"/> create infos parameter to
            use as a pipeline to derive from.
            </param>
        </member>
        <member name="T:VulkanCore.PipelineShaderStageCreateInfo">
            <summary>
            Structure specifying parameters of a newly created pipeline shader stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineShaderStageCreateInfo.Stage">
            <summary>
            Specifies a single pipeline stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineShaderStageCreateInfo.Module">
            <summary>
            A <see cref="T:VulkanCore.ShaderModule"/> object that contains the shader for this stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineShaderStageCreateInfo.Name">
            <summary>
            Unicode string specifying the entry point name of the shader for this stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineShaderStageCreateInfo.SpecializationInfo">
            <summary>
            Is <c>null</c> or a structure specifying specialization info.
            </summary>
        </member>
        <member name="M:VulkanCore.PipelineShaderStageCreateInfo.#ctor(VulkanCore.ShaderStages,VulkanCore.ShaderModule,System.String,System.Nullable{VulkanCore.SpecializationInfo})">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.PipelineShaderStageCreateInfo"/> structure.
            </summary>
            <param name="stage">Specifies a single pipeline stage.</param>
            <param name="module">A <see cref="T:VulkanCore.ShaderModule"/> object that contains the shader for this stage.</param>
            <param name="name">Unicode string specifying the entry point name of the shader for this stage.</param>
            <param name="specializationInfo">
            Is <c>null</c> or a structure specifying specialization info.
            </param>
        </member>
        <member name="T:VulkanCore.ShaderStages">
            <summary>
            Bitmask specifying a pipeline stage.
            </summary>
        </member>
        <member name="F:VulkanCore.ShaderStages.Vertex">
            <summary>
            Specifies the vertex stage.
            </summary>
        </member>
        <member name="F:VulkanCore.ShaderStages.TessellationControl">
            <summary>
            Specifies the tessellation control stage.
            </summary>
        </member>
        <member name="F:VulkanCore.ShaderStages.TessellationEvaluation">
            <summary>
            Specifies the tessellation evaluation stage.
            </summary>
        </member>
        <member name="F:VulkanCore.ShaderStages.Geometry">
            <summary>
            Specifies the geometry stage.
            </summary>
        </member>
        <member name="F:VulkanCore.ShaderStages.Fragment">
            <summary>
            Specifies the fragment stage.
            </summary>
        </member>
        <member name="F:VulkanCore.ShaderStages.Compute">
            <summary>
            Specifies the compute stage.
            </summary>
        </member>
        <member name="F:VulkanCore.ShaderStages.AllGraphics">
            <summary>
            Is a combination of bits used as shorthand to specify all graphics stages defined above
            (excluding the compute stage).
            </summary>
        </member>
        <member name="F:VulkanCore.ShaderStages.All">
            <summary>
            Is a combination of bits used as shorthand to specify all shader stages supported by the
            device, including all additional stages which are introduced by extensions.
            </summary>
        </member>
        <member name="T:VulkanCore.SpecializationInfo">
            <summary>
            Structure specifying specialization info.
            </summary>
        </member>
        <member name="F:VulkanCore.SpecializationInfo.MapEntries">
            <summary>
            An array of <see cref="T:VulkanCore.SpecializationMapEntry"/> which maps constant ids to offsets in
            <see cref="F:VulkanCore.SpecializationInfo.Data"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.SpecializationInfo.DataSize">
            <summary>
            The byte size of the <see cref="F:VulkanCore.SpecializationInfo.Data"/> buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.SpecializationInfo.Data">
            <summary>
            Contains the actual constant values to specialize with.
            </summary>
        </member>
        <member name="M:VulkanCore.SpecializationInfo.#ctor(VulkanCore.SpecializationMapEntry[],VulkanCore.Size,System.IntPtr)">
            <summary>
            Initializes a new instasnce of the <see cref="T:VulkanCore.SpecializationInfo"/> structure.
            </summary>
            <param name="mapEntries">
            An array of <see cref="T:VulkanCore.SpecializationMapEntry"/> which maps constant ids to offsets in
            <see cref="F:VulkanCore.SpecializationInfo.Data"/>.
            </param>
            <param name="dataSize">The byte size of the <see cref="F:VulkanCore.SpecializationInfo.Data"/> buffer.</param>
            <param name="data">Contains the actual constant values to specialize with.</param>
        </member>
        <member name="T:VulkanCore.SpecializationMapEntry">
            <summary>
            Structure specifying a specialization map entry.
            </summary>
        </member>
        <member name="F:VulkanCore.SpecializationMapEntry.ConstantId">
            <summary>
            The id of the specialization constant in SPIR-V.
            </summary>
        </member>
        <member name="F:VulkanCore.SpecializationMapEntry.Offset">
            <summary>
            The byte offset of the specialization constant value within the supplied data buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.SpecializationMapEntry.Size">
            <summary>
            The byte size of the specialization constant value within the supplied data buffer.
            </summary>
        </member>
        <member name="M:VulkanCore.SpecializationMapEntry.#ctor(System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.SpecializationMapEntry"/> structure.
            </summary>
            <param name="constantId">The id of the specialization constant in SPIR-V.</param>
            <param name="offset">
            The byte offset of the specialization constant value within the supplied data buffer.
            </param>
            <param name="size">
            The byte size of the specialization constant value within the supplied data buffer.
            </param>
        </member>
        <member name="T:VulkanCore.PipelineVertexInputStateCreateInfo">
            <summary>
            Structure specifying parameters of a newly created pipeline vertex input state.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineVertexInputStateCreateInfo.VertexBindingDescriptions">
            <summary>
            An array of <see cref="T:VulkanCore.VertexInputBindingDescription"/> structures.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineVertexInputStateCreateInfo.VertexAttributeDescriptions">
            <summary>
            An array of <see cref="T:VulkanCore.VertexInputAttributeDescription"/> structures.
            </summary>
        </member>
        <member name="M:VulkanCore.PipelineVertexInputStateCreateInfo.#ctor(VulkanCore.VertexInputBindingDescription[],VulkanCore.VertexInputAttributeDescription[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.PipelineVertexInputStateCreateInfo"/> structure.
            </summary>
            <param name="vertexBindingDescriptions">
            An array of <see cref="T:VulkanCore.VertexInputBindingDescription"/> structures.
            </param>
            <param name="vertexAttributeDescriptions">
            An array of <see cref="T:VulkanCore.VertexInputAttributeDescription"/> structures.
            </param>
        </member>
        <member name="T:VulkanCore.VertexInputBindingDescription">
            <summary>
            Structure specifying vertex input binding description.
            </summary>
        </member>
        <member name="F:VulkanCore.VertexInputBindingDescription.Binding">
            <summary>
            The binding number that this structure describes.
            </summary>
        </member>
        <member name="F:VulkanCore.VertexInputBindingDescription.Stride">
            <summary>
            The distance in bytes between two consecutive elements within the buffer.
            </summary>
        </member>
        <member name="F:VulkanCore.VertexInputBindingDescription.InputRate">
            <summary>
            Specifies whether vertex attribute addressing is a function of the vertex index or of the
            instance index.
            </summary>
        </member>
        <member name="M:VulkanCore.VertexInputBindingDescription.#ctor(System.Int32,System.Int32,VulkanCore.VertexInputRate)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.VertexInputBindingDescription"/> structure.
            </summary>
            <param name="binding">The binding number that this structure describes.</param>
            <param name="stride">
            The distance in bytes between two consecutive elements within the buffer.
            </param>
            <param name="inputRate">
            Specifies whether vertex attribute addressing is a function of the vertex index or of the
            instance index.
            </param>
        </member>
        <member name="T:VulkanCore.VertexInputRate">
            <summary>
            Specify rate at which vertex attributes are pulled from buffers.
            </summary>
        </member>
        <member name="F:VulkanCore.VertexInputRate.Vertex">
            <summary>
            Specifies that vertex attribute addressing is a function of the vertex index.
            </summary>
        </member>
        <member name="F:VulkanCore.VertexInputRate.Instance">
            <summary>
            Specifies that vertex attribute addressing is a function of the instance index.
            </summary>
        </member>
        <member name="T:VulkanCore.VertexInputAttributeDescription">
            <summary>
            Structure specifying vertex input attribute description.
            </summary>
        </member>
        <member name="F:VulkanCore.VertexInputAttributeDescription.Location">
            <summary>
            The shader binding location number for this attribute.
            <para>Must be less than <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxVertexInputAttributes"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.VertexInputAttributeDescription.Binding">
            <summary>
            The binding number which this attribute takes its data from.
            <para>Must be less than <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxVertexInputBindings"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.VertexInputAttributeDescription.Format">
            <summary>
            The size and type of the vertex attribute data.
            <para>
            Must be allowed as a vertex buffer format, as specified by the <see
            cref="F:VulkanCore.FormatFeatures.VertexBuffer"/> flag in <see
            cref="F:VulkanCore.FormatProperties.BufferFeatures"/> returned by <see cref="M:VulkanCore.PhysicalDevice.GetFormatProperties(VulkanCore.Format)"/>.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.VertexInputAttributeDescription.Offset">
            <summary>
            A byte offset of this attribute relative to the start of an element in the vertex input binding.
            <para>Must be less than or equal to <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxVertexInputAttributeOffset"/>.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.VertexInputAttributeDescription.#ctor(System.Int32,System.Int32,VulkanCore.Format,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.VertexInputAttributeDescription"/> attribute.
            </summary>
            <param name="location">The shader binding location number for this attribute.</param>
            <param name="binding">The binding number which this attribute takes its data from.</param>
            <param name="format">The size and type of the vertex attribute data.</param>
            <param name="offset">
            A byte offset of this attribute relative to the start of an element in the vertex input binding.
            </param>
        </member>
        <member name="T:VulkanCore.PipelineInputAssemblyStateCreateInfo">
            <summary>
            Structure specifying parameters of a newly created pipeline input assembly state.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineInputAssemblyStateCreateInfo.Topology">
            <summary>
            Defines the primitive topology.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineInputAssemblyStateCreateInfo.PrimitiveRestartEnable">
            <summary>
            Controls whether a special vertex index value is treated as restarting the assembly of
            primitives. This enable only applies to indexed draws (<see
            cref="M:VulkanCore.CommandBuffer.CmdDrawIndexed(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/> and <see
            cref="M:VulkanCore.CommandBuffer.CmdDrawIndexedIndirect(VulkanCore.Buffer,System.Int64,System.Int32,System.Int32)"/>), and the special index value is either
            0xFFFFFFFF when the index type parameter of <see
            cref="M:VulkanCore.CommandBuffer.CmdBindIndexBuffer(VulkanCore.Buffer,System.Int64,VulkanCore.IndexType)"/> is equal to <see cref="F:VulkanCore.IndexType.UInt32"/>, or
            0xFFFF when index type is equal to <see cref="F:VulkanCore.IndexType.UInt16"/>. Primitive restart is
            not allowed for "list" topologies.
            </summary>
        </member>
        <member name="M:VulkanCore.PipelineInputAssemblyStateCreateInfo.#ctor(VulkanCore.PrimitiveTopology,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.PipelineInputAssemblyStateCreateInfo"/> structure.
            </summary>
            <param name="topology">Defines the primitive topology.</param>
            <param name="primitiveRestartEnable">
            Controls whether a special vertex index value is treated as restarting the assembly of
            primitives. This enable only applies to indexed draws ( <see
            cref="M:VulkanCore.CommandBuffer.CmdDrawIndexed(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/> and <see
            cref="M:VulkanCore.CommandBuffer.CmdDrawIndexedIndirect(VulkanCore.Buffer,System.Int64,System.Int32,System.Int32)"/>), and the special index value is either
            0xFFFFFFFF when the index type parameter of <see
            cref="M:VulkanCore.CommandBuffer.CmdBindIndexBuffer(VulkanCore.Buffer,System.Int64,VulkanCore.IndexType)"/> is equal to <see cref="F:VulkanCore.IndexType.UInt32"/>, or
            0xFFFF when index type is equal to <see cref="F:VulkanCore.IndexType.UInt16"/>. Primitive restart is
            not allowed for "list" topologies.
            </param>
        </member>
        <member name="T:VulkanCore.PrimitiveTopology">
            <summary>
            Supported primitive topologies.
            </summary>
        </member>
        <member name="T:VulkanCore.PipelineTessellationStateCreateInfo">
            <summary>
            Structure specifying parameters of a newly created pipeline tessellation state.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineTessellationStateCreateInfo.PatchControlPoints">
            <summary>
            Number of control points per patch.
            <para>Must be greater than zero and less than or equal to <see cref="F:VulkanCore.PhysicalDeviceLimits.MaxTessellationPatchSize"/>.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.PipelineTessellationStateCreateInfo.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.PipelineTessellationStateCreateInfo"/> structure.
            </summary>
            <param name="patchControlPoints">Number of control points per patch.</param>
        </member>
        <member name="T:VulkanCore.PipelineViewportStateCreateInfo">
            <summary>
            Structure specifying parameters of a newly created pipeline viewport state.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineViewportStateCreateInfo.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineViewportStateCreateInfo.Viewports">
            <summary>
            An array of <see cref="T:VulkanCore.Viewport"/> structures, defining the viewport transforms. If the
            viewport state is dynamic, this member is ignored.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineViewportStateCreateInfo.Scissors">
            <summary>
            An array of <see cref="T:VulkanCore.Rect2D"/> structures which define the rectangular bounds of the
            scissor for the corresponding viewport. If the scissor state is dynamic, this member is ignored.
            </summary>
        </member>
        <member name="M:VulkanCore.PipelineViewportStateCreateInfo.#ctor(VulkanCore.Viewport[],VulkanCore.Rect2D[],System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.PipelineViewportStateCreateInfo"/> structure.
            </summary>
            <param name="viewports">
            An array of <see cref="T:VulkanCore.Viewport"/> structures, defining the viewport transforms. If the
            viewport state is dynamic, this member is ignored.
            </param>
            <param name="scissors">
            An array of <see cref="T:VulkanCore.Rect2D"/> structures which define the rectangular bounds of the
            scissor for the corresponding viewport. If the scissor state is dynamic, this member is ignored.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="M:VulkanCore.PipelineViewportStateCreateInfo.#ctor(VulkanCore.Viewport,VulkanCore.Rect2D,System.IntPtr)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.PipelineViewportStateCreateInfo"/> structure.
            </summary>
            <param name="viewport">
            Defines the viewport transforms. If the viewport state is dynamic, this member is ignored.
            </param>
            <param name="scissor">
            Defines the rectangular bounds of the scissor for the viewport. If the scissor state is
            dynamic, this member is ignored.
            </param>
            <param name="next">
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </param>
        </member>
        <member name="T:VulkanCore.Viewport">
            <summary>
            Structure specifying a viewport.
            </summary>
        </member>
        <member name="F:VulkanCore.Viewport.X">
            <summary>
            The x coordinate for the viewport's upper left corner (x,y).
            </summary>
        </member>
        <member name="F:VulkanCore.Viewport.Y">
            <summary>
            The y coordinate for the viewport's upper left corner (x,y).
            </summary>
        </member>
        <member name="F:VulkanCore.Viewport.Width">
            <summary>
            Viewport's width.
            </summary>
        </member>
        <member name="F:VulkanCore.Viewport.Height">
            <summary>
            Viewport's height.
            </summary>
        </member>
        <member name="F:VulkanCore.Viewport.MinDepth">
            <summary>
            Minimum depth range for the viewport. It is valid for <see cref="F:VulkanCore.Viewport.MinDepth"/> to be
            greater than or equal to <see cref="F:VulkanCore.Viewport.MaxDepth"/>.
            <para>Must be between 0.0 and 1.0, inclusive.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.Viewport.MaxDepth">
            <summary>
            Maximum depth range for the viewport. It is valid for <see cref="F:VulkanCore.Viewport.MinDepth"/> to be
            greater than or equal to <see cref="F:VulkanCore.Viewport.MaxDepth"/>.
            <para>Must be between 0.0 and 1.0, inclusive.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.Viewport.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Viewport"/> structure.
            </summary>
            <param name="x">The x coordinate for the viewport's upper left corner (x,y).</param>
            <param name="y">The y coordinate for the viewport's upper left corner (x,y).</param>
            <param name="width">Viewport's width.</param>
            <param name="height">Viewport's height.</param>
            <param name="minDepth">
            Minimum depth range for the viewport. It is valid for <see cref="F:VulkanCore.Viewport.MinDepth"/> to be
            greater than or equal to <see cref="F:VulkanCore.Viewport.MaxDepth"/>.
            </param>
            <param name="maxDepth">
            Maximum depth range for the viewport. It is valid for <see cref="F:VulkanCore.Viewport.MinDepth"/> to be
            greater than or equal to <see cref="F:VulkanCore.Viewport.MaxDepth"/>.
            </param>
        </member>
        <member name="T:VulkanCore.PipelineRasterizationStateCreateInfo">
            <summary>
            Structure specifying parameters of a newly created pipeline rasterization state.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineRasterizationStateCreateInfo.Next">
            <summary>
            Is <see cref="F:System.IntPtr.Zero"/> or a pointer to an extension-specific structure.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthClampEnable">
            <summary>
            Controls whether to clamp the fragment's depth values instead of clipping primitives to
            the z planes of the frustum.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineRasterizationStateCreateInfo.RasterizerDiscardEnable">
            <summary>
            Controls whether primitives are discarded immediately before the rasterization stage.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineRasterizationStateCreateInfo.PolygonMode">
            <summary>
            The triangle rendering mode. See <see cref="T:VulkanCore.PolygonMode"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineRasterizationStateCreateInfo.CullMode">
            <summary>
            The triangle facing direction used for primitive culling. See <see cref="T:VulkanCore.CullModes"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineRasterizationStateCreateInfo.FrontFace">
            <summary>
            Specifies the front-facing triangle orientation to be used for culling.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthBiasEnable">
            <summary>
            Controls whether to bias fragment depth values.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthBiasConstantFactor">
            <summary>
            A scalar factor controlling the constant depth value added to each fragment.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthBiasClamp">
            <summary>
            The maximum (or minimum) depth bias of a fragment.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthBiasSlopeFactor">
            <summary>
            A scalar factor applied to a fragment's slope in depth bias calculations.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineRasterizationStateCreateInfo.LineWidth">
            <summary>
            The width of rasterized line segments.
            </summary>
        </member>
        <member name="T:VulkanCore.CullModes">
            <summary>
            Bitmask controlling triangle culling.
            </summary>
        </member>
        <member name="F:VulkanCore.CullModes.None">
            <summary>
            Specifies that no triangles are discarded.
            </summary>
        </member>
        <member name="F:VulkanCore.CullModes.Front">
            <summary>
            Specifies that front-facing triangles are discarded.
            </summary>
        </member>
        <member name="F:VulkanCore.CullModes.Back">
            <summary>
            Specifies that back-facing triangles are discarded.
            </summary>
        </member>
        <member name="F:VulkanCore.CullModes.FrontAndBack">
            <summary>
            Specifies that all triangles are discarded.
            </summary>
        </member>
        <member name="T:VulkanCore.PolygonMode">
            <summary>
            Control polygon rasterization mode.
            </summary>
        </member>
        <member name="F:VulkanCore.PolygonMode.Fill">
            <summary>
            Specifies that polygons are rendered using the polygon rasterization rules in this section.
            </summary>
        </member>
        <member name="F:VulkanCore.PolygonMode.Line">
            <summary>
            Specifies that polygon edges are drawn as line segments.
            </summary>
        </member>
        <member name="F:VulkanCore.PolygonMode.Point">
            <summary>
            Specifies that polygon vertices are drawn as points.
            </summary>
        </member>
        <member name="F:VulkanCore.PolygonMode.FillRectangleNV">
            <summary>
            Specifies that polygons are rendered using polygon rasterization rules, modified to
            consider a sample within the primitive if the sample location is inside the axis-aligned
            bounding box of the triangle after projection. Note that the barycentric weights used in
            attribute interpolation can extend outside the range [0,1] when these primitives are
            shaded. Special treatment is given to a sample position on the boundary edge of the
            bounding box.
            <para>
            In such a case, if two rectangles lie on either side of a common edge (with identical
            endpoints) on which a sample position lies, then exactly one of the triangles must
            produce a fragment that covers that sample during rasterization.
            </para>
            <para>
            Polygons rendered in <see cref="F:VulkanCore.PolygonMode.FillRectangleNV"/> mode may be clipped by the frustum or
            by user clip planes.
            </para>
            <para>If clipping is applied, the triangle is culled rather than clipped.</para>
            <para>
            Area calculation and facingness are determined for <see cref="F:VulkanCore.PolygonMode.FillRectangleNV"/> mode
            using the triangle's vertices.
            </para>
            </summary>
        </member>
        <member name="T:VulkanCore.FrontFace">
            <summary>
            Interpret polygon front-facing orientation.
            </summary>
        </member>
        <member name="F:VulkanCore.FrontFace.CounterClockwise">
            <summary>
            Specifies that a triangle with positive area is considered front-facing.
            </summary>
        </member>
        <member name="F:VulkanCore.FrontFace.Clockwise">
            <summary>
            Specifies that a triangle with negative area is considered front-facing.
            </summary>
        </member>
        <member name="T:VulkanCore.PipelineMultisampleStateCreateInfo">
            <summary>
            Structure specifying parameters of a newly created pipeline multisample state.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineMultisampleStateCreateInfo.RasterizationSamples">
            <summary>
            Specifies the number of samples per pixel used in rasterization.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineMultisampleStateCreateInfo.SampleShadingEnable">
            <summary>
            Specifies that fragment shading executes per-sample if <c>true</c>, or per-fragment if <c>false</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineMultisampleStateCreateInfo.MinSampleShading">
            <summary>
            The minimum fraction of sample shading.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineMultisampleStateCreateInfo.SampleMask">
            <summary>
            Bitmasks of static coverage information that is ANDed with the coverage information
            generated during rasterization.
            <para>
            If not <c>null</c>, must be a an array of `<see cref="F:VulkanCore.PipelineMultisampleStateCreateInfo.RasterizationSamples"/> / 32`
            sample mask values.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineMultisampleStateCreateInfo.AlphaToCoverageEnable">
            <summary>
            Controls whether a temporary coverage value is generated based on the alpha component of
            the fragment's first color output.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineMultisampleStateCreateInfo.AlphaToOneEnable">
            <summary>
            Controls whether the alpha component of the fragment's first color output is replaced
            with one.
            </summary>
        </member>
        <member name="T:VulkanCore.PipelineColorBlendAttachmentState">
            <summary>
            Structure specifying a pipeline color blend attachment state.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineColorBlendAttachmentState.BlendEnable">
            <summary>
            Controls whether blending is enabled for the corresponding color attachment. If blending
            is not enabled, the source fragment's color for that attachment is passed through unmodified.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineColorBlendAttachmentState.SrcColorBlendFactor">
            <summary>
            Selects which blend factor is used to determine the source factors.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineColorBlendAttachmentState.DstColorBlendFactor">
            <summary>
            Selects which blend factor is used to determine the destination factors.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineColorBlendAttachmentState.ColorBlendOp">
            <summary>
            Selects which blend operation is used to calculate the RGB values to write to the color attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineColorBlendAttachmentState.SrcAlphaBlendFactor">
            <summary>
            Selects which blend factor is used to determine the source factor.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineColorBlendAttachmentState.DstAlphaBlendFactor">
            <summary>
            Selects which blend factor is used to determine the destination factor.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineColorBlendAttachmentState.AlphaBlendOp">
            <summary>
            Selects which blend operation is use to calculate the alpha values to write to the color attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineColorBlendAttachmentState.ColorWriteMask">
            <summary>
            A bitmask specifying which of the R, G, B, and/or A components are enabled for writing.
            </summary>
        </member>
        <member name="T:VulkanCore.ColorComponents">
            <summary>
            Bitmask controlling which components are written to the framebuffer.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorComponents.R">
            <summary>
            Specifies that the R value is written to color attachment for the appropriate sample.
            Otherwise, the value in memory is unmodified.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorComponents.G">
            <summary>
            Specifies that the G value is written to color attachment for the appropriate sample.
            Otherwise, the value in memory is unmodified.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorComponents.B">
            <summary>
            Specifies that the B value is written to color attachment for the appropriate sample.
            Otherwise, the value in memory is unmodified.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorComponents.A">
            <summary>
            Specifies that the A value is written to color attachment for the appropriate sample.
            Otherwise, the value in memory is unmodified.
            </summary>
        </member>
        <member name="F:VulkanCore.ColorComponents.All">
            <summary>
            Specifies that all the values are written to color attachment for the appropriate sample.
            Otherwise, the value in memory is unmodified.
            </summary>
        </member>
        <member name="T:VulkanCore.PipelineColorBlendStateCreateInfo">
            <summary>
            Structure specifying parameters of a newly created pipeline color blend state.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineColorBlendStateCreateInfo.LogicOpEnable">
            <summary>
            Controls whether to apply logical operations.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineColorBlendStateCreateInfo.LogicOp">
            <summary>
            Selects which logical operation to apply.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineColorBlendStateCreateInfo.Attachments">
            <summary>
            Per target attachment states.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineColorBlendStateCreateInfo.BlendConstants">
            <summary>
            R, G, B, and A components of the blend constant that are used in blending, depending on
            the blend factor.
            </summary>
        </member>
        <member name="M:VulkanCore.PipelineColorBlendStateCreateInfo.#ctor(VulkanCore.PipelineColorBlendAttachmentState[],System.Boolean,VulkanCore.LogicOp,VulkanCore.ColorF4)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.PipelineColorBlendStateCreateInfo"/> structure.
            </summary>
            <param name="attachments">Per target attachment states.</param>
            <param name="logicOpEnable">Controls whether to apply logical operations.</param>
            <param name="logicOp">Selects which logical operation to apply.</param>
            <param name="blendConstants">
            R, G, B, and A components of the blend constant that are used in blending, depending on
            the blend factor.
            </param>
        </member>
        <member name="T:VulkanCore.BlendOp">
            <summary>
            Framebuffer blending operations.
            </summary>
        </member>
        <member name="T:VulkanCore.StencilOp">
            <summary>
            Stencil comparison function.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOp.Keep">
            <summary>
            Keeps the current value.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOp.Zero">
            <summary>
            Sets the value to 0.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOp.Replace">
            <summary>
            Sets the value to reference.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOp.IncrementAndClamp">
            <summary>
            Increments the current value and clamps to the maximum representable unsigned value.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOp.DecrementAndClamp">
            <summary>
            Decrements the current value and clamps to 0.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOp.Invert">
            <summary>
            Bitwise-inverts the current value.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOp.IncrementAndWrap">
            <summary>
            Increments the current value and wraps to 0 when the maximum value would have been exceeded.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOp.DecrementAndWrap">
            <summary>
            Decrements the current value and wraps to the maximum possible value when the value would
            go below 0.
            </summary>
        </member>
        <member name="T:VulkanCore.LogicOp">
            <summary>
            Framebuffer logical operations.
            </summary>
        </member>
        <member name="T:VulkanCore.BlendFactor">
            <summary>
            Framebuffer blending factors.
            </summary>
        </member>
        <member name="T:VulkanCore.PipelineDepthStencilStateCreateInfo">
            <summary>
            Structure specifying parameters of a newly created pipeline depth stencil state.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineDepthStencilStateCreateInfo.DepthTestEnable">
            <summary>
            Controls whether depth testing is enabled.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineDepthStencilStateCreateInfo.DepthWriteEnable">
            <summary>
            Controls whether depth writes are enabled when <see cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.DepthTestEnable"/> is
            <c>true</c>. Depth writes are always disabled when <see cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.DepthTestEnable"/> is <c>false</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineDepthStencilStateCreateInfo.DepthCompareOp">
            <summary>
            The comparison operator used in the depth test.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineDepthStencilStateCreateInfo.DepthBoundsTestEnable">
            <summary>
            Controls whether depth bounds testing is enabled.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineDepthStencilStateCreateInfo.StencilTestEnable">
            <summary>
            Controls whether stencil testing is enabled.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineDepthStencilStateCreateInfo.Front">
            <summary>
            Controls the parameters of the stencil test.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineDepthStencilStateCreateInfo.Back">
            <summary>
            Controls the parameters of the stencil test.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineDepthStencilStateCreateInfo.MinDepthBounds">
            <summary>
            Defines the range of values used in the depth bounds test.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineDepthStencilStateCreateInfo.MaxDepthBounds">
            <summary>
            Defines the range of values used in the depth bounds test.
            </summary>
        </member>
        <member name="T:VulkanCore.StencilOpState">
            <summary>
            Structure specifying stencil operation state.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOpState.FailOp">
            <summary>
            Specifies the action performed on samples that fail the stencil test.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOpState.PassOp">
            <summary>
            Specifies the action performed on samples that pass both the depth and stencil tests.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOpState.DepthFailOp">
            <summary>
            Specifies the action performed on samples that pass the stencil test and fail the depth test.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOpState.CompareOp">
            <summary>
            Specifies the comparison operator used in the stencil test.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOpState.CompareMask">
            <summary>
            Selects the bits of the unsigned integer stencil values participating in the stencil test.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOpState.WriteMask">
            <summary>
            Selects the bits of the unsigned integer stencil values updated by the stencil test in
            the stencil framebuffer attachment.
            </summary>
        </member>
        <member name="F:VulkanCore.StencilOpState.Reference">
            <summary>
            An integer reference value that is used in the unsigned stencil comparison.
            </summary>
        </member>
        <member name="T:VulkanCore.CompareOp">
            <summary>
            Stencil comparison function.
            </summary>
        </member>
        <member name="F:VulkanCore.CompareOp.Never">
            <summary>
            Specifies that the test never passes.
            </summary>
        </member>
        <member name="F:VulkanCore.CompareOp.Less">
            <summary>
            Specifies that the test passes when R &lt; S.
            </summary>
        </member>
        <member name="F:VulkanCore.CompareOp.Equal">
            <summary>
            Specifies that the test passes when R = S.
            </summary>
        </member>
        <member name="F:VulkanCore.CompareOp.LessOrEqual">
            <summary>
            Specifies that the test passes when R &lt;= S.
            </summary>
        </member>
        <member name="F:VulkanCore.CompareOp.Greater">
            <summary>
            Specifies that the test passes when R &gt; S.
            </summary>
        </member>
        <member name="F:VulkanCore.CompareOp.NotEqual">
            <summary>
            Specifies that the test passes when R != S.
            </summary>
        </member>
        <member name="F:VulkanCore.CompareOp.GreaterOrEqual">
            <summary>
            Specifies that the test passes when R &gt;= S.
            </summary>
        </member>
        <member name="F:VulkanCore.CompareOp.Always">
            <summary>
            Specifies that the test always passes.
            </summary>
        </member>
        <member name="T:VulkanCore.PipelineDynamicStateCreateInfo">
            <summary>
            Structure specifying parameters of a newly created pipeline dynamic state.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineDynamicStateCreateInfo.DynamicStates">
            <summary>
            Values specifying which pieces of pipeline state will use the values from dynamic state
            commands rather than from the pipeline state creation info.
            </summary>
        </member>
        <member name="M:VulkanCore.PipelineDynamicStateCreateInfo.#ctor(VulkanCore.DynamicState[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.PipelineDynamicStateCreateInfo"/> structure.
            </summary>
            <param name="dynamicStates">
            Values specifying which pieces of pipeline state will use the values from dynamic state
            commands rather than from the pipeline state creation info.
            </param>
        </member>
        <member name="T:VulkanCore.DynamicState">
            <summary>
            Indicate which dynamic state is taken from dynamic state commands.
            </summary>
        </member>
        <member name="F:VulkanCore.DynamicState.Viewport">
            <summary>
            Specifies that the <see cref="F:VulkanCore.PipelineViewportStateCreateInfo.Viewports"/> state will be
            ignored and must be set dynamically with <see cref="M:VulkanCore.CommandBuffer.CmdSetViewport(VulkanCore.Viewport)"/>
            before any draw commands. The number of viewports used by a pipeline is still specified
            by the length of <see cref="F:VulkanCore.PipelineViewportStateCreateInfo.Viewports"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.DynamicState.Scissor">
            <summary>
            Specifies that the <see cref="F:VulkanCore.PipelineViewportStateCreateInfo.Scissors"/> state will be
            ignored and must be set dynamically with <see cref="M:VulkanCore.CommandBuffer.CmdSetScissor(VulkanCore.Rect2D)"/> before
            any draw commands. The number of scissor rectangles used by a pipeline is still specified
            by the length of <see cref="F:VulkanCore.PipelineViewportStateCreateInfo.Scissors"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.DynamicState.LineWidth">
            <summary>
            Specifies that the <see cref="F:VulkanCore.PipelineRasterizationStateCreateInfo.LineWidth"/> state
            will be ignored and must be set dynamically with <see
            cref="M:VulkanCore.CommandBuffer.CmdSetLineWidth(System.Single)"/> before any draw commands that generate line
            primitives for the rasterizer.
            </summary>
        </member>
        <member name="F:VulkanCore.DynamicState.DepthBias">
            <summary>
            Specifies that the <see
            cref="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthBiasConstantFactor"/>, <see
            cref="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthBiasClamp"/> and <see
            cref="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthBiasSlopeFactor"/> states will be ignored
            and must be set dynamically with <see cref="M:VulkanCore.CommandBuffer.CmdSetDepthBias(System.Single,System.Single,System.Single)"/> before any
            draws are performed with <see
            cref="F:VulkanCore.PipelineRasterizationStateCreateInfo.DepthBiasEnable"/> set to <c>true</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.DynamicState.BlendConstants">
            <summary>
            Specifies that the <see cref="F:VulkanCore.PipelineColorBlendStateCreateInfo.BlendConstants"/> state
            will be ignored and must be set dynamically with <see
            cref="M:VulkanCore.CommandBuffer.CmdSetBlendConstants(VulkanCore.ColorF4)"/> before any draws are performed with a
            pipeline state with <see cref="F:VulkanCore.PipelineColorBlendAttachmentState.BlendEnable"/> member
            set to <c>true</c> and any of the blend functions using a constant blend color.
            </summary>
        </member>
        <member name="F:VulkanCore.DynamicState.DepthBounds">
            <summary>
            Specifies that the <see cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.MinDepthBounds"/> and
            <see cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.MaxDepthBounds"/> states will be ignored
            and must be set dynamically with <see cref="M:VulkanCore.CommandBuffer.CmdSetDepthBounds(System.Single,System.Single)"/> before any
            draws are performed with a pipeline state with <see
            cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.DepthBoundsTestEnable"/> member set to <c>true</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.DynamicState.StencilCompareMask">
            <summary>
            Specifies that the compare mask state in both <see
            cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.Front"/> and <see
            cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.Back"/> will be ignored and must be set
            dynamically with <see cref="M:VulkanCore.CommandBuffer.CmdSetStencilCompareMask(VulkanCore.StencilFaces,System.Int32)"/> before any draws
            are performed with a pipeline state with <see
            cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.StencilTestEnable"/> member set to <c>true</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.DynamicState.StencilWriteMask">
            <summary>
            Specifies that the write mask state in both <see
            cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.Front"/> and <see
            cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.Back"/> will be ignored and must be set
            dynamically with <see cref="M:VulkanCore.CommandBuffer.CmdSetStencilWriteMask(VulkanCore.StencilFaces,System.Int32)"/> before any draws are
            performed with a pipeline state with <see
            cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.StencilTestEnable"/> member set to <c>true</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.DynamicState.StencilReference">
            <summary>
            Specifies that the reference state in both <see
            cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.Front"/> and <see
            cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.Back"/> will be ignored and must be set
            dynamically with <see cref="M:VulkanCore.CommandBuffer.CmdSetStencilReference(VulkanCore.StencilFaces,System.Int32)"/> before any draws are
            performed with a pipeline state with <see
            cref="F:VulkanCore.PipelineDepthStencilStateCreateInfo.StencilTestEnable"/> member set to <c>true</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.DynamicState.ViewportWScalingNV">
            <summary>
            Specifies that the <see
            cref="F:VulkanCore.NV.PipelineViewportWScalingStateCreateInfoNV.ViewportWScalings"/> state will be
            ignored and must be set dynamically with <see
            cref="M:VulkanCore.NV.CommandBufferExtensions.CmdSetViewportWScalingNV(VulkanCore.CommandBuffer,System.Int32,VulkanCore.NV.ViewportWScalingNV[])"/> before any draws are
            performed with a pipeline state with <see
            cref="F:VulkanCore.NV.PipelineViewportWScalingStateCreateInfoNV.ViewportWScalingEnable"/> set to <c>true</c>.
            </summary>
        </member>
        <member name="T:VulkanCore.PipelineCache">
            <summary>
            Opaque handle to a pipeline cache object.
            <para>
            Pipeline cache objects allow the result of pipeline construction to be reused between
            pipelines and between runs of an application. Reuse between pipelines is achieved by passing
            the same pipeline cache object when creating multiple related pipelines. Reuse across runs of
            an application is achieved by retrieving pipeline cache contents in one run of an
            application, saving the contents, and using them to preinitialize a pipeline cache on a
            subsequent run. The contents of the pipeline cache objects are managed by the implementation.
            Applications can manage the host memory consumed by a pipeline cache object and control the
            amount of data retrieved from a pipeline cache object.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.PipelineCache.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.PipelineCache.GetData">
            <summary>
            Get the data store from a pipeline cache.
            </summary>
            <returns>Buffer.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.PipelineCache.MergeCache(VulkanCore.PipelineCache)">
            <summary>
            Combine the data stores of pipeline caches.
            </summary>
            <param name="sourceCache">Pipeline cache to merge into this.</param>
        </member>
        <member name="M:VulkanCore.PipelineCache.MergeCaches(VulkanCore.PipelineCache[])">
            <summary>
            Combine the data stores of pipeline caches.
            </summary>
            <param name="sourceCaches">Pipeline caches to merge into this.</param>
        </member>
        <member name="M:VulkanCore.PipelineCache.Dispose">
            <summary>
            Destroy a pipeline cache object.
            </summary>
        </member>
        <member name="T:VulkanCore.PipelineCacheCreateInfo">
            <summary>
            Structure specifying parameters of a newly created pipeline cache.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineCacheCreateInfo.InitialData">
            <summary>
            Previously retrieved pipeline cache data. If the pipeline cache data is incompatible with
            the device, the pipeline cache will be initially empty. If length is zero, <see
            cref="F:VulkanCore.PipelineCacheCreateInfo.InitialData"/> is ignored.
            </summary>
        </member>
        <member name="M:VulkanCore.PipelineCacheCreateInfo.#ctor(System.Byte[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.PipelineCacheCreateInfo"/> structure.
            </summary>
            <param name="initialData">
            Previously retrieved pipeline cache data. If the pipeline cache data is incompatible with
            the device, the pipeline cache will be initially empty. If length is zero, <see
            cref="F:VulkanCore.PipelineCacheCreateInfo.InitialData"/> is ignored.
            </param>
        </member>
        <member name="T:VulkanCore.PipelineCacheHeaderVersion">
            <summary>
            Encode pipeline cache version.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineCacheHeaderVersion.One">
            <summary>
            Specifies version one of the pipeline cache.
            </summary>
        </member>
        <member name="T:VulkanCore.PipelineLayout">
            <summary>
            Opaque handle to a pipeline layout object.
            <para>
            Access to descriptor sets from a pipeline is accomplished through a pipeline layout. Zero or
            more descriptor set layouts and zero or more push constant ranges are combined to form a
            pipeline layout object which describes the complete set of resources that can be accessed by
            a pipeline. The pipeline layout represents a sequence of descriptor sets with each having a
            specific layout. This sequence of layouts is used to determine the interface between shader
            stages and shader resources. Each pipeline is created using a pipeline layout.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.PipelineLayout.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.PipelineLayout.Dispose">
            <summary>
            Destroy a pipeline layout object.
            </summary>
        </member>
        <member name="T:VulkanCore.PipelineLayoutCreateInfo">
            <summary>
            Structure specifying the parameters of a newly created pipeline layout object.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineLayoutCreateInfo.SetLayouts">
            <summary>
            An array of <see cref="T:VulkanCore.DescriptorSetLayout"/> objects.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineLayoutCreateInfo.PushConstantRanges">
            <summary>
            Structures defining a set of push constant ranges for use in a single pipeline layout. In
            addition to descriptor set layouts, a pipeline layout also describes how many push
            constants can be accessed by each stage of the pipeline. Push constants represent a high
            speed path to modify constant data in pipelines that is expected to outperform
            memory-backed resource updates.
            </summary>
        </member>
        <member name="M:VulkanCore.PipelineLayoutCreateInfo.#ctor(VulkanCore.DescriptorSetLayout[],VulkanCore.PushConstantRange[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.PipelineLayoutCreateInfo"/> structure.
            </summary>
            <param name="setLayouts">An array of <see cref="T:VulkanCore.DescriptorSetLayout"/> objects.</param>
            <param name="pushConstantRanges">
            Structures defining a set of push constant ranges for use in a single pipeline layout. In
            addition to descriptor set layouts, a pipeline layout also describes how many push
            constants can be accessed by each stage of the pipeline. Push constants represent a high
            speed path to modify constant data in pipelines that is expected to outperform
            memory-backed resource updates.
            </param>
        </member>
        <member name="T:VulkanCore.PushConstantRange">
            <summary>
            Structure specifying a push constant range.
            </summary>
        </member>
        <member name="F:VulkanCore.PushConstantRange.StageFlags">
            <summary>
            A set of stage flags describing the shader stages that will access a range of push
            constants. If a particular stage is not included in the range, then accessing members of
            that range of push constants from the corresponding shader stage will result in undefined
            data being read.
            </summary>
        </member>
        <member name="F:VulkanCore.PushConstantRange.Offset">
            <summary>
            The start offset consumed by the range.
            <para>Offset is in units of bytes and must be a multiple of 4.</para>
            <para>The layout of the push constant variables is specified in the shader.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.PushConstantRange.Size">
            <summary>
            The size consumed by the range.
            <para>Size is in units of bytes and must be a multiple of 4.</para>
            <para>The layout of the push constant variables is specified in the shader.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.PushConstantRange.#ctor(VulkanCore.ShaderStages,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.PushConstantRange"/> structure.
            </summary>
            <param name="stageFlags">
            A set of stage flags describing the shader stages that will access a range of push
            constants. If a particular stage is not included in the range, then accessing members of
            that range of push constants from the corresponding shader stage will result in undefined
            data being read.
            </param>
            <param name="offset">
            The start offset consumed by the range.
            <para>Offset is in units of bytes and must be a multiple of 4.</para>
            <para>The layout of the push constant variables is specified in the shader.</para>
            </param>
            <param name="size">
            The size consumed by the range.
            <para>Size is in units of bytes and must be a multiple of 4.</para>
            <para>The layout of the push constant variables is specified in the shader.</para>
            </param>
        </member>
        <member name="T:VulkanCore.QueryPool">
            <summary>
            Opaque handle to a query pool object.
            <para>
            Queries are managed using query pool objects. Each query pool is a collection of a specific
            number of queries of a particular type.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.QueryPool.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.QueryPool.GetResults(System.Int32,System.Int32,System.Int32,System.IntPtr,System.Int64,VulkanCore.QueryResults)">
            <summary>
            Copy results of queries in a query pool to a host memory region.
            </summary>
            <param name="firstQuery">The initial query index.</param>
            <param name="queryCount">
            The number of queries. <paramref name="firstQuery"/> and <paramref name="queryCount"/>
            together define a range of queries.
            </param>
            <param name="dataSize">The size in bytes of the buffer pointed to by <paramref name="data"/>.</param>
            <param name="data">A pointer to a user-allocated buffer where the results will be written.</param>
            <param name="stride">
            The stride in bytes between results for individual queries within <paramref name="data"/>.
            </param>
            <param name="flags">A bitmask specifying how and when results are returned.</param>
        </member>
        <member name="M:VulkanCore.QueryPool.Dispose">
            <summary>
            Destroy a query pool object.
            </summary>
        </member>
        <member name="T:VulkanCore.QueryPoolCreateInfo">
            <summary>
            Structure specifying parameters of a newly created query pool.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPoolCreateInfo.QueryType">
            <summary>
            Specifies the type of queries managed by the pool.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPoolCreateInfo.QueryCount">
            <summary>
            The number of queries managed by the pool.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryPoolCreateInfo.PipelineStatistics">
            <summary>
            A bitmask specifying which counters will be returned in queries on the new pool.
            <para>Ignored if <see cref="F:VulkanCore.QueryPoolCreateInfo.QueryType"/> is not <see cref="F:VulkanCore.QueryType.PipelineStatistics"/>.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.QueryPoolCreateInfo.#ctor(VulkanCore.QueryType,System.Int32,VulkanCore.QueryPipelineStatistics)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.QueryPoolCreateInfo"/> structure.
            </summary>
            <param name="queryType">Specifies the type of queries managed by the pool.</param>
            <param name="queryCount">The number of queries managed by the pool.</param>
            <param name="pipelineStatistics">
            A bitmask specifying which counters will be returned in queries on the new pool.
            <para>Ignored if <see cref="F:VulkanCore.QueryPoolCreateInfo.QueryType"/> is not <see cref="F:VulkanCore.QueryType.PipelineStatistics"/>.</para>
            </param>
        </member>
        <member name="T:VulkanCore.QueryType">
            <summary>
            Specify the type of queries managed by a query pool.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryType.Occlusion">
            <summary>
            Specifies an occlusion query.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryType.PipelineStatistics">
            <summary>
            Specifies a pipeline statistics query.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryType.Timestamp">
            <summary>
            Specifies a timestamp query.
            </summary>
        </member>
        <member name="T:VulkanCore.QueryResults">
            <summary>
            Bitmask specifying how and when query results are returned.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryResults.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryResults.Query64">
            <summary>
            Specifies the results will be written as an array of 64-bit unsigned integer values. If
            this bit is not set, the results will be written as an array of 32-bit unsigned integer values.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryResults.QueryWait">
            <summary>
            Specifies that Vulkan will wait for each query's status to become available before
            retrieving its results.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryResults.QueryWithAvailability">
            <summary>
            Specifies that the availability status accompanies the results.
            </summary>
        </member>
        <member name="F:VulkanCore.QueryResults.QueryPartial">
            <summary>
            Specifies that returning partial results is acceptable.
            </summary>
        </member>
        <member name="T:VulkanCore.Queue">
            <summary>
            Opaque handle to a queue object.
            </summary>
        </member>
        <member name="P:VulkanCore.Queue.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="P:VulkanCore.Queue.FamilyIndex">
            <summary>
            Gets the queue family index.
            </summary>
        </member>
        <member name="P:VulkanCore.Queue.Index">
            <summary>
            Gets the queue index.
            </summary>
        </member>
        <member name="M:VulkanCore.Queue.Submit(VulkanCore.SubmitInfo[],VulkanCore.Fence)">
            <summary>
            Submits a sequence of semaphores or command buffers to a queue.
            </summary>
            <param name="submits">Structures, each specifying a command buffer submission batch.</param>
            <param name="fence">
            An optional handle to a fence to be signaled. If fence is not <c>null</c>, it defines a
            fence signal operation.
            </param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Queue.Submit(VulkanCore.SubmitInfo,VulkanCore.Fence)">
            <summary>
            Submits a sequence of semaphores or command buffers to a queue.
            </summary>
            <param name="submit">Specifies a command buffer submission batch.</param>
            <param name="fence">
            An optional handle to a fence to be signaled. If fence is not <c>null</c>, it defines a
            fence signal operation.
            </param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Queue.Submit(VulkanCore.Semaphore,VulkanCore.PipelineStages,VulkanCore.CommandBuffer,VulkanCore.Semaphore,VulkanCore.Fence)">
            <summary>
            Submits semaphores or a command buffer to a queue.
            </summary>
            <param name="fence">
            An optional handle to a fence to be signaled. If fence is not <c>null</c>, it defines a
            fence signal operation.
            </param>
            <param name="waitSemaphore">
            Semaphore upon which to wait before the command buffer for this batch begins execution.
            If semaphore to wait on is provided, it defines a semaphore wait operation.
            </param>
            <param name="waitDstStageMask">Pipeline stages at which semaphore wait will occur.</param>
            <param name="commandBuffer">Command buffer to execute in the batch.</param>
            <param name="signalSemaphore">
            Semaphore which will be signaled when the command buffer for this batch has completed
            execution. If semaphore to be signaled is provided, it defines a semaphore signal operation.
            </param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Queue.WaitIdle">
            <summary>
            Wait for a queue to become idle.
            <para>
            Equivalent to submitting a fence to a queue and waiting with an infinite timeout for that
            fence to signal.
            </para>
            </summary>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Queue.BindSparse(VulkanCore.BindSparseInfo,VulkanCore.Fence)">
            <summary>
            Bind device memory to a sparse resource object.
            </summary>
            <param name="bindInfo">Specifying a sparse binding submission batch.</param>
            <param name="fence">
            An optional handle to a fence to be signaled. If fence is not <c>null</c>, it defines a
            fence signal operation.
            </param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.Queue.BindSparse(VulkanCore.BindSparseInfo[],VulkanCore.Fence)">
            <summary>
            Bind device memory to a sparse resource object.
            </summary>
            <param name="bindInfo">
            An array of <see cref="T:VulkanCore.BindSparseInfo"/> structures, each specifying a sparse binding
            submission batch.
            </param>
            <param name="fence">
            An optional handle to a fence to be signaled. If fence is not <c>null</c>, it defines a
            fence signal operation.
            </param>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="T:VulkanCore.SubmitInfo">
            <summary>
            Structure specifying a queue submit operation.
            </summary>
        </member>
        <member name="F:VulkanCore.SubmitInfo.WaitSemaphores">
            <summary>
            Semaphores upon which to wait before the command buffers for this batch begin execution.
            If semaphores to wait on are provided, they define a semaphore wait operation.
            </summary>
        </member>
        <member name="F:VulkanCore.SubmitInfo.WaitDstStageMask">
            <summary>
            Pipeline stages at which each corresponding semaphore wait will occur.
            </summary>
        </member>
        <member name="F:VulkanCore.SubmitInfo.CommandBuffers">
            <summary>
            Command buffers to execute in the batch.
            </summary>
        </member>
        <member name="F:VulkanCore.SubmitInfo.SignalSemaphores">
            <summary>
            Semaphores which will be signaled when the command buffers for this batch have completed
            execution. If semaphores to be signaled are provided, they define a semaphore signal operation.
            </summary>
        </member>
        <member name="M:VulkanCore.SubmitInfo.#ctor(VulkanCore.Semaphore[],VulkanCore.PipelineStages[],VulkanCore.CommandBuffer[],VulkanCore.Semaphore[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.SubmitInfo"/> structure.
            </summary>
            <param name="waitSemaphores">
            Semaphores upon which to wait before the command buffers for this batch begin execution.
            If semaphores to wait on are provided, they define a semaphore wait operation.
            </param>
            <param name="waitDstStageMask">
            Pipeline stages at which each corresponding semaphore wait will occur.
            </param>
            <param name="commandBuffers">
            Command buffers to execute in the batch. The command buffers submitted in a batch begin
            execution in the order they appear in <paramref name="commandBuffers"/>, but may complete
            out of order.
            </param>
            <param name="signalSemaphores">
            Semaphores which will be signaled when the command buffers for this batch have completed
            execution. If semaphores to be signaled are provided, they define a semaphore signal operation.
            </param>
        </member>
        <member name="T:VulkanCore.BindSparseInfo">
            <summary>
            Structure specifying a sparse binding operation.
            </summary>
        </member>
        <member name="F:VulkanCore.BindSparseInfo.WaitSemaphores">
            <summary>
            Semaphores upon which to wait on before the sparse binding operations for this batch
            begin execution. If semaphores to wait on are provided, they define a semaphore wait operation.
            </summary>
        </member>
        <member name="F:VulkanCore.BindSparseInfo.BufferBinds">
            <summary>
            An array of <see cref="T:VulkanCore.SparseBufferMemoryBindInfo"/> structures.
            </summary>
        </member>
        <member name="F:VulkanCore.BindSparseInfo.ImageOpaqueBinds">
            <summary>
            An array of <see cref="T:VulkanCore.SparseImageOpaqueMemoryBindInfo"/> structures, indicating opaque
            sparse image bindings to perform.
            </summary>
        </member>
        <member name="F:VulkanCore.BindSparseInfo.ImageBinds">
            <summary>
            An array of <see cref="T:VulkanCore.SparseImageMemoryBindInfo"/> structures, indicating sparse image
            bindings to perform.
            </summary>
        </member>
        <member name="F:VulkanCore.BindSparseInfo.SignalSemaphores">
            <summary>
            Semaphores which will be signaled when the sparse binding operations for this batch have
            completed execution. If semaphores to be signaled are provided, they define a semaphore
            signal operation.
            </summary>
        </member>
        <member name="M:VulkanCore.BindSparseInfo.#ctor(VulkanCore.Semaphore[],VulkanCore.SparseBufferMemoryBindInfo[],VulkanCore.SparseImageOpaqueMemoryBindInfo[],VulkanCore.SparseImageMemoryBindInfo[],VulkanCore.Semaphore[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.BindSparseInfo"/> structure.
            </summary>
            <param name="waitSemaphores">
            Semaphores upon which to wait on before the sparse binding operations for this batch
            begin execution. If semaphores to wait on are provided, they define a semaphore wait operation.
            </param>
            <param name="bufferBinds">An array of <see cref="T:VulkanCore.SparseBufferMemoryBindInfo"/> structures.</param>
            <param name="imageOpaqueBinds">
            An array of <see cref="T:VulkanCore.SparseImageOpaqueMemoryBindInfo"/> structures, indicating opaque
            sparse image bindings to perform.
            </param>
            <param name="imageBinds">
            An array of <see cref="T:VulkanCore.SparseImageMemoryBindInfo"/> structures, indicating sparse image
            bindings to perform.
            </param>
            <param name="signalSemaphores">
            Semaphores which will be signaled when the sparse binding operations for this batch have
            completed execution. If semaphores to be signaled are provided, they define a semaphore
            signal operation.
            </param>
        </member>
        <member name="T:VulkanCore.SparseBufferMemoryBindInfo">
            <summary>
            Structure specifying a sparse buffer memory bind operation.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseBufferMemoryBindInfo.Buffer">
            <summary>
            The <see cref="T:VulkanCore.Buffer"/> object to be bound.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseBufferMemoryBindInfo.Binds">
            <summary>
            An array of <see cref="T:VulkanCore.SparseMemoryBind"/> structures.
            </summary>
        </member>
        <member name="M:VulkanCore.SparseBufferMemoryBindInfo.#ctor(VulkanCore.Buffer,VulkanCore.SparseMemoryBind[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.SparseBufferMemoryBindInfo"/> structure.
            </summary>
            <param name="buffer">The <see cref="T:VulkanCore.Buffer"/> object to be bound.</param>
            <param name="binds">An array of <see cref="T:VulkanCore.SparseMemoryBind"/> structures.</param>
        </member>
        <member name="T:VulkanCore.SparseMemoryBind">
            <summary>
            Structure specifying a sparse memory bind operation.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseMemoryBind.ResourceOffset">
            <summary>
            The offset into the resource.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseMemoryBind.Size">
            <summary>
            The size of the memory region to be bound.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseMemoryBind.Memory">
            <summary>
            The <see cref="T:VulkanCore.DeviceMemory"/> object that the range of the resource is bound to. If
            memory 0, the range is unbound.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseMemoryBind.MemoryOffset">
            <summary>
            The offset into the <see cref="T:VulkanCore.DeviceMemory"/> object to bind the resource range to. If
            memory is 0, this value is ignored.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseMemoryBind.Flags">
            <summary>
            A bitmask specifying usage of the binding operation.
            </summary>
        </member>
        <member name="M:VulkanCore.SparseMemoryBind.#ctor(System.Int64,System.Int64,VulkanCore.DeviceMemory,System.Int64,VulkanCore.SparseMemoryBindFlags)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.SparseMemoryBind"/> structure.
            </summary>
            <param name="resourceOffset">The offset into the resource.</param>
            <param name="size">The size of the memory region to be bound.</param>
            <param name="memory">
            The <see cref="T:VulkanCore.DeviceMemory"/> object that the range of the resource is bound to. If
            memory 0, the range is unbound.
            </param>
            <param name="memoryOffset">
            The offset into the <see cref="T:VulkanCore.DeviceMemory"/> object to bind the resource range to. If
            memory is 0, this value is ignored.
            </param>
            <param name="flags">A bitmask specifying usage of the binding operation.</param>
        </member>
        <member name="T:VulkanCore.SparseMemoryBindFlags">
            <summary>
            Bitmask specifying usage of a sparse memory binding operation.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseMemoryBindFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseMemoryBindFlags.Metadata">
            <summary>
            Specifies that the memory being bound is only for the metadata aspect.
            </summary>
        </member>
        <member name="T:VulkanCore.SparseImageOpaqueMemoryBindInfo">
            <summary>
            Structure specifying sparse image opaque memory bind info.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageOpaqueMemoryBindInfo.Image">
            <summary>
            The <see cref="T:VulkanCore.Image"/> object to be bound.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageOpaqueMemoryBindInfo.Binds">
            <summary>
            An array of <see cref="T:VulkanCore.SparseMemoryBind"/> structures.
            <para>Length must be greater than 0.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.SparseImageOpaqueMemoryBindInfo.#ctor(VulkanCore.Image,VulkanCore.SparseMemoryBind[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.SparseImageOpaqueMemoryBindInfo"/> structure.
            </summary>
            <param name="image">The <see cref="T:VulkanCore.Image"/> object to be bound.</param>
            <param name="binds">An array of <see cref="T:VulkanCore.SparseMemoryBind"/> structures.</param>
        </member>
        <member name="T:VulkanCore.SparseImageMemoryBindInfo">
            <summary>
            Structure specifying sparse image memory bind info.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryBindInfo.Image">
            <summary>
            The <see cref="T:VulkanCore.Image"/> object to be bound.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryBindInfo.Binds">
            <summary>
            An array of <see cref="T:VulkanCore.SparseImageMemoryBind"/> structures.
            <para>Length must be greater than 0.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.SparseImageMemoryBindInfo.#ctor(VulkanCore.Image,VulkanCore.SparseImageMemoryBind[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.SparseImageMemoryBind"/> structure.
            </summary>
            <param name="image">The <see cref="T:VulkanCore.Image"/> object to be bound.</param>
            <param name="binds">An array of <see cref="T:VulkanCore.SparseImageMemoryBind"/> structures.</param>
        </member>
        <member name="T:VulkanCore.SparseImageMemoryBind">
            <summary>
            Structure specifying sparse image memory bind.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryBind.Subresource">
            <summary>
            The aspect mask and region of interest in the image.
            <para>Must be a valid subresource for <see cref="T:VulkanCore.Image"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryBind.Offset">
            <summary>
            The coordinates of the first texel within the image subresource to bind.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryBind.Extent">
            <summary>
            The size in texels of the region within the image subresource to bind. The extent must be
            a multiple of the sparse image block dimensions, except when binding sparse image blocks
            along the edge of an image subresource it can instead be such that any coordinate of <see
            cref="F:VulkanCore.SparseImageMemoryBind.Offset"/> + <see cref="F:VulkanCore.SparseImageMemoryBind.Extent"/> equals the corresponding dimensions of the image subresource.
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryBind.Memory">
            <summary>
            The <see cref="T:VulkanCore.DeviceMemory"/> object that the sparse image blocks of the image are bound
            to. If memory is 0, the sparse image blocks are unbound.
            <para>Must match the memory requirements of the calling command's <see cref="T:VulkanCore.Image"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryBind.MemoryOffset">
            <summary>
            An offset into <see cref="T:VulkanCore.DeviceMemory"/> object. If memory is 0, this value is ignored.
            <para>Must match the memory requirements of the calling command's <see cref="T:VulkanCore.Image"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.SparseImageMemoryBind.Flags">
            <summary>
            Sparse memory binding flags.
            </summary>
        </member>
        <member name="T:VulkanCore.Rect2D">
            <summary>
            Structure specifying a two-dimensional subregion.
            </summary>
        </member>
        <member name="F:VulkanCore.Rect2D.Zero">
            <summary>
            A <see cref="T:VulkanCore.Rect2D"/> with all of its components set to zero.
            </summary>
        </member>
        <member name="F:VulkanCore.Rect2D.Offset">
            <summary>
            The offset component of the rectangle.
            </summary>
        </member>
        <member name="F:VulkanCore.Rect2D.Extent">
            <summary>
            The extent component of the rectangle.
            </summary>
        </member>
        <member name="M:VulkanCore.Rect2D.#ctor(VulkanCore.Offset2D,VulkanCore.Extent2D)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Rect2D"/> structure.
            </summary>
            <param name="offset">The offset component of the rectangle.</param>
            <param name="extent">The extent component of the rectangle.</param>
        </member>
        <member name="M:VulkanCore.Rect2D.#ctor(System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Rect2D"/> structure.
            </summary>
            <param name="x">The X component of the offset.</param>
            <param name="y">The Y component of the offset.</param>
            <param name="width">The width component of the extent.</param>
            <param name="height">The height component of the extent.</param>
        </member>
        <member name="M:VulkanCore.Rect2D.ToString">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Rect2D"/> instance.
            </summary>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Rect2D.ToString(System.IFormatProvider)">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Rect2D"/> instance, using the specified
            format to format individual elements and the given <paramref name="formatProvider"/>.
            </summary>
            <param name="formatProvider">The format provider to use when formatting elements.</param>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Rect2D.Equals(VulkanCore.Rect2D@)">
            <summary>
            Determines whether the specified <see cref="T:VulkanCore.Rect2D"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Rect2D"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:VulkanCore.Rect2D"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Rect2D.Equals(VulkanCore.Rect2D)">
            <summary>
            Determines whether the specified <see cref="T:VulkanCore.Rect2D"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Rect2D"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:VulkanCore.Rect2D"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Rect2D.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Rect2D.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>The hash code.</returns>
        </member>
        <member name="M:VulkanCore.Rect2D.op_Equality(VulkanCore.Rect2D,VulkanCore.Rect2D)">
            <summary>
            Returns a boolean indicating whether the two given rectangles are equal.
            </summary>
            <param name="left">The first rectangle to compare.</param>
            <param name="right">The second rectangle to compare.</param>
            <returns><c>true</c> if the rectangles are equal; <c>false</c> otherwise.</returns>
        </member>
        <member name="M:VulkanCore.Rect2D.op_Inequality(VulkanCore.Rect2D,VulkanCore.Rect2D)">
            <summary>
            Returns a boolean indicating whether the two given rectangles are not equal.
            </summary>
            <param name="left">The first rectangle to compare.</param>
            <param name="right">The second rectangle to compare.</param>
            <returns>
            <c>true</c> if the rectangles are not equal; <c>false</c> if they are equal.
            </returns>
        </member>
        <member name="T:VulkanCore.Rect3D">
            <summary>
            Structure specifying a three-dimensional subregion.
            </summary>
        </member>
        <member name="F:VulkanCore.Rect3D.Zero">
            <summary>
            A <see cref="T:VulkanCore.Rect3D"/> with all of its components set to zero.
            </summary>
        </member>
        <member name="F:VulkanCore.Rect3D.Offset">
            <summary>
            The offset component of the cuboid.
            </summary>
        </member>
        <member name="F:VulkanCore.Rect3D.Extent">
            <summary>
            The extent component of the cuboid.
            </summary>
        </member>
        <member name="M:VulkanCore.Rect3D.#ctor(VulkanCore.Offset3D,VulkanCore.Extent3D)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Rect3D"/> structure.
            </summary>
            <param name="offset">The offset component of the rectangle.</param>
            <param name="extent">The extent component of the rectangle.</param>
        </member>
        <member name="M:VulkanCore.Rect3D.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Rect2D"/> structure.
            </summary>
            <param name="x">The X component of the offset.</param>
            <param name="y">The Y component of the offset.</param>
            <param name="z">The Z component of the offset.</param>
            <param name="width">The width component of the extent.</param>
            <param name="height">The height component of the extent.</param>
            <param name="depth">The depth component of the extent.</param>
        </member>
        <member name="M:VulkanCore.Rect3D.ToString">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Rect3D"/> instance.
            </summary>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Rect3D.ToString(System.IFormatProvider)">
            <summary>
            Returns a string representing this <see cref="T:VulkanCore.Rect3D"/> instance, using the specified
            format to format individual elements and the given <paramref name="formatProvider"/>.
            </summary>
            <param name="formatProvider">The format provider to use when formatting elements.</param>
            <returns>The string representation.</returns>
        </member>
        <member name="M:VulkanCore.Rect3D.Equals(VulkanCore.Rect3D@)">
            <summary>
            Determines whether the specified <see cref="T:VulkanCore.Rect3D"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Rect3D"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:VulkanCore.Rect3D"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Rect3D.Equals(VulkanCore.Rect3D)">
            <summary>
            Determines whether the specified <see cref="T:VulkanCore.Rect3D"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Rect3D"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:VulkanCore.Rect3D"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Rect3D.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Rect3D.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>The hash code.</returns>
        </member>
        <member name="M:VulkanCore.Rect3D.op_Equality(VulkanCore.Rect3D,VulkanCore.Rect3D)">
            <summary>
            Returns a boolean indicating whether the two given rectangles are equal.
            </summary>
            <param name="left">The first rectangle to compare.</param>
            <param name="right">The second rectangle to compare.</param>
            <returns><c>true</c> if the rectangles are equal; <c>false</c> otherwise.</returns>
        </member>
        <member name="M:VulkanCore.Rect3D.op_Inequality(VulkanCore.Rect3D,VulkanCore.Rect3D)">
            <summary>
            Returns a boolean indicating whether the two given rectangles are not equal.
            </summary>
            <param name="left">The first rectangle to compare.</param>
            <param name="right">The second rectangle to compare.</param>
            <returns>
            <c>true</c> if the rectangles are not equal; <c>false</c> if they are equal.
            </returns>
        </member>
        <member name="T:VulkanCore.RenderPass">
            <summary>
            Opaque handle to a render pass object.
            <para>
            A render pass represents a collection of attachments, subpasses, and dependencies between the
            subpasses, and describes how the attachments are used over the course of the subpasses. The
            use of a render pass in a command buffer is a render pass instance.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.RenderPass.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.RenderPass.GetRenderAreaGranularity">
            <summary>
            Returns the granularity for optimal render area.
            </summary>
            <returns>The structure in which the granularity is returned.</returns>
        </member>
        <member name="M:VulkanCore.RenderPass.CreateFramebuffer(VulkanCore.FramebufferCreateInfo,System.Nullable{VulkanCore.AllocationCallbacks})">
            <summary>
            Create a new framebuffer object.
            </summary>
            <param name="createInfo">
            The structure which describes additional information about framebuffer creation.
            </param>
            <param name="allocator">Controls host memory allocation.</param>
            <returns>The resulting framebuffer object.</returns>
            <exception cref="T:VulkanCore.VulkanException">Vulkan returns an error code.</exception>
        </member>
        <member name="M:VulkanCore.RenderPass.Dispose">
            <summary>
            Destroy a render pass object.
            </summary>
        </member>
        <member name="T:VulkanCore.RenderPassCreateInfo">
            <summary>
            Structure specifying parameters of a newly created render pass.
            </summary>
        </member>
        <member name="F:VulkanCore.RenderPassCreateInfo.Attachments">
            <summary>
            Structures describing properties of the attachments, or <c>null</c>.
            </summary>
        </member>
        <member name="F:VulkanCore.RenderPassCreateInfo.Subpasses">
            <summary>
            Structures describing properties of the subpasses.
            </summary>
        </member>
        <member name="F:VulkanCore.RenderPassCreateInfo.Dependencies">
            <summary>
            Structures describing dependencies between pairs of subpasses, or <c>null</c>.
            </summary>
        </member>
        <member name="M:VulkanCore.RenderPassCreateInfo.#ctor(VulkanCore.SubpassDescription[],VulkanCore.AttachmentDescription[],VulkanCore.SubpassDependency[])">
            <summary>
            Initializes a new instnace of the <see cref="T:VulkanCore.RenderPassCreateInfo"/> structure.
            </summary>
            <param name="subpasses">Structures describing properties of the subpasses.</param>
            <param name="attachments">Structures describing properties of the attachments, or <c>null</c>.</param>
            <param name="dependencies">
            Structures describing dependencies between pairs of subpasses, or <c>null</c>.
            </param>
        </member>
        <member name="T:VulkanCore.SubpassDescription">
            <summary>
            Structure specifying a subpass description.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDescription.Flags">
            <summary>
            A bitmask specifying usage of the subpass.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDescription.ColorAttachments">
            <summary>
            Structures that lists which of the render pass's attachments will be used as color
            attachments in the subpass, and what layout each attachment will be in during the subpass.
            <para>
            Each element of the array corresponds to a fragment shader output location, i.e. if the
            shader declared an output variable <c>layout(location=X)</c> then it uses the attachment
            provided in <c>ColorAttachments[X]</c>.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDescription.InputAttachments">
            <summary>
            Structures that lists which of the render pass's attachments can be read in the shader
            during the subpass, and what layout each attachment will be in during the subpass. Each
            element of the array corresponds to an input attachment unit number in the shader, i.e.
            if the shader declares an input variable <c>layout(inputAttachmentIndex=X, set=Y,
            binding=Z</c> then it uses the attachment provided in <c>InputAttachments[X]</c>.
            Input attachments must also be bound to the pipeline with a descriptor set, with the
            input attachment descriptor written in the location (set=Y, binding=Z).
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDescription.ResolveAttachments">
            <summary>
            Is <c>null</c> or an array of structures that lists which of the render pass's
            attachments are resolved to at the end of the subpass, and what layout each attachment
            will be in during the multisample resolve operation. If <see cref="F:VulkanCore.SubpassDescription.ResolveAttachments"/>
            is not <c>null</c>, each of its elements corresponds to a color attachment (the element
            in <see cref="F:VulkanCore.SubpassDescription.ColorAttachments"/> at the same index), and a multisample resolve operation
            is defined for each attachment. At the end of each subpass, multisample resolve
            operations read the subpass's color attachments, and resolve the samples for each pixel
            to the same pixel location in the corresponding resolve attachments, unless the resolve
            attachment index is <see cref="F:VulkanCore.Constant.AttachmentUnused"/>. If the first use of an
            attachment in a render pass is as a resolve attachment, then the <see
            cref="T:VulkanCore.AttachmentLoadOp"/> is effectively ignored as the resolve is guaranteed to
            overwrite all pixels in the render area.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDescription.DepthStencilAttachment">
            <summary>
            Specifies which attachment will be used for depth/stencil data and the layout it will be
            in during the subpass. Setting the attachment index to <see
            cref="F:VulkanCore.Constant.AttachmentUnused"/> or leaving this as <c>null</c> indicates that no
            depth/stencil attachment will be used in the subpass.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDescription.PreserveAttachments">
            <summary>
            Render pass attachment indices describing the attachments that are not used by a subpass,
            but whose contents must be preserved throughout the subpass.
            </summary>
        </member>
        <member name="M:VulkanCore.SubpassDescription.#ctor(VulkanCore.SubpassDescriptionFlags,VulkanCore.AttachmentReference[],VulkanCore.AttachmentReference[],VulkanCore.AttachmentReference[],System.Nullable{VulkanCore.AttachmentReference},System.Int32[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.SubpassDescription"/> structure.
            </summary>
            <param name="flags">A bitmask indicating usage of the subpass.</param>
            <param name="colorAttachments">
            Structures that lists which of the render pass’s attachments will be used as color
            attachments in the subpass, and what layout each attachment will be in during the
            subpass. Each element of the array corresponds to a fragment shader output location, i.e.
            if the shader declared an output variable <c>layout(location=X)</c> then it uses the
            attachment provided in <c>ColorAttachments[X]</c>.
            </param>
            <param name="inputAttachments">
            Structures that lists which of the render pass's attachments can be read in the shader
            during the subpass, and what layout each attachment will be in during the subpass. Each
            element of the array corresponds to an input attachment unit number in the shader, i.e.
            if the shader declares an input variable <c>layout(inputAttachmentIndex=X, set=Y,
            binding=Z)</c> then it uses the attachment provided in <c>InputAttachments[X]</c>. Input
            attachments must also be bound to the pipeline with a descriptor set, with the input
            attachment descriptor written in the location (set=Y, binding=Z).
            </param>
            <param name="resolveAttachments">
            Is <c>null</c> or an array of structures that lists which of the render pass's
            attachments are resolved to at the end of the subpass, and what layout each attachment
            will be in during the multisample resolve operation. If <see cref="F:VulkanCore.SubpassDescription.ResolveAttachments"/>
            is not <c>null</c>, each of its elements corresponds to a color attachment (the element
            in <see cref="F:VulkanCore.SubpassDescription.ColorAttachments"/> at the same index), and a multisample resolve operation
            is defined for each attachment. At the end of each subpass, multisample resolve
            operations read the subpass's color attachments, and resolve the samples for each pixel
            to the same pixel location in the corresponding resolve attachments, unless the resolve
            attachment index is <see cref="F:VulkanCore.Constant.AttachmentUnused"/>. If the first use of an
            attachment in a render pass is as a resolve attachment, then the <see
            cref="T:VulkanCore.AttachmentLoadOp"/> is effectively ignored as the resolve is guaranteed to
            overwrite all pixels in the render area.
            </param>
            <param name="depthStencilAttachment">
            Specifies which attachment will be used for depth/stencil data and the layout it will be
            in during the subpass. Setting the attachment index to <see
            cref="F:VulkanCore.Constant.AttachmentUnused"/> or leaving this as <c>null</c> indicates that no
            depth/stencil attachment will be used in the subpass.
            </param>
            <param name="preserveAttachments">
            Render pass attachment indices describing the attachments that are not used by a subpass,
            but whose contents must be preserved throughout the subpass.
            </param>
        </member>
        <member name="M:VulkanCore.SubpassDescription.#ctor(VulkanCore.AttachmentReference[],System.Nullable{VulkanCore.AttachmentReference})">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.SubpassDescription"/> structure.
            </summary>
            <param name="colorAttachments">
            Structures that lists which of the render pass’s attachments will be used as color
            attachments in the subpass, and what layout each attachment will be in during the
            subpass. Each element of the array corresponds to a fragment shader output location, i.e.
            if the shader declared an output variable layout(location=X) then it uses the attachment
            provided in <see cref="F:VulkanCore.SubpassDescription.ColorAttachments"/>[X].
            </param>
            <param name="depthStencilAttachment">
            Specifies which attachment will be used for depth/stencil data and the layout it will be
            in during the subpass. Setting the attachment index to <see
            cref="F:VulkanCore.Constant.AttachmentUnused"/> or leaving this as <c>null</c> indicates that no
            depth/stencil attachment will be used in the subpass.
            </param>
        </member>
        <member name="T:VulkanCore.SubpassDescriptionFlags">
            <summary>
            Bitmask specifying usage of a subpass.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDescriptionFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDescriptionFlags.PerViewAttributesNvx">
            <summary>
            Specifies that shaders compiled for this subpass write the attributes for all views in a
            single invocation of each vertex processing stage. All pipelines compiled against a
            subpass that includes this bit must write per-view attributes to the <c>*PerViewNV[]</c>
            shader outputs, in addition to the non-per-view (e.g. <c>Position</c>) outputs.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDescriptionFlags.PerViewPositionXOnlyNvx">
            <summary>
            Specifies that shaders compiled for this subpass use per-view positions which only differ
            in value in the x component. Per-view viewport mask can also be used.
            </summary>
        </member>
        <member name="T:VulkanCore.PipelineBindPoint">
            <summary>
            Specify the bind point of a pipeline object to a command buffer.
            <para>
            There are separate bind points for each of graphics and compute, so binding one does not
            disturb the other.
            </para>
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineBindPoint.Graphics">
            <summary>
            Specifies binding as a graphics pipeline.
            </summary>
        </member>
        <member name="F:VulkanCore.PipelineBindPoint.Compute">
            <summary>
            Specifies binding as a compute pipeline.
            </summary>
        </member>
        <member name="T:VulkanCore.AttachmentReference">
            <summary>
            Structure specifying an attachment reference.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentReference.Attachment">
            <summary>
            The index of the attachment of the render pass, and corresponds to the index of the
            corresponding element in the <see cref="F:VulkanCore.RenderPassCreateInfo.Attachments"/> array. If any
            color or depth/stencil attachments are <see cref="F:VulkanCore.Constant.AttachmentUnused"/>, then no
            writes occur for those attachments.
            </summary>
        </member>
        <member name="F:VulkanCore.AttachmentReference.Layout">
            <summary>
            Specifies the layout the attachment uses during the subpass.
            <para>Must not be <see cref="F:VulkanCore.ImageLayout.Undefined"/> or <see cref="F:VulkanCore.ImageLayout.Preinitialized"/>.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.AttachmentReference.#ctor(System.Int32,VulkanCore.ImageLayout)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.AttachmentReference"/> structure.
            </summary>
            <param name="attachment">
            The index of the attachment of the render pass, and corresponds to the index of the
            corresponding element in the <see cref="F:VulkanCore.RenderPassCreateInfo.Attachments"/> array. If any
            color or depth/stencil attachments are <see cref="F:VulkanCore.Constant.AttachmentUnused"/>, then no
            writes occur for those attachments.
            </param>
            <param name="layout">Specifies the layout the attachment uses during the subpass.</param>
        </member>
        <member name="T:VulkanCore.SubpassDependency">
            <summary>
            Structure specifying a subpass dependency.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDependency.SrcSubpass">
            <summary>
            The subpass index of the first subpass in the dependency, or <see cref="F:VulkanCore.Constant.SubpassExternal"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDependency.DstSubpass">
            <summary>
            The subpass index of the second subpass in the dependency, or <see cref="F:VulkanCore.Constant.SubpassExternal"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDependency.SrcStageMask">
            <summary>
            Specifies a source stage mask.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDependency.DstStageMask">
            <summary>
            Specifies a destination stage mask.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDependency.SrcAccessMask">
            <summary>
            Specifies a source access mask.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDependency.DstAccessMask">
            <summary>
            Specifies a destination access mask.
            </summary>
        </member>
        <member name="F:VulkanCore.SubpassDependency.DependencyFlags">
            <summary>
            A bitmask of <see cref="T:VulkanCore.Dependencies"/>.
            </summary>
        </member>
        <member name="T:VulkanCore.Dependencies">
            <summary>
            Bitmask specifying how execution and memory dependencies are formed.
            </summary>
        </member>
        <member name="F:VulkanCore.Dependencies.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:VulkanCore.Dependencies.ByRegion">
            <summary>
            Specifies that dependencies will be framebuffer-local.
            </summary>
        </member>
        <member name="F:VulkanCore.Dependencies.ViewLocalKhx">
            <summary>
            Specifies that a subpass has more than one view.
            </summary>
        </member>
        <member name="F:VulkanCore.Dependencies.DeviceGroupKhx">
            <summary>
            Specifies that dependencies are non-device-local.
            </summary>
        </member>
        <member name="T:VulkanCore.Result">
            <summary>
            Vulkan command return codes.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.Success">
            <summary>
            Command successfully completed.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.NotReady">
            <summary>
            A fence or query has not yet completed.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.Timeout">
            <summary>
            A wait operation has not completed in the specified time.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.EventSet">
            <summary>
            An event is signaled.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.EventReset">
            <summary>
            An event is unsignaled.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.Incomplete">
            <summary>
            A return array was too small for the result.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorOutOfHostMemory">
            <summary>
            A host memory allocation has failed.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorOutOfDeviceMemory">
            <summary>
            A device memory allocation has failed.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorInitializationFailed">
            <summary>
            Initialization of an object could not be completed for implementation-specific reasons.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorDeviceLost">
            <summary>
            The logical or physical device has been lost.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorMemoryMapFailed">
            <summary>
            Mapping of a memory object has failed.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorLayerNotPresent">
            <summary>
            A requested layer is not present or could not be loaded.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorExtensionNotPresent">
            <summary>
            A requested extension is not supported.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorFeatureNotPresent">
            <summary>
            A requested feature is not supported.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorIncompatibleDriver">
            <summary>
            The requested version of Vulkan is not supported by the driver or is otherwise
            incompatible for implementation-specific reasons.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorTooManyObjects">
            <summary>
            Too many objects of the type have already been created.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorFormatNotSupported">
            <summary>
            A requested format is not supported on this device.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorFragmentedPool">
            <summary>
            A pool allocation has failed due to fragmentation of the pool's memory. This must only be
            returned if no attempt to allocate host or device memory was made to accomodate the new allocation.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorSurfaceLostKhr">
            <summary>
            The surface becomes no longer available.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorNativeWindowInUseKhr">
            <summary>
            The requested window is already in use by Vulkan or another API in a manner which
            prevents it from being used again.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.SuboptimalKhr">
            <summary>
            A swapchain no longer matches the surface properties exactly, but can still be used to
            present to the surface successfully.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorOutOfDateKhr">
            <summary>
            A surface has changed in such a way that it is no longer compatible with the swapchain,
            and further presentation requests using the swapchain will fail. Applications must query
            the new surface properties and recreate their swapchain if they wish to continue
            presenting to the surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorIncompatibleDisplayKhr">
            <summary>
            A surface has changed in such a way that it is no longer compatible with the swapchain,
            and further presentation requests using the swapchain will fail. Applications must query
            the new surface properties and recreate their swapchain if they wish to continue
            presenting to the surface.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorValidationFailedExt">
            <summary>
            The application returned <c>true</c> from its callback and the Vulkan call being aborted
            returned a <see cref="T:VulkanCore.Result"/>.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorInvalidShaderNV">
            <summary>
            One or more shaders failed to compile or link. More details are reported back to the
            application via <see cref="T:VulkanCore.Ext.DebugReportCallbackExt"/> if enabled.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorOutOfPoolMemoryKhr">
            <summary>
            A pool memory allocation has failed. This must only be returned if no attempt to allocate
            host or device memory was made to accomodate the new allocation. If the failure was
            definitely due to fragmentation of the pool, <see cref="F:VulkanCore.Result.ErrorFragmentedPool"/> should be
            returned instead.
            </summary>
        </member>
        <member name="F:VulkanCore.Result.ErrorInvalidExternalHandleKhx">
            <summary>
            An external handle is not a valid handle of the specified type.
            </summary>
        </member>
        <member name="T:VulkanCore.Sampler">
            <summary>
            Opaque handle to a sampler object.
            <para>
            <see cref="T:VulkanCore.Sampler"/> objects represent the state of an image sampler which is used by the
            implementation to read image data and apply filtering and other transformations for the shader.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.Sampler.Parent">
            <summary>
            Gets the parent of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Sampler.Dispose">
            <summary>
            Destroy a sampler object.
            </summary>
        </member>
        <member name="T:VulkanCore.SamplerCreateInfo">
            <summary>
            Structure specifying parameters of a newly created sampler.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.MagFilter">
            <summary>
            Specifies the magnification filter to apply to lookups.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.MinFilter">
            <summary>
            Specifies the minification filter to apply to lookups.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.MipmapMode">
            <summary>
            Specifies the mipmap filter to apply to lookups.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.AddressModeU">
            <summary>
            Specifies the addressing mode for outside [0..1] range for U coordinate.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.AddressModeV">
            <summary>
            Specifies the addressing mode for outside [0..1] range for V coordinate.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.AddressModeW">
            <summary>
            Specifies the addressing mode for outside [0..1] range for W coordinate.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.MipLodBias">
            <summary>
            The bias to be added to mipmap LOD calculation and bias provided by image sampling
            functions in SPIR-V.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.AnisotropyEnable">
            <summary>
            Is <c>true</c> to enable anisotropic filtering, or <c>false</c> otherwise.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.MaxAnisotropy">
            <summary>
            The anisotropy value clamp.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.CompareEnable">
            <summary>
            Is <c>true</c> to enable comparison against a reference value during lookups, or
            <c>false</c> otherwise.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.CompareOp">
            <summary>
            Specifies the comparison function to apply to fetched data before filtering.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.MinLod">
            <summary>
            The value used to clamp the computed level-of-detail value.
            <para>Must be less than or equal to <see cref="F:VulkanCore.SamplerCreateInfo.MaxLod"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.MaxLod">
            <summary>
            The value used to clamp the computed level-of-detail value.
            <para>Must be greater than or equal to <see cref="F:VulkanCore.SamplerCreateInfo.MinLod"/>.</para>
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.BorderColor">
            <summary>
            Specifies the predefined border color to use.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerCreateInfo.UnnormalizedCoordinates">
            <summary>
            Controls whether to use unnormalized or normalized texel coordinates to address texels of
            the image. When set to <c>true</c>, the range of the image coordinates used to lookup the
            texel is in the range of zero to the image dimensions for x, y and z. When set to
            <c>false</c> the range of image coordinates is zero to one.
            </summary>
        </member>
        <member name="T:VulkanCore.SamplerMipmapMode">
            <summary>
            Specify mipmap mode used for texture lookups.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerMipmapMode.Nearest">
            <summary>
            Specifies nearest filtering.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerMipmapMode.Linear">
            <summary>
            Specifies linear filtering.
            </summary>
        </member>
        <member name="T:VulkanCore.SamplerAddressMode">
            <summary>
            Specify behavior of sampling with texture coordinates outside an image.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerAddressMode.Repeat">
            <summary>
            Specifies that the repeat wrap mode will be used.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerAddressMode.MirroredRepeat">
            <summary>
            Specifies that the mirrored repeat wrap mode will be used.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerAddressMode.ClampToEdge">
            <summary>
            Specifies that the clamp to edge wrap mode will be used.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerAddressMode.ClampToBorder">
            <summary>
            Specifies that the clamp to border wrap mode will be used.
            </summary>
        </member>
        <member name="F:VulkanCore.SamplerAddressMode.MirrorClampToEdge">
            <summary>
            Specifies that the mirror clamp to edge wrap mode will be used. This is only valid if the
            "VK_KHR_mirror_clamp_to_edge" extension is enabled.
            </summary>
        </member>
        <member name="T:VulkanCore.BorderColor">
            <summary>
            Specify border color used for texture lookups.
            </summary>
        </member>
        <member name="F:VulkanCore.BorderColor.FloatTransparentBlack">
            <summary>
            Specifies a transparent, floating-point format, black color.
            </summary>
        </member>
        <member name="F:VulkanCore.BorderColor.IntTransparentBlack">
            <summary>
            Specifies a transparent, integer format, black color.
            </summary>
        </member>
        <member name="F:VulkanCore.BorderColor.FloatOpaqueBlack">
            <summary>
            Specifies an opaque, floating-point format, black color.
            </summary>
        </member>
        <member name="F:VulkanCore.BorderColor.IntOpaqueBlack">
            <summary>
            Specifies an opaque, integer format, black color.
            </summary>
        </member>
        <member name="F:VulkanCore.BorderColor.FloatOpaqueWhite">
            <summary>
            Specifies an opaque, floating-point format, white color.
            </summary>
        </member>
        <member name="F:VulkanCore.BorderColor.IntOpaqueWhite">
            <summary>
            Specifies an opaque, integer format, white color.
            </summary>
        </member>
        <member name="T:VulkanCore.Semaphore">
            <summary>
            Opaque handle to a semaphore object.
            <para>
            Semaphores are a synchronization primitive that can be used to insert a dependency between
            batches submitted to queues. Semaphores have two states - signaled and unsignaled. The state
            of a semaphore can be signaled after execution of a batch of commands is completed. A batch
            can wait for a semaphore to become signaled before it begins execution, and the semaphore is
            also unsignaled before the batch begins execution.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.Semaphore.Parent">
            <summary>
            Gets the parent of this resource.
            </summary>
        </member>
        <member name="M:VulkanCore.Semaphore.Dispose">
            <summary>
            Destroy a semaphore object.
            </summary>
        </member>
        <member name="T:VulkanCore.SemaphoreCreateInfo">
            <summary>
            Structure specifying parameters of a newly created semaphore.
            </summary>
        </member>
        <member name="T:VulkanCore.ShaderModule">
            <summary>
            Opaque handle to a shader module object.
            <para>
            Shader modules contain shader code and one or more entry points. Shaders are selected from a
            shader module by specifying an entry point as part of pipeline creation. The stages of a
            pipeline can use shaders that come from different modules. The shader code defining a shader
            module must be in the SPIR-V format.
            </para>
            </summary>
        </member>
        <member name="P:VulkanCore.ShaderModule.Parent">
            <summary>
            Gets the owner of the resource.
            </summary>
        </member>
        <member name="M:VulkanCore.ShaderModule.Dispose">
            <summary>
            Destroy a shader module.
            </summary>
        </member>
        <member name="T:VulkanCore.ShaderModuleCreateInfo">
            <summary>
            Structure specifying parameters of a newly created shader module.
            </summary>
        </member>
        <member name="F:VulkanCore.ShaderModuleCreateInfo.Code">
            <summary>
            The code that is used to create the shader module. The type and format of the code is
            determined from the content of the code.
            </summary>
        </member>
        <member name="M:VulkanCore.ShaderModuleCreateInfo.#ctor(System.Byte[])">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.ShaderModuleCreateInfo"/> structure.
            </summary>
            <param name="code">
            The code that is used to create the shader module. The type and format of the code is
            determined from the content of the code.
            </param>
        </member>
        <member name="T:VulkanCore.Size">
            <summary>
            A platform-specific type that is used to represent a size (in bytes) of an object in memory.
            <para>Equivalent to C/C++ size_t type.</para>
            </summary>
        </member>
        <member name="M:VulkanCore.Size.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Size"/> structure.
            </summary>
            <param name="size">The size of an object in bytes.</param>
        </member>
        <member name="M:VulkanCore.Size.#ctor(System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Size"/> structure.
            </summary>
            <param name="size">The size of an object in bytes.</param>
        </member>
        <member name="M:VulkanCore.Size.ToString">
            <summary>
            Converts the numeric value of the current <see cref="T:VulkanCore.Size"/> object to its equivalent
            string representation.
            </summary>
            <returns>The string representation of the value of this instance.</returns>
        </member>
        <member name="M:VulkanCore.Size.Equals(VulkanCore.Size)">
            <summary>
            Returns a boolean indicating whether the given <see cref="T:VulkanCore.Size"/> is equal to this <see
            cref="T:VulkanCore.Size"/> instance.
            </summary>
            <param name="other">The <see cref="T:VulkanCore.Size"/> to compare this instance to.</param>
            <returns>
            <c>true</c> if the other <see cref="T:VulkanCore.Size"/> is equal to this instance; <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:VulkanCore.Size.Equals(System.Object)">
            <summary>
            Returns a boolean indicating whether the given <see cref="T:System.Object"/> is equal to this <see
            cref="T:VulkanCore.Size"/> instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare against.</param>
            <returns>
            <c>true</c> if the <see cref="T:System.Object"/> is equal to this instance; <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:VulkanCore.Size.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>The hash code.</returns>
        </member>
        <member name="M:VulkanCore.Size.CompareTo(VulkanCore.Size)">
            <summary>
            Compares the current instance with another size and returns an integer that indicates
            whether the current instance precedes, follows, or occurs in the same position in the
            sort order as the other version.
            </summary>
            <param name="other">A size to compare with this instance.</param>
            <returns>A value that indicates the relative order of the sizes being compared.</returns>
        </member>
        <member name="M:VulkanCore.Size.op_Equality(VulkanCore.Size,VulkanCore.Size)">
            <summary>
            Returns a boolean indicating whether the two given sizes are equal.
            </summary>
            <param name="left">The first size to compare.</param>
            <param name="right">The second size to compare.</param>
            <returns><c>true</c> if the sizes are equal; <c>false</c> otherwise.</returns>
        </member>
        <member name="M:VulkanCore.Size.op_Inequality(VulkanCore.Size,VulkanCore.Size)">
            <summary>
            Returns a boolean indicating whether the two given sizes are not equal.
            </summary>
            <param name="left">The first size to compare.</param>
            <param name="right">The second size to compare.</param>
            <returns>
            <c>true</c> if the sizes are not equal; <c>false</c> if they are equal.
            </returns>
        </member>
        <member name="M:VulkanCore.Size.op_Implicit(System.Int32)~VulkanCore.Size">
            <summary>
            Implicitly converts an <see cref="T:System.Int32"/> to a <see cref="T:VulkanCore.Size"/>.
            </summary>
            <param name="value">Instance to convert.</param>
        </member>
        <member name="M:VulkanCore.Size.op_Implicit(System.Int64)~VulkanCore.Size">
            <summary>
            Implicitly converts a <see cref="T:System.Int64"/> to a <see cref="T:VulkanCore.Size"/>.
            </summary>
            <param name="value">Instance to convert.</param>
        </member>
        <member name="M:VulkanCore.Size.op_Implicit(System.IntPtr)~VulkanCore.Size">
            <summary>
            Implicitly converts an <see cref="T:System.IntPtr"/> to a <see cref="T:VulkanCore.Size"/>.
            </summary>
            <param name="value">Instance to convert.</param>
        </member>
        <member name="M:VulkanCore.Size.op_Explicit(VulkanCore.Size)~System.Int32">
            <summary>
            Explicitly converts a <see cref="T:VulkanCore.Size"/> to an <see cref="T:System.Int32"/>.
            </summary>
            <param name="size">Instance to convert.</param>
        </member>
        <member name="M:VulkanCore.Size.op_Implicit(VulkanCore.Size)~System.Int64">
            <summary>
            Implicitly converts a <see cref="T:VulkanCore.Size"/> to a <see cref="T:System.Int64"/>.
            </summary>
            <param name="size">Instance to convert.</param>
        </member>
        <member name="M:VulkanCore.Size.op_Implicit(VulkanCore.Size)~System.IntPtr">
            <summary>
            Implicitly converts a <see cref="T:VulkanCore.Size"/> to an <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="size">Instance to convert.</param>
        </member>
        <member name="T:VulkanCore.StructureType">
            <summary>
            Structure type enumerant.
            </summary>
        </member>
        <member name="F:VulkanCore.StructureType.LoaderInstanceCreateInfo">
            <summary>
            Reserved for internal use by the loader, layers, and ICDs.
            </summary>
        </member>
        <member name="F:VulkanCore.StructureType.LoaderDeviceCreateInfo">
            <summary>
            Reserved for internal use by the loader, layers, and ICDs.
            </summary>
        </member>
        <member name="T:VulkanCore.UtilityExtensions">
            <summary>
            Provides helper methods for various types.
            </summary>
        </member>
        <member name="M:VulkanCore.UtilityExtensions.IndexOf(System.Collections.Generic.IList{VulkanCore.MemoryType},System.Int32,VulkanCore.MemoryProperties)">
            <summary>
            Gets the index of the <see cref="T:VulkanCore.MemoryType"/> that has all the requested <paramref
            name="properties"/> set or <c>-1</c> if not found.
            </summary>
            <param name="memoryTypes">
            Structures describing the memory types that can be used to access memory allocated from
            the heaps specified by <see cref="F:VulkanCore.PhysicalDeviceMemoryProperties.MemoryHeaps"/>.
            </param>
            <param name="memoryTypeBits">
            A bitmask of <see cref="F:VulkanCore.MemoryRequirements.MemoryTypeBits"/> that contains one bit set
            for every memory type supported by the resource.
            </param>
            <param name="properties">A bitmask of properties to request.</param>
            <returns>Index of the requested <see cref="T:VulkanCore.MemoryType"/> or <c>-1</c> if not found.</returns>
            ///
            <exception cref="T:System.ArgumentNullException"><paramref name="memoryTypes"/> is <c>null</c>.</exception>
        </member>
        <member name="M:VulkanCore.UtilityExtensions.Contains(System.Collections.Generic.IEnumerable{VulkanCore.LayerProperties},System.String)">
            <summary>
            Determines whether a sequence of <see cref="T:VulkanCore.LayerProperties"/> contains a layer with
            specified <paramref name="name"/>.
            </summary>
            <param name="layers">A sequence in which to locate a layer name.</param>
            <param name="name">The layer name to locate in the sequence.</param>
            <returns>
            <c>true</c> if the source sequence contains an element that has the specified value;
            otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="layers"/> is <c>null</c>.</exception>
        </member>
        <member name="M:VulkanCore.UtilityExtensions.Contains(System.Collections.Generic.IEnumerable{VulkanCore.ExtensionProperties},System.String)">
            <summary>
            Determines whether a sequence of <see cref="T:VulkanCore.ExtensionProperties"/> contains a layer with
            specified <paramref name="name"/>.
            </summary>
            <param name="extensions">A sequence in which to locate an extension name.</param>
            <param name="name">The layer name to locate in the sequence.</param>
            <returns>
            <c>true</c> if the source sequence contains an element that has the specified value;
            otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="extensions"/> is <c>null</c>.</exception>
        </member>
        <member name="T:VulkanCore.Version">
            <summary>
            Semantic Versioning number.
            </summary>
            <remarks>http://semver.org/</remarks>
        </member>
        <member name="M:VulkanCore.Version.#ctor(System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.Version"/> struct.
            </summary>
            <param name="major">Major component of semver.</param>
            <param name="minor">Minor component of semver.</param>
            <param name="patch">Patch component of semver.</param>
        </member>
        <member name="P:VulkanCore.Version.Major">
            <summary>
            Gets the major component of semver.
            </summary>
        </member>
        <member name="P:VulkanCore.Version.Minor">
            <summary>
            Gets the minor component of semver.
            </summary>
        </member>
        <member name="P:VulkanCore.Version.Patch">
            <summary>
            Gets the patch component of semver.
            </summary>
        </member>
        <member name="M:VulkanCore.Version.ToString">
            <summary>
            Returns a string that represents the current version in the form of MAJOR.MINOR.PATCH.
            </summary>
            <returns>A string that represents the current version.</returns>
        </member>
        <member name="M:VulkanCore.Version.Equals(VulkanCore.Version)">
            <summary>
            Indicates whether the current version is equal to another version.
            </summary>
            <param name="other">A version to compare with this version.</param>
            <returns>
            <c>true</c> if the current version is equal to the other parameter; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VulkanCore.Version.CompareTo(VulkanCore.Version)">
            <summary>
            Compares the current instance with another version and returns an integer that indicates
            whether the current instance precedes, follows, or occurs in the same position in the
            sort order as the other version.
            </summary>
            <param name="other">A version to compare with this instance.</param>
            <returns>A value that indicates the relative order of the versions being compared.</returns>
        </member>
        <member name="P:VulkanCore.Version.Zero">
            <summary>
            A shorthand for writing <c>new Version(0, 0, 0)</c>.
            </summary>
        </member>
        <member name="T:VulkanCore.VulkanException">
            <summary>
            Represents an error from executing a Vulkan command.
            </summary>
        </member>
        <member name="M:VulkanCore.VulkanException.#ctor(VulkanCore.Result,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:VulkanCore.VulkanException"/> class.
            </summary>
            <param name="result">The result returned by Vulkan.</param>
            <param name="message">The message that describes the error.</param>
        </member>
        <member name="P:VulkanCore.VulkanException.Result">
            <summary>
            Gets the result returned by Vulkan.
            </summary>
        </member>
        <member name="P:VulkanCore.VulkanException.IsError">
            <summary>
            Gets if the result is considered an error.
            </summary>
        </member>
    </members>
</doc>
