Mejoras en el rendimiento de la representación de Direct3D
Los controladores windows Display Driver Model (WDDM) 1.3 y versiones posteriores pueden admitir mejoras de rendimiento de representación de Microsoft Direct3D que permiten que el hardware de Direct3D 9 use mejor los búferes y contadores de comandos de hardware y realice copias eficaces de la memoria del sistema en subrecursos. Estas funcionalidades, que reflejan algunas de las funcionalidades disponibles para el hardware de La versión 10 de Direct3D, son nuevas a partir de Windows 8.1.
También hay disponibles nuevas mejoras de rendimiento predeterminadas de recorte de recursos de Direct3D 11.1 y asignación. El escenario predeterminado del mapa se describe en la sección Cambios de comportamiento a continuación.
Referencia de rendimiento de representación
En esta sección de referencia se describen las interfaces de controlador de dispositivo en modo de usuario (DDIs).
Funciones de rendimiento de representación de Direct3D implementadas por el controlador en modo de usuario
Esta sección contiene funciones que implementa un controlador de pantalla de Windows Display Driver Model (WDDM) 1.3 y versiones posteriores para mejorar el rendimiento de representación de Microsoft Direct3D.
PFND3DDDI_FLUSH1: PFND3DDDI_CHECKCOUNTERINFO
PFND3DDDI_CHECKCOUNTER: PFND3DDDI_UPDATESUBRESOURCEUP
Enumeraciones y estructuras de rendimiento de representación de Direct3D
Estas estructuras y enumeraciones en modo de usuario admiten mejoras de rendimiento de representación y son nuevas o actualizadas para Windows 8.1. Todos se aplican a los controladores de nivel 9 de Direct3D, excepto por D3D11_1_DDI_FLUSH_FLAGS.
- D3DDDI_FLUSH_FLAGS (nuevo)
- D3DDDIARG_COPYFLAGS (nuevo)
- D3DDDIARG_COUNTER_INFO (nuevo)
- D3DDDIARG_UPDATESUBRESOURCEUP (nuevo)
- D3DDDICAPS_SIMPLE_INSTANCING_SUPPORT (nuevo)
- CreateResource2 (controladores WDDM 1.3 y versiones posteriores de Nivel 9 de Direct3D deben devolver el código de error E_INVALIDARG si se establece el valor de la marca CaptureBuffer )
- D3D11_1_DDI_FLUSH_FLAGS(D3DWDDM1_3DDI_TRIM_MEMORY constante agregada)
- D3DDDI_DEVICEFUNCS (pfnFlush1, pfnCheckCounterInfo, pfnCheckCounter, miembros pfnUpdateSubresourceUP agregados)
- D3DDDI_POOL(D3DDDIPOOL_STAGINGMEM constante agregada)
- D3DDDICAPS_TYPE(D3DDDICAPS_GET_SIMPLE_INSTANCING_SUPPORT constante agregada)
- GetCaps (nueva información en comentarios)
Requisitos de implementación de DDI a partir de WDDM 1.3
A partir de WDDM 1.3, las siguientes funciones son necesarias o opcionales para que los controladores en modo de usuario se implementen.
Grupo de funciones | Descripción |
---|---|
Funciones de Direct3D 9 que son opcionales antes de WDDM 1.3. Ahora es necesario: |
|
Funciones de Direct3D 9 disponibles a partir de WDDM 1.3. Un controlador debe implementar todas estas funciones o ninguna de ellas: |
|
Cuando se implementan las funciones opcionales WDDM 1.3 y posteriores inmediatamente anteriores, estas funciones tienen cambios de comportamiento asociados: |
Estos escenarios se aplican cuando se llama a GetCaps :
|
Estas funciones de Direct3D 11 tienen cambios de comportamiento asociados: |
|
Cambios de comportamiento para las llamadas a las funciones de creación, asignación y anulación de mapa de recursos
Para estas funciones implementadas por los controladores WDDM 1.3 y versiones posteriores, el entorno de ejecución de Direct3D proporciona un conjunto restringido de valores de entrada para el escenario predeterminado del mapa. Estos valores restringidos solo se aplican a los controladores que admiten el nivel de característica 11.1 y versiones posteriores.
CreateResource(D3D11)function—
Estos miembros de estructura de D3D11DDIARG_CREATERESOURCE de entrada están restringidos:
Miembro | Descripción |
---|---|
ResourceDimension y uso |
Estos cambios de comportamiento solo se aplican cuando el entorno de ejecución de Direct3D proporciona el tipo D3D10DDIRESOURCE_BUFFER para ResourceDimension y el tipo D3D10_DDI_USAGE_DEFAULT para uso. |
BindFlags |
El tiempo de ejecución de Direct3D establece solo los valores de D3D10_DDI_BIND_SHADER_RESOURCE y D3D11_DDI_BIND_UNORDERED_ACCESS . |
MapFlags |
Si se cumplen todos los demás requisitos de miembro enumerados aquí, el tiempo de ejecución puede establecer valores de D3D10_DDI_MAP_READ, D3D10_DDI_MAP_WRITE y D3D10_DDI_MAP_READWRITE . El controlador debe admitir estos valores. Los valores de D3D10_DDI_MAP_WRITE_DISCARD y D3D10_DDI_MAP_WRITE_NOOVERWRITE no son válidos. |
MiscFlags |
El tiempo de ejecución establece solo los valores de D3D11_DDI_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS y D3D11_DDI_RESOURCE_MISC_BUFFER_STRUCTURED . |
Formato |
El tiempo de ejecución establece solo el valor de DXGI_FORMAT_UNKNOWN . |
SampleDesc |
El tiempo de ejecución establece el DXGI_SAMPLE_DESC. Cuente el miembro en 1 y el miembro Quality en cero. |
MipLevels |
El tiempo de ejecución establece el valor en 1. |
ArraySize |
El tiempo de ejecución establece el valor en 1. |
pPrimaryDesc |
El tiempo de ejecución establece el valor en NULL. |
Estos parámetros de entrada a ResourceMap están restringidos:
Parámetro | Descripción |
---|---|
hResource |
El tiempo de ejecución de Direct3D establece solo un recurso de D3D10DDIRESOURCE_BUFFER cuando se establece un valor distinto de cero para MapFlags en la llamada de creación a CreateResource(D3D11) . |
El tiempo de ejecución establece solo el valor de DXGI_FORMAT_UNKNOWN . |
|
Subrecurso |
El tiempo de ejecución solo establece el valor en 0. |
DDIMap |
Si se cumplen todos los demás requisitos de miembro enumerados aquí, el tiempo de ejecución puede establecer D3D10_DDI_MAP_READ, D3D10_DDI_MAP_WRITE o D3D10_DDI_MAP_READWRITE valores, que coincidan con el valor MapFlags establecido en la llamada de creación a CreateResource(D3D11). |
Banderas |
Aunque el valor de entrada del entorno de ejecución no está restringido, el controlador debe poder admitir el valor de D3D10_DDI_MAP_FLAG_DONOTWAIT . |
pMappedSubResource |
Aunque el valor de entrada del entorno de ejecución no está restringido, el controlador debe asignar un puntero válido que pueda almacenar en caché la CPU al D3D10DDI_MAPPED_SUBRESOURCE. El miembro pData y debe establecer RowPitch y DepthPitch para que coincida con el tamaño del búfer y los datos proporcionados en pData. |
Estos parámetros de entrada a ResourceUnmap están restringidos:
Parámetro | Descripción |
---|---|
hDevice |
Aunque el valor de entrada del tiempo de ejecución de Direct3D no está restringido, el valor que coincide con el valor hDevice de la llamada de ResourceMap original. |
hResource |
El tiempo de ejecución establece solo un recurso de D3D10DDIRESOURCE_BUFFER cuando se establece un valor distinto de cero para MapFlags en la llamada de creación a CreateResource(D3D11). |
Subrecurso |
El tiempo de ejecución solo establece el valor en 0. |