|
Blender V4.5
|
#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 77 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 1079 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 1093 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 293 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 219 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 108 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_, 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_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 313 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 656 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 721 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 682 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 640 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 580 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_, 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 1174 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, and queue_.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 1187 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, and queue_.
|
overridevirtual |
Implements PathTraceWork.
Definition at line 958 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, copy_to_display_interop(), copy_to_display_naive(), PathTraceWork::device_, interop_use_, LOG, and should_use_graphics_interop().
|
protected |
Definition at line 1027 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 986 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 1159 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 1053 of file path_trace_work_gpu.cpp.
References device_graphics_interop_, PathTraceDisplay::graphics_interop_activate(), and PathTraceDisplay::graphics_interop_deactivate().
|
protected |
Definition at line 1127 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 1143 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 446 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 502 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, 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 419 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 774 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 869 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 402 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 1063 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 1205 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 321 of file path_trace_work_gpu.cpp.
References PathTraceWork::device_, integrator_state_gpu_, and queue_.
|
protected |
Definition at line 1250 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 1241 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 1258 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 1264 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 1234 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 910 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 330 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(), 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 1210 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 928 of file path_trace_work_gpu.cpp.
References PathTraceDisplay::graphics_interop_get_device(), 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 1198 of file path_trace_work_gpu.cpp.
References PathTraceWork::buffers_, and queue_.
|
protected |
Definition at line 155 of file path_trace_work_gpu.h.
Referenced by copy_to_display_interop(), and destroy_gpu_resources().
|
protected |
Definition at line 153 of file path_trace_work_gpu.h.
Referenced by copy_to_display_naive(), and PathTraceWorkGPU().
|
protected |
Definition at line 141 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_path_split(), enqueue_work_tiles(), and PathTraceWorkGPU().
|
protected |
Definition at line 142 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 133 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 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 135 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), enqueue_reset(), and PathTraceWorkGPU().
|
protected |
Definition at line 139 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), and PathTraceWorkGPU().
|
protected |
Definition at line 138 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), compute_sorted_queued_paths(), and PathTraceWorkGPU().
|
protected |
Definition at line 127 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 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(), and PathTraceWorkGPU().
|
protected |
Definition at line 131 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_soa().
|
protected |
Definition at line 159 of file path_trace_work_gpu.h.
Referenced by copy_to_display(), and should_use_graphics_interop().
|
protected |
Definition at line 158 of file path_trace_work_gpu.h.
Referenced by should_use_graphics_interop().
|
protected |
Definition at line 174 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 165 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 169 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_soa(), enqueue_work_tiles(), and PathTraceWorkGPU().
|
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(), PathTraceWorkGPU(), and shadow_catcher_count_possible_splits().
|
protected |
Definition at line 162 of file path_trace_work_gpu.h.
Referenced by alloc_integrator_sorting(), and compute_sorted_queued_paths().
|
protected |
Definition at line 121 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(), PathTraceWorkGPU(), render_samples(), shadow_catcher_count_possible_splits(), should_use_graphics_interop(), and zero_render_buffers().
|
protected |
Definition at line 145 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 124 of file path_trace_work_gpu.h.
Referenced by enqueue_work_tiles(), and render_samples().
|
protected |
Definition at line 149 of file path_trace_work_gpu.h.
Referenced by enqueue_work_tiles(), and PathTraceWorkGPU().