Header menu logo Nu

VulkanBuffer Type

Represents a dynamically growing multibuffer with parallel underlying vulkan buffers. Maintains an internal cursor that selects the currently active buffer, which is reset via beginFrame and advanced to the next vulkan buffer with advance. Automatically resizes when usage exceeds its capacity and creates additional buffers when the cursor moves beyond current capacity. This type is intended for transient or frequently updated GPU data such as storage data, uniform data, and streaming data. NOTE: this type's name is prefixed with "Vulkan" in order to reliably disambiguate it from System.Buffer.

Record fields

Record Field Description

BufferSize_

Full Usage: BufferSize_

Field type: int
Field type: int

BufferType_

Full Usage: BufferType_

Field type: BufferType
Field type: BufferType

BufferWrappersCursor_

Full Usage: BufferWrappersCursor_

Field type: int
Modifiers: mutable
Field type: int

BufferWrappers_

Full Usage: BufferWrappers_

Field type: BufferWrapper array
Modifiers: mutable
Field type: BufferWrapper array

Instance members

Instance member Description

this.VkBuffer

Full Usage: this.VkBuffer

Returns: VkBuffer

Get the vulkan buffer currently at the cursor.

Returns: VkBuffer

Static members

Static member Description

VulkanBuffer.advance buffer

Full Usage: VulkanBuffer.advance buffer

Parameters:

Advance the cursor.

buffer : VulkanBuffer

VulkanBuffer.beginFrame buffer

Full Usage: VulkanBuffer.beginFrame buffer

Parameters:

Begin use of this buffer for the current frame.

buffer : VulkanBuffer

VulkanBuffer.create bufferType bufferSize context

Full Usage: VulkanBuffer.create bufferType bufferSize context

Parameters:
Returns: VulkanBuffer

Create a new buffer.

bufferType : BufferType
bufferSize : int
context : VulkanContext
Returns: VulkanBuffer

VulkanBuffer.createIndexStaged size data context

Full Usage: VulkanBuffer.createIndexStaged size data context

Parameters:
Returns: VulkanBuffer

Create an index buffer with data uploaded via staging buffer.

size : int
data : nativeint
context : VulkanContext
Returns: VulkanBuffer

VulkanBuffer.createIndexStagedFromArray array context

Full Usage: VulkanBuffer.createIndexStagedFromArray array context

Parameters:
Returns: VulkanBuffer

Create an index buffer with data uploaded via staging buffer from an array.

array : 'a array
context : VulkanContext
Returns: VulkanBuffer

VulkanBuffer.createIndexStagedFromMemory memory context

Full Usage: VulkanBuffer.createIndexStagedFromMemory memory context

Parameters:
Returns: VulkanBuffer

Create an index buffer with data uploaded via staging buffer from memory.

memory : Memory<'a>
context : VulkanContext
Returns: VulkanBuffer

VulkanBuffer.createVertexStaged size data context

Full Usage: VulkanBuffer.createVertexStaged size data context

Parameters:
Returns: VulkanBuffer

Create a vertex buffer with data uploaded via staging buffer.

size : int
data : nativeint
context : VulkanContext
Returns: VulkanBuffer

VulkanBuffer.createVertexStagedFromArray array context

Full Usage: VulkanBuffer.createVertexStagedFromArray array context

Parameters:
Returns: VulkanBuffer

Create a vertex buffer with data uploaded via staging buffer from an array.

array : 'a array
context : VulkanContext
Returns: VulkanBuffer

VulkanBuffer.createVertexStagedFromMemory memory context

Full Usage: VulkanBuffer.createVertexStagedFromMemory memory context

Parameters:
Returns: VulkanBuffer

Create a vertex buffer with data uploaded via staging buffer from memory.

memory : Memory<'a>
context : VulkanContext
Returns: VulkanBuffer

VulkanBuffer.destroy buffer context

Full Usage: VulkanBuffer.destroy buffer context

Parameters:

Destroy buffer.

buffer : VulkanBuffer
context : VulkanContext

VulkanBuffer.ensureWidth size buffer context

Full Usage: VulkanBuffer.ensureWidth size buffer context

Parameters:

Expand current buffer width as necessary. OPTIMIZATION: this may swap unutilized buffers around to best utilize existing buffers.

size : int
buffer : VulkanBuffer
context : VulkanContext

VulkanBuffer.flushSubdata offset alignment size count buffer context

Full Usage: VulkanBuffer.flushSubdata offset alignment size count buffer context

Parameters:

Flush subdata from buffer. Caller is reponsible for ensuring buffer width and height.

offset : int
alignment : int
size : int
count : int
buffer : VulkanBuffer
context : VulkanContext

VulkanBuffer.stageData size data context

Full Usage: VulkanBuffer.stageData size data context

Parameters:
Returns: VulkanBuffer

Create a staging buffer and stage the data.

size : int
data : nativeint
context : VulkanContext
Returns: VulkanBuffer

VulkanBuffer.uploadArray array buffer context

Full Usage: VulkanBuffer.uploadArray array buffer context

Parameters:

Upload an array to buffer.

array : 'a array
buffer : VulkanBuffer
context : VulkanContext

VulkanBuffer.uploadData size count data buffer context

Full Usage: VulkanBuffer.uploadData size count data buffer context

Parameters:

Upload data to buffer.

size : int
count : int
data : nativeint
buffer : VulkanBuffer
context : VulkanContext

VulkanBuffer.uploadValue value buffer context

Full Usage: VulkanBuffer.uploadValue value buffer context

Parameters:

Upload a value to buffer.

value : 'a
buffer : VulkanBuffer
context : VulkanContext

VulkanBuffer.writeSubdata offset alignment size count data buffer context

Full Usage: VulkanBuffer.writeSubdata offset alignment size count data buffer context

Parameters:

Write subdata to buffer. Caller is reponsible for ensuring buffer width and height.

offset : int
alignment : int
size : int
count : int
data : nativeint
buffer : VulkanBuffer
context : VulkanContext

Type something to start searching.