Skip to content

FramePlan And Packet API

FramePlan builders, DRP2 emission helpers, and packet spans used by runtime and WASM integrations.

Status: advanced/unstable

This generated page lists exported C functions and their canonical public types classified by the v0.4 C API reference policy. Raw Python ctypes call forms are documented separately.

Use this page for advanced runtime, fixture, or WASM/WebGPU integration work. Ordinary retained scene code should use scene frame artifacts.

Common workflows:

Functions: 44 Types: 12

Symbol Groups

Group Functions Types Headers
Capability 2 1 include/datoviz/scene/frame_plan.h, include/datoviz/scene/types.h
Diagnostic 7 1 include/datoviz/scene/frame_plan.h, include/datoviz/scene/types.h
Emission 7 2 3 headers
Frame Planning 23 6 3 headers
Packet Results 5 2 include/datoviz/scene/frame_packets.h
Grouped function index

Capability

Function Header
dvz_capability_snapshot() include/datoviz/scene/frame_plan.h
dvz_capability_snapshot_copy() include/datoviz/scene/frame_plan.h

Diagnostic

Function Header
dvz_diagnostic_report_add() include/datoviz/scene/frame_plan.h
dvz_diagnostic_report_add_with_severity() include/datoviz/scene/frame_plan.h
dvz_diagnostic_report_count() include/datoviz/scene/frame_plan.h
dvz_diagnostic_report_error_count() include/datoviz/scene/frame_plan.h
dvz_diagnostic_report_get() include/datoviz/scene/frame_plan.h
dvz_diagnostic_report_get_severity() include/datoviz/scene/frame_plan.h
dvz_diagnostic_report_init() include/datoviz/scene/frame_plan.h

Emission

Function Header
dvz_frame_plan_emit_config() include/datoviz/scene/frame_plan.h
dvz_frame_plan_emit_drp2() include/datoviz/scene/frame_plan.h
dvz_frame_plan_emit_drp2_ex() include/datoviz/scene/frame_plan.h
dvz_frame_plan_emitter_destroy() include/datoviz/scene/frame_plan.h
dvz_frame_plan_emitter_emit_drp2() include/datoviz/scene/frame_plan.h
dvz_frame_plan_emitter_emit_drp2_packets() include/datoviz/scene/frame_packets.h
dvz_frame_plan_emitter_object_id() include/datoviz/scene/frame_plan.h

Frame Planning

Function Header
dvz_frame_plan() include/datoviz/scene/frame_plan.h
dvz_frame_plan_clear() include/datoviz/scene/frame_plan.h
dvz_frame_plan_compute() include/datoviz/scene/frame_plan.h
dvz_frame_plan_compute_read() include/datoviz/scene/frame_plan.h
dvz_frame_plan_compute_write() include/datoviz/scene/frame_plan.h
dvz_frame_plan_copy() include/datoviz/scene/frame_plan.h
dvz_frame_plan_copy_desc() include/datoviz/scene/frame_plan.h
dvz_frame_plan_copy_ex() include/datoviz/scene/frame_plan.h
dvz_frame_plan_destroy() include/datoviz/scene/frame_plan.h
dvz_frame_plan_emitter() include/datoviz/scene/frame_plan.h
dvz_frame_plan_json() include/datoviz/scene/frame_plan.h
dvz_frame_plan_json_destroy() include/datoviz/scene/frame_plan.h
dvz_frame_plan_node_count() include/datoviz/scene/frame_plan.h
dvz_frame_plan_node_get() include/datoviz/scene/frame_plan.h
dvz_frame_plan_node_type() include/datoviz/scene/frame_plan.h
dvz_frame_plan_readback() include/datoviz/scene/frame_plan.h
dvz_frame_plan_render() include/datoviz/scene/frame_plan.h
dvz_frame_plan_render_pass_role() include/datoviz/scene/frame_plan.h
dvz_frame_plan_render_visual() include/datoviz/scene/frame_plan.h
dvz_frame_plan_upload() include/datoviz/scene/frame_plan.h
dvz_frame_plan_upload_bytes() include/datoviz/scene/frame_plan.h
dvz_frame_plan_upload_desc() include/datoviz/scene/frame_plan.h
dvz_frame_plan_upload_ex() include/datoviz/scene/frame_plan.h

