MPSTemporaryMatrix(3) MetalPerformanceShaders.framework MPSTemporaryMatrix(3)
NAME
MPSTemporaryMatrix
SYNOPSIS
#import <MPSMatrixTypes.h>
Inherits MPSMatrix.
Instance Methods
(nonnull instancetype) - initWithBuffer:descriptor:
Class Methods
(nonnull instancetype) +
temporaryMatrixWithCommandBuffer:matrixDescriptor:
(void) + prefetchStorageWithCommandBuffer:matrixDescriptorList:
Properties
NSUInteger readCount
Method Documentation
- (nonnull instancetype) initWithBuffer: (nonnull id< MTLBuffer >)
buffer(nonnull MPSMatrixDescriptor *) descriptor
*** unavailable
Reimplemented from MPSMatrix.
+ (void) prefetchStorageWithCommandBuffer: (nonnull id< MTLCommandBuffer >)
commandBuffer(NSArray< MPSMatrixDescriptor * > *__nonnull)
descriptorList
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
+ (nonnull instancetype) temporaryMatrixWithCommandBuffer: (nonnull id<
MTLCommandBuffer >) commandBuffer(nonnull MPSMatrixDescriptor *)
matrixDescriptor
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.
Property Documentation
- (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.
Author
Generated automatically by Doxygen for
MetalPerformanceShaders.framework from the source code.
Version MetalPerformanceShaders-Thu2Jul 13 2017 MPSTemporaryMatrix(3)
Mac OS X 10.12.6 - Generated Wed Nov 1 05:56:10 CDT 2017