diff options
-rw-r--r-- | intern/cycles/kernel/kernel_compat_cuda.h | 1 | ||||
-rw-r--r-- | intern/cycles/kernel/kernel_compat_opencl.h | 1 | ||||
-rw-r--r-- | intern/cycles/kernel/kernel_compat_optix.h | 1 | ||||
-rw-r--r-- | intern/cycles/kernel/svm/svm_voronoi.h | 21 | ||||
-rw-r--r-- | intern/cycles/util/util_defines.h | 1 | ||||
-rw-r--r-- | intern/mantaflow/intern/strings/smoke_script.h | 3 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/properties_physics_fluid.py | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/fluid.c | 2 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_fluid_types.h | 3 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_fluid.c | 5 |
10 files changed, 22 insertions, 17 deletions
diff --git a/intern/cycles/kernel/kernel_compat_cuda.h b/intern/cycles/kernel/kernel_compat_cuda.h index 3c5a10540d5..4094e173da9 100644 --- a/intern/cycles/kernel/kernel_compat_cuda.h +++ b/intern/cycles/kernel/kernel_compat_cuda.h @@ -71,6 +71,7 @@ __device__ half __float2half(const float f) #define ccl_may_alias #define ccl_addr_space #define ccl_restrict __restrict__ +#define ccl_loop_no_unroll /* TODO(sergey): In theory we might use references with CUDA, however * performance impact yet to be investigated. */ diff --git a/intern/cycles/kernel/kernel_compat_opencl.h b/intern/cycles/kernel/kernel_compat_opencl.h index 4963f1cd196..35dc95ca10d 100644 --- a/intern/cycles/kernel/kernel_compat_opencl.h +++ b/intern/cycles/kernel/kernel_compat_opencl.h @@ -43,6 +43,7 @@ #define ccl_local __local #define ccl_local_param __local #define ccl_private __private +#define ccl_loop_no_unroll __attribute__((opencl_unroll_hint(1))) #define ccl_restrict restrict #define ccl_ref #define ccl_align(n) __attribute__((aligned(n))) diff --git a/intern/cycles/kernel/kernel_compat_optix.h b/intern/cycles/kernel/kernel_compat_optix.h index 7068acc3a32..970f5cf864c 100644 --- a/intern/cycles/kernel/kernel_compat_optix.h +++ b/intern/cycles/kernel/kernel_compat_optix.h @@ -70,6 +70,7 @@ __device__ half __float2half(const float f) #define ccl_private #define ccl_may_alias #define ccl_addr_space +#define ccl_loop_no_unroll #define ccl_restrict __restrict__ #define ccl_ref #define ccl_align(n) __align__(n) diff --git a/intern/cycles/kernel/svm/svm_voronoi.h b/intern/cycles/kernel/svm/svm_voronoi.h index 2ad22592eef..f0fc0068fa2 100644 --- a/intern/cycles/kernel/svm/svm_voronoi.h +++ b/intern/cycles/kernel/svm/svm_voronoi.h @@ -684,7 +684,8 @@ ccl_device void voronoi_f1_4d(float4 coord, float4 targetPosition = make_float4(0.0f, 0.0f, 0.0f, 0.0f); for (int u = -1; u <= 1; u++) { for (int k = -1; k <= 1; k++) { - for (int j = -1; j <= 1; j++) { + ccl_loop_no_unroll for (int j = -1; j <= 1; j++) + { for (int i = -1; i <= 1; i++) { float4 cellOffset = make_float4(i, j, k, u); float4 pointPosition = cellOffset + @@ -722,7 +723,8 @@ ccl_device void voronoi_smooth_f1_4d(float4 coord, float4 smoothPosition = make_float4(0.0f, 0.0f, 0.0f, 0.0f); for (int u = -2; u <= 2; u++) { for (int k = -2; k <= 2; k++) { - for (int j = -2; j <= 2; j++) { + ccl_loop_no_unroll for (int j = -2; j <= 2; j++) + { for (int i = -2; i <= 2; i++) { float4 cellOffset = make_float4(i, j, k, u); float4 pointPosition = cellOffset + @@ -765,7 +767,8 @@ ccl_device void voronoi_f2_4d(float4 coord, float4 positionF2 = make_float4(0.0f, 0.0f, 0.0f, 0.0f); for (int u = -1; u <= 1; u++) { for (int k = -1; k <= 1; k++) { - for (int j = -1; j <= 1; j++) { + ccl_loop_no_unroll for (int j = -1; j <= 1; j++) + { for (int i = -1; i <= 1; i++) { float4 cellOffset = make_float4(i, j, k, u); float4 pointPosition = cellOffset + @@ -803,7 +806,8 @@ ccl_device void voronoi_distance_to_edge_4d(float4 coord, float randomness, floa float minDistance = 8.0f; for (int u = -1; u <= 1; u++) { for (int k = -1; k <= 1; k++) { - for (int j = -1; j <= 1; j++) { + ccl_loop_no_unroll for (int j = -1; j <= 1; j++) + { for (int i = -1; i <= 1; i++) { float4 cellOffset = make_float4(i, j, k, u); float4 vectorToPoint = cellOffset + @@ -822,7 +826,8 @@ ccl_device void voronoi_distance_to_edge_4d(float4 coord, float randomness, floa minDistance = 8.0f; for (int u = -1; u <= 1; u++) { for (int k = -1; k <= 1; k++) { - for (int j = -1; j <= 1; j++) { + ccl_loop_no_unroll for (int j = -1; j <= 1; j++) + { for (int i = -1; i <= 1; i++) { float4 cellOffset = make_float4(i, j, k, u); float4 vectorToPoint = cellOffset + @@ -851,7 +856,8 @@ ccl_device void voronoi_n_sphere_radius_4d(float4 coord, float randomness, float float minDistance = 8.0f; for (int u = -1; u <= 1; u++) { for (int k = -1; k <= 1; k++) { - for (int j = -1; j <= 1; j++) { + ccl_loop_no_unroll for (int j = -1; j <= 1; j++) + { for (int i = -1; i <= 1; i++) { float4 cellOffset = make_float4(i, j, k, u); float4 pointPosition = cellOffset + @@ -871,7 +877,8 @@ ccl_device void voronoi_n_sphere_radius_4d(float4 coord, float randomness, float float4 closestPointToClosestPoint = make_float4(0.0f, 0.0f, 0.0f, 0.0f); for (int u = -1; u <= 1; u++) { for (int k = -1; k <= 1; k++) { - for (int j = -1; j <= 1; j++) { + ccl_loop_no_unroll for (int j = -1; j <= 1; j++) + { for (int i = -1; i <= 1; i++) { if (i == 0 && j == 0 && k == 0 && u == 0) { continue; diff --git a/intern/cycles/util/util_defines.h b/intern/cycles/util/util_defines.h index 24a20a969ab..e8e414587fb 100644 --- a/intern/cycles/util/util_defines.h +++ b/intern/cycles/util/util_defines.h @@ -45,6 +45,7 @@ # define ccl_restrict __restrict # define ccl_ref & # define ccl_optional_struct_init +# define ccl_loop_no_unroll # define __KERNEL_WITH_SSE_ALIGN__ # if defined(_WIN32) && !defined(FREE_WINDOWS) diff --git a/intern/mantaflow/intern/strings/smoke_script.h b/intern/mantaflow/intern/strings/smoke_script.h index 146106fd147..fdb58543cec 100644 --- a/intern/mantaflow/intern/strings/smoke_script.h +++ b/intern/mantaflow/intern/strings/smoke_script.h @@ -302,6 +302,9 @@ def smoke_adaptive_step_$ID$(framenr):\n\ setObstacleFlags(flags=flags_s$ID$, phiObs=phiObs_s$ID$, phiOut=phiOut_s$ID$, phiIn=phiIn_s$ID$, boundaryWidth=1)\n\ flags_s$ID$.fillGrid()\n\ \n\ + # reset emission accumulation at the beginning of an adaptive frame\n\ + if not s$ID$.timePerFrame:\n\ + emission_s$ID$.setConst(0.)\n\ # accumulate emission value per adaptive step for later use in noise computation\n\ emission_s$ID$.join(emissionIn_s$ID$)\n\ \n\ diff --git a/release/scripts/startup/bl_ui/properties_physics_fluid.py b/release/scripts/startup/bl_ui/properties_physics_fluid.py index d6d2526384a..de526506f68 100644 --- a/release/scripts/startup/bl_ui/properties_physics_fluid.py +++ b/release/scripts/startup/bl_ui/properties_physics_fluid.py @@ -1002,7 +1002,6 @@ class PHYSICS_PT_diffusion(PhysicButtonsPanel, Panel): col.prop(domain, "viscosity_exponent", text="Exponent", slider=True) col = flow.column() - col.prop(domain, "domain_size", text="Real World Size") col.prop(domain, "surface_tension", text="Surface Tension") diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c index d4f54daa773..96efac8f2c5 100644 --- a/source/blender/blenkernel/intern/fluid.c +++ b/source/blender/blenkernel/intern/fluid.c @@ -4889,7 +4889,6 @@ void BKE_fluid_modifier_create_type_data(struct FluidModifierData *mmd) mmd->domain->surface_tension = 0.0f; mmd->domain->viscosity_base = 1.0f; mmd->domain->viscosity_exponent = 6.0f; - mmd->domain->domain_size = 0.5f; /* mesh options */ mmd->domain->mesh_velocities = NULL; @@ -5133,7 +5132,6 @@ void BKE_fluid_modifier_copy(const struct FluidModifierData *mmd, tmds->surface_tension = mds->surface_tension; tmds->viscosity_base = mds->viscosity_base; tmds->viscosity_exponent = mds->viscosity_exponent; - tmds->domain_size = mds->domain_size; /* mesh options */ if (mds->mesh_velocities) { diff --git a/source/blender/makesdna/DNA_fluid_types.h b/source/blender/makesdna/DNA_fluid_types.h index 166b3c22932..6583aa2eeee 100644 --- a/source/blender/makesdna/DNA_fluid_types.h +++ b/source/blender/makesdna/DNA_fluid_types.h @@ -393,7 +393,6 @@ typedef struct FluidDomainSettings { float surface_tension; float viscosity_base; int viscosity_exponent; - float domain_size; /* Mesh options. */ float mesh_concave_upper; @@ -404,7 +403,7 @@ typedef struct FluidDomainSettings { int mesh_scale; int totvert; short mesh_generator; - char _pad5[2]; /* Unused. */ + char _pad5[6]; /* Unused. */ /* Secondary particle options. */ int particle_type; diff --git a/source/blender/makesrna/intern/rna_fluid.c b/source/blender/makesrna/intern/rna_fluid.c index d89bdcd074f..0a6554a1cea 100644 --- a/source/blender/makesrna/intern/rna_fluid.c +++ b/source/blender/makesrna/intern/rna_fluid.c @@ -1687,11 +1687,6 @@ static void rna_def_fluid_domain_settings(BlenderRNA *brna) "e.g. 5*10^-6)"); RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Fluid_datacache_reset"); - prop = RNA_def_property(srna, "domain_size", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, 0.001, 10000.0); - RNA_def_property_ui_text(prop, "Meters", "Domain size in meters (longest domain side)"); - RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Fluid_domain_reset"); - /* mesh options options */ prop = RNA_def_property(srna, "mesh_concave_upper", PROP_FLOAT, PROP_NONE); |