diff --git a/intern/cycles/blender/addon/presets.py b/intern/cycles/blender/addon/presets.py index 4db9f8f1aa0..2e840d0c6a1 100644 --- a/intern/cycles/blender/addon/presets.py +++ b/intern/cycles/blender/addon/presets.py @@ -106,7 +106,6 @@ class AddPresetPerformance(AddPresetBase, Operator): "cycles.debug_use_compact_bvh", "cycles.debug_use_hair_bvh", "cycles.debug_bvh_time_steps", - "cycles.use_auto_tile", "cycles.tile_size", ] diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 77d865438ec..d28099e7742 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -1046,14 +1046,14 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): ) use_auto_tile: BoolProperty( - name="Use Tiling", - description="Render high resolution images in tiles to reduce memory usage, using the specified tile size. Tiles are cached to disk while rendering to save memory", + name="Auto Tile", + description="Deprecated, tiling is always enabled", default=True, ) tile_size: IntProperty( name="Tile Size", default=2048, - description="", + description="Render high resolution images in tiles of this size, to reduce memory usage. Tiles are cached to disk while rendering to save memory", min=8, max=8192, ) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 61a6c03511e..9362d8f8d34 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -375,6 +375,7 @@ class CYCLES_RENDER_PT_sampling_path_guiding(CyclesButtonsPanel, Panel): cscene = scene.cycles layout = self.layout + layout.use_property_split = True layout.use_property_decorate = False layout.active = cscene.use_guiding @@ -385,6 +386,24 @@ class CYCLES_RENDER_PT_sampling_path_guiding(CyclesButtonsPanel, Panel): col.prop(cscene, "use_surface_guiding", text="Surface") col.prop(cscene, "use_volume_guiding", text="Volume", text_ctxt=i18n_contexts.id_id) + if cscene.use_guiding: + # Calculation matches TileManager::compute_render_tile_size and + # Session::get_effective_tile_size + if cscene.tile_size < 128: + tile_size = cscene.tile_size + else: + tile_size = (cscene.tile_size + 128 - 1) & ~(128 - 1) + tile_size = min(tile_size, 8192) + tile_area = tile_size ** 2 + + render_scale = scene.render.resolution_percentage / 100.0 + render_size_x = int(scene.render.resolution_x * render_scale) + render_size_y = int(scene.render.resolution_y * render_scale) + render_area = render_size_x * render_size_y + + if render_area > tile_area and render_size_x <= 8192 and render_size_y <= 8192: + layout.label(text="May work poorly with render tiling", icon='INFO') + class CYCLES_RENDER_PT_sampling_path_guiding_debug(CyclesDebugButtonsPanel, Panel): bl_label = "Debug" @@ -855,11 +874,7 @@ class CYCLES_RENDER_PT_performance_memory(CyclesButtonsPanel, Panel): scene = context.scene cscene = scene.cycles - col = layout.column() - col.prop(cscene, "use_auto_tile") - sub = col.column() - sub.active = cscene.use_auto_tile - sub.prop(cscene, "tile_size") + layout.prop(cscene, "tile_size") class CYCLES_RENDER_PT_performance_acceleration_structure(CyclesButtonsPanel, Panel): diff --git a/intern/cycles/blender/addon/version_update.py b/intern/cycles/blender/addon/version_update.py index fa50423083c..e211caed40f 100644 --- a/intern/cycles/blender/addon/version_update.py +++ b/intern/cycles/blender/addon/version_update.py @@ -101,7 +101,7 @@ def do_versions(self): library_versions.setdefault(library.version, []).append(library) # Do versioning per library, since they might have different versions. - max_need_versioning = (4, 2, 52) + max_need_versioning = (5, 0, 77) for version, libraries in library_versions.items(): if version > max_need_versioning: continue @@ -111,6 +111,13 @@ def do_versions(self): if scene.library not in libraries: continue + # Auto tiling is always enabled now + if version <= (5, 0, 77): + cscene = scene.cycles + if not cscene.use_auto_tile: + cscene.use_auto_tile = True + cscene.tile_size = 8192 + # Clamp Direct/Indirect separation in 270 if version <= (2, 70, 0): cscene = scene.cycles diff --git a/intern/cycles/blender/sync.cpp b/intern/cycles/blender/sync.cpp index 6a297b8f821..8353e1f5dc2 100644 --- a/intern/cycles/blender/sync.cpp +++ b/intern/cycles/blender/sync.cpp @@ -1005,7 +1005,7 @@ SessionParams BlenderSync::get_session_params(BL::RenderEngine &b_engine, BlenderSession::print_render_stats; if (background) { - params.use_auto_tile = RNA_boolean_get(&cscene, "use_auto_tile"); + params.use_auto_tile = true; params.tile_size = max(get_int(cscene, "tile_size"), 8); } else { diff --git a/scripts/modules/rna_manual_reference.py b/scripts/modules/rna_manual_reference.py index 8d8ae4e17cc..a90ce1f4672 100644 --- a/scripts/modules/rna_manual_reference.py +++ b/scripts/modules/rna_manual_reference.py @@ -820,7 +820,6 @@ url_manual_mapping = ( ("bpy.types.cyclesrendersettings.film_exposure*", "render/cycles/render_settings/film.html#bpy-types-cyclesrendersettings-film-exposure"), ("bpy.types.cyclesrendersettings.sample_offset*", "render/cycles/render_settings/sampling.html#bpy-types-cyclesrendersettings-sample-offset"), ("bpy.types.cyclesrendersettings.texture_limit*", "render/cycles/render_settings/simplify.html#bpy-types-cyclesrendersettings-texture-limit"), - ("bpy.types.cyclesrendersettings.use_auto_tile*", "render/cycles/render_settings/performance.html#bpy-types-cyclesrendersettings-use-auto-tile"), ("bpy.types.cyclesrendersettings.use_denoising*", "render/cycles/render_settings/sampling.html#bpy-types-cyclesrendersettings-use-denoising"), ("bpy.types.editbone.bbone_custom_handle_start*", "animation/armatures/bones/properties/bendy_bones.html#bpy-types-editbone-bbone-custom-handle-start"), ("bpy.types.editbone.bbone_handle_use_ease_end*", "animation/armatures/bones/properties/bendy_bones.html#bpy-types-editbone-bbone-handle-use-ease-end"), diff --git a/scripts/presets/cycles/performance/Default.py b/scripts/presets/cycles/performance/Default.py index 5c25f23eca0..1f6b457f491 100644 --- a/scripts/presets/cycles/performance/Default.py +++ b/scripts/presets/cycles/performance/Default.py @@ -8,5 +8,4 @@ cycles.debug_use_spatial_splits = False cycles.debug_use_compact_bvh = False cycles.debug_use_hair_bvh = True cycles.debug_bvh_time_steps = 0 -cycles.use_auto_tile = True cycles.tile_size = 2048 diff --git a/scripts/presets/cycles/performance/Faster_Render.py b/scripts/presets/cycles/performance/Faster_Render.py index 7f1e3c68f1f..71ae3d85e31 100644 --- a/scripts/presets/cycles/performance/Faster_Render.py +++ b/scripts/presets/cycles/performance/Faster_Render.py @@ -8,5 +8,4 @@ cycles.debug_use_spatial_splits = True cycles.debug_use_compact_bvh = False cycles.debug_use_hair_bvh = True cycles.debug_bvh_time_steps = 2 -cycles.use_auto_tile = True cycles.tile_size = 2048 diff --git a/scripts/presets/cycles/performance/Lower_Memory.py b/scripts/presets/cycles/performance/Lower_Memory.py index d1a45f1888d..abccb5e1242 100644 --- a/scripts/presets/cycles/performance/Lower_Memory.py +++ b/scripts/presets/cycles/performance/Lower_Memory.py @@ -8,5 +8,4 @@ cycles.debug_use_spatial_splits = False cycles.debug_use_compact_bvh = True cycles.debug_use_hair_bvh = True cycles.debug_bvh_time_steps = 0 -cycles.use_auto_tile = True cycles.tile_size = 512 diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h index 9c01021436a..21503dc708c 100644 --- a/source/blender/blenkernel/BKE_blender_version.h +++ b/source/blender/blenkernel/BKE_blender_version.h @@ -27,7 +27,7 @@ /* Blender file format version. */ #define BLENDER_FILE_VERSION BLENDER_VERSION -#define BLENDER_FILE_SUBVERSION 76 +#define BLENDER_FILE_SUBVERSION 77 /* Minimum Blender version that supports reading file written with the current * version. Older Blender versions will test this and cancel loading the file, showing a warning to