[Bf-blender-cvs] [f56873b] cycles_split_kernel: Cycles: Rename split_state and split_params
Mai Lavelle
noreply at git.blender.org
Wed Dec 7 04:27:03 CET 2016
Commit: f56873b8b50f8e1bc82159e53030b280944ca930
Author: Mai Lavelle
Date: Tue Dec 6 02:57:09 2016 -0500
Branches: cycles_split_kernel
https://developer.blender.org/rBf56873b8b50f8e1bc82159e53030b280944ca930
Cycles: Rename split_state and split_params
Now these are `kernel_split_state` and `kernel_split_params`, as well as
being references instead of pointers. This is to match `kernel_data`.
===================================================================
M intern/cycles/kernel/split/kernel_background_buffer_update.h
M intern/cycles/kernel/split/kernel_data_init.h
M intern/cycles/kernel/split/kernel_direct_lighting.h
M intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h
M intern/cycles/kernel/split/kernel_lamp_emission.h
M intern/cycles/kernel/split/kernel_next_iteration_setup.h
M intern/cycles/kernel/split/kernel_queue_enqueue.h
M intern/cycles/kernel/split/kernel_scene_intersect.h
M intern/cycles/kernel/split/kernel_shader_eval.h
M intern/cycles/kernel/split/kernel_shadow_blocked.h
M intern/cycles/kernel/split/kernel_split_data.h
M intern/cycles/kernel/split/kernel_sum_all_radiance.h
===================================================================
diff --git a/intern/cycles/kernel/split/kernel_background_buffer_update.h b/intern/cycles/kernel/split/kernel_background_buffer_update.h
index eb40473..5a836a0 100644
--- a/intern/cycles/kernel/split/kernel_background_buffer_update.h
+++ b/intern/cycles/kernel/split/kernel_background_buffer_update.h
@@ -80,13 +80,13 @@ ccl_device void kernel_background_buffer_update(KernelGlobals *kg)
int ray_index = ccl_global_id(1) * ccl_global_size(0) + ccl_global_id(0);
if(ray_index == 0) {
/* We will empty this queue in this kernel. */
- split_params->queue_index[QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS] = 0;
+ kernel_split_params.queue_index[QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS] = 0;
}
char enqueue_flag = 0;
ray_index = get_ray_index(kg, ray_index,
QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS,
- split_state->queue_data,
- split_params->queue_size,
+ kernel_split_state.queue_data,
+ kernel_split_params.queue_size,
1);
#ifdef __COMPUTE_DEVICE_GPU__
@@ -106,28 +106,28 @@ ccl_device void kernel_background_buffer_update(KernelGlobals *kg)
if(ray_index != QUEUE_EMPTY_SLOT) {
#endif
- ccl_global uint *rng_state = split_params->rng_state;
- int sw = split_params->w;
- int sh = split_params->h;
- int sx = split_params->x;
- int sy = split_params->y;
- int stride = split_params->stride;
- int rng_state_offset_x = split_params->rng_offset_x;
- int rng_state_offset_y = split_params->rng_offset_y;
- int rng_state_stride = split_params->rng_stride;
- int parallel_samples = split_params->parallel_samples;
+ ccl_global uint *rng_state = kernel_split_params.rng_state;
+ int sw = kernel_split_params.w;
+ int sh = kernel_split_params.h;
+ int sx = kernel_split_params.x;
+ int sy = kernel_split_params.y;
+ int stride = kernel_split_params.stride;
+ int rng_state_offset_x = kernel_split_params.rng_offset_x;
+ int rng_state_offset_y = kernel_split_params.rng_offset_y;
+ int rng_state_stride = kernel_split_params.rng_stride;
+ int parallel_samples = kernel_split_params.parallel_samples;
- ccl_global char *ray_state = split_state->ray_state;
+ ccl_global char *ray_state = kernel_split_state.ray_state;
#ifdef __KERNEL_DEBUG__
- DebugData *debug_data = &split_state->debug_data[ray_index];
+ DebugData *debug_data = &kernel_split_state.debug_data[ray_index];
#endif
- ccl_global PathState *state = &split_state->path_state[ray_index];
- PathRadiance *L = &split_state->path_radiance[ray_index];
- ccl_global Ray *ray = &split_state->ray[ray_index];
- ccl_global float3 *throughput = &split_state->throughput[ray_index];
- ccl_global float *L_transparent = &split_state->L_transparent[ray_index];
- ccl_global uint *rng = &split_state->rng[ray_index];
- ccl_global float *per_sample_output_buffers = split_state->per_sample_output_buffers;
+ ccl_global PathState *state = &kernel_split_state.path_state[ray_index];
+ PathRadiance *L = &kernel_split_state.path_radiance[ray_index];
+ ccl_global Ray *ray = &kernel_split_state.ray[ray_index];
+ ccl_global float3 *throughput = &kernel_split_state.throughput[ray_index];
+ ccl_global float *L_transparent = &kernel_split_state.L_transparent[ray_index];
+ ccl_global uint *rng = &kernel_split_state.rng[ray_index];
+ ccl_global float *per_sample_output_buffers = kernel_split_state.per_sample_output_buffers;
#ifdef __WORK_STEALING__
unsigned int my_work;
@@ -141,8 +141,8 @@ ccl_device void kernel_background_buffer_update(KernelGlobals *kg)
unsigned int my_sample_tile;
#ifdef __WORK_STEALING__
- my_work = split_state->work_array[ray_index];
- sample = get_my_sample(kg, my_work, sw, sh, parallel_samples, ray_index) + split_params->start_sample;
+ my_work = kernel_split_state.work_array[ray_index];
+ sample = get_my_sample(kg, my_work, sw, sh, parallel_samples, ray_index) + kernel_split_params.start_sample;
get_pixel_tile_position(kg, &pixel_x, &pixel_y,
&tile_x, &tile_y,
my_work,
@@ -152,7 +152,7 @@ ccl_device void kernel_background_buffer_update(KernelGlobals *kg)
my_sample_tile = 0;
initial_rng = rng_state;
#else /* __WORK_STEALING__ */
- sample = split_state->work_array[ray_index];
+ sample = kernel_split_state.work_array[ray_index];
int tile_index = ray_index / parallel_samples;
/* buffer and rng_state's stride is "stride". Find x and y using ray_index */
tile_x = tile_index % sw;
@@ -201,22 +201,22 @@ ccl_device void kernel_background_buffer_update(KernelGlobals *kg)
if(IS_STATE(ray_state, ray_index, RAY_TO_REGENERATE)) {
#ifdef __WORK_STEALING__
/* We have completed current work; So get next work */
- int valid_work = get_next_work(kg, split_params->work_pool_wgs, &my_work, sw, sh, split_params->num_samples, parallel_samples, ray_index);
+ int valid_work = get_next_work(kg, kernel_split_params.work_pool_wgs, &my_work, sw, sh, kernel_split_params.num_samples, parallel_samples, ray_index);
if(!valid_work) {
/* If work is invalid, this means no more work is available and the thread may exit */
ASSIGN_RAY_STATE(ray_state, ray_index, RAY_INACTIVE);
}
#else /* __WORK_STEALING__ */
- if((sample + parallel_samples) >= split_params->end_sample) {
+ if((sample + parallel_samples) >= kernel_split_params.end_sample) {
ASSIGN_RAY_STATE(ray_state, ray_index, RAY_INACTIVE);
}
#endif /* __WORK_STEALING__ */
if(IS_STATE(ray_state, ray_index, RAY_TO_REGENERATE)) {
#ifdef __WORK_STEALING__
- split_state->work_array[ray_index] = my_work;
+ kernel_split_state.work_array[ray_index] = my_work;
/* Get the sample associated with the current work */
- sample = get_my_sample(kg, my_work, sw, sh, parallel_samples, ray_index) + split_params->start_sample;
+ sample = get_my_sample(kg, my_work, sw, sh, parallel_samples, ray_index) + kernel_split_params.start_sample;
/* Get pixel and tile position associated with current work */
get_pixel_tile_position(kg, &pixel_x, &pixel_y, &tile_x, &tile_y, my_work, sw, sh, sx, sy, parallel_samples, ray_index);
my_sample_tile = 0;
@@ -224,11 +224,11 @@ ccl_device void kernel_background_buffer_update(KernelGlobals *kg)
/* Remap rng_state according to the current work */
rng_state = initial_rng + ((rng_state_offset_x + tile_x) + (rng_state_offset_y + tile_y) * rng_state_stride);
/* Remap per_sample_output_buffers according to the current work */
- per_sample_output_buffers = split_state->per_sample_output_buffers
+ per_sample_output_buffers = kernel_split_state.per_sample_output_buffers
+ (((tile_x + (tile_y * stride)) * parallel_samples) + my_sample_tile) * kernel_data.film.pass_stride;
#else /* __WORK_STEALING__ */
- split_state->work_array[ray_index] = sample + parallel_samples;
- sample = split_state->work_array[ray_index];
+ kernel_split_state.work_array[ray_index] = sample + parallel_samples;
+ sample = kernel_split_state.work_array[ray_index];
/* Get ray position from ray index */
pixel_x = sx + ((ray_index / parallel_samples) % sw);
@@ -274,10 +274,10 @@ ccl_device void kernel_background_buffer_update(KernelGlobals *kg)
enqueue_ray_index_local(ray_index,
QUEUE_ACTIVE_AND_REGENERATED_RAYS,
enqueue_flag,
- split_params->queue_size,
+ kernel_split_params.queue_size,
&local_queue_atomics,
- split_state->queue_data,
- split_params->queue_index);
+ kernel_split_state.queue_data,
+ kernel_split_params.queue_index);
}
CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/split/kernel_data_init.h b/intern/cycles/kernel/split/kernel_data_init.h
index 840c6ce..81ec4d6 100644
--- a/intern/cycles/kernel/split/kernel_data_init.h
+++ b/intern/cycles/kernel/split/kernel_data_init.h
@@ -88,42 +88,42 @@ ccl_device void kernel_data_init(
kg->data = data;
#endif
- split_params->x = sx;
- split_params->y = sy;
- split_params->w = sw;
- split_params->h = sh;
+ kernel_split_params.x = sx;
+ kernel_split_params.y = sy;
+ kernel_split_params.w = sw;
+ kernel_split_params.h = sh;
- split_params->offset = offset;
- split_params->stride = stride;
+ kernel_split_params.offset = offset;
+ kernel_split_params.stride = stride;
- split_params->rng_state = rng_state;
- split_params->rng_offset_x = rng_state_offset_x;
- split_params->rng_offset_y = rng_state_offset_y;
- split_params->rng_stride = rng_state_stride;
+ kernel_split_params.rng_state = rng_state;
+ kernel_split_params.rng_offset_x = rng_state_offset_x;
+ kernel_split_params.rng_offset_y = rng_state_offset_y;
+ kernel_split_params.rng_stride = rng_state_stride;
- split_params->start_sample = start_sample;
- split_params->end_sample = end_sample;
+ kernel_split_params.start_sample = start_sample;
+ kernel_split_params.end_sample = end_sample;
#ifdef __WORK_STEALING__
- split_params->work_pool_wgs = work_pool_wgs;
- split_params->num_samples = num_samples;
+ kernel_split_params.work_pool_wgs = work_pool_wgs;
+ kernel_split_params.num_samples = num_samples;
#endif
- split_params->parallel_samples = parallel_samples;
+ kernel_split_params.parallel_samples = parallel_samples;
- split_params->queue_index = Queue_index;
- split_params->queue_size = queuesize;
- split_params->use_queues_flag = use_queues_flag;
+ kernel_split_params.queue_index = Queue_index;
+ kernel_split_params.queue_size = queuesize;
+ kernel_split_params.use_queues_flag = use_queues_flag;
- split_params->buffer_offset_x = buffer_offset_x;
- split_params->buffer_offset_y = buffer_offset_y;
- split_params->buffer_stride = buffer_stride;
- split_params->buffer = buffer;
+ kernel_split_params.buffer_offset_x = buffer_offset_x;
+ kernel_split_params.buffer_offset_y = buffer_offset_y;
+ kernel_split_params.buffer_stride = buffer_stride;
+ kernel_split_params.buffer = buffer;
- split_data_init(split_state, num_elements, split_data_buffer, ray_state);
+ split_data_init(&kernel_split_state, num_elements, split_data_buffer, ray_state);
- kg->sd_input = split_state->s
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list