Skip to main content

Tracing

The Tracing class provides an abstraction for managing acceleration structures used in ray tracing tasks. It allows the creation, management, and manipulation of different types of acceleration structures, such as instances, triangles, and bounds. It provides methods to set up and manage vertex buffers, index buffers, and instance buffers, enabling the setup of geometries and the specification of tracing parameters.

#include <platform/TellusimTracing.h>

Constructors

Tracing()

Methods

Tracing platform.

Platform getPlatform() const
const char *getPlatformName() const

Tracing device index.

uint32_t getIndex() const

Clear tracing.

void clear()

Check tracing.

bool isCreated() const
bool isBuilt() const

Tracing name.

void setName(const char *name)
String getName() const

Create tracing.

bool create(Type type, Flags flags = DefaultFlags)

Tracing type.

Type getType() const
static const char *getTypeName(Type type)
const char *getTypeName() const
bool isInstanceType() const
bool isTriangleType() const
bool isBoundType() const
bool isGeometryType() const

Tracing parameters.

void setParameters(const Tracing &tracing)

Tracing geometries.

uint32_t getNumGeometries() const

Instance buffer.

void setInstanceBuffer(uint32_t num_instances, Buffer &buffer, size_t offset = 0)
void setInstanceBuffer(Buffer &buffer, size_t offset = 0)
void setNumInstances(uint32_t num_instances)
uint32_t getNumInstances() const
Buffer getInstanceBuffer() const
size_t getInstanceOffset() const

Indirect buffer.

void setIndirectBuffer(Buffer &buffer, size_t offset = 0)
Buffer getIndirectBuffer() const
size_t getIndirectOffset() const

Vertex buffers.

uint32_t addVertexBuffer(uint32_t num_vertices, Format format, size_t stride, Buffer buffer = Buffer::null, size_t offset = 0)
void setVertexBuffer(uint32_t index, uint32_t num_vertices, Buffer &buffer, size_t offset = 0)
void setVertexBuffer(uint32_t index, Buffer &buffer, size_t offset = 0)
void setNumVertices(uint32_t index, uint32_t num_vertices)
uint32_t getNumVertices(uint32_t index) const
Format getVertexFormat(uint32_t index) const
uint32_t getVertexStride(uint32_t index) const
Buffer getVertexBuffer(uint32_t index) const
size_t getVertexOffset(uint32_t index) const

Index buffers.

uint32_t addIndexBuffer(uint32_t num_indices, Format format, Buffer buffer = Buffer::null, size_t offset = 0)
void setIndexBuffer(uint32_t index, uint32_t num_indices, Buffer &buffer, size_t offset = 0)
void setIndexBuffer(uint32_t index, Buffer &buffer, size_t offset = 0)
void setNumIndices(uint32_t index, uint32_t num_indices)
uint32_t getNumIndices(uint32_t index) const
Format getIndexFormat(uint32_t index) const
Buffer getIndexBuffer(uint32_t index) const
size_t getIndexOffset(uint32_t index) const

Bound buffers.

uint32_t addBoundBuffer(uint32_t num_bounds, size_t stride, Buffer buffer = Buffer::null, size_t offset = 0)
void setBoundBuffer(uint32_t index, uint32_t num_bounds, Buffer &buffer, size_t offset = 0)
void setBoundBuffer(uint32_t index, Buffer &buffer, size_t offset = 0)
void setNumBounds(uint32_t index, uint32_t num_bounds)
uint32_t getNumBounds(uint32_t index) const
uint32_t getBoundStride(uint32_t index) const
Buffer getBoundBuffer(uint32_t index) const
size_t getBoundOffset(uint32_t index) const

Tracing description.

String getDescription() const

Tracing address.

uint64_t getTracingAddress() const

Scratch buffer size.

size_t getBuildSize() const
size_t getUpdateSize() const

Memory usage.

size_t getMemory() const

Enums

Type

Tracing types.

NameValue
TypeUnknown0
TypeInstance1
TypeTriangle2
TypeBound3
NumTypes4

Flags

Tracing flags.

NameValueDescription
FlagNone0
FlagInfo(1 << 0)Get build info.
FlagUpdate(1 << 1)Update tracing.
FlagCompact(1 << 2)Compact tracing.
FlagTransparent(1 << 3)Transparent tracing.
FlagFastBuild(1 << 4)Fast build tracing.
FlagFastTrace(1 << 5)Fast trace tracing.
DefaultFlagsFlagNone
NumFlags6

Instance size.

NameValue
InstanceSize64

Structs

Instance

Tracing instance.

Variables

TypeNameDescription
float32_t[12]transformRow-major transform.
uint32_tdataIntersection data.
uint32_tmaskIntersection mask.
uint32_tflagsIntersection flags.
uint32_toffsetIntersection offset.
TracingtracingGeometry tracing.

BuildIndirect

Build indirect parameters.

Variables

TypeName
uint32_tnum_primitives
uint32_tbase_primitive
uint32_tbase_vertex
uint32_tbase_transform