Compatibilidad con DDI y dList DLL del sistema híbrido
Se introdujo compatibilidad con recursos entre adaptadores en un sistema híbrido a partir de Windows 8.1 (WDDM 1.3). Están disponibles las siguientes funciones, estructuras y enumeraciones en modo de usuario y modo kernel:
- enumeración D3D10_DDI_RESOURCE_MISC_FLAG
- estructura de D3DDDI_RESOURCEFLAGS2
- estructura de D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
- estructura de D3DKMDT_GDISURFACEDATA
- enumeración D3DKMDT_GDISURFACETYPE
- estructura de DXGK_DRIVERCAPS
- estructura de DXGK_VIDMMCAPS
- Función pfnQueryDListForApplication1
La característica de examen de recursos entre adaptadores (CASO) se introdujo a partir de Windows Server 2022 (WDDM 2.9). Se agregó la siguiente compatibilidad adicional para CASO:
- Función pfnQueryDListForApplication2 (agregada)
- enumeración D3DDDI_DLIST_QUERY_RESULT (agregada)
- enumeración D3DDDI_DLIST_QUERY_DECISION_FACTOR (agregada)
- NoHybridDiscreteDListDllSupport se agregó a la estructura de DXGK_DRIVERCAPS
- CrossAdapterResourceTexture y CrossAdapterResourceScanout se agregaron a la estructura de DXGK_VIDMMCAPS
Nota
En Windows Server 2022 (WDDM 2.9) y versiones posteriores del sistema operativo, un controlador de pantalla en modo de usuario (UMD) en un sistema híbrido debe admitir el DDI pfnQueryDListForApplication2 , que reemplaza a pfnQueryDListForApplication1, independientemente de si implementa compatibilidad con CASO.
Configuración del archivo DLL dList
DList es una lista de aplicaciones que necesitan superficies compartidas entre adaptadores para la representación de alto rendimiento en la GPU discreta.
El UMD de la GPU discreta instala un archivo DLL dList pequeño independiente que exporta su función pfnQueryDListForApplication2 . El propio sistema operativo no determina en qué GPU se debe ejecutar una aplicación. En su lugar, el tiempo de ejecución de Direct3D llama a pfnQueryDListForApplication2 como máximo durante la inicialización de Direct3D.
El controlador debe consultar una lista actualizada de información de proceso para determinar si el proceso necesita o no el rendimiento mejorado de una GPU discreta en lugar de la GPU integrada.
Para obtener el mejor rendimiento, el archivo DLL debe:
- Tener un tamaño inferior a 200 KB
- Mantener las asignaciones en un mínimo
- Puede devolver desde pfnQueryDListForApplication2 en menos de 4 ms.
Registro del archivo DLL dList
El UMD proporciona el nombre del archivo DLL dList pequeño en su archivo INF bajo las claves del Registro UserModeDListDriverName y UserModeDListDriverNameWow, esta última bajo la entrada del Registro Wow64 . Este es el ejemplo de código INF:
[Xxx_SoftwareDeviceSettings]
...
HKR,, UserModeDListDriverName, %REG_MULTI_SZ%, dlistumd.dll
HKR,, UserModeDListDriverNameWow, %REG_MULTI_SZ%, dlistumdwow.dll