estructura DXGK_VIDSCHCAPS (d3dkmddi.h)

La estructura de DXGK_VIDSCHCAPS identifica las funcionalidades de programación de la unidad de procesamiento de gráficos (GPU), en marcas de campo de bits, que un controlador puede admitir.

Sintaxis

typedef struct _DXGK_VIDSCHCAPS {
  union {
    struct {
      UINT MultiEngineAware : 1;
      UINT VSyncPowerSaveAware : 1;
      UINT PreemptionAware : 1;
      UINT NoDmaPatching : 1;
      UINT CancelCommandAware : 1;
      UINT No64BitAtomics : 1;
      UINT LowIrqlPreemptCommand : 1;
      UINT HwQueuePacketCap : 4;
      UINT NativeGpuFence : 1;
#if ...
      UINT Reserved : 20;
#elif
      UINT Reserved : 21;
#elif
      UINT Reserved : 25;
#elif
      UINT Reserved : 27;
#else
      UINT Reserved : 30;
#endif
    };
    UINT Value;
  };
} DXGK_VIDSCHCAPS;

Miembros

MultiEngineAware

Valor UINT que especifica si el controlador admite la creación y destrucción de un contexto de dispositivo (a través de las funciones DxgkDdiCreateContext y DxgkDdiDestroyContext ) y el uso de un contexto de dispositivo (a través de las funciones DxgkDdiPresent y DxgkDdiRender ). Si el controlador no admite la creación de contextos, para cada llamada al controlador que pasaría un identificador a un contexto, el subsistema del kernel de gráficos de Microsoft DirectX reemplaza el identificador al contexto por un identificador para el dispositivo.

Establecer este miembro equivale a establecer el primer bit del miembro Value de 32 bits (0x00000001).

VSyncPowerSaveAware

Valor UINT que especifica si el controlador admite la funcionalidad de ahorro de energía de sincronización vertical.

Si VSyncPowerSaveAware está establecido en 1 (TRUE), el sistema operativo puede ahorrar energía deshabilitando y habilitando la interrupción de sincronización vertical que se produce desde el uso de algunas aplicaciones. Si VSyncPowerSaveAware está establecido en cero (FALSE), el sistema operativo nunca deshabilitará la interrupción de sincronización vertical para las aplicaciones que podrían provocar la interrupción de sincronización vertical.

Establecer este miembro equivale a establecer el segundo bit del miembro Value de 32 bits (0x00000002).

Se admite a partir de Windows Server 2008 y Windows Vista con SP1.

PreemptionAware

Valor UINT que especifica si el controlador admite la directiva de adelantamiento de GPU de Windows 8 y versiones posteriores de Windows. Con esta directiva, el sistema operativo siempre emite solicitudes de adelantamiento a la GPU antes de iniciar el proceso **Detección y recuperación de tiempo de espera (TDR).

Si PreemptionAware está establecido en 1 (TRUE), el controlador admite la directiva de adelantamiento de Windows 8 y versiones posteriores de Windows.

Si PreemptionAware se establece en cero (FALSE), el controlador admite la directiva de adelantamiento de Windows 7. Con esta directiva, es posible que el sistema operativo no emita solicitudes de adelantamiento mientras se ejecutan operaciones de larga duración en la GPU. Como resultado, estas solicitudes de GPU no se adelanten antes de que se inicie el proceso de TDR. Esto puede hacer que el proceso de TDR restablezca repetidamente la GPU, lo que podría provocar un error de detención del sistema.

Nota

Si PreemptionAware está establecido en 1, el miembro MultiEngineAware también debe establecerse en un valor de 1. Si PreemptionAware está establecido en 1, pero MultiEngineAware está establecido en cero, el sistema operativo detendrá el proceso de inicialización del controlador y devolverá un código de error.

Establecer este miembro equivale a establecer el tercer bit del miembro Value de 32 bits (0x00000004).

Se admite a partir de Windows 8.

NoDmaPatching

Valor UINT que especifica si el controlador deshabilita la detección de fugas para los búferes DMA divididos en varias partes. Esta detección se realiza después de llamar a la función DxgkDdiPatch del controlador para asignar, o aplicar revisiones, direcciones físicas a cada parte del búfer DMA.

Nota

Mostrar dispositivos que admiten direcciones virtuales pueden volver a programar una dirección virtual a una nueva ubicación de memoria de vídeo sin tener que aplicar revisiones al valor de la dirección del búfer DMA. Para estos tipos de dispositivos de visualización, el controlador debe establecer NoDmaPatching en 1.

Si NoDmaPatching se establece en 1 (TRUE), el controlador deshabilita la detección de fugas y el comportamiento de la división del búfer DMA es el mismo que en Windows 7.

Si NoDmaPatching está establecido en 0 (FALSE), el controlador habilita la detección de fugas para las direcciones de búfer de DMA revisadas. El sistema operativo realiza la detección de fugas antes de llamar a la función DxgkDdiPatch del controlador.

Nota

Si NoDmaPatching está establecido en 1, los miembros PreemptionAware y MultiEngineAware también deben establecerse en un valor de 1. Si NoDmaPatching está establecido en 1, pero PreemptionAware o MultiEngineAware se establecen en cero, el sistema operativo detendrá el proceso de inicialización del controlador y devolverá un código de error.

Establecer este miembro equivale a establecer el cuarto bit del miembro Value de 32 bits (0x0000008).

Se admite a partir de Windows 8.

CancelCommandAware

Valor UINT que especifica si el controlador admite la limpieza de recursos internos (a través de la función DxgkDdiCancelCommand ) después de quitar un comando de la cola de hardware.

Si CancelCommandAware está establecido en 1 (TRUE), el controlador admite la limpieza de recursos asociados a un paquete DMA cancelado. Si CancelCommandAware está establecido en cero (FALSE), el controlador no admite la limpieza de recursos.

Nota

Si CancelCommandAware está establecido en 1, el miembro MultiEngineAware también debe establecerse en un valor de 1. Si CancelCommandAware está establecido en 1, pero MultiEngineAware está establecido en cero, el sistema operativo devuelve un código de error.

Establecer este miembro equivale a establecer el quinto bit del miembro Value de 32 bits (0x0000010).

Se admite a partir de Windows 8.

No64BitAtomics

Valor Significado
VERDADERO Indica que una GPU solo es capaz de actualizar los valores de 32 bits de forma atómica. En este caso, el sistema operativo controlará automáticamente el caso de ajuste de barrera, pero colocará una restricción de que los valores pendientes de espera y barrera de señal no pueden ser más de UINT_MAX/2 aparte del último valor de barrera señalizado.
FALSO Indica que una GPU es capaz de actualizar los valores de 64 bits de forma atómica como visibles por la CPU.

Se admite a partir de Windows 10.

LowIrqlPreemptCommand

HwQueuePacketCap

Número máximo de paquetes DMA que se pueden poner en cola en un nodo.

NativeGpuFence

Reserved

Este miembro está reservado y debe establecerse en cero.

Value

Miembro de la unión que DXGK_VIDSCHCAPS contiene que puede contener un valor de 32 bits que identifica las funcionalidades de programación de GPU que el controlador puede admitir.

Requisitos

   
Cliente mínimo compatible Disponible a partir de Windows Vista.
Header d3dkmddi.h (incluye D3dkmddi.h)

Consulte también

DXGK_DRIVERCAPS

DxgkDdiCancelCommand

DxgkDdiCreateContext

DxgkDdiDestroyContext

DxgkDdiPatch

DxgkDdiPresent

DxgkDdiRender