Packet Results

Function Header
dvz_frame_plan_packet_result_destroy() include/datoviz/scene/frame_packets.h
dvz_frame_plan_packet_result_frame_index() include/datoviz/scene/frame_packets.h
dvz_frame_plan_packet_result_get() include/datoviz/scene/frame_packets.h
dvz_frame_plan_packet_result_resource_version() include/datoviz/scene/frame_packets.h
dvz_frame_plan_packet_result_status() include/datoviz/scene/frame_packets.h

Capability

Functions

dvz_capability_snapshot()

Return the default capability snapshot.

DvzCapabilitySnapshot dvz_capability_snapshot(void);
Field Type Description
return DvzCapabilitySnapshot default capability snapshot

Declared in include/datoviz/scene/frame_plan.h:104.

dvz_capability_snapshot_copy()

Copy a capability snapshot.

void dvz_capability_snapshot_copy(
    DvzCapabilitySnapshot * dst,
    const DvzCapabilitySnapshot * src
);
Field Type Description
dst DvzCapabilitySnapshot * the destination snapshot
src const DvzCapabilitySnapshot * the source snapshot

Declared in include/datoviz/scene/frame_plan.h:115.

Types

DvzCapabilitySnapshot · record
struct DvzCapabilitySnapshot {
    uint32_t struct_size;
    uint32_t flags;
    uint64_t max_buffer_size;
    uint32_t max_texture_dimension_2d;
    uint32_t max_bind_groups;
    uint32_t max_vertex_buffers;
    uint32_t max_color_attachments;
    uint32_t max_color_sample_count;
    uint32_t max_depth_sample_count;
    _Bool shader_format_wgsl;
    _Bool shader_format_glsl;
    _Bool render_target_format_rgba16float;
    _Bool render_target_format_r16float;
    _Bool supports_render_target_sampling;
    _Bool supports_color_blending;
    _Bool supports_readback;
    uint32_t min_texture_copy_bytes_per_row_alignment;
    uint64_t max_readback_size;
    _Bool texture_format_r32uint;
    _Bool texture_format_rg32uint;
    _Bool render_target_format_r32uint;
    _Bool render_target_format_rg32uint;
    _Bool query_profile_u32_r32;
    _Bool query_profile_u64_rg32;
    _Bool query_profile_u64_2xr32;
};

Declared in include/datoviz/scene/types.h:223.

Diagnostic

Functions

dvz_diagnostic_report_add()

Add a diagnostic message.

_Bool dvz_diagnostic_report_add(
    DvzDiagnosticReport * report,
    const char * message
);
Field Type Description
return _Bool whether the message was added
report DvzDiagnosticReport * the diagnostic report
message const char * the diagnostic message

Declared in include/datoviz/scene/frame_plan.h:135.

dvz_diagnostic_report_add_with_severity()

Add a diagnostic message with an explicit severity.

_Bool dvz_diagnostic_report_add_with_severity(
    DvzDiagnosticReport * report,
    DvzDiagnosticSeverity severity,
    const char * message
);
Field Type Description
return _Bool whether the message was added
report DvzDiagnosticReport * the diagnostic report
severity DvzDiagnosticSeverity the diagnostic severity
message const char * the diagnostic message

Declared in include/datoviz/scene/frame_plan.h:147.

dvz_diagnostic_report_count()

Return a diagnostic count.

uint32_t dvz_diagnostic_report_count(
    const DvzDiagnosticReport * report
);
Field Type Description
return uint32_t the number of diagnostic messages
report const DvzDiagnosticReport * the diagnostic report

Declared in include/datoviz/scene/frame_plan.h:158.

dvz_diagnostic_report_error_count()

Return the number of fatal or recoverable diagnostics.

