Blender V5.0
compat.h File Reference
#include <metal_atomic>
#include <metal_pack>
#include <metal_stdlib>
#include <simd/simd.h>
#include "util/half.h"
#include "util/types.h"

Go to the source code of this file.

Classes

struct  TextureParamsMetal
struct  Texture2DParamsMetal
struct  MetalAncillaries

Macros

#define __KERNEL_GPU__
#define __KERNEL_METAL__
#define CCL_NAMESPACE_BEGIN
#define CCL_NAMESPACE_END
#define ATTR_FALLTHROUGH
#define ccl_device
#define ccl_device_inline   ccl_device __attribute__((always_inline))
#define ccl_device_forceinline   ccl_device __attribute__((always_inline))
#define ccl_device_noinline   ccl_device __attribute__((noinline))
#define ccl_device_extern   extern "C"
#define ccl_device_noinline_cpu   ccl_device
#define ccl_device_inline_method   ccl_device
#define ccl_device_template_spec   template<> ccl_device_inline
#define ccl_global   device
#define ccl_inline_constant   static constant constexpr
#define ccl_device_constant   constant
#define ccl_static_constexpr   static constant constexpr
#define ccl_constant   constant
#define ccl_gpu_shared   threadgroup
#define ccl_private   thread
#define ccl_ray_data   ccl_private
#define ccl_may_alias
#define ccl_restrict   __restrict
#define ccl_align(n)
#define ccl_optional_struct_init
#define kernel_assert(cond)
#define offsetof(t, d)
#define ccl_gpu_global_id_x()
#define ccl_gpu_warp_size   simdgroup_size
#define ccl_gpu_thread_idx_x   simd_group_index
#define ccl_gpu_thread_mask(thread_warp)
#define ccl_gpu_ballot(predicate)
#define ccl_gpu_syncthreads()
#define ccl_gpu_kernel(block_num_threads, thread_num_registers)
#define ccl_gpu_kernel_threads(block_num_threads)
#define FN0()
#define FN1(p1)
#define FN2(p1, p2)
#define FN3(p1, p2, p3)
#define FN4(p1, p2, p3, p4)
#define FN5(p1, p2, p3, p4, p5)
#define FN6(p1, p2, p3, p4, p5, p6)
#define FN7(p1, p2, p3, p4, p5, p6, p7)
#define FN8(p1, p2, p3, p4, p5, p6, p7, p8)
#define FN9(p1, p2, p3, p4, p5, p6, p7, p8, p9)
#define FN10(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)
#define FN11(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)
#define FN12(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)
#define FN13(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)
#define FN14(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)
#define FN15(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)
#define FN16(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)
#define FN17(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)
#define FN18(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)
#define FN19(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19)
#define FN20(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20)
#define GET_LAST_ARG(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, ...)
#define PARAMS_MAKER(...)
#define ccl_gpu_kernel_signature(name, ...)
#define ccl_gpu_kernel_postfix
#define ccl_gpu_kernel_call(x)
#define ccl_gpu_kernel_within_bounds(i, n)
#define ccl_gpu_kernel_lambda(func, ...)
#define __uint_as_float(x)
#define __float_as_uint(x)
#define __int_as_float(x)
#define __float_as_int(x)
#define __float2half(x)
#define powf(x, y)
#define fabsf(x)
#define copysignf(x, y)
#define asinf(x)
#define acosf(x)
#define atanf(x)
#define floorf(x)
#define ceilf(x)
#define roundf(x)
#define hypotf(x, y)
#define atan2f(x, y)
#define fmaxf(x, y)
#define fminf(x, y)
#define fmodf(x, y)
#define sinhf(x)
#define coshf(x)
#define tanhf(x)
#define saturatef(x)
#define ldexpf(x, y)
#define trigmode   fast
#define sinf(x)
#define cosf(x)
#define tanf(x)
#define expf(x)
#define sqrtf(x)
#define logf(x)
#define __device__

Enumerations

enum  SamplerType {
  SamplerFilterNearest_AddressRepeat , SamplerFilterNearest_AddressClampEdge , SamplerFilterNearest_AddressClampZero , SamplerFilterNearest_AddressMirroredRepeat ,
  SamplerFilterLinear_AddressRepeat , SamplerFilterLinear_AddressClampEdge , SamplerFilterLinear_AddressClampZero , SamplerFilterLinear_AddressMirroredRepeat ,
  SamplerCount
}

Functions

ccl_device_forceinline float2 make_float2 (const float x, const float y)
ccl_device_forceinline float3 make_float3 (const float x, const float y, const float z)
ccl_device_forceinline float4 make_float4 (const float x, const float y, const float z, const float w)
ccl_device_forceinline int2 make_int2 (const int x, const int y)
ccl_device_forceinline int3 make_int3 (const int x, const int y, const int z)
ccl_device_forceinline int4 make_int4 (const int x, const int y, const int z, const int w)
ccl_device_forceinline uint2 make_uint2 (const uint x, const uint y)
ccl_device_forceinline uint3 make_uint3 (const uint x, const uint y, const uint z)
ccl_device_forceinline uint4 make_uint4 (const uint x, const uint y, const uint z, const uint w)
ccl_device_forceinline uchar4 make_uchar4 (const uchar x, const uchar y, const uchar z, const uchar w)

