Files
u-boot/doc/usage/cmd/font.rst
Simon Glass 69d2f4ab58 video: truetype: Use pre-allocated buffer for glyph rendering
The TrueType console driver calls malloc/free for every character
rendered, which causes significant memory fragmentation and allocation
traffic.

Add CONFIG_CONSOLE_TRUETYPE_GLYPH_BUF to enable a pre-allocated buffer
in the driver's private data. The buffer starts at 4KB and grows via
realloc() as needed. When rendering a glyph, use this buffer to avoid
malloc/free for normal characters.

The buffer is allocated lazily after relocation to avoid consuming
early malloc space before the full heap is available.

Add CONFIG_VIDEO_GLYPH_STATS (default y on sandbox) to track the number
of glyphs rendered. Use 'font info' to view the count.

Series-changes: 2
- Rename the Kconfig to just enable the feature: always allocate

Co-developed-by: Claude Opus 4 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-10 05:53:00 -07:00

95 lines
1.8 KiB
ReStructuredText

.. SPDX-License-Identifier: GPL-2.0+:
.. index::
single: font (command)
font command
============
Synopsis
--------
::
font list
font select [<name> [<size>]]
font size [<size>]
font info
Description
-----------
The *font* command allows selection of the font to use on the video console.
This is available when the TrueType console is in use.
font list
~~~~~~~~~
This lists the available fonts, using the name of the font file in the build.
Any enabled bitmap fonts are listed as well.
font select
~~~~~~~~~~~
This selects a new font and optionally changes the size. If the name is not
provided, the default font is used.
font size
~~~~~~~~~
This changes the font size only. With no argument it shows the current size.
font info
~~~~~~~~~
This shows glyph rendering statistics, specifically the number of glyphs
rendered since the video console was set up.
This subcommand requires CONFIG_VIDEO_GLYPH_STATS=y.
Examples
--------
::
=> font list
nimbus_sans_l_regular
cantoraone_regular
=> font size
30
=> font size 40
=> font select cantoraone_regular 20
=>
This shows an example of selecting a bitmap font when Truetype is active::
=> font list
8x16
12x22
nimbus_sans_l_regular
cantoraone_regular
=> font sel 8x16
This shows glyph rendering statistics::
=> font info
glyphs rendered: 32705
Configuration
-------------
The command is only available if CONFIG_CONSOLE_TRUETYPE=y.
CONFIG_CONSOLE_TRUETYPE_GLYPH_BUF enables a pre-allocated buffer for glyph
rendering, avoiding malloc/free per character. The buffer starts at 4KB and
grows as needed via realloc().
CONFIG_VIDEO_GLYPH_STATS enables tracking of glyph-rendering statistics.
Return value
------------
The return value $? is 0 (true) if the command completes.
The return value is 1 (false) if the command fails.