Blender V5.0
mtl_shader_interface_type.hh File Reference
#include "BLI_assert.h"
#include "GPU_material.hh"

Go to the source code of this file.

Enumerations

enum  MTLInterfaceDataType {
  MTL_DATATYPE_CHAR , MTL_DATATYPE_CHAR2 , MTL_DATATYPE_CHAR3 , MTL_DATATYPE_CHAR4 ,
  MTL_DATATYPE_UCHAR , MTL_DATATYPE_UCHAR2 , MTL_DATATYPE_UCHAR3 , MTL_DATATYPE_UCHAR4 ,
  MTL_DATATYPE_BOOL , MTL_DATATYPE_BOOL2 , MTL_DATATYPE_BOOL3 , MTL_DATATYPE_BOOL4 ,
  MTL_DATATYPE_SHORT , MTL_DATATYPE_SHORT2 , MTL_DATATYPE_SHORT3 , MTL_DATATYPE_SHORT4 ,
  MTL_DATATYPE_USHORT , MTL_DATATYPE_USHORT2 , MTL_DATATYPE_USHORT3 , MTL_DATATYPE_USHORT4 ,
  MTL_DATATYPE_INT , MTL_DATATYPE_INT2 , MTL_DATATYPE_INT3 , MTL_DATATYPE_INT4 ,
  MTL_DATATYPE_UINT , MTL_DATATYPE_UINT2 , MTL_DATATYPE_UINT3 , MTL_DATATYPE_UINT4 ,
  MTL_DATATYPE_FLOAT , MTL_DATATYPE_FLOAT2 , MTL_DATATYPE_FLOAT3 , MTL_DATATYPE_FLOAT4 ,
  MTL_DATATYPE_PACKED_FLOAT2 , MTL_DATATYPE_PACKED_FLOAT3 , MTL_DATATYPE_LONG , MTL_DATATYPE_LONG2 ,
  MTL_DATATYPE_LONG3 , MTL_DATATYPE_LONG4 , MTL_DATATYPE_ULONG , MTL_DATATYPE_ULONG2 ,
  MTL_DATATYPE_ULONG3 , MTL_DATATYPE_ULONG4 , MTL_DATATYPE_HALF2x2 , MTL_DATATYPE_HALF2x3 ,
  MTL_DATATYPE_HALF2x4 , MTL_DATATYPE_HALF3x2 , MTL_DATATYPE_HALF3x3 , MTL_DATATYPE_HALF3x4 ,
  MTL_DATATYPE_HALF4x2 , MTL_DATATYPE_HALF4x3 , MTL_DATATYPE_HALF4x4 , MTL_DATATYPE_FLOAT2x2 ,
  MTL_DATATYPE_FLOAT2x3 , MTL_DATATYPE_FLOAT2x4 , MTL_DATATYPE_FLOAT3x2 , MTL_DATATYPE_FLOAT3x3 ,
  MTL_DATATYPE_FLOAT3x4 , MTL_DATATYPE_FLOAT4x2 , MTL_DATATYPE_FLOAT4x3 , MTL_DATATYPE_FLOAT4x4 ,
  MTL_DATATYPE_UINT1010102_NORM , MTL_DATATYPE_INT1010102_NORM
}

Functions

uint mtl_get_data_type_size (MTLInterfaceDataType type)
uint mtl_get_data_type_alignment (MTLInterfaceDataType type)
MTLInterfaceDataType gpu_type_to_mtl_type (GPUType type)

Enumeration Type Documentation

◆ MTLInterfaceDataType