Variables

constexpr constant array< sampler, SamplerCountmetal_samplers

Macro Definition Documentation

◆ __device__

#define __device__

◆ __float2half

#define __float2half ( x)
Value:

Definition at line 261 of file device/metal/compat.h.

Referenced by float_to_half_display(), and float_to_half_image().

◆ __float_as_int

◆ __float_as_uint

◆ __int_as_float

◆ __KERNEL_GPU__

#define __KERNEL_GPU__

Definition at line 7 of file device/metal/compat.h.

◆ __KERNEL_METAL__

#define __KERNEL_METAL__

Definition at line 8 of file device/metal/compat.h.

Referenced by gpu_parallel_active_index_array_impl().

◆ __uint_as_float

◆ acosf

◆ asinf

◆ atan2f

#define atan2f ( x,
y )
Value:
atan2(float(x), float(y))
ccl_device_inline float3 atan2(const float3 y, const float3 x)

Definition at line 272 of file device/metal/compat.h.

◆ atanf

#define atanf ( x)
Value:
atan(float(x))
#define atan

Definition at line 267 of file device/metal/compat.h.

◆ ATTR_FALLTHROUGH

#define ATTR_FALLTHROUGH

Definition at line 13 of file device/metal/compat.h.

◆ ccl_align

#define ccl_align ( n)
Value:
alignas(n)

Definition at line 62 of file device/metal/compat.h.

◆ ccl_constant

#define ccl_constant   constant

Definition at line 52 of file device/metal/compat.h.

◆ ccl_device

#define ccl_device

Definition at line 35 of file device/metal/compat.h.

◆ ccl_device_constant

#define ccl_device_constant   constant

Definition at line 50 of file device/metal/compat.h.

◆ ccl_device_extern

#define ccl_device_extern   extern "C"

Definition at line 44 of file device/metal/compat.h.

◆ ccl_device_forceinline

#define ccl_device_forceinline   ccl_device __attribute__((always_inline))

Definition at line 37 of file device/metal/compat.h.

◆ ccl_device_inline

#define ccl_device_inline   ccl_device __attribute__((always_inline))

Definition at line 36 of file device/metal/compat.h.

◆ ccl_device_inline_method

#define ccl_device_inline_method   ccl_device

Definition at line 46 of file device/metal/compat.h.

◆ ccl_device_noinline

#define ccl_device_noinline   ccl_device __attribute__((noinline))

Definition at line 41 of file device/metal/compat.h.

◆ ccl_device_noinline_cpu

#define ccl_device_noinline_cpu   ccl_device

Definition at line 45 of file device/metal/compat.h.

◆ ccl_device_template_spec

#define ccl_device_template_spec   template<> ccl_device_inline

Definition at line 47 of file device/metal/compat.h.

◆ ccl_global

#define ccl_global   device

Definition at line 48 of file device/metal/compat.h.

◆ ccl_gpu_ballot

#define ccl_gpu_ballot ( predicate)
Value:
((uint64_t)((simd_vote::vote_t)simd_ballot(predicate)))
unsigned long long int uint64_t

Definition at line 76 of file device/metal/compat.h.

◆ ccl_gpu_global_id_x

#define ccl_gpu_global_id_x ( )
Value:
metal_global_id

Definition at line 71 of file device/metal/compat.h.

◆ ccl_gpu_kernel

#define ccl_gpu_kernel ( block_num_threads,
thread_num_registers )

Definition at line 83 of file device/metal/compat.h.

◆ ccl_gpu_kernel_call

#define ccl_gpu_kernel_call ( x)
Value:
context.x

Definition at line 183 of file device/metal/compat.h.

◆ ccl_gpu_kernel_lambda

#define ccl_gpu_kernel_lambda ( func,
... )
Value:
struct KernelLambda \
{ \
KernelLambda(ccl_private MetalKernelContext &_context) : context(_context) {} \
ccl_private MetalKernelContext &context; \
__VA_ARGS__; \
int operator()(const int state) const { return (func); } \
} ccl_gpu_kernel_lambda_pass(context)
SIMD_FORCE_INLINE btVector3 operator()(const btVector3 &x) const
Return the transform of the vector.
Definition btTransform.h:90
#define ccl_private
static ulong state[N]

Definition at line 187 of file device/metal/compat.h.

◆ ccl_gpu_kernel_postfix

#define ccl_gpu_kernel_postfix

Definition at line 182 of file device/metal/compat.h.

◆ ccl_gpu_kernel_signature

#define ccl_gpu_kernel_signature ( name,
... )

Definition at line 139 of file device/metal/compat.h.

◆ ccl_gpu_kernel_threads

#define ccl_gpu_kernel_threads ( block_num_threads)

Definition at line 84 of file device/metal/compat.h.

◆ ccl_gpu_kernel_within_bounds

#define ccl_gpu_kernel_within_bounds ( i,
n )
Value:
true

Definition at line 184 of file device/metal/compat.h.

◆ ccl_gpu_shared

#define ccl_gpu_shared   threadgroup

Definition at line 53 of file device/metal/compat.h.

◆ ccl_gpu_syncthreads

#define ccl_gpu_syncthreads ( )
Value:
threadgroup_barrier(mem_flags::mem_threadgroup);

Definition at line 77 of file device/metal/compat.h.

◆ ccl_gpu_thread_idx_x

#define ccl_gpu_thread_idx_x   simd_group_index

Definition at line 73 of file device/metal/compat.h.

◆ ccl_gpu_thread_mask

#define ccl_gpu_thread_mask ( thread_warp)
Value:
uint64_t((1ull << thread_warp) - 1)

Definition at line 74 of file device/metal/compat.h.

◆ ccl_gpu_warp_size

#define ccl_gpu_warp_size   simdgroup_size

Definition at line 72 of file device/metal/compat.h.

◆ ccl_inline_constant

#define ccl_inline_constant   static constant constexpr

Definition at line 49 of file device/metal/compat.h.

◆ ccl_may_alias

#define ccl_may_alias

Definition at line 60 of file device/metal/compat.h.

◆ CCL_NAMESPACE_BEGIN

#define CCL_NAMESPACE_BEGIN

Definition at line 9 of file device/metal/compat.h.

◆ CCL_NAMESPACE_END

#define CCL_NAMESPACE_END

Definition at line 10 of file device/metal/compat.h.

◆ ccl_optional_struct_init

#define ccl_optional_struct_init

Definition at line 63 of file device/metal/compat.h.

◆ ccl_private

#define ccl_private   thread

Definition at line 54 of file device/metal/compat.h.

◆ ccl_ray_data

#define ccl_ray_data   ccl_private

Definition at line 58 of file device/metal/compat.h.

◆ ccl_restrict

#define ccl_restrict   __restrict

Definition at line 61 of file device/metal/compat.h.

◆ ccl_static_constexpr

#define ccl_static_constexpr   static constant constexpr

Definition at line 51 of file device/metal/compat.h.

◆ ceilf

#define ceilf ( x)
Value:
ceil(float(x))
#define ceil

Definition at line 269 of file device/metal/compat.h.

◆ copysignf

◆ cosf

#define cosf ( x)
Value:
trigmode::cos(float(x))

Definition at line 286 of file device/metal/compat.h.

◆ coshf

#define coshf ( x)
Value:
cosh(float(x))
#define cosh

Definition at line 277 of file device/metal/compat.h.

Referenced by svm_math(), blender::nodes::try_dispatch_float_math_fl_to_fl(), and valuefn().

◆ expf

#define expf ( x)
Value:
trigmode::exp(float(x))

Definition at line 288 of file device/metal/compat.h.

◆ fabsf

#define fabsf ( x)
Value:
fabs(float(x))
ccl_device_inline float2 fabs(const float2 a)

Definition at line 263 of file device/metal/compat.h.

◆ floorf

#define floorf ( x)
Value:
floor(float(x))
#define floor

Definition at line 268 of file device/metal/compat.h.

◆ fmaxf

#define fmaxf ( x,
y )
Value:
fmax(float(x), float(y))

Definition at line 273 of file device/metal/compat.h.

◆ fminf

#define fminf ( x,
y )
Value:
fmin(float(x), float(y))

Definition at line 274 of file device/metal/compat.h.

◆ fmodf

◆ FN0

#define FN0 ( )

Definition at line 88 of file device/metal/compat.h.

◆ FN1

#define FN1 ( p1)
Value:
p1;

Definition at line 89 of file device/metal/compat.h.

◆ FN10

#define FN10 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9,
p10 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8; p9; p10;

Definition at line 98 of file device/metal/compat.h.

◆ FN11

#define FN11 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9,
p10,
p11 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8; p9; p10; p11;

Definition at line 99 of file device/metal/compat.h.

◆ FN12

#define FN12 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9,
p10,
p11,
p12 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8; p9; p10; p11; p12;

Definition at line 100 of file device/metal/compat.h.

◆ FN13

#define FN13 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9,
p10,
p11,
p12,
p13 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8; p9; p10; p11; p12; p13;

Definition at line 101 of file device/metal/compat.h.

◆ FN14

#define FN14 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9,
p10,
p11,
p12,
p13,
p14 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8; p9; p10; p11; p12; p13; p14;

Definition at line 102 of file device/metal/compat.h.

◆ FN15

#define FN15 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9,
p10,
p11,
p12,
p13,
p14,
p15 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8; p9; p10; p11; p12; p13; p14; p15;

Definition at line 103 of file device/metal/compat.h.

◆ FN16

#define FN16 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9,
p10,
p11,
p12,
p13,
p14,
p15,
p16 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8; p9; p10; p11; p12; p13; p14; p15; p16;

Definition at line 104 of file device/metal/compat.h.

◆ FN17

#define FN17 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9,
p10,
p11,
p12,
p13,
p14,
p15,
p16,
p17 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8; p9; p10; p11; p12; p13; p14; p15; p16; p17;

Definition at line 105 of file device/metal/compat.h.

◆ FN18

#define FN18 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9,
p10,
p11,
p12,
p13,
p14,
p15,
p16,
p17,
p18 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8; p9; p10; p11; p12; p13; p14; p15; p16; p17; p18;

Definition at line 106 of file device/metal/compat.h.

◆ FN19

