Efficiently work with SVG images

What do you want to achieve?

Display a splash screen image on an 800x480px display.

What have you tried so far?

I have an SVG image which is 6.8kB so quite small. If I convert it using the online converter, it balloons to 4.6MB. Realising that LVGL now supports SVG, I thought that would be a great solution however if I enable SVG and use the example code (below) then after I load the image, I seem to stop execution.

example code:

lv_example_svg_1.c

    static const char svg_data[] = "<svg width=\"12cm\" height=\"4cm\" viewBox=\"0 0 1200 400\">"
                                   "<circle cx=\"600\" cy=\"200\" r=\"100\" fill=\"red\" stroke=\"blue\" stroke-width=\"10\"/></svg>";

    static lv_image_dsc_t svg_dsc;
    svg_dsc.header.magic = LV_IMAGE_HEADER_MAGIC;
    svg_dsc.header.w = 450;
    svg_dsc.header.h = 150;
    svg_dsc.data_size = sizeof(svg_data) - 1;
    svg_dsc.data = (const uint8_t *) svg_data;

    lv_obj_t * svg = lv_image_create(lv_screen_active());
    lv_image_set_src(svg, &svg_dsc);

One thing - when I compile the example, I get an error if I do not also include LV_USE_THORVG.

I get the error
#error “LV_USE_VECTOR_GRAPHIC requires (LV_USE_DRAW_SW and LV_USE_THORVG) or LV_USE_DRAW_VG_LITE or (LV_USE_NEMA_GFX and LV_USE_NEMA_VG)”

Environment

  • MCU/MPU/Board: ESP32-S3 in RGB565 mode connected to 800x480 screen
  • LVGL version: 9.4.0

Am I missing something obvious?

More info: turning on detailed logging, when that code is called I get this:

[Info] (4.939, +72) lv_image_create: begin lv_image.c:149
[Trace] (4.939, +0) lv_obj_class_create_obj: Creating object with 0x3c457adc class on 0x3fccaedc parent lv_obj_class.c:49
[Trace] (4.939, +0) lv_malloc_zeroed: allocating 92 bytes lv_mem.c:94
[Trace] (4.940, +1) lv_malloc_zeroed: allocated at 0x3fcc4c5c lv_mem.c:115
[Trace] (4.941, +1) lv_obj_class_create_obj: creating normal object lv_obj_class.c:89
[Trace] (4.942, +1) lv_realloc: reallocating 0x3fccaff0 with 8 size lv_mem.c:150
[Trace] (4.943, +1) lv_realloc: reallocated at 0x3fccaff0 lv_mem.c:166
[Trace] (4.945, +2) lv_obj_constructor: begin lv_obj.c:559
[Trace] (4.945, +0) lv_obj_constructor: finished lv_obj.c:588
[Trace] (4.945, +0) lv_image_constructor: begin lv_image.c:687
[Trace] (4.946, +1) lv_image_constructor: finished lv_image.c:707
[Trace] (4.948, +2) lv_image_set_src: LV_IMAGE_SRC_VARIABLE type found lv_image.c:174
[Trace] (4.948, +0) image_decoder_get_info: Try to find decoder for 0x3fca9828 lv_image_decoder.c:342
[Info] (4.949, +1) image_decoder_get_info: Image decoder didn’t set stride. Calculate it from width. lv_image_decoder.c:382
[Trace] (4.950, +1) image_decoder_get_info: Found decoder SVG lv_image_decoder.c:394

which looks sensible

Hi @eskibrew

Can you provide your lvgl config?

Thanks Andre, I’m using ESP-IDF with the configuration done under MenuConfig therefore config is in the sdkconfig file but I can add the LVGL related stuff from there:

#
# LVGL configuration
#
CONFIG_LV_CONF_SKIP=y
# CONFIG_LV_CONF_MINIMAL is not set

