[Bf-blender-cvs] [7b38ad72869] blender2.7: Fix T57138: Cycles CMJ failing with viewport samples set to 0.
Brecht Van Lommel
noreply at git.blender.org
Thu Mar 14 18:59:39 CET 2019
Commit: 7b38ad7286937d66d45a0c2c4c2d355bfa588e5f
Author: Brecht Van Lommel
Date: Thu Mar 14 17:29:18 2019 +0100
Branches: blender2.7
https://developer.blender.org/rB7b38ad7286937d66d45a0c2c4c2d355bfa588e5f
Fix T57138: Cycles CMJ failing with viewport samples set to 0.
Can't use INT_MAX, CMJ runs into precision/overflow issues before that.
===================================================================
M intern/cycles/blender/addon/properties.py
M intern/cycles/blender/blender_sync.cpp
M intern/cycles/render/integrator.h
M intern/cycles/render/session.h
===================================================================
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index 04b0cf75e82..950a0b5f08f 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -194,13 +194,13 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
cls.samples = IntProperty(
name="Samples",
description="Number of samples to render for each pixel",
- min=1, max=2147483647,
+ min=1, max=(1 << 24),
default=128,
)
cls.preview_samples = IntProperty(
name="Preview Samples",
description="Number of samples to render in the viewport, unlimited if 0",
- min=0, max=2147483647,
+ min=0, max=(1 << 24),
default=32,
)
cls.preview_pause = BoolProperty(
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 05979fa4f57..a1202cbbad4 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -794,6 +794,9 @@ SessionParams BlenderSync::get_session_params(BL::RenderEngine& b_engine,
}
}
+ /* Clamp samples. */
+ params.samples = min(params.samples, Integrator::MAX_SAMPLES);
+
/* tiles */
const bool is_cpu = (params.device.type == DEVICE_CPU);
if(!is_cpu && !background) {
diff --git a/intern/cycles/render/integrator.h b/intern/cycles/render/integrator.h
index 6a7e2056851..da4e61d8153 100644
--- a/intern/cycles/render/integrator.h
+++ b/intern/cycles/render/integrator.h
@@ -55,6 +55,10 @@ public:
float sample_clamp_indirect;
bool motion_blur;
+ /* Maximum number of samples, beyond which we are likely to run into
+ * precision issues for sampling patterns. */
+ static const int MAX_SAMPLES = (1 << 24);
+
int aa_samples;
int diffuse_samples;
int glossy_samples;
diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h
index e3cccbb9fcf..cbdfc75a905 100644
--- a/intern/cycles/render/session.h
+++ b/intern/cycles/render/session.h
@@ -84,7 +84,7 @@ public:
progressive = false;
experimental = false;
- samples = INT_MAX;
+ samples = 1024;
tile_size = make_int2(64, 64);
start_resolution = INT_MAX;
pixel_size = 1;
More information about the Bf-blender-cvs
mailing list