Skip to main content

Compute

The Compute class is responsible for resource binding and the execution of compute kernels. It allows setting up and binding various resources such as kernels, samplers, textures, buffers, and other data structures required for compute operations. The class manages resource bindings, executes compute tasks on the target platform, and supports dispatching kernels with different configurations. It also facilitates handling of indirect execution, resource barriers, conditional execution, and query management, ensuring efficient execution of compute workloads across various platforms.

#include <platform/TellusimCompute.h>

Constructors

Compute()

Methods

Compute platform.

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

Compute device index.

uint32_t getIndex() const

Set kernel.

void setKernel(Kernel &kernel)
Kernel getKernel() const

Set traversal.

void setTraversal(Traversal &traversal)
Traversal getTraversal() const

Set samplers.

void setSampler(uint32_t index, Sampler &sampler)
void setSamplers(uint32_t index, Array<Sampler> samplers)
void setSamplers(uint32_t index, const InitializerList<Sampler> &samplers)

Set textures.

void setTexture(uint32_t index, Texture &texture)
void setTexture(uint32_t index, Texture &texture, Slice slice)
void setTextures(uint32_t index, Array<Texture> textures)
void setTextures(uint32_t index, const InitializerList<Texture> &textures)

Set surfaces.

void setSurfaceTexture(uint32_t index, Texture &texture)
void setSurfaceTexture(uint32_t index, Texture &texture, Slice slice, Format format = FormatUnknown)
void setSurfaceTextures(uint32_t index, Array<Texture> textures)
void setSurfaceTextures(uint32_t index, const InitializerList<Texture> &textures)

Set uniforms.

void *getUniformData(uint32_t index, size_t size)
void setUniformData(uint32_t index, const void *src, size_t size)
void setUniformBuffer(uint32_t index, Buffer &buffer, size_t offset = 0, size_t size = 0)
void setUniformOffset(uint32_t index, size_t offset, bool relative = false)
void setUniformBuffers(uint32_t index, Array<Buffer> buffers)
void setUniformBuffers(uint32_t index, Array<Buffer> buffers, Array<size_t> offsets)
void setUniformBuffers(uint32_t index, const InitializerList<Buffer> &buffers)
void setUniformBuffers(uint32_t index, const InitializerList<Buffer> &buffers, const InitializerList<size_t> &offsets)
template<> void setUniform(uint32_t index, const Array<Type> &data)
template<> void setUniform(uint32_t index, const Type &data)

Set storages.

void *getStorageData(uint32_t index, size_t size)
void setStorageData(uint32_t index, const void *src, size_t size)
void setStorageBuffer(uint32_t index, Buffer &buffer, size_t offset = 0, size_t size = 0)
void setStorageOffset(uint32_t index, size_t offset, bool relative = false)
void setStorageBuffers(uint32_t index, const InitializerList<Buffer> &buffers)
void setStorageBuffers(uint32_t index, const InitializerList<Buffer> &buffers, const InitializerList<size_t> &offsets)
void setStorageBuffers(uint32_t index, Array<Buffer> buffers)
void setStorageBuffers(uint32_t index, Array<Buffer> buffers, Array<size_t> offsets)
template<> void setStorage(uint32_t index, const Array<Type> &data)
template<> void setStorage(uint32_t index, const Type &data)

Set tracings.

void setTracing(uint32_t index, Tracing &tracing)
void setTracings(uint32_t index, Array<Tracing> tracings)
void setTracings(uint32_t index, const InitializerList<Tracing> &tracings)

Set texel buffers.

void setTexelBuffer(uint32_t index, Buffer &buffer)
void setTexelBuffers(uint32_t index, Array<Buffer> buffers)
void setTexelBuffers(uint32_t index, const InitializerList<Buffer> &buffers)

Set texture tables.

void setTextureTable(uint32_t index, TextureTable &table)
void setTextureTables(uint32_t index, Array<TextureTable> tables)
void setTextureTables(uint32_t index, const InitializerList<TextureTable> &tables)

Set storage tables.

void setStorageTable(uint32_t index, BufferTable &table)
void setStorageTables(uint32_t index, Array<BufferTable> tables)
void setStorageTables(uint32_t index, const InitializerList<BufferTable> &tables)

Set indirect.

void *getIndirectData(size_t size)
void setIndirectData(const void *src, size_t size)
void setIndirectBuffer(Buffer &buffer, size_t offset = 0)
void setIndirectOffset(size_t offset, bool relative = false)
template<> void setIndirect(const Type &data)

Dispatch kernel.

void dispatch(uint32_t width, uint32_t height = 1, uint32_t depth = 1)
void dispatch(const Texture &texture)
void dispatch(Size size)

Dispatch kernel indirect.

void dispatchIndirect()

Set buffer data.

bool setBuffer(Buffer &buffer, size_t offset, const void *src, size_t size)
bool setBuffer(Buffer &buffer, const void *src, size_t size)
bool setBuffer(Buffer &buffer, const void *src)

Copy buffer data.

bool copyBuffer(Buffer &buffer, size_t dest_offset, Buffer &src, size_t src_offset, size_t size)
bool copyBuffer(Buffer &buffer, size_t dest_offset, Buffer &src, size_t size)
bool copyBuffer(Buffer &buffer, Buffer &src, size_t size)
bool copyBuffer(Buffer &buffer, Buffer &src)

Clear buffer data.

bool clearBuffer(Buffer &buffer, Format format, size_t offset, const void *src, size_t size)
bool clearBuffer(Buffer &buffer, Format format, const void *src, size_t size)
bool clearBuffer(Buffer &buffer, Format format, const void *src)
bool clearBuffer(Buffer &buffer)

Set texture data.

bool setTexture(Texture &texture, Origin dest_origin, Slice dest_slice, const Image &image, Slice src_slice)
bool setTexture(Texture &texture, Origin dest_origin, const Image &image)
bool setTexture(Texture &texture, Slice dest_slice, const Image &image)
bool setTexture(Texture &texture, const Image &image)

Copy texture data.

bool copyTexture(Texture &texture, Origin dest_origin, Slice dest_slice, Texture &src, Region src_region, Slice src_slice)
bool copyTexture(Texture &texture, Origin dest_origin, Texture &src, Region src_region)
bool copyTexture(Texture &texture, Slice dest_slice, Texture &src, Slice src_slice)
bool copyTexture(Texture &texture, Texture &src)

Clear texture data.

bool clearTexture(Texture &texture, Region region, Slice slice, const void *src)
bool clearTexture(Texture &texture, Region region, const void *src)
bool clearTexture(Texture &texture, Slice slice, const void *src)
bool clearTexture(Texture &texture, const void *src)

Resource barriers.

void barrier(Texture &texture)
void barrier(Buffer &buffer)
void barrier(Array<Texture> textures)
void barrier(Array<Buffer> buffers)
void barrier(const InitializerList<Texture> &textures)
void barrier(const InitializerList<Buffer> &buffers)

Begin/end conditional.

void beginConditional(Buffer &buffer, size_t offset)
void endConditional()

Begin/end query.

bool beginQuery(Query &query)
void endQuery(Query &query)

Structs

DispatchIndirect

Dispatch indirect parameters.

Variables

TypeName
uint32_tgroup_width
uint32_tgroup_height
uint32_tgroup_depth
uint32_tpadding