Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/svm/svm_mix.h
| Show All 12 Lines | |||||
| * See the License for the specific language governing permissions and | * See the License for the specific language governing permissions and | ||||
| * limitations under the License. | * limitations under the License. | ||||
| */ | */ | ||||
| CCL_NAMESPACE_BEGIN | CCL_NAMESPACE_BEGIN | ||||
| /* Node */ | /* Node */ | ||||
| ccl_device void svm_node_mix(KernelGlobals *kg, | ccl_device_noinline int svm_node_mix(const KernelGlobals *kg, | ||||
| ShaderData *sd, | ShaderData *sd, | ||||
| float *stack, | float *stack, | ||||
| uint fac_offset, | uint fac_offset, | ||||
| uint c1_offset, | uint c1_offset, | ||||
| uint c2_offset, | uint c2_offset, | ||||
| int *offset) | int offset) | ||||
| { | { | ||||
| /* read extra data */ | /* read extra data */ | ||||
| uint4 node1 = read_node(kg, offset); | uint4 node1 = read_node(kg, &offset); | ||||
| float fac = stack_load_float(stack, fac_offset); | float fac = stack_load_float(stack, fac_offset); | ||||
| float3 c1 = stack_load_float3(stack, c1_offset); | float3 c1 = stack_load_float3(stack, c1_offset); | ||||
| float3 c2 = stack_load_float3(stack, c2_offset); | float3 c2 = stack_load_float3(stack, c2_offset); | ||||
| float3 result = svm_mix((NodeMix)node1.y, fac, c1, c2); | float3 result = svm_mix((NodeMix)node1.y, fac, c1, c2); | ||||
| stack_store_float3(stack, node1.z, result); | stack_store_float3(stack, node1.z, result); | ||||
| return offset; | |||||
| } | } | ||||
| CCL_NAMESPACE_END | CCL_NAMESPACE_END | ||||