#
# Color Settings
#
# CONFIG_LV_COLOR_DEPTH_32 is not set
# CONFIG_LV_COLOR_DEPTH_24 is not set
CONFIG_LV_COLOR_DEPTH_16=y
# CONFIG_LV_COLOR_DEPTH_8 is not set
# CONFIG_LV_COLOR_DEPTH_1 is not set
CONFIG_LV_COLOR_DEPTH=16
# end of Color Settings

#
# Memory Settings
#
# CONFIG_LV_USE_BUILTIN_MALLOC is not set
CONFIG_LV_USE_CLIB_MALLOC=y
# CONFIG_LV_USE_MICROPYTHON_MALLOC is not set
# CONFIG_LV_USE_RTTHREAD_MALLOC is not set
# CONFIG_LV_USE_CUSTOM_MALLOC is not set
# CONFIG_LV_USE_BUILTIN_STRING is not set
CONFIG_LV_USE_CLIB_STRING=y
# CONFIG_LV_USE_CUSTOM_STRING is not set
# CONFIG_LV_USE_BUILTIN_SPRINTF is not set
CONFIG_LV_USE_CLIB_SPRINTF=y
# CONFIG_LV_USE_CUSTOM_SPRINTF is not set
# end of Memory Settings

#
# HAL Settings
#
CONFIG_LV_DEF_REFR_PERIOD=10
CONFIG_LV_DPI_DEF=130
# end of HAL Settings

#
# Operating System (OS)
#
CONFIG_LV_OS_NONE=y
# CONFIG_LV_OS_PTHREAD is not set
# CONFIG_LV_OS_FREERTOS is not set
# CONFIG_LV_OS_CMSIS_RTOS2 is not set
# CONFIG_LV_OS_RTTHREAD is not set
# CONFIG_LV_OS_WINDOWS is not set
# CONFIG_LV_OS_MQX is not set
# CONFIG_LV_OS_SDL2 is not set
# CONFIG_LV_OS_CUSTOM is not set
# end of Operating System (OS)

#
# Rendering Configuration
#
CONFIG_LV_DRAW_BUF_STRIDE_ALIGN=1
CONFIG_LV_DRAW_BUF_ALIGN=4
# CONFIG_LV_DRAW_TRANSFORM_USE_MATRIX is not set
CONFIG_LV_DRAW_LAYER_SIMPLE_BUF_SIZE=24576
CONFIG_LV_DRAW_LAYER_MAX_MEMORY=0
CONFIG_LV_USE_DRAW_SW=y
CONFIG_LV_DRAW_SW_SUPPORT_RGB565=y
# CONFIG_LV_DRAW_SW_SUPPORT_RGB565A8 is not set
# CONFIG_LV_DRAW_SW_SUPPORT_RGB888 is not set
# CONFIG_LV_DRAW_SW_SUPPORT_XRGB8888 is not set
# CONFIG_LV_DRAW_SW_SUPPORT_ARGB8888 is not set
# CONFIG_LV_DRAW_SW_SUPPORT_ARGB8888_PREMULTIPLIED is not set
# CONFIG_LV_DRAW_SW_SUPPORT_L8 is not set
# CONFIG_LV_DRAW_SW_SUPPORT_AL88 is not set
# CONFIG_LV_DRAW_SW_SUPPORT_A8 is not set
# CONFIG_LV_DRAW_SW_SUPPORT_I1 is not set
CONFIG_LV_DRAW_SW_DRAW_UNIT_CNT=1
# CONFIG_LV_USE_DRAW_ARM2D_SYNC is not set
# CONFIG_LV_USE_NATIVE_HELIUM_ASM is not set
CONFIG_LV_DRAW_SW_COMPLEX=y
# CONFIG_LV_USE_DRAW_SW_COMPLEX_GRADIENTS is not set
CONFIG_LV_DRAW_SW_SHADOW_CACHE_SIZE=0
CONFIG_LV_DRAW_SW_CIRCLE_CACHE_SIZE=4
CONFIG_LV_DRAW_SW_ASM_NONE=y
# CONFIG_LV_DRAW_SW_ASM_NEON is not set
# CONFIG_LV_DRAW_SW_ASM_HELIUM is not set
# CONFIG_LV_DRAW_SW_ASM_CUSTOM is not set
CONFIG_LV_USE_DRAW_SW_ASM=0
# CONFIG_LV_USE_PXP is not set
# CONFIG_LV_USE_G2D is not set
# CONFIG_LV_USE_DRAW_DAVE2D is not set
# CONFIG_LV_USE_DRAW_SDL is not set
# CONFIG_LV_USE_DRAW_VG_LITE is not set
CONFIG_LV_USE_VECTOR_GRAPHIC=y
# CONFIG_LV_USE_DRAW_DMA2D is not set
# CONFIG_LV_USE_PPA is not set
# CONFIG_LV_USE_DRAW_EVE is not set
# end of Rendering Configuration