#define FN19 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9,
p10,
p11,
p12,
p13,
p14,
p15,
p16,
p17,
p18,
p19 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8; p9; p10; p11; p12; p13; p14; p15; p16; p17; p18; p19;

Definition at line 107 of file device/metal/compat.h.

◆ FN2

#define FN2 ( p1,
p2 )
Value:
p1; p2;

Definition at line 90 of file device/metal/compat.h.

◆ FN20

#define FN20 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9,
p10,
p11,
p12,
p13,
p14,
p15,
p16,
p17,
p18,
p19,
p20 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8; p9; p10; p11; p12; p13; p14; p15; p16; p17; p18; p19; p20;

Definition at line 108 of file device/metal/compat.h.

◆ FN3

#define FN3 ( p1,
p2,
p3 )
Value:
p1; p2; p3;

Definition at line 91 of file device/metal/compat.h.

◆ FN4

#define FN4 ( p1,
p2,
p3,
p4 )
Value:
p1; p2; p3; p4;

Definition at line 92 of file device/metal/compat.h.

◆ FN5

#define FN5 ( p1,
p2,
p3,
p4,
p5 )
Value:
p1; p2; p3; p4; p5;

Definition at line 93 of file device/metal/compat.h.

◆ FN6

#define FN6 ( p1,
p2,
p3,
p4,
p5,
p6 )
Value:
p1; p2; p3; p4; p5; p6;

Definition at line 94 of file device/metal/compat.h.

◆ FN7

#define FN7 ( p1,
p2,
p3,
p4,
p5,
p6,
p7 )
Value:
p1; p2; p3; p4; p5; p6; p7;

Definition at line 95 of file device/metal/compat.h.

◆ FN8

#define FN8 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8;

Definition at line 96 of file device/metal/compat.h.

◆ FN9

#define FN9 ( p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9 )
Value:
p1; p2; p3; p4; p5; p6; p7; p8; p9;

Definition at line 97 of file device/metal/compat.h.

◆ GET_LAST_ARG

#define GET_LAST_ARG ( p0,
p1,
p2,
p3,
p4,
p5,
p6,
p7,
p8,
p9,
p10,
p11,
p12,
p13,
p14,
p15,
p16,
p17,
p18,
p19,
p20,
... )
Value:
p20

Definition at line 109 of file device/metal/compat.h.

◆ hypotf

#define hypotf ( x,
y )
Value:
hypot(float(x), float(y))

Definition at line 271 of file device/metal/compat.h.

Referenced by draw_view_axis(), mat3_normalized_to_eul2(), mat3_normalized_to_eulo2(), and svd_m4().

◆ kernel_assert

#define kernel_assert ( cond)

Definition at line 67 of file device/metal/compat.h.

◆ ldexpf

#define ldexpf ( x,
y )
Value:
ldexp(float(x), int(y))
#define ldexp

Definition at line 280 of file device/metal/compat.h.

Referenced by rgb_to_rgbe(), and rgbe_to_rgb().

◆ logf

#define logf ( x)
Value:
trigmode::log(float(x))

Definition at line 290 of file device/metal/compat.h.

◆ offsetof

#define offsetof ( t,
d )
Value:
__builtin_offsetof(t, d)

Definition at line 69 of file device/metal/compat.h.

