The Asus gaming laptop ACPI firmware bug

2025-09-173:54486217github.com

A deep dive into the ACPI.sys DPC latency problems on Asus ROG laptops - Zephkek/Asus-ROG-Aml-Deep-Dive

You own a high-end ASUS ROG laptop perhaps a Strix, Scar, or Zephyrus. It's specifications are impressive: an RTX 30/40 series GPU, a top-tier Intel processor, and plenty of RAM. Yet, it stutters during basic tasks like watching a YouTube video, audio crackles and pops on Discord calls, the mouse cursor freezes for a split second, just long enough to be infuriating.

You've likely tried all the conventional fixes:

  • Updating every driver imaginable, multiple times.
  • Performing a "clean" reinstallation of Windows.
  • Disabling every conceivable power-saving option.
  • Manually tweaking processor interrupt affinities.
  • Following convoluted multi-step guides from Reddit threads.
  • Even installing Linux, only to find the problem persists.

If none of that worked, it's because the issue isn't with the operating system or a driver. The problem is far deeper, embedded in the machine's firmware, the BIOS.

The first tool in any performance investigator's toolkit for these symptoms is LatencyMon. It acts as a canary in the coal mine for system-wide latency issues. On an affected ASUS Zephyrus M16, the results are immediate and damning:

CONCLUSION
Your system appears to be having trouble handling real-time audio and other tasks. 
You are likely to experience buffer underruns appearing as drop outs, clicks or pops.

HIGHEST MEASURED INTERRUPT TO PROCESS LATENCY
Highest measured interrupt to process latency (μs):   65,816.60
Average measured interrupt to process latency (μs):   23.29

HIGHEST REPORTED ISR ROUTINE EXECUTION TIME
Highest ISR routine execution time (μs):              536.80
Driver with highest ISR routine execution time:       ACPI.sys

HIGHEST REPORTED DPC ROUTINE EXECUTION TIME  
Highest DPC routine execution time (μs):              5,998.83
Driver with highest DPC routine execution time:       ACPI.sys

The data clearly implicates ACPI.sys. However, the per-CPU data reveals a more specific pattern:

CPU 0 Interrupt cycle time (s):                       208.470124
CPU 0 ISR highest execution time (μs):                536.804674
CPU 0 DPC highest execution time (μs):                5,998.834725
CPU 0 DPC total execution time (s):                   90.558238

CPU 0 is taking the brunt of the impact, spending over 90 seconds processing interrupts while other cores remain largely unaffected. This isn't a failure of load balancing; it's a process locked to a single core.

A similar test on a Scar 15 from 2022 shows the exact same culprit: high DPC latency originating from ACPI.sys.

latencymon

It's easy to blame a Windows driver, but ACPI.sys is not a typical driver. It primarily functions as an interpreter for ACPI Machine Language (AML), the code provided by the laptop's firmware (BIOS). If ACPI.sys is slow, it's because the firmware is feeding it inefficient or flawed AML code to execute. These slowdowns are often triggered by General Purpose Events (GPEs) and traffic from the Embedded Controller (EC). To find the true source, we must dig deeper.

To understand what ACPI.sys is doing during these latency spikes, we can use Event Tracing for Windows (ETW) to capture detailed logs from the ACPI providers.

# Find the relevant ACPI ETW providers
logman query providers | findstr /i acpi
# This returns two key providers:
# Microsoft-Windows-Kernel-Acpi {C514638F-7723-485B-BCFC-96565D735D4A}
# Microsoft-ACPI-Provider {DAB01D4D-2D48-477D-B1C3-DAAD0CE6F06B} # Start a comprehensive trace session
logman start ACPITrace -p {DAB01D4D-2D48-477D-B1C3-DAAD0CE6F06B} 0xFFFFFFFF 5 -o C:\Temp\acpi.etl -ets
logman update ACPITrace -p {C514638F-7723-485B-BCFC-96565D735D4A} 0xFFFFFFFF 5 -ets # Then once we're done we can stop the trace and check the etl file and save the data in csv format aswell.
logman stop ACPITrace -ets
tracerpt C:\Temp\acpi_providers.etl -o C:\Temp\acpi_events.csv -of CSV

Analyzing the resulting trace file in the Windows Performance Analyzer reveals a crucial insight. The spikes aren't random; they are periodic, occurring like clockwork every 30 to 60 seconds.

61c7abb1-d7aa-4b69-9a88-22cca7352f00

Random interruptions often suggest hardware faults or thermal throttling. A perfectly repeating pattern points to a systemic issue, a timer or a scheduled event baked into the system's logic.

The raw event data confirms this pattern:

Clock-Time (100ns),        Event,                      Kernel(ms), CPU
134024027290917802,       _GPE._L02 started,          13.613820,  0
134024027290927629,       _SB...BAT0._STA started,    0.000000,   4
134024027290932512,       _GPE._L02 finished,         -,          6

The first event, _GPE._L02, is an interrupt handler that takes 13.6 milliseconds to execute. For a high-priority interrupt, this is an eternity and is catastrophic for real-time system performance.

Deeper in the trace, another bizarre behavior emerges; the system repeatedly attempts to power the discrete GPU on and off, even when it's supposed to be permanently active.

Clock-Time,                Event,                    Duration
134024027315051227,       _SB.PC00.GFX0._PS0 start, 278μs     # GPU Power On
134024027315155404,       _SB.PC00.GFX0._DOS start, 894μs     # Display Output Switch
134024027330733719,       _SB.PC00.GFX0._PS3 start, 1364μs    # GPU Power Off
[~15 seconds later]
134024027607550064,       _SB.PC00.GFX0._PS0 start, 439μs     # Power On Again!
134024027607657368,       _SB.PC00.GFX0._DOS start, 1079μs    # Display Output Switch
134024027623134006,       _SB.PC00.GFX0._PS3 start, 394μs     # Power Off Again!
...

This power cycling is nonsensical because the laptop is configured for a scenario where it is impossible: The system is in Ultimate Mode (via a MUX switch) with an external display connected.

In this mode:

  • The discrete NVIDIA GPU (dGPU) is the only active graphics processor.
  • The integrated Intel GPU (iGPU) is completely powered down and bypassed.
  • The dGPU is wired directly to the internal and external displays.
  • There is no mechanism for switching between GPUs.

Yet, the firmware is relentlessly trying to power cycle the dGPU every 15-30 seconds. The dGPU in mux mode isn't just "preferred" - it's the ONLY path to the display. There's no fallback, and no alternative. When the firmware sends _PS3 (power off), it's attempting something architecturally impossible.

Most of the time, hardware sanity checks refuse these nonsensical commands, but even failed attempts introduce latency spikes causing audio dropouts, input lag, and accumulating performance degradation. Games freeze mid-session, videos buffer indefinitely, system responsiveness deteriorates until restart.

Sometimes, under specific thermal conditions or race conditions, the power-down actually succeeds. When the firmware manages to power down the GPU that's driving the display, the sequence is predictable and catastrophic:

  1. Firmware executes _PS3 - GPU power off command
  2. Hardware complies - safety checks fail or timing aligns
  3. Display signal cuts - monitors go black
  4. User input triggers wake - mouse/keyboard activity
  5. Windows calls PowerOnMonitor() - attempt display recovery
  6. NVIDIA driver executes _PS0 - GPU power on command
  7. GPU enters impossible state - firmware insists OFF, Windows needs ON
  8. Driver thread blocks indefinitely - waiting for GPU response
  9. 30-second watchdog expires - Windows gives up
  10. System crashes with BSOD
5: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

