|
From: <and...@gm...> - 2026-06-09 14:49:04
|
Automated mail by fx, on behalf of and...@gm... Ticket Change [086058e0054338fb0c520761cf84caa354cf44c17e349c4186d61c15176d8678] [Cache Composed Pixmaps for Ttk Image Elements] By mtmcp_ For Tk On 2026-06-09T14:38:00.685 Details https://core.tcl-lang.org/tk/tinfo?name=086058e0054338fb0c520761cf84caa354cf44c17e349c4186d61c15176d8678 Ticket https://core.tcl-lang.org/tk/tktview/7caf9e9edcfbee425264b76be61c973c7bd2db1f Changed Fields icomment: Okay, so I implemented TkpPutRGBAImage on Windows (see latest ttk-layout-node-cache.diff). With that change plus the layout-node caching mechanism, the results seem pretty solid! The gap between opaque and transparent is ~ 40ms, and the overall cost is dramatically less than without this patch. Horizontal and vertical resize are better than diagonal, understandably, so the overall performance improvement with this change will be really nice on Windows, and Linux given regular usage (not the benchmark script). Once macOS can take advantage of the caching it will likely see a speedup as well. Windows (with TkpPutRGBAImage + cache): Diagonal: - Opaque: resize-bench (diagonal): 52 steps in 6827.6ms (131.30ms/step) - Transparent: resize-bench (diagonal): 52 steps in 9053.8ms (174.11ms/step) Horizontal: - Opaque: resize-bench (horizontal): 52 steps in 5495.4ms (105.68ms/step) - Transparent: resize-bench (horizontal): 52 steps in 7858.9ms (151.13ms/step) Vertical: - Opaque: resize-bench (vertical): 42 steps in 3120.4ms (74.30ms/step) - Transparent: resize-bench (vertical): 42 steps in 4941.8ms (117.66ms/step) login: mtmcp_ ------------------------------------------------------------ See Tcl/Tk development @ http://core.tcl-lang.org/ ------------------------------------------------------------ |