From 29ec0b1162667124e0cd2610f087dcdb2296848d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 11 Jul 2017 22:39:51 +0200 Subject: [PATCH 1/3] Fix T52027: OSL getattribute() crash, when optimizer calls it before rendering. --- intern/cycles/kernel/osl/osl_services.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp index b767c60c617..1535496c73d 100644 --- a/intern/cycles/kernel/osl/osl_services.cpp +++ b/intern/cycles/kernel/osl/osl_services.cpp @@ -824,7 +824,7 @@ bool OSLRenderServices::get_background_attribute(KernelGlobals *kg, ShaderData * bool OSLRenderServices::get_attribute(OSL::ShaderGlobals *sg, bool derivatives, ustring object_name, TypeDesc type, ustring name, void *val) { - if(sg->renderstate == NULL) + if(sg == NULL || sg->renderstate == NULL) return false; ShaderData *sd = (ShaderData *)(sg->renderstate); From 1f933c94a76e546de3d8fe43d74977b2fd15ff14 Mon Sep 17 00:00:00 2001 From: Mai Lavelle Date: Tue, 11 Jul 2017 23:41:22 -0400 Subject: [PATCH 2/3] Cycles: Fix comparison in principled BSDF Could have lead to black pixels. --- intern/cycles/kernel/svm/svm_closure.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h index 9578fcf2687..7704aa545c8 100644 --- a/intern/cycles/kernel/svm/svm_closure.h +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -159,7 +159,7 @@ ccl_device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float * /* diffuse */ if(fabsf(average(mixed_ss_base_color)) > CLOSURE_WEIGHT_CUTOFF) { - if(subsurface < CLOSURE_WEIGHT_CUTOFF && diffuse_weight > CLOSURE_WEIGHT_CUTOFF) { + if(subsurface <= CLOSURE_WEIGHT_CUTOFF && diffuse_weight > CLOSURE_WEIGHT_CUTOFF) { float3 diff_weight = weight * base_color * diffuse_weight; PrincipledDiffuseBsdf *bsdf = (PrincipledDiffuseBsdf*)bsdf_alloc(sd, sizeof(PrincipledDiffuseBsdf), diff_weight); From 8603424d0ae46873a04f01288f2adbb14152383e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 12 Jul 2017 13:54:20 +1000 Subject: [PATCH 3/3] Cleanup: unused vars --- .../editors/transform/transform_snap_object.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/source/blender/editors/transform/transform_snap_object.c b/source/blender/editors/transform/transform_snap_object.c index 8f10098c4c2..fa17ab34cf9 100644 --- a/source/blender/editors/transform/transform_snap_object.c +++ b/source/blender/editors/transform/transform_snap_object.c @@ -262,8 +262,7 @@ MINLINE float depth_get(const float co[3], const float ray_start[3], const float return dot_v3v3(dvec, ray_dir); } - -static float dist_aabb_to_plane( +static float UNUSED_FUNCTION(dist_aabb_to_plane)( const float bbmin[3], const float bbmax[3], const float plane_co[3], const float plane_no[3]) { @@ -1654,7 +1653,7 @@ static bool snapDerivedMesh( /* read/write args */ float *ray_depth, float *dist_px, /* return args */ - float r_loc[3], float r_no[3], int *r_index) + float r_loc[3], float r_no[3]) { bool retval = false; @@ -1819,7 +1818,7 @@ static bool snapEditMesh( /* read/write args */ float *ray_depth, float *dist_px, /* return args */ - float r_loc[3], float r_no[3], int *r_index) + float r_loc[3], float r_no[3]) { bool retval = false; @@ -1978,7 +1977,7 @@ static bool snapObject( /* read/write args */ float *ray_depth, float *dist_px, /* return args */ - float r_loc[3], float r_no[3], int *r_index, + float r_loc[3], float r_no[3], Object **r_ob, float r_obmat[4][4]) { bool retval = false; @@ -1991,7 +1990,7 @@ static bool snapObject( retval = snapEditMesh( sctx, snapdata, ob, em, obmat, ray_depth, dist_px, - r_loc, r_no, r_index); + r_loc, r_no); } else { /* in this case we want the mesh from the editmesh, avoids stale data. see: T45978. @@ -2007,7 +2006,7 @@ static bool snapObject( retval = snapDerivedMesh( sctx, snapdata, ob, dm, obmat, ray_depth, dist_px, - r_loc, r_no, r_index); + r_loc, r_no); dm->release(dm); } @@ -2087,7 +2086,7 @@ static bool snapObjectsRay( /* read/write args */ float *ray_depth, float *dist_px, /* return args */ - float r_loc[3], float r_no[3], int *r_index, + float r_loc[3], float r_no[3], Object **r_ob, float r_obmat[4][4]) { bool retval = false; @@ -2099,7 +2098,7 @@ static bool snapObjectsRay( retval |= snapObject( sctx, snapdata, sobj->ob, sobj->obmat, sobj->use_obedit, ray_depth, dist_px, - r_loc, r_no, r_index, r_ob, r_obmat); + r_loc, r_no, r_ob, r_obmat); } BLI_freelistN(&obj_list); @@ -2434,7 +2433,7 @@ bool ED_transform_snap_object_project_view3d_ex( return snapObjectsRay( sctx, &snapdata, params->snap_select, params->use_object_edit_cage, - ray_depth, dist_px, r_loc, r_no, r_index, NULL, NULL); + ray_depth, dist_px, r_loc, r_no, NULL, NULL); } }