HQ Path QEMU Size Report

  • Commit: 1fe189eb

  • Date: 2026-05-21T16:01:31.525244

  • Build target: APP=HelloSizeAnalysis APP_SUB=hq_path_probe PORT=qemu CPU_ARCH=cortex-m0plus

  • Measurement method: build HelloSizeAnalysis/hq_path_probe baseline, then rewrite the app-local probe config header to force-link a single HQ path into the final ELF.

  • Report scope: isolated static link delta only. This report does not include runtime heap/stack because the HQ geometry paths themselves do not allocate heap.

How To Read

  • Delta Text: .text increment relative to baseline, used as the main code-size number.

  • Delta Rodata: extra lookup tables / constants brought in by the HQ path.

  • Delta ROM: .text + .rodata total flash increment relative to baseline.

  • ARC_HQ here measures egui_canvas_draw_arc_hq() + egui_canvas_draw_arc_fill_hq() only.

  • ARC_ROUND_CAP_HQ is listed separately because it is a real widget-facing helper and it pulls both arc and circle-fill dependencies.

  • Delta ROM is the real ELF section delta. It is often larger than the listed public symbol sizes because static helpers and dependent sections are linked too.

  • The +8 BSS seen in probe variants comes from the probe harness guard in HelloSizeAnalysis/hq_path_probe, not from persistent HQ runtime state.

  • Turning a path off can only reclaim the same bytes when no other object still references that path.

Baseline

Variant

Text

Rodata

Data

Bss

Total ROM

Baseline

27032

7504

1392

6612

34536

Increment Summary

Path

Delta Text

Delta Rodata

Delta Data

Delta Bss

Delta ROM

LINE_HQ

+12396

+68

+0

+4

+12464

CIRCLE_HQ

+2828

+36

+0

+4

+2864

ARC_HQ

+8372

+764

+0

+4

+9136

ARC_ROUND_CAP_HQ

+10640

+804

+0

+4

+11444

ALL_HQ

+20988

+796

+0

+4

+21784

Detailed Variants

Variant

Probe Config

Text

Rodata

Data

Bss

Total ROM

Baseline

(none)

27032

7504

1392

6612

34536

LINE_HQ

-DEGUI_SIZE_PROBE_LINK_LINE_HQ=1

39428

7572

1392

6616

47000

CIRCLE_HQ

-DEGUI_SIZE_PROBE_LINK_CIRCLE_HQ=1

29860

7540

1392

6616

37400

ARC_HQ

-DEGUI_SIZE_PROBE_LINK_ARC_HQ=1

35404

8268

1392

6616

43672

ARC_ROUND_CAP_HQ

-DEGUI_SIZE_PROBE_LINK_ARC_ROUND_CAP_HQ=1

37672

8308

1392

6616

45980

ALL_HQ

-DEGUI_SIZE_PROBE_LINK_LINE_HQ=1 -DEGUI_SIZE_PROBE_LINK_CIRCLE_HQ=1 -DEGUI_SIZE_PROBE_LINK_ARC_HQ=1

48020

8300

1392

6616

56320

Linked Symbol Breakdown

LINE_HQ

  • Description: Force link the line/polyline HQ path only.

  • Symbol text total: 3636 bytes

Symbol

Size (bytes)

Type

egui_canvas_draw_line_hq

2024

T

egui_canvas_draw_line_round_cap_hq

1552

T

egui_canvas_draw_polyline_hq

30

T

egui_canvas_draw_polyline_round_cap_hq

30

T

CIRCLE_HQ

  • Description: Force link the circle HQ path only.

  • Symbol text total: 2708 bytes

Symbol

Size (bytes)

Type

egui_canvas_draw_circle_fill_hq

1744

T

egui_canvas_draw_circle_hq

964

T

ARC_HQ

  • Description: Force link the arc HQ path only. Round-cap arc is excluded to avoid double counting line/circle dependencies.

  • Symbol text total: 1132 bytes

Symbol

Size (bytes)

Type

egui_canvas_draw_arc_fill_hq

624

T

egui_canvas_draw_arc_hq

508

T

ARC_ROUND_CAP_HQ

  • Description: Force link the round-cap arc helper used by widgets like activity_ring.

  • Symbol text total: 2668 bytes

Symbol

Size (bytes)

Type

egui_canvas_draw_circle_fill_hq

1744

T

egui_canvas_draw_arc_hq

508

T

egui_canvas_draw_arc_round_cap_hq

416

T

ALL_HQ

  • Description: Force link the three core HQ paths together.

  • Symbol text total: 7476 bytes

Symbol

Size (bytes)

Type

egui_canvas_draw_line_hq

2024

T

egui_canvas_draw_circle_fill_hq

1744

T

egui_canvas_draw_line_round_cap_hq

1552

T

egui_canvas_draw_circle_hq

964

T

egui_canvas_draw_arc_fill_hq

624

T

egui_canvas_draw_arc_hq

508

T

egui_canvas_draw_polyline_hq

30

T

egui_canvas_draw_polyline_round_cap_hq

30

T

Reproduce

python scripts/size_analysis/main.py hq-size-to-doc

The raw JSON is written to output/hq_size_results.json.