diff options
Diffstat (limited to 'intern/cycles/render/session.h')
-rw-r--r-- | intern/cycles/render/session.h | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h index 90616f011ea..7b01357a2b7 100644 --- a/intern/cycles/render/session.h +++ b/intern/cycles/render/session.h @@ -47,8 +47,8 @@ public: bool progressive; bool experimental; int samples; - int tile_size; - int min_size; + int2 tile_size; + int resolution; int threads; double cancel_timeout; @@ -63,8 +63,8 @@ public: progressive = false; experimental = false; samples = INT_MAX; - tile_size = 64; - min_size = 64; + tile_size = make_int2(64, 64); + resolution = 4; threads = 0; cancel_timeout = 0.1; @@ -81,7 +81,7 @@ public: && progressive == params.progressive && experimental == params.experimental && tile_size == params.tile_size - && min_size == params.min_size + && resolution == params.resolution && threads == params.threads && cancel_timeout == params.cancel_timeout && reset_timeout == params.reset_timeout @@ -102,7 +102,10 @@ public: DisplayBuffer *display; Progress progress; SessionParams params; - int sample; + TileManager tile_manager; + + boost::function<void(RenderTile&)> write_render_tile_cb; + boost::function<void(RenderTile&)> update_render_tile_cb; Session(const SessionParams& params); ~Session(); @@ -130,7 +133,7 @@ protected: void update_status_time(bool show_pause = false, bool show_done = false); void tonemap(); - void path_trace(Tile& tile); + void path_trace(); void reset_(BufferParams& params, int samples); void run_cpu(); @@ -141,7 +144,12 @@ protected: bool draw_gpu(BufferParams& params); void reset_gpu(BufferParams& params, int samples); - TileManager tile_manager; + bool acquire_tile(Device *tile_device, RenderTile& tile); + void update_tile_sample(RenderTile& tile); + void release_tile(RenderTile& tile); + + void update_progress_sample(); + bool device_use_gl; thread *session_thread; @@ -155,6 +163,9 @@ protected: bool pause; thread_condition_variable pause_cond; thread_mutex pause_mutex; + thread_mutex tile_mutex; + thread_mutex buffers_mutex; + thread_mutex display_mutex; bool kernels_loaded; |