#
# Feature Configuration
#

#
# Logging
#
CONFIG_LV_USE_LOG=y
CONFIG_LV_LOG_LEVEL_TRACE=y
# CONFIG_LV_LOG_LEVEL_INFO is not set
# CONFIG_LV_LOG_LEVEL_WARN is not set
# CONFIG_LV_LOG_LEVEL_ERROR is not set
# CONFIG_LV_LOG_LEVEL_USER is not set
# CONFIG_LV_LOG_LEVEL_NONE is not set
CONFIG_LV_LOG_LEVEL=0
CONFIG_LV_LOG_PRINTF=y
CONFIG_LV_LOG_USE_TIMESTAMP=y
CONFIG_LV_LOG_USE_FILE_LINE=y
CONFIG_LV_LOG_TRACE_MEM=y
# CONFIG_LV_LOG_TRACE_TIMER is not set
# CONFIG_LV_LOG_TRACE_INDEV is not set
# CONFIG_LV_LOG_TRACE_DISP_REFR is not set
# CONFIG_LV_LOG_TRACE_EVENT is not set
CONFIG_LV_LOG_TRACE_OBJ_CREATE=y
CONFIG_LV_LOG_TRACE_LAYOUT=y
# CONFIG_LV_LOG_TRACE_ANIM is not set
CONFIG_LV_LOG_TRACE_CACHE=y
# end of Logging

#
# Asserts
#
CONFIG_LV_USE_ASSERT_NULL=y
CONFIG_LV_USE_ASSERT_MALLOC=y
# CONFIG_LV_USE_ASSERT_STYLE is not set
# CONFIG_LV_USE_ASSERT_MEM_INTEGRITY is not set
# CONFIG_LV_USE_ASSERT_OBJ is not set
CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h"
# end of Asserts

#
# Debug
#
# CONFIG_LV_USE_REFR_DEBUG is not set
# CONFIG_LV_USE_LAYER_DEBUG is not set
# CONFIG_LV_USE_PARALLEL_DRAW_DEBUG is not set
# end of Debug

#
# Others
#
# CONFIG_LV_ENABLE_GLOBAL_CUSTOM is not set
CONFIG_LV_CACHE_DEF_SIZE=0
CONFIG_LV_IMAGE_HEADER_CACHE_DEF_CNT=0
CONFIG_LV_GRADIENT_MAX_STOPS=2
CONFIG_LV_COLOR_MIX_ROUND_OFS=128
# CONFIG_LV_OBJ_STYLE_CACHE is not set
# CONFIG_LV_USE_OBJ_ID is not set
# CONFIG_LV_USE_OBJ_NAME is not set
# CONFIG_LV_USE_OBJ_PROPERTY is not set
# CONFIG_LV_USE_VG_LITE_THORVG is not set
# CONFIG_LV_USE_GESTURE_RECOGNITION is not set
# end of Others
# end of Feature Configuration

#
# Compiler Settings
#
# CONFIG_LV_BIG_ENDIAN_SYSTEM is not set
CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE=1
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
CONFIG_LV_USE_FLOAT=y
CONFIG_LV_USE_MATRIX=y
# CONFIG_LV_USE_PRIVATE_API is not set
# end of Compiler Settings

#
# Font Usage
#

