Skip to content

ESP-GSP configuration reference

This reference covers application configuration. Runtime settings are firmware defaults and remain configurable with source or prebuilt components. Library capabilities are read-only limits published by the archive; they are not Kconfig options.

Common options

CONFIG_ESP_GSP_ENABLE_IMAGE_CACHE

Cache decoded images on demand

  • Project default: true
  • Type/range: bool / boolean
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Runtime product setting. Disable to use bounded region decoding. The prebuilt archive still contains both implementations.

CONFIG_ESP_GSP_ENABLE_ASYNC_DECODE

Decode images in the background

  • Project default: true
  • Type/range: bool / boolean
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Creates a decode worker when the current scene has an image cache. Disabling saves its stack and RTOS objects but moves decode work to the render-task fallback and may increase frame latency.

CONFIG_ESP_GSP_ENABLE_TRANSITION_SNAPSHOTS

Use transition snapshots when available

  • Project default: true
  • Type/range: bool / boolean
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Runtime product setting. Disable to select the lower-memory transition path. The prebuilt archive supports both paths.

Advanced settings (optional) / Capacity and feature limits / Core object and component pools

CONFIG_ESP_GSP_MAX_SCENES

Scene capacity (0 = automatic)

  • Project default: 0
  • Type/range: int / 0..65534
  • Prebuilt component: configurable
  • JSON AUTO-derived: yes

AUTO (0) uses the exact scene count stored in the GSPB. A non-zero value is an explicit project budget and generation fails when the bundle needs more scenes.

CONFIG_ESP_GSP_MAX_TIMERS

Maximum simultaneous application timers

  • Project default: 8
  • Type/range: int / 1..32
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Maximum simultaneous application timers. Registration returns ESP_GSP_ERR_LIMIT_EXCEEDED when this capacity is exhausted.

CONFIG_ESP_GSP_MAX_WIDGETS

Maximum simultaneous template-widget instances

  • Project default: 16
  • Type/range: int / 1..255
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Maximum simultaneous template-widget instances. Increase this capacity if application widget creation reaches the configured limit.

CONFIG_ESP_GSP_MAX_ANIMATIONS

Maximum concurrent runtime animations

  • Project default: 32
  • Type/range: int / 0..128
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Maximum simultaneous runtime animations. Increase this capacity when animation capacity warnings appear.

CONFIG_ESP_GSP_MAX_LISTS

List and wheel capacity (0 = automatic)

  • Project default: 0
  • Type/range: int / 0..256
  • Prebuilt component: configurable
  • JSON AUTO-derived: yes

AUTO (0) sums authored List/Wheel bindings across bundled scenes because handles currently have UI-instance lifetime. A non-zero value is an explicit project budget.

CONFIG_ESP_GSP_LIST_MAX_SLOTS

Visible rows per list (0 = automatic)

  • Project default: 0
  • Type/range: int / 0..65535
  • Prebuilt component: configurable
  • JSON AUTO-derived: yes

AUTO (0) writes the exact authored requirement into GSPB and runtime allocates that many rows. A non-zero project value is an explicit upper bound and generation fails when it is below the requirement.

CONFIG_ESP_GSP_LIST_TEXT_SLOTS

Dynamic text fields per row (0 = automatic)

  • Project default: 0
  • Type/range: int / 0..65533
  • Prebuilt component: configurable
  • JSON AUTO-derived: yes

AUTO (0) uses the requirement derived from authored row templates. A non-zero value explicitly reserves at least that many shaped-text slots per visible row.

CONFIG_ESP_GSP_COMPONENT_INSTANCES

Component instance capacity (0 = automatic)

  • Project default: 0
  • Type/range: int / 0..256
  • Prebuilt component: configurable
  • JSON AUTO-derived: yes

AUTO (0) keeps the legacy baseline of eight and raises it from each scene’s generated semantic directory when authored components need more slots. A non-zero project value reserves additional application-created concurrency but never limits authored content. Applications that need a strict budget can set a non-zero per-instance override; values below authored demand fail initialization instead of truncating it.

