http://bugs.winehq.org/show_bug.cgi?id=59857 Giang Nguyen <nen24t@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #21 from Giang Nguyen <nen24t@gmail.com> --- Status update from the reporter, since two patches were just attached to this bug. The growth measured in comment 0 (REAPER + Serum 2, ~1.2-1.6 MB/s) has since been broken down into separate causes, and the heap-retention analysis in comment 0 and comment 16 did not hold up: 1. d2d1 leaked figure->vertex_types for every path figure. Filed as bug 59916, fixed by 4ae80e26e5bd6bc30e0e7e7fe3b1a60895f896de, in Wine 11.13. This was the largest single component (~3.8 MB/min in the workload of comment 0). 2. Two leaks inside Serum 2 itself: an ID2D1PathGeometry leak in 2.1.0/2.1.1 (fixed by Xfer in 2.1.2) and a leak in the plugin's clip/note preview path that reproduces on native Windows 10 as well (acknowledged by the vendor as fixed for the following update and no longer reproducible with 2.1.5; details at https://github.com/robbert-vdh/yabridge/issues/413). 3. The ntdll subheap-retention mechanism proposed in comment 0 was not confirmed: with a probe in dlls/ntdll/heap.c under the same workload, the process heap plateaued at 558 MB committed with 99.8 % occupancy and no sparse subheaps, while RSS still grew. The remaining growth was item 1, not heap retention. Comment 16 ("the bulk of 59857 looks like ntdll heap subheap retention") is therefore withdrawn. Re-measured today with Serum 2.1.5 (Windows VST3) in REAPER 7.79 under Wine on the same project as comment 12, transport playing for 285 s: RSS 1359 MB and anonymous mappings 943 MB, identical across 20 samples at 15 s intervals, with the render thread at ~155 % CPU. The build used is Wine 11.0 with local patches; on top of the 59916 fix it also creates the shape input layouts and shaders once per ID2D1Device instead of once per device context (d2d_device_context_init, dlls/d2d1/device.c). Serum 2 creates roughly ten device contexts per second, and in an unpatched build that path alone accounted for about 38 % of the growth rate; that part is not upstream. A vanilla 11.13+ run was not done. Raw samples: attachment 82114. So the original workload of this bug is accounted for by bug 59916 plus application-side fixes; resolving as FIXED by 4ae80e26e5bd6bc30e0e7e7fe3b1a60895f896de. The patches in attachments 82112/82113 target a different application (RootsMagic 11, 32-bit address-space exhaustion from ~2,500 resource creations per second) and would be easier to review as a merge request than as attachments here. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.