WIN32K_POWER_WATCHDOG_TIMEOUT (19c)
Win32k did not turn the monitor on in a timely manner.
Arguments:
Arg1: 0000000000000050, Calling monitor driver to power on.
Arg2: ffff8685b1463080, Pointer to the power request worker thread.
Arg3: 0000000000000000
Arg4: 0000000000000000
...
STACK_TEXT:  
fffff685`3a767130 fffff800`94767be0     : 00000000`00000047 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSwapContext+0x76
fffff685`3a767270 fffff800`94726051     : ffff8685`b1463080 00000027`00008b94 fffff685`3a767458 fffff800`00000000 : nt!KiSwapThread+0x6a0
fffff685`3a767340 fffff800`94724ed3     : fffff685`00000000 00000000`00000043 00000000`00000002 0000008a`fbf50968 : nt!KiCommitThreadWait+0x271
fffff685`3a7673e0 fffff800`9471baf2     : fffff685`3a7675d0 02000000`0000001b 00000000`00000000 fffff800`94724500 : nt!KeWaitForSingleObject+0x773
fffff685`3a7674d0 fffff800`9471b7d5     : ffff8685`9cbec810 fffff685`3a7675b8 00000000`00010224 fffff800`00000003 : nt!ExpWaitForFastResource+0x92
fffff685`3a767580 fffff800`9471b49d     : 00000000`00000000 ffff8685`9cbec850 ffff8685`b1463080 00000000`00000000 : nt!ExpAcquireFastResourceExclusiveSlow+0x1e5
fffff685`3a767630 fffff800`28faca9b     : fffff800`262ee9c8 00000000`00000003 ffff8685`9cbec810 02000000`00000065 : nt!ExAcquireFastResourceExclusive+0x1bd
fffff685`3a767690 fffff800`28facbe5     : ffff8685`b31de000 00000000`00000000 ffffd31d`9a05244f 00000000`00000000 : win32kbase!<lambda_63b61c2369133a205197eda5bd671ee7>::<lambda_invoker_cdecl>+0x2b
fffff685`3a7676c0 fffff800`28e5f864     : ffffad0c`94d10878 fffff685`3a767769 ffffad0c`94d10830 ffff8685`b31de000 : win32kbase!UserCritInternal::`anonymous namespace'::EnterCritInternalEx+0x4d
fffff685`3a7676f0 fffff800`28e5f4ef     : 00000000`00000000 00000000`00000000 fffff800`262ee9c8 00000000`00000000 : win32kbase!DrvSetWddmDeviceMonitorPowerState+0x354
fffff685`3a7677d0 fffff800`28e2abab     : ffff8685`b31de000 00000000`00000000 ffff8685`b31de000 00000000`00000000 : win32kbase!DrvSetMonitorPowerState+0x2f
fffff685`3a767800 fffff800`28ef22fa     : 00000000`00000000 fffff685`3a7678d9 00000000`00000001 00000000`00000001 : win32kbase!PowerOnMonitor+0x19b
fffff685`3a767870 fffff800`28ef13dd     : ffff8685`94a40700 ffff8685`a2eb31d0 00000000`00000001 00000000`00000020 : win32kbase!xxxUserPowerEventCalloutWorker+0xaaa
fffff685`3a767940 fffff800`4bab21c2     : ffff8685`b1463080 fffff685`3a767aa0 00000000`00000000 00000000`00000020 : win32kbase!xxxUserPowerCalloutWorker+0x13d
fffff685`3a7679c0 fffff800`26217f3a     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : win32kfull!NtUserUserPowerCalloutWorker+0x22
fffff685`3a7679f0 fffff800`94ab8d55     : 00000000`000005bc 00000000`00000104 ffff8685`b1463080 00000000`00000000 : win32k!NtUserUserPowerCalloutWorker+0x2e
fffff685`3a767a20 00007ff8`ee71ca24     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x25
000000cc`d11ffbc8 00000000`00000000     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ff8`ee71ca24

...

The crash dump confirms the thread is stuck in win32kbase!DrvSetWddmDeviceMonitorPowerState, waiting for the NVIDIA driver to respond. It can't because it's caught between a confused power state, windows wanting to turn on the GPU while the firmware is arming the GPU cut off.

GPEs are the firmware's mechanism for signaling hardware events to the operating system. They are essentially hardware interrupts that trigger the execution of ACPI code. The trace data points squarely at _GPE._L02 as the source of our latency.

A closer look at the timing reveals a consistent and problematic pattern:

_GPE._L02 Event Analysis from ROG Strix Trace:

Event 1 @ Clock 134024027290917802
  Duration: 13,613,820 ns (13.61ms)
  Triggered: Battery and AC adapter status checks

Event 2 @ Clock 134024027654496591  
  Duration: 13,647,255 ns (13.65ms)
  Triggered: Battery and AC adapter status checks
  
Event 3 @ Clock 134024028048493318
  Duration: 13,684,515 ns (13.68ms)  
  Triggered: Battery and AC adapter status checks

Interval between events: ~36-39 seconds
Consistency: The duration is remarkably stable and the interval is periodic.

Every single time the lengthy _GPE._L02 event fires, it triggers the exact same sequence of ACPI method calls.

64921999-7614-4706-a5ac-54c39c38fd0b

The pattern is undeniable:

  1. A hardware interrupt fires _GPE._L02.
  2. The handler executes methods to check battery status.
  3. Shortly thereafter, the firmware attempts to change the GPU's power state.
  4. The system runs normally for about 30-60 seconds.
  5. The cycle repeats.

To analyze the code responsible for this behavior, we must extract and decompile the ACPI tables provided by the BIOS to the operating system.

# Extract all ACPI tables into binary .dat files
acpidump -b # Output includes:
# DSDT.dat - The main Differentiated System Description Table
# SSDT1.dat ... SSDT17.dat - Secondary System Description Tables # Decompile the main table into human-readable ACPI Source Language (.dsl)
iasl -d DSDT.dsl

This decompiled ASL provides a direct view into the firmware's executable logic. It is a precise representation of the exact instructions that the ACPI.sys driver is fed by the firmware and executes at the highest privilege level within the Windows kernel. Any logical flaws found in this code are the direct cause of the system's behavior.

Searching the decompiled DSDT.dsl file, we find the definition for our problematic GPE handler:

Scope (_GPE)
{ Method (_L02, 0, NotSerialized) // _Lxx: Level-Triggered GPE { \_SB.PC00.LPCB.ECLV ()
    }
}

This code is simple: when the _L02 interrupt occurs, it calls a single method, ECLV. The "L" prefix in _L02 signifies that this is a level-triggered interrupt, meaning it will continue to fire as long as the underlying hardware condition is active. This is a critical detail.

Following the call to ECLV(), we uncover a deeply flawed implementation that is the direct cause of the system-wide stuttering.

Method (ECLV, 0, NotSerialized) // Starting at line 099244
{ // Main loop - continues while events exist OR sleep events are pending // AND we haven't exceeded our time budget (TI3S < 0x78) While (((CKEV() != Zero) || (SLEC != Zero)) && (TI3S < 0x78)) { Local1 = One While (Local1 != Zero) { Local1 = GEVT() // Get next event from queue LEVN (Local1) // Process the event TIMC += 0x19 // Increment time counter by 25 // This is where it gets really bad If ((SLEC != Zero) && (Local1 == Zero)) { // No events but sleep events pending If (TIMC == 0x19) { Sleep (0x64) // Sleep for 100 milliseconds!!! TIMC = 0x64 // Set time counter to 100 TI3S += 0x04 // Increment major counter by 4 } Else { Sleep (0x19) // Sleep for 25 milliseconds!!! TI3S++ // Increment major counter by 1 } } } } // Here's where it gets even worse If (TI3S >= 0x78) // If we hit our time budget (120) { TI3S = Zero If (EEV0 == Zero) { EEV0 = 0xFF // Force another event to be pending!
        }
    }
}

This short block of code violates several fundamental principles of firmware and kernel programming.

Wtf 1: Sleeping in an Interrupt Context

Sleep (0x64) // 100ms sleep
Sleep (0x19) // 25ms sleep

An interrupt handler runs at a very high priority to service hardware requests quickly. The Sleep() function completely halts the execution of the CPU core it is running on (CPU 0 in this case). While CPU 0 is sleeping, it cannot:

  • Process any other hardware interrupts.
  • Allow the kernel to schedule other threads.
  • Update system timers.

Wtf 2: Time-Sliced Interrupt Processing The entire loop is designed to run for an extended period, processing events in batches. It's effectively a poorly designed task scheduler running inside an interrupt handler, capable of holding a CPU core hostage for potentially seconds at a time.

Wtf 3: Self-Rearming Interrupt

If (EEV0 == Zero)
{ EEV0 = 0xFF // Forces all EC event bits on
}

This logic ensures that even if the Embedded Controller's event queue is empty, the code will create a new, artificial event. This guarantees that another interrupt will fire shortly after, creating the perfectly periodic pattern of ACPI spikes observed in the traces.

The LEVN() method takes an event and routes it:

Method (LEVN, 1, NotSerialized) { If ((Arg0 != Zero)) { MBF0 = Arg0 P80B = Arg0 Local6 = Match (LEGA, MEQ, Arg0, MTR, Zero, Zero) If ((Local6 != Ones)) { LGPA (Local6)
          }
      }
  }

The LGPA() method is a giant switch statement handling different events:

Method (LGPA, 1, Serialized) // Line 098862
{ Switch (ToInteger (Arg0)) { Case (Zero) // Most common case - power event { DGD2 () // GPU-related function ^EC0._QA0 () // EC query method PWCG () // Power change - this is our battery polling } Case (0x18) // GPU-specific event { If (M6EF == One) { Local0 = 0xD2 } Else { Local0 = 0xD1 } NOD2 (Local0) // Notify GPU driver } Case (0x1E) // Another GPU event { Notify (^^PEG1.PEGP, 0xD5) // Direct GPU notification ROCT = 0x55 // Sets flag for follow-up
        }
       
    }
}

This shows a direct link: a GPE fires, and the dispatch logic calls functions related to battery polling and GPU notifications.

The PWCG() method, called by multiple event types, is responsible for polling the battery and AC adapter status.

Method (PWCG, 0, NotSerialized)
{ Notify (ADP0, Zero) // Tell OS to check the AC adapter ^BAT0._BST () // Execute the Battery Status method Notify (BAT0, 0x80) // Tell OS the battery status has changed ^BAT0._BIF () // Execute the Battery Information method  Notify (BAT0, 0x81) // Tell OS the battery info has changed
}

Which we can see here:

image

Each of these operations requires communication with the Embedded Controller, adding to the workload inside the already-stalled interrupt handler.

The NOD2() method sends notifications to the GPU driver.

Method (NOD2, 1, Serialized)
{ If ((Arg0 != DNOT)) { DNOT = Arg0 Notify (^^PEG1.PEGP, Arg0) } If ((ROCT == 0x55)) { ROCT = Zero Notify (^^PEG1.PEGP, 0xD1) // Hardware-Specific
    }
}

These notifications (0xD1, 0xD2, etc.) are hardware-specific signals that tell the NVIDIA driver to re-evaluate its power state, which is what triggers the futile _PS0/_DOS/_PS3 power-cycling sequence seen in the traces.

Here's where a simple but catastrophic oversight in the firmware's logic causes system-wide failure. High-end ASUS gaming laptops feature a MUX (Multiplexer) switch, a piece of hardware that lets the user choose between two distinct graphics modes:

  1. Optimus Mode: The power-saving default. The integrated Intel GPU (iGPU) is physically connected to the display. The powerful NVIDIA GPU (dGPU) only renders demanding applications when needed, passing finished frames to the iGPU to be drawn on screen.
  2. Ultimate/Mux Mode: The high-performance mode. The MUX switch physically rewires the display connections, bypassing the iGPU entirely and wiring the NVIDIA dGPU directly to the screen. In this mode, the dGPU is not optional; it is the only graphics processor capable of outputting an image.

Any firmware managing this hardware must be aware of which mode the system is in. Sending a command intended for one GPU to the other is futile and, in some cases, dangerous. Deep within the ACPI code, a hardware status flag named HGMD is used to track this state. To understand the flaw, we first need to decipher what HGMD means, and the firmware itself gives us the key.

For screen brightness to work, the command must be sent to the GPU that is physically controlling the display backlight. A command sent to the wrong GPU will simply do nothing. Therefore, the brightness control method (BRTN) must be aware of the MUX switch state to function at all. It is the firmware's own Rosetta Stone.

// Brightness control - CORRECTLY checks for mux mode
Method (BRTN, 1, Serialized) // Line 034003
{ If (((DIDX & 0x0F0F) == 0x0400)) { If (HGMD == 0x03) // 0x03 = Ultimate/Mux mode { // In mux mode, notify discrete GPU Notify (\_SB.PC00.PEG1.PEGP.EDP1, Arg0) } Else { // In Optimus, notify integrated GPU Notify (\_SB.PC00.GFX0.DD1F, Arg0)
        }
    }
}

The logic here is flawless and revealing. The code uses the HGMD flag to make a binary decision. If HGMD is 0x03, it sends the command to the NVIDIA GPU. If not, it sends it to the Intel GPU. The firmware itself, through this correct implementation, provides the undeniable definition: HGMD == 0x03 means the system is in Ultimate/Mux Mode.

This perfect, platform-aware logic is completely abandoned in the critical code paths responsible for power management. The LGPA method, which is called by the stutter-inducing interrupt, dispatches power-related commands to the GPU without ever checking the MUX mode.

// GPU power notification - NO MUX CHECK!
Case (0x18)
{ // This SHOULD have: If (HGMD != 0x03) // But it doesn't, so it runs even in mux mode If (M6EF == One) { Local0 = 0xD2 } Else { Local0 = 0xD1 } NOD2 (Local0) // Notifies GPU regardless of mode
}

This is the bug. The firmware, despite proving it knows how to check the MUX state, forgets to do so here. It blindly sends a power-management notification to the NVIDIA driver, instructing it to change power states. In MUX mode, this command is nonsensical it's asking the driver to power down the only GPU that is keeping the screen on. This triggers the futile power-cycling, the massive latency spikes, and the system instability.

This is not a single typo. A second, parallel power management system in the firmware exhibits the exact same flaw. The Platform Extension Plug-in Device (PEPD) is used by Windows to manage system-wide power states, such as turning off displays during modern standby.

Device (PEPD) // Line 071206
{ Name (_HID, "INT33A1") // Intel Power Engine Plugin Method (_DSM, 4, Serialized) // Device Specific Method { // ... lots of setup code ... // Arg2 == 0x05: "All displays have been turned off" If ((Arg2 == 0x05)) { // Prepare for aggressive power saving If (CondRefOf (\_SB.PC00.PEG1.DHDW)) { ^^PC00.PEG1.DHDW () // GPU pre-shutdown work ^^PC00.PEG1.DGCE = One // Set "GPU Cut Enable" flag } If (S0ID == One) // If system supports S0 idle { GUAM (One) // Enter low power mode } ^^PC00.DPOF = One // Display power off flag // Tell USB controller about display state If (CondRefOf (\_SB.PC00.XHCI.PSLI)) { ^^PC00.XHCI.PSLI (0x05) } } // Arg2 == 0x06: "A display has been turned on" If ((Arg2 == 0x06)) { // Wake everything back up If (CondRefOf (\_SB.PC00.PEG1.DGCE)) { ^^PC00.PEG1.DGCE = Zero // Clear "GPU Cut Enable" } If (S0ID == One) { GUAM (Zero) // Exit low power mode } ^^PC00.DPOF = Zero // Display power on flag If (CondRefOf (\_SB.PC00.XHCI.PSLI)) { ^^PC00.XHCI.PSLI (0x06)
            }
        }
    }
}

Once again, the firmware prepares to cut power to the discrete GPU without first checking if it's the only GPU driving the displays. This demonstrates that the Mux Mode Confusion is a systemic design flaw. The firmware is internally inconsistent, leading it to issue self-destructive commands that try to cripple the system.

Traces from multiple ASUS gaming laptop models confirm this is not an isolated issue.

  • Trace Duration: 4.1 minutes
  • _GPE._L02 Events: 7
  • Avg. GPE Duration: 1.56ms (lower, but still unacceptably high)
  • Avg. Interval: 39.4 seconds (nearly identical periodic nature)
  • GPU Power Cycles: 8
  • Trace Duration: 19.9 minutes
  • _GPE._L02 Events: 3
  • Avg. GPE Duration: 2.94ms
  • GPU Power Cycles: 197 (far more frequent)
  • ASUS WMI Calls: 2,370 (a massive number, indicating software amplification)

Microsoft has a built-in "smooth video" check. It plays HD video in full screen and watches for hiccups. If the PC drops frames, crackles, or any driver pauses for more than a few milliseconds, it fails. That’s Microsoft’s baseline for what "smooth" should look like.

Why it matters here:

ASUS firmware is causing millisecond-long pauses. Those pauses are exactly the kind that make this test fail i.e., the same stutters and audio pops regular users notice on YouTube/Netflix and games; this firmware violates fundemental standards.

Despite being different models, all affected systems exhibit the same core flaws:

  1. _GPE._L02 handlers take milliseconds to execute instead of microseconds.
  2. The GPEs trigger unnecessary battery polling.
  3. The firmware attempts to power cycle the GPU while in a fixed MUX mode.
  4. The entire process is driven by a periodic, timer-like trigger.

This bug is a cascade of firmware design failures.

The firmware's ECLV() method treats a high-priority interrupt handler like a standard application thread, which is fundamentally incorrect.

What ASUS Wrote:

Method (ECLV, 0, NotSerialized)
{ While (events_exist) { process_event(); Sleep(100); // FATAL FLAW: This blocks the entire CPU core.
        check_timers();
    }
}

What It Should Be:

Method (ECLV, 0, NotSerialized)
{ // Acknowledge interrupt, queue work, and exit immediately. Local0 = EC0.EEV0; // Read event source EC0.EEV0 = 0; // Clear the event source QueueWorkForLater(Local0); // Queue a low-priority task Return; // Exit the handler in microseconds.
}

The firmware artificially re-arms the interrupt, creating an endless loop of GPEs instead of clearing the source and waiting for the next legitimate hardware event. This transforms a hardware notification system into a disruptive, periodic timer.

The code that sends GPU power notifications does not check if the system is in MUX mode, a critical state check that is correctly performed in other parts of the firmware. This demonstrates inconsistency and a lack of quality control.

This issue is not new or isolated. User reports documenting identical symptoms with high ACPI.sys DPC latency, periodic stuttering, and audio crackling have been accumulating since at least 2021 across ASUS's entire gaming laptop lineup.

August 2021: The First Major Reports
The earliest documented cases appear on the official ASUS ROG forums. A G15 Advantage Edition (G513QY) owner reports "severe DPC latency from ACPI.sys" with audio dropouts occurring under any load condition. The thread, last edited in March 2024, shows the issue remains unresolved after nearly three years.

Reddit users simultaneously report identical ACPI.sys latency problems alongside NVIDIA driver issues; the exact symptoms described in this investigation.

2021-2023: Spreading Across Models
Throughout this period, the issue proliferates across ASUS's gaming lineup:

2023-2024: The Problem Persists in New Models
Even the latest generations aren't immune:

The evidence is undeniable:

  • Measured Proof: GPE handlers are measured blocking a CPU core for over 13 milliseconds.
  • Code Proof: The decompiled firmware explicitly contains Sleep() calls within an interrupt handler.
  • Logical Proof: The code lacks critical checks for the laptop's hardware state (MUX mode).
  • Systemic Proof: The issue is reproducible across different models and BIOS versions.

Until a fix is implemented, millions of buyers of Asus laptops from approx. 2021 to present day are facing stutters on the simplest of tasks, such as watching YouTube, for the simple mistake of using a sleep call inside of an inefficient interrupt handler and not checking the GPU environment properly.

The code is there. The traces prove it. ASUS must fix its firmware.

ASUS has not responded to this investigation or the documented firmware issues at the time of publication, will update this if anything changes.

Investigation conducted using the Windows Performance Toolkit, ACPI table extraction tools, and Intel ACPI Component Architecture utilities. All code excerpts are from official ASUS firmware. Traces were captured on multiple affected systems, all showing consistent behavior.


Read the original article

Comments

  • By unwind 2025-09-177:055 reply

    This is an amazing discovery, article, and fix proposal. Fantastic work, very impressive and also very instructive on how things work on modern PCs and how far you can actually dig to get at stuff that is "supposed" to be hidden.

    As someone who has written embedded firmware for many years (not for PCs), I can only dream of an end user being this capable to discover a bug. I want to live in the world where Asus immediately send an e-mail offering some kind of short-term contracting work to fly in and talk to their firmware people for a few days and get $FIVE_FIGURES or something, and leave with an updated laptop running their new production BIOS.

    Obviously this bug has gone un-fixed for four years so that is not the world we're in. That makes me sad. :|

    Edit: s/fix/fix proposal/.

    • By kryogen1c 2025-09-1711:283 reply

      The technical RCA is fascinating, but im also interested in the business processes RCA.

      - this sounds ubiquitous and reproducible. How did this not get fed back through tech support/RMA channels? Was there so little evidence that it wasn't correlateable, or did ASUS look and arrive at an incorrect conclusion, eg batch of bad silicon? Could it be that they had plentiful evidence and were negligent or incompetent?

      - it sounds like this is plainly evident when using the machine. What is the QA process? This should not have been possible to miss?

      - now that they know, what will they do?

      Imo, the ceo calculus here is clear. If you're a luxury good with elastic demand, you fix the issue and fix the perception (two separate things). Multi-year, multifaceted issues like this have the potential to ruin a brand. I've bought ROG in the past, and I'm inclined to never do so again.

      EDIT: on further reflection, the firmware bug itself is pretty troubling. the other bugs i get - hardware assumptions were changed, or good code was reused that didnt know or support the gpu mux, i see how those errors comes about. the method sleeping an interrupt... is awful? how did that get reviewed? what is that firmware test suite?

      • By nikanj 2025-09-1713:173 reply

        It doesn’t matter that the consumer/gamer laptop is a piece of shit, because all of the competitors are too. Consumer hardware is a volume business, and the actual end-user experience matters very little compared to endorsement deals and marketing strategies.

        Every one of the affected ASUS laptops probably got a glowing 5/5 review from the usual suspects, and consumers have little hope of getting a fair deal

        • By sim7c00 2025-09-1812:04

          this is not wrong. i've had a bunch of ASUS and ASRock stuff that was completely unusable. all had 5 star reviews while tech forums all showed people unhappy, with broken network ports, CPUs blowing up the boards due to 'too much IOPS' and other silly things that you do not expect from running a new device with fully compatible components....

          There are vendors which do better generally, or have less aggressive 5-star robots. I got an MSI board now which came at a fraction of the cost of an ASUS board. It has worse specifications, but in all honestly. It works. it does what it says on the box without any grief. -- maybe it was a lucky shipment -- , but I am not going back to ASUS or ASRock. rather have 2 FPS less but a device that stays operation and can do it's basic features...

          A classic example of not giving a toss about performance is the _horrible_ integration done for Windows Hello protocol on many platforms. The protocol is really good, yet there are bypasses possible on a lot of devices due to bad/incorrect implementations, completely breaking an for-once-actually-good-thing that MS designed.

          buying consumer hardware, especially for gaming, is like a lottery these days, and shops / vendors give a lot of grief often (not always..) declining refunds or blaming bad user practices for clear device defects.

        • By nebula8804 2025-09-187:48

          It exacerbated by internet warriors that defend their brand. I guess they are living the "gamer" lifestyle. I have been burned by ASUS monitors: slow boot up, issues with detecting Mac device requiring complete monitor reboot (you'd think DP/HDMI are universal standards no?), thin screen supports causing it to ultimately fail, horrible built in speakers. Just a "meh" product. However I guess im in the minority as usually when I bring up this story someone chimes in saying they've had none of these problems with their ASUS product ¯\_(ツ)_/¯

          Ultimately I think this problem will fix itself. ASUS will eventually burn through enough customers that they will have to exit certain segments I guess?

        • By 392 2025-09-1811:58

          Is this why MacBooks have had weird flickering issues with some monitors since the M1 with no end in sight?

      • By zipy124 2025-09-2212:11

        I imagine the signal to noise ratio of "my laptop is slow" is pretty bad, knowing how many non-techies I've helped with their computer to see some variation of malware, incredible amount of installed and running programs, disks sitting at 99% capcity etc....

      • By formerly_proven 2025-09-1712:481 reply

        > What is the QA process? This should not have been possible to miss?

        Have you used consumer goods [or virtually anything] from the last couple decades? By and large, nobody cares. Look at the timeline here; clearly nobody cares.

        • By sim7c00 2025-09-1812:05

          the QA process is shipping to customers and sticking their head in the pile of money they amass with a broken piece of junk.

    • By ajross 2025-09-1713:162 reply

      Yeah. ACPI's AML bytecode is sort of a mixed blessing. It allows for reverse engineering and end user analasys/fixing of bugs like this.

      It's also just a terrible disaster of a programming environment, with a very large (terrifyingly so, given the limited capability) interpreter that needs to live at the highest privilege level of the kernel.

      And it's generally used like a hatchet by system integrators for tricks like this, with pretty much exactly the code quality you'd expect. Almost always the path to writing a Linux driver for some oddball laptop subsystem starts with "throw away the ACPI stuff".

      • By somat 2025-09-1715:132 reply

        As far as I know there are three ACPI AML stacks, the reference intel one, linux uses this, miscrosoft has one, and those crazy hackers over at the openbsd project decided to make their own.

        • By ajross 2025-09-1716:14

          I think that's right. Though my understanding is that the Windows code is derived from the original Intel one too and has evolved in tandem with the Intel-maintained driver. And... yeah, acpica (drivers/acpica/acpica) is just huge; I checked again and it's at 2.5MB of source code. All for a DSDT table parser and a virtual machine with about the capability of a 6502.

        • By bityard 2025-09-1719:181 reply

          and off by one errors

          • By butlike 2025-09-1815:38

            and off by one errors

      • By rangestransform 2025-09-1815:431 reply

        This is why I prefer having my software vendor write native code to interface with the machine instead of stupid bodges like acpi

        Windows laptops are dead on arrival for me, all windows laptops are physical shovelware

        • By ajross 2025-09-1817:17

          But again, AML disassembly may show that it was bad code, but it's at-least-mostly-working code, and provided in a form that can be disassembled and inspected. Lots and lots of robust Linux drivers have been written based on analysis of garbage ACPI integration.

          Mixed blessing, but still more blessing than curse.

    • By matheusmoreira 2025-09-1711:161 reply

      As a user and programmer, I can only dream of being this knowledgeable about things. There's a ton of domain knowledge embedded in the article, it's pretty amazing.

      I managed to reverse engineer a lot of my laptop's features but hit a wall when it came to this ACPI stuff. I dumped the tables and decompiled the code but all I got was stub code. I wanted to be the guy who wrote the Linux drivers for his own laptop but I just didn't manage it. Massive respect for anyone who can do this.

      • By trelane 2025-09-1712:28

        Yeah the best way to go is to buy Linux preinstalled and supported. Though, as with Windows in this case, that still won't save you if the system integration and firmware teams don't do their job.

    • By _zoltan_ 2025-09-177:482 reply

      sorry, what fix? the linked github page ends in "here is everything, ASUS, please fix it", right?

      • By f311a 2025-09-179:01

        He knows how to fix it, and he fixed his system. It's not universal, you need a custom patch for each model and fw version.

      • By unwind 2025-09-178:03

        Yeah, sorry, that was a bit unclear. I just meant that the article went as far as propose rather clearly what is needed to fix the issue ("don't sleep() in an interrupt service routine").

    • By meandmycode 2025-09-1714:05

      Truly awesome analysis, it's great that Asus spends this effort to quality check their hot garbage.. oh wait..

  • By fulafel 2025-09-175:5311 reply

    Impressive that they managed to ship crippling stuttering for 4 years in gaming laptops specifically. Makes you wonder about the end user psychology, evidently they didn't get a show stopping rate of product returns.

    A quote from one of the linked reddit threads. I wonder if the warranty trip is part of their scheme.

    "I did everything you suggested , but nothing changed. I send it back via garante. I am curious what they do whit it."

    "what was it at the end? did they respond?"

    "They have claimed that the plato works perfectly. So basically i just got use to it. I am using bluetooth earbuds all the time so i cant notice the problems."

    • By nodja 2025-09-177:343 reply

      I've owned 2 gaming laptops in my lifetime and both had similar issues that were never fixed.

      One was the first gen Alienware M17 with two GTX 270M GPUs (yes two) and an onboard nvidia GPU whose specific model I can't remember. That one suffered from stutters and audio crackling, etc. It was sort of fixed by disabling SLI and the onboard GPU and sticking to a specific driver that was modded, the driver was by someone on the notebookcheck forums IIRC. Later on I think it got somewhat patched with a bios update that let you use SLI without the stutters, but I think the laptop reached EOL without it being fully fixed.

      The second was an ROG ASUS laptop with a GTX 460m (I can't recall the laptop model). Pretty much the same story as the OP but I didn't have the knowhow to go deep into the ACPI code. The only change from the story is that latencymon kept attributing the latency spikes to multiple dlls, sometimes it was some wifi driver, other times it was an nvidia one. I don't remember the full fix for that one, but it involved me changing the wifi card and disabling the dGPU (not the onboard one) when I was not gaming so I could watch videos and such without it crackling. Funnily enough it didn't crackle much when actually playing games (it still happened, just very rarely).

      I stopped buying gaming laptops after that. Seeing this story makes me think things haven't changed one bit.

      • By chao- 2025-09-179:131 reply

        I am frequently asked for hardware purchasing advice by family and friends. Starting around 2017 or 2018, if asked to recommend a "gaming" laptop, I have refused. I never had a good experience myself, and more often than not, what I had recommended over the previous years ended up flawed or outright broken. Across every OEM and brand. I tell them to settle for a professional/business SKU with a low-tier dedicated GPU, or give up on laptop gaming entirely. Is it worth the money to pay a "business" premium for a weaker system? No, and I'll tell them that. It's not a good deal in on-paper-dollar-for-performance terms. But at least there's a chance that all of the components function and are supported!

        What use is a "good price", when what you get is a quality and support minefield?

        • By robotnikman 2025-09-1719:012 reply

          With the Steam Deck nowadays there is not much need for a gaming laptop unless you want to play the few games it can't run. Though even integrated GPU's in the more recent laptops nowadays are good enough for running games (usually at low/medium settings, 1080p)

          • By whatevaa 2025-09-192:04

            Not a few. You are overestimating steam deck. I have one. It's for small games. And I'm not talking just about AAA or not. Steam deck is pretty weak.

          • By hnuser123456 2025-09-1723:19

            Laptops with the newer nvidia generations that support framegen make this a harder argument. Yes, laptops are always severely power and thermal constrained, but you can run raytraced games at 1440p 240hz on them now. HL2 RTX at that fidelity is a trip. The concept of a high end gaming laptop is a pretty big market, but not when the mfgs and firmware devs can't manage to prevent stuttering that most of their target market would notice and find unacceptable.

      • By esperent 2025-09-179:311 reply

        I've owned two gaming laptops and never had issues like this.

        First one was a Clevo (rebranded as Medion) with a GTX 970m that I bought in 2017. An absolute beast, I lugged it in a backpack around the world for 4 years, including to places you really shouldn't bring a laptop like beaches and rainforests. I passed it my girlfriend's nephew and it is still going strong and being used every day. I repasted once in that time.

        My current laptop is an MSI GE66 with an RTX 3070m bought in 2022. It's loud, I've repasted recently because it started overheating. It had some problems with the screen connector which they fixed under warranty fairly quickly. But aside from that it's solid.

        One thing about both of these laptops - they are very easy to open and it looks like I could repair/replace pretty much every removable component easily. No glue.

        The only thing I consider a real problem is the MSI fan noise. Well, that and the power brick which is the size of a literal brick.

        • By nodja 2025-09-179:494 reply

          Glad to see that there are laptops that don't suffer like this. But I think the combo of having a steam deck + business laptop beats buying a gaming laptop. Assuming you already own a gaming rig at home.

          • By theandrewbailey 2025-09-1710:531 reply

            20 years ago, I had a midrange laptop with a dGPU and while it played games with mediocre results, the laptop experience itself was also mediocre. Stupidly, 10 years ago, I bought a laptop with a dGPU again, but because NVidia didn't play nice with Linux back then, I don't think I've used that GPU for more than an hour or so.

            Never again. A laptop with a dGPU runs counter to the things a laptop should be. Keeping gaming activities on a desktop is the best option in my experience.

            A few months ago, I started working at an e-waste recycling company, and discovered that used Microsoft Surface tablets are what I've been looking for. My work "laptop" is a Surface Pro 5 with Debian (my work desktop is an Optiplex micro). I'm typing this on a Surface Go (with BlissOS) that I bought for myself. The cameras don't work on either and the work Surface never knows it's battery status, but I don't care (it lasts an entire afternoon with a barcode scanner, good enough for me).

            • By esperent 2025-09-1712:45

              I daily drive Ubuntu on this laptop. It has issues, but the Nvidia GPU is not one of them. Times have changed.

              If you don't like a dGPU in a laptop, that's fine. But people have different needs. I travel a lot and do 3d content creation work.

          • By CoolGuySteve 2025-09-1711:431 reply

            Almost any Ryzen laptop these days will have faster integrated graphics than a SteamDeck just due to the age of the chip set Valve still uses.

            I've had 2 now from different manufacturers and the firmware seems alright due to the integrated nature of the API making them all fairly homogenous.

            • By dontlaugh 2025-09-1713:24

              Exactly, you can get decent integrated graphics with any recent Ryzen and you have lots of choice in form factor.

          • By esperent 2025-09-1712:43

            Well, I do play games on my laptops. But that's just a nice perk, what I bought them for is 3d content creation.

            Also, comparing a steamdeck to a modern gaming laptop is like comparing a $1 water pistol to a super soaker.

          • By mey 2025-09-1710:28

            That is my current approach as well. A steamdeck/switch/none + FW13 while traveling.

      • By ACCount37 2025-09-178:531 reply

        Laptops are vile piece of shit devices, as a rule.

        All the complexity of a PC, in a package the size of a book, with the engineering quality of a Happy Meal toy.

        • By lostlogin 2025-09-179:521 reply

          I’m very had very different experiences, with MacBooks.

          • By AstralStorm 2025-09-1711:143 reply

            Well those are just so underpowered it literally hurts. All of disk size, expansion options and memory.

            And booting something that isn't a funny variant of a locked down OS is relatively hard.

            • By lostlogin 2025-09-1712:251 reply

              > Well those are just so underpowered it literally hurts. All of disk size, expansion options and memory.

              That’s not a complaint have heard before. My needs aren’t huge and it has a lot more of everything than I need.

              > And booting something that isn't a funny variant of a locked down OS is relatively hard.

              I wouldn’t want anything else in it, but with a Mac mini I really wish it would run something Linux more easily. They are a great headless server, but the OS is really limiting.

              • By MindSpunk 2025-09-1718:012 reply

                Intel MacBooks were overpriced, under powered, overheating junk. They ran outdated processors at launch day and charged a premium because they had the best screens and track pads money could buy.

                Apple Silicon Macs are a 180. Fantastically fast and efficient hardware stuck with an increasingly locked down OS, zero upgrade path and still a premium price.

                If you’re holding on to the memory of Intel Macs I can certainly agree, they were not great.

                • By nebula8804 2025-09-187:53

                  Outdated processors or Super ULV processors? Their obsession with maximizing battery life meant that the processors were unable to throttle highly. Clearly they knew Apple Silicon was coming so they took their time re-engineering the devices. Why bother? At the same time i've heard stories of Apple being very pissed at Intel for delivering such poor chips for their target thermal design.

                • By butlike 2025-09-1815:441 reply

                  The trackpad is a device-selling feature though. They really are that much better than the competition.

                  • By opliko 2025-09-2221:48

                    There are now thankfully more haptic trackpads on the market, and honestly while mac trackpads still seem a bit better than at least what I've used (some Synaptics solution on a HP laptop; no idea how they compare to e.g. Sensel which is allegedly closer to or even better compared to Apple) the difference isn't big IMO.

                    But yeah, going from a more standard trackpad to a decent, large haptic one is night and day and basically made me stop using a mouse on-the-go in most situations. It now genuinely seems crazy to me that you can buy expensive, "premium" laptops without one.

            • By butlike 2025-09-1815:421 reply

              You complain about complexity and engineering quality, but then say all of the options should be customizable here. I think one has to sort of pick what they want. Terrible build quality since the RAM dimms aren't soldered on, or, a completely un-upgradable system that's packaged nicely.

              To go off your McDonald's analogy, you can get a lot of kCals without necessarily getting a lot of nutrients.

              Edit: GP comment wasn't yours, but I think my point still stands.

              • By whatevaa 2025-09-192:05

                I doubt that build quality and whether RAM is soldered on is related.

            • By LoganDark 2025-09-1713:491 reply

              MacBook Pro with 8TB of storage and 128GB of unified memory here.

              Skill issue.

    • By pjmlp 2025-09-175:591 reply

      That is what happens when the industry has spent decades educating users that is normal computers are broken.

      In any other industry everyone would be returning their acquisitions day one.

      About 35 years ago, I had a teacher asserting computers are like buying shoes that randomly explode when tying them.

      Thankfully consumer laws are finally happening.

      • By Aldo_Malkinson 2025-09-179:512 reply

        GOD, thank you for saying this, I was thinking I was alone and going crazy.

        How come people have become so obedient ?! That's crazy.

        • By LoganDark 2025-09-1713:371 reply

          > How come people have become so obedient ?! That's crazy.

          Most people have always been that way, will always be that way. IME the vast majority of people who don't stand for this shit are autistic.

          • By CyberDildonics 2025-09-2117:131 reply

            Where are you getting these ideas?

            • By LoganDark 2025-09-230:45

              What ideas? The one that non-autistic people (majority of the population) are less likely to care about programming stuff? That's my own idea, hence "IME" (in my experience).

        • By butlike 2025-09-1815:53

          I mean, it's a machine with moving parts. If the parts can move, they can not move. Even if I'm buying a printing press.

    • By Tade0 2025-09-1710:101 reply

      I can tell you how I got duped into buying their product - a Zephyrus G14:

      ASUS at the time had an exclusive deal with AMD to ship their Ryzen 4xxxHS line.

      Initially it worked fine, but two years later performance was already much worse and dominated by thermal throttling. Repasting, though necessary due to the state of the paste, only helped partially.

      I still don't know the root cause of the issue, but I investigated declining battery performance and it turned out that the iGPU was going full throttle at all times. Setting the dGPU as the preferred device actually improved battery life somewhat.

      When mechanical failures started accumulating I switched to a FW16 and never looked back. I don't care what gaming laptop manufacturers have on offer and for how little if I can't buy having them give a shit about their products and customers.

      • By matheusmoreira 2025-09-1711:041 reply

        I bought a Clevo-based gaming laptop for programming because it had a good CPU. It was a really bad decision.

        It will thermal throttle itself to uselessness within seconds of a load being placed on it. The dGPU idles at about 15 W, the entire power budget of a single board computer, and it's one of those problematic nvidia GPUs that will never be properly supported on Linux. The Windows app that controlled things like fans and keyboard LEDs was so obnoxiously bad they required over one minute to show a window on the screen, reverse engineering that thing was one of the best things I've ever done. Mercifully the firmware wasn't broken by default but I still didn't manage to reverse engineer the ACPI nonsense, I dumped the tables and decompiled the code but there was nothing useful.

        Looks like Apple has a monopoly on good taste and giving half a shit about the quality of the products they sell. I wish the Apple silicon macbooks existed at the time.

        • By Tade0 2025-09-1711:32

          I was considering such a device since surely those huge vents meant good thermals, right? Glad I didn't go for it.

          With the ASUS I had a setup with a cooling pad where the metal grid cover was removed and the sides were sealed with foam to enhance flow from the pad's fan and only with that I could maybe get 30-45min of gameplay until throttling started.

          Meanwhile the Framework has overall much higher power consumption, but still manages to whoosh all that hot air out. I can't take these companies seriously if a much smaller business that is not focused squarely on gaming is running circles around them.

          My mother rocks an M1 Air which she got for pennies and it's a great all around home computer.

    • By CrossVR 2025-09-176:524 reply

      This flaw only happens in Ultimate mode, when the user explicitly tells the mux to switch to the discrete GPU. This is an extra feature only users who primarily use the laptop for gaming with an external display care about.

      The laptop works fine in Optimus mode even with external displays, you just lost a bit of performance and you're missing out on some display features like G-Sync. So it is highly likely that most users always use the laptop in Optimus mode. If you primarily use the laptop as a laptop you probably wouldn't even know the mux feature existed.

      The problem is Asus shipping extra features in their hardware that are not properly QA tested. It looks like they only thoroughly tested the golden path.

      • By Strom 2025-09-177:451 reply

        Asus doesn't even test basic features, nevermind the extra ones. I have the 2017 Zephyrus GX501, which came with a Nvidia GTX 1080 which introduced HDMI 2.0 support. The Asus Zephyrus marketing material is boasting about HDMI 2.0 capability, the manual talks about HDMI 2.0 etc. However, in reality the device is limited to HDMI 1.4 bandwidth.

        The problem isn't limited to some units, there was plenty of discussion online of this issue at the time of release. [1]

        Asus never recalled, fixed, or even responded to the issue. Indeed, even the marketing page [2] still talks about how you can use HDMI 2.0 to connect 4K TVs at 60Hz.

        It was also an interesting showcase of laptop reviewer incompetence. All the reviews just regurgitated Asus marketing material on how it has HDMI 2.0, but apparently nobody actually tested it.

        --

        [1] https://rog-forum.asus.com/t5/rog-zephyrus-series/gx501-zeph...

        [2] https://rog.asus.com/laptops/rog-zephyrus/rog-zephyrus-gx501...

        • By YesThatTom2 2025-09-1710:25

          Imagine if we had strong consumer protection laws. Companies would fear claiming HDMI 2.0 that was really HDMI 1.2. Instead they just figure “meh! If anyone complains we’ll let them return it.”

      • By makeitdouble 2025-09-1710:50

        > The problem is Asus shipping extra features in their hardware that are not properly QA tested.

        For this specific case, getting no fix since the issues have been reported in 2021 is tough to brush over.

        Asus already has a spotty reputation regarding to customer repairs and business practices, so this issue piling on top of that is unfortunate.

      • By fulafel 2025-09-177:30

        Seems to me this can't be concluded from the information at hand. This investigation used the mode, but the linked reddit posts I read complaining about ACPI latencies reportedby latencymon don't mention it.

      • By butlike 2025-09-1815:541 reply

        you're telling me they never expected the _gaming_ laptop to be connected to a MONITOR, KB + M? eyeroll o.O

        • By CrossVR 2025-09-1817:44

          External monitors still work in Optimus mode. Only if you use Ultimate mode where the mux switches to the Nvidia GPU does the issue arise.

    • By gambiting 2025-09-177:541 reply

      I don't know if anyone cares, is the problem. I used to have a £7000 Dell workstation laptop, specced to the moon - i9, 3080Ti, 128GB of ram.....that kind of thing.

      The laptop was absolutely useless at playing games, because it would throttle itself thermally after about 30 seconds. Which was ironic given that I used to work at a games development company and the ability to play games was actually a core feature of the product. I then used to have a Razer Blade 15 which wasn't as bad but would also eventually start throttling hard - just inadequate cooling imho.

      Funnily enough I have a much cheaper MSI gaming laptop now with an i7 and a 3070Ti and that never throttles, I can run games without it slowing down. But clearly the cooling system in it is massively overbuilt, which is great.

      • By alias_neo 2025-09-178:431 reply

        > I have a much cheaper MSI gaming laptop ... that never throttles, I can run games without it slowing down. But clearly the cooling system in it is massively overbuilt

        Maybe they learned their lesson. I had an MSI gaming laptop a while back, and it ran horribly, I never realised until long after it was possible for me to return it, that it was just poorly designed, and could never run beyond ~50% of its gaming performance. Within minutes of starting a game it would be thermally throttled and that was that; it also sounded like it was about to take off, to the point you could barely drown it out with headphones.

        • By gambiting 2025-09-179:321 reply

          I think they did - I used to have an MSI gaming laptop years ago with a GTX560M if I remember correctly, and that used to throttle every several seconds, so every game you played stuttered. This one - not a single slowdown, but if you open it it has like 10 heat pipes and two fans that sound like jet engines - but it clearly works.

          • By alias_neo 2025-09-179:48

            I'm glad to hear at least one manufacturer is trying. I can't imagine myself buying a gaming laptop again, perhaps for my kids when they're old enough, but I stick to desktop now.

            My main drive in choosing the MSI I did back then was the thinness and lightness, which was counter-productive to good cooling performance, mine had a GTX970M but was about 1cm thick; the bottom of the case got so hot it would burn you if you touched it after a while of gaming.

    • By SchemaLoad 2025-09-176:046 reply

      Windows laptop users are just conditioned to the fact that they don't work properly and just deal with the issues.

      • By CrossVR 2025-09-177:002 reply

        My 2013 Macbook also had a display mux that switched the laptop display itself between the integrated and discrete GPU. In some cases it would fail to properly switch the display over causing it to remain permanently off until the next reboot. I was not the only Macbook user with the problem.

        Apple is just as guilty for shipping laptops with hardware issues that you just have to work around. And unlike this Asus issue the Macbook mux was on by default. You had to turn it off in the settings if you wanted to entirely avoid the issue and then you would have no way of using the discrete GPU.

        • By LeifCarrotson 2025-09-1713:11

          As did my 2015 Thinkpad - same problem, both an integrated and an external GPU, and I was constantly fighting with the drivers to get it to just make use of the external GPU. I'm plugged into a wall whenever the laptop isn't suspended/shut down for transport, stupid machine, stop making Autodesk and my games crash because you want to boost your battery lifetime numbers!

          They had a special Lenovo driver that would occasionally become overriden by Windows updates but could be reinstalled manually, I dual-booted Debian though and getting the system to work properly under that was a nightmare. There were a couple years when I simply gave up, I got it to work with the iGPU and I wasn't running anything more graphics intensive than a browser so I simply left the discrete GPU idle while running Linux.

          Incredibly frustrating.

          I think all these manufacturers are desperate to get their published specs for battery life estimates to double-digit hours that can't be reached while running the discrete GPU at full speed all day. Heck, they can't be reached while running the CPU at full speed all day, you're not going to run a 35W processor and a 55W graphics card and a 20W display (10W when you arbitrarily reduce the max brightness when on battery power) all day.

          You've got like 90 watt-hours available in the battery, at 100% usage on everything the real capacity is gone in under an hour...which is unacceptable. So Asus and Apple and Lenovo and everyone else have to come up with some hack to turn it off whenever it's on so that the spec sheet says you can get 8, 10, 12 hours of runtime.

        • By alexdbird 2025-09-1710:521 reply

          We had dozens of 2013 MBP with discrete GPU mux where I worked. I bought one afterwards and used it until the M1 laptops came out, for pretty much everything you can use a laptop for. Never had or saw this problem in any of them, FWIW!

          • By CrossVR 2025-09-1712:35

            Was it a Fall 2013 or Spring 2013 Macbook?

      • By shmeeed 2025-09-179:011 reply

        The quip against Windows users is besides the point of the article:

        >Even installing Linux, only to find the problem persists. [...] >The problem is far deeper, embedded in the machine's firmware, the BIOS.

        Anyway it's not as if the Linux laptop user experience in general were much better.

        • By trelane 2025-09-1712:25

          Yeah, that's not shocking. Linux uses the Intel ACPI infra, whereas Windows uses Microsoft's. It's as good as they can do, but it's not going to be possible to perfectly replicate Windows, let alone improve such clearly buggy firmware, at least generally.

          It is possible on Linux to override some of the firmware (most notably the DSDT, e.g https://wiki.archlinux.org/title/DSDT because so much hardware is broken). So, if you can make or get a fixed version, you should be good. A wholesale replacement of all the ACPI assets, though, seems unlikely. I could well be wrong, though.

          Anyway, in this case, I suspect the poster was advocating for Macs.

      • By pjmlp 2025-09-177:071 reply

        As if Apple land was free of issues, remember those wonderful keyboards, Snow Leopard, Tahoe among many other examples, or any Linux laptop for that matter.

        • By p_l 2025-09-1710:42

          Or the Installer.app, at least from 2015 to whenever they finally switched to image-based updates.

          A percentage of users were "unlucky" to hit a bug where Installer.app would end up in infinite loop trying to unpack a pkg file when updating OSX. My personal record is minor update that ultimately took a week.

      • By IlikeKitties 2025-09-176:46

        I don't see Mac or Linux Laptops being that much different in that regard.

      • By FirmwareBurner 2025-09-177:53

        A HN comment slandering people because of their OS/laptop choice? Never heard that one before.

      • By PicassoCTs 2025-09-176:36

        [dead]

    • By numpad0 2025-09-1716:24

      Gaming laptop market feels like the most exploitative segment of entire laptop market to me.

      They're like four-seater off-road motorcycles. You have to NOT understand how sketchy that concept is to consider one. The engineers has to know that they're guilty to be involved in it.

      What's sad is that a lot of buyers are falling for it from the presumption that laptops are the most standard and regular type of computers. But I guess there's little we could do about it.

    • By nottorp 2025-09-178:111 reply

      Apparently this happens only if you set the laptop to discrete GPU only mode, which most people won't do.

      However, this is not the only problem with Asus bioses. My daughter has one and it randomly locks up if you add an extra SSD, sooner or later depending on the SSD. You'll blame the SSD's firmware, but the most locking one was one that I have in two desktops with no problems...

      • By tails4e 2025-09-1712:41

        This makes sense, but what does not make sense is who tested this 'ultimate mode', I mean they went to the trouble of adding a physical hardware switch on the motherboard for this, surely when testing there was some kind of benchmark or comparison to show this feature was an advantage. Maybe they don't test, or they have 'internal firmware' that is not what the user gets, but it's a serious fail either way.

    • By bakugo 2025-09-188:04

      > Impressive that they managed to ship crippling stuttering for 4 years in gaming laptops specifically. Makes you wonder about the end user psychology, evidently they didn't get a show stopping rate of product returns

      It's a gaming laptop. If you're playing any game released in the past 5 years, odds are you're getting constant stutters anyway due to Unreal Engine 5. And Windows 11 is a slow, bloated mess, too, so that covers stutters outside of games.

      For most end users, and especially gamers, stuttering and overall bad performance is just the new normal that they've come to accept and even embrace. The recent success of Borderlands 4, a game that struggles to run smoothly on the best and most expensive hardware available today, is just the latest and best proof of this. If you complain about it, you'll be called poor for not owning a $3000 GPU and/or a luddite for not wanting to play at 720p 30fps AI-upscaled to 4K 300fps.

    • By Self-Perfection 2025-09-191:11

      So what should user do before byuing? Reasonably it might search for "<modelname> reviews". Such reviews include a number of throughput tests but they never test for latency.

      This might be a culture issue. At least we should push for popular benchmark solutions to include latency tests. In ideal world laptop reviewers should also test keyboard latency but I do not see how it might be automated.

    • By immibis 2025-09-176:47

      All the evidence points to corporations, in general, not caring about making products that actually work.

  • By nopurpose 2025-09-1712:102 reply

    It always puzzles me how apparently well known flaws never mentioned by product reviewers, even genuinely pro-consumer and generally well respected, like rtings or notebookchecks.

    You buy product after stellar review, encounter problem, search for solution, find reddit thread where everyone is "yeah, it is always like that, why do you act surprised?"

    Why indeed?

    • By ysleepy 2025-09-1716:17

      It's not trivial to find it, you need to set it to dGPU only mode via mux switch and then let the LatencyMon test running for more than 120seconds.

      (I'm not sure if it lags in igpu pass-through mode)

      notebookcheck does report latencymon numbers and even remarks when it says the laptop is not recommended for real time audio:

      https://www.notebookcheck.net/The-RTX-5090-Laptop-and-mini-L...

      They don't see these extreme values though.

    • By enricotr 2025-09-1712:131 reply

      I really never did this question to myself, but if will happens I would start, trivially, looking for who sponsor those review sites.

      • By nopurpose 2025-09-1712:28

        Usually their revenue is from affiliate links. YouTube channels have ad spots, merch sales etc. There are many shills of course, but some are doing their best to give accurate reviews and don't shy away from bashing manufacturers for their missteps.

        Yet widely known (to enthusiasts) problems, like stutters from the OP, are often not mentioned at all.

        LinusTechTips doesn't depend on ASUS money in any meaningful way, but still failed to mention stutters in their Zephyrus G16 review. Some might say LTT is not a reviewer, he is an entertainer, but he undeniably thrives to be accurate while doing so.

HackerNews