MTLComputeCommandEncoder
Наследование
Не применимый
Оператор импорта
Swift
import Metal
Objective C
@import Metal;
Доступность
Доступный в iOS 8.0 и позже.
MTLComputeCommandEncoder протокол определяет интерфейс для кодирования команд, указывающих, что параллель данных вычисляет обработку, утверждают и выполняют вычислить функцию. Создать a MTLComputeCommandEncoder объект, вызовите computeCommandEncoder метод MTLCommandBuffer объект, в котором Вы хотите закодировать, вычисляет команды. (Не используйте стандартное выделение и методы инициализации для создания a MTLComputeCommandEncoder объект.)
После создания a MTLComputeCommandEncoder объект, используйте, он для кодирования следующей параллели данных вычисляет команды обработки:
Вызовите
setComputePipelineState:метод сMTLComputePipelineStateобъект, содержащий вычислить функцию, которая будет выполняться.Укажите ресурсы, содержащие входные данные (или выведите место назначения) для вычислить функции. Установите расположение (индекс) каждого ресурса в его соответствующей таблице параметра.
Вызовите
dispatchThreadgroups:threadsPerThreadgroup:метод для кодирования вычислить функции с конкретным количеством threadgroups для сетки и числа потоков на threadgroup.Вызвать
endEncodingзакончить кодировать вычислить команды на буфер команд.
-
Наборы вычислить функция, которая будет выполняться. (требуемый)
Объявление
Swift
func setComputePipelineState(_state: MTLComputePipelineState)Objective C
- (void)setComputePipelineState:(id<MTLComputePipelineState>)stateПараметры
stateMTLComputePipelineStateобъект с вычислить функцией, которая будет выполняться.Обсуждение
Вызов этого метода заставляет все параметры становиться неопределенными. Поэтому необходимо вызвать этот метод перед установкой буферов, текстур, сэмплеров и threadgroup емкости памяти.
Если
statenil, ошибка происходит.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Устанавливает буфер для вычислить функции в индексе в буферной таблице параметра со смещением, указывающим запуск данных. (требуемый)
Объявление
Objective C
- (void)setBuffer:(id<MTLBuffer>)bufferoffset:(NSUInteger)offsetatIndex:(NSUInteger)indexПараметры
bufferMTLBufferвозразите для установки в таблице параметра.offsetКак далеко данные от запуска буфера в байтах.
indexИндекс в буферной таблице параметра.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Устанавливает массив буферов для вычислить функции в диапазоне индексов в буферной таблице параметра. Этот метод также указывает соответствующие смещения для запуска каждого набора данных. (требуемый)
Объявление
Swift
func setBuffers(_buffers: UnsafePointer<MTLBuffer?>, offsetsoffsets: UnsafePointer<Int>, withRangerange: NSRange)Objective C
- (void)setBuffers:(const id<MTLBuffer> [])buffersoffsets:(const NSUInteger [])offsetswithRange:(NSRange)rangeПараметры
buffersМассив
MTLBufferобъекты установить в таблице параметра.offsetsМассив смещений, каждое из которых указывает, как далеко данные от запуска буфера в байтах.
rangeДиапазон индексов в буферной таблице параметра.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Устанавливает смещение, указывающее запуск данных для буфера, уже связанного с вычислить функцией. (требуемый)
Объявление
Objective C
- (void)setBufferOffset:(NSUInteger)offsetatIndex:(NSUInteger)indexПараметры
offsetКак далеко данные от запуска буфера в байтах.
indexИндекс в буферной таблице параметра.
Обсуждение
Вызовите этот метод для изменения смещения, которое Вы указали при привязке буфера с
setBuffer:offset:atIndex:илиsetBuffers:offsets:withRange:метод, или указать смещение данных после обязательных данных непосредственно к вычислить функции сsetBytes:length:atIndex:метод.Используя этот метод может привести к более быстрой производительности, чем привязка того же буфера снова с различным смещением.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.3 и позже.
-
Устанавливает блок данных для вычислить функции в индексе в буферной таблице параметра. (требуемый)
Объявление
Objective C
- (void)setBytes:(const void *)byteslength:(NSUInteger)lengthatIndex:(NSUInteger)indexПараметры
bytesАдрес памяти, с которого можно скопировать исходные данные.
lengthРазмер, в байтах, данных, которые будут скопированы.
indexИндекс в буферной таблице параметра.
Обсуждение
Используя этот метод эквивалентно созданию нового
MTLBufferобъект от указанных данных и затем привязки его к вычислить функции сsetBuffer:offset:atIndex:илиsetBuffers:offsets:withRange:метод, но избегает возможной производительности наверху создания посредникаMTLBufferобъект.Этот метод является подходящим только для небольших, буферов данных с одним разовым использованием. Создайте a
MTLBufferвозразите вместо этого, если Ваш буфер превышает 4 КБ в длине или сохранится для многократного использования (например, чтобы быть связанным с другим кодером команды для рендеринга следующего кадра).Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.3 и позже.
-
Устанавливает текстуру для вычислить функции в индексе в таблице параметра текстуры. (требуемый)
Объявление
Swift
func setTexture(_texture: MTLTexture?, atIndexindex: Int)Objective C
- (void)setTexture:(id<MTLTexture>)textureatIndex:(NSUInteger)indexПараметры
textureMTLTextureвозразите для установки в таблице параметра.indexИндекс в таблице параметра текстуры.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Устанавливает массив текстур для вычислить функции в диапазоне индексов в таблице параметра текстуры. (требуемый)
Объявление
Swift
func setTextures(_textures: UnsafePointer<MTLTexture?>, withRangerange: NSRange)Objective C
- (void)setTextures:(const id<MTLTexture> [])textureswithRange:(NSRange)rangeПараметры
texturesМассив
MTLTextureобъекты установить в таблице параметра.rangeДиапазон индексов в таблице параметра текстуры.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Устанавливает состояние сэмплера для вычислить функции в индексе в таблице параметра состояния сэмплера. (требуемый)
Объявление
Swift
func setSamplerState(_sampler: MTLSamplerState!, atIndexindex: Int)Objective C
- (void)setSamplerState:(id<MTLSamplerState>)sampleratIndex:(NSUInteger)indexПараметры
samplerMTLSamplerStateвозразите для установки в таблице параметра.indexИндекс в таблице параметра состояния сэмплера.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Устанавливает массив состояний сэмплера для вычислить функции в диапазоне индексов в таблице параметра состояния сэмплера. (требуемый)
Объявление
Swift
func setSamplerStates(_samplers: UnsafePointer<MTLSamplerState?>, withRangerange: NSRange)Objective C
- (void)setSamplerStates:(const id<MTLSamplerState> [])samplerswithRange:(NSRange)rangeПараметры
samplersМассив
MTLSamplerStateобъекты установить в таблице параметра.rangeДиапазон индексов в таблице параметра состояния сэмплера.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
setSamplerState (_: lodMinClamp:lodMaxClamp:atIndex:) - setSamplerState:lodMinClamp:lodMaxClamp:atIndex:ТребуемыйУстанавливает состояние сэмплера для вычислить функции в индексе в таблице параметра состояния сэмплера. Этот метод также указывает значения зажима для минимального и максимального уровня подробности. (требуемый)
Объявление
Swift
func setSamplerState(_sampler: MTLSamplerState!, lodMinClamplodMinClamp: Float, lodMaxClamplodMaxClamp: Float, atIndexindex: Int)Objective C
- (void)setSamplerState:(id<MTLSamplerState>)samplerlodMinClamp:(float)lodMinClamplodMaxClamp:(float)lodMaxClampatIndex:(NSUInteger)indexПараметры
samplerMTLSamplerStateвозразите для установки в таблице параметра.lodMinClampМинимальный уровень подробности, использующейся при выборке текстуры.
lodMaxClampМаксимальный уровень подробности, использующейся при выборке текстуры.
indexИндекс в таблице параметра состояния сэмплера.
Обсуждение
Когда этот метод используется, значения зажима
lodMinClampиlodMaxClampсвойства сэмплера проигнорированы.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
setSamplerStates (_: lodMinClamps:lodMaxClamps:withRange:) - setSamplerStates:lodMinClamps:lodMaxClamps:withRange:ТребуемыйУстанавливает массив состояний сэмплера для вычислить функции в диапазоне индексов в таблице параметра состояния сэмплера с указанными соответствующими значениями зажима для минимального и максимального уровня подробности. (требуемый)
Объявление
Swift
func setSamplerStates(_samplers: UnsafePointer<MTLSamplerState?>, lodMinClampslodMinClamps: UnsafePointer<Float>, lodMaxClampslodMaxClamps: UnsafePointer<Float>, withRangerange: NSRange)Objective C
- (void)setSamplerStates:(const id<MTLSamplerState> [])samplerslodMinClamps:(const float [])lodMinClampslodMaxClamps:(const float [])lodMaxClampswithRange:(NSRange)rangeПараметры
samplersМассив
MTLSamplerStateобъекты установить в таблице параметра.lodMinClampsМассив минимальных уровней подробности, соответствующих
samplersвыстройте и используются для выборки текстур.lodMaxClampsМассив максимальных уровней подробности, соответствующих
samplersвыстройте и используются для выборки текстур.rangeДиапазон индексов в таблице параметра состояния сэмплера.
Обсуждение
Когда этот метод используется, значения зажима
lodMinClampиlodMaxClampсвойства состояния сэмплера проигнорированы.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Устанавливает длину байта threadgroup памяти в индексе в threadgroup таблице параметра памяти. (требуемый)
Объявление
Objective C
- (void)setThreadgroupMemoryLength:(NSUInteger)lengthatIndex:(NSUInteger)indexПараметры
lengthРазмер threadgroup памяти, в байтах.
indexИндекс в threadgroup таблице параметра памяти.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
dispatchThreadgroups (_: threadsPerThreadgroup:) - dispatchThreadgroups:threadsPerThreadgroup:ТребуемыйКодирует выполнение threadgroup вычислить функции. (требуемый)
Объявление
Параметры
threadgroupsPerGridЧисло threadgroups для сетки, в каждой размерности.
threadsPerThreadgroupЧисло потоков в одном threadgroup, в каждой размерности.
Обсуждение
Этот метод кодирует команды, таким образом, потоки в threadgroup выполнят вычислить функцию в единственной инструкции, многократные данные (SIMD) вид на устройстве.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
