Optimizaciones de pantalla completa (FSO/EFSE) y GameDVR en Windows: claves del Registro, EFSEFeatureFlags y ajustes de rendimiento para juegos

Guía práctica para ajustar las “Fullscreen Optimizations” (FSO/EFSE) y GameDVR en Windows a fin de mejorar FPS y latencia sin perder compatibilidad con la grabación. Incluye explicación de cada clave del Registro, valores posibles y plantillas .reg/PowerShell listas para usar.

Índice

Conceptos clave: Fullscreen, FSO/EFSE y GameDVR

Antes de tocar el Registro conviene alinear conceptos:

  • Pantalla completa exclusiva (FSE): el juego toma el control directo de la salida. Históricamente ofrece la menor latencia y evita compositores de escritorio, pero complica superposiciones/overlays y grabación.
  • Fullscreen Optimizations (FSO) y Enhanced FSE (EFSE): capas que intentan combinar las ventajas de ventana sin bordes con latencia cercana a FSE (usando flip model, independent flip, etc.). Mejoran Alt+Tab y compatibilidad con HDR/overlays.
  • GameDVR / Barra de juegos: captura en segundo plano, “record that”, métricas, overlays. Puede impactar FPS/latencia si consume GPU/CPU o fuerza rutas de composición incompatibles con FSE puro.

Dónde están las claves y buenas prácticas

Las claves relacionadas con GameDVR/FSO que nos interesan suelen vivir en:

HKEYCURRENTUSER\System\GameConfigStore

En equipos y compilaciones distintas pueden existir claves complementarias en HKEYCURRENTUSER\SOFTWARE\Microsoft\GameBar y políticas bajo HKEYLOCALMACHINE. Trabajaremos sobre GameConfigStore porque es el foco del hilo y afecta por usuario.

Advertencia: editar el Registro conlleva riesgos. Crea un punto de restauración, exporta la rama GameConfigStore y realiza cambios de uno en uno. Cierra sesión (o reinicia) tras cambios para observar efectos de forma limpia.

Mapa de claves GameDVR/FSO y su efecto

La siguiente tabla resume lo tratado en el hilo, cómo entiende la comunidad su impacto y los valores típicos. Algunas claves no están documentadas oficialmente; por eso incluimos notas y recomendamos validar en tu equipo.

Clave¿Qué controla?Valores / efectoNotas
GameDVR_DSEBehaviorUso de recursos de GameDVR en escritorio/ventana optimizada.0 (predeterminado): uso normal de recursos.
2: restringe recursos (posible mejora de rendimiento).
Útil si notas caídas mientras hay captura en segundo plano en modo ventana/fenestrado.
GameDVR_DXGIHonorFSEWindowsCompatibleSi GameDVR respeta FSE “real”.0 (predeterminado): puede grabar aún con FSE (más intrusivo).
1: respeta FSE y no graba cuando hay FSE puro.
Para priorizar latencia/FSE real, conviene poner 1.
GameDVR_EFSEFeatureFlagsBitmask de EFSE que activa/ajusta funciones DXGI al usar EFSE.Conjunto de bits: ver tabla específica más abajo.
Si no hay problema concreto que resolver, dejar por defecto.
Un mal ajuste puede romper HDR/overlays o introducir parpadeos.
GameDVR_EnabledCaptura en segundo plano.Según el hilo: 0 = habilitado (predeterminado), 1 = deshabilitado.Hay guías que invierten estos valores. Verifica en tu equipo (más abajo te explicamos cómo comprobarlo).
GameDVR_FSEBehaviorUso de recursos de GameDVR cuando el juego está en FSE.0: uso normal.
2: restringe recursos.
Clave para mantener FPS y latencia en FSE/EFSE.
GameDVR_FSEBehaviorModeÁmbito de aplicación de FSEBehavior.0: sólo juegos “de alto impacto”.
1: todos los juegos en FSE.
Para una política consistente, usa 1.
GameDVR_HonorUserFSEBehaviorModeForzar que Windows cumpla el modo elegido en FSEBehaviorMode.0: predeterminado.
1: fuerza el cumplimiento.
Útil cuando el sistema “se salta” tu preferencia.

