diff options
-rw-r--r-- | intern/cycles/device/opencl/opencl.h | 2 | ||||
-rw-r--r-- | intern/cycles/kernel/kernel_path.h | 4 | ||||
-rw-r--r-- | intern/cycles/kernel/kernel_path_branched.h | 2 | ||||
-rw-r--r-- | intern/cycles/kernel/kernel_path_state.h | 2 | ||||
-rw-r--r-- | intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h | 8 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw_legacy.c | 2 | ||||
-rw-r--r-- | source/blender/gpu/GPU_lamp.h | 2 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_lamp.c | 6 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_material.c | 4 |
9 files changed, 17 insertions, 15 deletions
diff --git a/intern/cycles/device/opencl/opencl.h b/intern/cycles/device/opencl/opencl.h index 71483ca9159..26bf4a9af5b 100644 --- a/intern/cycles/device/opencl/opencl.h +++ b/intern/cycles/device/opencl/opencl.h @@ -543,7 +543,7 @@ protected: private: MemoryManager memory_manager; - friend MemoryManager; + friend class MemoryManager; struct tex_info_t { uint buffer, padding; diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index 92b31d46697..2a801597649 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -356,7 +356,7 @@ ccl_device void kernel_path_indirect(KernelGlobals *kg, * mainly due to the mixed in MIS that we use. gives too many unneeded * shader evaluations, only need emission if we are going to terminate */ float probability = - path_state_terminate_probability(kg, + path_state_continuation_probability(kg, state, throughput*num_samples); @@ -717,7 +717,7 @@ ccl_device_inline float kernel_path_integrate(KernelGlobals *kg, /* path termination. this is a strange place to put the termination, it's * mainly due to the mixed in MIS that we use. gives too many unneeded * shader evaluations, only need emission if we are going to terminate */ - float probability = path_state_terminate_probability(kg, &state, throughput); + float probability = path_state_continuation_probability(kg, &state, throughput); if(probability == 0.0f) { break; diff --git a/intern/cycles/kernel/kernel_path_branched.h b/intern/cycles/kernel/kernel_path_branched.h index cea677fd701..17facfa9a78 100644 --- a/intern/cycles/kernel/kernel_path_branched.h +++ b/intern/cycles/kernel/kernel_path_branched.h @@ -558,7 +558,7 @@ ccl_device float kernel_branched_path_integrate(KernelGlobals *kg, /* path termination. this is a strange place to put the termination, it's * mainly due to the mixed in MIS that we use. gives too many unneeded * shader evaluations, only need emission if we are going to terminate */ - float probability = path_state_terminate_probability(kg, &state, throughput); + float probability = path_state_continuation_probability(kg, &state, throughput); if(probability == 0.0f) { break; diff --git a/intern/cycles/kernel/kernel_path_state.h b/intern/cycles/kernel/kernel_path_state.h index 0102de183f3..28582de979d 100644 --- a/intern/cycles/kernel/kernel_path_state.h +++ b/intern/cycles/kernel/kernel_path_state.h @@ -156,7 +156,7 @@ ccl_device_inline uint path_state_ray_visibility(KernelGlobals *kg, PathState *s return flag; } -ccl_device_inline float path_state_terminate_probability(KernelGlobals *kg, ccl_addr_space PathState *state, const float3 throughput) +ccl_device_inline float path_state_continuation_probability(KernelGlobals *kg, ccl_addr_space PathState *state, const float3 throughput) { if(state->flag & PATH_RAY_TRANSPARENT) { /* Transparent rays are treated separately with own max bounces. */ diff --git a/intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h b/intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h index fe761305bfb..adcb1bdc377 100644 --- a/intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h +++ b/intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h @@ -224,19 +224,19 @@ ccl_device void kernel_holdout_emission_blurring_pathtermination_ao( * shader evaluations, only need emission if we are going to terminate. */ #ifndef __BRANCHED_PATH__ - float probability = path_state_terminate_probability(kg, state, throughput); + float probability = path_state_continuation_probability(kg, state, throughput); #else float probability = 1.0f; if(!kernel_data.integrator.branched) { - probability = path_state_terminate_probability(kg, state, throughput); + probability = path_state_continuation_probability(kg, state, throughput); } else if(IS_FLAG(ray_state, ray_index, RAY_BRANCHED_INDIRECT)) { int num_samples = kernel_split_state.branched_state[ray_index].num_samples; - probability = path_state_terminate_probability(kg, state, throughput*num_samples); + probability = path_state_continuation_probability(kg, state, throughput*num_samples); } else if(state->flag & PATH_RAY_TRANSPARENT) { - probability = path_state_terminate_probability(kg, state, throughput); + probability = path_state_continuation_probability(kg, state, throughput); } #endif diff --git a/source/blender/editors/space_view3d/view3d_draw_legacy.c b/source/blender/editors/space_view3d/view3d_draw_legacy.c index 5c923d3c91b..fe388ef8cdd 100644 --- a/source/blender/editors/space_view3d/view3d_draw_legacy.c +++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c @@ -1358,7 +1358,7 @@ static void gpu_render_lamp_update(Scene *scene, View3D *v3d, if (layers && GPU_lamp_has_shadow_buffer(lamp) && /* keep last, may do string lookup */ - GPU_lamp_override_visible(lamp, srl, NULL)) + GPU_lamp_visible(lamp, srl, NULL)) { View3DShadow *shadow = MEM_callocN(sizeof(View3DShadow), "View3DShadow"); shadow->lamp = lamp; diff --git a/source/blender/gpu/GPU_lamp.h b/source/blender/gpu/GPU_lamp.h index e08fbede80a..f6fd817cc3f 100644 --- a/source/blender/gpu/GPU_lamp.h +++ b/source/blender/gpu/GPU_lamp.h @@ -54,7 +54,7 @@ GPULamp *GPU_lamp_from_blender(struct Scene *scene, struct Object *ob, struct Ob void GPU_lamp_free(struct Object *ob); void GPU_lamp_engine_data_free(LampEngineData *led); -bool GPU_lamp_override_visible(GPULamp *lamp, struct SceneRenderLayer *srl, struct Material *ma); +bool GPU_lamp_visible(GPULamp *lamp, struct SceneRenderLayer *srl, struct Material *ma); bool GPU_lamp_has_shadow_buffer(GPULamp *lamp); void GPU_lamp_update_buffer_mats(GPULamp *lamp); void GPU_lamp_shadow_buffer_bind(GPULamp *lamp, float viewmat[4][4], int *winsize, float winmat[4][4]); diff --git a/source/blender/gpu/intern/gpu_lamp.c b/source/blender/gpu/intern/gpu_lamp.c index 8bf343568b1..23bfb1dfb6b 100644 --- a/source/blender/gpu/intern/gpu_lamp.c +++ b/source/blender/gpu/intern/gpu_lamp.c @@ -52,9 +52,11 @@ #include "gpu_lamp_private.h" -bool GPU_lamp_override_visible(GPULamp *lamp, SceneRenderLayer *srl, Material *ma) +bool GPU_lamp_visible(GPULamp *lamp, SceneRenderLayer *srl, Material *ma) { - if (srl && srl->light_override) + if (lamp->hide) + return false; + else if (srl && srl->light_override) return BKE_group_object_exists(srl->light_override, lamp->ob); else if (ma && ma->group) return BKE_group_object_exists(ma->group, lamp->ob); diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index f62c599a9b6..a08bef4472a 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -280,8 +280,8 @@ void GPU_material_bind( for (LinkData *nlink = material->lamps.first; nlink; nlink = nlink->next) { GPULamp *lamp = nlink->data; - if (!lamp->hide && (lamp->lay & viewlay) && (!(lamp->mode & LA_LAYER) || (lamp->lay & oblay)) && - GPU_lamp_override_visible(lamp, srl, material->ma)) + if ((lamp->lay & viewlay) && (!(lamp->mode & LA_LAYER) || (lamp->lay & oblay)) && + GPU_lamp_visible(lamp, srl, material->ma)) { lamp->dynenergy = lamp->energy; copy_v3_v3(lamp->dyncol, lamp->col); |