CONFIG_ESP_GSP_STACK_VIEW_MAX_DEPTH

Navigation stack depth (0 = automatic)

  • Project default: 0
  • Type/range: int / 0..64
  • Prebuilt component: configurable
  • JSON AUTO-derived: yes

AUTO (0) uses the deepest authored StackView requirement. A non-zero value is an explicit project budget.

Advanced settings (optional) / Capacity and feature limits / Renderer and frame-planning capacity

CONFIG_ESP_GSP_COMPONENT_OVERLAY_COMMANDS

Base component overlay command capacity

  • Project default: 32
  • Type/range: int / 2..128
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Resident overlay commands available to component chrome before the two commands reserved for each List/Wheel fade. Each command costs about 40 bytes. Exhaustion drops later overlay commands and logs the configured capacity.

CONFIG_ESP_GSP_DIRTY_RECT_CAPACITY

Dirty rectangles retained per frame

  • Project default: 32
  • Type/range: int / 4..128
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Shared capacity for scene dirty storage, portable frame planning and the ESP-LCD presenter damage contract. Each persistent frame loop keeps two arrays at about 16 bytes per entry. When the set is full, GSP compacts it or promotes the frame to a full redraw. This is a project policy, not a scene-derived AUTO requirement.

Advanced settings (optional) / Capacity and feature limits / Canvas, text, image, and font pools

CONFIG_ESP_GSP_CANVAS_SLOTS

External frame-sink (canvas) targets

  • Project default: 2
  • Type/range: int / 1..8
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Concurrent esp_gsp_canvas_* bindings.

CONFIG_ESP_GSP_MAX_ASSET_ANIMS

Compiled animations per scene (0 = automatic)

  • Project default: 0
  • Type/range: int / 0..255
  • Prebuilt component: configurable
  • JSON AUTO-derived: yes

AUTO (0) uses the maximum per-scene compiled-animation count stored in the GSPB. A non-zero value is an explicit project budget.

CONFIG_ESP_GSP_TEXT_SLOTS

Dynamic text capacity (0 = automatic)

  • Project default: 0
  • Type/range: int / 0..65533
  • Prebuilt component: configurable
  • JSON AUTO-derived: yes

AUTO (0) sums scene text binds across the bundle because published glyph runs retain their backing storage. A non-zero project value reserves at least that many slots; each slot starts with about 386 bytes of inline run storage and grows on demand.

CONFIG_ESP_GSP_DEFAULT_DYNAMIC_IMAGE_SLOTS

Dynamic image capacity (0 = automatic)

  • Project default: 0
  • Type/range: int / 0..32767
  • Prebuilt component: configurable
  • JSON AUTO-derived: yes

AUTO (0) uses the GSPB requirement. Applications that disable runtime images can explicitly set zero with esp_gsp_config_set().

CONFIG_ESP_GSP_FREETYPE_CACHE_GLYPHS

Default FreeType glyph cache entries

  • Project default: 32
  • Type/range: int / 1..512
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Default FreeType cache capacity. Override one UI instance with esp_gsp_config_set() and ESP_GSP_FIELD_FREETYPE_CACHE_GLYPHS. Pixel storage is entries * glyph_max_px * glyph_max_px bytes.

CONFIG_ESP_GSP_FREETYPE_GLYPH_MAX_PX

Default maximum FreeType glyph width and height

  • Project default: 40
  • Type/range: int / 8..256
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Default maximum cached glyph dimension. Override one UI instance with esp_gsp_config_set() and ESP_GSP_FIELD_FREETYPE_GLYPH_MAX_PX. Memory grows quadratically; glyphs larger than this bound cannot be cached by the dynamic-font fallback.

Advanced settings (optional) / Project runtime defaults / Rendering acceleration

CONFIG_ESP_GSP_ACCEL_MAX_DRIVERS

Maximum registered acceleration backends

  • Project default: 4
  • Type/range: int / 1..16
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Maximum number of hardware or software acceleration drivers kept in the runtime registry. Increase only when the application registers more independent backends at the same time.

CONFIG_ESP_GSP_ACCEL_MAX_PENDING_BLITS

