diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-06-21 15:33:06 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-06-21 15:46:50 +0300 |
commit | 83a4f5600d7b9fe3352d2f66898ea3f4a0c86738 (patch) | |
tree | 07c5622c235b37cbeb114bbd851e5df1b3a4b855 /intern/cycles | |
parent | d6b542b85470e97fb268ce51ef5e53a70f54cae9 (diff) |
Fix T65957: Cycles crash with OSL and UV maps
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/kernel/osl/osl_services.cpp | 2 | ||||
-rw-r--r-- | intern/cycles/render/mesh.cpp | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp index 08821ffa099..9196caad1b3 100644 --- a/intern/cycles/kernel/osl/osl_services.cpp +++ b/intern/cycles/kernel/osl/osl_services.cpp @@ -617,7 +617,7 @@ static bool get_primitive_attribute(KernelGlobals *kg, return set_attribute_float3(fval, type, derivatives, val); } else if (attr.type == TypeFloat2) { - float2 fval[2]; + float2 fval[3]; fval[0] = primitive_attribute_float2( kg, sd, attr.desc, (derivatives) ? &fval[1] : NULL, (derivatives) ? &fval[2] : NULL); return set_attribute_float2(fval, type, derivatives, val); diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index f1622493455..78b9ec03273 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -1222,6 +1222,8 @@ void MeshManager::update_osl_attributes(Device *device, osl_attr.type = TypeDesc::TypeFloat; else if (req.curve_type == TypeDesc::TypeMatrix) osl_attr.type = TypeDesc::TypeMatrix; + else if (req.curve_type == TypeFloat2) + osl_attr.type = TypeFloat2; else osl_attr.type = TypeDesc::TypeColor; @@ -1243,6 +1245,8 @@ void MeshManager::update_osl_attributes(Device *device, osl_attr.type = TypeDesc::TypeFloat; else if (req.subd_type == TypeDesc::TypeMatrix) osl_attr.type = TypeDesc::TypeMatrix; + else if (req.subd_type == TypeFloat2) + osl_attr.type = TypeFloat2; else osl_attr.type = TypeDesc::TypeColor; |