13 os <<
"size: (" << tile_size.
width <<
", " << tile_size.
height <<
")";
37 const int2 &image_size,
39 const int max_num_path_states,
40 const float scrambling_distance)
42 if (max_num_path_states == 1) {
50 if (max_num_path_states >= num_pixel_samples) {
63 const int num_path_states_per_sample = max_num_path_states /
num_samples;
64 if (scrambling_distance < 0.9f && accel_rt) {
66 tile_size.
width =
min(image_size.
x, max_num_path_states);
74 if (num_path_states_per_sample != 0) {
92 const int tile_area = tile_size.
width * tile_size.
height;
#define ccl_device_inline
#define CCL_NAMESPACE_END
CCL_NAMESPACE_BEGIN std::ostream & operator<<(std::ostream &os, const TileSize &tile_size)
ccl_device_inline uint round_down_to_power_of_two(uint x)
TileSize tile_calculate_best_size(const bool accel_rt, const int2 &image_size, const int num_samples, const int max_num_path_states, const float scrambling_distance)
ccl_device_inline uint round_up_to_power_of_two(uint x)
ccl_gpu_kernel_postfix ccl_global float int num_pixels
ccl_gpu_kernel_postfix ccl_global float int int int int ccl_global const float int int int int int int int int int int int int num_samples
ccl_device_inline uint next_power_of_two(uint x)
ccl_device_inline uint prev_power_of_two(uint x)
ccl_device_inline bool is_power_of_two(size_t x)