Package apple.metal.protocol
Interface MTLComputeCommandEncoder
-
- All Superinterfaces:
MTLCommandEncoder
public interface MTLComputeCommandEncoder extends MTLCommandEncoder
[@protocol] MTLComputeCommandEncoder A command encoder that writes data parallel compute commands. API-Since: 8.0
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voiddispatchThreadgroupsThreadsPerThreadgroup(MTLSize threadgroupsPerGrid, MTLSize threadsPerThreadgroup)dispatchThreadgroups:threadsPerThreadgroup: Enqueue a compute function dispatch as a multiple of the threadgroup size.voiddispatchThreadgroupsWithIndirectBufferIndirectBufferOffsetThreadsPerThreadgroup(@NotNull MTLBuffer indirectBuffer, long indirectBufferOffset, MTLSize threadsPerThreadgroup)dispatchThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerThreadgroup: Enqueue a compute function dispatch using an indirect buffer for threadgroupsPerGrid see MTLDispatchThreadgroupsIndirectArguments.voiddispatchThreadsThreadsPerThreadgroup(MTLSize threadsPerGrid, MTLSize threadsPerThreadgroup)dispatchThreads:threadsPerThreadgroup: Enqueue a compute function dispatch using an arbitrarily-sized grid.longdispatchType()[@property] dispatchType The dispatch type of the compute command encoder.voidexecuteCommandsInBufferIndirectBufferIndirectBufferOffset(@NotNull MTLIndirectCommandBuffer indirectCommandbuffer, @NotNull MTLBuffer indirectRangeBuffer, long indirectBufferOffset)executeCommandsInBuffer:indirectBuffer:indirectBufferOffset: Execute commands in the buffer within the range specified by the indirect range buffer.voidexecuteCommandsInBufferWithRange(@NotNull MTLIndirectCommandBuffer indirectCommandBuffer, NSRange executionRange)executeCommandsInBuffer:withRange: Execute commands in the buffer within the range specified.voidmemoryBarrierWithResourcesCount(@NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> resources, long count)memoryBarrierWithResources Encodes a barrier between currently dispatched kernels in a concurrent compute command encoder and any subsequent ones on an array of resources.voidmemoryBarrierWithScope(long scope)memoryBarrierWithScope Encodes a barrier between currently dispatched kernels in a concurrent compute command encoder and any subsequent ones on a specified resource group This API ensures that all dispatches in the encoder have completed execution and their side effects are visible to subsequent dispatches in that encoder.voidsampleCountersInBufferAtSampleIndexWithBarrier(@NotNull MTLCounterSampleBuffer sampleBuffer, long sampleIndex, boolean barrier)sampleCountersInBuffer:atSampleIndex:withBarrier: Sample hardware counters at this point in the compute encoder and store the counter sample into the sample buffer at the specified index.voidsetAccelerationStructureAtBufferIndex(@Nullable MTLAccelerationStructure accelerationStructure, long bufferIndex)setAccelerationStructure:atBufferIndex: Set a global raytracing acceleration structure for all compute kernels at the given buffer bind point index.voidsetBufferOffsetAtIndex(long offset, long index)setBufferOffset:atIndex: Set the offset within the current global buffer for all compute kernels at the given bind point index.voidsetBufferOffsetAtIndex(@Nullable MTLBuffer buffer, long offset, long index)setBuffer:offset:atIndex: Set a global buffer for all compute kernels at the given bind point index.voidsetBufferOffsetAttributeStrideAtIndex(long offset, long stride, long index)only call this when the buffer-index is part of the stageInputDescriptor and has set its stride to `MTLBufferLayoutStrideDynamic` API-Since: 17.0voidsetBufferOffsetAttributeStrideAtIndex(@NotNull MTLBuffer buffer, long offset, long stride, long index)sets kernel buffer at specified index with provided offset and stride.voidsetBuffersOffsetsAttributeStridesWithRange(@NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> buffers, @NotNull org.moe.natj.general.ptr.ConstNUIntPtr offsets, @NotNull org.moe.natj.general.ptr.ConstNUIntPtr strides, NSRange range)sets an array of kernel buffers with provided offsets and strides with the given bind point range.voidsetBuffersOffsetsWithRange(@NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> buffers, @NotNull org.moe.natj.general.ptr.ConstNUIntPtr offsets, NSRange range)setBuffers:offsets:withRange: Set an array of global buffers for all compute kernels with the given bind point range.voidsetBytesLengthAtIndex(@NotNull org.moe.natj.general.ptr.ConstVoidPtr bytes, long length, long index)setBytes:length:atIndex: Set the data (by copy) for a given buffer binding point.voidsetBytesLengthAttributeStrideAtIndex(@NotNull org.moe.natj.general.ptr.ConstVoidPtr bytes, long length, long stride, long index)only call this when the buffer-index is part of the stageInputDescriptor and has set its stride to `MTLBufferLayoutStrideDynamic` API-Since: 17.0voidsetComputePipelineState(@NotNull MTLComputePipelineState state)setComputePipelineState: Set the compute pipeline state that will be used.voidsetImageblockWidthHeight(long width, long height)setImageblockWidth:height: Set imageblock sizes.voidsetIntersectionFunctionTableAtBufferIndex(@Nullable MTLIntersectionFunctionTable intersectionFunctionTable, long bufferIndex)setIntersectionFunctionTable:atBufferIndex: Set a visible function table at the given buffer index API-Since: 14.0voidsetIntersectionFunctionTablesWithBufferRange(@NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> intersectionFunctionTables, NSRange range)setIntersectionFunctionTables:withBufferRange: Set visible function tables at the given buffer index range API-Since: 14.0voidsetSamplerStateAtIndex(@Nullable MTLSamplerState sampler, long index)setSamplerState:atIndex: Set a global sampler for all compute kernels at the given bind point index.voidsetSamplerStateLodMinClampLodMaxClampAtIndex(@Nullable MTLSamplerState sampler, float lodMinClamp, float lodMaxClamp, long index)setSamplerState:lodMinClamp:lodMaxClamp:atIndex: Set a global sampler for all compute kernels at the given bind point index.voidsetSamplerStatesLodMinClampsLodMaxClampsWithRange(@NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> samplers, @NotNull org.moe.natj.general.ptr.ConstFloatPtr lodMinClamps, @NotNull org.moe.natj.general.ptr.ConstFloatPtr lodMaxClamps, NSRange range)setSamplers:lodMinClamps:lodMaxClamps:withRange: Set an array of global samplers for all compute kernels with the given bind point range.voidsetSamplerStatesWithRange(@NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> samplers, NSRange range)setSamplers:withRange: Set an array of global samplers for all compute kernels with the given bind point range.voidsetStageInRegion(MTLRegion region)setStageInRegion:region: Set the region of the stage_in attributes to apply the compute kernel.voidsetStageInRegionWithIndirectBufferIndirectBufferOffset(@NotNull MTLBuffer indirectBuffer, long indirectBufferOffset)setStageInRegionWithIndirectBuffer:indirectBufferOffset: sets the stage in region indirectly for the following indirect dispatch calls.voidsetTextureAtIndex(@Nullable MTLTexture texture, long index)setTexture:atIndex: Set a global texture for all compute kernels at the given bind point index.voidsetTexturesWithRange(@NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> textures, NSRange range)setTextures:withRange: Set an array of global textures for all compute kernels with the given bind point range.voidsetThreadgroupMemoryLengthAtIndex(long length, long index)setThreadgroupMemoryLength:atIndex: Set the threadgroup memory byte length at the binding point specified by the index.voidsetVisibleFunctionTableAtBufferIndex(@Nullable MTLVisibleFunctionTable visibleFunctionTable, long bufferIndex)setVisibleFunctionTable:atBufferIndex: Set a visible function table at the given buffer index API-Since: 14.0voidsetVisibleFunctionTablesWithBufferRange(@NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> visibleFunctionTables, NSRange range)setVisibleFunctionTables:withBufferRange: Set visible function tables at the given buffer index range API-Since: 14.0voidupdateFence(@NotNull MTLFence fence)updateFence: Update the fence to capture all GPU work so far enqueued by this encoder.voiduseHeap(@NotNull MTLHeap heap)useHeap: Declare that the resources allocated from a heap may be accessed as readonly by the render pass through an argument buffer For tracked MTLHeaps, this method protects against data hazards.voiduseHeapsCount(@NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> heaps, long count)useHeaps:count: Declare that the resources allocated from an array of heaps may be accessed as readonly by the render pass through an argument buffer For tracked MTLHeaps, this method protects against data hazards.voiduseResourcesCountUsage(@NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> resources, long count, long usage)useResources:count:usage: Declare that an array of resources may be accessed through an argument buffer by the command encoder For tracked MTL Resources, this method protects against data hazards.voiduseResourceUsage(@NotNull MTLResource resource, long usage)useResource:usage: Declare that a resource may be accessed by the command encoder through an argument buffer For tracked MTLResources, this method protects against data hazards.voidwaitForFence(@NotNull MTLFence fence)waitForFence: Prevent further GPU work until the fence is reached.-
Methods inherited from interface apple.metal.protocol.MTLCommandEncoder
device, endEncoding, insertDebugSignpost, label, popDebugGroup, pushDebugGroup, setLabel
-
-
-
-
Method Detail
-
dispatchThreadgroupsThreadsPerThreadgroup
void dispatchThreadgroupsThreadsPerThreadgroup(MTLSize threadgroupsPerGrid, MTLSize threadsPerThreadgroup)
dispatchThreadgroups:threadsPerThreadgroup: Enqueue a compute function dispatch as a multiple of the threadgroup size.
-
dispatchThreadgroupsWithIndirectBufferIndirectBufferOffsetThreadsPerThreadgroup
void dispatchThreadgroupsWithIndirectBufferIndirectBufferOffsetThreadsPerThreadgroup(@NotNull @NotNull MTLBuffer indirectBuffer, long indirectBufferOffset, MTLSize threadsPerThreadgroup)dispatchThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerThreadgroup: Enqueue a compute function dispatch using an indirect buffer for threadgroupsPerGrid see MTLDispatchThreadgroupsIndirectArguments.- Parameters:
indirectBuffer- A buffer object that the device will read dispatchThreadgroups arguments from, see MTLDispatchThreadgroupsIndirectArguments.indirectBufferOffset- Byte offset within @a indirectBuffer to read arguments from. @a indirectBufferOffset must be a multiple of 4. API-Since: 9.0
-
setBufferOffsetAtIndex
void setBufferOffsetAtIndex(@Nullable @Nullable MTLBuffer buffer, long offset, long index)setBuffer:offset:atIndex: Set a global buffer for all compute kernels at the given bind point index.
-
setBufferOffsetAtIndex
void setBufferOffsetAtIndex(long offset, long index)setBufferOffset:atIndex: Set the offset within the current global buffer for all compute kernels at the given bind point index. API-Since: 8.3
-
setBuffersOffsetsWithRange
void setBuffersOffsetsWithRange(@NotNull @NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> buffers, @NotNull @NotNull org.moe.natj.general.ptr.ConstNUIntPtr offsets, NSRange range)setBuffers:offsets:withRange: Set an array of global buffers for all compute kernels with the given bind point range.
-
setBytesLengthAtIndex
void setBytesLengthAtIndex(@NotNull @NotNull org.moe.natj.general.ptr.ConstVoidPtr bytes, long length, long index)setBytes:length:atIndex: Set the data (by copy) for a given buffer binding point. This will remove any existing MTLBuffer from the binding point. API-Since: 8.3
-
setComputePipelineState
void setComputePipelineState(@NotNull @NotNull MTLComputePipelineState state)setComputePipelineState: Set the compute pipeline state that will be used.
-
setSamplerStateAtIndex
void setSamplerStateAtIndex(@Nullable @Nullable MTLSamplerState sampler, long index)setSamplerState:atIndex: Set a global sampler for all compute kernels at the given bind point index.
-
setSamplerStateLodMinClampLodMaxClampAtIndex
void setSamplerStateLodMinClampLodMaxClampAtIndex(@Nullable @Nullable MTLSamplerState sampler, float lodMinClamp, float lodMaxClamp, long index)setSamplerState:lodMinClamp:lodMaxClamp:atIndex: Set a global sampler for all compute kernels at the given bind point index.
-
setSamplerStatesLodMinClampsLodMaxClampsWithRange
void setSamplerStatesLodMinClampsLodMaxClampsWithRange(@NotNull @NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> samplers, @NotNull @NotNull org.moe.natj.general.ptr.ConstFloatPtr lodMinClamps, @NotNull @NotNull org.moe.natj.general.ptr.ConstFloatPtr lodMaxClamps, NSRange range)setSamplers:lodMinClamps:lodMaxClamps:withRange: Set an array of global samplers for all compute kernels with the given bind point range.
-
setSamplerStatesWithRange
void setSamplerStatesWithRange(@NotNull @NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> samplers, NSRange range)setSamplers:withRange: Set an array of global samplers for all compute kernels with the given bind point range.
-
setStageInRegion
void setStageInRegion(MTLRegion region)
setStageInRegion:region: Set the region of the stage_in attributes to apply the compute kernel. API-Since: 10.0
-
setTextureAtIndex
void setTextureAtIndex(@Nullable @Nullable MTLTexture texture, long index)setTexture:atIndex: Set a global texture for all compute kernels at the given bind point index.
-
setTexturesWithRange
void setTexturesWithRange(@NotNull @NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> textures, NSRange range)setTextures:withRange: Set an array of global textures for all compute kernels with the given bind point range.
-
setThreadgroupMemoryLengthAtIndex
void setThreadgroupMemoryLengthAtIndex(long length, long index)setThreadgroupMemoryLength:atIndex: Set the threadgroup memory byte length at the binding point specified by the index. This applies to all compute kernels.
-
updateFence
void updateFence(@NotNull @NotNull MTLFence fence)updateFence: Update the fence to capture all GPU work so far enqueued by this encoder. The fence is updated at kernel submission to maintain global order and prevent deadlock. Drivers may delay fence updates until the end of the encoder. Drivers may also wait on fences at the beginning of an encoder. It is therefore illegal to wait on a fence after it has been updated in the same encoder. API-Since: 10.0
-
waitForFence
void waitForFence(@NotNull @NotNull MTLFence fence)waitForFence: Prevent further GPU work until the fence is reached. The fence is evaluated at kernel submission to maintain global order and prevent deadlock. Drivers may delay fence updates until the end of the encoder. Drivers may also wait on fences at the beginning of an encoder. It is therefore illegal to wait on a fence after it has been updated in the same encoder. API-Since: 10.0
-
dispatchThreadsThreadsPerThreadgroup
void dispatchThreadsThreadsPerThreadgroup(MTLSize threadsPerGrid, MTLSize threadsPerThreadgroup)
dispatchThreads:threadsPerThreadgroup: Enqueue a compute function dispatch using an arbitrarily-sized grid. threadsPerGrid does not have to be a multiple of the threadGroup size API-Since: 11.0
-
setImageblockWidthHeight
void setImageblockWidthHeight(long width, long height)setImageblockWidth:height: Set imageblock sizes. API-Since: 11.0
-
useHeap
void useHeap(@NotNull @NotNull MTLHeap heap)useHeap: Declare that the resources allocated from a heap may be accessed as readonly by the render pass through an argument buffer For tracked MTLHeaps, this method protects against data hazards. This method must be called before encoding any dispatch commands which may access the resources allocated from the heap through an argument buffer. This method may cause all of the color attachments allocated from the heap to become decompressed. Therefore, it is recommended that the useResource:usage: or useResources:count:usage: methods be used for color attachments instead, with a minimal (i.e. read-only) usage. [@warning] Prior to iOS 13, macOS 10.15, this method does not protect against data hazards. If you are deploying to older versions of macOS or iOS, use fences to ensure data hazards are resolved. API-Since: 11.0
-
useHeapsCount
void useHeapsCount(@NotNull @NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> heaps, long count)useHeaps:count: Declare that the resources allocated from an array of heaps may be accessed as readonly by the render pass through an argument buffer For tracked MTLHeaps, this method protects against data hazards. This method must be called before encoding any dispatch commands which may access the resources allocated from the heaps through an argument buffer. This method may cause all of the color attachments allocated from the heaps to become decompressed. Therefore, it is recommended that the useResource:usage: or useResources:count:usage: methods be used for color attachments instead, with a minimal (i.e. read-only) usage. [@warning] Prior to iOS 13, macOS 10.15, this method does not protect against data hazards. If you are deploying to older versions of macOS or iOS, use fences to ensure data hazards are resolved. API-Since: 11.0
-
useResourceUsage
void useResourceUsage(@NotNull @NotNull MTLResource resource, long usage)useResource:usage: Declare that a resource may be accessed by the command encoder through an argument buffer For tracked MTLResources, this method protects against data hazards. This method must be called before encoding any dispatch commands which may access the resource through an argument buffer. [@warning] Prior to iOS 13, macOS 10.15, this method does not protect against data hazards. If you are deploying to older versions of macOS or iOS, use fences to ensure data hazards are resolved. API-Since: 11.0
-
useResourcesCountUsage
void useResourcesCountUsage(@NotNull @NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> resources, long count, long usage)useResources:count:usage: Declare that an array of resources may be accessed through an argument buffer by the command encoder For tracked MTL Resources, this method protects against data hazards. This method must be called before encoding any dispatch commands which may access the resources through an argument buffer. [@warning] Prior to iOS 13, macOS 10.15, this method does not protect against data hazards. If you are deploying to older versions of macOS or iOS, use fences to ensure data hazards are resolved. API-Since: 11.0
-
dispatchType
long dispatchType()
[@property] dispatchType The dispatch type of the compute command encoder. API-Since: 12.0
-
executeCommandsInBufferIndirectBufferIndirectBufferOffset
void executeCommandsInBufferIndirectBufferIndirectBufferOffset(@NotNull @NotNull MTLIndirectCommandBuffer indirectCommandbuffer, @NotNull @NotNull MTLBuffer indirectRangeBuffer, long indirectBufferOffset)executeCommandsInBuffer:indirectBuffer:indirectBufferOffset: Execute commands in the buffer within the range specified by the indirect range buffer. The same indirect command buffer may be executed any number of times within the same encoder. API-Since: 13.0- Parameters:
indirectRangeBuffer- An indirect buffer from which the device reads the execution range parameter, as laid out in the MTLIndirectCommandBufferExecutionRange structure.indirectBufferOffset- The byte offset within indirectBuffer where the execution range parameter is located. Must be a multiple of 4 bytes.
-
executeCommandsInBufferWithRange
void executeCommandsInBufferWithRange(@NotNull @NotNull MTLIndirectCommandBuffer indirectCommandBuffer, NSRange executionRange)executeCommandsInBuffer:withRange: Execute commands in the buffer within the range specified. The same indirect command buffer may be executed any number of times within the same encoder. API-Since: 13.0
-
memoryBarrierWithResourcesCount
void memoryBarrierWithResourcesCount(@NotNull @NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> resources, long count)memoryBarrierWithResources Encodes a barrier between currently dispatched kernels in a concurrent compute command encoder and any subsequent ones on an array of resources. This API ensures that all dispatches in the encoder have completed execution and side effects on the specified resources are visible to subsequent dispatches in that encoder. Calling barrier on a serial encoder is allowed, but ignored. API-Since: 12.0
-
memoryBarrierWithScope
void memoryBarrierWithScope(long scope)
memoryBarrierWithScope Encodes a barrier between currently dispatched kernels in a concurrent compute command encoder and any subsequent ones on a specified resource group This API ensures that all dispatches in the encoder have completed execution and their side effects are visible to subsequent dispatches in that encoder. Calling barrier on a serial encoder is allowed, but ignored. API-Since: 12.0
-
setStageInRegionWithIndirectBufferIndirectBufferOffset
void setStageInRegionWithIndirectBufferIndirectBufferOffset(@NotNull @NotNull MTLBuffer indirectBuffer, long indirectBufferOffset)setStageInRegionWithIndirectBuffer:indirectBufferOffset: sets the stage in region indirectly for the following indirect dispatch calls.- Parameters:
indirectBuffer- A buffer object that the device will read the stageIn region arguments from, see MTLStageInRegionIndirectArguments.indirectBufferOffset- Byte offset within indirectBuffer to read arguments from. indirectBufferOffset must be a multiple of 4. API-Since: 12.0
-
sampleCountersInBufferAtSampleIndexWithBarrier
void sampleCountersInBufferAtSampleIndexWithBarrier(@NotNull @NotNull MTLCounterSampleBuffer sampleBuffer, long sampleIndex, boolean barrier)sampleCountersInBuffer:atSampleIndex:withBarrier: Sample hardware counters at this point in the compute encoder and store the counter sample into the sample buffer at the specified index. On devices where MTLCounterSamplingPointAtDispatchBoundary is unsupported, this method is not available and will generate an error if called. API-Since: 14.0- Parameters:
sampleBuffer- The sample buffer to sample intosampleIndex- The index into the counter buffer to write the samplebarrier- Insert a barrier before taking the sample. Passing YES will ensure that all work encoded before this operation in the encoder is complete but does not isolate the work with respect to other encoders. Passing NO will allow the sample to be taken concurrently with other operations in this encoder. In general, passing YES will lead to more repeatable counter results but may negatively impact performance. Passing NO will generally be higher performance but counter results may not be repeatable.
-
setAccelerationStructureAtBufferIndex
void setAccelerationStructureAtBufferIndex(@Nullable @Nullable MTLAccelerationStructure accelerationStructure, long bufferIndex)setAccelerationStructure:atBufferIndex: Set a global raytracing acceleration structure for all compute kernels at the given buffer bind point index. API-Since: 14.0
-
setIntersectionFunctionTableAtBufferIndex
void setIntersectionFunctionTableAtBufferIndex(@Nullable @Nullable MTLIntersectionFunctionTable intersectionFunctionTable, long bufferIndex)setIntersectionFunctionTable:atBufferIndex: Set a visible function table at the given buffer index API-Since: 14.0
-
setIntersectionFunctionTablesWithBufferRange
void setIntersectionFunctionTablesWithBufferRange(@NotNull @NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> intersectionFunctionTables, NSRange range)setIntersectionFunctionTables:withBufferRange: Set visible function tables at the given buffer index range API-Since: 14.0
-
setVisibleFunctionTableAtBufferIndex
void setVisibleFunctionTableAtBufferIndex(@Nullable @Nullable MTLVisibleFunctionTable visibleFunctionTable, long bufferIndex)setVisibleFunctionTable:atBufferIndex: Set a visible function table at the given buffer index API-Since: 14.0
-
setVisibleFunctionTablesWithBufferRange
void setVisibleFunctionTablesWithBufferRange(@NotNull @NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> visibleFunctionTables, NSRange range)setVisibleFunctionTables:withBufferRange: Set visible function tables at the given buffer index range API-Since: 14.0
-
setBufferOffsetAttributeStrideAtIndex
void setBufferOffsetAttributeStrideAtIndex(@NotNull @NotNull MTLBuffer buffer, long offset, long stride, long index)sets kernel buffer at specified index with provided offset and stride. only call this when the kernel-buffer is part of the stageInputDescriptor and has set its stride to `MTLBufferLayoutStrideDynamic` API-Since: 17.0
-
setBufferOffsetAttributeStrideAtIndex
void setBufferOffsetAttributeStrideAtIndex(long offset, long stride, long index)only call this when the buffer-index is part of the stageInputDescriptor and has set its stride to `MTLBufferLayoutStrideDynamic` API-Since: 17.0
-
setBuffersOffsetsAttributeStridesWithRange
void setBuffersOffsetsAttributeStridesWithRange(@NotNull @NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.objc.ObjCObject> buffers, @NotNull @NotNull org.moe.natj.general.ptr.ConstNUIntPtr offsets, @NotNull @NotNull org.moe.natj.general.ptr.ConstNUIntPtr strides, NSRange range)sets an array of kernel buffers with provided offsets and strides with the given bind point range. Only call this when at least one buffer is part of the vertexDescriptor, other buffers must set `MTLAttributeStrideStatic` API-Since: 17.0
-
setBytesLengthAttributeStrideAtIndex
void setBytesLengthAttributeStrideAtIndex(@NotNull @NotNull org.moe.natj.general.ptr.ConstVoidPtr bytes, long length, long stride, long index)only call this when the buffer-index is part of the stageInputDescriptor and has set its stride to `MTLBufferLayoutStrideDynamic` API-Since: 17.0
-
-