Skip to content

2.1.10#39

Draft
roffe wants to merge 87 commits into
masterfrom
develop
Draft

2.1.10#39
roffe wants to merge 87 commits into
masterfrom
develop

Conversation

@roffe

@roffe roffe commented Jun 12, 2026

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates txlogger for the 2.1.10 release with a large performance- and UX-focused refactor across UI rendering, logging, and internal messaging. Major themes include faster plot/map rendering (including new mesh backends and decimation), a new typed pub/sub bus, and a simplified log-writing pipeline via ordered “channels” plus a new BPL log format.

Changes:

  • Refactor logging writers and ECU loggers to write via an ordered []Channel abstraction; add BPL writer support.
  • Rework visualization performance: plotter seek coalescing + decimated plotting, meshgrid shader/polygon backends + surface fill modes, and multiple renderer object-list caching optimizations.
  • Replace legacy eventbus usage with a new type-safe pkg/bus implementation and update consumers accordingly.

Reviewed changes

Copilot reviewed 70 out of 75 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
pprof.go Optional pprof server behind build tag
pkg/windows/mainWindow.go UI tweaks; wideband range config change
pkg/windows/mainWindow_internal.go Remove EBUS monitor window plumbing
pkg/widgets/vbar/vbar.go Renderer object caching
pkg/widgets/symbollist/symbollist.go Sorting/locking + allocation reductions
pkg/widgets/settings/wbleditor.go Cache renderer object list (needs invalidation)
pkg/widgets/plotter/plotter.go Seek coalescing + decimated plotting path
pkg/widgets/plotter/plotter_render.go Renderer object caching
pkg/widgets/plotter/plotter_bench_test.go Plot performance benchmarks
pkg/widgets/plotter/bresenham.go Add vertical-run fill primitive
pkg/widgets/multiwindow/multiplewindows.go Drag/layout improvements; reuse buffers; layout guards
pkg/widgets/multiwindow/innerwindow.go Avoid brittle title lookup; cache title label
pkg/widgets/multiwindow/arrange.go Nil-guard in space search
pkg/widgets/meshgrid/meshgrid_widget.go Major meshgrid backend + cursor + render modes
pkg/widgets/meshgrid/meshgrid_surface.go CPU surface fill + shading utilities
pkg/widgets/meshgrid/meshgrid_shader_test.go Shader encoding/projection tests + compile checks
pkg/widgets/meshgrid/meshgrid_render_test.go Meshgrid render/cursor/polygon tests + benches
pkg/widgets/meshgrid/meshgrid_poly.go Polygon backend implementation
pkg/widgets/meshgrid/meshgrid_mouse.go Orbit behavior changes
pkg/widgets/meshgrid/meshgrid_draw.go Surface render integration + cursor projection
pkg/widgets/meshgrid/meshgrid_axis.go Axis overlay primitives for non-image backends
pkg/widgets/mapviewer/mapviewer.go Mesh render mode toggle + 2D graph for flat maps
pkg/widgets/mapviewer/mapviewer_mouse.go Selection perf improvements
pkg/widgets/mapviewer/mapviewer_keyhandler.go Avoid redundant cursor rect updates
pkg/widgets/logplayer/logplayer.go Switch to new typed bus; renderer cache
pkg/widgets/ledicon/ledicon.go Renderer object caching
pkg/widgets/icon/icon.go Renderer object caching + explicit receiver field
pkg/widgets/hbar/hbar.go Renderer object caching + receiver refactor
pkg/widgets/grid/grid.go Renderer object caching + receiver refactor
pkg/widgets/graph2d/graph2d_render_test.go Graph2D render tests
pkg/widgets/dashboard/setters.go Reduce allocations in IDC text formatting
pkg/widgets/dashboard/dashboard.go Wideband range validation + layout cleanup
pkg/widgets/combinedlogplayer/combinedlogplayer.go Swap eventbus for typed bus
pkg/widgets/cbar/cbar.go Clamp + faster text positioning
pkg/wbl/zeitronix/zeitronix.go Robust reconnect/stop handling
pkg/wbl/stag/stag.go Robust reconnect/stop handling
pkg/wbl/innovate/innovate.go Robust reconnect/stop handling
pkg/wbl/aem/aem_uego.go Robust reconnect/stop handling
pkg/ebus/ebus.old Legacy ebus implementation snapshot
pkg/ebus/ebus.go Switch ebus to new typed bus + aggregators
pkg/datalogger/txbridgelogger_t8.go Switch writer calls to []Channel
pkg/datalogger/txbridgelogger_t7.go Switch writer calls to []Channel + router
pkg/datalogger/txbridgelogger_t5.go Switch writer calls to []Channel
pkg/datalogger/t8logger.go Switch writer calls to []Channel
pkg/datalogger/t7logger.go Switch writer calls to []Channel + error handling
pkg/datalogger/t5logger.go Switch writer calls to []Channel
pkg/datalogger/log.go Writer factory updates; TXBinWriter stub remains
pkg/datalogger/log_txl.go TXL writer updated to channel-based output
pkg/datalogger/log_csv.go CSV writer updated to channel-based output
pkg/datalogger/log_bpl.go BPL writer updated to channel-based output
pkg/datalogger/datalogger.go LogWriter interface updated
pkg/datalogger/channel.go New channel abstraction for log columns
pkg/datalogger/baselogger.go Build ordered channel list (order is nondeterministic currently)
pkg/bus/bus.go New type-safe pub/sub bus
pkg/bus/bus_test.go Bus correctness tests
pkg/bus/bus_bench_test.go Bus benchmarks
pkg/bus/aggregators.go DIFF aggregator for derived topics
pkg/bus/aggregators_test.go Aggregator tests
pkg/assets/WHATSNEW.md 2.1.10 release notes
main.go Remove commented pprof import
go.sum Dependency bumps
go.mod Dependency bumps + go toolchain updates
experiments/eventbus/unbounded.go Experimental unbounded channel
experiments/eventbus/unbounded_test.go Tests for experimental unbounded channel
experiments/eventbus/eventbus.go Experimental eventbus implementation
experiments/eventbus/eventbus_test.go Tests for experimental eventbus
experiments/eventbus/bench_test.go Benchmarks for experimental eventbus
experiments/eventbus/aggregators.go Experimental aggregators
experiments/ebusmonitor/ebusmonitor.go Experimental ebus monitor widget
.github/workflows/windows.yml CI Go/NSIS version bumps
.github/workflows/windows-release.yml CI Go/NSIS version bumps
.github/workflows/linux.yml CI Go version bump
.github/workflows/linux-release.yml CI Go version bump

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pkg/widgets/settings/wbleditor.go Outdated
Comment on lines +137 to +142
func (bl *BaseLogger) buildChannels() []Channel {
order := bl.appendExtraSysvars(bl.sysvars.Keys())
channels := make([]Channel, 0, len(order)+len(bl.Symbols))
for _, name := range order {
channels = append(channels, newSysvarChannel(bl.sysvars, name))
}
Comment thread pkg/datalogger/log.go Outdated
@roffe roffe marked this pull request as draft June 18, 2026 22:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants