No description
We received a report of Tux Paint generating too much heat on a MacBook Pro (15-inch, 2017 running macOS Mojave 10.14.6). The bug report included a screenshot of Activity Monitor's Energy Tab showing Tux Paint having an Enegy Impact of "23.4" and Avg Energy Impact of "3.94". Although we weren't able to reproduce the same conditions exactly, we did observe Tux Paint having an Energy Impact level of around ~15 even when idle on both macOS Yosemite 10.10.5 and Big Sur 11.1. Energy Impact leve of ~25 when in use was not uncommon, and spiked to ~55. The MacBook Air used for testing (11-inch, Early 2014) did not become hot "to the touch" as was originally reported, but it did become noticibly warm. An investigation found the cause to be in two places: 1. Tux Paint's main loop runs fairly tightly, yielding only a minimum time slice to the kernel after each iteration using SDL_Delay(1) (1 millisecond). This has been increasd to 10 millisecond to give more slice back to the kernel. Increasing the 1ms yield to 10ms should be only minimally noticible as Tux Paint is primarily a human interaction software and human eyes perceive responses < ~100ms as immediate, giving us over 90ms to accomplish what we need to after each iteration as opposed to the previous 99ms. 2. Enabling SDL's timer subsystem (SDL_INIT_TIMER), even when not used actively, has a high impact on the energy impact. Some testing showed the timer subsystem, though supposedly a part of SDL_Delay() and SDL_GetTicks(), is not required to be enabled to use those functions. It does require to be enabled, however, to use SDL_AddTimer() which is only used in Tux Paint when scrolling. Tux Paint therefore has been modified to enable the timer subsystem only when scrolling starts and disable it when not scrolling. The solution to #2 is not an ideal approach but it did provide a quick solution to the user having the problem. Issue #2 should get resolved naturally when we upgrade to SDL2 where the timer subsystem does not appear to have the energy impact issue. |
||
|---|---|---|
| custom | ||
| data | ||
| docs | ||
| fonts/locale | ||
| haiku | ||
| hildon | ||
| im | ||
| macos | ||
| maemo/debian | ||
| magic | ||
| obj | ||
| osk | ||
| src | ||
| stamps/cartoon/tux | ||
| starters | ||
| templates | ||
| visualc | ||
| win32 | ||
| .cvsignore | ||
| .gitignore | ||
| dummy.c | ||
| findbad | ||
| Makefile | ||
| README.txt | ||
| tuxpaint.spec | ||
Tux Paint Tux Paint is a free, award-winning drawing program for children ages 3 to 12. It combines an easy-to-use interface, fun sound effects, and an encouraging cartoon mascot who guides children as they use the program. Kids are presented with a blank canvas and a variety of drawing tools to help them be creative. Along with paintbrush, shapes and text, Tux Paint includes a "stamp" feature to add pre-drawn or photographic imagery to pictures, and a set of "magic tools" that provide filter effects (like blur, tint and waves) and interesting drawing tools (like train tracks, bubbles and grass). Tux Paint includes a collection of "starter" images, both coloring-book style and photo-realistic, and a large collections of stamps are available as a separate download. Additional content can be added by parents and teachers, or downloaded from 3rd parties. Please see the full documentation located in the "docs" directory. $Id$