#
# Enable built-in fonts
#
# CONFIG_LV_FONT_MONTSERRAT_8 is not set
# CONFIG_LV_FONT_MONTSERRAT_10 is not set
# CONFIG_LV_FONT_MONTSERRAT_12 is not set
CONFIG_LV_FONT_MONTSERRAT_14=y
# CONFIG_LV_FONT_MONTSERRAT_16 is not set
CONFIG_LV_FONT_MONTSERRAT_18=y
# CONFIG_LV_FONT_MONTSERRAT_20 is not set
# CONFIG_LV_FONT_MONTSERRAT_22 is not set
# CONFIG_LV_FONT_MONTSERRAT_24 is not set
# CONFIG_LV_FONT_MONTSERRAT_26 is not set
# CONFIG_LV_FONT_MONTSERRAT_28 is not set
# CONFIG_LV_FONT_MONTSERRAT_30 is not set
# CONFIG_LV_FONT_MONTSERRAT_32 is not set
# CONFIG_LV_FONT_MONTSERRAT_34 is not set
# CONFIG_LV_FONT_MONTSERRAT_36 is not set
# CONFIG_LV_FONT_MONTSERRAT_38 is not set
# CONFIG_LV_FONT_MONTSERRAT_40 is not set
# CONFIG_LV_FONT_MONTSERRAT_42 is not set
# CONFIG_LV_FONT_MONTSERRAT_44 is not set
# CONFIG_LV_FONT_MONTSERRAT_46 is not set
CONFIG_LV_FONT_MONTSERRAT_48=y
# CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED is not set
# CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set
# CONFIG_LV_FONT_SOURCE_HAN_SANS_SC_14_CJK is not set
# CONFIG_LV_FONT_SOURCE_HAN_SANS_SC_16_CJK is not set
# CONFIG_LV_FONT_UNSCII_8 is not set
# CONFIG_LV_FONT_UNSCII_16 is not set
# end of Enable built-in fonts

# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_10 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12 is not set
CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14=y
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48 is not set
# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED is not set
# CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW is not set
# CONFIG_LV_FONT_DEFAULT_SOURCE_HAN_SANS_SC_14_CJK is not set
# CONFIG_LV_FONT_DEFAULT_SOURCE_HAN_SANS_SC_16_CJK is not set
# CONFIG_LV_FONT_DEFAULT_UNSCII_8 is not set
# CONFIG_LV_FONT_DEFAULT_UNSCII_16 is not set
# CONFIG_LV_FONT_FMT_TXT_LARGE is not set
# CONFIG_LV_USE_FONT_COMPRESSED is not set
CONFIG_LV_USE_FONT_PLACEHOLDER=y

#
# Enable static fonts
#
# end of Enable static fonts
# end of Font Usage

#
# Text Settings
#
CONFIG_LV_TXT_ENC_UTF8=y
# CONFIG_LV_TXT_ENC_ASCII is not set
CONFIG_LV_TXT_BREAK_CHARS=" ,.;:-_"
CONFIG_LV_TXT_LINE_BREAK_LONG_LEN=0
CONFIG_LV_TXT_COLOR_CMD="#"
# CONFIG_LV_USE_BIDI is not set
# CONFIG_LV_USE_ARABIC_PERSIAN_CHARS is not set
# end of Text Settings

#
# Widget Usage
#
CONFIG_LV_WIDGETS_HAS_DEFAULT_VALUE=y
CONFIG_LV_USE_ANIMIMG=y
CONFIG_LV_USE_ARC=y
CONFIG_LV_USE_ARCLABEL=y
CONFIG_LV_USE_BAR=y
CONFIG_LV_USE_BUTTON=y
CONFIG_LV_USE_BUTTONMATRIX=y
CONFIG_LV_USE_CALENDAR=y
CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY=y

#
# Days name configuration
#
CONFIG_LV_MONDAY_STR="Mo"
CONFIG_LV_TUESDAY_STR="Tu"
CONFIG_LV_WEDNESDAY_STR="We"
CONFIG_LV_THURSDAY_STR="Th"
CONFIG_LV_FRIDAY_STR="Fr"
CONFIG_LV_SATURDAY_STR="Sa"
CONFIG_LV_SUNDAY_STR="Su"
# end of Days name configuration

