Улучшения производительности отрисовки Direct3D
Драйверы WDDM 1.3 и более поздних версий могут поддерживать улучшения производительности отрисовки Microsoft Direct3D, что позволяет оборудованию Direct3D 9 лучше использовать аппаратные буферы команд и счетчики, а также создавать эффективные копии системной памяти в вложенные ресурсы. Эти возможности, которые зеркало некоторые возможности, доступные для оборудования Direct3D версии 10, являются новыми, начиная с Windows 8.1.
Также доступны новые улучшения производительности ресурсов Direct3D 11.1 и карты по умолчанию. Сценарий карты по умолчанию описан в разделе Изменения поведения ниже.
Справочник по производительности отрисовки
В этом справочном разделе описываются интерфейсы драйверов устройств в пользовательском режиме (DIS).
Функции производительности отрисовки Direct3D, реализованные драйвером пользовательского режима
В этом разделе содержатся функции, которые реализует драйвер WDDM 1.3 и более поздних версий в пользовательском режиме для улучшения производительности отрисовки в Microsoft Direct3D.
PFND3DDDI_FLUSH1: PFND3DDDI_CHECKCOUNTERINFO
PFND3DDDI_CHECKCOUNTER: PFND3DDDI_UPDATESUBRESOURCEUP
Отрисовка структур производительности и перечислений Direct3D
Эти структуры и перечисления пользовательского режима поддерживают повышение производительности отрисовки и являются новыми или обновленными для Windows 8.1. Все драйверы применяются к драйверам Уровня 9 Direct3D, за исключением D3D11_1_DDI_FLUSH_FLAGS.
- D3DDDI_FLUSH_FLAGS (новое)
- D3DDDIARG_COPYFLAGS (новое)
- D3DDDIARG_COUNTER_INFO (новое)
- D3DDDIARG_UPDATESUBRESOURCEUP (новое)
- D3DDDICAPS_SIMPLE_INSTANCING_SUPPORT (новое)
- CreateResource2 (драйверы WDDM 1.3 и более поздних версий Direct3D уровня 9 должны возвращать код ошибки E_INVALIDARG , если задано значение флага CaptureBuffer )
- D3D11_1_DDI_FLUSH_FLAGS (добавлена константа D3DWDDM1_3DDI_TRIM_MEMORY )
- D3DDDI_DEVICEFUNCS (добавлены члены pfnFlush1, pfnCheckCounterInfo, pfnCheckCounter, pfnUpdateSubresourceUP )
- D3DDDI_POOL (добавлена константа D3DDDIPOOL_STAGINGMEM )
- D3DDDICAPS_TYPE (добавлена константа D3DDDICAPS_GET_SIMPLE_INSTANCING_SUPPORT )
- GetCaps (новые сведения в примечаниях)
Требования к реализации DDI, начиная с WDDM 1.3
Начиная с WDDM 1.3 следующие функции являются обязательными или необязательными для реализации драйверов пользовательского режима.
Группа функций | Описание |
---|---|
Функции Direct3D 9, которые являются необязательными до WDDM 1.3. Теперь требуется: |
|
Функции Direct3D 9, доступные начиная с WDDM 1.3. Драйвер должен реализовывать все эти функции или ни одну из них: |
|
При реализации WDDM 1.3 и более поздних дополнительных функций, непосредственно описанных выше, эти функции имеют связанные изменения в поведении: |
Эти сценарии применяются при вызове Метода GetCaps :
|
Эти функции Direct3D 11 имеют связанные изменения в поведении: |
|
Изменения в поведении вызовов функций создания, сопоставления и отмены сопоставления ресурсов
Для этих функций, реализованных драйверами WDDM 1.3 и более поздних версий, среда выполнения Direct3D предоставляет ограниченный набор входных значений для сценария сопоставления по умолчанию. Эти ограниченные значения применяются только к драйверам, поддерживающим уровень функций 11.1 и более поздних версий.
ФункцияCreateResource(D3D11)—
Эти входные D3D11DDIARG_CREATERESOURCE члены структуры ограничены:
Член | Описание |
---|---|
ResourceDimension и использование |
Эти изменения в поведении применяются только в том случае, если среда выполнения Direct3D предоставляет тип D3D10DDIRESOURCE_BUFFER для ResourceDimension и тип D3D10_DDI_USAGE_DEFAULT для параметра Usage. |
BindFlags |
Среда выполнения Direct3D задает только значения D3D10_DDI_BIND_SHADER_RESOURCE и D3D11_DDI_BIND_UNORDERED_ACCESS . |
MapFlags |
Если выполнены все остальные требования к членам, перечисленные здесь, среда выполнения может задать D3D10_DDI_MAP_READ, D3D10_DDI_MAP_WRITE и D3D10_DDI_MAP_READWRITE значения. Драйвер должен поддерживать эти значения. Недопустимые значения D3D10_DDI_MAP_WRITE_DISCARD и D3D10_DDI_MAP_WRITE_NOOVERWRITE . |
MiscFlags |
Среда выполнения задает только значения D3D11_DDI_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS и D3D11_DDI_RESOURCE_MISC_BUFFER_STRUCTURED . |
Формат |
Среда выполнения задает только значение DXGI_FORMAT_UNKNOWN . |
SampleDesc |
Среда выполнения задает DXGI_SAMPLE_DESC. Считайте элемент равным 1, а элемент Quality равным нулю. |
MipLevels |
Среда выполнения задает значение 1. |
ArraySize |
Среда выполнения задает значение 1. |
pPrimaryDesc |
Среда выполнения задает значение NULL. |
Эти входные параметры для ResourceMap ограничены:
Параметр | Описание |
---|---|
hResource |
Среда выполнения Direct3D задает только D3D10DDIRESOURCE_BUFFER ресурс, если в вызове создания CreateResource(D3D11) задано ненулевое значение mapFlags. |
Среда выполнения задает только значение DXGI_FORMAT_UNKNOWN . |
|
Подресурс |
Среда выполнения задает только значение 0. |
DDIMap |
Если все остальные требования к элементам, перечисленные здесь, выполнены, среда выполнения может задать D3D10_DDI_MAP_READ, D3D10_DDI_MAP_WRITE или D3D10_DDI_MAP_READWRITE значения, соответствующие значению MapFlags, заданному в вызове создания CreateResource(D3D11). |
Флаги |
Хотя входное значение из среды выполнения не ограничено, драйвер должен поддерживать значение D3D10_DDI_MAP_FLAG_DONOTWAIT . |
pMappedSubResource |
Хотя входное значение из среды выполнения не ограничено, драйвер должен назначить D3D10DDI_MAPPED_SUBRESOURCE допустимый указатель, кэшируемый ЦП. Элемент pData и должны задавать RowPitch и DepthPitch в соответствии с размером буфера и данными, предоставленными в pData. |
Эти входные параметры для ResourceUnmap ограничены:
Параметр | Описание |
---|---|
hDevice |
Хотя входное значение из среды выполнения Direct3D не ограничено, значение, соответствующее значению hDevice из исходного вызова ResourceMap . |
hResource |
Среда выполнения задает только D3D10DDIRESOURCE_BUFFER ресурс, если в вызове createResource(D3D11) задано ненулевое значение для MapFlags. |
Подресурс |
Среда выполнения задает только значение 0. |