Поделиться через


перечисление D3D10_USAGE (d3d10.h)

Определяет ожидаемое использование ресурсов во время отрисовки. Использование напрямую отражает, доступен ли ресурс для ЦП и (или) GPU.

Синтаксис

typedef enum D3D10_USAGE {
  D3D10_USAGE_DEFAULT = 0,
  D3D10_USAGE_IMMUTABLE = 1,
  D3D10_USAGE_DYNAMIC = 2,
  D3D10_USAGE_STAGING = 3
} ;

Константы

 
D3D10_USAGE_DEFAULT
Значение: 0
Ресурс, требующий доступа gpu для чтения и записи. Это, скорее всего, самый распространенный вариант использования.
D3D10_USAGE_IMMUTABLE
Значение: 1
Ресурс, который может быть прочитан только GPU. Он не может быть записан GPU и недоступен для ЦП. Этот тип ресурса необходимо инициализировать при создании, так как его нельзя изменить после создания.
D3D10_USAGE_DYNAMIC
Значение: 2
Ресурс, доступный как GPU, так и ЦП (только для записи). Динамический ресурс является хорошим выбором для ресурса, который будет обновляться ЦП по крайней мере один раз на кадр. Для записи в динамический ресурс на ЦП используйте метод Map . Вы можете выполнять запись в динамический ресурс на GPU с помощью CopyResource или CopySubresourceRegion.
D3D10_USAGE_STAGING
Значение: 3
Ресурс, поддерживающий передачу данных (копирование) из GPU в ЦП.

Комментарии

Приложение определяет способ использования ресурса (его использование) в описании ресурса. Существует несколько структур для создания ресурсов, включая D3D10_TEXTURE1D_DESC, D3D10_TEXTURE2D_DESC, D3D10_TEXTURE3D_DESC, D3D10_BUFFER_DESC и D3DX10_IMAGE_LOAD_INFO.

Различия между Direct3D 9 и Direct3D 10:

В Direct3D 9 указывается тип памяти, в которую должен быть создан ресурс во время создания ресурса (с помощью D3DPOOL). Задача приложения заключалась в том, чтобы решить, какой пул памяти обеспечит наилучшее сочетание функциональных возможностей и производительности.

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

 

Ограничения использования ресурсов

Каждое использование определяет компромисс между функциональностью и производительностью. Как правило, доступ к ресурсам осуществляется с помощью следующих API. Используйте следующую таблицу, чтобы выбрать использование, которое лучше всего описывает, каким образом ЦП и (или) GPU должен получить доступ к ресурсу. Конечно, будут компромиссы производительности.
Использование ресурсов Default Динамический Неизменяемые Промежуточная
GPU-Read да Да¹ да Да1, 2
GPU-Write Да¹ Да1, 2
CPU-Read Да1, 2
CPU-Write да Да1, 2
 
  • 1 — это только CopySubresourceRegion, CopyResource и UpdateSubresource.
  • 2. Не может быть буфером трафарета глубины или целевым объектом отрисовки с несколькими выборками.

Параметры привязки ресурсов

Чтобы повысить производительность, не все параметры использования ресурсов можно использовать в качестве входных или выходных ресурсов в конвейере. В этой таблице указаны эти ограничения.
Ресурс можно привязать как Default Динамический Неизменяемые Промежуточная
Входные данные для этапа Да( да) Да⁴ да
Выходные данные этапа Да( да)
 
  • 3 . Если в качестве входных и выходных данных используются разные представления, каждое представление должно использовать разные подресурсы.
  • 4 . Ресурс можно создать только с одним подресурсом. Ресурс не может быть массивом текстур. Ресурс не может быть цепочкой MIP-карты.

Требования

Требование Значение
Заголовок d3d10.h

См. также раздел

Перечисления ресурсов