Detalles de GameDVR_EFSEFeatureFlags (bitmask)

Esta clave es una máscara de bits. Según el hilo y recopilaciones de la comunidad, los bits más citados son:

BitValor decimalFunción sugeridaCuándo tocarlo
01Habilitar EFSE (Enhanced Fullscreen Optimizations).Solo si deseas forzar EFSE en títulos con comportamiento inconsistente.
12DXGI flip model (presentación moderna).Puede mejorar latencia/frametimes en EFSE; ojo con overlays antiguos.
24DXGI swap-chain scaling.Útil si escalas resolución; puede interactuar con DLSS/FSR/RSR.
38DXGI color space.Relación con SDR/HDR; cambia si ves colores lavados en EFSE.
416Metadatos HDR.Actívalo si el HDR falla al usar EFSE.
532Overlay/compuesto de superposiciones.Si overlays/HUDs no aparecen en EFSE, prueba este bit.

Ejemplos:

  • Solo EFSE: valor 1.
  • EFSE + flip model: 1 + 2 = 3.
  • “Todo lo citado”: 1 + 2 + 4 + 8 + 16 + 32 = 63.

Consejo: si EFSE no te causa problemas, no toques esta clave. Si debes experimentar, modifica un bit por vez y prueba.

Perfiles de ajuste según tu objetivo

A. Máximo rendimiento (FPS/latencia por encima de todo)

  • GameDVR_Enabled = 1 (según el hilo) para desactivar la captura en segundo plano.
  • GameDVR_FSEBehavior = 2 para limitar recursos de DVR en FSE.
  • GameDVR_FSEBehaviorMode = 1 para aplicarlo a todos los juegos en FSE.
  • GameDVR_HonorUserFSEBehaviorMode = 1 para forzar el cumplimiento.
  • GameDVR_DXGIHonorFSEWindowsCompatible = 1 para no grabar en FSE real.
  • EFSEFeatureFlags: dejar por defecto (típicamente sin forzar bits) salvo que tengas un problema específico.

B. Compatibilidad con grabación (aceptas un coste de rendimiento)

  • GameDVR_Enabled = 0 (según el hilo) para mantener la captura activa.
  • GameDVRFSEBehavior = 0 y GameDVRFSEBehaviorMode = 0 para dejar la política estándar.
  • GameDVR_DXGIHonorFSEWindowsCompatible = 0 para permitir grabación incluso en FSE.
  • EFSE: no fuerces bits a menos que busques resolver un problema concreto (p. ej., HDR o overlays).

C. Experimental EFSE (sólo si sabes lo que haces)

  • Activa el bit 0 (1) y añade de forma incremental bits 1–5 según la funcionalidad a probar (flip model, scaling, color, HDR, overlay).
  • Tras cada cambio: reinicia sesión, reproduce el escenario, mide frametimes y estabilidad.

Cómo cambiar los valores con seguridad

Método 1: .reg listos para aplicar

Crea un archivo de texto con extensión .reg y pega uno de estos bloques. Doble clic para aplicar, luego cierra sesión o reinicia.

Perfil “Máximo rendimiento”

Windows Registry Editor Version 5.00

\[HKEY\CURRENT\USER\System\GameConfigStore]
"GameDVR\_Enabled"=dword:00000001
"GameDVR\_FSEBehavior"=dword:00000002
"GameDVR\_FSEBehaviorMode"=dword:00000001
"GameDVR\_HonorUserFSEBehaviorMode"=dword:00000001
"GameDVR\_DSEBehavior"=dword:00000002
"GameDVR\_DXGIHonorFSEWindowsCompatible"=dword:00000001
; EFSEFeatureFlags sin cambios deliberados 

Perfil “Compatibilidad con grabación”

Windows Registry Editor Version 5.00

