Blender
V3.3
|
#include <path_trace_work_gpu.h>
Additional Inherited Members | |
![]() | |
static unique_ptr< PathTraceWork > | create (Device *device, Film *film, DeviceScene *device_scene, bool *cancel_requested_flag) |
Definition at line 24 of file path_trace_work_gpu.h.
PathTraceWorkGPU::PathTraceWorkGPU | ( | Device * | device, |
Film * | film, | ||
DeviceScene * | device_scene, | ||
bool * | cancel_requested_flag | ||
) |
Definition at line 57 of file path_trace_work_gpu.cpp.
References integrator_state_gpu_, max_num_paths_, min, and min_num_active_main_paths_.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 977 of file path_trace_work_gpu.cpp.
References adaptive_sampling_convergence_check_count_active(), enqueue_adaptive_sampling_filter_x(), enqueue_adaptive_sampling_filter_y(), num_active_pixels, queue_, reset, and threshold.
|
protected |
Definition at line 990 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, PathTraceWork::device_, DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_CHECK, PathTraceWork::effective_buffer_params_, BufferParams::full_x, BufferParams::full_y, BufferParams::height, MEM_READ_WRITE, num_active_pixels, BufferParams::offset, queue_, reset, BufferParams::stride, threshold, BufferParams::width, and work_size.
Referenced by adaptive_sampling_converge_filter_count_active().
|
protected |
Definition at line 230 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 159 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 91 of file path_trace_work_gpu.cpp.
References DeviceScene::data, PathTraceWork::device_scene_, integrator_state_soa_, integrator_state_soa_kernel_features_, integrator_state_soa_volume_stack_size_, KernelData::kernel_features, max, string_human_readable_size(), VLOG_DEVICE_STATS, VLOG_IS_ON, and KernelData::volume_stack_size.
Referenced by alloc_work_memory().
|
protected |
Definition at line 182 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(), integrator_shader_mnee_sort_counter_, integrator_shader_raytrace_sort_counter_, integrator_shader_sort_counter_, integrator_shader_sort_prefix_sum_, integrator_state_gpu_, KERNEL_FEATURE_MNEE, KERNEL_FEATURE_NODE_RAYTRACE, KernelData::kernel_features, max, max_num_paths_, KernelData::max_shaders, num_sort_partitions_, queue_, device_vector< T >::size(), IntegratorStateGPU::sort_key_counter, IntegratorStateGPU::sort_partition_divisor, and device_vector< T >::zero_to_device().
Referenced by alloc_work_memory().
|
overridevirtual |
Reimplemented from PathTraceWork.
Definition at line 250 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 563 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, max_active_main_path_index_, and num_active_paths.
Referenced by enqueue_work_tiles().
|
protected |
Definition at line 625 of file path_trace_work_gpu.cpp.
References active_states_offset, device_vector< T >::data(), device_memory::device_pointer, num_active_paths, num_queued_paths_, offset, queue_, queued_paths_, terminated_states_offset, and work_size.
Referenced by compact_main_paths(), and compact_shadow_paths().
|
protected |
Definition at line 588 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_, num_active_paths, IntegratorQueueCounter::num_queued, and queue_.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 548 of file path_trace_work_gpu.cpp.
References device_memory::device_pointer, kernel, kernel_max_active_main_path_index(), num_queued_paths_, queue_, queued_paths_, and work_size.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 503 of file path_trace_work_gpu.cpp.
References DeviceScene::data, DEVICE_KERNEL_PREFIX_SUM, device_memory::device_pointer, PathTraceWork::device_scene_, integrator_shader_sort_prefix_sum_, integrator_state_gpu_, kernel, kernel_max_active_main_path_index(), KernelData::max_shaders, num_queued_paths_, num_sort_partitions_, queue_, queued_paths_, IntegratorStateGPU::sort_key_counter, and work_size.
Referenced by enqueue_path_iteration().
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1060 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, and queue_.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1068 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, and queue_.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 861 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, num_samples, and should_use_graphics_interop().
|
protected |
Definition at line 929 of file path_trace_work_gpu.cpp.
References PassAccessor::Destination::d_pixels_half_rgba, device_graphics_interop_, PathTraceWork::get_display_destination_template(), get_render_tile_film_pixels(), PathTraceDisplay::graphics_interop_get(), num_samples, and queue_.
Referenced by copy_to_display().
|
protected |
Definition at line 889 of file path_trace_work_gpu.cpp.
References device_vector< T >::alloc(), PathTraceWork::buffers_, PathTraceDisplay::copy_pixels_to_texture(), PassAccessor::Destination::d_pixels_half_rgba, 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_, full_x, BufferParams::full_x, full_y, BufferParams::full_y, get_render_tile_film_pixels(), height, num_samples, queue_, width, BufferParams::window_height, BufferParams::window_width, BufferParams::window_x, and BufferParams::window_y.
Referenced by copy_to_display().
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1048 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 955 of file path_trace_work_gpu.cpp.
References device_graphics_interop_, PathTraceDisplay::graphics_interop_activate(), and PathTraceDisplay::graphics_interop_deactivate().
|
protected |
Definition at line 1018 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, 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 1033 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, 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 372 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, get_most_queued_kernel(), integrator_next_shadow_path_index_, integrator_queue_counter_, kernel, kernel_creates_ao_paths(), kernel_creates_shadow_paths(), max_num_paths_, num_active_paths, IntegratorQueueCounter::num_queued, and queue_.
Referenced by render_samples().
|
protected |
Definition at line 428 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_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_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_KERNEL_INTEGRATOR_SORTED_PATHS_ARRAY, device_memory::device_pointer, integrator_queue_counter_, kernel, 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 351 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, KernelData::kernel_features, max_num_paths_, device_memory::memory_size(), and queue_.
Referenced by render_samples().
Definition at line 678 of file path_trace_work_gpu.cpp.
References KernelData::bake, 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_, get_most_queued_kernel(), WorkTileScheduler::get_work(), KernelWorkTile::h, has_shadow_catcher(), integrator_next_main_path_index_, PathTraceWork::is_cancel_requested(), kernel, max, max_num_paths_, min_num_active_main_paths_, num_active_main_paths_paths(), num_active_paths, KernelWorkTile::num_samples, queue_, shadow_catcher_count_possible_splits(), KernelBake::use, KernelWorkTile::w, and work_tile_scheduler_.
Referenced by render_samples().
|
protected |
Definition at line 773 of file path_trace_work_gpu.cpp.
References device_vector< T >::alloc(), PathTraceWork::buffers_, device_vector< T >::data(), device_memory::device_pointer, KernelWorkTile::h, kernel, max, max_active_main_path_index_, max_tile_work_size, num_active_paths, KernelWorkTile::num_samples, KernelWorkTile::path_index_offset, queue_, device_vector< T >::size(), KernelWorkTile::w, KernelWorkTile::work_size, and work_tiles_.
|
protected |
Definition at line 334 of file path_trace_work_gpu.cpp.
References device_vector< T >::data(), DEVICE_KERNEL_INTEGRATOR_NUM, DEVICE_KERNEL_NUM, integrator_queue_counter_, kernel, and IntegratorQueueCounter::num_queued.
Referenced by enqueue_path_iteration(), and enqueue_work_tiles().
|
protected |
Definition at line 965 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(), num_samples, and queue_.
Referenced by copy_to_display_interop(), and copy_to_display_naive().
|
protected |
Definition at line 1086 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 258 of file path_trace_work_gpu.cpp.
References Device::const_copy_to(), PathTraceWork::device_, integrator_state_gpu_, and queue_.
|
protected |
Definition at line 1130 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_, kernel, KERNEL_FEATURE_AO, and KernelData::kernel_features.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 1122 of file path_trace_work_gpu.cpp.
References DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_MNEE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_RAYTRACE, DEVICE_KERNEL_INTEGRATOR_SHADE_VOLUME, and kernel.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 1138 of file path_trace_work_gpu.cpp.
References DEVICE_KERNEL_INTEGRATOR_INTERSECT_SHADOW, DEVICE_KERNEL_INTEGRATOR_SHADE_SHADOW, and kernel.
Referenced by enqueue_path_iteration(), kernel_max_active_main_path_index(), and num_active_main_paths_paths().
|
protected |
Definition at line 1144 of file path_trace_work_gpu.cpp.
References device_vector< T >::data(), integrator_next_shadow_path_index_, kernel, 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 1115 of file path_trace_work_gpu.cpp.
References DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_MNEE, DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_RAYTRACE, and kernel.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 814 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 267 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(), Device::get_bvh_layout_mask(), integrator_queue_counter_, PathTraceWork::is_cancel_requested(), max_num_paths_, num_active_main_paths_paths(), PathTraceWork::RenderStatistics::occupancy, queue_, WorkTileScheduler::reset(), WorkTileScheduler::set_accelerated_rt(), WorkTileScheduler::set_max_num_path_states(), and work_tile_scheduler_.
|
protected |
Definition at line 1091 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 832 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 1079 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 132 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_queue(), compact_shadow_paths(), enqueue_path_iteration(), enqueue_reset(), get_most_queued_kernel(), num_active_main_paths_paths(), and render_samples().
|
protected |
Definition at line 136 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), and enqueue_reset().
|
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 137 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), and compute_sorted_queued_paths().
|
protected |
Definition at line 126 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 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 130 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_sorting(), enqueue_path_iteration(), enqueue_reset(), enqueue_work_tiles(), PathTraceWorkGPU(), and render_samples().
|
protected |
Definition at line 167 of file path_trace_work_gpu.h.
Referenced by enqueue_work_tiles(), and PathTraceWorkGPU().
|
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 120 of file path_trace_work_gpu.h.
Referenced by adaptive_sampling_converge_filter_count_active(), adaptive_sampling_convergence_check_count_active(), 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_reset(), 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 123 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().