Blender
V3.3
|
#include <mtl_memory.hh>
Public Member Functions | |
MTLScratchBufferManager and MTLCircularBuffer implementation. | |
MTLCircularBuffer (MTLContext &ctx, uint64_t initial_size, bool allow_grow) | |
~MTLCircularBuffer () | |
MTLTemporaryBuffer | allocate_range (uint64_t alloc_size) |
MTLTemporaryBuffer | allocate_range_aligned (uint64_t alloc_size, uint alignment) |
void | flush () |
void | reset () |
Friends | |
class | MTLScratchBufferManager |
Definition at line 198 of file mtl_memory.hh.
blender::gpu::MTLCircularBuffer::MTLCircularBuffer | ( | MTLContext & | ctx, |
uint64_t | initial_size, | ||
bool | allow_grow | ||
) |
Definition at line 709 of file mtl_memory.mm.
References BLI_assert, blender::gpu::MTLContext::device, blender::gpu::MTLBuffer::flag_in_use(), G, G_DEBUG_GPU, blender::gpu::MTLContext::get_current_frame_index(), options, and blender::gpu::MTLBuffer::set_label().
blender::gpu::MTLCircularBuffer::~MTLCircularBuffer | ( | ) |
Definition at line 730 of file mtl_memory.mm.
MTLTemporaryBuffer blender::gpu::MTLCircularBuffer::allocate_range | ( | uint64_t | alloc_size | ) |
Definition at line 735 of file mtl_memory.mm.
References allocate_range_aligned().
MTLTemporaryBuffer blender::gpu::MTLCircularBuffer::allocate_range_aligned | ( | uint64_t | alloc_size, |
uint | alignment | ||
) |
Definition at line 740 of file mtl_memory.mm.
References BLI_assert, blender::gpu::MTLBufferRange::buffer_offset, ceil_to_multiple_ul(), blender::gpu::MTLBufferRange::data, blender::gpu::MTLContext::device, blender::gpu::MTLBuffer::flag_in_use(), flush(), G, G_DEBUG_GPU, blender::gpu::MTLBuffer::get_alignment(), blender::gpu::MTLBuffer::get_metal_buffer(), blender::gpu::MTLBuffer::get_resource_options(), blender::gpu::MTLBuffer::get_size(), max_ulul(), blender::gpu::MTLBufferRange::metal_buffer, min_ulul(), MTL_LOG_INFO, MTL_LOG_WARNING, blender::gpu::MTLScratchBufferManager::mtl_scratch_buffer_max_size_, blender::gpu::MTLBufferRange::options, blender::gpu::MTLBuffer::set_label(), and blender::gpu::MTLBufferRange::size.
Referenced by allocate_range(), and blender::gpu::MTLScratchBufferManager::scratch_buffer_allocate_range_aligned().
void blender::gpu::MTLCircularBuffer::flush | ( | ) |
Definition at line 861 of file mtl_memory.mm.
References BLI_assert, blender::gpu::MTLBuffer::flush_range(), and len.
Referenced by allocate_range_aligned(), and blender::gpu::MTLScratchBufferManager::flush_active_scratch_buffer().
void blender::gpu::MTLCircularBuffer::reset | ( | ) |
Definition at line 872 of file mtl_memory.mm.
References BLI_assert, blender::gpu::MTLContext::get_current_frame_index(), and MTL_NUM_SAFE_FRAMES.
Referenced by blender::gpu::MTLScratchBufferManager::ensure_increment_scratch_buffer().
|
friend |
Definition at line 199 of file mtl_memory.hh.