Blender V4.3
blender::gpu::MTLCommandBufferManager Class Reference

#include <mtl_context.hh>

Public Member Functions

 MTLCommandBufferManager (MTLContext &context)
MTLRenderPassStateget_render_pass_state ()
MTLComputeStateget_compute_state ()
Render Command Encoder Utility and management functions.
bool is_inside_render_pass ()
bool is_inside_blit ()
bool is_inside_compute ()
id< MTLRenderCommandEncoder > get_active_render_command_encoder ()
id< MTLBlitCommandEncoder > get_active_blit_command_encoder ()
id< MTLComputeCommandEncoder > get_active_compute_command_encoder ()
MTLFrameBufferget_active_framebuffer ()
bool end_active_command_encoder ()
id< MTLRenderCommandEncoder > ensure_begin_render_command_encoder (MTLFrameBuffer *ctx_framebuffer, bool force_begin, bool *r_new_pass)
id< MTLBlitCommandEncoder > ensure_begin_blit_encoder ()
id< MTLComputeCommandEncoder > ensure_begin_compute_encoder ()
Command buffer heuristics.
void register_draw_counters (int vertex_submission)
void reset_counters ()
bool do_break_submission ()

Static Public Attributes

static int num_active_cmd_bufs = 0

Friends

class MTLContext

MTLCommandBuffer initialization and render coordination.

void prepare (bool supports_render=true)
bool submit (bool wait)

Command buffer debugging.

bool insert_memory_barrier (eGPUBarrier barrier_bits, eGPUStageBarrierBits before_stages, eGPUStageBarrierBits after_stages)
void encode_signal_event (id< MTLEvent > event, uint64_t value)
void encode_wait_for_event (id< MTLEvent > event, uint64_t value)
void push_debug_group (const char *name, int index)
void pop_debug_group ()

Detailed Description

Definition at line 547 of file mtl_context.hh.

Constructor & Destructor Documentation

◆ MTLCommandBufferManager()

blender::gpu::MTLCommandBufferManager::MTLCommandBufferManager ( MTLContext & context)
inline

Definition at line 598 of file mtl_context.hh.

References MTLContext.

Member Function Documentation

◆ do_break_submission()

bool blender::gpu::MTLCommandBufferManager::do_break_submission ( )

◆ encode_signal_event()

void blender::gpu::MTLCommandBufferManager::encode_signal_event ( id< MTLEvent > event,
uint64_t value )

◆ encode_wait_for_event()

void blender::gpu::MTLCommandBufferManager::encode_wait_for_event ( id< MTLEvent > event,
uint64_t value )

Definition at line 672 of file mtl_command_buffer.mm.

References BLI_assert, and end_active_command_encoder().

Referenced by blender::gpu::MTLFence::wait().

◆ end_active_command_encoder()

◆ ensure_begin_blit_encoder()

◆ ensure_begin_compute_encoder()

id< MTLComputeCommandEncoder > blender::gpu::MTLCommandBufferManager::ensure_begin_compute_encoder ( )

◆ ensure_begin_render_command_encoder()

id< MTLRenderCommandEncoder > blender::gpu::MTLCommandBufferManager::ensure_begin_render_command_encoder ( MTLFrameBuffer * ctx_framebuffer,
bool force_begin,
bool * r_new_pass )

◆ get_active_blit_command_encoder()

id< MTLBlitCommandEncoder > blender::gpu::MTLCommandBufferManager::get_active_blit_command_encoder ( )

Definition at line 203 of file mtl_command_buffer.mm.

◆ get_active_compute_command_encoder()

id< MTLComputeCommandEncoder > blender::gpu::MTLCommandBufferManager::get_active_compute_command_encoder ( )

Definition at line 209 of file mtl_command_buffer.mm.

Referenced by insert_memory_barrier().

◆ get_active_framebuffer()

MTLFrameBuffer * blender::gpu::MTLCommandBufferManager::get_active_framebuffer ( )

Definition at line 215 of file mtl_command_buffer.mm.

References is_inside_render_pass().

Referenced by blender::gpu::MTLBatch::bind().

◆ get_active_render_command_encoder()

id< MTLRenderCommandEncoder > blender::gpu::MTLCommandBufferManager::get_active_render_command_encoder ( )

◆ get_compute_state()

MTLComputeState & blender::gpu::MTLCommandBufferManager::get_compute_state ( )
inline

◆ get_render_pass_state()

MTLRenderPassState & blender::gpu::MTLCommandBufferManager::get_render_pass_state ( )
inline

◆ insert_memory_barrier()

◆ is_inside_blit()

bool blender::gpu::MTLCommandBufferManager::is_inside_blit ( )

Definition at line 187 of file mtl_command_buffer.mm.

◆ is_inside_compute()

bool blender::gpu::MTLCommandBufferManager::is_inside_compute ( )

Definition at line 192 of file mtl_command_buffer.mm.

Referenced by get_compute_state().

◆ is_inside_render_pass()

bool blender::gpu::MTLCommandBufferManager::is_inside_render_pass ( )

Definition at line 182 of file mtl_command_buffer.mm.

Referenced by get_active_framebuffer(), and get_render_pass_state().

◆ pop_debug_group()

void blender::gpu::MTLCommandBufferManager::pop_debug_group ( )

◆ prepare()

void blender::gpu::MTLCommandBufferManager::prepare ( bool supports_render = true)

Definition at line 29 of file mtl_command_buffer.mm.

◆ push_debug_group()

void blender::gpu::MTLCommandBufferManager::push_debug_group ( const char * name,
int index )

Definition at line 499 of file mtl_command_buffer.mm.

References end_active_command_encoder().

◆ register_draw_counters()

void blender::gpu::MTLCommandBufferManager::register_draw_counters ( int vertex_submission)

Definition at line 454 of file mtl_command_buffer.mm.

Referenced by blender::gpu::MTLDrawList::submit().

◆ reset_counters()

void blender::gpu::MTLCommandBufferManager::reset_counters ( )

Definition at line 462 of file mtl_command_buffer.mm.

◆ submit()

◆ MTLContext

friend class MTLContext
friend

Definition at line 548 of file mtl_context.hh.

References MTLContext.

Referenced by MTLCommandBufferManager(), and MTLContext.

Member Data Documentation

◆ num_active_cmd_bufs

int blender::gpu::MTLCommandBufferManager::num_active_cmd_bufs = 0
static

Definition at line 552 of file mtl_context.hh.

Referenced by blender::gpu::present(), and submit().


The documentation for this class was generated from the following files: