Go to the source code of this file.
|
| #define | KERNEL_STRUCT_BEGIN(name) for (int array_index = 0;; array_index++) { |
| |
| #define | KERNEL_STRUCT_MEMBER(parent_struct, type, name, feature) state_size += (kernel_features & (feature)) ? sizeof(type) : 0; |
| |
| #define | KERNEL_STRUCT_MEMBER_PACKED KERNEL_STRUCT_MEMBER |
| |
| #define | KERNEL_STRUCT_BEGIN_PACKED(parent_struct, feature) KERNEL_STRUCT_BEGIN(parent_struct) |
| |
| #define | KERNEL_STRUCT_ARRAY_MEMBER(parent_struct, type, name, feature) state_size += (kernel_features & (feature)) ? sizeof(type) : 0; |
| |
| #define | KERNEL_STRUCT_END(name) |
| |
| #define | KERNEL_STRUCT_END_ARRAY(name, cpu_array_size, gpu_array_size) |
| |
| #define | KERNEL_STRUCT_VOLUME_STACK_SIZE 4 |
| |
| #define | KERNEL_STRUCT_BEGIN(name) for (int array_index = 0;; array_index++) { |
| |
| #define | KERNEL_STRUCT_MEMBER(parent_struct, type, name, feature) |
| |
| #define | KERNEL_STRUCT_MEMBER_PACKED KERNEL_STRUCT_MEMBER |
| |
| #define | KERNEL_STRUCT_BEGIN_PACKED(parent_struct, feature) KERNEL_STRUCT_BEGIN(parent_struct) |
| |
| #define | KERNEL_STRUCT_ARRAY_MEMBER(parent_struct, type, name, feature) |
| |
| #define | KERNEL_STRUCT_END(name) |
| |
| #define | KERNEL_STRUCT_END_ARRAY(name, cpu_array_size, gpu_array_size) |
| |
| #define | KERNEL_STRUCT_VOLUME_STACK_SIZE (integrator_state_soa_volume_stack_size_) |
| |
◆ KERNEL_STRUCT_ARRAY_MEMBER [1/2]
| #define KERNEL_STRUCT_ARRAY_MEMBER |
( |
| parent_struct, |
|
|
| type, |
|
|
| name, |
|
|
| feature ) state_size += (kernel_features & (feature)) ? sizeof(type) : 0; |
◆ KERNEL_STRUCT_ARRAY_MEMBER [2/2]
| #define KERNEL_STRUCT_ARRAY_MEMBER |
( |
| parent_struct, |
|
|
| type, |
|
|
| name, |
|
|
| feature ) |
Value: if ((kernel_features & (feature)) && \
(integrator_state_gpu_.parent_struct[array_index].name == nullptr)) \
{ \
"%sintegrator_state_" #name "_%d", shadow ? "shadow_" : "", array_index); \
array->alloc_to_device(max_num_paths_); \
integrator_state_soa_.emplace_back(
array); \
memcpy(&integrator_state_gpu_.parent_struct[array_index].name, \
&
array->device_pointer, \
sizeof(
array->device_pointer)); \
}
CCL_NAMESPACE_BEGIN string string_printf(const char *format,...)
◆ KERNEL_STRUCT_BEGIN [1/2]
| #define KERNEL_STRUCT_BEGIN |
( |
| name | ) |
for (int array_index = 0;; array_index++) { |
◆ KERNEL_STRUCT_BEGIN [2/2]
| #define KERNEL_STRUCT_BEGIN |
( |
| name | ) |
for (int array_index = 0;; array_index++) { |
◆ KERNEL_STRUCT_BEGIN_PACKED [1/2]
◆ KERNEL_STRUCT_BEGIN_PACKED [2/2]
◆ KERNEL_STRUCT_END [1/2]
| #define KERNEL_STRUCT_END |
( |
| name | ) |
|
Value: (void)array_index; \
break; \
}
◆ KERNEL_STRUCT_END [2/2]
| #define KERNEL_STRUCT_END |
( |
| name | ) |
|
Value: (void)array_index; \
break; \
}
◆ KERNEL_STRUCT_END_ARRAY [1/2]
| #define KERNEL_STRUCT_END_ARRAY |
( |
| name, |
|
|
| cpu_array_size, |
|
|
| gpu_array_size ) |
Value: if (array_index >= gpu_array_size - 1) { \
break; \
} \
}
◆ KERNEL_STRUCT_END_ARRAY [2/2]
| #define KERNEL_STRUCT_END_ARRAY |
( |
| name, |
|
|
| cpu_array_size, |
|
|
| gpu_array_size ) |
Value: if (array_index >= gpu_array_size - 1) { \
break; \
} \
}
◆ KERNEL_STRUCT_MEMBER [1/2]
| #define KERNEL_STRUCT_MEMBER |
( |
| parent_struct, |
|
|
| type, |
|
|
| name, |
|
|
| feature ) state_size += (kernel_features & (feature)) ? sizeof(type) : 0; |
◆ KERNEL_STRUCT_MEMBER [2/2]
| #define KERNEL_STRUCT_MEMBER |
( |
| parent_struct, |
|
|
| type, |
|
|
| name, |
|
|
| feature ) |
Value: if ((kernel_features & (feature)) && (integrator_state_gpu_.parent_struct.name == nullptr)) { \
string name_str =
string_printf(
"%sintegrator_state_" #parent_struct
"_" #name, \
shadow ? "shadow_" : ""); \
array->alloc_to_device(max_num_paths_); \
integrator_state_soa_.emplace_back(
array); \
memcpy(&integrator_state_gpu_.parent_struct.name, \
&
array->device_pointer, \
sizeof(
array->device_pointer)); \
}
◆ KERNEL_STRUCT_MEMBER_PACKED [1/2]
◆ KERNEL_STRUCT_MEMBER_PACKED [2/2]
◆ KERNEL_STRUCT_VOLUME_STACK_SIZE [1/2]
| #define KERNEL_STRUCT_VOLUME_STACK_SIZE 4 |
◆ KERNEL_STRUCT_VOLUME_STACK_SIZE [2/2]
| #define KERNEL_STRUCT_VOLUME_STACK_SIZE (integrator_state_soa_volume_stack_size_) |
◆ estimate_single_state_size()