Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Драйверы модели отображения Windows (WDDM) версии 1.3 и выше могут поддерживать улучшения производительности отрисовки Microsoft Direct3D, что позволяет аппаратному обеспечению Direct3D 9 более эффективно использовать аппаратные буферы команд и счетчики и эффективно копировать системную память в подресурсы. Эти возможности, которые отражают некоторые возможности, доступные для оборудования Direct3D версии 10, являются новыми, начиная с Windows 8.1.
Также доступны новые улучшения производительности для обрезки ресурсов Direct3D 11.1 и улучшенной работы сопоставления по умолчанию. Сценарий по умолчанию карты описан в разделе "Изменения поведения" ниже.
Справочник по эффективности рендеринга
В этом справочном разделе описываются интерфейсы драйверов устройств в пользовательском режиме (DDIs).
Функции производительности отрисовки Direct3D, реализованные драйвером пользовательского режима
В этом разделе содержатся функции, которые реализует драйвер windows Display Driver Model (WDDM) 1.3 и более поздних версий в пользовательском режиме, чтобы поддерживать улучшения производительности отрисовки Microsoft Direct3D.
PFND3DDDI_FLUSH1: PFND3DDDI_CHECKCOUNTERINFO
PFND3DDDI_CHECKCOUNTER: PFND3DDDI_UPDATESUBRESOURCEUP
Структуры и перечисления производительности отрисовки Direct3D
Эти структуры и перечисления в пользовательском режиме поддерживают улучшение производительности отрисовки и являются новыми или обновленными для Windows 8.1. Все применяются к драйверам уровня Direct3D 9, кроме D3D11_1_DDI_FLUSH_FLAGS.
- D3DDDI_FLUSH_FLAGS (новое)
- D3DDDIARG_COPYFLAGS (новое)
- D3DDDIARG_COUNTER_INFO (новое)
- D3DDDIARG_UPDATESUBRESOURCEUP (новое)
- D3DDDICAPS_SIMPLE_INSTANCING_SUPPORT (новое)
- CreateResource2 (драйверы Уровня Direct3D 9 для WDDM 1.3 и более поздних версий должны вернуть код ошибки 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 и Usage |
Эти изменения в поведении применяются только в том случае, если среда выполнения Direct3D предоставляет тип D3D10DDIRESOURCE_BUFFER для ResourceDimension и тип D3D10_DDI_USAGE_DEFAULT для использования. |
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.Count равным 1, а элемент Quality равным нулю. |
MipLevels |
Среда выполнения задает значение 1. |
ArraySize |
Среда выполнения задает значение 1. |
pPrimaryDesc |
Среда выполнения задает значение NULL. |
ResourceMapфункция—
Эти входные параметры в 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. |