Fix T57138: Cycles CMJ failing with viewport samples set to 0.

Can't use INT_MAX, CMJ runs into precision/overflow issues before that.
This commit is contained in:
Brecht Van Lommel 2019-03-14 17:29:18 +01:00
parent 47da8dcbca
commit 7b38ad7286
Notes: blender-bot 2023-02-14 05:13:00 +01:00
Referenced by issue #57138, Correlated Multi-jitter viewport rendering inconsistencies
4 changed files with 10 additions and 3 deletions

View File

@ -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(

View File

@ -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) {

View File

@ -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;

View File

@ -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;