Compartir a través de


Representación en una GPU discreta mediante recursos entre adaptadores

A partir de Windows 8.1, una GPU discreta usa un recurso entre adaptadores como:

  • Un destino para la transferencia de bloques de bits (bitblt) o operaciones presentes, pero sin estirar o convertir el color.
  • Recurso desde el que el sistema operativo solicita al controlador de visualización en modo de usuario que realice la operación bitblt o present hacia y desde.

Una GPU integrada usa un recurso entre adaptadores como:

  • Textura durante la composición por el Administrador de ventanas de escritorio (DWM).
  • Destino de representación para la aceleración de hardware GDI.
  • Un elemento principal de visualización.
  • No como destino de representación para operaciones 3D.

En las secciones siguientes se describen la arquitectura y los procesos implicados en tres escenarios posibles en los que una aplicación se representa en una GPU discreta dentro de un sistema híbrido.

Modelo de presentación de bitblt redirigido

Diagrama que muestra el modelo bitblt redirigido de gráficos híbridos para su representación en una GPU discreta.

  1. Se crea un recurso entre adaptadores para una ventana de nivel superior en modo kernel como una asignación estándar en la GPU integrada.
  2. Cuando se abre este recurso en la GPU discreta, el subsistema de kernel de gráficos directX (Dxgkrnl.sys) llama a la función DxgkDdiGetStandardAllocationDriverData y crea un nuevo recurso en la GPU discreta con el mismo almacén de respaldo (dispositivo de almacenamiento masivo) que para la GPU integrada.
  3. El entorno de ejecución de Direct3D indica al controlador de pantalla del modo de usuario de la GPU discreta que abra el recurso entre adaptadores mediante datos de controladores privados.
  4. Una aplicación DirectX se representa en la GPU discreta en un recurso de búfer de reserva. Vea la operación "Render" en la ilustración.
  5. Cuando una aplicación directX llama a un método Present , el tiempo de ejecución de Direct3D llama a la función PresentDXGI (o pfnPresent) del controlador de modo usuario de la GPU discreta para copiar el búfer de reserva en el recurso de adaptador cruzado. Vea la operación "Present" en la ilustración.
  6. Cuando una aplicación de interfaz de dispositivo gráfico (GDI) de Windows se representa en una ventana de nivel superior, el subsistema del kernel de gráficos directX llama a la función DxgkDdiRenderKm del controlador de miniporte de pantalla de la GPU integrada e indica que el recurso de adaptador cruzado es un destino de representación. Vea la conexión entre la aplicación GDI y la superficie de adaptador cruzado en la ilustración.
  7. El proceso DWM abre el recurso entre adaptadores en la GPU integrada y lo usa durante la composición como textura de origen. Vea la operación "Composition" en la ilustración.

Modelo de presentación de volteo directo

Diagrama que ilustra el modelo de volteo directo de gráficos híbridos para su representación en una GPU discreta.

  1. El entorno de ejecución de Direct3D indica al controlador de pantalla del modo de usuario de la GPU discreta que cree un recurso entre adaptadores para cada superficie de cadena de intercambio.
  2. En la GPU discreta, el entorno de ejecución de Direct3D podría establecer los miembros Primary y VidPnSourceId de la estructura D3DDDI_ALLOCATIONINFO si el modo Direct Flip está disponible. Estos valores de miembro se deben pasar cuando se llama a la función pfnAllocateCb .
  3. El entorno de ejecución de Direct3D indica al controlador de pantalla del modo de usuario de la GPU integrada que abra un recurso entre adaptadores que el DWM administre.
  4. Una aplicación se representa en la GPU discreta mediante la textura de destino de representación como destino. Vea la operación "Render" en la ilustración.
  5. Cuando una aplicación llama a un método Present , el entorno de ejecución de Direct3D llama a la función BltDXGI (o pfnBlt) del controlador de modo usuario de la GPU discreta para realizar una copia en el recurso entre adaptadores. A continuación, el tiempo de ejecución llama a la función PresentDXGI (o pfnPresent) del controlador de modo usuario de la GPU discreta, con el origen establecido en el recurso entre adaptadores y la asignación de destino establecida en NULL. Vea la operación "Copiar" en la ilustración.
  6. DwM realiza su composición mediante el recurso de la GPU integrada. Si se necesita una operación De volteo directo (DXGK_SEGMENTFLAGS.DirectFlip está establecido), DWM indica al controlador de miniporte de la GPU integrada que realice una operación de volteo de una asignación entre adaptadores a otra. Vea la operación "DWM flip" en la ilustración.

Modelo de pantalla completa

  1. El entorno de ejecución de Direct3D indica al controlador de pantalla del modo de usuario de la GPU integrada que cree una asignación principal compartida entre adaptadores para cada superficie de la cadena de intercambio.
  2. El entorno de ejecución de Direct3D indica al controlador de pantalla en modo de usuario de la GPU discreta que abra los recursos entre adaptadores.
  3. Una aplicación se representa en la GPU discreta mediante la textura de destino de representación como destino.
  4. Cuando la aplicación llama a un método Present , el entorno de ejecución de Direct3D indica al controlador de pantalla en modo de usuario de gpu discreta que realice una copia en un recurso de adaptador cruzado.
  5. El controlador de pantalla en modo de usuario y el controlador de minipuerto de pantalla de la GPU integrada se les indica que se muevan a este recurso entre adaptadores.