63 if (data !=
nullptr) {
76 unwrap(ssbo)->update(data);
101 unwrap(ssbo)->clear(clear_value);
110 unwrap(ssbo)->copy_sub(src, dst_offset, src_offset, copy_size);
115 unwrap(ssbo)->async_flush_to_host();
125 unwrap(ssbo)->sync_as_indirect_buffer();
#define STRNCPY(dst, src)
void GPU_storagebuf_bind(GPUStorageBuf *ssbo, int slot)
void GPU_storagebuf_sync_to_host(GPUStorageBuf *ssbo)
GPUStorageBuf * GPU_storagebuf_create_ex(size_t size, const void *data, GPUUsageType usage, const char *name)
void GPU_storagebuf_copy_sub_from_vertbuf(GPUStorageBuf *ssbo, blender::gpu::VertBuf *src, uint dst_offset, uint src_offset, uint copy_size)
Copy a part of a vertex buffer to a storage buffer.
void GPU_storagebuf_unbind(GPUStorageBuf *ssbo)
void GPU_storagebuf_sync_as_indirect_buffer(GPUStorageBuf *ssbo)
void GPU_storagebuf_clear_to_zero(GPUStorageBuf *ssbo)
void GPU_storagebuf_free(GPUStorageBuf *ssbo)
void GPU_storagebuf_update(GPUStorageBuf *ssbo, const void *data)
void GPU_storagebuf_read(GPUStorageBuf *ssbo, void *data)
void GPU_storagebuf_debug_unbind_all()
void GPU_storagebuf_clear(GPUStorageBuf *ssbo, uint32_t clear_value)
Read Guarded memory(de)allocation.
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
virtual void debug_unbind_all_ssbo()=0
static GPUBackend * get()
virtual StorageBuf * storagebuf_alloc(size_t size, GPUUsageType usage, const char *name)=0
StorageBuf(size_t size, const char *name)
char name_[DEBUG_NAME_LEN]
virtual void update(const void *data)=0
static Context * unwrap(GPUContext *ctx)
static GPUContext * wrap(Context *ctx)