Enumerator
MTL_DATATYPE_CHAR 
MTL_DATATYPE_CHAR2 
MTL_DATATYPE_CHAR3 
MTL_DATATYPE_CHAR4 
MTL_DATATYPE_UCHAR 
MTL_DATATYPE_UCHAR2 
MTL_DATATYPE_UCHAR3 
MTL_DATATYPE_UCHAR4 
MTL_DATATYPE_BOOL 
MTL_DATATYPE_BOOL2 
MTL_DATATYPE_BOOL3 
MTL_DATATYPE_BOOL4 
MTL_DATATYPE_SHORT 
MTL_DATATYPE_SHORT2 
MTL_DATATYPE_SHORT3 
MTL_DATATYPE_SHORT4 
MTL_DATATYPE_USHORT 
MTL_DATATYPE_USHORT2 
MTL_DATATYPE_USHORT3 
MTL_DATATYPE_USHORT4 
MTL_DATATYPE_INT 
MTL_DATATYPE_INT2 
MTL_DATATYPE_INT3 
MTL_DATATYPE_INT4 
MTL_DATATYPE_UINT 
MTL_DATATYPE_UINT2 
MTL_DATATYPE_UINT3 
MTL_DATATYPE_UINT4 
MTL_DATATYPE_FLOAT 
MTL_DATATYPE_FLOAT2 
MTL_DATATYPE_FLOAT3 
MTL_DATATYPE_FLOAT4 
MTL_DATATYPE_PACKED_FLOAT2 
MTL_DATATYPE_PACKED_FLOAT3 
MTL_DATATYPE_LONG 
MTL_DATATYPE_LONG2 
MTL_DATATYPE_LONG3 
MTL_DATATYPE_LONG4 
MTL_DATATYPE_ULONG 
MTL_DATATYPE_ULONG2 
MTL_DATATYPE_ULONG3 
MTL_DATATYPE_ULONG4 
MTL_DATATYPE_HALF2x2 
MTL_DATATYPE_HALF2x3 
MTL_DATATYPE_HALF2x4 
MTL_DATATYPE_HALF3x2 
MTL_DATATYPE_HALF3x3 
MTL_DATATYPE_HALF3x4 
MTL_DATATYPE_HALF4x2 
MTL_DATATYPE_HALF4x3 
MTL_DATATYPE_HALF4x4 
MTL_DATATYPE_FLOAT2x2 
MTL_DATATYPE_FLOAT2x3 
MTL_DATATYPE_FLOAT2x4 
MTL_DATATYPE_FLOAT3x2 
MTL_DATATYPE_FLOAT3x3 
MTL_DATATYPE_FLOAT3x4 
MTL_DATATYPE_FLOAT4x2 
MTL_DATATYPE_FLOAT4x3 
MTL_DATATYPE_FLOAT4x4 
MTL_DATATYPE_UINT1010102_NORM 
MTL_DATATYPE_INT1010102_NORM 

Definition at line 13 of file mtl_shader_interface_type.hh.

Function Documentation

◆ gpu_type_to_mtl_type()

◆ mtl_get_data_type_alignment()

uint mtl_get_data_type_alignment ( MTLInterfaceDataType type)
inline

Definition at line 179 of file mtl_shader_interface_type.hh.

References BLI_assert_msg, MTL_DATATYPE_BOOL, MTL_DATATYPE_BOOL2, MTL_DATATYPE_BOOL3, MTL_DATATYPE_BOOL4, MTL_DATATYPE_CHAR, MTL_DATATYPE_CHAR2, MTL_DATATYPE_CHAR3, MTL_DATATYPE_CHAR4, MTL_DATATYPE_FLOAT, MTL_DATATYPE_FLOAT2, MTL_DATATYPE_FLOAT2x2, MTL_DATATYPE_FLOAT2x3, MTL_DATATYPE_FLOAT2x4, MTL_DATATYPE_FLOAT3, MTL_DATATYPE_FLOAT3x2, MTL_DATATYPE_FLOAT3x3, MTL_DATATYPE_FLOAT3x4, MTL_DATATYPE_FLOAT4, MTL_DATATYPE_FLOAT4x2, MTL_DATATYPE_FLOAT4x3, MTL_DATATYPE_FLOAT4x4, MTL_DATATYPE_HALF2x2, MTL_DATATYPE_HALF2x3, MTL_DATATYPE_HALF2x4, MTL_DATATYPE_HALF3x2, MTL_DATATYPE_HALF3x3, MTL_DATATYPE_HALF3x4, MTL_DATATYPE_HALF4x2, MTL_DATATYPE_HALF4x3, MTL_DATATYPE_HALF4x4, MTL_DATATYPE_INT, MTL_DATATYPE_INT1010102_NORM, MTL_DATATYPE_INT2, MTL_DATATYPE_INT3, MTL_DATATYPE_INT4, MTL_DATATYPE_LONG, MTL_DATATYPE_LONG2, MTL_DATATYPE_LONG3, MTL_DATATYPE_LONG4, MTL_DATATYPE_PACKED_FLOAT2, MTL_DATATYPE_PACKED_FLOAT3, MTL_DATATYPE_SHORT, MTL_DATATYPE_SHORT2, MTL_DATATYPE_SHORT3, MTL_DATATYPE_SHORT4, MTL_DATATYPE_UCHAR, MTL_DATATYPE_UCHAR2, MTL_DATATYPE_UCHAR3, MTL_DATATYPE_UCHAR4, MTL_DATATYPE_UINT, MTL_DATATYPE_UINT1010102_NORM, MTL_DATATYPE_UINT2, MTL_DATATYPE_UINT3, MTL_DATATYPE_UINT4, MTL_DATATYPE_ULONG, MTL_DATATYPE_ULONG2, MTL_DATATYPE_ULONG3, MTL_DATATYPE_ULONG4, MTL_DATATYPE_USHORT, MTL_DATATYPE_USHORT2, MTL_DATATYPE_USHORT3, and MTL_DATATYPE_USHORT4.

