diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2017-09-27 01:39:53 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2017-10-04 22:11:14 +0300 |
commit | e3e16cecc4f080edbbd14e4bf1cfc580c5957d62 (patch) | |
tree | 5b9da903526442acb10b48d2ccee5686a00a1017 /intern/cycles/device/device_cpu.cpp | |
parent | 5b7d6ea54b2fc35b8b12c667f5bf9a1c9c46d5c2 (diff) |
Code refactor: remove rng_state buffer and compute hash on the fly.
A little faster on some benchmark scenes, a little slower on others, seems
about performance neutral on average and saves a little memory.
Diffstat (limited to 'intern/cycles/device/device_cpu.cpp')
-rw-r--r-- | intern/cycles/device/device_cpu.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp index 6a1106328fb..72330b02a28 100644 --- a/intern/cycles/device/device_cpu.cpp +++ b/intern/cycles/device/device_cpu.cpp @@ -171,7 +171,7 @@ public: DeviceRequestedFeatures requested_features; - KernelFunctions<void(*)(KernelGlobals *, float *, unsigned int *, int, int, int, int, int)> path_trace_kernel; + KernelFunctions<void(*)(KernelGlobals *, float *, int, int, int, int, int)> path_trace_kernel; KernelFunctions<void(*)(KernelGlobals *, uchar4 *, float *, float, int, int, int, int)> convert_to_half_float_kernel; KernelFunctions<void(*)(KernelGlobals *, uchar4 *, float *, float, int, int, int, int)> convert_to_byte_kernel; KernelFunctions<void(*)(KernelGlobals *, uint4 *, float4 *, float*, int, int, int, int, int)> shader_kernel; @@ -192,7 +192,7 @@ public: KernelFunctions<void(*)(int, int, int, int, int, float*, int*, float*, float3*, int*, int)> filter_finalize_kernel; KernelFunctions<void(*)(KernelGlobals *, ccl_constant KernelData*, ccl_global void*, int, ccl_global char*, - ccl_global uint*, int, int, int, int, int, int, int, int, ccl_global int*, int, + int, int, int, int, int, int, int, int, ccl_global int*, int, ccl_global char*, ccl_global unsigned int*, unsigned int, ccl_global float*)> data_init_kernel; unordered_map<string, KernelFunctions<void(*)(KernelGlobals*, KernelData*)> > split_kernels; @@ -617,7 +617,6 @@ public: void path_trace(DeviceTask &task, RenderTile &tile, KernelGlobals *kg) { float *render_buffer = (float*)tile.buffer; - uint *rng_state = (uint*)tile.rng_state; int start_sample = tile.start_sample; int end_sample = tile.start_sample + tile.num_samples; @@ -629,7 +628,7 @@ public: for(int y = tile.y; y < tile.y + tile.h; y++) { for(int x = tile.x; x < tile.x + tile.w; x++) { - path_trace_kernel()(kg, render_buffer, rng_state, + path_trace_kernel()(kg, render_buffer, sample, x, y, tile.offset, tile.stride); } } @@ -913,7 +912,6 @@ bool CPUSplitKernel::enqueue_split_kernel_data_init(const KernelDimensions& dim, (void*)split_data.device_pointer, num_global_elements, (char*)ray_state.device_pointer, - (uint*)rtile.rng_state, rtile.start_sample, rtile.start_sample + rtile.num_samples, rtile.x, |