uint32_t dvz_diagnostic_report_error_count(
    const DvzDiagnosticReport * report
);
Field Type Description
return uint32_t the number of error-level diagnostic messages
report const DvzDiagnosticReport * the diagnostic report

Declared in include/datoviz/scene/frame_plan.h:168.

dvz_diagnostic_report_get()

Return a diagnostic message.

const char * dvz_diagnostic_report_get(
    const DvzDiagnosticReport * report,
    uint32_t index
);
Field Type Description
return const char * the diagnostic message, or NULL when index is out of bounds
report const DvzDiagnosticReport * the diagnostic report
index uint32_t the diagnostic index

Declared in include/datoviz/scene/frame_plan.h:180.

dvz_diagnostic_report_get_severity()

Return a diagnostic severity.

DvzDiagnosticSeverity dvz_diagnostic_report_get_severity(
    const DvzDiagnosticReport * report,
    uint32_t index
);
Field Type Description
return DvzDiagnosticSeverity the diagnostic severity, or fatal when index is out of bounds
report const DvzDiagnosticReport * the diagnostic report
index uint32_t the diagnostic index

Declared in include/datoviz/scene/frame_plan.h:192.

dvz_diagnostic_report_init()

Initialize a diagnostic report.

void dvz_diagnostic_report_init(
    DvzDiagnosticReport * report
);
Field Type Description
report DvzDiagnosticReport * the diagnostic report

Declared in include/datoviz/scene/frame_plan.h:124.

Types

DvzDiagnosticReport · record
struct DvzDiagnosticReport {
    uint32_t count;
    DvzDiagnosticSeverity[16] severities;
    char[16][256] messages;
};

Declared in include/datoviz/scene/types.h:254.

Emission

Functions

dvz_frame_plan_emit_config()

Return the default FramePlan-to-DRP2 emission configuration.

DvzFramePlanEmitConfig dvz_frame_plan_emit_config(void);
Field Type Description
return DvzFramePlanEmitConfig the default emission configuration

Declared in include/datoviz/scene/frame_plan.h:450.

dvz_frame_plan_emit_drp2()

Emit a DRP2 command stream from a FramePlan in fixture mode.

DvzDrp2CommandStream * dvz_frame_plan_emit_drp2(
    const DvzFramePlan * plan,
    const DvzCapabilitySnapshot * caps,
    DvzDiagnosticReport * report
);
Field Type Description
return DvzDrp2CommandStream * an owned DRP2 command stream, or NULL on failure
plan const DvzFramePlan * the FramePlan
caps const DvzCapabilitySnapshot * the capability snapshot
report DvzDiagnosticReport * the diagnostic report

Declared in include/datoviz/scene/frame_plan.h:441.

dvz_frame_plan_emit_drp2_ex()

Emit a DRP2 command stream from a FramePlan with explicit fixture options.

DvzDrp2CommandStream * dvz_frame_plan_emit_drp2_ex(
    const DvzFramePlan * plan,
    const DvzCapabilitySnapshot * caps,
    DvzDiagnosticReport * report,
    const DvzFramePlanEmitConfig * cfg
);
Field Type Description
return DvzDrp2CommandStream * an owned DRP2 command stream, or NULL on failure
plan const DvzFramePlan * the FramePlan
caps const DvzCapabilitySnapshot * the capability snapshot
report DvzDiagnosticReport * the diagnostic report
cfg const DvzFramePlanEmitConfig * the emission configuration

Declared in include/datoviz/scene/frame_plan.h:462.

dvz_frame_plan_emitter_destroy()

Destroy a persistent FramePlan-to-DRP2 emitter.

void dvz_frame_plan_emitter_destroy(
    DvzFramePlanEmitter * emitter
);
Field Type Description
emitter DvzFramePlanEmitter * the emitter

Declared in include/datoviz/scene/frame_plan.h:480.

dvz_frame_plan_emitter_emit_drp2()

Emit a runtime-mode DRP2 command stream from a FramePlan.