Referenced by _bm_select_history_check(), _bm_select_history_remove(), action_groups_add_new(), add_to_modifier_list(), ANIM_keyingset_get_from_idname(), arg_handle_engine_set(), blender::ed::object::bake(), BKE_action_group_find_name(), BKE_addon_find(), BKE_addon_remove_safe(), BKE_animsys_get_nla_keyframing_context(), BKE_asset_catalog_path_list_has_path(), BKE_asset_metadata_tag_add(), BKE_asset_metadata_tag_ensure(), BKE_collection_child_find(), BKE_collection_exporter_name_set(), BKE_collection_has_object_recursive(), BKE_collection_has_object_recursive_instanced(), BKE_constraint_unique_name(), BKE_constraints_find_name(), BKE_effectors_create(), BKE_fmodifier_name_set(), BKE_freestyle_lineset_unique_name(), BKE_gpencil_layer_addnew(), BKE_gpencil_layer_named_get(), BKE_gpencil_palette_addnew(), BKE_gpencil_palette_ensure(), BKE_gpencil_palettecolor_addnew(), BKE_image_acquire_multilayer_view_ibuf(), BKE_image_is_stereo(), BKE_image_render_write(), BKE_keyblock_add(), BKE_keyblock_find_name(), BKE_keyconfig_pref_ensure(), BKE_keyingset_add(), BKE_layer_collection_sync(), BKE_lib_override_library_main_resync(), BKE_lib_override_library_property_operation_find(), BKE_libblock_find_name(), BKE_mask_clipboard_paste_to_layer(), BKE_mask_layer_unique_name(), BKE_modifier_unique_name(), BKE_modifiers_findby_name(), BKE_nla_action_stash(), BKE_nlatrack_insert_after(), BKE_nlatrack_insert_before(), BKE_packedfile_unpack_image(), BKE_paint_get_brush_type_offset_from_paintmode(), BKE_pose_add_group(), BKE_pose_channel_find_name(), BKE_preferences_asset_library_find_by_name(), BKE_preferences_asset_library_name_set(), BKE_preferences_asset_shelf_settings_get(), BKE_preferences_extension_repo_find_by_module(), BKE_preferences_extension_repo_module_set(), BKE_preferences_extension_repo_name_set(), BKE_scene_add_render_view(), BKE_scene_multiview_is_stereo3d(), BKE_scene_multiview_num_views_get(), BKE_scene_multiview_view_filepath_get(), BKE_scene_multiview_view_suffix_get(), BKE_scene_object_find(), BKE_shaderfx_findby_name(), BKE_shaderfx_unique_name(), BKE_tracking_object_unique_name(), BKE_tracking_plane_track_unique_name(), BKE_tracking_track_unique_name(), BKE_undosys_stack_has_undo(), BKE_undosys_step_find_by_name(), BKE_view_layer_add(), BKE_view_layer_rename(), BKE_workspace_owner_id_check(), blo_do_versions_290(), blo_update_defaults_scene(), BLO_update_defaults_startup_blend(), BPyGPUFrameBuffer_CreatePyObject(), BPyGPUTexture_CreatePyObject(), cmp_node_image_add_pass_output(), collection_find_parent(), collection_object_cache_fill(), curve_smooth_radius_exec(), curve_smooth_tilt_exec(), curve_smooth_weight_exec(), data_dir_add(), DEG_get_evaluated_view_layer(), do_version_workspaces_after_lib_link(), do_version_workspaces_create_from_screens(), do_versions_after_linking_280(), do_versions_after_linking_290(), do_versions_after_linking_300(), do_versions_nodetree_customnodes(), do_versions_theme(), driver_add_new_variable(), driver_variable_unique_name(), ED_armature_ebone_find_name(), edbm_fill_grid_prepare(), engine_render_view_layer(), blender::ed::asset::filter_matches_asset(), blender::ed::transform::findOrientationName(), FRS_do_stroke_rendering(), get_multilayer_view_index(), blender::compositor::get_pass_index(), blender::compositor::get_view_index(), Freestyle::BlenderStrokeRenderer::GetStrokeShader(), blender::ed::greasepencil::grease_pencil_layer_mask_add_exec(), image_add_view(), image_foreach_cache(), image_save_single(), image_unpack_exec(), image_views_match_render_views(), integrator_state_write_isect(), integrator_state_write_ray(), blender::animrig::keyingset_find_id(), blender::animrig::keyingset_info_find_name(), layer_collection_resync_create_recurse(), library_id_is_yet_read_main(), make_duplis_particle_system(), blender::ed::object::make_override_library_exec(), blender::ed::transform::mesh_partial_ensure(), ml_addpass_cb(), ml_addview_cb(), blender::seq::modifier_copy(), blender::seq::modifier_find_by_name(), blender::seq::modifier_unique_name(), movie_clip_foreach_cache(), blender::ed::outliner::namebutton_fn(), blender::bke::node_find_node_by_name(), blender::bke::node_unique_name(), paste_material_nodetree_ids_relink_or_clear(), preview_get_world(), psys_unique_name(), pyrna_prop_collection_subscript_str_lib_pair_ptr(), RE_engines_find(), RE_GetRenderLayer(), RE_RenderResult_is_stereo(), RE_RenderViewGetByName(), RE_WriteRenderViewsMovie(), read_file_dna(), rearrange_animchannel_islands(), render_image_update_pass_and_layer(), render_layer_add_pass(), render_result_clone_passes(), RNA_def_function(), RNA_struct_find_function(), RNA_struct_type_find_property_no_base(), scene_foreach_cache(), screen_opengl_views_setup(), screen_render_single_layer_set(), separated_armature_fix_links(), blender::ed::vse::sequencer_write_copy_paste_file(), sound_foreach_cache(), sound_unpack_exec(), switch_preview_floor_material(), TEST(), toolsystem_brush_type_binding_lookup(), tracks_map_merge(), ui_imageuser_pass_menu(), ui_list_ensure(), UI_panel_add_instanced(), UI_panel_category_active_find(), ui_panel_category_active_set(), UI_panel_category_find(), UI_panel_category_index_find(), UI_theme_init_default(), uiTemplatePreview(), undofont_free_data(), version_liboverride_rnacollections_insertion_object(), version_liboverride_rnacollections_insertion_object_constraints(), view_layer_add_used_lightgroups_exec(), viewlayer_aov_make_name_unique(), viewlayer_lightgroup_make_name_unique(), wm_file_history_find(), wm_file_read_report(), WM_gizmo_target_property_find(), wm_gizmogroup_find_by_type(), WM_gizmotype_target_property_find(), wm_jobs_timer(), wm_jobs_timer_end(), WM_keyconfig_active(), WM_keyconfig_ensure(), WM_keyconfig_new(), wm_macro_modal(), wm_xr_session_controller_aim_pose_find(), workspace_add_menu(), workspace_layout_find_exec(), workspace_layout_name_set(), workspace_relation_ensure_updated(), and workspace_relation_get_data_matching_parent().

◆ PARAMS_MAKER