Maximum asynchronous accelerator blits in flight

  • Project default: 4
  • Type/range: int / 1..16
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Shared generic/PPA/DMA2D batching limit. Higher values may improve overlap but reserve more internal bookkeeping and transaction slots.

CONFIG_ESP_GSP_ACCEL_SYNC_TIMEOUT_MS

Accelerator completion timeout in milliseconds

  • Project default: 500
  • Type/range: int / 1..10000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Maximum wait for an asynchronous accelerator operation to complete. A timeout reports a backend failure instead of blocking the render task indefinitely.

CONFIG_ESP_GSP_ACCEL_MIN_BLIT_PIXELS

Minimum pixels for accelerated copy

  • Project default: 8192
  • Type/range: int / 0..1048576
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Copy regions smaller than this remain on the software path because accelerator setup can cost more than the copy. Zero allows every eligible copy to use an accelerator.

CONFIG_ESP_GSP_PPA_MIN_FILL_PIXELS

Minimum pixels for PPA fill

  • Project default: 32768
  • Type/range: int / 0..1048576
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Fill regions below this size stay on the software renderer. Tune only from same-board measurements; zero permits every eligible fill.

CONFIG_ESP_GSP_PPA_MIN_BLEND_PIXELS

Minimum pixels for PPA blend/fade

  • Project default: 8192
  • Type/range: int / 0..1048576
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Blend or fade regions below this size stay on the software renderer. Tune only from same-board measurements; zero permits every eligible blend.

CONFIG_ESP_GSP_PPA_RUNTIME_SCALE

Enable PPA SRM for runtime image scaling

  • Project default: false
  • Type/range: bool / boolean
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Opt in to hardware bilinear filtering for large, fully visible, opaque RGB565/RGB888 STORE images. The existing software renderer uses nearest-neighbour sampling, so keep this disabled when exact pixel compatibility is required.

CONFIG_ESP_GSP_PPA_MIN_SCALE_PIXELS

Minimum destination pixels for runtime PPA scaling

  • Project default: 32768
  • Type/range: int / 0..1048576
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Destination images below this size keep software scaling so PPA setup does not dominate small operations. Zero permits every eligible scale.

CONFIG_ESP_GSP_PPA_FILL_MAX_SPAN_PIXELS

Maximum pixels in one PPA fill span

  • Project default: 524288
  • Type/range: int / 1024..16777216
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Splits very large PPA fills into bounded spans. Lower values reduce the duration of one submitted operation; higher values reduce setup count.

Advanced settings (optional) / Project runtime defaults / Runtime pools and image cache

CONFIG_ESP_GSP_IMAGE_CACHE_ENTRIES

Default decoded-image cache entry count

  • Project default: 16
  • Type/range: int / 0..512
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Metadata entry default for a scene image cache. GSP automatically raises this when the compiled startup set plus runtime image slots requires more entries, so lowering it never truncates that set.

CONFIG_ESP_GSP_IMAGE_CACHE_SHORTAGE_RETRIES

Image-cache allocation shortage retries

  • Project default: 3
  • Type/range: int / 0..16
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Number of cache-budget eviction/retry rounds after an image surface allocation fails. Higher values may recover fragmented memory at the cost of additional decode latency.

CONFIG_ESP_GSP_CONTEXT_DEFAULT_GLYPH_RUNS

Shaped text capacity (0 = automatic)

  • Project default: 0
  • Type/range: int / 0..65535
  • Prebuilt component: configurable
  • JSON AUTO-derived: yes

AUTO (0) uses the versioned GSPB requirements. A non-zero value is an explicit project capacity and startup fails if the bundle needs more.

CONFIG_ESP_GSP_CONTEXT_DEFAULT_INSTANCES

Template instance capacity (0 = automatic)

  • Project default: 0
  • Type/range: int / 0..65534
  • Prebuilt component: configurable
  • JSON AUTO-derived: yes

AUTO (0) uses the template and visible-row requirement stored in the GSPB. A non-zero value explicitly reserves at least that many slots; startup fails if it is below the bundle requirement.

