|
Blender V5.0
|
Public Member Functions | |
| GPUPass (GPUCodegenCreateInfo *info, bool deferred_compilation, bool is_optimization_pass, bool should_optimize) | |
| ~GPUPass () | |
| CompilationPriority | compilation_priority () |
| void | finalize_compilation () |
| void | update (double timestamp) |
| void | update_compilation (double timestamp) |
| void | update_gc_timestamp (double timestamp) |
| bool | should_gc (int gc_collect_rate, double timestamp) |
Public Attributes | |
| GPUCodegenCreateInfo * | create_info = nullptr |
| BatchHandle | compilation_handle = 0 |
| std::atomic< blender::gpu::Shader * > | shader = nullptr |
| std::atomic< GPUPassStatus > | status = GPU_PASS_QUEUED |
| std::atomic< int > | refcount = 1 |
| double | creation_timestamp = 0.0f |
| double | gc_timestamp = 0.0f |
| uint64_t | compilation_timestamp = 0 |
| bool | should_optimize = false |
| bool | is_optimization_pass = false |
Static Public Attributes | |
| static std::atomic< uint64_t > | compilation_counts = 0 |
| static constexpr float | optimization_delay = 10.0f |
Definition at line 36 of file gpu_pass.cc.
|
inline |
Definition at line 59 of file gpu_pass.cc.
References BLI_assert, BLI_time_now_seconds(), compilation_handle, compilation_priority(), create_info, creation_timestamp, finalize_compilation(), GPU_shader_batch_create_from_infos(), GPU_shader_create_from_info(), is_optimization_pass, shader, and should_optimize.
|
inline |
Definition at line 86 of file gpu_pass.cc.
References BLI_assert, compilation_handle, create_info, GPU_PASS_QUEUED, GPU_shader_batch_cancel(), GPU_SHADER_FREE_SAFE, is_optimization_pass, shader, and status.
|
inline |
Definition at line 98 of file gpu_pass.cc.
References is_optimization_pass, Low, and Medium.
Referenced by GPUPass(), and update_compilation().
|
inline |
Definition at line 103 of file gpu_pass.cc.
References BLI_assert_msg, compilation_counts, compilation_handle, compilation_timestamp, create_info, Vector< T, InlineBufferCapacity, Allocator >::first(), GPU_PASS_FAILED, GPU_PASS_SUCCESS, gpu_pass_validate(), GPU_shader_batch_finalize(), shader, and status.
Referenced by GPU_pass_ensure_its_ready(), GPUPass(), and update_compilation().
|
inline |
Definition at line 153 of file gpu_pass.cc.
References BLI_assert, compilation_handle, gc_timestamp, GPU_PASS_FAILED, and status.
|
inline |
Definition at line 123 of file gpu_pass.cc.
References update_compilation(), and update_gc_timestamp().
|
inline |
Definition at line 129 of file gpu_pass.cc.
References BLI_assert, compilation_handle, compilation_priority(), create_info, creation_timestamp, finalize_compilation(), GPU_PASS_QUEUED, GPU_shader_batch_create_from_infos(), GPU_shader_batch_is_ready(), is_optimization_pass, optimization_delay, refcount, and status.
Referenced by update().
|
inline |
Definition at line 146 of file gpu_pass.cc.
References gc_timestamp, and refcount.
Referenced by update().
|
inlinestatic |
Definition at line 37 of file gpu_pass.cc.
Referenced by finalize_compilation(), and GPU_pass_global_compilation_count().
| BatchHandle GPUPass::compilation_handle = 0 |
Definition at line 40 of file gpu_pass.cc.
Referenced by finalize_compilation(), GPUPass(), should_gc(), update_compilation(), and ~GPUPass().
| uint64_t GPUPass::compilation_timestamp = 0 |
Definition at line 49 of file gpu_pass.cc.
Referenced by finalize_compilation(), and GPU_pass_compilation_timestamp().
| GPUCodegenCreateInfo* GPUPass::create_info = nullptr |
Definition at line 39 of file gpu_pass.cc.
Referenced by finalize_compilation(), GPUPass(), update_compilation(), and ~GPUPass().
| double GPUPass::creation_timestamp = 0.0f |
Definition at line 45 of file gpu_pass.cc.
Referenced by GPUPass(), and update_compilation().
| double GPUPass::gc_timestamp = 0.0f |
Definition at line 47 of file gpu_pass.cc.
Referenced by should_gc(), and update_gc_timestamp().
| bool GPUPass::is_optimization_pass = false |
Definition at line 54 of file gpu_pass.cc.
Referenced by compilation_priority(), GPUPass(), update_compilation(), and ~GPUPass().
|
staticconstexpr |
Definition at line 57 of file gpu_pass.cc.
Referenced by update_compilation().
| std::atomic<int> GPUPass::refcount = 1 |
Definition at line 44 of file gpu_pass.cc.
Referenced by GPU_generate_pass(), GPU_pass_acquire(), GPU_pass_release(), update_compilation(), and update_gc_timestamp().
| std::atomic<blender::gpu::Shader *> GPUPass::shader = nullptr |
Definition at line 41 of file gpu_pass.cc.
Referenced by finalize_compilation(), GPU_pass_shader_get(), GPUPass(), and ~GPUPass().
| bool GPUPass::should_optimize = false |
Hint that an optimized variant of this pass should be created. Based on a complexity heuristic from pass code generation.
Definition at line 53 of file gpu_pass.cc.
Referenced by GPU_pass_should_optimize(), and GPUPass().
| std::atomic<GPUPassStatus> GPUPass::status = GPU_PASS_QUEUED |
Definition at line 42 of file gpu_pass.cc.
Referenced by finalize_compilation(), GPU_pass_ensure_its_ready(), GPU_pass_status(), should_gc(), update_compilation(), and ~GPUPass().