Referenced by blender::gpu::MTLShaderInterface::add_uniform(), and blender::gpu::MTLShader::uniform_int().

◆ mtl_get_data_type_size()

uint mtl_get_data_type_size ( MTLInterfaceDataType type)
inline

Definition at line 90 of file mtl_shader_interface_type.hh.

References BLI_assert, MTL_DATATYPE_BOOL, MTL_DATATYPE_BOOL2, MTL_DATATYPE_BOOL3, MTL_DATATYPE_BOOL4, MTL_DATATYPE_CHAR, MTL_DATATYPE_CHAR2, MTL_DATATYPE_CHAR3, MTL_DATATYPE_CHAR4, MTL_DATATYPE_FLOAT, MTL_DATATYPE_FLOAT2, MTL_DATATYPE_FLOAT2x3, MTL_DATATYPE_FLOAT2x4, MTL_DATATYPE_FLOAT3, MTL_DATATYPE_FLOAT3x2, MTL_DATATYPE_FLOAT3x3, MTL_DATATYPE_FLOAT3x4, MTL_DATATYPE_FLOAT4, MTL_DATATYPE_FLOAT4x2, MTL_DATATYPE_FLOAT4x3, MTL_DATATYPE_FLOAT4x4, MTL_DATATYPE_HALF2x2, MTL_DATATYPE_HALF2x3, MTL_DATATYPE_HALF2x4, MTL_DATATYPE_HALF3x2, MTL_DATATYPE_HALF3x3, MTL_DATATYPE_HALF3x4, MTL_DATATYPE_HALF4x2, MTL_DATATYPE_HALF4x3, MTL_DATATYPE_HALF4x4, MTL_DATATYPE_INT, MTL_DATATYPE_INT1010102_NORM, MTL_DATATYPE_INT2, MTL_DATATYPE_INT3, MTL_DATATYPE_INT4, MTL_DATATYPE_LONG, MTL_DATATYPE_LONG2, MTL_DATATYPE_LONG3, MTL_DATATYPE_LONG4, MTL_DATATYPE_PACKED_FLOAT2, MTL_DATATYPE_PACKED_FLOAT3, MTL_DATATYPE_SHORT, MTL_DATATYPE_SHORT2, MTL_DATATYPE_SHORT3, MTL_DATATYPE_SHORT4, MTL_DATATYPE_UCHAR, MTL_DATATYPE_UCHAR2, MTL_DATATYPE_UCHAR3, MTL_DATATYPE_UCHAR4, MTL_DATATYPE_UINT, MTL_DATATYPE_UINT1010102_NORM, MTL_DATATYPE_UINT2, MTL_DATATYPE_UINT3, MTL_DATATYPE_UINT4, MTL_DATATYPE_ULONG, MTL_DATATYPE_ULONG2, MTL_DATATYPE_ULONG3, MTL_DATATYPE_ULONG4, MTL_DATATYPE_USHORT, MTL_DATATYPE_USHORT2, MTL_DATATYPE_USHORT3, and MTL_DATATYPE_USHORT4.

Referenced by blender::gpu::MTLShaderInterface::add_uniform(), and blender::gpu::MSLGeneratorInterface::bake_shader_interface().