CONFIG_ESP_GSP_INSTANCE_STATES_PER_SLOT

State capacity per template instance (0 = automatic)

  • Project default: 0
  • Type/range: int / 0..65535
  • Prebuilt component: configurable
  • JSON AUTO-derived: yes

AUTO (0) uses the largest authored template state count stored in the GSPB. A non-zero value is an explicit project budget.

CONFIG_ESP_GSP_IMAGE_CACHE_AUTO_MIN_BYTES

Minimum automatic image-cache budget with PSRAM

  • Project default: 65536
  • Type/range: int / 0..16777216
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Floor used only when PSRAM has enough reachable free space. Zero removes the floor. This is a budget, not an eager allocation.

CONFIG_ESP_GSP_IMAGE_CACHE_AUTO_MAX_BYTES

Maximum automatic image-cache budget

  • Project default: 4194304
  • Type/range: int / 0..67108864
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Cap for the automatically derived cross-scene decoded-image budget. Zero removes the cap. Explicit API/generated budgets still win.

CONFIG_ESP_GSP_IMAGE_CACHE_HOST_DEFAULT_BYTES

Non-ESP automatic image-cache budget

  • Project default: 2097152
  • Type/range: int / 0..67108864
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Default used where heap-capability discovery is unavailable, such as host integrations. This is a budget, not an eager allocation.

Advanced settings (optional) / Project runtime defaults / Runtime tasks / Render task

CONFIG_ESP_GSP_RENDER_TASK_STACK_PSRAM

Allocate render task stack in PSRAM

  • Project default: false
  • Type/range: bool / boolean
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Moves the render task stack to PSRAM, saving 12 KiB of internal SRAM by default, or 24 KiB with FreeType. Runtime startup fails if the configured stack cannot be allocated from PSRAM. PSRAM stacks cannot be used while the flash cache is disabled. Keep the default if render callbacks may access flash, NVS or filesystems. Applications that require those operations can dispatch them to an internal-stack task or initialize espressif/esp_flash_dispatcher.

CONFIG_ESP_GSP_RENDER_TASK_STACK_SIZE

Render task stack size in bytes

  • Project default: 12288
  • Type/range: int / 4096..65536
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Default used when esp_gsp_esp_lcd_config_t.task_stack_size is zero and dynamic FreeType is not attached. Lower only after checking the task’s stack high-water mark on every enabled renderer/codec path.

CONFIG_ESP_GSP_RENDER_TASK_STACK_SIZE_FREETYPE

Render task stack size with FreeType in bytes

  • Project default: 24576
  • Type/range: int / 8192..65536
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Default render stack when a runtime TTF/OTF face is attached.

CONFIG_ESP_GSP_RENDER_TASK_PRIORITY

Default render task priority

  • Project default: 4
  • Type/range: int / 1..24
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Used when the platform API priority is zero. The asynchronous decode task defaults one priority below this value.

Advanced settings (optional) / Project runtime defaults / Runtime tasks / Background decode task

CONFIG_ESP_GSP_DECODE_TASK_STACK_PSRAM

Allocate decode task stack in PSRAM

  • Project default: false
  • Type/range: bool / boolean
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Moves the background decode task stack to PSRAM, saving 4 KiB of internal SRAM with the default stack size. The worker remains disabled if its stack cannot be allocated from PSRAM. PSRAM stacks cannot be used while the flash cache is disabled. Applications that require Flash operations from decode callbacks can dispatch them to an internal-stack task or initialize espressif/esp_flash_dispatcher.

CONFIG_ESP_GSP_DECODE_TASK_STACK_SIZE

Decode task stack size in bytes

  • Project default: 4096
  • Type/range: int / 2048..32768
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Stack reserved for the background decoder. Lower only after measuring the high-water mark with every enabled image format and callback path.

CONFIG_ESP_GSP_DECODE_TASK_PRIORITY

Standalone decode task default priority

  • Project default: 3
  • Type/range: int / 1..24
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Default priority for standalone background decoding. The ESP-IDF UI integration selects its decode priority from the render-task priority.

