Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Металлическая ссылка платформы ссылка на протокол MTLResource

Опции
Развертывание Target:

На этой странице
Язык:

MTLResource

Наследование


Не применимый

Соответствует


Оператор импорта


Swift

import Metal

Objective C

@import Metal;

Доступность


Доступный в iOS 8.0 и позже.

MTLResource протокол определяет интерфейс для любого объекта ресурса, представляющего выделение памяти GPU.

Ваше приложение не определяет классы, реализующие этот протокол. Вместо этого Ваше приложение выделяет буферные объекты (MTLBuffer) или объекты текстуры (MTLTexture) это соответствует этому протоколу.

  • cpuCacheMode Свойство

    Режим кэширования CPU, использующийся для отображения CPU объекта ресурса (т.е. буфер или текстура). (требуемый) (только для чтения)

    Объявление

    Swift

    var cpuCacheMode: MTLCPUCacheMode { get }

    Objective C

    @property(readonly) MTLCPUCacheMode cpuCacheMode

    Обсуждение

    Когда Вы сначала создаете ресурс и не можете быть изменены впоследствии, режим кэширования установлен.

    Объединенная с записью память может иметь удивительные ловушки производительности. Рассмотрите использование объединенного с записью режима кэширования, только если запись в обычно кэшируемые буферы, как известно, вызывает проблемы производительности вследствие загрязнения кэша. Для получения дополнительной информации посмотрите CPU Cache Modes раздел констант.

    Оператор импорта

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

    Доступный в iOS 8.0 и позже.

  • device Свойство

    Устройство, создавшее этот ресурс. (требуемый) (только для чтения)

    Объявление

    Swift

    var device: MTLDevice { get }

    Objective C

    @property(readonly) id< MTLDevice > device

    Обсуждение

    Ресурс всегда связывается с MTLDevice это создало его и может использоваться только с тем устройством.

    Оператор импорта

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

    Доступный в iOS 8.0 и позже.

  • label Требуемое свойство

    Строка раньше идентифицировала этот объект ресурса. (требуемый)

    Объявление

    Swift

    var label: String? { get set }

    Objective C

    @property(copy, atomic) NSString *label

    Оператор импорта

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

    Доступный в iOS 8.0 и позже.

  • Наборы, может ли ресурс быть очищен синхронно. (требуемый)

    Объявление

    Swift

    func setPurgeableState(_ state: MTLPurgeableState) -> MTLPurgeableState

    Objective C

    - (MTLPurgeableState)setPurgeableState:(MTLPurgeableState)state

    Параметры

    state

    Желаемое purgeable состояние ресурса.

    Возвращаемое значение

    Возвращает предшествующий ресурс purgeable состояние.

    Обсуждение

    Если state MTLPurgeableStateKeepCurrent, текущее purgeable состояние запрашивается и не изменяется.

    Если state MTLPurgeableStateNonVolatile, ресурс отмечен, чтобы сообщить вызывающей стороне, что не должны быть отброшены данные.

    Если state MTLPurgeableStateEmpty, ресурс отмечен как данные, которые могут быть отброшены, потому что вызывающей стороне больше не нужно содержание ресурса.

    Если state MTLPurgeableStateVolatile, ресурс отмечен как данные, которые могут быть отброшены, даже если вызывающей стороне, возможно, понадобится ресурс. MTLResource объекты могут быть сделаны purgeable, даже если вызывающей стороне, возможно, понадобится ресурс, где реализация может предъявить претензии в отношении базовой системы хранения в любое время, не сообщая приложению. Ресурсы Purgeable могут позволить приложению сохранить большие кэши неактивной памяти, которая может быть полезной снова в будущем без риска предотвращения выделения более важной памяти.

    При использовании purgeable памяти удостоверьтесь, что блок памяти заблокирован перед доступом к нему. Этот механизм блокировки необходим, чтобы гарантировать, чтобы политики автоудаления не отбрасывали данные при доступе к нему. Точно так же механизм блокировки гарантирует, что система виртуальной памяти уже не отбросила данные.

    Оператор импорта

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

    Доступный в iOS 8.0 и позже.

