Videos/Streams keep Lagging, stuttering, & stuck loading

Description of the issue: My Youtube Videos & Twitch Streams keep Lagging, stuttering, & stuck loading for whatever reason
How can this issue be reproduced?

  1. Have multiple Youtube or twitch streams playing on one or 2 monitors

  2. Wait until the browser can’t handle 2/3 videos for some reason.

Expected result: Lagging, stuttering, & stuck loading

Brave Version( check About Brave):Brave 1.87.188 (Official Build) (64-bit)

Additional Information: This has been an issue for me for the past 6 months. I used to use OpenGL (This wasn’t a problem with OpenGL) for the graphics backend until it was removed because it caused peoples browser to turn transparent (including me). I really really like brave but I’m at a point were i cant figure out if its some setting in my system that is causing this or if the browser is just struggling to load multiple video/stream instances. This also has been an issue for other people as I’ve seen around the community. some being fixed by either turning OFF Hardware ex or turning ON but this doesn’t work for me (currently have Hardware ex ON). Please help i don’t want to switch to another browser.

GPU: 4090
CPU Ryzen 7800X3D

@Popdupe

Go to Perplexity.ai (‘https://www.perplexity.ai’) and ask:

What might you know about Chromium “compositing layers” textures and rendering tasks to GPU, that lead to higher RAM usage by Chromium tabs and the Windows Operating System’s Desktop Window Manager - showing in the Brave Browser Task Manager and Windows OS Task Manager?

Result:

Chromium’s compositing system builds GPU-backed layers, tiles them into textures, and hands those textures to the GPU and then to Windows’ Desktop Window Manager (DWM); this pipeline is what inflates both per‑tab memory usage and DWM usage in task managers.

How layers become GPU textures

Chromium promotes certain render layers (e.g., with transforms, opacity, videos, animated elements) into compositing layers that are backed by their own surfaces instead of a single big page bitmap.

These surfaces are divided into tiles, rasterized, and uploaded as textures by the compositor/GPU threads, so a single tab can easily maintain dozens or hundreds of textures in memory for smooth scrolling and animation.developer.

To manage this, Chromium’s GPU memory manager assigns each tab (layer tree) a memory budget and prioritizes tiles near the viewport or on animating layers, keeping them resident while evicting others.chromium.

Even when a tile is evicted from GPU memory, there may still be shared-memory backing in system RAM, so memory appears “used” in both the renderer process and the GPU process.

Why Brave’s tab RAM usage goes up

Brave uses Chromium’s RenderingNG, so each tab’s renderer process allocates shared bitmaps or GPU resources for its layer tiles, plus bookkeeping data structures for the compositor.

Brave’s task manager then attributes a slice of that shared memory and tile/cache usage to each tab, so tabs with long, complex, or animated pages show noticeably higher RAM even if you only see “a web page.”

Because tiles are cached to avoid re‑rasterizing when you scroll back or animate again, memory usage tends to grow as you interact with a page, then only gradually shrink as the cache evicts unused tiles.

GPU paths that use “one‑copy” or “GPU” tile modes lean more on GPU memory, but they still rely on staging/shared memory in the renderer or GPU process, which shows up as additional RAM in task managers.

Why DWM’s memory usage goes up

On Windows, Chromium’s compositor ultimately submits swap chains or composition surfaces to DWM (dwm.exe), which is the system compositor that renders the desktop.

Each visible browser window (and sometimes each tab in special cases like separate windows) results in one or more surfaces that DWM must keep in GPU memory (and some system RAM) to composite the final screen image with effects like transparency and scaling.

When Chromium uses many GPU-backed layers and textures, the resulting backbuffers and intermediate surfaces have to be handled by DWM, so DWM’s GPU and memory usage grows with the number and size of windows, their resolution, and the complexity of their contents.

From your perspective, that means the same underlying textures and surfaces are “counted” in three places: the tab/renderer, the shared GPU process, and DWM, which makes overall memory usage look larger than a single in‑process software renderer would.chromium.

Why this is a deliberate trade‑off

All of this extra memory exists to make rendering smooth: cached tiles and textures let the compositor redraw frames while the main thread runs JavaScript, and let DWM animate windows and the desktop without re‑painting everything each frame.

The Chromium team tunes budgets and eviction heuristics (distance from viewport, animation state, recency) to keep memory within bounds, but the design fundamentally trades higher RAM/VRAM usage for responsiveness and lower CPU cost on modern GPUs.

Also asked:

Was OpenGL replaced on Windows OS machines?

Result:

No. On Windows, OpenGL has not been “replaced” in the same way Metal has effectively replaced OpenGL on Apple platforms.

  • Windows still supports OpenGL via the long‑standing Installable Client Driver (ICD) model, where GPU vendors ship OpenGL drivers that apps can use directly. Direct3D (part of DirectX) is Microsoft’s preferred and most actively advanced 3D API, especially for games, but it exists alongside OpenGL, not as a hard replacement.learn.
  • If a proper vendor OpenGL driver is installed, OpenGL calls are hardware‑accelerated; if not, Windows can fall back to an old software OpenGL 1.1 implementation, which is slow but still present.​
  • Modern engines targeting Windows almost always use Direct3D (or a cross‑platform abstraction over Direct3D/Vulkan/Metal/etc.), so in practice OpenGL’s importance has declined, but it remains available and functional on Windows rather than being deprecated by the OS.

Also asked a modified version of my first:

What might you know about Chromium “compositing layers” textures and rendering tasks to GPU, that lead to lagging, stuttering, and higher RAM usage by Chromium tabs and the Windows Operating System’s Desktop Window Manager - showing in the Brave Browser Task Manager and Windows OS Task Manager?

Result:

Chromium-based browsers like Brave use GPU-accelerated compositing to offload rendering tasks from the CPU to the GPU, which can sometimes cause lagging, stuttering, and elevated RAM usage visible in Brave’s Task Manager and Windows Task Manager (including DWM spikes).

Compositing Layers Basics

Compositing layers break web page elements (like RenderLayers) into separate GraphicsLayers, each potentially backed by a texture for efficient GPU blending and transforms (e.g., scrolls, animations). This promotes parallelism between CPU and GPU but promotes layer “explosion” if many overlapping elements qualify, leading to excessive textures.

Textures and GPU Tasks

Textures store rasterized content (from software bitmaps or direct GL/WebGL) in VRAM; uploads from CPU to GPU via async workers can bottleneck on memory bandwidth, especially with tiling (splitting layers into tiles for partial rasterization). Infinite or inefficient uploads during scrolls exacerbate GPU/CPU contention, OOM errors, or stuttering if VRAM fills.

Performance Issues

  • High tab counts amplify processes (one per renderer/plugin/extension), inflating RAM as each manages its layer tree and textures.
  • DWM (Desktop Window Manager) spikes occur when compositing browser UI with content layers, copying large viewports frame-by-frame.
  • Stuttering ties to rasterization delays, texture copies, or driver issues (e.g., D3D11 vs. OpenGL), worsened by HDR or background tabs.

Mitigation Steps

  • Disable hardware acceleration (brave://settings/system) to force software rendering, reducing GPU/DWM load but increasing CPU use.
  • Tweak flags like brave://flags search for override-software-rendering-list or limit layers.
  • Close unused tabs/profiles; monitor Brave Task Manager for high GPU tasks in specific renderers.
  • Reference: brave​

Adding . . .

How VRAM / resource competition plays into it:

Several layers are competing over GPU policy and scheduling:

  • Browser layer (Brave/Chromium): decides which GPU features to use (Skia, ANGLE backend, Vulkan/D3D, rasterization paths) and how aggressively to utilize the GPU.
  • Driver layer (Nvidia/AMD/Intel): applies profiles, frame caps, power management, and prioritization rules that may treat Brave as a game and apply VRAM and frame‑rate policies tuned for full‑screen 3D workloads.
    github
  • OS layer (Windows / Game Mode / Graphics Settings): decides which GPU “owns” Brave and whether it should be throttled or prioritized compared with background tasks.
    reddit

When any of those three layers makes a bad assumption (for example, “this app is a 3D game, cap its framerate and run it on the dGPU”) you can see:

  • UI lag when hardware acceleration is on.
  • Hardware acceleration disabling itself partway through (e.g., after visiting YouTube) and dumping load back to the CPU. github
  • Very different behavior between Brave and Chrome on the same machine, even though both are Chromium‑based.
    github

Thanks for this info. I’ve gone into the NVIDIA control panel –> Program Settings –> Brave(brave.exe) & turned OFF Background Application Max Frame Rate. This setting was on Use Global Setting (OFF) but I switched it to just OFF. Also I have Hardware ex ON. So far everything is running smoothly with no lag, stutter or stuck in loading. I’ll get back to this post if things are still running good or if issues still persist.

By chance, was the issue similar to this?

I was one of the first to report it, and I have a Radeon, but it seems Nvidia users were having similar issues too, and moving a window would “unfreeze” whatever got frozen. Just curious if this might be what you ran into. Two of the video examples in that post are actually mine, and demonstrate the issue quite well, and how dragging a window un-freezes it. IF it’s the same, do let us know. If it’s not the same, also do let us know. :sweat_smile:

I’m just a user trying to help eradicate this compositor freezing issue, as I still have it half a year later. (When Chromium doesn’t.)

Even if i moved the browser like in the videos, It wouldn’t stop the lag/stuttering.

So far currently I’m not having any issues, only like a small pause then it continues working fine. Still going to give it a couple of hours or one day to see if the issues come back.

I’m surprised with the amount of reports, they haven’t put much attention to something so crucial to a browser experience. Especially for the amount of time this has been an issues with people. It’s just really annoying.

Honestly it sounds like your issue may be network related.

Can you go to speedtest.net, and not just look at the speed result, but the ping/jitter?

I no longer think you’re running into a browser stutter/freeze, but buffering perhaps.

No its not a network issue.

Also the Stuttering, Lag & Screen Loading for videos/Stream are back.

I’ve tested this on other browsers with no video/stream issues accruing.

@Popdupe issue has generally been with graphics card settings and other external influence. Average person isn’t having issues and it’s just a matter of getting settings into play.

The big challenge and headache is that graphics cards will make sure they are preset to work with the older and more well known browsers: Edge, Firefox, Chrome, and/or Safari. This is where some see renaming Brave to chrome.exe suddenly has it work perfectly or just manually making some of the adjustments, such as Background Application Max Frame Rate or Multi-Frame Sampled AA (MFAA) ends any issue.

My perspective:

As I have been trying to kind of monitor people having issues, it’s always seemed to be from different causes and solutions. I’ve not seen enough that can be replicated to where there could really be much developer action taken.

If I have seen anything in common, it would be what I mentioned earlier which is that the graphics cards are intentionally changing their performance.

Beyond that, was the small hiccup from where Chromium changed the OpenGL backend, which hurt anyone who had manually changed the flag to be something else. Though this is more or less impacting people who are deviating away from default settings.

Btw, also want to confirm, does it happen if just using one monitor or primarily needs 2+ monitors?

Ah that makes sense.

Yea I’ve seen instances of people renaming brave.exe to chrome.exe & it would work but then change back when restarting. Also for the NVIDIA panel settings, I’m guessing you would set these on OFF. I currently have BAMFR OFF as per suggestion from @289wk , not MFAA currently.

I’ve tested it on 1 individual monitor & still it persist with the issue. It only stops until i close out of one of the videos or streams playing. Like if its struggling to prosses the video for some reason.

Here’s more info if this correlates to anything else going on

Indeed.

Perhaps I should provide links to all of these, but meh. These aren’t all related specifically to your issue, but at least is to paint something of a picture. I just had some posts with a bunch of links before so they were easier to find, hence why much of it is from like 2023 or so.









I was just trying to think if I should do a screen recording of how things work on my end, at least to show where can’t necessarily replicate. But then also wondering if need to really look at specific videos or circumstances in order to try to replicate directly.

But I’ve opened and run several YouTube and Twitch videos running in multiple windows. I’ve done with them playing in the background or even doing side by side. I never really had them lag, stutter, or anything of the sort. Closest is maybe when it autoplays to next video and might hit YouTube’s adblock thing where it pretends there’s connection issues for a second and then plays the video.

Also @MasterLink and @Popdupe for what it’s worth, wanted to reference reports on similar behavior even for other browsers and all. And been going on for a long time.

https://linustechtips.com/topic/694283-stuttering-youtube-with-chrome-when-switching-tabs/

Thank you for this. I’ve turned off MFAA & BAMFR. again so far no issues with video/stream but I’m going to give it a while to see if the issue comes back.

Definitely not, most buffering issues are the ping jitters since you have a good download pipe, and your jitter is a mere 19ms, and with only a 31ms latency on download, that’s great.

Gotcha. This is an entirely different quirk.

Hopefully your recommendation works. If it doesn’t, I wonder if they enabled Skia Grahite in flags might work. For Radeon users such as myself, it’s almost required (we don’t get performance issues, but we get visual garbage like colored blocks on web pages randomly), but I would say there’s less microstuttering (so not full on lagging, but there is micro stuttering if Graphite isn’t enabled for me).

But I’d only try that if your suggestion doesn’t work.

Update: Issues are still happening unfortunately. Going to keep looking for a solution but man this sucks. Thank you @Saoiray @MasterLink for the info dump yesterday. I’ll report again if anything changes.

Was also freezing hard when trying to buffer and jump ahead in youtube. 1Gig connection. No issues in Edge, Chrome, Opera.

Setting MaxFPS to “Off” in nvidia settings fixed it