CONFIG_ESP_GSP_DECODE_TASK_IDLE_POLL_MS

Decode worker idle poll interval in milliseconds

  • Project default: 100
  • Type/range: int / 1..10000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

How often an idle decode worker wakes when no job notification is pending. Lower values reduce fallback wake latency at higher idle cost.

Advanced settings (optional) / Project runtime defaults / Animation and transitions

CONFIG_ESP_GSP_ANIM_FRAME_MEMORY

Animation frame memory preference

  • Project default: auto
  • Type/range: enum / 0..2
  • Prebuilt component: configurable
  • JSON AUTO-derived: no
  • Choices: CONFIG_ESP_GSP_ANIM_FRAME_MEMORY_AUTO, CONFIG_ESP_GSP_ANIM_FRAME_MEMORY_INTERNAL, CONFIG_ESP_GSP_ANIM_FRAME_MEMORY_SPIRAM

Chooses the preferred heap for decoded runtime animation frames. AUTO uses ESP_GSP_ANIM_INTERNAL_FRAME_MAX_BYTES; every mode falls back to the other reachable heap when the preferred allocation fails.

CONFIG_ESP_GSP_ANIM_MAX_FRAME_BYTES

Maximum bytes in one runtime animation frame

  • Project default: 16777216
  • Type/range: int / 1024..67108864
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Safety and functional limit checked before allocating runtime-supplied animation frame buffers and decode scratch. Compiled animation assets remain bounded by their validated resource metadata and reachable heap.

CONFIG_ESP_GSP_ANIM_INTERNAL_FRAME_MAX_BYTES

Maximum animation frame preferred in SRAM

  • Project default: 65536
  • Type/range: int / 0..16777216
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

AUTO mode prefers SRAM at or below this size and PSRAM above it. Zero sends every non-empty animation surface to PSRAM first. Every mode falls back to the other heap when the preferred heap is full.

Advanced settings (optional) / Scheduling and interaction / Runtime cadence and command queue

CONFIG_ESP_GSP_QUEUE_DEPTH

Platform command queue depth

  • Project default: 24
  • Type/range: int / 4..128
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Maximum queued UI commands. Increase this value when command submission reports queue exhaustion; larger values use more memory.

CONFIG_ESP_GSP_ACTIVE_TICK_MS

Active render-loop tick in milliseconds

  • Project default: 10
  • Type/range: int / 1..1000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Loop cadence while a finger, animation or scroll momentum keeps the UI active. Lower values improve temporal resolution at higher CPU cost.

CONFIG_ESP_GSP_IDLE_POLL_MS

Default idle application poll in milliseconds

  • Project default: 100
  • Type/range: int / 1..10000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Default application-service interval while the UI has no active input, animation or momentum. Larger values reduce idle wakeups but delay polling-only application work.

CONFIG_ESP_GSP_POINTER_POLL_MS

Idle touch discovery interval in milliseconds

  • Project default: 33
  • Type/range: int / 1..1000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Polling touch integrations use this interval while the UI is otherwise idle. Once input or animation is active, ESP_GSP_ACTIVE_TICK_MS drives the shared UI service loop. Interrupt-driven touch wakes the loop directly and does not read without a fresh interrupt.

CONFIG_ESP_GSP_TOUCH_RELEASE_CONFIRM_POLLS

Empty touch polls required to confirm release

  • Project default: 2
  • Type/range: int / 1..8
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Higher values tolerate intermittent empty controller reports but add pointer-release latency in polling mode. Interrupt mode consumes only fresh IRQ reports and treats a fresh empty report as release.

Advanced settings (optional) / Scheduling and interaction / Scroll physics

CONFIG_ESP_GSP_SCROLL_VELOCITY_WINDOW_MS

Scroll release velocity window in milliseconds

  • Project default: 100
  • Type/range: int / 10..1000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Only pointer samples inside this recent time window contribute to the release velocity. A shorter window reacts faster; a longer one smooths noisy motion.

CONFIG_ESP_GSP_SCROLL_RELEASE_GRACE_MS

