Hardware-Accelerated GPU Scheduling (HAGS) is a feature introduced in Windows 10 in May 2020 and has continued into Windows 11. It's often touted as a feature that you should turn on or turn off depending on who you're speaking with, and you may find that some games have problems when it's enabled. However, it's a net-positive feature for most people, even if there are some teething issues at present.

What was WDDM, the precursor to HAGS?

In and around 2006, the Windows Display Driver Model 1.0 (WDDM) was introduced into Windows, and it also brought GPU scheduling along with it. Before WDDM, GPU scheduling was fairly basic, with applications submitting tasks to a global queue that operated on a strict “first to submit, first to execute” basis. This approach worked when most GPU usage revolved around full-screen games running one at a time, but quickly became inadequate as applications became more complex.

WDDM introduced the GPU scheduler, and it was able to prioritize tasks effectively. Over the years, this scheduler evolved and became more complex, incorporating new features and optimizations with each version of it. However, one core aspect remained unchanged: the scheduling process relied on a high-priority thread running on the CPU. This thread was responsible for coordinating and prioritizing tasks from multiple applications and submitting them to the GPU for execution.

This CPU-centric scheduling model, while functional, had some pretty inherent limitations. Each task submission involved overhead as the CPU coordinated with the GPU. Applications typically masked this overhead through buffering, preparing GPU tasks in advance. As a generalized example, while the GPU processed tasks for the current frame (Frame N), the CPU would prepare tasks for the next frame (Frame N+1). While this approach minimized scheduling costs and maintained parallelism between the CPU and GPU, it introduced a trade-off of increased latency. User inputs captured during the CPU’s preparation of Frame N+1 would only appear on-screen in Frame N+2, leading to delayed feedback and potential for input delay in extreme circumstances.

This balancing act highlights the limitations of traditional scheduling and makes features like Hardware-Accelerated GPU Scheduling necessary. HAGS offloads many of these tasks directly to the GPU, bypassing the CPU’s bottleneck and enabling more efficient processing.

What is Hardware-Accelerated GPU Scheduling, or HAGS?

As we've already mentioned, HAGS offloads most of the scheduling responsibilities to a dedicated scheduling processor built directly into the GPU. This shift significantly reduces the overhead on the CPU and enables more efficient context switching and task management. Windows still retains control over application prioritization so that critical tasks get the resources they need, but repetitive scheduling operations are delegated to the GPU. This, in theory, means that HAGS improves the overall efficiency of the graphics subsystem in Windows.

HAGS was initially introduced as an opt-in feature in Windows. Users with supported hardware can enable it via the Graphics Settings menu in Windows. and Microsoft has collected data via telemetry over time to ensure that it's a reliable feature that doesn't cause problems for end users. It's supported on modern GPUs that have the required hardware capabilities, though notably Intel Arc GPUs still don't support it, instead opting for WDDM 2.7.

HAGS is switched off by default on Windows, but you can turn it on by going to your graphics settings, changing the switch to On, and then rebooting your PC. However, there are some situations where you may not want to enable it. Given that it's been testing for quite a while and still isn't enabled by default, I think it's safe to say that there are still some teething issues.

👁 NVIDIA GeForce RTX 4090 AMD Radeon RX 7900 XTX
5 reasons DLSS and FSR are game-changers for budget gaming PCs

Budget gaming PCs deal with aa ton of constraints. DLSS and FSR help ease the load

When should you keep HAGS off?

It's situational

As we've already mentioned, there are some applications and games that will request you to switch HAGS off. One notable example is OBS, where the developers recommend switching it off to avoid having performance problems. You can turn it on and try it out anyway, but if you experience issues, you should switch it off.

As well, the developers of Sunshine recommend turning it off in some situations, too, or at least changing the startup parameters of Sunshine when HAGS is enabled. This is specifically when using the NVENC encoder, which is likely where problems arise with OBS too. As the developers note:

Currently NVIDIA drivers may freeze in encoder when HAGS is enabled, realtime priority is used and VRAM utilization is close to maximum. Disabling this option lowers the priority to high, sidestepping the freeze at the cost of reduced capture performance when the GPU is heavily loaded.

If this is the case, this may also explain why some people may run into problems when HAGS is switched on in normal usage. NVENC is used for Nvidia's ShadowPlay, which can be used to save clips of the last couple of minutes of gameplay. It's still an experimental feature after all, so it would make sense that it still has limitations. Sunshine's issues with NVENC have been mostly fixed since then as this workaround is implemented by default.

Finally, some older (and some newer) games may experience problems. Valorant is one title that users have suggested turning HAGS off for if you experience crashing or stuttering, but HAGS is a requirement for features like frame generation in DLSS 3. Your best bet is to simply try HAGS and see if it helps you or not. If you don't experience any negative drawbacks, consider continuing using it, but you can safely keep this feature off as well if you don't feel the need to use it.