#define PARAMS_MAKER ( ...)
Value:
#define FN4(p1, p2, p3, p4)
#define FN6(p1, p2, p3, p4, p5, p6)
#define GET_LAST_ARG(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20,...)
#define FN5(p1, p2, p3, p4, p5)
#define FN14(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)
#define FN19(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19)
#define FN8(p1, p2, p3, p4, p5, p6, p7, p8)
#define FN11(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)
#define FN1(p1)
#define FN16(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)
#define FN10(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)
#define FN20(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20)
#define FN12(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)
#define FN3(p1, p2, p3)
#define FN2(p1, p2)
#define FN15(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)
#define FN17(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)
#define FN9(p1, p2, p3, p4, p5, p6, p7, p8, p9)
#define FN0()
#define FN7(p1, p2, p3, p4, p5, p6, p7)
#define FN13(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)
#define FN18(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)

Definition at line 110 of file device/metal/compat.h.

◆ powf

#define powf ( x,
y )
Value:
pow(float(x), float(y))
#define pow

Definition at line 262 of file device/metal/compat.h.

◆ roundf

#define roundf ( x)
Value:
round(float(x))
#define round

Definition at line 270 of file device/metal/compat.h.

Referenced by action_flip_pchan_cache_init(), actkeys_find_key_in_list_element(), animsys_blend_in_fcurves(), BKE_curveprofile_move_handle(), BKE_curveprofile_move_point(), BKE_histogram_update_sample_line(), dial_ghostarc_draw_incremental_angle(), do_vert_pair(), draw_fcurve_curve(), draw_image_cache(), draw_movieclip_cache(), blender::imbuf::transform::edge_aa(), blender::ed::transform::flushTransUVs(), blender::seq::get_auto_filter(), GHOST_SystemWin32::getCursorPreferredLogicalSize(), gizmo_axis_draw(), gizmo_dial_modal(), idp_snap_calc_incremental(), blender::ed::transform::image_transform_set(), IMB_filter_extend(), imb_working_space_convert(), blender::io::fbx::FbxImportContext::import_globals(), interactive_value_update(), knife_snap_v3_angle(), GHOST_DirectManipulationViewportEventHandler::OnContentUpdated(), blender::ed::vse::preview_draw_begin(), blender::imbuf::transform::process_scanlines(), blender::bke::subdiv::read_displacement_grid(), read_mask_grid(), rgb_to_rgbe(), round(), round_to_even(), scroller_activate_apply(), blender::ed::vse::sequencer_ibuf_get(), blender::ed::vse::sequencer_refresh(), sima_zoom_set_from_bounds(), blender::ed::transform::snap_grid_uv_apply(), blender::ed::transform::snap_increment_apply(), ui_color_snap_hue(), ui_do_but_NUM(), ui_do_but_SLI(), ui_numedit_apply_snapf(), ui_numedit_but_CURVE(), ui_numedit_but_SLI(), ui_numedit_but_UNITVEC(), UI_view2d_offset_y_snap_to_closest_page(), blender::ed::sculpt_paint::update_curve_mask(), blender::ed::vse::update_overlay_strip_position_data(), uv_snap_to_pixel(), widget_draw_icon(), WIDGETGROUP_navigate_draw_prepare(), WIDGETGROUP_navigate_draw_prepare(), and WM_window_dpi_set_userdef().

◆ saturatef

◆ sinf

#define sinf ( x)
Value:
trigmode::sin(float(x))

Definition at line 285 of file device/metal/compat.h.

◆ sinhf

#define sinhf ( x)

◆ sqrtf

#define sqrtf ( x)
Value:
trigmode::sqrt(float(x))

Definition at line 289 of file device/metal/compat.h.

◆ tanf

#define tanf ( x)
Value:
trigmode::tan(float(x))

Definition at line 287 of file device/metal/compat.h.

◆ tanhf

#define tanhf ( x)
Value:
tanh(float(x))
#define tanh

Definition at line 278 of file device/metal/compat.h.

Referenced by svm_math(), blender::nodes::try_dispatch_float_math_fl_to_fl(), and valuefn().

◆ trigmode

#define trigmode   fast

Definition at line 284 of file device/metal/compat.h.

Enumeration Type Documentation

◆ SamplerType

Enumerator
SamplerFilterNearest_AddressRepeat 
SamplerFilterNearest_AddressClampEdge 
SamplerFilterNearest_AddressClampZero 
SamplerFilterNearest_AddressMirroredRepeat 
SamplerFilterLinear_AddressRepeat 
SamplerFilterLinear_AddressClampEdge 
SamplerFilterLinear_AddressClampZero 
SamplerFilterLinear_AddressMirroredRepeat 
SamplerCount 

Definition at line 370 of file device/metal/compat.h.

Function Documentation

◆ make_float2()

ccl_device_forceinline float2 make_float2 ( const float x,
const float y )

Definition at line 199 of file device/metal/compat.h.

References ccl_device_forceinline, x, and y.

◆ make_float3()

ccl_device_forceinline float3 make_float3 ( const float x,
const float y,
const float z )

Definition at line 204 of file device/metal/compat.h.

References ccl_device_forceinline, x, y, and z().

