|
Blender V4.3
|
#include <path_trace_work_gpu.h>
Inherits PathTraceWork.
Additional Inherited Members | |
Static Public Member Functions inherited from PathTraceWork | |
| static unique_ptr< PathTraceWork > | create (Device *device, Film *film, DeviceScene *device_scene, bool *cancel_requested_flag) |
Definition at line 25 of file path_trace_work_gpu.h.
| PathTraceWorkGPU::PathTraceWorkGPU | ( | Device * | device, |
| Film * | film, | ||
| DeviceScene * | device_scene, | ||
| bool * | cancel_requested_flag ) |
Definition at line 77 of file path_trace_work_gpu.cpp.
References integrator_state_gpu_.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1083 of file path_trace_work_gpu.cpp.
References adaptive_sampling_convergence_check_count_active(), enqueue_adaptive_sampling_filter_x(), enqueue_adaptive_sampling_filter_y(), queue_, and reset().
|
protected |
Definition at line 1096 of file path_trace_work_gpu.cpp.
References device_vector< T >::alloc(), PathTraceWork::buffers_, device_vector< T >::data(), PathTraceWork::device_, DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_CHECK, device_memory::device_pointer, PathTraceWork::effective_buffer_params_, BufferParams::full_x, BufferParams::full_y, BufferParams::height, MEM_READ_WRITE, BufferParams::offset, queue_, reset(), BufferParams::stride, BufferParams::width, and work_size.
Referenced by adaptive_sampling_converge_filter_count_active().
|
protected |
Definition at line 302 of file path_trace_work_gpu.cpp.
References device_vector< T >::alloc(), device_vector< T >::data(), device_memory::device_pointer, integrator_next_main_path_index_, integrator_next_shadow_path_index_, integrator_state_gpu_, IntegratorStateGPU::next_main_path_index, IntegratorStateGPU::next_shadow_path_index, device_vector< T >::size(), and device_vector< T >::zero_to_device().
Referenced by alloc_work_memory().
|
protected |
Definition at line 219 of file path_trace_work_gpu.cpp.
References device_vector< T >::alloc(), device_vector< T >::copy_from_device(), device_memory::device_pointer, integrator_queue_counter_, integrator_state_gpu_, max_num_paths_, num_queued_paths_, IntegratorStateGPU::queue_counter, queued_paths_, device_vector< T >::size(), and device_vector< T >::zero_to_device().
Referenced by alloc_work_memory().
|
protected |
Definition at line 108 of file path_trace_work_gpu.cpp.
References DeviceScene::data, PathTraceWork::device_scene_, estimate_single_state_size(), integrator_state_soa_, integrator_state_soa_kernel_features_, integrator_state_soa_volume_stack_size_, max, max_num_paths_, min, min_num_active_main_paths_, queue_, string_human_readable_size(), VLOG_DEVICE_STATS, and VLOG_IS_ON.
Referenced by alloc_work_memory().
|
protected |
Definition at line 242 of file path_trace_work_gpu.cpp.
References device_vector< T >::alloc(), DeviceScene::data, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_MNEE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_RAYTRACE, device_memory::device_pointer, PathTraceWork::device_scene_, divide_up(), int, integrator_shader_mnee_sort_counter_, integrator_shader_raytrace_sort_counter_, integrator_shader_sort_counter_, integrator_shader_sort_partition_key_offsets_, integrator_shader_sort_prefix_sum_, integrator_state_gpu_, KERNEL_FEATURE_MNEE, KERNEL_FEATURE_NODE_RAYTRACE, max, max_num_paths_, num_sort_partitions_, queue_, device_vector< T >::size(), IntegratorStateGPU::sort_key_counter, IntegratorStateGPU::sort_partition_divisor, IntegratorStateGPU::sort_partition_key_offsets, and device_vector< T >::zero_to_device().
Referenced by alloc_work_memory().
|
overridevirtual |
Reimplemented from PathTraceWork.
Definition at line 322 of file path_trace_work_gpu.cpp.
References alloc_integrator_path_split(), alloc_integrator_queue(), alloc_integrator_soa(), and alloc_integrator_sorting().
|
protected |
Definition at line 662 of file path_trace_work_gpu.cpp.
References compact_paths(), DEVICE_KERNEL_INTEGRATOR_COMPACT_PATHS_ARRAY, DEVICE_KERNEL_INTEGRATOR_COMPACT_STATES, DEVICE_KERNEL_INTEGRATOR_TERMINATED_PATHS_ARRAY, and max_active_main_path_index_.
Referenced by enqueue_work_tiles().
|
protected |
Definition at line 726 of file path_trace_work_gpu.cpp.
References device_vector< T >::data(), device_memory::device_pointer, num_queued_paths_, queue_, queued_paths_, and work_size.
Referenced by compact_main_paths(), and compact_shadow_paths().
|
protected |
Definition at line 688 of file path_trace_work_gpu.cpp.
References compact_paths(), device_vector< T >::data(), DEVICE_KERNEL_INTEGRATOR_COMPACT_SHADOW_PATHS_ARRAY, DEVICE_KERNEL_INTEGRATOR_COMPACT_SHADOW_STATES, DEVICE_KERNEL_INTEGRATOR_INTERSECT_SHADOW, DEVICE_KERNEL_INTEGRATOR_SHADE_SHADOW, DEVICE_KERNEL_INTEGRATOR_TERMINATED_SHADOW_PATHS_ARRAY, integrator_next_shadow_path_index_, integrator_queue_counter_, IntegratorQueueCounter::num_queued, and queue_.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 647 of file path_trace_work_gpu.cpp.
References device_memory::device_pointer, kernel_max_active_main_path_index(), num_queued_paths_, queue_, queued_paths_, and work_size.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 587 of file path_trace_work_gpu.cpp.
References DeviceScene::data, DEVICE_KERNEL_INTEGRATOR_SORT_BUCKET_PASS, DEVICE_KERNEL_INTEGRATOR_SORT_WRITE_PASS, DEVICE_KERNEL_INTEGRATOR_SORTED_PATHS_ARRAY, DEVICE_KERNEL_PREFIX_SUM, device_memory::device_pointer, PathTraceWork::device_scene_, int, integrator_shader_sort_prefix_sum_, integrator_state_gpu_, kernel_max_active_main_path_index(), num_queued_paths_, num_sort_partitions_, queue_, queued_paths_, IntegratorStateGPU::sort_key_counter, IntegratorStateGPU::sort_partition_divisor, and work_size.
Referenced by enqueue_path_iteration().
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1176 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, and queue_.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1184 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, and queue_.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 962 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, copy_to_display_interop(), copy_to_display_naive(), PathTraceWork::device_, Device::have_error(), interop_use_, LOG, and should_use_graphics_interop().
|
protected |
Definition at line 1031 of file path_trace_work_gpu.cpp.
References device_graphics_interop_, PathTraceWork::get_display_destination_template(), get_render_tile_film_pixels(), and queue_.
Referenced by copy_to_display().
|
protected |
Definition at line 990 of file path_trace_work_gpu.cpp.
References device_vector< T >::alloc(), PathTraceWork::buffers_, device_vector< T >::data(), device_memory::data_height, device_memory::data_width, device_memory::device_pointer, display_rgba_half_, PathTraceWork::effective_big_tile_params_, PathTraceWork::effective_buffer_params_, PathTraceWork::film_, BufferParams::full_x, BufferParams::full_y, get_render_tile_film_pixels(), queue_, BufferParams::window_height, BufferParams::window_width, BufferParams::window_x, and BufferParams::window_y.
Referenced by copy_to_display().
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1161 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, DEVICE_KERNEL_CRYPTOMATTE_POSTPROCESS, PathTraceWork::effective_buffer_params_, BufferParams::height, BufferParams::offset, queue_, BufferParams::stride, BufferParams::width, and work_size.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1057 of file path_trace_work_gpu.cpp.
References device_graphics_interop_.
|
protected |
Definition at line 1129 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, DCHECK_GT, DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_FILTER_X, PathTraceWork::effective_buffer_params_, BufferParams::full_x, BufferParams::full_y, BufferParams::height, BufferParams::offset, queue_, BufferParams::stride, BufferParams::width, and work_size.
Referenced by adaptive_sampling_converge_filter_count_active().
|
protected |
Definition at line 1145 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, DCHECK_GT, DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_FILTER_Y, PathTraceWork::effective_buffer_params_, BufferParams::full_x, BufferParams::full_y, BufferParams::height, BufferParams::offset, queue_, BufferParams::stride, BufferParams::width, and work_size.
Referenced by adaptive_sampling_converge_filter_count_active().
|
protected |
Definition at line 455 of file path_trace_work_gpu.cpp.
References compact_shadow_paths(), device_vector< T >::data(), DEVICE_KERNEL_INTEGRATOR_INTERSECT_SHADOW, DEVICE_KERNEL_INTEGRATOR_NUM, DEVICE_KERNEL_INTEGRATOR_SHADE_SHADOW, DEVICE_KERNEL_NUM, enqueue_path_iteration(), get_most_queued_kernel(), integrator_next_shadow_path_index_, integrator_queue_counter_, kernel_creates_ao_paths(), kernel_creates_shadow_paths(), max_num_paths_, IntegratorQueueCounter::num_queued, and queue_.
Referenced by enqueue_path_iteration(), and render_samples().
|
protected |
Definition at line 511 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, compute_queued_paths(), compute_sorted_queued_paths(), device_vector< T >::data(), DCHECK_LE, device_kernel_as_string(), DEVICE_KERNEL_INTEGRATOR_INTERSECT_CLOSEST, DEVICE_KERNEL_INTEGRATOR_INTERSECT_DEDICATED_LIGHT, DEVICE_KERNEL_INTEGRATOR_INTERSECT_SHADOW, DEVICE_KERNEL_INTEGRATOR_INTERSECT_SUBSURFACE, DEVICE_KERNEL_INTEGRATOR_INTERSECT_VOLUME_STACK, DEVICE_KERNEL_INTEGRATOR_QUEUED_PATHS_ARRAY, DEVICE_KERNEL_INTEGRATOR_QUEUED_SHADOW_PATHS_ARRAY, DEVICE_KERNEL_INTEGRATOR_SHADE_BACKGROUND, DEVICE_KERNEL_INTEGRATOR_SHADE_DEDICATED_LIGHT, DEVICE_KERNEL_INTEGRATOR_SHADE_LIGHT, DEVICE_KERNEL_INTEGRATOR_SHADE_SHADOW, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_MNEE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_RAYTRACE, DEVICE_KERNEL_INTEGRATOR_SHADE_VOLUME, device_memory::device_pointer, integrator_queue_counter_, kernel_is_shadow_path(), kernel_max_active_main_path_index(), kernel_uses_sorting(), LOG, max_num_paths_, min, IntegratorQueueCounter::num_queued, queue_, queued_paths_, and work_size.
|
protected |
Definition at line 428 of file path_trace_work_gpu.cpp.
References device_vector< T >::data(), DeviceScene::data, DEVICE_KERNEL_INTEGRATOR_RESET, PathTraceWork::device_scene_, device_memory::host_pointer, integrator_queue_counter_, integrator_shader_mnee_sort_counter_, integrator_shader_raytrace_sort_counter_, integrator_shader_sort_counter_, KERNEL_FEATURE_MNEE, KERNEL_FEATURE_NODE_RAYTRACE, max_num_paths_, device_memory::memory_size(), queue_, and device_vector< T >::size().
Referenced by render_samples().
|
protected |
Definition at line 779 of file path_trace_work_gpu.cpp.
References compact_main_paths(), device_vector< T >::data(), DeviceScene::data, DEVICE_KERNEL_INTEGRATOR_INIT_FROM_BAKE, DEVICE_KERNEL_INTEGRATOR_INIT_FROM_CAMERA, DEVICE_KERNEL_INTEGRATOR_INTERSECT_CLOSEST, DEVICE_KERNEL_NUM, PathTraceWork::device_scene_, enqueue_work_tiles(), get_most_queued_kernel(), WorkTileScheduler::get_work(), KernelWorkTile::h, has_shadow_catcher(), integrator_next_main_path_index_, PathTraceWork::is_cancel_requested(), max, max_num_paths_, min_num_active_main_paths_, num_active_main_paths_paths(), KernelWorkTile::num_samples, queue_, shadow_catcher_count_possible_splits(), KernelWorkTile::w, and work_tile_scheduler_.
Referenced by enqueue_work_tiles(), and render_samples().
|
protected |
Definition at line 874 of file path_trace_work_gpu.cpp.
References device_vector< T >::alloc(), PathTraceWork::buffers_, device_vector< T >::data(), device_memory::device_pointer, KernelWorkTile::h, max, max_active_main_path_index_, max_tile_work_size, KernelWorkTile::num_samples, KernelWorkTile::path_index_offset, queue_, device_vector< T >::size(), KernelWorkTile::w, KernelWorkTile::work_size, and work_tiles_.
|
protected |
Definition at line 411 of file path_trace_work_gpu.cpp.
References device_vector< T >::data(), DEVICE_KERNEL_INTEGRATOR_NUM, DEVICE_KERNEL_NUM, integrator_queue_counter_, and IntegratorQueueCounter::num_queued.
Referenced by enqueue_path_iteration(), and enqueue_work_tiles().
|
protected |
Definition at line 1067 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, DeviceScene::data, PathTraceWork::device_scene_, PathTraceWork::effective_buffer_params_, PathTraceWork::get_display_pass_access_info(), PassAccessor::get_render_tile_pixels(), PASS_NONE, queue_, and PassAccessor::PassAccessInfo::type.
Referenced by copy_to_display_interop(), and copy_to_display_naive().
|
protected |
Definition at line 1202 of file path_trace_work_gpu.cpp.
References DeviceScene::data, and PathTraceWork::device_scene_.
Referenced by enqueue_work_tiles(), and shadow_catcher_count_possible_splits().
|
overridevirtual |
Implements PathTraceWork.
Definition at line 330 of file path_trace_work_gpu.cpp.
References Device::const_copy_to(), PathTraceWork::device_, integrator_state_gpu_, and queue_.
|
protected |
Definition at line 1247 of file path_trace_work_gpu.cpp.
References DeviceScene::data, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_MNEE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_RAYTRACE, PathTraceWork::device_scene_, and KERNEL_FEATURE_AO.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 1238 of file path_trace_work_gpu.cpp.
References DEVICE_KERNEL_INTEGRATOR_SHADE_DEDICATED_LIGHT, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_MNEE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_RAYTRACE, and DEVICE_KERNEL_INTEGRATOR_SHADE_VOLUME.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 1255 of file path_trace_work_gpu.cpp.
References DEVICE_KERNEL_INTEGRATOR_INTERSECT_SHADOW, and DEVICE_KERNEL_INTEGRATOR_SHADE_SHADOW.
Referenced by enqueue_path_iteration(), kernel_max_active_main_path_index(), and num_active_main_paths_paths().
|
protected |
Definition at line 1261 of file path_trace_work_gpu.cpp.
References device_vector< T >::data(), integrator_next_shadow_path_index_, kernel_is_shadow_path(), and max_active_main_path_index_.
Referenced by compute_queued_paths(), compute_sorted_queued_paths(), and enqueue_path_iteration().
|
protected |
Definition at line 1231 of file path_trace_work_gpu.cpp.
References DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_MNEE, and DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_RAYTRACE.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 915 of file path_trace_work_gpu.cpp.
References device_vector< T >::data(), DCHECK_GE, device_kernel_as_string(), DEVICE_KERNEL_INTEGRATOR_NUM, integrator_queue_counter_, kernel_is_shadow_path(), and IntegratorQueueCounter::num_queued.
Referenced by enqueue_work_tiles(), and render_samples().
|
overridevirtual |
Implements PathTraceWork.
Definition at line 339 of file path_trace_work_gpu.cpp.
References BVH_LAYOUT_OPTIX, DeviceScene::data, PathTraceWork::device_, PathTraceWork::device_scene_, PathTraceWork::effective_buffer_params_, enqueue_path_iteration(), enqueue_reset(), enqueue_work_tiles(), float, Device::get_bvh_layout_mask(), integrator_queue_counter_, PathTraceWork::is_cancel_requested(), max_num_paths_, num_active_main_paths_paths(), queue_, WorkTileScheduler::reset(), WorkTileScheduler::set_accelerated_rt(), WorkTileScheduler::set_max_num_path_states(), and work_tile_scheduler_.
|
protected |
Definition at line 1207 of file path_trace_work_gpu.cpp.
References device_vector< T >::data(), DEVICE_KERNEL_INTEGRATOR_SHADOW_CATCHER_COUNT_POSSIBLE_SPLITS, device_memory::device_pointer, has_shadow_catcher(), max_active_main_path_index_, num_queued_paths_, queue_, and work_size.
Referenced by enqueue_work_tiles().
|
protected |
Definition at line 933 of file path_trace_work_gpu.cpp.
References PathTraceWork::has_multiple_works(), interop_use_, interop_use_checked_, queue_, Device::should_use_graphics_interop(), and VLOG_INFO.
Referenced by copy_to_display().
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1195 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, and queue_.
|
protected |
Definition at line 153 of file path_trace_work_gpu.h.
Referenced by copy_to_display_interop(), and destroy_gpu_resources().
|
protected |
Definition at line 151 of file path_trace_work_gpu.h.
Referenced by copy_to_display_naive().
|
protected |
Definition at line 139 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_path_split(), and enqueue_work_tiles().
|
protected |
Definition at line 140 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_path_split(), compact_shadow_paths(), enqueue_path_iteration(), and kernel_max_active_main_path_index().
|
protected |
Definition at line 131 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_queue(), compact_shadow_paths(), enqueue_path_iteration(), enqueue_path_iteration(), enqueue_reset(), get_most_queued_kernel(), num_active_main_paths_paths(), and render_samples().
|
protected |
Definition at line 135 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), and enqueue_reset().
|
protected |
Definition at line 134 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), and enqueue_reset().
|
protected |
Definition at line 133 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), and enqueue_reset().
|
protected |
Definition at line 137 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting().
|
protected |
Definition at line 136 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), and compute_sorted_queued_paths().
|
protected |
Definition at line 125 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_path_split(), alloc_integrator_queue(), alloc_integrator_sorting(), compute_sorted_queued_paths(), init_execution(), and PathTraceWorkGPU().
|
protected |
Definition at line 127 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_soa().
|
protected |
Definition at line 128 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_soa().
|
protected |
Definition at line 129 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_soa().
|
protected |
Definition at line 157 of file path_trace_work_gpu.h.
Referenced by copy_to_display(), and should_use_graphics_interop().
|
protected |
Definition at line 156 of file path_trace_work_gpu.h.
Referenced by should_use_graphics_interop().
|
protected |
Definition at line 172 of file path_trace_work_gpu.h.
Referenced by compact_main_paths(), enqueue_work_tiles(), kernel_max_active_main_path_index(), and shadow_catcher_count_possible_splits().
|
protected |
Definition at line 163 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_queue(), alloc_integrator_soa(), alloc_integrator_sorting(), enqueue_path_iteration(), enqueue_path_iteration(), enqueue_reset(), enqueue_work_tiles(), and render_samples().
|
protected |
Definition at line 167 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_soa(), and enqueue_work_tiles().
|
protected |
Definition at line 144 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_queue(), compact_paths(), compute_queued_paths(), compute_sorted_queued_paths(), and shadow_catcher_count_possible_splits().
|
protected |
Definition at line 160 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), and compute_sorted_queued_paths().
|
protected |
Definition at line 119 of file path_trace_work_gpu.h.
Referenced by adaptive_sampling_converge_filter_count_active(), adaptive_sampling_convergence_check_count_active(), alloc_integrator_soa(), alloc_integrator_sorting(), compact_paths(), compact_shadow_paths(), compute_queued_paths(), compute_sorted_queued_paths(), copy_render_buffers_from_device(), copy_render_buffers_to_device(), copy_to_display_interop(), copy_to_display_naive(), cryptomatte_postproces(), enqueue_adaptive_sampling_filter_x(), enqueue_adaptive_sampling_filter_y(), enqueue_path_iteration(), enqueue_path_iteration(), enqueue_reset(), enqueue_work_tiles(), enqueue_work_tiles(), get_render_tile_film_pixels(), init_execution(), render_samples(), shadow_catcher_count_possible_splits(), should_use_graphics_interop(), and zero_render_buffers().
|
protected |
Definition at line 143 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_queue(), compact_paths(), compute_queued_paths(), compute_sorted_queued_paths(), and enqueue_path_iteration().
|
protected |
Definition at line 122 of file path_trace_work_gpu.h.
Referenced by enqueue_work_tiles(), and render_samples().
|
protected |
Definition at line 147 of file path_trace_work_gpu.h.
Referenced by enqueue_work_tiles().