BBS: TELESC.NET.BR Assunto: src/conio/scale_spinner.csrc/conio/CMakeLists.txt GNUmakefile scale.c De: Deuc¨ Data: Wed, 27 May 2026 17:29:16 -0700 ----------------------------------------------------------- https://gitlab.synchro.net/main/sbbs/-/commit/85593274bd6e22a844637bd9 Added Files: src/conio/scale_spinner.c Modified Files: src/conio/CMakeLists.txt GNUmakefile scale.c Log Message: Optimize scaled row interpolation The scaler commonly applies integer scaling before the final aspect-correction interpolation. That produces repeated adjacent rows, but interpolate_height() still blended those rows pixel by pixel. Track the vertical repeat count from multiply_scale() and let interpolate_height() copy rows that are known duplicates. Also replace its static temporary row buffers with direct source row pointers and use the actual row byte count. This removes thread-hostile static state and avoids unnecessary row copies. On the scale_spinner X11 profiling run with a dense 0xB2 screen, sampled totals dropped from 4,132 to 2,630 (-36.4%). do_scale samples dropped from 3,407 to 1,844 (-45.9%), and interpolate_height dropped from 3,186 to 1,580 (-50.4%). Add a small scale_spinner profiling binary target for exercising one-cell updates under internal/external scaling. n --- mSynchronetn hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net ----------------------------------------------------------- [Voltar]