Scroll release motion grace in milliseconds

  • Project default: 100
  • Type/range: int / 0..1000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Motion older than this interval before release is ignored for starting a coast. Zero requires motion in the release sample itself.

CONFIG_ESP_GSP_SCROLL_STOP_SPEED_PX_S

Scroll coast stop speed in pixels per second

  • Project default: 20
  • Type/range: int / 1..1000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Existing inertial scrolling stops after its absolute velocity falls below this threshold.

CONFIG_ESP_GSP_SCROLL_MIN_FLING_SPEED_PX_S

Minimum release speed that starts a coast, in pixels per second

  • Project default: 160
  • Type/range: int / 0..5000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Releases slower than this stop where the finger left off instead of coasting, matching the fling threshold phones apply. Keep it well above the coast stop speed, which only ends an existing coast. The default corresponds to crossing the default 16-pixel tap slop over the 100 ms velocity window, so motion beyond the slop can coast without making a slow drag coast. Set to 0 to let any measurable release speed coast.

CONFIG_ESP_GSP_SCROLL_MAX_RELEASE_SPEED_PX_S

Maximum scroll release speed in pixels per second

  • Project default: 6000
  • Type/range: int / 100..50000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Clamps the initial coast velocity so noisy or sparse touch samples cannot launch an unbounded scroll.

CONFIG_ESP_GSP_SCROLL_DECAY_MS

Scroll velocity decay time in milliseconds

  • Project default: 325
  • Type/range: int / 10..5000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Time constant used to decay inertial scroll velocity. Larger values coast longer; smaller values stop sooner.

CONFIG_ESP_GSP_SCROLL_MAX_TICK_MS

Maximum integrated scroll tick in milliseconds

  • Project default: 100
  • Type/range: int / 1..1000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Caps one physics integration step after scheduler stalls or delayed frames, preventing a single update from jumping too far.

CONFIG_ESP_GSP_SCROLL_SNAP_RESPONSE_MS

List row snap response time in milliseconds

  • Project default: 40
  • Type/range: int / 1..1000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Response time used when a List or Wheel settles onto its nearest row. Lower values snap more aggressively.

Advanced settings (optional) / Scheduling and interaction / Swipe and component motion

CONFIG_ESP_GSP_SWIPE_VELOCITY_WINDOW_MS

Page-swipe velocity window in milliseconds

  • Project default: 80
  • Type/range: int / 10..1000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Recent pointer interval used to estimate page-swipe release velocity. Shorter windows favor the last motion; longer windows smooth input.

CONFIG_ESP_GSP_SWIPE_RELEASE_GRACE_MS

Page-swipe release motion grace in milliseconds

  • Project default: 350
  • Type/range: int / 0..2000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Maximum age of motion that can still influence a swipe release. A shorter value makes pauses before release cancel fling momentum.

CONFIG_ESP_GSP_SWIPE_SETTLE_MIN_MS

Minimum page-swipe settle time in milliseconds

  • Project default: 80
  • Type/range: int / 1..2000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Lower bound for the velocity- and distance-derived page settle time.

CONFIG_ESP_GSP_SWIPE_SETTLE_BASE_MS

Base page-swipe settle time in milliseconds

  • Project default: 110
  • Type/range: int / 1..2000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Fixed part of the page settle duration before distance and velocity adjustments are applied.

CONFIG_ESP_GSP_SWIPE_SETTLE_DISTANCE_MS

Distance-dependent page-swipe settle time in milliseconds

  • Project default: 90
  • Type/range: int / 0..2000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Maximum distance-proportional contribution to page settle duration.

CONFIG_ESP_GSP_SWIPE_SETTLE_MAX_MS

Maximum page-swipe settle time in milliseconds

  • Project default: 220
  • Type/range: int / 1..5000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Upper bound for the final page settle duration.

CONFIG_ESP_GSP_SWIPE_SETTLE_SPEED_REDUCTION_MS

Swipe settle speed reduction scale in milliseconds

  • Project default: 60
  • Type/range: int / 0..2000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Scale of the duration reduction applied as release speed increases.

CONFIG_ESP_GSP_SWIPE_SETTLE_MAX_SPEED_REDUCTION_MS

