diff options
author | Brecht Van Lommel <brecht@blender.org> | 2021-12-07 22:49:34 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2021-12-07 22:49:34 +0300 |
commit | 204ae33d755561e68ad3a6193d9a90d39d47d4da (patch) | |
tree | b83e69f4b4deb024e848b2c45a346409779df26b /intern/cycles/session | |
parent | b81508841639aff7c0bc04accc2be265f554fdce (diff) |
Revert "Fix T93350: Cycles renders shows black during rendering huge resolutions"
This reverts commit 5e37f70307bdacedd0f7da65f8b385bc1426f21d.
It is leading to freezing of the entire desktop for a few seconds when stopping
3D viewport rendering on my Linux / NVIDIA system.
Diffstat (limited to 'intern/cycles/session')
-rw-r--r-- | intern/cycles/session/display_driver.h | 13 | ||||
-rw-r--r-- | intern/cycles/session/session.cpp | 5 | ||||
-rw-r--r-- | intern/cycles/session/tile.cpp | 6 | ||||
-rw-r--r-- | intern/cycles/session/tile.h | 6 |
4 files changed, 4 insertions, 26 deletions
diff --git a/intern/cycles/session/display_driver.h b/intern/cycles/session/display_driver.h index 5544ceee83d..77f89326fd0 100644 --- a/intern/cycles/session/display_driver.h +++ b/intern/cycles/session/display_driver.h @@ -54,8 +54,6 @@ class DisplayDriver { } }; - virtual void next_tile_begin() = 0; - /* Update the render from the rendering thread. * * Cycles periodically updates the render to be displayed. For multithreaded updates with @@ -99,17 +97,6 @@ class DisplayDriver { /* Clear the entire buffer before doing partial write to it. */ bool need_clear = false; - - /* Enforce re-creation of the graphics interop object. - * - * When this field is true then the graphics interop will be re-created no matter what the - * rest of the configuration is. - * When this field is false the graphics interop will be re-created if the PBO or buffer size - * did change. - * - * This allows to ensure graphics interop is re-created when there is a possibility that an - * underlying PBO was re-allocated but did not change its ID. */ - bool need_recreate = false; }; virtual GraphicsInterop graphics_interop_get() diff --git a/intern/cycles/session/session.cpp b/intern/cycles/session/session.cpp index 4d8e3dfbfad..af5c6b3f1fd 100644 --- a/intern/cycles/session/session.cpp +++ b/intern/cycles/session/session.cpp @@ -303,7 +303,7 @@ RenderWork Session::run_update_for_next_iteration() tile_params.update_offset_stride(); - path_trace_->reset(buffer_params_, tile_params, did_reset); + path_trace_->reset(buffer_params_, tile_params); } const int resolution = render_work.resolution_divider; @@ -384,8 +384,7 @@ int2 Session::get_effective_tile_size() const const int tile_size = tile_manager_.compute_render_tile_size(params.tile_size); const int64_t actual_tile_area = static_cast<int64_t>(tile_size) * tile_size; - if (actual_tile_area >= image_area && image_width <= TileManager::MAX_TILE_SIZE && - image_height <= TileManager::MAX_TILE_SIZE) { + if (actual_tile_area >= image_area) { return make_int2(image_width, image_height); } diff --git a/intern/cycles/session/tile.cpp b/intern/cycles/session/tile.cpp index afd1f334120..3b8482fa16f 100644 --- a/intern/cycles/session/tile.cpp +++ b/intern/cycles/session/tile.cpp @@ -341,10 +341,8 @@ int TileManager::compute_render_tile_size(const int suggested_tile_size) const /* Must be a multiple of IMAGE_TILE_SIZE so that we can write render tiles into the image file * aligned on image tile boundaries. We can't set IMAGE_TILE_SIZE equal to the render tile size * because too big tile size leads to integer overflow inside OpenEXR. */ - const int computed_tile_size = (suggested_tile_size <= IMAGE_TILE_SIZE) ? - suggested_tile_size : - align_up(suggested_tile_size, IMAGE_TILE_SIZE); - return min(computed_tile_size, MAX_TILE_SIZE); + return (suggested_tile_size <= IMAGE_TILE_SIZE) ? suggested_tile_size : + align_up(suggested_tile_size, IMAGE_TILE_SIZE); } void TileManager::reset_scheduling(const BufferParams ¶ms, int2 tile_size) diff --git a/intern/cycles/session/tile.h b/intern/cycles/session/tile.h index 7c8f7570d3e..eace148eb0a 100644 --- a/intern/cycles/session/tile.h +++ b/intern/cycles/session/tile.h @@ -122,12 +122,6 @@ class TileManager { /* Tile size in the image file. */ static const int IMAGE_TILE_SIZE = 128; - /* Maximum supported tile size. - * Needs to be safe from allocation on a GPU point of view: the display driver needs to be able - * to allocate texture with the side size of this value. - * Use conservative value which is safe for most of OpenGL drivers and GPUs. */ - static const int MAX_TILE_SIZE = 8192; - protected: /* Get tile configuration for its index. * The tile index must be within [0, state_.tile_state_). */ |