\[HKEY\CURRENT\USER\System\GameConfigStore]
"GameDVR\_Enabled"=dword:00000000
"GameDVR\_FSEBehavior"=dword:00000000
"GameDVR\_FSEBehaviorMode"=dword:00000000
"GameDVR\_HonorUserFSEBehaviorMode"=dword:00000000
"GameDVR\_DSEBehavior"=dword:00000000
"GameDVR\_DXGIHonorFSEWindowsCompatible"=dword:00000000 

Activar EFSE con flip model y HDR (ejemplo)

Esto suma bits 0,1 y 4 → 1 + 2 + 16 = 19:

Windows Registry Editor Version 5.00

\[HKEY\CURRENT\USER\System\GameConfigStore]
"GameDVR\_EFSEFeatureFlags"=dword:00000013 

Restaurar valores por defecto (aproximados)

Si quieres volver “a fábrica” según lo que suele venir de serie en muchas instalaciones:

Windows Registry Editor Version 5.00

\[HKEY\CURRENT\USER\System\GameConfigStore]
"GameDVR\_Enabled"=dword:00000000
"GameDVR\_FSEBehavior"=dword:00000000
"GameDVR\_FSEBehaviorMode"=dword:00000000
"GameDVR\_HonorUserFSEBehaviorMode"=dword:00000000
"GameDVR\_DSEBehavior"=dword:00000000
"GameDVR\_DXGIHonorFSEWindowsCompatible"=dword:00000000
; "GameDVR\_EFSEFeatureFlags"=dword:00000000  ; normalmente sin forzado </code></pre>

<div>
  <blockquote>
    <p><strong>Tip</strong>: si alguna entrada no existe, Windows suele crearla al activar/desactivar opciones relacionadas desde la app “Configuración &gt; Juegos &gt; Capturas”.</p>
  </blockquote>
</div>

<h3>Método 2: PowerShell (ver, crear, modificar)</h3>
<p>Abrir PowerShell como administrador (aunque para HKCU suele bastar usuario normal):</p>

<h4>Listar todos los valores GameDVR</h4>
<pre><code>Get-ItemProperty -Path 'HKCU:\System\GameConfigStore' |
  Select-Object GameDVR
</code></pre>

<h4>Comprobar el estado de <code>GameDVR_Enabled</code></h4>
<pre><code>(Get-ItemProperty -Path 'HKCU:\System\GameConfigStore').GameDVR_Enabled
</code></pre>

<h4>Desactivar captura en segundo plano (según el hilo: poner 1)</h4>
<pre><code>$path = 'HKCU:\System\GameConfigStore'
if (-not (Get-ItemProperty -Path $path -Name 'GameDVR_Enabled' -ErrorAction SilentlyContinue)) {
  New-ItemProperty -Path $path -Name 'GameDVR_Enabled' -PropertyType DWord -Value 1 | Out-Null
} else {
  Set-ItemProperty -Path $path -Name 'GameDVR_Enabled' -Value 1
}
</code></pre>

<h4>Aplicar política “restringir DVR en FSE para todos”</h4>
<pre><code>$path = 'HKCU:\System\GameConfigStore'
$props = @{
  'GameDVR_FSEBehavior'              = 2
  'GameDVR_FSEBehaviorMode'          = 1
  'GameDVR_HonorUserFSEBehaviorMode' = 1
  'GameDVR_DXGIHonorFSEWindowsCompatible' = 1
}
foreach ($name in $props.Keys) {
  if (-not (Get-ItemProperty -Path $path -Name $name -ErrorAction SilentlyContinue)) {
    New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $props[$name] | Out-Null
  } else {
    Set-ItemProperty -Path $path -Name $name -Value $props[$name]
  }
}
</code></pre>

<h4>Configurar EFSEFeatureFlags con suma de bits</h4>
<pre><code># Ejemplo: EFSE (1) + Flip Model (2) + HDR (16) = 19
$val = 19
$path = 'HKCU:\System\GameConfigStore'
if (-not (Get-ItemProperty -Path $path -Name 'GameDVR_EFSEFeatureFlags' -ErrorAction SilentlyContinue)) {
  New-ItemProperty -Path $path -Name 'GameDVR_EFSEFeatureFlags' -PropertyType DWord -Value $val | Out-Null
} else {
  Set-ItemProperty -Path $path -Name 'GameDVR_EFSEFeatureFlags' -Value $val
}
</code></pre>