Referenced by ShaderManager::add_default(), Hair::apply_transform(), PointCloud::apply_transform(), ApplyPrimvars(), area_light_valid_ray_segment(), atan2(), atmosphere_intersection(), attr_create_motion_from_velocity(), attr_create_motion_from_velocity(), attr_create_motion_from_velocity(), attr_create_pointiness(), attribute_data_fetch_bytecolor(), background_sun_pdf(), background_sun_sample(), BoundBox::BoundBox(), Hair::Curve::bounds_grow(), Hair::Curve::bounds_grow(), PointCloud::Point::bounds_grow(), bsdf_aniso_D(), bsdf_hair_huang_albedo(), bsdf_hair_huang_eval_r(), bsdf_hair_huang_sample(), bsdf_microfacet_eval(), bsdf_microfacet_sample(), bsdf_principled_hair_sigma_from_concentration(), bsdf_sheen_sample(), bvh_clamp_direction(), BVHObjectBinning::BVHObjectBinning(), BVHSpatialSplit::BVHSpatialSplit(), camera_direction_from_point(), camera_distance(), camera_panorama_direction(), camera_position(), camera_sample_custom(), camera_sample_orthographic(), camera_sample_panorama(), camera_sample_perspective(), camera_world_to_ndc(), camera_z_depth(), cameradata_to_shaderglobals(), ceil(), central_cylindrical_to_direction(), color_byte_to_float(), color_linear_to_srgb_v3(), color_srgb_to_linear_v3(), colorramp_to_array(), compatible_sign(), compute_2d_gabor_noise_cell(), compute_3d_gabor_noise(), Hair::compute_bounds(), PointCloud::compute_bounds(), compute_emitter_centroid_and_dir(), Mesh::Triangle::compute_normal(), ShaderManager::compute_thin_film_table(), Object::compute_volume_step_size(), CombineColorNode::constant_fold(), CombineXYZNode::constant_fold(), ConvertNode::constant_fold(), CurvesNode::constant_fold(), AttributeConverter< blender::float3 >::convert(), HDCYCLES_NAMESPACE_OPEN_SCOPE::convertToCycles< float3 >(), cos(), create_mesh(), cross(), curvemapping_color_to_array(), cycles_precompute(), LightManager::device_update_background(), disk_to_hemisphere(), distant_light_uv(), equiangular_cubemap_face_to_direction(), exp(), export_hair_curves(), export_pointcloud(), export_pointcloud_motion(), ExportCurveSegments(), fabs(), film_apply_pass_pixel_overlays_rgba(), film_calculate_shadow_catcher(), film_calculate_shadow_catcher_denoised(), film_calculate_shadow_catcher_matte_with_shadow(), film_get_pass_pixel_combined(), film_get_pass_pixel_float3(), film_get_pass_pixel_float4(), film_get_pass_pixel_light_path(), fisheye_to_direction(), floor(), fmod(), fmod(), geographical_to_direction(), BVHObjectBinning::get_bin(), BVHObjectBinning::get_bin(), get_float3(), get_float3(), get_float3(), get_node_output_rgba(), get_node_output_vector(), SkyTextureNode::get_sun_average_radiance(), SkyMultipleScattering::get_transmittance(), BoundBox::grow(), BoundBox::grow_safe(), guiding_bsdf_sample(), guiding_phase_sample(), guiding_record_background(), guiding_record_volume_bounce(), hash_float2_to_float2(), hash_float2_to_float3(), hash_float3_to_float2(), hash_float3_to_float3(), hash_float4_to_float3(), hash_float_to_float3(), hash_int3_to_float3(), hash_int4_to_float3(), hsl_to_rgb(), hsv_to_rgb(), Octree::index_to_position(), ShaderManager::init_xyz_transforms(), iridescence_lookup_sensitivity(), is_zero(), kernel_embree_filter_occluded_local_func_impl(), kernel_read_pass_float3(), kernel_volume_density_evaluate(), lcg_step_float3(), light_sample_shader_eval(), LightTreeEmitter::LightTreeEmitter(), linear_rgb_to_gray(), log(), make_orthonormals(), make_transform_frame(), max(), mesh_texture_space(), microfacet_beckmann_sample_vndf(), microfacet_fresnel(), microfacet_ggx_sample_vndf(), min(), mirrorball_to_direction(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), noise_texture_1d(), noise_texture_2d(), noise_texture_3d(), noise_texture_4d(), object_color(), object_dupli_generated(), object_dupli_uv(), object_location(), one_float3(), operator*(), operator*(), operator*(), operator+(), operator+(), operator+(), operator-(), operator-(), operator-(), operator-(), operator/(), operator/(), operator/(), operator==(), operator>(), OrientationBounds::OrientationBounds(), osl_eval_camera(), osl_mul_closure_float(), output_estimate_emission(), particle_angular_velocity(), particle_location(), particle_velocity(), path_rng_3D(), phase_fournier_forand_coeffs(), power(), precompute_ggx_E(), precompute_ggx_gen_schlick_s(), precompute_ggx_glass_E(), primitive_motion_vector(), primitive_tangent(), primitive_uv(), random_float3_offset(), ray_offset(), ray_optical_depth(), ray_triangle_cross(), read_shader_output(), rec709_to_rgb(), reciprocal(), rgb_to_hsl(), rgb_to_hsv(), rgb_to_rgbe(), rgbe_to_rgb(), round(), safe_divide(), safe_divide_even_color(), safe_divide_shadow_catcher(), safe_pow(), sample_uniform_sphere(), saturate(), select(), set_attribute(), set_attribute(), set_attribute(), set_attribute(), set_attribute(), set_attribute(), set_default_value(), MikkMeshWrapper::SetTangentSpace(), sin(), single_scattering(), SKY_multiple_scattering_precompute_texture(), sky_radiance_hosek(), sky_radiance_nishita(), SKY_single_scattering_precompute_sun(), SKY_single_scattering_precompute_texture(), snoise_3d(), sobol_burley_sample_3D(), spec_to_xyz(), spectral_to_xyz(), spherical_cos_to_direction(), spherical_stereo_transform(), spherical_to_direction(), sphg_dir(), spot_light_valid_ray_segment(), sqrt(), stack_load_float3(), sun_radiation(), surface_shader_constant_emission(), svm_magic(), svm_mapping(), svm_math_blackbody_color_rec709(), svm_math_gamma_color(), svm_math_wavelength_color_xyz(), svm_mix(), svm_mix_linear(), svm_mix_screen(), svm_mix_soft(), svm_node_attr(), svm_node_attr_store(), svm_node_attr_store(), svm_node_attr_store(), svm_node_closure_bsdf(), svm_node_closure_set_weight(), svm_node_combine_color(), svm_node_convert(), svm_node_curves(), svm_node_geometry(), svm_node_geometry_bump_dx(), svm_node_geometry_bump_dy(), svm_node_min_max(), svm_node_normal_map(), svm_node_radial_tiling(), svm_node_rgb_ramp(), svm_node_tangent(), svm_node_tex_environment(), svm_node_tex_gradient(), svm_node_tex_image(), svm_node_tex_image_box(), svm_node_tex_sky(), svm_node_tex_voronoi(), svm_node_tex_wave(), svm_node_tex_white_noise(), svm_node_value_v(), svm_node_vector_displacement(), svm_node_vector_map_range(), svm_node_vector_math(), svm_node_vector_rotate(), svm_node_vertex_color(), svm_node_vertex_color_bump_dx(), svm_node_vertex_color_bump_dy(), svm_node_wavelength(), svm_wave(), HdCyclesGeometry< Base, CyclesBase >::Sync(), HdCyclesLight::Sync(), tabulated_sobol_sample_3D(), tan(), TEST(), TEST(), TEST(), BlenderObjectCulling::test(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), texco_remap_square(), OSLRenderServices::texture(), OSLRenderServices::texture3d(), to_local(), ColorSpaceManager::to_scene_linear(), OSLRenderServices::trace(), transform_compose(), transform_direction(), transform_direction_transposed(), transform_euler(), transform_get_column(), transform_inverse_impl(), transform_motion_decompose(), transform_perspective(), transform_perspective_deriv(), transform_perspective_direction(), transform_point(), transform_point(), transform_scale(), transform_translate(), transform_uniform_scale(), uint3_as_float3(), Camera::update(), HdCyclesSession::UpdateScene(), Camera::viewplane_bounds_get(), volume_fournier_forand_eval(), volume_fournier_forand_sample(), voronoi_distance_to_edge(), voronoi_f1(), voronoi_f2(), voronoi_n_sphere_radius(), voronoi_smooth_f1(), voronoi_smooth_f1(), voronoi_smooth_f1(), voronoi_smooth_f1(), Camera::world_to_raster_size(), xml_read_float3(), xml_read_float3_array(), xml_read_mesh(), xml_read_transform(), xyY_to_xyz(), xyz_to_rgb(), and zero_float3().

