From ace3268482c6bfd9986815aaa6b027c99fa8e3f4 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 5 Jun 2020 11:39:11 +0200 Subject: Cleanup: minor refactoring around DeviceTask --- intern/cycles/blender/blender_python.cpp | 1 + intern/cycles/bvh/bvh.cpp | 9 +-- intern/cycles/bvh/bvh_embree.cpp | 2 + intern/cycles/bvh/bvh_optix.cpp | 4 ++ intern/cycles/device/cuda/device_cuda.h | 3 +- intern/cycles/device/cuda/device_cuda_impl.cpp | 66 +++++++++++----------- intern/cycles/device/device_cpu.cpp | 33 ++++++----- intern/cycles/device/device_optix.cpp | 8 ++- intern/cycles/device/device_split_kernel.cpp | 18 +++--- intern/cycles/device/device_split_kernel.h | 4 +- intern/cycles/device/device_task.cpp | 4 +- intern/cycles/device/device_task.h | 7 +-- intern/cycles/device/opencl/device_opencl.h | 11 ++-- intern/cycles/device/opencl/device_opencl_impl.cpp | 54 +++++++++--------- intern/cycles/render/denoising.cpp | 1 + intern/cycles/render/geometry.cpp | 5 +- intern/cycles/render/image.cpp | 1 + intern/cycles/render/image.h | 2 +- intern/cycles/render/integrator.cpp | 1 + intern/cycles/render/light.cpp | 1 + intern/cycles/render/object.cpp | 1 + intern/cycles/render/shader.cpp | 1 + intern/cycles/test/render_graph_finalize_test.cpp | 4 ++ 23 files changed, 131 insertions(+), 110 deletions(-) (limited to 'intern') diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp index 0be19dbffd1..5595d657640 100644 --- a/intern/cycles/blender/blender_python.cpp +++ b/intern/cycles/blender/blender_python.cpp @@ -33,6 +33,7 @@ #include "util/util_opengl.h" #include "util/util_path.h" #include "util/util_string.h" +#include "util/util_task.h" #include "util/util_types.h" #ifdef WITH_OSL diff --git a/intern/cycles/bvh/bvh.cpp b/intern/cycles/bvh/bvh.cpp index 0313bcd68b0..8749bcfc07e 100644 --- a/intern/cycles/bvh/bvh.cpp +++ b/intern/cycles/bvh/bvh.cpp @@ -25,14 +25,9 @@ #include "bvh/bvh4.h" #include "bvh/bvh8.h" #include "bvh/bvh_build.h" +#include "bvh/bvh_embree.h" #include "bvh/bvh_node.h" - -#ifdef WITH_OPTIX -# include "bvh/bvh_optix.h" -#endif -#ifdef WITH_EMBREE -# include "bvh/bvh_embree.h" -#endif +#include "bvh/bvh_optix.h" #include "util/util_foreach.h" #include "util/util_logging.h" diff --git a/intern/cycles/bvh/bvh_embree.cpp b/intern/cycles/bvh/bvh_embree.cpp index 6735202835b..ebefc54be88 100644 --- a/intern/cycles/bvh/bvh_embree.cpp +++ b/intern/cycles/bvh/bvh_embree.cpp @@ -47,9 +47,11 @@ # include "render/hair.h" # include "render/mesh.h" # include "render/object.h" + # include "util/util_foreach.h" # include "util/util_logging.h" # include "util/util_progress.h" +# include "util/util_stats.h" CCL_NAMESPACE_BEGIN diff --git a/intern/cycles/bvh/bvh_optix.cpp b/intern/cycles/bvh/bvh_optix.cpp index 740994b2ebc..04cff674938 100644 --- a/intern/cycles/bvh/bvh_optix.cpp +++ b/intern/cycles/bvh/bvh_optix.cpp @@ -18,10 +18,14 @@ #ifdef WITH_OPTIX # include "bvh/bvh_optix.h" + +# include "device/device.h" + # include "render/geometry.h" # include "render/hair.h" # include "render/mesh.h" # include "render/object.h" + # include "util/util_foreach.h" # include "util/util_logging.h" # include "util/util_progress.h" diff --git a/intern/cycles/device/cuda/device_cuda.h b/intern/cycles/device/cuda/device_cuda.h index e7cf71ea96c..e5e3e24165d 100644 --- a/intern/cycles/device/cuda/device_cuda.h +++ b/intern/cycles/device/cuda/device_cuda.h @@ -21,6 +21,7 @@ # include "device/device_split_kernel.h" # include "util/util_map.h" +# include "util/util_task.h" # ifdef WITH_CUDA_DYNLOAD # include "cuew.h" @@ -254,7 +255,7 @@ class CUDADevice : public Device { bool transparent, const DeviceDrawParams &draw_params) override; - void thread_run(DeviceTask *task); + void thread_run(DeviceTask &task); virtual void task_add(DeviceTask &task) override; diff --git a/intern/cycles/device/cuda/device_cuda_impl.cpp b/intern/cycles/device/cuda/device_cuda_impl.cpp index 7aa63ff48c3..83f7bc10911 100644 --- a/intern/cycles/device/cuda/device_cuda_impl.cpp +++ b/intern/cycles/device/cuda/device_cuda_impl.cpp @@ -105,7 +105,7 @@ class CUDASplitKernel : public DeviceSplitKernel { virtual SplitKernelFunction *get_split_kernel_function(const string &kernel_name, const DeviceRequestedFeatures &); virtual int2 split_kernel_local_size(); - virtual int2 split_kernel_global_size(device_memory &kg, device_memory &data, DeviceTask *task); + virtual int2 split_kernel_global_size(device_memory &kg, device_memory &data, DeviceTask &task); }; /* Utility to push/pop CUDA context. */ @@ -2326,11 +2326,11 @@ void CUDADevice::draw_pixels(device_memory &mem, Device::draw_pixels(mem, y, w, h, width, height, dx, dy, dw, dh, transparent, draw_params); } -void CUDADevice::thread_run(DeviceTask *task) +void CUDADevice::thread_run(DeviceTask &task) { CUDAContextScope scope(this); - if (task->type == DeviceTask::RENDER) { + if (task.type == DeviceTask::RENDER) { DeviceRequestedFeatures requested_features; if (use_split_kernel()) { if (split_kernel == NULL) { @@ -2343,70 +2343,72 @@ void CUDADevice::thread_run(DeviceTask *task) /* keep rendering tiles until done */ RenderTile tile; - DenoisingTask denoising(this, *task); + DenoisingTask denoising(this, task); - while (task->acquire_tile(this, tile, task->tile_types)) { + while (task.acquire_tile(this, tile, task.tile_types)) { if (tile.task == RenderTile::PATH_TRACE) { if (use_split_kernel()) { device_only_memory void_buffer(this, "void_buffer"); split_kernel->path_trace(task, tile, void_buffer, void_buffer); } else { - render(*task, tile, work_tiles); + render(task, tile, work_tiles); } } else if (tile.task == RenderTile::BAKE) { - render(*task, tile, work_tiles); + render(task, tile, work_tiles); } else if (tile.task == RenderTile::DENOISE) { tile.sample = tile.start_sample + tile.num_samples; denoise(tile, denoising); - task->update_progress(&tile, tile.w * tile.h); + task.update_progress(&tile, tile.w * tile.h); } - task->release_tile(tile); + task.release_tile(tile); - if (task->get_cancel()) { - if (task->need_finish_queue == false) + if (task.get_cancel()) { + if (task.need_finish_queue == false) break; } } work_tiles.free(); } - else if (task->type == DeviceTask::SHADER) { - shader(*task); + else if (task.type == DeviceTask::SHADER) { + shader(task); cuda_assert(cuCtxSynchronize()); } - else if (task->type == DeviceTask::DENOISE_BUFFER) { + else if (task.type == DeviceTask::DENOISE_BUFFER) { RenderTile tile; - tile.x = task->x; - tile.y = task->y; - tile.w = task->w; - tile.h = task->h; - tile.buffer = task->buffer; - tile.sample = task->sample + task->num_samples; - tile.num_samples = task->num_samples; - tile.start_sample = task->sample; - tile.offset = task->offset; - tile.stride = task->stride; - tile.buffers = task->buffers; - - DenoisingTask denoising(this, *task); + tile.x = task.x; + tile.y = task.y; + tile.w = task.w; + tile.h = task.h; + tile.buffer = task.buffer; + tile.sample = task.sample + task.num_samples; + tile.num_samples = task.num_samples; + tile.start_sample = task.sample; + tile.offset = task.offset; + tile.stride = task.stride; + tile.buffers = task.buffers; + + DenoisingTask denoising(this, task); denoise(tile, denoising); - task->update_progress(&tile, tile.w * tile.h); + task.update_progress(&tile, tile.w * tile.h); } } -class CUDADeviceTask : public DeviceTask { +class CUDADeviceTask : public Task { public: - CUDADeviceTask(CUDADevice *device, DeviceTask &task) : DeviceTask(task) + CUDADeviceTask(CUDADevice *device, DeviceTask &task) : task(task) { - run = function_bind(&CUDADevice::thread_run, device, this); + run = function_bind(&CUDADevice::thread_run, device, task); } + + DeviceTask task; }; void CUDADevice::task_add(DeviceTask &task) @@ -2652,7 +2654,7 @@ int2 CUDASplitKernel::split_kernel_local_size() int2 CUDASplitKernel::split_kernel_global_size(device_memory &kg, device_memory &data, - DeviceTask * /*task*/) + DeviceTask & /*task*/) { CUDAContextScope scope(device); size_t free; diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp index fc6febd8cee..096cb83552a 100644 --- a/intern/cycles/device/device_cpu.cpp +++ b/intern/cycles/device/device_cpu.cpp @@ -55,6 +55,7 @@ #include "util/util_optimization.h" #include "util/util_progress.h" #include "util/util_system.h" +#include "util/util_task.h" #include "util/util_thread.h" CCL_NAMESPACE_BEGIN @@ -161,7 +162,7 @@ class CPUSplitKernel : public DeviceSplitKernel { virtual SplitKernelFunction *get_split_kernel_function(const string &kernel_name, const DeviceRequestedFeatures &); virtual int2 split_kernel_local_size(); - virtual int2 split_kernel_global_size(device_memory &kg, device_memory &data, DeviceTask *task); + virtual int2 split_kernel_global_size(device_memory &kg, device_memory &data, DeviceTask &task); virtual uint64_t state_buffer_size(device_memory &kg, device_memory &data, size_t num_threads); }; @@ -527,24 +528,26 @@ class CPUDevice : public Device { #endif } - void thread_run(DeviceTask *task) + void thread_run(DeviceTask &task) { - if (task->type == DeviceTask::RENDER) - thread_render(*task); - else if (task->type == DeviceTask::SHADER) - thread_shader(*task); - else if (task->type == DeviceTask::FILM_CONVERT) - thread_film_convert(*task); - else if (task->type == DeviceTask::DENOISE_BUFFER) - thread_denoise(*task); + if (task.type == DeviceTask::RENDER) + thread_render(task); + else if (task.type == DeviceTask::SHADER) + thread_shader(task); + else if (task.type == DeviceTask::FILM_CONVERT) + thread_film_convert(task); + else if (task.type == DeviceTask::DENOISE_BUFFER) + thread_denoise(task); } - class CPUDeviceTask : public DeviceTask { + class CPUDeviceTask : public Task { public: - CPUDeviceTask(CPUDevice *device, DeviceTask &task) : DeviceTask(task) + CPUDeviceTask(CPUDevice *device, DeviceTask &task) : task(task) { - run = function_bind(&CPUDevice::thread_run, device, this); + run = function_bind(&CPUDevice::thread_run, device, task); } + + DeviceTask task; }; bool denoising_non_local_means(device_ptr image_ptr, @@ -1027,7 +1030,7 @@ class CPUDevice : public Device { if (tile.task == RenderTile::PATH_TRACE) { if (use_split_kernel) { device_only_memory void_buffer(this, "void_buffer"); - split_kernel->path_trace(&task, tile, kgbuffer, void_buffer); + split_kernel->path_trace(task, tile, kgbuffer, void_buffer); } else { render(task, tile, kg); @@ -1326,7 +1329,7 @@ int2 CPUSplitKernel::split_kernel_local_size() int2 CPUSplitKernel::split_kernel_global_size(device_memory & /*kg*/, device_memory & /*data*/, - DeviceTask * /*task*/) + DeviceTask & /*task*/) { return make_int2(1, 1); } diff --git a/intern/cycles/device/device_optix.cpp b/intern/cycles/device/device_optix.cpp index fbf6a914744..2d99a943015 100644 --- a/intern/cycles/device/device_optix.cpp +++ b/intern/cycles/device/device_optix.cpp @@ -1463,13 +1463,15 @@ class OptiXDevice : public CUDADevice { void task_add(DeviceTask &task) override { - struct OptiXDeviceTask : public DeviceTask { - OptiXDeviceTask(OptiXDevice *device, DeviceTask &task, int task_index) : DeviceTask(task) + struct OptiXDeviceTask : public Task { + OptiXDeviceTask(OptiXDevice *device, DeviceTask &task, int task_index) : task(task) { // Using task index parameter instead of thread index, since number of CUDA streams may // differ from number of threads - run = function_bind(&OptiXDevice::thread_run, device, *this, task_index); + run = function_bind(&OptiXDevice::thread_run, device, task, task_index); } + + DeviceTask task; }; // Upload texture information to device if it has changed since last launch diff --git a/intern/cycles/device/device_split_kernel.cpp b/intern/cycles/device/device_split_kernel.cpp index f22d8761058..4c288f60c16 100644 --- a/intern/cycles/device/device_split_kernel.cpp +++ b/intern/cycles/device/device_split_kernel.cpp @@ -145,7 +145,7 @@ size_t DeviceSplitKernel::max_elements_for_max_buffer_size(device_memory &kg, return max_buffer_size / size_per_element; } -bool DeviceSplitKernel::path_trace(DeviceTask *task, +bool DeviceSplitKernel::path_trace(DeviceTask &task, RenderTile &tile, device_memory &kgbuffer, device_memory &kernel_data) @@ -222,9 +222,9 @@ bool DeviceSplitKernel::path_trace(DeviceTask *task, subtile.start_sample = tile.sample; subtile.num_samples = samples_per_second; - if (task->adaptive_sampling.use) { - subtile.num_samples = task->adaptive_sampling.align_dynamic_samples(subtile.start_sample, - subtile.num_samples); + if (task.adaptive_sampling.use) { + subtile.num_samples = task.adaptive_sampling.align_dynamic_samples(subtile.start_sample, + subtile.num_samples); } /* Don't go beyond requested number of samples. */ @@ -286,7 +286,7 @@ bool DeviceSplitKernel::path_trace(DeviceTask *task, ENQUEUE_SPLIT_KERNEL(queue_enqueue, global_size, local_size); ENQUEUE_SPLIT_KERNEL(buffer_update, global_size, local_size); - if (task->get_cancel() && cancel_time == DBL_MAX) { + if (task.get_cancel() && cancel_time == DBL_MAX) { /* Wait up to twice as many seconds for current samples to finish * to avoid artifacts in render result from ending too soon. */ @@ -323,7 +323,7 @@ bool DeviceSplitKernel::path_trace(DeviceTask *task, } int filter_sample = tile.sample + subtile.num_samples - 1; - if (task->adaptive_sampling.use && task->adaptive_sampling.need_filter(filter_sample)) { + if (task.adaptive_sampling.use && task.adaptive_sampling.need_filter(filter_sample)) { size_t buffer_size[2]; buffer_size[0] = round_up(tile.w, local_size[0]); buffer_size[1] = round_up(tile.h, local_size[1]); @@ -352,16 +352,16 @@ bool DeviceSplitKernel::path_trace(DeviceTask *task, #undef ENQUEUE_SPLIT_KERNEL tile.sample += subtile.num_samples; - task->update_progress(&tile, tile.w * tile.h * subtile.num_samples); + task.update_progress(&tile, tile.w * tile.h * subtile.num_samples); time_multiplier = min(time_multiplier << 1, 10); - if (task->get_cancel()) { + if (task.get_cancel()) { return true; } } - if (task->adaptive_sampling.use) { + if (task.adaptive_sampling.use) { /* Reset the start samples. */ RenderTile subtile = tile; subtile.start_sample = tile.start_sample; diff --git a/intern/cycles/device/device_split_kernel.h b/intern/cycles/device/device_split_kernel.h index 9d6b9efdd62..07a21b10299 100644 --- a/intern/cycles/device/device_split_kernel.h +++ b/intern/cycles/device/device_split_kernel.h @@ -109,7 +109,7 @@ class DeviceSplitKernel { virtual ~DeviceSplitKernel(); bool load_kernels(const DeviceRequestedFeatures &requested_features); - bool path_trace(DeviceTask *task, + bool path_trace(DeviceTask &task, RenderTile &rtile, device_memory &kgbuffer, device_memory &kernel_data); @@ -137,7 +137,7 @@ class DeviceSplitKernel { virtual int2 split_kernel_local_size() = 0; virtual int2 split_kernel_global_size(device_memory &kg, device_memory &data, - DeviceTask *task) = 0; + DeviceTask &task) = 0; }; CCL_NAMESPACE_END diff --git a/intern/cycles/device/device_task.cpp b/intern/cycles/device/device_task.cpp index 7485e1b41de..6e7c184c6c9 100644 --- a/intern/cycles/device/device_task.cpp +++ b/intern/cycles/device/device_task.cpp @@ -50,7 +50,7 @@ DeviceTask::DeviceTask(Type type_) last_update_time = time_dt(); } -int DeviceTask::get_subtask_count(int num, int max_size) +int DeviceTask::get_subtask_count(int num, int max_size) const { if (max_size != 0) { int max_size_num; @@ -78,7 +78,7 @@ int DeviceTask::get_subtask_count(int num, int max_size) return num; } -void DeviceTask::split(list &tasks, int num, int max_size) +void DeviceTask::split(list &tasks, int num, int max_size) const { num = get_subtask_count(num, max_size); diff --git a/intern/cycles/device/device_task.h b/intern/cycles/device/device_task.h index 8c4e682adb1..5f675bf7e04 100644 --- a/intern/cycles/device/device_task.h +++ b/intern/cycles/device/device_task.h @@ -21,7 +21,6 @@ #include "util/util_function.h" #include "util/util_list.h" -#include "util/util_task.h" CCL_NAMESPACE_BEGIN @@ -75,7 +74,7 @@ class AdaptiveSampling { int min_samples; }; -class DeviceTask : public Task { +class DeviceTask { public: typedef enum { RENDER, FILM_CONVERT, SHADER, DENOISE_BUFFER } Type; Type type; @@ -98,8 +97,8 @@ class DeviceTask : public Task { explicit DeviceTask(Type type = RENDER); - int get_subtask_count(int num, int max_size = 0); - void split(list &tasks, int num, int max_size = 0); + int get_subtask_count(int num, int max_size = 0) const; + void split(list &tasks, int num, int max_size = 0) const; void update_progress(RenderTile *rtile, int pixel_samples = -1); diff --git a/intern/cycles/device/opencl/device_opencl.h b/intern/cycles/device/opencl/device_opencl.h index 389268e1c2a..49104cf7c3d 100644 --- a/intern/cycles/device/opencl/device_opencl.h +++ b/intern/cycles/device/opencl/device_opencl.h @@ -23,6 +23,7 @@ # include "util/util_map.h" # include "util/util_param.h" # include "util/util_string.h" +# include "util/util_task.h" # include "clew.h" @@ -455,12 +456,14 @@ class OpenCLDevice : public Device { void denoise(RenderTile &tile, DenoisingTask &denoising); - class OpenCLDeviceTask : public DeviceTask { + class OpenCLDeviceTask : public Task { public: - OpenCLDeviceTask(OpenCLDevice *device, DeviceTask &task) : DeviceTask(task) + OpenCLDeviceTask(OpenCLDevice *device, DeviceTask &task) : task(task) { - run = function_bind(&OpenCLDevice::thread_run, device, this); + run = function_bind(&OpenCLDevice::thread_run, device, task); } + + DeviceTask task; }; int get_split_task_count(DeviceTask & /*task*/) @@ -483,7 +486,7 @@ class OpenCLDevice : public Device { task_pool.cancel(); } - void thread_run(DeviceTask *task); + void thread_run(DeviceTask &task); virtual BVHLayoutMask get_bvh_layout_mask() const { diff --git a/intern/cycles/device/opencl/device_opencl_impl.cpp b/intern/cycles/device/opencl/device_opencl_impl.cpp index 7a84b271878..368f7bef236 100644 --- a/intern/cycles/device/opencl/device_opencl_impl.cpp +++ b/intern/cycles/device/opencl/device_opencl_impl.cpp @@ -542,7 +542,7 @@ class OpenCLSplitKernel : public DeviceSplitKernel { virtual int2 split_kernel_global_size(device_memory &kg, device_memory &data, - DeviceTask * /*task*/) + DeviceTask & /*task*/) { cl_device_type type = OpenCLInfo::get_device_type(device->cdDevice); /* Use small global size on CPU devices as it seems to be much faster. */ @@ -1336,20 +1336,20 @@ void OpenCLDevice::flush_texture_buffers() memory_manager.alloc("texture_info", texture_info); } -void OpenCLDevice::thread_run(DeviceTask *task) +void OpenCLDevice::thread_run(DeviceTask &task) { flush_texture_buffers(); - if (task->type == DeviceTask::RENDER) { + if (task.type == DeviceTask::RENDER) { RenderTile tile; - DenoisingTask denoising(this, *task); + DenoisingTask denoising(this, task); /* Allocate buffer for kernel globals */ device_only_memory kgbuffer(this, "kernel_globals"); kgbuffer.alloc_to_device(1); /* Keep rendering tiles until done. */ - while (task->acquire_tile(this, tile, task->tile_types)) { + while (task.acquire_tile(this, tile, task.tile_types)) { if (tile.task == RenderTile::PATH_TRACE) { assert(tile.task == RenderTile::PATH_TRACE); scoped_timer timer(&tile.buffers->render_time); @@ -1368,42 +1368,42 @@ void OpenCLDevice::thread_run(DeviceTask *task) clFinish(cqCommandQueue); } else if (tile.task == RenderTile::BAKE) { - bake(*task, tile); + bake(task, tile); } else if (tile.task == RenderTile::DENOISE) { tile.sample = tile.start_sample + tile.num_samples; denoise(tile, denoising); - task->update_progress(&tile, tile.w * tile.h); + task.update_progress(&tile, tile.w * tile.h); } - task->release_tile(tile); + task.release_tile(tile); } kgbuffer.free(); } - else if (task->type == DeviceTask::SHADER) { - shader(*task); + else if (task.type == DeviceTask::SHADER) { + shader(task); } - else if (task->type == DeviceTask::FILM_CONVERT) { - film_convert(*task, task->buffer, task->rgba_byte, task->rgba_half); + else if (task.type == DeviceTask::FILM_CONVERT) { + film_convert(task, task.buffer, task.rgba_byte, task.rgba_half); } - else if (task->type == DeviceTask::DENOISE_BUFFER) { + else if (task.type == DeviceTask::DENOISE_BUFFER) { RenderTile tile; - tile.x = task->x; - tile.y = task->y; - tile.w = task->w; - tile.h = task->h; - tile.buffer = task->buffer; - tile.sample = task->sample + task->num_samples; - tile.num_samples = task->num_samples; - tile.start_sample = task->sample; - tile.offset = task->offset; - tile.stride = task->stride; - tile.buffers = task->buffers; - - DenoisingTask denoising(this, *task); + tile.x = task.x; + tile.y = task.y; + tile.w = task.w; + tile.h = task.h; + tile.buffer = task.buffer; + tile.sample = task.sample + task.num_samples; + tile.num_samples = task.num_samples; + tile.start_sample = task.sample; + tile.offset = task.offset; + tile.stride = task.stride; + tile.buffers = task.buffers; + + DenoisingTask denoising(this, task); denoise(tile, denoising); - task->update_progress(&tile, tile.w * tile.h); + task.update_progress(&tile, tile.w * tile.h); } } diff --git a/intern/cycles/render/denoising.cpp b/intern/cycles/render/denoising.cpp index 4d819d1119e..93815ebfbc4 100644 --- a/intern/cycles/render/denoising.cpp +++ b/intern/cycles/render/denoising.cpp @@ -21,6 +21,7 @@ #include "util/util_foreach.h" #include "util/util_map.h" #include "util/util_system.h" +#include "util/util_task.h" #include "util/util_time.h" #include diff --git a/intern/cycles/render/geometry.cpp b/intern/cycles/render/geometry.cpp index d46ed430c4f..f448c2fb07f 100644 --- a/intern/cycles/render/geometry.cpp +++ b/intern/cycles/render/geometry.cpp @@ -16,10 +16,9 @@ #include "bvh/bvh.h" #include "bvh/bvh_build.h" +#include "bvh/bvh_embree.h" -#ifdef WITH_EMBREE -# include "bvh/bvh_embree.h" -#endif +#include "device/device.h" #include "render/attribute.h" #include "render/camera.h" diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp index 75050b66bf2..8d187814d64 100644 --- a/intern/cycles/render/image.cpp +++ b/intern/cycles/render/image.cpp @@ -27,6 +27,7 @@ #include "util/util_logging.h" #include "util/util_path.h" #include "util/util_progress.h" +#include "util/util_task.h" #include "util/util_texture.h" #include "util/util_unique_ptr.h" diff --git a/intern/cycles/render/image.h b/intern/cycles/render/image.h index 2000582ce70..fffe7c5152a 100644 --- a/intern/cycles/render/image.h +++ b/intern/cycles/render/image.h @@ -17,7 +17,6 @@ #ifndef __IMAGE_H__ #define __IMAGE_H__ -#include "device/device.h" #include "device/device_memory.h" #include "render/colorspace.h" @@ -31,6 +30,7 @@ CCL_NAMESPACE_BEGIN class Device; +class DeviceInfo; class ImageHandle; class ImageKey; class ImageMetaData; diff --git a/intern/cycles/render/integrator.cpp b/intern/cycles/render/integrator.cpp index d4beb06e57b..eff416efa2b 100644 --- a/intern/cycles/render/integrator.cpp +++ b/intern/cycles/render/integrator.cpp @@ -29,6 +29,7 @@ #include "util/util_foreach.h" #include "util/util_hash.h" #include "util/util_logging.h" +#include "util/util_task.h" CCL_NAMESPACE_BEGIN diff --git a/intern/cycles/render/light.cpp b/intern/cycles/render/light.cpp index 225cedfef55..25c91a76d58 100644 --- a/intern/cycles/render/light.cpp +++ b/intern/cycles/render/light.cpp @@ -31,6 +31,7 @@ #include "util/util_logging.h" #include "util/util_path.h" #include "util/util_progress.h" +#include "util/util_task.h" CCL_NAMESPACE_BEGIN diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp index 61deef4cd76..752350ad76e 100644 --- a/intern/cycles/render/object.cpp +++ b/intern/cycles/render/object.cpp @@ -31,6 +31,7 @@ #include "util/util_murmurhash.h" #include "util/util_progress.h" #include "util/util_set.h" +#include "util/util_task.h" #include "util/util_vector.h" #include "subd/subd_patch_table.h" diff --git a/intern/cycles/render/shader.cpp b/intern/cycles/render/shader.cpp index 39ba45a751a..1120d909e98 100644 --- a/intern/cycles/render/shader.cpp +++ b/intern/cycles/render/shader.cpp @@ -33,6 +33,7 @@ #include "util/util_foreach.h" #include "util/util_murmurhash.h" +#include "util/util_task.h" #ifdef WITH_OCIO # include diff --git a/intern/cycles/test/render_graph_finalize_test.cpp b/intern/cycles/test/render_graph_finalize_test.cpp index 87389ebfb16..4ea3470cda8 100644 --- a/intern/cycles/test/render_graph_finalize_test.cpp +++ b/intern/cycles/test/render_graph_finalize_test.cpp @@ -17,11 +17,15 @@ #include "testing/mock_log.h" #include "testing/testing.h" +#include "device/device.h" + #include "render/graph.h" #include "render/nodes.h" #include "render/scene.h" + #include "util/util_array.h" #include "util/util_logging.h" +#include "util/util_stats.h" #include "util/util_string.h" #include "util/util_vector.h" -- cgit v1.2.3