DvzDrp2CommandStream * dvz_frame_plan_emitter_emit_drp2(
    DvzFramePlanEmitter * emitter,
    const DvzFramePlan * plan,
    const DvzCapabilitySnapshot * caps,
    DvzDiagnosticReport * report,
    const DvzFramePlanEmitConfig * cfg
);
Field Type Description
return DvzDrp2CommandStream * an owned DRP2 command stream, or NULL on failure
emitter DvzFramePlanEmitter * the persistent emitter
plan const DvzFramePlan * the FramePlan
caps const DvzCapabilitySnapshot * the capability snapshot
report DvzDiagnosticReport * the diagnostic report
cfg const DvzFramePlanEmitConfig * the emission configuration

Declared in include/datoviz/scene/frame_plan.h:493.

dvz_frame_plan_emitter_emit_drp2_packets()

Emit split setup/update/frame DRP2 binary packets from a FramePlan.

This native boundary emits the packet stream consumed by the current runtime paths. JSON export remains separate fixture/debug output and is not used here.

DvzFramePlanPacketResult * dvz_frame_plan_emitter_emit_drp2_packets(
    DvzFramePlanEmitter * emitter,
    const DvzFramePlan * plan,
    const DvzCapabilitySnapshot * caps,
    DvzDiagnosticReport * report,
    const DvzFramePlanEmitConfig * cfg
);
Field Type Description
return DvzFramePlanPacketResult * an owned packet result, or NULL on allocation failure; destroy with dvz_frame_plan_packet_result_destroy()
emitter DvzFramePlanEmitter * the persistent FramePlan-to-DRP2 emitter
plan const DvzFramePlan * the FramePlan
caps const DvzCapabilitySnapshot * the capability snapshot
report DvzDiagnosticReport * the diagnostic report
cfg const DvzFramePlanEmitConfig * the emission configuration

Declared in include/datoviz/scene/frame_packets.h:70.

dvz_frame_plan_emitter_object_id()

Look up the DRP2 object id assigned to an emitter-internal key.

Returns the id previously assigned to key, or 0 if the key has not been allocated yet. Debug/test-only advanced helper; string keys are internal emitter implementation details and are not stable public resource names.

uint64_t dvz_frame_plan_emitter_object_id(
    const DvzFramePlanEmitter * emitter,
    const char * key
);
Field Type Description
return uint64_t the DRP2 id, or 0 if not found
emitter const DvzFramePlanEmitter * the persistent emitter
key const char * the internal object key (e.g. "_rb", "_vs", "_pipe0")

Declared in include/datoviz/scene/frame_plan.h:510.

Types

DvzFramePlanEmitConfig · record
struct DvzFramePlanEmitConfig {
    uint32_t struct_size;
    uint32_t flags;
    DvzSceneShaderFormat shader_format;
    DvzColorPipeline color_pipeline;
    _Bool external_color_target;
    uint64_t color_target_id;
    DvzFormat color_target_format;
    uint32_t target_width;
    uint32_t target_height;
    float device_scale_x;
    float device_scale_y;
    float render_scale;
    float user_scale;
    _Bool fullscreen_triangle;
    uint64_t runtime_resource_scope_id;
    float[4] clear_color;
};

Declared in include/datoviz/scene/types.h:262.

DvzFramePlanEmitter · typedef
typedef struct DvzFramePlanEmitter DvzFramePlanEmitter;

Declared in include/datoviz/scene/types.h:49.

Frame Planning

Functions

dvz_frame_plan()

Create an empty FramePlan.

DvzFramePlan * dvz_frame_plan(
    const char * figure_id,
    uint64_t frame_index
);
Field Type Description
return DvzFramePlan * the FramePlan
figure_id const char * the figure id
frame_index uint64_t the frame index

Declared in include/datoviz/scene/frame_plan.h:203.

dvz_frame_plan_clear()

Append a clear-only render node.

_Bool dvz_frame_plan_clear(
    DvzFramePlan * plan,
    const char * panel_id,
    const char * render_target_id
);
Field Type Description
return _Bool whether the node was appended
plan DvzFramePlan * the FramePlan
panel_id const char * the panel id
render_target_id const char * the render target id

