diff --git a/source/blender/gpu/metal/mtl_shader_generator.hh b/source/blender/gpu/metal/mtl_shader_generator.hh index dc2a37a1fb6..930bc8a30c0 100644 --- a/source/blender/gpu/metal/mtl_shader_generator.hh +++ b/source/blender/gpu/metal/mtl_shader_generator.hh @@ -529,6 +529,7 @@ inline bool is_builtin_type(std::string type) {"uchar4", MTL_DATATYPE_UCHAR4}, {"vec3_1010102_Unorm", MTL_DATATYPE_UINT1010102_NORM}, {"vec3_1010102_Inorm", MTL_DATATYPE_INT1010102_NORM}, + {"packed_float3", MTL_DATATYPE_PACKED_FLOAT3}, }; return (glsl_builtin_types.find(type) != glsl_builtin_types.end()); } diff --git a/source/blender/gpu/metal/mtl_shader_interface_type.hh b/source/blender/gpu/metal/mtl_shader_interface_type.hh index da51e047d0f..501dd8acfae 100644 --- a/source/blender/gpu/metal/mtl_shader_interface_type.hh +++ b/source/blender/gpu/metal/mtl_shader_interface_type.hh @@ -50,6 +50,7 @@ enum eMTLDataType { MTL_DATATYPE_FLOAT2, MTL_DATATYPE_FLOAT3, MTL_DATATYPE_FLOAT4, + MTL_DATATYPE_PACKED_FLOAT3, MTL_DATATYPE_LONG, MTL_DATATYPE_LONG2, @@ -128,6 +129,7 @@ inline uint mtl_get_data_type_size(eMTLDataType type) return 8; case MTL_DATATYPE_HALF3x2: + case MTL_DATATYPE_PACKED_FLOAT3: return 12; case MTL_DATATYPE_INT3: @@ -229,6 +231,7 @@ inline uint mtl_get_data_type_alignment(eMTLDataType type) case MTL_DATATYPE_UINT3: case MTL_DATATYPE_UINT4: case MTL_DATATYPE_FLOAT3: + case MTL_DATATYPE_PACKED_FLOAT3: case MTL_DATATYPE_FLOAT4: case MTL_DATATYPE_LONG2: case MTL_DATATYPE_ULONG2: