Blender  V3.3
device/kernel.cpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0
2  * Copyright 2011-2022 Blender Foundation */
3 
4 #include "device/kernel.h"
5 
6 #include "util/log.h"
7 
9 
11 {
12  switch (kernel) {
13  /* Integrator. */
15  return "integrator_init_from_camera";
17  return "integrator_init_from_bake";
19  return "integrator_intersect_closest";
21  return "integrator_intersect_shadow";
23  return "integrator_intersect_subsurface";
25  return "integrator_intersect_volume_stack";
27  return "integrator_shade_background";
29  return "integrator_shade_light";
31  return "integrator_shade_shadow";
33  return "integrator_shade_surface";
35  return "integrator_shade_surface_raytrace";
37  return "integrator_shade_surface_mnee";
39  return "integrator_shade_volume";
41  return "integrator_megakernel";
43  return "integrator_queued_paths_array";
45  return "integrator_queued_shadow_paths_array";
47  return "integrator_active_paths_array";
49  return "integrator_terminated_paths_array";
51  return "integrator_sorted_paths_array";
53  return "integrator_compact_paths_array";
55  return "integrator_compact_states";
57  return "integrator_terminated_shadow_paths_array";
59  return "integrator_compact_shadow_paths_array";
61  return "integrator_compact_shadow_states";
63  return "integrator_reset";
65  return "integrator_shadow_catcher_count_possible_splits";
66 
67  /* Shader evaluation. */
69  return "shader_eval_displace";
71  return "shader_eval_background";
73  return "shader_eval_curve_shadow_transparency";
74 
75  /* Film. */
76 
77 #define FILM_CONVERT_KERNEL_AS_STRING(variant, variant_lowercase) \
78  case DEVICE_KERNEL_FILM_CONVERT_##variant: \
79  return "film_convert_" #variant_lowercase; \
80  case DEVICE_KERNEL_FILM_CONVERT_##variant##_HALF_RGBA: \
81  return "film_convert_" #variant_lowercase "_half_rgba";
82 
83  FILM_CONVERT_KERNEL_AS_STRING(DEPTH, depth)
85  FILM_CONVERT_KERNEL_AS_STRING(SAMPLE_COUNT, sample_count)
87  FILM_CONVERT_KERNEL_AS_STRING(LIGHT_PATH, light_path)
89  FILM_CONVERT_KERNEL_AS_STRING(MOTION, motion)
90  FILM_CONVERT_KERNEL_AS_STRING(CRYPTOMATTE, cryptomatte)
91  FILM_CONVERT_KERNEL_AS_STRING(SHADOW_CATCHER, shadow_catcher)
92  FILM_CONVERT_KERNEL_AS_STRING(SHADOW_CATCHER_MATTE_WITH_SHADOW,
93  shadow_catcher_matte_with_shadow)
94  FILM_CONVERT_KERNEL_AS_STRING(COMBINED, combined)
96 
97 #undef FILM_CONVERT_KERNEL_AS_STRING
98 
99  /* Adaptive sampling. */
101  return "adaptive_sampling_convergence_check";
103  return "adaptive_sampling_filter_x";
105  return "adaptive_sampling_filter_y";
106 
107  /* Denoising. */
109  return "filter_guiding_preprocess";
111  return "filter_guiding_set_fake_albedo";
113  return "filter_color_preprocess";
115  return "filter_color_postprocess";
116 
117  /* Cryptomatte. */
119  return "cryptomatte_postprocess";
120 
121  /* Generic */
123  return "prefix_sum";
124 
125  case DEVICE_KERNEL_NUM:
126  break;
127  };
128  LOG(FATAL) << "Unhandled kernel " << static_cast<int>(kernel) << ", should never happen.";
129  return "UNKNOWN";
130 }
131 
132 std::ostream &operator<<(std::ostream &os, DeviceKernel kernel)
133 {
135  return os;
136 }
137 
139 {
140  string str;
141 
142  for (uint64_t i = 0; i < sizeof(DeviceKernelMask) * 8; i++) {
143  if (mask & (uint64_t(1) << i)) {
144  if (!str.empty()) {
145  str += " ";
146  }
148  }
149  }
150 
151  return str;
152 }
153 
float float4[4]
#define CCL_NAMESPACE_END
Definition: cuda/compat.h:9
std::ostream & operator<<(std::ostream &os, DeviceKernel kernel)
string device_kernel_mask_as_string(DeviceKernelMask mask)
CCL_NAMESPACE_BEGIN const char * device_kernel_as_string(DeviceKernel kernel)
#define FILM_CONVERT_KERNEL_AS_STRING(variant, variant_lowercase)
uint64_t DeviceKernelMask
Definition: device/kernel.h:17
SyclQueue void void size_t num_bytes SyclQueue void const char void *memory_device_pointer KernelContext int kernel
#define str(s)
DeviceKernel
@ DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_CHECK
@ DEVICE_KERNEL_INTEGRATOR_RESET
@ DEVICE_KERNEL_INTEGRATOR_QUEUED_PATHS_ARRAY
@ DEVICE_KERNEL_INTEGRATOR_SHADE_LIGHT
@ DEVICE_KERNEL_FILTER_COLOR_PREPROCESS
@ DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE
@ DEVICE_KERNEL_SHADER_EVAL_DISPLACE
@ DEVICE_KERNEL_INTEGRATOR_SHADOW_CATCHER_COUNT_POSSIBLE_SPLITS
@ DEVICE_KERNEL_INTEGRATOR_INTERSECT_SUBSURFACE
@ DEVICE_KERNEL_INTEGRATOR_QUEUED_SHADOW_PATHS_ARRAY
@ DEVICE_KERNEL_FILTER_GUIDING_SET_FAKE_ALBEDO
@ DEVICE_KERNEL_FILTER_COLOR_POSTPROCESS
@ DEVICE_KERNEL_INTEGRATOR_SHADE_SHADOW
@ DEVICE_KERNEL_INTEGRATOR_TERMINATED_PATHS_ARRAY
@ DEVICE_KERNEL_INTEGRATOR_INTERSECT_VOLUME_STACK
@ DEVICE_KERNEL_SHADER_EVAL_BACKGROUND
@ DEVICE_KERNEL_INTEGRATOR_SORTED_PATHS_ARRAY
@ DEVICE_KERNEL_INTEGRATOR_COMPACT_SHADOW_PATHS_ARRAY
@ DEVICE_KERNEL_INTEGRATOR_COMPACT_SHADOW_STATES
@ DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_RAYTRACE
@ DEVICE_KERNEL_FILTER_GUIDING_PREPROCESS
@ DEVICE_KERNEL_INTEGRATOR_COMPACT_STATES
@ DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_MNEE
@ DEVICE_KERNEL_INTEGRATOR_TERMINATED_SHADOW_PATHS_ARRAY
@ DEVICE_KERNEL_INTEGRATOR_MEGAKERNEL
@ DEVICE_KERNEL_NUM
@ DEVICE_KERNEL_INTEGRATOR_ACTIVE_PATHS_ARRAY
@ DEVICE_KERNEL_INTEGRATOR_INIT_FROM_CAMERA
@ DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_FILTER_Y
@ DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_FILTER_X
@ DEVICE_KERNEL_CRYPTOMATTE_POSTPROCESS
@ DEVICE_KERNEL_INTEGRATOR_COMPACT_PATHS_ARRAY
@ DEVICE_KERNEL_INTEGRATOR_INIT_FROM_BAKE
@ DEVICE_KERNEL_SHADER_EVAL_CURVE_SHADOW_TRANSPARENCY
@ DEVICE_KERNEL_INTEGRATOR_SHADE_VOLUME
@ DEVICE_KERNEL_INTEGRATOR_INTERSECT_SHADOW
@ DEVICE_KERNEL_INTEGRATOR_INTERSECT_CLOSEST
@ DEVICE_KERNEL_INTEGRATOR_SHADE_BACKGROUND
@ DEVICE_KERNEL_PREFIX_SUM
#define LOG(severity)
Definition: log.h:36
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
Definition: math_float4.h:513
@ FLOAT4
@ FLOAT3
@ FLOAT
unsigned __int64 uint64_t
Definition: stdint.h:90