CONFIG_LV_USE_CALENDAR_HEADER_ARROW=y
CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN=y
# CONFIG_LV_USE_CALENDAR_CHINESE is not set
CONFIG_LV_USE_CANVAS=y
CONFIG_LV_USE_CHART=y
CONFIG_LV_USE_CHECKBOX=y
CONFIG_LV_USE_DROPDOWN=y
CONFIG_LV_USE_IMAGE=y
CONFIG_LV_USE_IMAGEBUTTON=y
CONFIG_LV_USE_KEYBOARD=y
CONFIG_LV_USE_LABEL=y
CONFIG_LV_LABEL_TEXT_SELECTION=y
CONFIG_LV_LABEL_LONG_TXT_HINT=y
CONFIG_LV_LABEL_WAIT_CHAR_COUNT=3
CONFIG_LV_USE_LED=y
CONFIG_LV_USE_LINE=y
CONFIG_LV_USE_LIST=y
# CONFIG_LV_USE_LOTTIE is not set
CONFIG_LV_USE_MENU=y
CONFIG_LV_USE_MSGBOX=y
CONFIG_LV_USE_ROLLER=y
CONFIG_LV_USE_SCALE=y
CONFIG_LV_USE_SLIDER=y
CONFIG_LV_USE_SPAN=y
CONFIG_LV_SPAN_SNIPPET_STACK_SIZE=64
CONFIG_LV_USE_SPINBOX=y
CONFIG_LV_USE_SPINNER=y
CONFIG_LV_USE_SWITCH=y
CONFIG_LV_USE_TEXTAREA=y
CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME=1500
CONFIG_LV_USE_TABLE=y
CONFIG_LV_USE_TABVIEW=y
CONFIG_LV_USE_TILEVIEW=y
CONFIG_LV_USE_WIN=y
# end of Widget Usage

#
# Themes
#
CONFIG_LV_USE_THEME_DEFAULT=y
# CONFIG_LV_THEME_DEFAULT_DARK is not set
CONFIG_LV_THEME_DEFAULT_GROW=y
CONFIG_LV_THEME_DEFAULT_TRANSITION_TIME=80
CONFIG_LV_USE_THEME_SIMPLE=y
# CONFIG_LV_USE_THEME_MONO is not set
# end of Themes

#
# Layouts
#
CONFIG_LV_USE_FLEX=y
CONFIG_LV_USE_GRID=y
# end of Layouts

#
# 3rd Party Libraries
#
CONFIG_LV_FS_DEFAULT_DRIVER_LETTER=0
# CONFIG_LV_USE_FS_STDIO is not set
# CONFIG_LV_USE_FS_POSIX is not set
# CONFIG_LV_USE_FS_WIN32 is not set
# CONFIG_LV_USE_FS_FATFS is not set
# CONFIG_LV_USE_FS_MEMFS is not set
# CONFIG_LV_USE_FS_LITTLEFS is not set
# CONFIG_LV_USE_FS_ARDUINO_ESP_LITTLEFS is not set
# CONFIG_LV_USE_FS_ARDUINO_SD is not set
# CONFIG_LV_USE_FS_UEFI is not set
# CONFIG_LV_USE_FS_FROGFS is not set
# CONFIG_LV_USE_LODEPNG is not set
# CONFIG_LV_USE_LIBPNG is not set
# CONFIG_LV_USE_BMP is not set
# CONFIG_LV_USE_TJPGD is not set
# CONFIG_LV_USE_LIBJPEG_TURBO is not set
# CONFIG_LV_USE_GIF is not set
# CONFIG_LV_BIN_DECODER_RAM_LOAD is not set
CONFIG_LV_USE_SVG=y
# CONFIG_LV_USE_SVG_ANIMATION is not set
# CONFIG_LV_USE_RLE is not set
# CONFIG_LV_USE_QRCODE is not set
# CONFIG_LV_USE_BARCODE is not set
# CONFIG_LV_USE_FREETYPE is not set
# CONFIG_LV_USE_TINY_TTF is not set
# CONFIG_LV_USE_RLOTTIE is not set
CONFIG_LV_USE_THORVG=y
CONFIG_LV_USE_THORVG_INTERNAL=y
# CONFIG_LV_USE_THORVG_EXTERNAL is not set
# CONFIG_LV_USE_LZ4 is not set
# CONFIG_LV_USE_FFMPEG is not set
# end of 3rd Party Libraries

