MPSTemporaryMatrix(3) MetalPerformanceShaders.framework MPSTemporaryMatrix(3)

MPSTemporaryMatrix

#import <MPSMatrixTypes.h>

Inherits MPSMatrix.


(nonnull instancetype) - initWithBuffer:descriptor:


(nonnull instancetype) + temporaryMatrixWithCommandBuffer:matrixDescriptor:
(void) + prefetchStorageWithCommandBuffer:matrixDescriptorList:


NSUInteger readCount

- (nonnull instancetype) initWithBuffer: (nonnull id< MTLBuffer >) buffer(nonnull MPSMatrixDescriptor *) descriptor

*** unavailable

Reimplemented from MPSMatrix.

Help MPS decide which allocations to make ahead of time The buffer cache that underlies the MPSTemporaryMatrix can automatically allocate new storage as needed as you create new temporary matrices. However, sometimes a more global view of what you plan to make is useful for maximizing memory reuse to get the most efficient operation. This class method hints to the cache what the list of matrices will be.

It is never necessary to call this method. It is purely a performance and memory optimization.

Parameters:

commandBuffer The command buffer on which the MPSTemporaryMatrix will be used
descriptorList A NSArray of MPSMatrixDescriptor, indicating matrices that will be created

Initialize a MPSTemporaryMatrix for use on a MTLCommandBuffer

Parameters:

commandBuffer The MTLCommandBuffer on which the MPSTemporaryMatrix will be exclusively used
matrixDescriptor A valid MPSMatrixDescriptor describing the MPSMatrix format to create

Returns:

A valid MPSTemporaryMatrix. The object is not managed by a NSAutoreleasePool. The object will be released when the command buffer is committed. The underlying buffer will become invalid before this time due to the action of the readCount property. Please read and understand the use of the readCount property before using this object.

- (NSUInteger) readCount [read], [write], [nonatomic], [assign]

The number of times a temporary matrix may be read by a MPSMatrix... kernel before its contents become undefined.

MPSTemporaryMatrices must release their underlying buffers for reuse immediately after last use. So as to facilitate prompt convenient memory recycling, each time a MPSTemporaryMatrix is read by a MPSMatrix... -encode... method, its readCount is automatically decremented. When the readCount reaches 0, the underlying buffer is automatically made available for reuse to MPS for its own needs and for other MPSTemporaryMatrices prior to return from the -encode.. function. The contents of the buffer become undefined at this time.

By default, the readCount is initialized to 1, indicating a matrix that may be overwritten any number of times, but read only once.

You may change the readCount as desired to allow MPSMatrixKernels to read the MPSTemporaryMatrix additional times. However, it is an error to change the readCount once it is zero. It is an error to read or write to a MPSTemporaryMatrix with a zero readCount. You may set the readCount to 0 yourself to cause the underlying buffer to be returned to MPS. Writing to a MPSTemporaryMatrix does not adjust the readCount.

The Metal API Validation layer will assert if a MPSTemporaryMatrix is deallocated with non-zero readCount to help identify cases when resources are not returned promptly.

Generated automatically by Doxygen for MetalPerformanceShaders.framework from the source code.

Mon Jul 9 2018 Version MetalPerformanceShaders-119.3