|
Blender V4.3
|
Provides wrapper around system-specific atomic primitives, and some extensions (faked-atomic operations over float numbers). More...
#include "intern/atomic_ops_utils.h"#include "intern/atomic_ops_unix.h"#include "intern/atomic_ops_ext.h"Go to the source code of this file.
Provides wrapper around system-specific atomic primitives, and some extensions (faked-atomic operations over float numbers).
Definition in file atomic_ops.h.
| ATOMIC_INLINE float atomic_add_and_fetch_fl | ( | float * | p, |
| const float | x ) |
Definition at line 234 of file atomic_ops_ext.h.
References _ATOMIC_UNLIKELY, atomic_cas_uint32(), and x.
Referenced by TEST().
| ATOMIC_INLINE int32_t atomic_add_and_fetch_int32 | ( | int32_t * | p, |
| int32_t | x ) |
Definition at line 179 of file atomic_ops_msvc.h.
References x.
Referenced by blender::nodes::node_geo_scale_elements_cc::from_indices_large_groups(), and TEST().
| ATOMIC_INLINE int64_t atomic_add_and_fetch_int64 | ( | int64_t * | p, |
| int64_t | x ) |
| ATOMIC_INLINE unsigned int atomic_add_and_fetch_u | ( | unsigned int * | p, |
| unsigned int | x ) |
Definition at line 137 of file atomic_ops_ext.h.
References atomic_add_and_fetch_uint32(), and atomic_add_and_fetch_uint64().
Referenced by PathTrace::adaptive_sample(), make_memhead_header(), and TEST().
| ATOMIC_INLINE uint32_t atomic_add_and_fetch_uint32 | ( | uint32_t * | p, |
| uint32_t | x ) |
Definition at line 138 of file atomic_ops_msvc.h.
References x.
Referenced by atomic_add_and_fetch_u(), atomic_add_and_fetch_z(), atomic_sub_and_fetch_u(), atomic_sub_and_fetch_z(), BKE_lib_libblock_session_uid_ensure(), dynamic_paint_create_uv_surface_neighbor_cb(), filelist_uid_generate(), GPU_material_acquire(), and TEST().
| ATOMIC_INLINE uint64_t atomic_add_and_fetch_uint64 | ( | uint64_t * | p, |
| uint64_t | x ) |
Definition at line 64 of file atomic_ops_msvc.h.
References x.
Referenced by atomic_add_and_fetch_u(), atomic_add_and_fetch_z(), atomic_sub_and_fetch_u(), atomic_sub_and_fetch_z(), BLI_session_uid_generate(), and TEST().
| ATOMIC_INLINE size_t atomic_add_and_fetch_z | ( | size_t * | p, |
| size_t | x ) |
Definition at line 58 of file atomic_ops_ext.h.
References atomic_add_and_fetch_uint32(), and atomic_add_and_fetch_uint64().
Referenced by make_memhead_header(), Stats::mem_alloc(), and TEST().
| ATOMIC_INLINE float atomic_cas_float | ( | float * | v, |
| float | old, | ||
| float | _new ) |
Definition at line 228 of file atomic_ops_ext.h.
References atomic_cas_uint32(), ret, and v.
Referenced by TEST().
| ATOMIC_INLINE int32_t atomic_cas_int32 | ( | int32_t * | v, |
| int32_t | old, | ||
| int32_t | _new ) |
| ATOMIC_INLINE int64_t atomic_cas_int64 | ( | int64_t * | v, |
| int64_t | old, | ||
| int64_t | _new ) |
| ATOMIC_INLINE void * atomic_cas_ptr | ( | void ** | v, |
| void * | old, | ||
| void * | _new ) |
Definition at line 197 of file atomic_ops_ext.h.
References atomic_cas_uint32(), atomic_cas_uint64(), and v.
Referenced by BLI_linklist_lockfree_insert(), ccgDM_copyFinalCornerEdgeArray(), CLG_logref_init(), driver_compile_simple_expr(), mempool_iter_threadsafe_step(), and TEST().
| ATOMIC_INLINE unsigned int atomic_cas_u | ( | unsigned int * | v, |
| unsigned int | old, | ||
| unsigned int | _new ) |
Definition at line 173 of file atomic_ops_ext.h.
References atomic_cas_uint32(), atomic_cas_uint64(), and v.
Referenced by TEST().
| ATOMIC_INLINE uint32_t atomic_cas_uint32 | ( | uint32_t * | v, |
| uint32_t | old, | ||
| uint32_t | _new ) |
Definition at line 148 of file atomic_ops_msvc.h.
References v.
Referenced by atomic_add_and_fetch_fl(), atomic_cas_float(), atomic_cas_ptr(), atomic_cas_u(), atomic_cas_z(), and TEST().
| ATOMIC_INLINE uint64_t atomic_cas_uint64 | ( | uint64_t * | v, |
| uint64_t | old, | ||
| uint64_t | _new ) |
Definition at line 74 of file atomic_ops_msvc.h.
References v.
Referenced by atomic_cas_ptr(), atomic_cas_u(), atomic_cas_z(), and TEST().
| ATOMIC_INLINE size_t atomic_cas_z | ( | size_t * | v, |
| size_t | old, | ||
| size_t | _new ) |
Definition at line 94 of file atomic_ops_ext.h.
References atomic_cas_uint32(), atomic_cas_uint64(), and v.
Referenced by atomic_fetch_and_update_max_z(), and TEST().
| ATOMIC_INLINE int32_t atomic_fetch_and_add_int32 | ( | int32_t * | p, |
| int32_t | x ) |
Definition at line 204 of file atomic_ops_msvc.h.
Referenced by BLI_task_parallel_thread_id(), bm_edge_pair_elem_setup(), blender::bke::mesh::build_vert_to_edge_map(), blender::compositor::ExecutionSystem::execute_work(), project_bucket_iter_next(), blender::bke::mesh::reverse_group_indices_in_groups(), and TEST().
| ATOMIC_INLINE int64_t atomic_fetch_and_add_int64 | ( | int64_t * | p, |
| int64_t | x ) |
Definition at line 125 of file atomic_ops_msvc.h.
Referenced by TEST().
| ATOMIC_INLINE unsigned int atomic_fetch_and_add_u | ( | unsigned int * | p, |
| unsigned int | x ) |
Definition at line 155 of file atomic_ops_ext.h.
References atomic_fetch_and_add_uint32(), and atomic_fetch_and_add_uint64().
Referenced by BLI_threadpool_init(), and TEST().
| ATOMIC_INLINE uint32_t atomic_fetch_and_add_uint32 | ( | uint32_t * | p, |
| uint32_t | x ) |
Definition at line 163 of file atomic_ops_msvc.h.
Referenced by PathTraceWorkCPU::adaptive_sampling_converge_filter_count_active(), atomic_fetch_and_add_u(), atomic_fetch_and_add_z(), atomic_fetch_and_sub_u(), atomic_fetch_and_sub_z(), film_write_sample(), gpu_parallel_active_index_array_impl(), gpu_parallel_sorted_index_array(), integrator_state_shadow_catcher_split(), and TEST().
| ATOMIC_INLINE uint64_t atomic_fetch_and_add_uint64 | ( | uint64_t * | p, |
| uint64_t | x ) |
Definition at line 89 of file atomic_ops_msvc.h.
Referenced by atomic_fetch_and_add_u(), atomic_fetch_and_add_z(), atomic_fetch_and_sub_u(), atomic_fetch_and_sub_z(), and TEST().
| ATOMIC_INLINE size_t atomic_fetch_and_add_z | ( | size_t * | p, |
| size_t | x ) |
Definition at line 76 of file atomic_ops_ext.h.
References atomic_fetch_and_add_uint32(), and atomic_fetch_and_add_uint64().
Referenced by TEST().
| ATOMIC_INLINE char atomic_fetch_and_and_char | ( | char * | p, |
| char | b ) |
Definition at line 189 of file atomic_ops_ext.h.
References atomic_fetch_and_and_uint8(), and b.
Referenced by TEST().
| ATOMIC_INLINE int16_t atomic_fetch_and_and_int16 | ( | int16_t * | p, |
| int16_t | b ) |
Definition at line 228 of file atomic_ops_msvc.h.
Referenced by BKE_previewimg_finish(), and TEST().
| ATOMIC_INLINE int32_t atomic_fetch_and_and_int32 | ( | int32_t * | p, |
| int32_t | x ) |
Definition at line 214 of file atomic_ops_msvc.h.
Referenced by BKE_id_tag_clear_atomic(), and TEST().
| ATOMIC_INLINE int8_t atomic_fetch_and_and_int8 | ( | int8_t * | p, |
| int8_t | b ) |
| ATOMIC_INLINE uint32_t atomic_fetch_and_and_uint32 | ( | uint32_t * | p, |
| uint32_t | x ) |
Definition at line 173 of file atomic_ops_msvc.h.
Referenced by TEST().
| ATOMIC_INLINE uint8_t atomic_fetch_and_and_uint8 | ( | uint8_t * | p, |
| uint8_t | b ) |
Definition at line 238 of file atomic_ops_msvc.h.
References b.
Referenced by atomic_fetch_and_and_char(), dynamic_paint_effect_drip_cb(), and TEST().
| ATOMIC_INLINE char atomic_fetch_and_or_char | ( | char * | p, |
| char | b ) |
Definition at line 184 of file atomic_ops_ext.h.
References atomic_fetch_and_or_uint8(), and b.
Referenced by TEST().
| ATOMIC_INLINE int16_t atomic_fetch_and_or_int16 | ( | int16_t * | p, |
| int16_t | b ) |
Definition at line 223 of file atomic_ops_msvc.h.
Referenced by TEST().
| ATOMIC_INLINE int32_t atomic_fetch_and_or_int32 | ( | int32_t * | p, |
| int32_t | x ) |
Definition at line 209 of file atomic_ops_msvc.h.
Referenced by BKE_id_tag_set_atomic(), and TEST().
| ATOMIC_INLINE int8_t atomic_fetch_and_or_int8 | ( | int8_t * | p, |
| int8_t | b ) |
| ATOMIC_INLINE uint32_t atomic_fetch_and_or_uint32 | ( | uint32_t * | p, |
| uint32_t | x ) |
Definition at line 168 of file atomic_ops_msvc.h.
Referenced by lib_override_library_operations_create_cb(), blender::draw::mesh_batch_cache_add_request(), blender::draw::mesh_cd_layers_type_merge(), and TEST().
| ATOMIC_INLINE uint8_t atomic_fetch_and_or_uint8 | ( | uint8_t * | p, |
| uint8_t | b ) |
Definition at line 248 of file atomic_ops_msvc.h.
References b.
Referenced by atomic_fetch_and_or_char(), dynamic_paint_effect_drip_cb(), and TEST().
| ATOMIC_INLINE int64_t atomic_fetch_and_sub_int64 | ( | int64_t * | p, |
| int64_t | x ) |
Definition at line 130 of file atomic_ops_msvc.h.
Referenced by TEST().
| ATOMIC_INLINE unsigned int atomic_fetch_and_sub_u | ( | unsigned int * | p, |
| unsigned int | x ) |
Definition at line 164 of file atomic_ops_ext.h.
References atomic_fetch_and_add_uint32(), and atomic_fetch_and_add_uint64().
Referenced by TEST().
| ATOMIC_INLINE uint64_t atomic_fetch_and_sub_uint64 | ( | uint64_t * | p, |
| uint64_t | x ) |
Definition at line 94 of file atomic_ops_msvc.h.
Referenced by TEST().
| ATOMIC_INLINE size_t atomic_fetch_and_sub_z | ( | size_t * | p, |
| size_t | x ) |
Definition at line 85 of file atomic_ops_ext.h.
References atomic_fetch_and_add_uint32(), and atomic_fetch_and_add_uint64().
Referenced by TEST().
| ATOMIC_INLINE size_t atomic_fetch_and_update_max_z | ( | size_t * | p, |
| size_t | x ) |
Definition at line 121 of file atomic_ops_ext.h.
References atomic_cas_z().
Referenced by Stats::mem_alloc(), and TEST().
| ATOMIC_INLINE int32_t atomic_load_int32 | ( | const int32_t * | v | ) |
Definition at line 194 of file atomic_ops_msvc.h.
References __atomic_impl_load_generic, and v.
Referenced by TEST().
| ATOMIC_INLINE int64_t atomic_load_int64 | ( | const int64_t * | v | ) |
Definition at line 115 of file atomic_ops_msvc.h.
References __atomic_impl_load_generic, and v.
Referenced by TEST().
| ATOMIC_INLINE void * atomic_load_ptr | ( | void *const * | v | ) |
Definition at line 206 of file atomic_ops_ext.h.
References atomic_load_uint32(), atomic_load_uint64(), and v.
Referenced by TEST().
| ATOMIC_INLINE uint32_t atomic_load_uint32 | ( | const uint32_t * | v | ) |
Definition at line 153 of file atomic_ops_msvc.h.
References __atomic_impl_load_generic, and v.
Referenced by atomic_load_ptr(), atomic_load_z(), and TEST().
| ATOMIC_INLINE uint64_t atomic_load_uint64 | ( | const uint64_t * | v | ) |
Definition at line 79 of file atomic_ops_msvc.h.
References __atomic_impl_load_generic, and v.
Referenced by atomic_load_ptr(), atomic_load_z(), and TEST().
| ATOMIC_INLINE size_t atomic_load_z | ( | const size_t * | v | ) |
Definition at line 103 of file atomic_ops_ext.h.
References atomic_load_uint32(), atomic_load_uint64(), and v.
Referenced by TEST().
| ATOMIC_INLINE void atomic_store_int32 | ( | int32_t * | p, |
| int32_t | v ) |
Definition at line 199 of file atomic_ops_msvc.h.
References __atomic_impl_store_generic, and v.
Referenced by TEST().
| ATOMIC_INLINE void atomic_store_int64 | ( | int64_t * | p, |
| int64_t | v ) |
Definition at line 120 of file atomic_ops_msvc.h.
References __atomic_impl_store_generic, and v.
Referenced by TEST().
| ATOMIC_INLINE void atomic_store_ptr | ( | void ** | p, |
| void * | v ) |
Definition at line 215 of file atomic_ops_ext.h.
References atomic_store_uint32(), atomic_store_uint64(), and v.
Referenced by TEST().
| ATOMIC_INLINE void atomic_store_uint32 | ( | uint32_t * | p, |
| uint32_t | v ) |
Definition at line 158 of file atomic_ops_msvc.h.
References __atomic_impl_store_generic, and v.
Referenced by atomic_store_ptr(), atomic_store_z(), and TEST().
| ATOMIC_INLINE void atomic_store_uint64 | ( | uint64_t * | p, |
| uint64_t | v ) |
Definition at line 84 of file atomic_ops_msvc.h.
References __atomic_impl_store_generic, and v.
Referenced by atomic_store_ptr(), atomic_store_z(), and TEST().
| ATOMIC_INLINE void atomic_store_z | ( | size_t * | p, |
| size_t | v ) |
Definition at line 112 of file atomic_ops_ext.h.
References atomic_store_uint32(), atomic_store_uint64(), and v.
Referenced by TEST().
| ATOMIC_INLINE int32_t atomic_sub_and_fetch_int32 | ( | int32_t * | p, |
| int32_t | x ) |
| ATOMIC_INLINE int64_t atomic_sub_and_fetch_int64 | ( | int64_t * | p, |
| int64_t | x ) |
| ATOMIC_INLINE unsigned int atomic_sub_and_fetch_u | ( | unsigned int * | p, |
| unsigned int | x ) |
Definition at line 146 of file atomic_ops_ext.h.
References atomic_add_and_fetch_uint32(), and atomic_add_and_fetch_uint64().
Referenced by rem_memblock(), and TEST().
| ATOMIC_INLINE uint32_t atomic_sub_and_fetch_uint32 | ( | uint32_t * | p, |
| uint32_t | x ) |
Definition at line 143 of file atomic_ops_msvc.h.
References x.
Referenced by GPU_material_free_single(), task_mempool_iter_func(), and TEST().
| ATOMIC_INLINE uint64_t atomic_sub_and_fetch_uint64 | ( | uint64_t * | p, |
| uint64_t | x ) |
| ATOMIC_INLINE size_t atomic_sub_and_fetch_z | ( | size_t * | p, |
| size_t | x ) |
Definition at line 67 of file atomic_ops_ext.h.
References atomic_add_and_fetch_uint32(), and atomic_add_and_fetch_uint64().
Referenced by Stats::mem_free(), rem_memblock(), and TEST().