◆ make_float4()

ccl_device_forceinline float4 make_float4 ( const float x,
const float y,
const float z,
const float w )

Definition at line 209 of file device/metal/compat.h.

References ccl_device_forceinline, w(), x, y, and z().

◆ make_int2()

◆ make_int3()

◆ make_int4()

◆ make_uchar4()

ccl_device_forceinline uchar4 make_uchar4 ( const uchar x,
const uchar y,
const uchar z,
const uchar w )

◆ make_uint2()

ccl_device_forceinline uint2 make_uint2 ( const uint x,
const uint y )

Definition at line 232 of file device/metal/compat.h.

References ccl_device_forceinline, x, and y.

◆ make_uint3()

ccl_device_forceinline uint3 make_uint3 ( const uint x,
const uint y,
const uint z )

◆ make_uint4()

ccl_device_forceinline uint4 make_uint4 ( const uint x,
const uint y,
const uint z,
const uint w )

Definition at line 242 of file device/metal/compat.h.

References ccl_device_forceinline, w(), x, y, and z().

Variable Documentation

◆ metal_samplers

constant array<sampler, SamplerCount> metal_samplers
constexpr
Initial value:
= {
sampler(address::repeat, filter::nearest),
sampler(address::clamp_to_edge, filter::nearest),
sampler(address::clamp_to_zero, filter::nearest),
sampler(address::mirrored_repeat, filter::nearest),
sampler(address::repeat, filter::linear),
sampler(address::clamp_to_edge, filter::linear),
sampler(address::clamp_to_zero, filter::linear),
sampler(address::mirrored_repeat, filter::linear),
}

Definition at line 384 of file device/metal/compat.h.