Declared in include/datoviz/scene/frame_plan.h:369.

dvz_frame_plan_compute()

Append a compute node.

_Bool dvz_frame_plan_compute(
    DvzFramePlan * plan,
    const char * shader_key,
    uint32_t x,
    uint32_t y,
    uint32_t z
);
Field Type Description
return _Bool whether the node was appended
plan DvzFramePlan * the FramePlan
shader_key const char * the shader key
x uint32_t dispatch workgroup count in X
y uint32_t dispatch workgroup count in Y
z uint32_t dispatch workgroup count in Z

Declared in include/datoviz/scene/frame_plan.h:319.

dvz_frame_plan_compute_read()

Add a resource read to the most recent compute node.

_Bool dvz_frame_plan_compute_read(
    DvzFramePlan * plan,
    const char * resource_id
);
Field Type Description
return _Bool whether the resource was appended
plan DvzFramePlan * the FramePlan
resource_id const char * the resource id

Declared in include/datoviz/scene/frame_plan.h:331.

dvz_frame_plan_compute_write()

Add a resource write to the most recent compute node.

_Bool dvz_frame_plan_compute_write(
    DvzFramePlan * plan,
    const char * resource_id
);
Field Type Description
return _Bool whether the resource was appended
plan DvzFramePlan * the FramePlan
resource_id const char * the resource id

Declared in include/datoviz/scene/frame_plan.h:342.

dvz_frame_plan_copy()

Append a copy node.

_Bool dvz_frame_plan_copy(
    DvzFramePlan * plan,
    const char * src_resource_id,
    const char * dst_resource_id,
    uint64_t byte_size
);
Field Type Description
return _Bool whether the node was appended
plan DvzFramePlan * the FramePlan
src_resource_id const char * the source resource id
dst_resource_id const char * the destination resource id
byte_size uint64_t the copy size in bytes

Declared in include/datoviz/scene/frame_plan.h:393.

dvz_frame_plan_copy_desc()

Return the default FramePlan copy descriptor.

DvzFramePlanCopyDesc dvz_frame_plan_copy_desc(void);
Field Type Description
return DvzFramePlanCopyDesc default copy descriptor

Related: dvz_frame_plan_copy().

Declared in include/datoviz/scene/frame_plan.h:90.

dvz_frame_plan_copy_ex()

Append an explicit texture-to-buffer copy node.

_Bool dvz_frame_plan_copy_ex(
    DvzFramePlan * plan,
    const DvzFramePlanCopyDesc * desc
);
Field Type Description
return _Bool whether the node was appended
plan DvzFramePlan * the FramePlan
desc const DvzFramePlanCopyDesc * the copy descriptor

Declared in include/datoviz/scene/frame_plan.h:405.

dvz_frame_plan_destroy()

Destroy a FramePlan.

void dvz_frame_plan_destroy(
    DvzFramePlan * plan
);
Field Type Description
plan DvzFramePlan * the FramePlan

Declared in include/datoviz/scene/frame_plan.h:212.

dvz_frame_plan_emitter()

Create a persistent FramePlan-to-DRP2 emitter for runtime-mode streams.

DvzFramePlanEmitter * dvz_frame_plan_emitter(void);
Field Type Description
return DvzFramePlanEmitter * the emitter

Declared in include/datoviz/scene/frame_plan.h:472.

dvz_frame_plan_json()

Serialize a FramePlan as deterministic debug JSON.

char * dvz_frame_plan_json(
    const DvzFramePlan * plan
);
Field Type Description
return char * an owned NUL-terminated JSON string
plan const DvzFramePlan * the FramePlan

Declared in include/datoviz/scene/frame_plan.h:429.

dvz_frame_plan_json_destroy()

Destroy a JSON string returned by dvz_frame_plan_json().

void dvz_frame_plan_json_destroy(
    char * json
);
Field Type Description
json char * the JSON string

Declared in include/datoviz/scene/frame_plan.h:519.

dvz_frame_plan_node_count()

Return a FramePlan node count.