<h2>Verificación y pruebas en 5–10 minutos</h2>
<ol>
  <li><strong>Respalda</strong> la rama <code>GameConfigStore</code> (clic derecho &rarr; Exportar).</li>
  <li><strong>Aplica</strong> un perfil (reg o PowerShell).</li>
  <li><strong>Cierra sesión o reinicia.</strong></li>
  <li><strong>Configura un escenario reproducible</strong> en un juego (misión/circuito/benchmark interno) con contador de FPS estable.</li>
  <li><strong>Mide</strong>:
    <ul>
      <li>FPS medio, 1% low y 0.1% low (si tu overlay lo ofrece).</li>
      <li>Latencia (si dispones de herramienta), estabilidad de frametimes y comportamiento de Alt+Tab.</li>
    </ul>
  </li>
  <li><strong>Anota</strong> resultados con y sin grabación activa.</li>
</ol>
<p>En el hilo original se reportó una <strong>mejora notable</strong> de rendimiento tras “algunos ajustes” combinando la desactivación/restricción de GameDVR con el respeto al FSE real.</p>

<h2>Alternativas sin tocar el Registro</h2>
<ul>
  <li><strong>Configuración &gt; Juegos &gt; Capturas</strong>: desactiva “Grabar en segundo plano” si el objetivo es FPS/latencia.</li>
  <li><strong>Por juego</strong>: botón derecho en el ejecutable o acceso directo &rarr; <em>Propiedades &gt; Compatibilidad &gt; Deshabilitar optimizaciones de pantalla completa</em>. Esto fuerza al sistema a no aplicar FSO/EFSE a ese título (útil en casos problemáticos).</li>
  <li><strong>Game Mode</strong>: suele ayudar a priorizar CPU/GPU para el juego; no interfiere con estas claves pero conviene probar con y sin.</li>
</ul>

<h2>Checklist de diagnóstico (síntomas → ajustes sugeridos)</h2>
<table>
  <thead>
    <tr>
      <th>Síntoma</th>
      <th>Ajuste sugerido</th>
      <th>Motivo</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Bajada de FPS al grabar</td>
      <td><code>GameDVR_Enabled = 1</code> o <code>FSEBehavior = 2</code></td>
      <td>Reducir o eliminar la carga de la captura en segundo plano.</td>
    </tr>
    <tr>
      <td>Microstutter al usar FSE</td>
      <td><code>FSEBehavior = 2</code> + <code>FSEBehaviorMode = 1</code></td>
      <td>Limita el impacto de DVR cuando se usa FSE/EFSE.</td>
    </tr>
    <tr>
      <td>Overlay/HUD no aparece en EFSE</td>
      <td>Ajustar <code>EFSEFeatureFlags</code> añadiendo el bit 5 (overlay)</td>
      <td>Algunas superposiciones requieren composición específica.</td>
    </tr>
    <tr>
      <td>Colores lavados / HDR errático</td>
      <td>Probar bits 3 (color space) y 4 (HDR) en <code>EFSEFeatureFlags</code></td>
      <td>Corrige rutas de color/metadata en EFSE.</td>
    </tr>
    <tr>
      <td>Juego pierde FSE real al grabar</td>
      <td><code>DXGIHonorFSEWindowsCompatible = 1</code></td>
      <td>Evita que la grabación rompa el modo exclusivo.</td>
    </tr>
  </tbody>
</table>

<h2>Cómo verificar si <code>GameDVR_Enabled</code> está “al revés” en tu sistema</h2>
<ol>
  <li>Marca el valor actual de <code>GameDVR_Enabled</code>.</li>
  <li>Abre <strong>Configuración &gt; Juegos &gt; Capturas</strong> y desactiva “Grabar en segundo plano”.</li>
  <li>Refresca el valor en PowerShell:
    <pre><code>(Get-ItemProperty -Path 'HKCU:\System\GameConfigStore').GameDVR_Enabled

