Skip to content

Drawlist Format And Parser

This module documents ZRDL ingestion in the engine.

Supported Version

Only ZR_DRAWLIST_VERSION_V1 is accepted.

Frame Structure

  • Fixed 64-byte header
  • Command stream payload
  • Header string/blob table fields are reserved and must be zero

See ABI drawlist format for byte-level layouts.

Parser Responsibilities

zr_dl_validate() performs strict structural validation before execution:

  • magic/version/header checks
  • alignment and bounds checks
  • command stream framing and per-opcode size checks
  • zero checks for reserved fields

Any invalid framing returns a validation error.

Execution Responsibilities

zr_dl_execute() resolves draw command resource IDs through engine-owned persistent stores:

  • string store: id -> bytes
  • blob store: id -> bytes

DEF_* overwrites replace previous bytes for the same ID. FREE_* invalidates IDs for subsequent references.

If a draw command references an unknown ID, execution fails.

No Backward Compatibility

Legacy multi-version paths were removed. The parser/executor are single-version (v1) by design.