Blender  V3.3
Public Member Functions | Static Public Attributes | Friends | List of all members
blender::gpu::MTLCommandBufferManager Class Reference

#include <mtl_context.hh>

Public Member Functions

 MTLCommandBufferManager (MTLContext &context)
 
MTLRenderPassStateget_render_pass_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 *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 ()
 
Command buffer debugging.
bool insert_memory_barrier (eGPUBarrier barrier_bits, eGPUStageBarrierBits before_stages, eGPUStageBarrierBits after_stages)
 
void push_debug_group (const char *name, int index)
 
void pop_debug_group ()
 

Static Public Attributes

static id< MTLEvent > sync_event = nil
 
static uint64_t event_signal_val = 0
 
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)
 

Detailed Description

Definition at line 466 of file mtl_context.hh.

Constructor & Destructor Documentation

◆ MTLCommandBufferManager()

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

Definition at line 511 of file mtl_context.hh.

Member Function Documentation

◆ do_break_submission()

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

◆ end_active_command_encoder()

bool blender::gpu::MTLCommandBufferManager::end_active_command_encoder ( )

◆ ensure_begin_blit_encoder()

id< MTLBlitCommandEncoder > blender::gpu::MTLCommandBufferManager::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 new_pass 
)

◆ get_active_blit_command_encoder()

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

Definition at line 205 of file mtl_command_buffer.mm.

◆ get_active_compute_command_encoder()

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

Definition at line 211 of file mtl_command_buffer.mm.

Referenced by insert_memory_barrier().

◆ get_active_framebuffer()

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

◆ get_active_render_command_encoder()

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

◆ get_render_pass_state()

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

Definition at line 528 of file mtl_context.hh.

References BLI_assert, and is_inside_render_pass().

◆ insert_memory_barrier()

bool blender::gpu::MTLCommandBufferManager::insert_memory_barrier ( eGPUBarrier  barrier_bits,
eGPUStageBarrierBits  before_stages,
eGPUStageBarrierBits  after_stages 
)

◆ is_inside_blit()

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

Definition at line 189 of file mtl_command_buffer.mm.

◆ is_inside_compute()

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

Definition at line 194 of file mtl_command_buffer.mm.

◆ is_inside_render_pass()

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

◆ pop_debug_group()

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

Definition at line 461 of file mtl_command_buffer.mm.

Referenced by blender::gpu::MTLContext::debug_group_end().

◆ prepare()

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

◆ push_debug_group()

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

Definition at line 453 of file mtl_command_buffer.mm.

Referenced by blender::gpu::MTLContext::debug_group_begin().

◆ register_draw_counters()

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

Definition at line 409 of file mtl_command_buffer.mm.

◆ reset_counters()

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

Definition at line 417 of file mtl_command_buffer.mm.

◆ submit()

bool blender::gpu::MTLCommandBufferManager::submit ( bool  wait)

Friends And Related Function Documentation

◆ MTLContext

friend class MTLContext
friend

Definition at line 467 of file mtl_context.hh.

Member Data Documentation

◆ event_signal_val

uint64_t blender::gpu::MTLCommandBufferManager::event_signal_val = 0
static

Definition at line 472 of file mtl_context.hh.

Referenced by submit().

◆ num_active_cmd_bufs

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

Definition at line 475 of file mtl_context.hh.

Referenced by submit().

◆ sync_event

id< MTLEvent > blender::gpu::MTLCommandBufferManager::sync_event = nil
static

Definition at line 471 of file mtl_context.hh.

Referenced by submit().


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