29 void MTLQueryPool::allocate_buffer()
34 buffer_size_in_bytes,
true);
42 return MTLVisibilityResultModeBoolean;
45 return MTLVisibilityResultModeBoolean;
62 int query_id = query_issued_;
64 if (requested_buffer >= buffer_.size()) {
78 [rec setVisibilityResultMode:mtl_type_
89 [rec setVisibilityResultMode:MTLVisibilityResultModeDisabled
offset:0];
98 if ([ctx->
device hasUnifiedMemory] ==
false) {
102 [blit_encoder synchronizeResource:buf->get_metal_buffer()];
113 for (
const int i :
IndexRange(query_issued_)) {
116 buffer_[requested_buffer]->get_host_ptr());
GPUContext * GPU_context_active_get(void)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
id< MTLBlitCommandEncoder > ensure_begin_blit_encoder()
id< MTLRenderCommandEncoder > get_active_render_command_encoder()
void set_visibility_buffer(gpu::MTLBuffer *buffer)
id< MTLRenderCommandEncoder > ensure_begin_render_pass()
MTLCommandBufferManager main_command_buffer
static MTLBufferPool & get_global_memory_manager()
void begin_query() override
void init(GPUQueryType type) override
void end_query() override
void get_occlusion_result(MutableSpan< uint32_t > r_values) override
ccl_global float * buffer
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
static const size_t VISIBILITY_COUNT_PER_BUFFER
static const size_t VISIBILITY_RESULT_SIZE_IN_BYTES
static MTLVisibilityResultMode to_mtl_type(GPUQueryType type)
unsigned __int64 uint64_t