|
Blender V4.3
|
#include <mtl_shader.hh>
Public Member Functions | |
| void | increment_ref_count () |
| void | decrement_ref_count () |
| int | get_ref_count () |
MTLParallelShaderCompiler | |
| MTLParallelShaderCompiler () | |
| ~MTLParallelShaderCompiler () | |
| void | create_compile_threads () |
| BatchHandle | batch_compile (MTLShaderCompiler *shade_compiler, Span< const shader::ShaderCreateInfo * > &infos) |
| bool | batch_is_ready (BatchHandle handle) |
| Vector< Shader * > | batch_finalize (BatchHandle &handle) |
| SpecializationBatchHandle | precompile_specializations (Span< ShaderSpecialization > specializations) |
| bool | specialization_batch_is_ready (SpecializationBatchHandle &handle) |
Definition at line 411 of file mtl_shader.hh.
| blender::gpu::MTLParallelShaderCompiler::MTLParallelShaderCompiler | ( | ) |
Definition at line 1866 of file mtl_shader.mm.
References BLI_assert, and GPU_use_parallel_compilation().
| blender::gpu::MTLParallelShaderCompiler::~MTLParallelShaderCompiler | ( | ) |
Definition at line 1873 of file mtl_shader.mm.
References batch_finalize(), BLI_assert, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), thread::join(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::keys(), and lock.
| BatchHandle blender::gpu::MTLParallelShaderCompiler::batch_compile | ( | MTLShaderCompiler * | shade_compiler, |
| Span< const shader::ShaderCreateInfo * > & | infos ) |
Definition at line 2073 of file mtl_shader.mm.
References BLI_assert, GPU_use_parallel_compilation(), shader_debug_printf, and blender::Span< T >::size().
Referenced by blender::gpu::MTLShaderCompiler::batch_compile().
| Vector< Shader * > blender::gpu::MTLParallelShaderCompiler::batch_finalize | ( | BatchHandle & | handle | ) |
Definition at line 2123 of file mtl_shader.mm.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), batch, batch_is_ready(), BLI_time_sleep_ms(), lock, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::pop(), and result.
Referenced by blender::gpu::MTLShaderCompiler::batch_finalize(), and ~MTLParallelShaderCompiler().
| bool blender::gpu::MTLParallelShaderCompiler::batch_is_ready | ( | BatchHandle | handle | ) |
Definition at line 2101 of file mtl_shader.mm.
References batch, lock, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), and shader_debug_printf.
Referenced by batch_finalize(), and blender::gpu::MTLShaderCompiler::batch_is_ready().
| void blender::gpu::MTLParallelShaderCompiler::create_compile_threads | ( | ) |
Definition at line 1907 of file mtl_shader.mm.
References BLI_assert, GHOST_GPUSettings::context_type, blender::gpu::MTLContext::device, GHOST_GPUDevice::device_id, GHOST_GPUSettings::flags, G, G_DEBUG_GPU, blender::gpu::MTLBackend::get_capabilities(), GHOST_CreateGPUContext(), GHOST_gpuDebugContext, ghost_system, GPU_backend_ghost_system_get(), GPU_context_active_get(), GPU_context_active_set(), GPU_context_create(), GHOST_GPUDevice::index, lock, MIN, blender::gpu::MTLCapabilities::num_performance_cores, GHOST_GPUSettings::preferred_device, blender::gpu::unwrap(), and GHOST_GPUDevice::vendor_id.
|
inline |
Definition at line 470 of file mtl_shader.hh.
References BLI_assert.
Referenced by blender::gpu::release_shared_parallel_shader_compiler().
|
inline |
Definition at line 475 of file mtl_shader.hh.
Referenced by blender::gpu::release_shared_parallel_shader_compiler().
|
inline |
Definition at line 466 of file mtl_shader.hh.
Referenced by blender::gpu::get_shared_parallel_shader_compiler().
| SpecializationBatchHandle blender::gpu::MTLParallelShaderCompiler::precompile_specializations | ( | Span< ShaderSpecialization > | specializations | ) |
Definition at line 2140 of file mtl_shader.mm.
References BLI_assert, BLI_assert_msg, blender::gpu::ShaderInterface::constant_get(), blender::gpu::Shader::constants, GPU_use_parallel_compilation(), blender::gpu::MTLShader::has_compute_shader_lib(), blender::gpu::Shader::interface, blender::gpu::Shader::Constants::is_dirty, blender::gpu::MTLShader::is_valid(), and blender::gpu::unwrap().
Referenced by blender::gpu::MTLShaderCompiler::precompile_specializations().
| bool blender::gpu::MTLParallelShaderCompiler::specialization_batch_is_ready | ( | SpecializationBatchHandle & | handle | ) |
Definition at line 2186 of file mtl_shader.mm.
References batch, lock, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), and shader_debug_printf.
Referenced by blender::gpu::MTLShaderCompiler::specialization_batch_is_ready().