Типы данных

  • purgeable состояние ресурса.

    Объявление

    Swift

    enum MTLPurgeableState : UInt { case KeepCurrent case NonVolatile case Volatile case Empty }

    Objective C

    typedef enum : NSUInteger { MTLPurgeableStateKeepCurrent = 1, MTLPurgeableStateNonVolatile = 2, MTLPurgeableStateVolatile = 3, MTLPurgeableStateEmpty = 4 } MTLPurgeableState;

    Константы

    • KeepCurrent

      MTLPurgeableStateKeepCurrent

      Состояние, позволяющее ресурсу быть запрошенным, не изменяя purgeable состояние.

      Доступный в iOS 8.0 и позже.

    • NonVolatile

      MTLPurgeableStateNonVolatile

      Состояние, не позволяющее содержанию ресурса быть отброшенным.

      Доступный в iOS 8.0 и позже.

    • Volatile

      MTLPurgeableStateVolatile

      Состояние, позволяющее содержанию ресурса быть отброшенным. Вызывающей стороне, возможно, понадобится содержание, но реализация может отбросить данные в случае необходимости.

      Доступный в iOS 8.0 и позже.

    • Empty

      MTLPurgeableStateEmpty

      Состояние, указывающее, что должно быть отброшено содержание этого ресурса. Вызывающей стороне не нужно содержание.

      Доступный в iOS 8.0 и позже.

    Оператор импорта

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

    Доступный в iOS 8.0 и позже.

  • Режим кэширования CPU используется для отображения CPU ресурса.

    Объявление

    Swift

    enum MTLCPUCacheMode : UInt { case DefaultCache case WriteCombined }

    Objective C

    typedef enum : NSUInteger { MTLCPUCacheModeDefaultCache = 0, MTLCPUCacheModeWriteCombined = 1 } MTLCPUCacheMode;

    Константы

    • DefaultCache

      MTLCPUCacheModeDefaultCache

      Режим кэширования CPU по умолчанию.

      Доступный в iOS 8.0 и позже.

    • WriteCombined

      MTLCPUCacheModeWriteCombined

      Объединенный с записью режим кэширования CPU.

      Доступный в iOS 8.0 и позже.

    Обсуждение

    Объединенная с записью память оптимизирована для ресурсов, в которые CPU вписывает, но никогда не читает. На некоторых реализациях записи могут обойти кэши, который избегает загрязнения кэша. Читайте действия могут выполнить очень плохо.

    Приложения должны только исследовать изменение режима кэширования, если запись в обычно кэшируемые буферы, как известно, вызывает проблемы производительности вследствие загрязнения кэша, поскольку объединенная с записью память может иметь удивительные ловушки производительности. Другой подход должен использовать невременные записи для обычно кэшируемой памяти (STNP на ARMv8).

    Оператор импорта

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

    Доступный в iOS 8.0 и позже.

  • Дополнительные аргументы раньше создавали и влияли на поведение объектов текстуры и буфера.

    Объявление

    Swift

    struct MTLResourceOptions : RawOptionSetType { init(_ rawValue: UInt) init(rawValue rawValue: UInt) static var OptionCPUCacheModeDefault: MTLResourceOptions { get } static var OptionCPUCacheModeWriteCombined: MTLResourceOptions { get } }

    Objective C

    typedef enum : NSUInteger { MTLResourceOptionCPUCacheModeDefault = MTLCPUCacheModeDefaultCache, MTLResourceOptionCPUCacheModeWriteCombined = MTLCPUCacheModeWriteCombined } MTLResourceOptions;

    Константы

    • OptionCPUCacheModeDefault

      MTLResourceOptionCPUCacheModeDefault

      Режим кэширования CPU по умолчанию для доступа общего назначения к выделению ресурсов хранения ресурса, гарантирующего, что операции чтения и операции записи выполняются в ожидаемом порядке.

      Доступный в iOS 8.0 и позже.

    • OptionCPUCacheModeWriteCombined

      MTLResourceOptionCPUCacheModeWriteCombined

      Набор режима кэширования CPU для использования объединенной с записью памяти для выделения ресурсов хранения ресурса.

      Доступный в iOS 8.0 и позже.

    Оператор импорта

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

    Доступный в iOS 8.0 и позже.