Maximum swipe settle speed reduction in milliseconds

  • Project default: 120
  • Type/range: int / 0..2000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Maximum amount that release velocity may subtract from settle time.

CONFIG_ESP_GSP_PAGE_FLOW_SETTLE_MS

Legacy PageFlow settle duration in milliseconds

  • Project default: 220
  • Type/range: int / 1..5000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Compatibility duration used by PageFlow paths that do not receive the adaptive swipe timing result.

CONFIG_ESP_GSP_STACK_VIEW_SETTLE_MS

Default StackView settle duration in milliseconds

  • Project default: 220
  • Type/range: int / 1..5000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Default push/pop transition duration for StackView navigation.

CONFIG_ESP_GSP_DRAWER_SETTLE_MS

Drawer settle duration in milliseconds

  • Project default: 180
  • Type/range: int / 1..5000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Default duration used to finish opening or closing a Drawer after the pointer is released.

CONFIG_ESP_GSP_BOOLEAN_TWEEN_MS

Toggle/checkbox knob tween duration in milliseconds

  • Project default: 130
  • Type/range: int / 1..5000
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Retained visual tween duration for Toggle and Checkbox state changes.

Advanced settings (optional) / Scheduling and interaction / Gesture thresholds

CONFIG_ESP_GSP_TAP_SLOP_PX

Tap classification slop in pixels

  • Project default: 16
  • Type/range: int / 0..128
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Absolute-pixel tap window; panel noise and touch resolution differ per product. Scaled touch controllers may need a different value.

CONFIG_ESP_GSP_DRAG_START_PX

Drag / gesture start threshold in pixels

  • Project default: 12
  • Type/range: int / 0..256
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Distance a finger must move before a component drag or scene swipe starts. List scrolling uses the tap-slop threshold.

CONFIG_ESP_GSP_SWIPE_FLICK_PX

Flick commit distance in pixels

  • Project default: 12
  • Type/range: int / 0..256
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Recent pointer movement (sum of the last ~3 samples) above this can select a fling, subject to the minimum fling distance configured by ESP_GSP_SCENE_SWIPE_MIN_FLING_PX.

CONFIG_ESP_GSP_SCENE_SWIPE_MIN_FLING_PX

Swipe minimum fling distance in pixels

  • Project default: 24
  • Type/range: int / 0..512
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Minimum release displacement for velocity or flick to commit a Scene, PageFlow or Drawer below its normal position threshold.

CONFIG_ESP_GSP_COMPONENT_SWIPE_COMMIT_DIVISOR

Component swipe distance divisor

  • Project default: 4
  • Type/range: int / 2..16
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

A component PageFlow swipe commits after approximately one divided by this value of its viewport, unless the flick rule commits it earlier.

CONFIG_ESP_GSP_SCENE_SWIPE_COMMIT_DIVISOR

Scene swipe distance divisor

  • Project default: 5
  • Type/range: int / 2..16
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

A scene swipe commits after approximately one divided by this value of the viewport, unless the fling rule commits it earlier.

CONFIG_ESP_GSP_SWIPE_VELOCITY_NUMERATOR

Swipe settle velocity numerator

  • Project default: 3
  • Type/range: int / 1..16
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Numerator of the release-velocity contribution used by adaptive swipe settling. Adjust together with ESP_GSP_SWIPE_VELOCITY_DENOMINATOR.

CONFIG_ESP_GSP_SWIPE_VELOCITY_DENOMINATOR

Swipe settle velocity denominator

  • Project default: 5
  • Type/range: int / 1..32
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Denominator of the release-velocity contribution used by adaptive swipe settling. Larger values reduce the velocity effect.

CONFIG_ESP_GSP_DRAWER_EDGE_SLOP_PX

Drawer edge activation slop in pixels

  • Project default: 24
  • Type/range: int / 0..256
  • Prebuilt component: configurable
  • JSON AUTO-derived: no

Maximum distance from the configured screen edge at which a closed Drawer may begin an edge-drag gesture. Zero requires the exact edge.

Library capabilities