uint32_t dvz_frame_plan_node_count(
    const DvzFramePlan * plan
);
Field Type Description
return uint32_t the node count
plan const DvzFramePlan * the FramePlan

Declared in include/datoviz/scene/frame_plan.h:222.

dvz_frame_plan_node_get()

Return a FramePlan node.

const DvzFramePlanNode * dvz_frame_plan_node_get(
    const DvzFramePlan * plan,
    uint32_t index
);
Field Type Description
return const DvzFramePlanNode * the node, or NULL when index is out of bounds
plan const DvzFramePlan * the FramePlan
index uint32_t the node index

Declared in include/datoviz/scene/frame_plan.h:234.

dvz_frame_plan_node_type()

Return a FramePlan node type.

DvzFramePlanNodeType dvz_frame_plan_node_type(
    const DvzFramePlanNode * node
);
Field Type Description
return DvzFramePlanNodeType the node type
node const DvzFramePlanNode * the FramePlan node

Declared in include/datoviz/scene/frame_plan.h:244.

dvz_frame_plan_readback()

Append a readback node.

_Bool dvz_frame_plan_readback(
    DvzFramePlan * plan,
    const char * resource_id,
    const char * request_id
);
Field Type Description
return _Bool whether the node was appended
plan DvzFramePlan * the FramePlan
resource_id const char * the resource id
request_id const char * the request id

Declared in include/datoviz/scene/frame_plan.h:419.

dvz_frame_plan_render()

Append a render node.

_Bool dvz_frame_plan_render(
    DvzFramePlan * plan,
    const char * panel_id,
    const char * render_target_id,
    _Bool picking
);
Field Type Description
return _Bool whether the node was appended
plan DvzFramePlan * the FramePlan
panel_id const char * the panel id
render_target_id const char * the render target id
picking _Bool whether the node renders picking output

Declared in include/datoviz/scene/frame_plan.h:355.

dvz_frame_plan_render_pass_role()

Return a FramePlan render node pass role.

DvzFramePlanRenderPassRole dvz_frame_plan_render_pass_role(
    const DvzFramePlanNode * node
);
Field Type Description
return DvzFramePlanRenderPassRole the render pass role, or opaque for non-render nodes
node const DvzFramePlanNode * the FramePlan node

Declared in include/datoviz/scene/frame_plan.h:255.

dvz_frame_plan_render_visual()

Add a visual to the most recent render node.

_Bool dvz_frame_plan_render_visual(
    DvzFramePlan * plan,
    const char * visual_id
);
Field Type Description
return _Bool whether the visual was appended
plan DvzFramePlan * the FramePlan
visual_id const char * the visual id

Declared in include/datoviz/scene/frame_plan.h:380.

dvz_frame_plan_upload()

Append an upload node.

_Bool dvz_frame_plan_upload(
    DvzFramePlan * plan,
    const char * resource_id,
    uint64_t byte_offset,
    uint64_t byte_size,
    const char * data_tag
);
Field Type Description
return _Bool whether the node was appended
plan DvzFramePlan * the FramePlan
resource_id const char * the resource id
byte_offset uint64_t the byte offset
byte_size uint64_t the byte size
data_tag const char * the debug data tag

Declared in include/datoviz/scene/frame_plan.h:269.

dvz_frame_plan_upload_bytes()

Append an upload node with actual data to be encoded into the DRP2 stream.

Buffer uploads copy the bytes into emitted DRP2 packet/stream storage during emission. Texture uploads keep the source pointer borrowed in the emitted in-process stream until runtime execution or packet encoding copies it into an arena. Keep texture payloads alive through that boundary.

_Bool dvz_frame_plan_upload_bytes(
    DvzFramePlan * plan,
    const char * resource_id,
    uint64_t byte_offset,
    uint64_t byte_size,
    const char * data_tag,
    const void * data
);
Field Type Description
return _Bool whether the node was appended
plan DvzFramePlan * the FramePlan
resource_id const char * the resource id
byte_offset uint64_t the byte offset
byte_size uint64_t the byte size
data_tag const char * the debug data tag
data const void * pointer to the bytes to upload (must remain valid until emit time)

