estructura DXGK_VIDMMCAPS (d3dkmddi.h)

La estructura DXGK_VIDMMCAPS identifica las funcionalidades de administración de memoria de vídeo que admite un controlador de miniporte de pantalla.

Sintaxis

typedef struct _DXGK_VIDMMCAPS {
  union {
    struct {
      UINT OutOfOrderLock : 1;
      UINT DedicatedPagingEngine : 1;
      UINT PagingEngineCanSwizzle : 1;
      UINT SectionBackedPrimary : 1;
      UINT CrossAdapterResource : 1;
      UINT VirtualAddressingSupported : 1;
      UINT GpuMmuSupported : 1;
      UINT IoMmuSupported : 1;
      UINT ReplicateGdiContent : 1;
      UINT NonCpuVisiblePrimary : 1;
      UINT ParavirtualizationSupported : 1;
      UINT IoMmuSecureModeSupported : 1;
      UINT DisableSelfRefreshVRAMInS3 : 1;
      UINT IoMmuSecureModeRequired : 1;
      UINT MapAperture2Supported : 1;
      UINT CrossAdapterResourceTexture : 1;
      UINT CrossAdapterResourceScanout : 1;
      UINT AlwaysPoweredVRAM : 1;
#if ...
      UINT Reserved : 14;
#elif
      UINT Reserved : 15;
#elif
      UINT Reserved : 18;
#elif
      UINT Reserved : 19;
#elif
      UINT Reserved : 21;
#elif
      UINT Reserved : 22;
#elif
      UINT Reserved : 27;
#elif
      UINT Reserved : 28;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  };
  UINT  PagingNode;
} DXGK_VIDMMCAPS;

Miembros

OutOfOrderLock

Especifica si el controlador puede bloquear instancias de asignación distintas de la instancia más reciente. Normalmente, el controlador establece este valor para el subproceso DDI y el equilibrio de carga si un subproceso DDI debe bloquear un búfer de vértices que un subproceso de aplicación había bloqueado y descartado previamente. Establecer este miembro equivale a establecer el primer bit del miembro Value de 32 bits (0x00000001).

DedicatedPagingEngine

Este miembro está reservado y debe establecerse en cero.

PagingEngineCanSwizzle

Este miembro está reservado y debe establecerse en cero.

SectionBackedPrimary

Especifica si el controlador admite asignaciones principales respaldadas por secciones. Se admite a partir de Windows 8.

CrossAdapterResource

Especifica si el controlador proporciona compatibilidad con el nivel 1 de copia hacia y desde recursos entre adaptadores en un sistema< híbrido. Se admite a partir de Windows 8.1.

A partir de WDDM 2.4, DXGI habilita las optimizaciones de presentación híbrida actuales para el escenario más amplio donde la representación esté en una GPU y presentarla en el monitor de otra GPU. Esto solo es posible si ambas GPU admiten recursos entre adaptadores.

A continuación se enumeran las propiedades de recursos del adaptador cruzado.

  • El recurso solo se puede paginar en el segmento de memoria de GPU de apertura.
  • El recurso se asigna como compartido.
  • El recurso debe marcarse como CPU visible.
  • El sistema operativo creará la asignación como combinación de escritura.
  • El recurso solo tiene una asignación y tiene el formato lineal.
  • El recurso tiene alineación de inclinación estándar (128 bytes). La definición de D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT se agrega para la alineación del tono. El recurso debe crearse en el múltiplo más pequeño de esta alineación que contendrá el contenido del recurso.
  • El recurso tiene una alineación de alto estándar (4 filas). Se agrega el D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT. El recurso debe crearse en el múltiplo más pequeño de esta alineación que contendrá el contenido del recurso.
#define D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT 128

#define D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT 4
  • La dirección de inicio de la memoria del recurso se alinea con un límite de página.
  • El recurso puede crearse como una asignación estándar desde el modo kernel y, posteriormente, abierta por el UMD.
  • El UMD podría crear el recurso.

La asignación de adaptadores cruzados podría usarse como principal, pero el controlador no obtendrá información, que normalmente se proporciona cuando se crea la principal.

VirtualAddressingSupported

Especifica si el controlador admite el direccionamiento de memoria virtual. Para expresar la compatibilidad con el direccionamiento de memoria virtual de GPU, el controlador debe establecer los límites VirtualAddressingSupported y GpuMmuSupported o IoMmuSupported . GpuMmuSupported e IoMmuSupported no se pueden establecer al mismo tiempo. Se admite a partir de Windows 10.

GpuMmuSupported

Especifica si el adaptador admite el modelo gpuMmu . Un adaptador no puede admitir los modelos de GpuMmu y IoMmu en motores diferentes al mismo tiempo. Consulte Modelo de GpuMmu para obtener más información. Se admite a partir de Windows 10.

IoMmuSupported

Especifica si el adaptador admite el modelo ioMmu . Un adaptador no puede admitir los modelos de GpuMmu y IoMmu en motores diferentes al mismo tiempo. Consulte Modelo de IoMmu para obtener más información. Se admite a partir de Windows 10 (WDDM 2.0).

ReplicateGdiContent

Especifica si el adaptador admite la replicación del contenido de GDI. Se admite a partir de Windows 10.

NonCpuVisiblePrimary

Indica que no es necesario que las asignaciones de GDI sean visibles para la CPU. Se admite a partir de Windows 10.

ParavirtualizationSupported

El KMD de host debe establecer el límite si se implementan todas las DDIs. Se admite a partir de Windows 10 versión 1703 (WDDM 2.2).

IoMmuSecureModeSupported

Indica que el controlador admite el aislamiento de GPU basado en IOMMU. Se admite a partir de Windows 10 versión 1803 (WDDM 2.4).

DisableSelfRefreshVRAMInS3

Deshabilite la compatibilidad con la actualización automática de VRAM en S3. Se admite a partir de Windows 10 versión 1803.

IoMmuSecureModeRequired

Indica que se requiere compatibilidad con el hardware y el aislamiento de IOMMU (al que hace referencia la marca IommuSecureModeSupported ) o el sistema operativo no iniciará el adaptador. Se admite a partir de Windows 10 versión 2004 (WDDM 2.7).

MapAperture2Supported

Indica que el controlador admite la operación de búfer de paginación DXGK_OPERATION_MAP_APERTURE_SEGMENT2, que es necesaria para la reasignación de DMA de IOMMU. Se admite a partir de WDDM versión 2.9.

CrossAdapterResourceTexture

Especifica si el controlador proporciona compatibilidad de nivel 2 con la texturización de recursos entre adaptadores. Un controlador que indica la compatibilidad con CrossAdapterResourceTexture también debe indicar la compatibilidad con CrossAdapterResource. Se admite a partir de WDDM versión 2.9.

CrossAdapterResourceScanout

Especifica si el controlador proporciona compatibilidad de nivel 3 para examinar recursos entre adaptadores. Un controlador que indica la compatibilidad con CrossAdapterResourceScanout también debe indicar la compatibilidad con CrossAdapterResource y CrossAdapterResourceTexture. Se admite a partir de WDDM versión 2.9.

La compatibilidad con el nivel 3 requiere que el controlador pueda realizar las funcionalidades de volteo admitidas, declaradas por el controlador en DXGK_FLIPCAPS, para los recursos entre adaptadores de las siguientes especificaciones mínimas:

  • Tamaño del búfer principal del adaptador cruzado de 1920 x 1080 o más pequeño
  • Formato de píxel del búfer de cualquiera de los siguientes formatos de DisplayScanOut admitidos:
    • DXGI_FORMAT_R16G16B16A16_FLOAT
    • DXGI_FORMAT_R10G10B10A2_UNORM
    • DXGI_FORMAT_R8G8B8A8_UNORM
    • DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
    • DXGI_FORMAT_B8G8R8A8_UNORM
    • DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
    • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

El tiempo de ejecución de DXGI consultará la compatibilidad con CrossAdapterResourceScanout del controlador y, si se admite, la pila de presentación bajará la ruta de acceso de copia 1. Por lo tanto, los controladores que declaran compatibilidad con CrossAdapterResourceScanout también son necesarios para:

  • DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3 de soporte técnico.
  • Admita todos los DDIs relacionados con la presentación pertinentes para los principales adaptadores de las especificaciones mínimas anteriores. Algunos ejemplos son pfnCreateResource, pfnCheckMultiplaneOverlaySupport y pfnPresentMultiplaneOverlay/pfnPresent1. Consulte las especificaciones existentes para obtener los detalles necesarios, como la especificación mpO y la especificación híbrida. Consulte la sección siguiente para obtener más detalles sobre cómo salir de CASO.

AlwaysPoweredVRAM

Reserved

Este miembro está reservado y debe establecerse en cero. Establecer este miembro en cero equivale a establecer los 31 bits restantes (después de establecer OutOfOrderLock) del miembro Value en ceros. Tenga en cuenta que Reserved solo está disponible si DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN7.

Value

Este valor se usa para operar sobre los miembros colectivamente.

PagingNode

Índice de base cero del nodo que se va a usar para las operaciones de paginación. Si el controlador no establece el miembro de campo de bits MultiEngineAware del miembro SchedulingCaps de la estructura de DXGK_DRIVERCAPS , el subsistema del kernel de gráficos de DirectX omite la configuración de PagingNode. Este miembro solo se aplica a WDDM 1.x. En WDDM 2.x, PagingNode se movió a DXGK_PHYSICALADAPTERCAPS.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Encabezado d3dkmddi.h (incluye D3dkmddi.h)

Consulte también

DXGK_DRIVERCAPS

DXGK_PHYSICALADAPTERCAPS