Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-07-19Fix building on NetBSDCampbell Barton
2016-06-11Atomic ops: Fix atomic_add_uint32 and atomic_sub_uint32 in WindowsBenoit Bolsee
The assembler version in Windows used to return the previous value of the variable while all the other versions return the new value. This is now fixed for consistency. Note: this bug had no effect on blender because no part of the code use the return value of these functions, but the future BGE DeckLink module makes use of it to implement reference counter.
2016-05-16Atomic ops: add 'fetch_and_add_uint32' op.Bastien Montagne
Needed for next commit.
2016-05-09Cleanup: header, styleCampbell Barton
2016-05-09Cleanup and refactor our atomic library.Bastien Montagne
This commit: * Removes most of all dirty internal details from public atomi_ops.h file, and move them into /intern private subdir. * Removes unused 'architectures' (__apple__ and jemalloc). * Split each implementation into its own file. * Makes use of C99's limits.h system header to determine pointer and int size, instead of using fix hardcoded list of architectures. * Introduces new 'faked' atomics ops for floats. Note that we may add a lot more real and 'faked' atomic operations over integers and floats (multiplication, division, bitshift, bitwise booleans, etc.), as needs arise. Reviewers: sergey, campbellbarton Differential Revision: https://developer.blender.org/D1982
2016-05-09Atomics: Add atomic_fetch_and_or_uint8() functionSergey Sharybin
Hopefully it compiles on all platforms still..
2016-05-02Fix compilation error on Armel architectureSergey Sharybin
__GCC_HAVE_SYNC_COMPARE_AND_SWAP_n are not defined on this architecture for some reason, however those functions are available. Adding a workaround for newly used __sync_fetch_and_and() function.
2016-01-27Atomics: Use _InterlockedAnd8 direction for 342bit MSVCSergey Sharybin
That's what MSDN tells you to do and that's how to solve the compilation error problem with it.
2016-01-27atomic_ops: add atomic_fetch_and_and_uint8 wrapper.Bastien Montagne
Needed by incomming changes in pbvh.c. Note that we make it much simpler than for other primitives in this file - think we could revise its content to make it simpler one day...
2015-07-01atomic_ops: Fix MSVC versions of add/sub returning original value instead of ↵Bastien Montagne
result of operation. Thanks to Brecht for tip about how to fix this!
2015-07-01atomic_ops: fix typo in func names (uint32 instead of uint64).Bastien Montagne
2015-05-20Atomic operations: Add function declarations at the top of the headerSergey Sharybin
No functional changes, just helps grasping what operations are actually supported.
2014-12-02Fixes for atomic operations when building with MSVCSergey Sharybin
2014-09-26Fix build errors in atomic ops and warning in aligned malloc on OS X.Brecht Van Lommel
2014-09-25Atomics: Add CAS (compare-and-swap) functionsSergey Sharybin
2014-07-25Fix atomix operations on unofficial 64bit archsMatteo F. Vescovi
2014-06-02Fix compilation on unofficial 64bit archsMatteo F. Vescovi
2013-12-12Attempt to fix compilation error on Debian armel kernelSergey Sharybin
2013-09-01Fix OS X compile error after enabling strict build flags for this module.Brecht Van Lommel
2013-08-19code cleanup: confirm include guards to our conventionCampbell Barton
2013-08-19Apparently sizeof(unsigned) is 4 bytes on both 32 and 64 bit platformsSergey Sharybin
For now assume sizeof(int) == 4 for all supported platforms, could be changed in the future. Added an assert to functions which depends on this this, so we'll easily notice bad things happening.
2013-08-19Forgot this in previous commitSergey Sharybin
Solves compilation issues on Win and OSX -- svn merge -r59180:59181 ^/branches/soc-2013-depsgraph_mt
2013-08-19Speedup for guarded allocatorSergey Sharybin
- Re-arrange locks, so no actual memory allocation (which is relatively slow) happens from inside the lock. operation system will take care of locks which might be needed there on it's own. - Use spin lock instead of mutex, since it's just list operations happens from inside lock, no need in mutex here. - Use atomic operations for memory in use and total used blocks counters. This makes guarded allocator almost the same speed as non-guarded one in files from Tube project. There're still MemHead/MemTail overhead which might be bad for CPU cache utilization
2013-08-19Commit atomic operations fileSergey Sharybin
Not currently used, but needed for some further changes