forked from bartvdbraak/blender
Fix T46352: Cycles fails to render when material contains UV mapped texture as volume input
This commit is contained in:
parent
518d68fae0
commit
91f1886b8e
@ -22,6 +22,8 @@ ccl_device void svm_node_attr_init(KernelGlobals *kg, ShaderData *sd,
|
|||||||
uint4 node, NodeAttributeType *type,
|
uint4 node, NodeAttributeType *type,
|
||||||
NodeAttributeType *mesh_type, AttributeElement *elem, int *offset, uint *out_offset)
|
NodeAttributeType *mesh_type, AttributeElement *elem, int *offset, uint *out_offset)
|
||||||
{
|
{
|
||||||
|
*out_offset = node.z;
|
||||||
|
*type = (NodeAttributeType)node.w;
|
||||||
if(ccl_fetch(sd, object) != OBJECT_NONE) {
|
if(ccl_fetch(sd, object) != OBJECT_NONE) {
|
||||||
/* find attribute by unique id */
|
/* find attribute by unique id */
|
||||||
uint id = node.y;
|
uint id = node.y;
|
||||||
@ -32,6 +34,12 @@ ccl_device void svm_node_attr_init(KernelGlobals *kg, ShaderData *sd,
|
|||||||
uint4 attr_map = kernel_tex_fetch(__attributes_map, attr_offset);
|
uint4 attr_map = kernel_tex_fetch(__attributes_map, attr_offset);
|
||||||
|
|
||||||
while(attr_map.x != id) {
|
while(attr_map.x != id) {
|
||||||
|
if(UNLIKELY(attr_map.x == ATTR_STD_NONE)) {
|
||||||
|
*elem = ATTR_ELEMENT_NONE;
|
||||||
|
*offset = 0;
|
||||||
|
*mesh_type = (NodeAttributeType)node.w;
|
||||||
|
return;
|
||||||
|
}
|
||||||
attr_offset += ATTR_PRIM_TYPES;
|
attr_offset += ATTR_PRIM_TYPES;
|
||||||
attr_map = kernel_tex_fetch(__attributes_map, attr_offset);
|
attr_map = kernel_tex_fetch(__attributes_map, attr_offset);
|
||||||
}
|
}
|
||||||
@ -47,9 +55,6 @@ ccl_device void svm_node_attr_init(KernelGlobals *kg, ShaderData *sd,
|
|||||||
*offset = 0;
|
*offset = 0;
|
||||||
*mesh_type = (NodeAttributeType)node.w;
|
*mesh_type = (NodeAttributeType)node.w;
|
||||||
}
|
}
|
||||||
|
|
||||||
*out_offset = node.z;
|
|
||||||
*type = (NodeAttributeType)node.w;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ccl_device void svm_node_attr(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node)
|
ccl_device void svm_node_attr(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node)
|
||||||
|
Loading…
Reference in New Issue
Block a user