diff options
Diffstat (limited to 'intern/cycles/kernel/film/adaptive_sampling.h')
-rw-r--r-- | intern/cycles/kernel/film/adaptive_sampling.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/intern/cycles/kernel/film/adaptive_sampling.h b/intern/cycles/kernel/film/adaptive_sampling.h index ad9b3b08ac5..16867c39d99 100644 --- a/intern/cycles/kernel/film/adaptive_sampling.h +++ b/intern/cycles/kernel/film/adaptive_sampling.h @@ -91,13 +91,13 @@ ccl_device void kernel_adaptive_sampling_filter_x(KernelGlobals kg, bool prev = false; for (int x = start_x; x < start_x + width; ++x) { int index = offset + x + y * stride; - ccl_global float *buffer = render_buffer + index * kernel_data.film.pass_stride; + ccl_global float *buffer = render_buffer + (uint64_t)index * kernel_data.film.pass_stride; const uint aux_w_offset = kernel_data.film.pass_adaptive_aux_buffer + 3; if (buffer[aux_w_offset] == 0.0f) { if (x > start_x && !prev) { index = index - 1; - buffer = render_buffer + index * kernel_data.film.pass_stride; + buffer = render_buffer + (uint64_t)index * kernel_data.film.pass_stride; buffer[aux_w_offset] = 0.0f; } prev = true; @@ -124,13 +124,13 @@ ccl_device void kernel_adaptive_sampling_filter_y(KernelGlobals kg, bool prev = false; for (int y = start_y; y < start_y + height; ++y) { int index = offset + x + y * stride; - ccl_global float *buffer = render_buffer + index * kernel_data.film.pass_stride; + ccl_global float *buffer = render_buffer + (uint64_t)index * kernel_data.film.pass_stride; const uint aux_w_offset = kernel_data.film.pass_adaptive_aux_buffer + 3; if (buffer[aux_w_offset] == 0.0f) { if (y > start_y && !prev) { index = index - stride; - buffer = render_buffer + index * kernel_data.film.pass_stride; + buffer = render_buffer + (uint64_t)index * kernel_data.film.pass_stride; buffer[aux_w_offset] = 0.0f; } prev = true; |