Cycles: Avoid float/int conversion in few places

This commit is contained in:
Sergey Sharybin 2015-03-31 19:51:55 +05:00
parent 7da4c2637d
commit 79918e0577
3 changed files with 3 additions and 3 deletions

View File

@ -243,7 +243,7 @@ ccl_device_inline float object_random_number(KernelGlobals *kg, int object)
ccl_device_inline int object_particle_id(KernelGlobals *kg, int object)
{
if(object == OBJECT_NONE)
return 0.0f;
return 0;
int offset = object*OBJECT_SIZE + OBJECT_PROPERTIES;
float4 f = kernel_tex_fetch(__objects, offset);

View File

@ -87,7 +87,7 @@ ccl_device_inline int stack_load_int(float *stack, uint a)
return __float_as_int(stack[a]);
}
ccl_device_inline float stack_load_int_default(float *stack, uint a, uint value)
ccl_device_inline int stack_load_int_default(float *stack, uint a, uint value)
{
return (a == (uint)SVM_STACK_INVALID)? (int)value: stack_load_int(stack, a);
}

View File

@ -34,7 +34,7 @@ ccl_device void svm_node_light_path(ShaderData *sd, float *stack, uint type, uin
case NODE_LP_backfacing: info = (sd->flag & SD_BACKFACING)? 1.0f: 0.0f; break;
case NODE_LP_ray_length: info = sd->ray_length; break;
case NODE_LP_ray_depth: info = (float)sd->ray_depth; break;
case NODE_LP_ray_transparent: info = sd->transparent_depth; break;
case NODE_LP_ray_transparent: info = (float)sd->transparent_depth; break;
}
stack_store_float(stack, out_offset, info);