Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/kernel_id_passes.h
| Show First 20 Lines • Show All 86 Lines • ▼ Show 20 Lines | while (i > 0 && id_buffer[i].y > id_buffer[i - 1].y) { | ||||
| id_buffer[i] = id_buffer[i - 1]; | id_buffer[i] = id_buffer[i - 1]; | ||||
| id_buffer[i - 1] = swap; | id_buffer[i - 1] = swap; | ||||
| --i; | --i; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| /* post-sorting for Cryptomatte */ | /* post-sorting for Cryptomatte */ | ||||
| ccl_device_inline void kernel_cryptomatte_post(ccl_global const KernelGlobals *kg, | ccl_device_inline void kernel_cryptomatte_post(KernelGlobals kg, | ||||
| ccl_global float *render_buffer, | ccl_global float *render_buffer, | ||||
| int pixel_index) | int pixel_index) | ||||
| { | { | ||||
| const int pass_stride = kernel_data.film.pass_stride; | const int pass_stride = kernel_data.film.pass_stride; | ||||
| const uint64_t render_buffer_offset = (uint64_t)pixel_index * pass_stride; | const uint64_t render_buffer_offset = (uint64_t)pixel_index * pass_stride; | ||||
| ccl_global float *cryptomatte_buffer = render_buffer + render_buffer_offset + | ccl_global float *cryptomatte_buffer = render_buffer + render_buffer_offset + | ||||
| kernel_data.film.pass_cryptomatte; | kernel_data.film.pass_cryptomatte; | ||||
| kernel_sort_id_slots(cryptomatte_buffer, 2 * kernel_data.film.cryptomatte_depth); | kernel_sort_id_slots(cryptomatte_buffer, 2 * kernel_data.film.cryptomatte_depth); | ||||
| } | } | ||||
| CCL_NAMESPACE_END | CCL_NAMESPACE_END | ||||