|
Blender V5.0
|
#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, const bool *cancel_requested_flag) |
Definition at line 25 of file path_trace_work_gpu.h.
| PathTraceWorkGPU::PathTraceWorkGPU | ( | Device * | device, |
| Film * | film, | ||
| DeviceScene * | device_scene, | ||
| const bool * | cancel_requested_flag ) |
Definition at line 78 of file path_trace_work_gpu.cpp.
References display_rgba_half_, integrator_next_main_path_index_, integrator_next_shadow_path_index_, integrator_queue_counter_, 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_, integrator_state_soa_kernel_features_, max_active_main_path_index_, max_num_paths_, MEM_READ_WRITE, min_num_active_main_paths_, num_queued_paths_, PathTraceWork::PathTraceWork(), queue_, queued_paths_, and work_tiles_.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1084 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 1098 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_, MEM_READ_WRITE, queue_, reset(), and work_size.
Referenced by adaptive_sampling_converge_filter_count_active().
|
protected |
Definition at line 294 of file path_trace_work_gpu.cpp.
References integrator_next_main_path_index_, integrator_next_shadow_path_index_, and integrator_state_gpu_.
Referenced by alloc_work_memory().
|
protected |
Definition at line 220 of file path_trace_work_gpu.cpp.
References integrator_queue_counter_, integrator_state_gpu_, max_num_paths_, num_queued_paths_, and queued_paths_.
Referenced by alloc_work_memory().
|
protected |
Definition at line 109 of file path_trace_work_gpu.cpp.
References PathTraceWork::device_scene_, estimate_single_state_size(), integrator_state_soa_, integrator_state_soa_kernel_features_, integrator_state_soa_volume_stack_size_, LOG_IS_ON, LOG_LEVEL_TRACE, LOG_TRACE, max, max_num_paths_, min, min_num_active_main_paths_, queue_, and string_human_readable_size().
Referenced by alloc_work_memory().
|
protected |
Definition at line 243 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, PathTraceWork::device_scene_, divide_up(), 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_num_paths_, num_sort_partitions_, and queue_.
Referenced by alloc_work_memory().
|
overridevirtual |
Reimplemented from PathTraceWork.
Definition at line 314 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 661 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 num_queued_paths_, queue_, queued_paths_, and work_size.
Referenced by compact_main_paths(), and compact_shadow_paths().
|
protected |
Definition at line 687 of file path_trace_work_gpu.cpp.
References compact_paths(), 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 645 of file path_trace_work_gpu.cpp.
References kernel_max_active_main_path_index(), num_queued_paths_, queue_, queued_paths_, and work_size.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 581 of file path_trace_work_gpu.cpp.
References assert, DEVICE_KERNEL_INTEGRATOR_SORT_BUCKET_PASS, DEVICE_KERNEL_INTEGRATOR_SORT_WRITE_PASS, DEVICE_KERNEL_INTEGRATOR_SORTED_PATHS_ARRAY, DEVICE_KERNEL_PREFIX_SUM, PathTraceWork::device_scene_, GPU_PARALLEL_SORT_BLOCK_SIZE, integrator_shader_sort_prefix_sum_, integrator_state_gpu_, kernel_max_active_main_path_index(), num_queued_paths_, num_sort_partitions_, queue_, queued_paths_, and work_size.
Referenced by enqueue_path_iteration().
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1202 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, and queue_.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1215 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, and queue_.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 963 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, copy_to_display_interop(), copy_to_display_naive(), PathTraceWork::device_, interop_use_, LOG_WARNING, and should_use_graphics_interop().
|
protected |
Definition at line 1032 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_buffer(), and queue_.
Referenced by copy_to_display().
|
protected |
Definition at line 991 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, PathTraceDisplay::copy_pixels_to_texture(), PassAccessor::Destination::d_pixels_half_rgba, display_rgba_half_, PathTraceWork::effective_big_tile_params_, PathTraceWork::effective_buffer_params_, PathTraceWork::film_, get_render_tile_film_pixels(), and queue_.
Referenced by copy_to_display().
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1164 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, DEVICE_KERNEL_CRYPTOMATTE_POSTPROCESS, PathTraceWork::effective_buffer_params_, queue_, and work_size.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1179 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, DCHECK_GT, DEVICE_KERNEL_VOLUME_GUIDING_FILTER_X, DEVICE_KERNEL_VOLUME_GUIDING_FILTER_Y, PathTraceWork::effective_buffer_params_, queue_, and work_size.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1058 of file path_trace_work_gpu.cpp.
References device_graphics_interop_, PathTraceDisplay::graphics_interop_activate(), and PathTraceDisplay::graphics_interop_deactivate().
|
protected |
Definition at line 1132 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, DCHECK_GT, DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_FILTER_X, PathTraceWork::effective_buffer_params_, queue_, and work_size.
Referenced by adaptive_sampling_converge_filter_count_active().
|
protected |
Definition at line 1148 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, DCHECK_GT, DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_FILTER_Y, PathTraceWork::effective_buffer_params_, queue_, and work_size.
Referenced by adaptive_sampling_converge_filter_count_active().
|
protected |
Definition at line 447 of file path_trace_work_gpu.cpp.
References compact_shadow_paths(), DEVICE_KERNEL_INTEGRATOR_INTERSECT_SHADOW, DEVICE_KERNEL_INTEGRATOR_NUM, DEVICE_KERNEL_INTEGRATOR_SHADE_SHADOW, DEVICE_KERNEL_NUM, enqueue_path_iteration(), get_most_queued_kernel(), i, 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 503 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, compute_queued_paths(), compute_sorted_queued_paths(), 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_KERNEL_INTEGRATOR_SHADE_VOLUME_RAY_MARCHING, integrator_queue_counter_, kernel_is_shadow_path(), kernel_max_active_main_path_index(), kernel_uses_sorting(), LOG_FATAL, max_num_paths_, min, IntegratorQueueCounter::num_queued, queue_, queued_paths_, and work_size.
|
protected |
Definition at line 420 of file path_trace_work_gpu.cpp.
References DEVICE_KERNEL_INTEGRATOR_RESET, PathTraceWork::device_scene_, 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_, and queue_.
Referenced by render_samples().
|
protected |
Definition at line 779 of file path_trace_work_gpu.cpp.
References compact_main_paths(), 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(), 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 PathTraceWork::buffers_, KernelWorkTile::h, i, max, max_active_main_path_index_, max_tile_work_size, KernelWorkTile::num_samples, KernelWorkTile::path_index_offset, queue_, KernelWorkTile::w, KernelWorkTile::work_size, and work_tiles_.
|
protected |
Definition at line 403 of file path_trace_work_gpu.cpp.
References DEVICE_KERNEL_INTEGRATOR_NUM, DEVICE_KERNEL_NUM, i, integrator_queue_counter_, and IntegratorQueueCounter::num_queued.
Referenced by enqueue_path_iteration(), and enqueue_work_tiles().
|
protected |
Definition at line 1068 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, 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 1233 of file path_trace_work_gpu.cpp.
References PathTraceWork::device_scene_.
Referenced by enqueue_work_tiles(), and shadow_catcher_count_possible_splits().
|
overridevirtual |
Implements PathTraceWork.
Definition at line 322 of file path_trace_work_gpu.cpp.
References PathTraceWork::device_, integrator_state_gpu_, and queue_.
|
protected |
Definition at line 1279 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, PathTraceWork::device_scene_, and KERNEL_FEATURE_AO.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 1269 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, DEVICE_KERNEL_INTEGRATOR_SHADE_VOLUME, and DEVICE_KERNEL_INTEGRATOR_SHADE_VOLUME_RAY_MARCHING.
Referenced by enqueue_path_iteration().
|
protected |
Definition at line 1287 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 1293 of file path_trace_work_gpu.cpp.
References 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 1262 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 DCHECK_GE, device_kernel_as_string(), DEVICE_KERNEL_INTEGRATOR_NUM, i, 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 331 of file path_trace_work_gpu.cpp.
References BVH_LAYOUT_OPTIX, PathTraceWork::device_, PathTraceWork::device_scene_, PathTraceWork::effective_buffer_params_, enqueue_path_iteration(), enqueue_reset(), enqueue_work_tiles(), float, integrator_queue_counter_, PathTraceWork::is_cancel_requested(), max_num_paths_, num_active_main_paths_paths(), PathTraceWork::RenderStatistics::occupancy, queue_, and work_tile_scheduler_.
|
protected |
Definition at line 1238 of file path_trace_work_gpu.cpp.
References DEVICE_KERNEL_INTEGRATOR_SHADOW_CATCHER_COUNT_POSSIBLE_SPLITS, 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 PathTraceDisplay::graphics_interop_get_device(), PathTraceWork::has_multiple_works(), interop_use_, interop_use_checked_, LOG_INFO, queue_, and Device::should_use_graphics_interop().
Referenced by copy_to_display().
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1226 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, and queue_.
|
protected |
Definition at line 156 of file path_trace_work_gpu.h.
Referenced by copy_to_display_interop(), and destroy_gpu_resources().
|
protected |
Definition at line 154 of file path_trace_work_gpu.h.
Referenced by copy_to_display_naive(), and PathTraceWorkGPU().
|
protected |
Definition at line 142 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_path_split(), enqueue_work_tiles(), and PathTraceWorkGPU().
|
protected |
Definition at line 143 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_path_split(), compact_shadow_paths(), enqueue_path_iteration(), kernel_max_active_main_path_index(), and PathTraceWorkGPU().
|
protected |
Definition at line 134 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(), PathTraceWorkGPU(), and render_samples().
|
protected |
Definition at line 138 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), enqueue_reset(), and PathTraceWorkGPU().
|
protected |
Definition at line 137 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), enqueue_reset(), and PathTraceWorkGPU().
|
protected |
Definition at line 136 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), enqueue_reset(), and PathTraceWorkGPU().
|
protected |
Definition at line 140 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), and PathTraceWorkGPU().
|
protected |
Definition at line 139 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), compute_sorted_queued_paths(), and PathTraceWorkGPU().
|
protected |
Definition at line 128 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 130 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_soa().
|
protected |
Definition at line 131 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_soa(), and PathTraceWorkGPU().
|
protected |
Definition at line 132 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_soa().
|
protected |
Definition at line 160 of file path_trace_work_gpu.h.
Referenced by copy_to_display(), and should_use_graphics_interop().
|
protected |
Definition at line 159 of file path_trace_work_gpu.h.
Referenced by should_use_graphics_interop().
|
protected |
Definition at line 175 of file path_trace_work_gpu.h.
Referenced by compact_main_paths(), enqueue_work_tiles(), kernel_max_active_main_path_index(), PathTraceWorkGPU(), and shadow_catcher_count_possible_splits().
|
protected |
Definition at line 166 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(), PathTraceWorkGPU(), and render_samples().
|
protected |
Definition at line 170 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_soa(), enqueue_work_tiles(), and PathTraceWorkGPU().
|
protected |
Definition at line 147 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_queue(), compact_paths(), compute_queued_paths(), compute_sorted_queued_paths(), PathTraceWorkGPU(), and shadow_catcher_count_possible_splits().
|
protected |
Definition at line 163 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), and compute_sorted_queued_paths().
|
protected |
Definition at line 122 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(), denoise_volume_guiding_buffers(), 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(), PathTraceWorkGPU(), render_samples(), shadow_catcher_count_possible_splits(), should_use_graphics_interop(), and zero_render_buffers().
|
protected |
Definition at line 146 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_queue(), compact_paths(), compute_queued_paths(), compute_sorted_queued_paths(), enqueue_path_iteration(), and PathTraceWorkGPU().
|
protected |
Definition at line 125 of file path_trace_work_gpu.h.
Referenced by enqueue_work_tiles(), and render_samples().
|
protected |
Definition at line 150 of file path_trace_work_gpu.h.
Referenced by enqueue_work_tiles(), and PathTraceWorkGPU().