#
# Others
#
# CONFIG_LV_USE_SNAPSHOT is not set
# CONFIG_LV_USE_SYSMON is not set
# CONFIG_LV_USE_PROFILER is not set
# CONFIG_LV_USE_MONKEY is not set
# CONFIG_LV_USE_GRIDNAV is not set
# CONFIG_LV_USE_FRAGMENT is not set
# CONFIG_LV_USE_IMGFONT is not set
CONFIG_LV_USE_OBSERVER=y
# CONFIG_LV_USE_IME_PINYIN is not set
# CONFIG_LV_USE_FILE_EXPLORER is not set
# CONFIG_LV_USE_FONT_MANAGER is not set
# CONFIG_LV_USE_TEST is not set
# CONFIG_LV_USE_TRANSLATION is not set
# CONFIG_LV_USE_XML is not set
# CONFIG_LV_USE_COLOR_FILTER is not set
CONFIG_LVGL_VERSION_MAJOR=9
CONFIG_LVGL_VERSION_MINOR=4
CONFIG_LVGL_VERSION_PATCH=0
# end of Others

#
# Devices
#
# CONFIG_LV_USE_SDL is not set
# CONFIG_LV_USE_X11 is not set
# CONFIG_LV_USE_WAYLAND is not set
# CONFIG_LV_USE_LINUX_FBDEV is not set
# CONFIG_LV_USE_NUTTX is not set
# CONFIG_LV_USE_LINUX_DRM is not set
# CONFIG_LV_USE_TFT_ESPI is not set
# CONFIG_LV_USE_LOVYAN_GFX is not set
# CONFIG_LV_USE_EVDEV is not set
# CONFIG_LV_USE_LIBINPUT is not set
# CONFIG_LV_USE_ST7735 is not set
# CONFIG_LV_USE_ST7789 is not set
# CONFIG_LV_USE_ST7796 is not set
# CONFIG_LV_USE_ILI9341 is not set
# CONFIG_LV_USE_GENERIC_MIPI is not set
# CONFIG_LV_USE_NXP_ELCDIF is not set
# CONFIG_LV_USE_RENESAS_GLCDC is not set
# CONFIG_LV_USE_ST_LTDC is not set
# CONFIG_LV_USE_FT81X is not set
# CONFIG_LV_USE_UEFI is not set
# CONFIG_LV_USE_OPENGLES is not set
# CONFIG_LV_USE_QNX is not set
# end of Devices

#
# Examples
#
# CONFIG_LV_BUILD_EXAMPLES is not set
# end of Examples

#
# Demos
#
# CONFIG_LV_BUILD_DEMOS is not set
# end of Demos
# end of LVGL configuration
# end of Component config

I’ve now built LVGL 9.4.0 for the CYD (Cheap Yellow Display) and it seems to load the example SVG correctly there although I had to double the stack size. It shows that LVGL does work with SVGs and it must be something I’m doing wrong…

It could just be an out of memory issue, that’s why increasing the stack size helps

Does your SVG render now?

It does work on the CYD display, as shown in the image above although if I change the SVG so that the circle radius is more than 46 pixels, it fails, causing a boot loop. Weirdly though, if I restrict the circle radius to 45 then add an additional rectangle which is even larger, it displays fine.

All that is beside the point, I took the working code from the CYD and tried it on my main project and still have no luck getting it to display. Weird…

I’ve now run out of time and have decided instead to put the splash image on an SD card as a BMP (i.e. a large file) which I will load and display instead.