estructura DXGK_VIDSCHCAPS (d3dkmddi.h)
La estructura de DXGK_VIDSCHCAPS identifica las funcionalidades de programación de la unidad de procesamiento gráfico (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 se establece 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 que se dividen 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
Los 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 pantalla, 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 DMA revisadas. El sistema operativo realiza la detección de fugas antes de llamar a la función DxgkDdiPatch del controlador.
Nota
Si NoDmaPatching se establece en 1, los miembros PreemptionAware y MultiEngineAware también deben establecerse en un valor de 1. Si NoDmaPatching se establece 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 se establece en 1, el miembro MultiEngineAware también debe establecerse en un valor de 1. Si CancelCommandAware se establece en 1 pero MultiEngineAware se establece 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 |
---|---|
TRUE | Indica que una GPU solo es capaz de actualizar valores de 32 bits de forma atómica. En este caso, el sistema operativo controlará automáticamente el caso de ajuste de barrera; sin embargo, se aplicará una restricción de que los valores pendientes de espera y barrera de señal no puedan ser más de UINT_MAX/2 aparte del último valor de barrera señalizado. |
FALSE | Indica que una GPU es capaz de actualizar 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
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows Vista. |
Encabezado | d3dkmddi.h (incluya D3dkmddi.h) |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de