Compartir a través de


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.

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:

  • BltDXGI : almacenamiento provisional nativo
  • Blt1DXGI : almacenamiento provisional nativo
  • CreateResource2 : almacenamiento provisional nativo, texturas de captura grandes
  • GetCaps : marcas de tiempo, creación de instancias sencillas
  • Bloqueo : almacenamiento provisional nativo
  • TexBlt1 : almacenamiento provisional nativo
  • Desbloqueo : almacenamiento provisional nativo
  • VolBlt1 : almacenamiento provisional nativo

Estos escenarios se aplican cuando se llama a GetCaps :

  • Si se establece D3DDDICAPS_GETD3DQUERYDATA , el controlador puede notificar opcionalmente la compatibilidad con marcas de tiempo, lo que significa que el entorno de ejecución de Direct3D no admite máscaras.
  • Si se establece D3DDDICAPS_GET_SIMPLE_INSTANCING_SUPPORT , el controlador puede notificar compatibilidad de hardware opcional para la creación de instancias.

Estas funciones de Direct3D 11 tienen cambios de comportamiento asociados:

  • CreateResource(D3D11): valor predeterminado del mapa del búfer (consulte la sección Cambios de comportamiento a continuación)
  • pfnFlush1 : recorte de recursos
  • ResourceMap : valor predeterminado del mapa de búfer (consulte la sección Cambios de comportamiento a continuación)
  • ResourceUnmap : valor predeterminado del mapa de búfer (consulte la sección Cambios de comportamiento a continuación)

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.

Función ResourceMap:

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.

Función ResourceUnmap:

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.