Declared in include/datoviz/scene/frame_plan.h:290.

dvz_frame_plan_upload_desc()

Return the default FramePlan upload descriptor.

DvzFramePlanUploadDesc dvz_frame_plan_upload_desc(void);
Field Type Description
return DvzFramePlanUploadDesc default upload descriptor

Related: dvz_frame_plan_upload().

Declared in include/datoviz/scene/frame_plan.h:97.

dvz_frame_plan_upload_ex()

Append an upload node from a descriptor.

Use this for texture uploads, topology hints, or byte uploads that need explicit metadata at node creation time. Texture writes are selected by non-zero texture_width.

_Bool dvz_frame_plan_upload_ex(
    DvzFramePlan * plan,
    const DvzFramePlanUploadDesc * desc
);
Field Type Description
return _Bool whether the node was appended
plan DvzFramePlan * the FramePlan
desc const DvzFramePlanUploadDesc * upload descriptor

Declared in include/datoviz/scene/frame_plan.h:305.

Types

DvzFramePlan · typedef
typedef struct DvzFramePlan DvzFramePlan;

Declared in include/datoviz/scene/types.h:51.

DvzFramePlanCopyDesc · record
struct DvzFramePlanCopyDesc {
    uint32_t struct_size;
    uint32_t flags;
    const char * src_resource_id;
    const char * dst_resource_id;
    uint32_t src_attachment_index;
    uint32_t[3] src_origin;
    uint32_t[3] extent;
    DvzFormat format;
    uint32_t bytes_per_texel;
    uint64_t bytes_per_row;
    uint32_t rows_per_image;
    uint64_t dst_offset;
    uint64_t byte_size;
    uint64_t request_id;
};

Declared in include/datoviz/scene/frame_plan.h:37.

DvzFramePlanNode · typedef
typedef struct DvzFramePlanNode DvzFramePlanNode;

Declared in include/datoviz/scene/types.h:52.

DvzFramePlanNodeType · enum
enum DvzFramePlanNodeType {
    DVZ_FRAME_PLAN_NODE_NONE = 0,
    DVZ_FRAME_PLAN_NODE_UPLOAD = 1,
    DVZ_FRAME_PLAN_NODE_COMPUTE = 2,
    DVZ_FRAME_PLAN_NODE_RENDER = 3,
    DVZ_FRAME_PLAN_NODE_CLEAR = 4,
    DVZ_FRAME_PLAN_NODE_COPY = 5,
    DVZ_FRAME_PLAN_NODE_READBACK = 6,
};

Declared in include/datoviz/scene/enums.h:21.

DvzFramePlanRenderPassRole · enum
enum DvzFramePlanRenderPassRole {
    DVZ_FRAME_PLAN_RENDER_PASS_OPAQUE = 0,
    DVZ_FRAME_PLAN_RENDER_PASS_GBUFFER = 1,
    DVZ_FRAME_PLAN_RENDER_PASS_VOLUME_OCCLUSION = 2,
    DVZ_FRAME_PLAN_RENDER_PASS_SCENE_OCCLUSION = 3,
    DVZ_FRAME_PLAN_RENDER_PASS_SSAO = 4,
    DVZ_FRAME_PLAN_RENDER_PASS_SSAO_BLUR = 5,
    DVZ_FRAME_PLAN_RENDER_PASS_SSAO_COMPOSITE = 6,
    DVZ_FRAME_PLAN_RENDER_PASS_EDL_RESOLVE = 7,
    DVZ_FRAME_PLAN_RENDER_PASS_TRANSPARENT_ACCUMULATION = 8,
    DVZ_FRAME_PLAN_RENDER_PASS_TRANSPARENT_BLEND = 9,
    DVZ_FRAME_PLAN_RENDER_PASS_WBOIT_RESOLVE = 10,
    DVZ_FRAME_PLAN_RENDER_PASS_DEPTH_PEEL_INIT = 11,
    DVZ_FRAME_PLAN_RENDER_PASS_DEPTH_PEEL_ITER = 12,
    DVZ_FRAME_PLAN_RENDER_PASS_DEPTH_PEEL_COMPOSITE = 13,
    DVZ_FRAME_PLAN_RENDER_PASS_PICKING = 14,
};

