Presupuestos de residencia de procesos
En windows Display Driver Model (WDDM) v2, los procesos se asignarán presupuestos para la cantidad de memoria que pueden mantener residentes. Este presupuesto puede cambiar con el tiempo, pero generalmente solo se impondrá cuando el sistema esté bajo presión de memoria. Antes de Microsoft Direct3D 12, el presupuesto se controla mediante el controlador de modo de usuario en forma de notificaciones de recorte y errores MakeResident con STATUS_NO_MEMORY. TrimToBudget notification, Evict y failed MakeResident llama a all return the latest budget in the form of an integer NumBytesToTrim value that indicates how much needs to be trimmed in order to fit in the new budget.
En el caso de las aplicaciones de Direct3D 12, la aplicación controla completamente el presupuesto. El tamaño del presupuesto está pensado como una indicación para que la aplicación sepa a qué ajustar el tamaño. Mediante el uso del tamaño del presupuesto como sugerencia, la aplicación puede decidir cuántos recursos mantener residentes, qué resolución y calidad de recursos mantener.
Para administrar correctamente estos presupuestos, el kernel debe saber qué memoria debe participar en el presupuesto. Hay un nuevo bit ApplicationTarget en DXGK_SEGMENTFLAGS2 estructura que debe establecerse en segmentos que el controlador de modo kernel desea incluir en la lógica de presupuestación. Por ejemplo, en una unidad de procesamiento de gráficos discreta (GPU) con 1 segmento de VRAM adecuado para el uso de la aplicación y 1 segmento de VRAM que se usa para recursos de uso especial automáticamente, es probable que el controlador solo marque el segmento VRAM principal como ApplicationTarget. En el caso de las GPU integradas, el segmento de apertura principal normalmente será el marcado. No hay ningún límite para el número de segmentos que se pueden marcar como ApplicationTarget. El kernel los agregará juntos y presentará la aplicación con un tamaño unificado.