Blender V4.3
GPU_storage_buffer.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2022 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
15#pragma once
16
17#include "GPU_texture.hh"
18#include "GPU_vertex_buffer.hh"
19
21struct GPUStorageBuf;
22
23GPUStorageBuf *GPU_storagebuf_create_ex(size_t size,
24 const void *data,
25 GPUUsageType usage,
26 const char *name);
27
28#define GPU_storagebuf_create(size) \
29 GPU_storagebuf_create_ex(size, nullptr, GPU_USAGE_DYNAMIC, __func__);
30
31void GPU_storagebuf_free(GPUStorageBuf *ssbo);
32
33void GPU_storagebuf_update(GPUStorageBuf *ssbo, const void *data);
34
35void GPU_storagebuf_bind(GPUStorageBuf *ssbo, int slot);
36void GPU_storagebuf_unbind(GPUStorageBuf *ssbo);
42
43void GPU_storagebuf_clear_to_zero(GPUStorageBuf *ssbo);
44
49void GPU_storagebuf_clear(GPUStorageBuf *ssbo, uint32_t clear_value);
50
56void GPU_storagebuf_sync_to_host(GPUStorageBuf *ssbo);
57
69void GPU_storagebuf_read(GPUStorageBuf *ssbo, void *data);
70
80void GPU_storagebuf_copy_sub_from_vertbuf(GPUStorageBuf *ssbo,
82 uint dst_offset,
83 uint src_offset,
84 uint copy_size);
85
90void GPU_storagebuf_sync_as_indirect_buffer(GPUStorageBuf *ssbo);
unsigned int uint
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)
unsigned int uint32_t
Definition stdint.h:80