ESP_GSP_BUILD_CAP_COMPONENT_BATCH_MAX

Inline component-batch update capacity

  • Project default: 64
  • Type/range: int / 1..64
  • Prebuilt component: fixed library capability 64
  • JSON AUTO-derived: no

Read-only stack fast-path threshold. Larger batches use temporary framework-owned heap storage and remain atomic.

ESP_GSP_BUILD_CAP_TRANSACTION_UPDATE_CAPACITY

Inline input/component transaction capacity

  • Project default: 64
  • Type/range: int / 1..64
  • Prebuilt component: fixed library capability 64
  • JSON AUTO-derived: no

Read-only stack fast-path threshold. Larger input and component transactions use temporary framework-owned heap storage.

ESP_GSP_BUILD_CAP_RENDER_CLIP_STACK_DEPTH

Maximum nested renderer clip depth

  • Project default: 128
  • Type/range: int / 4..128
  • Prebuilt component: fixed library capability 128
  • JSON AUTO-derived: no

Read-only library limit for nested transformed clipping. Excess depth is rejected.

ESP_GSP_BUILD_CAP_RENDER_TILE_SPAN_CAPACITY

Tile-index fast-path span capacity

  • Project default: 256
  • Type/range: int / 1..256
  • Prebuilt component: fixed library capability 256
  • JSON AUTO-derived: no

Read-only library fast-path limit. Overflow safely falls back to a linear command scan.

ESP_GSP_BUILD_CAP_TEXT_CAPACITY

Inline dynamic-text bytes

  • Project default: 63
  • Type/range: int / 1..1024
  • Prebuilt component: fixed library capability 63
  • JSON AUTO-derived: no

Read-only command fast-path threshold; longer text uses framework-owned heap storage.

ESP_GSP_BUILD_CAP_MAX_DYNAMIC_IMAGE_TARGETS

Maximum simultaneous runtime image targets

  • Project default: 32767
  • Type/range: int / 1..32767
  • Prebuilt component: fixed library capability 32767
  • JSON AUTO-derived: no

Read-only library limit for logical runtime image targets across loaded scenes.

ESP_GSP_BUILD_CAP_MAX_FONTS_PER_SCENE

Maximum font packs referenced by one scene

  • Project default: 32
  • Type/range: int / 1..32
  • Prebuilt component: fixed library capability 32
  • JSON AUTO-derived: no

Read-only library limit for font packs referenced by a single scene.

ESP_GSP_BUILD_CAP_ANIM_PATCH_RECTS

Maximum dirty patches retained per compiled animation frame

  • Project default: 32
  • Type/range: int / 1..32
  • Prebuilt component: fixed library capability 32
  • JSON AUTO-derived: no

Read-only library limit for compiled animation dirty patches per frame.

ESP_GSP_BUILD_CAP_ANIM_REFERENCE_COMMANDS

Animation visibility reference command capacity

  • Project default: 32
  • Type/range: int / 1..32
  • Prebuilt component: fixed library capability 32
  • JSON AUTO-derived: no

Read-only library tracking limit. Overflow disables only the visibility pause optimization.

ESP_GSP_BUILD_CAP_SCROLL_PHYS_SAMPLES

Scroll velocity sample capacity

  • Project default: 32
  • Type/range: int / 2..32
  • Prebuilt component: fixed library capability 32
  • JSON AUTO-derived: no

Read-only library history capacity used by the scroll velocity estimator.

ESP_GSP_BUILD_CAP_SWIPE_KINETICS_SAMPLES

Page-swipe velocity sample capacity

  • Project default: 32
  • Type/range: int / 2..32
  • Prebuilt component: fixed library capability 32
  • JSON AUTO-derived: no

Read-only library history capacity used by PageFlow, StackView, and Drawer kinetics.

ESP_GSP_BUILD_CAP_MAX_TOUCH_POINTS

Maximum touch contacts consumed per sample

  • Project default: 2
  • Type/range: int / 1..2
  • Prebuilt component: fixed library capability 2
  • JSON AUTO-derived: no

Read-only library limit. Two contacts preserve pinch support.