Si tras desactivar la captura ves 1, entonces en tu build 1 = desactivado. Si ves 0, en tu build 0 = desactivado.

Trabaja conforme a lo que observes en tu instalación.

Notas importantes y límites

  • La presencia y efecto de estas claves puede variar entre Windows 10 y 11, compilaciones diferentes y controladores GPU.
  • EFSEFeatureFlags no está documentada públicamente al detalle. Usa cambios incrementales y documenta tus pruebas.
  • Si usas tecnología de escalado (DLSS/FSR/RSR) u overlays de terceros, prueba con y sin EFSE forzado.
  • Evita cambiar varias cosas a la vez. Un único cambio, una medición.

Resumen de recomendaciones

  • Quieres el menor input lag y estabilidad máxima: desactiva GameDVR (o restríngelo), respeta FSE real y evita forzar EFSE.
  • Quieres grabar sin complicarte: conserva valores por defecto y no fuerces FSE/EFSE; acepta una posible caída ligera de rendimiento.
  • Tienes un problema concreto con EFSE (HDR, overlays): ajusta sólo los bits necesarios de EFSEFeatureFlags y valida cada cambio.

Plantilla de registro para pruebas escalonadas

Una serie de pasos que puedes aplicar en orden. Tras cada uno, prueba tu juego:

  1. Paso 1: Restringe GameDVR en FSE: Windows Registry Editor Version 5.00 \[HKEY\CURRENT\USER\System\GameConfigStore] "GameDVR\_FSEBehavior"=dword:00000002 "GameDVR\_FSEBehaviorMode"=dword:00000001 "GameDVR\_HonorUserFSEBehaviorMode"=dword:00000001
  2. Paso 2: Respeta FSE real al grabar: Windows Registry Editor Version 5.00 \[HKEY\CURRENT\USER\System\GameConfigStore] "GameDVR\_DXGIHonorFSEWindowsCompatible"=dword:00000001
  3. Paso 3: Desactiva captura en segundo plano si aún hay stutter (según tu build): Windows Registry Editor Version 5.00 \[HKEY\CURRENT\USER\System\GameConfigStore] "GameDVR\_Enabled"=dword:00000001
  4. Paso 4 (opcional, avanzado): Ajusta EFSE para HDR/overlays concretos sumando bits en GameDVR_EFSEFeatureFlags.

Preguntas frecuentes

¿Por qué algunos valores parecen invertidos?
Distintas compilaciones de Windows/actualizaciones de la Game Bar han manejado banderas de forma distinta. La regla práctica es observar qué hace tu equipo al activar/desactivar desde la UI de Capturas y reflejarlo en el Registro.

¿Debo deshabilitar siempre FSO/EFSE por juego desde “Compatibilidad”?
No. Es una herramienta útil para títulos problemáticos, pero EFSE suele mejorar Alt+Tab y estabilidad. Pruébalo caso por caso.

¿Puedo romper el HDR tocando EFSEFeatureFlags?
Sí. Por eso recomendamos dejar ese valor sin cambios salvo que busques resolver un síntoma concreto (colores lavados, HDR que no se activa, etc.).

¿Qué pasa con el Modo de juego y HAGS?
Son capas distintas. El Modo de juego prioriza recursos para el juego. HAGS es una característica del scheduler de GPU. Sus efectos son independientes de estas claves, aunque pueden sumarse o restarse en el resultado final. Prueba con y sin.

Cierre

Conocer qué hace cada clave y aplicar una metodología de pruebas te permite exprimir FPS/latencia o preservar la grabación según tu prioridad. Empieza por desactivar/restringir GameDVR, fuerza el respeto del FSE real y, sólo si lo necesitas, ajusta EFSEFeatureFlags de forma incremental. Documenta tus cambios y conserva un .reg de reversión.

Índice