Declared in include/datoviz/scene/enums.h:34.

DvzFramePlanUploadDesc · record
struct DvzFramePlanUploadDesc {
    uint32_t struct_size;
    uint32_t flags;
    const char * resource_id;
    uint64_t byte_offset;
    uint64_t byte_size;
    const char * data_tag;
    const void * data;
    DvzPrimitiveTopology topology;
    DvzFormat texture_format;
    uint32_t texture_bytes_per_texel;
    uint32_t texture_width;
    uint32_t texture_height;
    uint32_t texture_depth;
    uint32_t texture_alloc_width;
    uint32_t texture_alloc_height;
    uint32_t texture_alloc_depth;
    uint32_t texture_origin_x;
    uint32_t texture_origin_y;
    uint32_t texture_origin_z;
};

Declared in include/datoviz/scene/frame_plan.h:56.

Packet Results

Functions

dvz_frame_plan_packet_result_destroy()

Destroy a split packet result.

void dvz_frame_plan_packet_result_destroy(
    DvzFramePlanPacketResult * result
);
Field Type Description
result DvzFramePlanPacketResult * the packet result

Declared in include/datoviz/scene/frame_packets.h:80.

dvz_frame_plan_packet_result_frame_index()

Return the frame index associated with the packet result.

uint64_t dvz_frame_plan_packet_result_frame_index(
    const DvzFramePlanPacketResult * result
);
Field Type Description
return uint64_t the frame index
result const DvzFramePlanPacketResult * the packet result

Declared in include/datoviz/scene/frame_packets.h:109.

dvz_frame_plan_packet_result_get()

Return one split packet and its companion payload arena.

Empty phases return true with NULL packet and zero sizes.

_Bool dvz_frame_plan_packet_result_get(
    const DvzFramePlanPacketResult * result,
    DvzDrp2PacketKind kind,
    const void ** packet,
    uint64_t * packet_size,
    const void ** arena,
    uint64_t * arena_size
);
Field Type Description
return _Bool whether kind is valid and outputs were populated
result const DvzFramePlanPacketResult * the packet result
kind DvzDrp2PacketKind setup, update, or frame
packet const void ** output borrowed packet pointer
packet_size uint64_t * output packet byte size
arena const void ** output borrowed payload arena pointer
arena_size uint64_t * output arena byte size

Declared in include/datoviz/scene/frame_packets.h:126.

dvz_frame_plan_packet_result_resource_version()

Return the resource version associated with the packet result.

uint64_t dvz_frame_plan_packet_result_resource_version(
    const DvzFramePlanPacketResult * result
);
Field Type Description
return uint64_t the retained resource version
result const DvzFramePlanPacketResult * the packet result

Declared in include/datoviz/scene/frame_packets.h:99.

dvz_frame_plan_packet_result_status()

Return the result status.

DvzFramePlanPacketStatus dvz_frame_plan_packet_result_status(
    const DvzFramePlanPacketResult * result
);
Field Type Description
return DvzFramePlanPacketStatus the packet emission status
result const DvzFramePlanPacketResult * the packet result

Declared in include/datoviz/scene/frame_packets.h:90.

Types

DvzFramePlanPacketResult · typedef
typedef struct DvzFramePlanPacketResult DvzFramePlanPacketResult;

Declared in include/datoviz/scene/frame_packets.h:35.

DvzFramePlanPacketStatus · enum
enum DvzFramePlanPacketStatus {
    DVZ_FRAME_PLAN_PACKET_STATUS_OK = 0,
    DVZ_FRAME_PLAN_PACKET_STATUS_EMIT_ERROR = 1,
    DVZ_FRAME_PLAN_PACKET_STATUS_ENCODE_ERROR = 2,
};

Declared in include/datoviz/scene/frame_packets.h:43.