Hi Maaz, Zack,

I have a test result, but not the one you asked for.. the bug stopped
reproducing before I could test the patch, and the reason may be useful to you.

Short version: enabling 3D acceleration on the VMware host made the leak go away, with the stock distribution mesa. No patch involved.

-- What I changed:

Until 7 August this guest ran with 3D acceleration disabled in the VM settings, and additionally forced llvmpipe via LIBGL_ALWAYS_SOFTWARE=1. That was the configuration in my original report.

I enabled 3D on the host and removed the LIBGL_ALWAYS_SOFTWARE override, so the whole session -- kwin_wayland, plasmashell, clients -- now runs on svga:

    OpenGL renderer string: SVGA3D; build: RELEASE;  LLVM;
    Driver: VMware (SVGA3D)
    mesa 26.1.6-arch3.1   (distribution build, NOT patched)

-- Measurements:

Sampled every 15 minutes. system_ttm and mob_ttm are the two TTM pools from /sys/kernel/debug/dri/0/, "total" is their combined growth:

session start        hours   system_ttm        mob_ttm         total objects
------------------------------------------------------------------------------ 2026-08-02 20:37 7.8 4.73 -> 15.09 0.023 -> 0.023 +1355 MB/h 753 -> 2184 2026-08-03 04:36 34.8 0.11 -> 46.57 0.023 -> 0.023 +1367 MB/h 23 -> 8211 2026-08-04 15:37 33.1 0.10 -> 32.07 0.023 -> 0.023 +989 MB/h 31 -> 5586 2026-08-06 00:59 25.7 0.32 -> 17.07 0.023 -> 0.023 +667 MB/h 49 -> 2680
    --- 3D enabled, svga in use from here ---
2026-08-07 02:48 15.6 0.06 -> 0.05 0.131 -> 0.216 +5 MB/h 85 -> 244 2026-08-07 18:35 18.2 0.08 -> 0.19 0.266 -> 0.555 +22 MB/h 1357 -> 3272

Same machine, same kernel (7.1.6), same mesa package, comparable desktop use. The last row is a full working day plus a night.

Two details that may matter more than the totals:

- --mob_ttm never moved in any of the four pre-3D sessions-- 409 samples over four days, constant at 0.023 GB. With svga it moves. The memory is coming out of a different pool.

- --The dominant buffer changed size-- Without 3D it was 8355840 bytes = 1920 x 1088 x 4, height padded to a multiple of 64 -- the signature of a dumb buffer. With svga it is 8294400 = 1920 x 1080 x 4, exactly the screen, no padding.

So the configuration I reported was not exercising the svga driver at all, which was the question in my previous mail: the leak I measured was on the dumb-buffer/kms_swrast path, not through gallium svga.

-- About the patch:

I did build it, to be able to test properly: staging/26.1 at 2ed36c6 ("svga: Pass buffer handle for fd handles for resource_from_handle()", the backport of b460cff2 from your MR 43386). Verified it was actually loaded.. the version string reads "Mesa 26.1.6 (git-2ed36c6b5d)" and the vmw_winsys_to_dma_buffer symbol is present.

I have not been able to give it a meaningful before/after, because in the configuration where svga is in use the leak is already absent with the unpatched driver. I am not claiming the patch is unnecessary -- I am saying my machine no longer reproduces the problem it fixes.

If it helps, I can put the guest back on 3D-disabled and measure there with and without the patched build. Given the above I suspect it would show nothing, since svga is not loaded in that configuration, but say the word and I will run it.

-- One correction to something I nearly reported:

While switching, plasmashell started segfaulting on "dmabuf import failed to mmap". I was close to reporting that as a second driver bug. It was not: I had left LIBGL_ALWAYS_SOFTWARE=1 in place, which plasmashell honours but kwin does not (it goes through EGL). That left the compositor on svga and a client on llvmpipe trying to CPU-map a guest-backed buffer. With both on the same driver it is gone: 18 hours, zero occurrences.

The one thing that does look like a real bug is on the KDE side, not yours: the failed mmap leads to SIGSEGV (si_code = SEGV_MAPERR) rather than a blank thumbnail. I will report that to them separately.

-- Environment:

    Guest:      CachyOS (Arch-based), kernel 7.1.6-1-cachyos
    Host:       VMware Workstation on Windows, AMD Ryzen 9 7950X
    Driver:     vmwgfx, VMware SVGA II, 3D acceleration now ENABLED
    Compositor: KWin 6.7.4, Plasma Wayland, 3 x 1920x1080 @ 60 Hz
    mesa:       26.1.6-arch3.1
    max mob size: 1048576 KiB   (was 262144 KiB with 3D disabled)


Happy to run anything specific, on either configuration.


Regards,

Jellis Onsea
AccessWeb

Reply via email to