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
2020-12-04Atomics: Add 16 bit fetch + AND and fetch + OR signed integer operationsJulian Eisel
I could use a 16 bit atomic fetch + AND for D9719. The alternative would be to turn a `short` into a `int` in DNA, which isn't a nice workaround. Also adds tests for the new functions.
2020-11-25Atomics: Fix missing 64bit implementation for 32bit platformsSergey Sharybin
Blender uses 64bit atomics to manipulate SessionUUID, and these atomics were not defined on any of 32bit platforms. While official support is limited to 64bit platforms only, the code should not make assumptions about bitness or endianess, in terms that there should be codepaths and fallback (or provision of them) for 32bit platforms. This change makes 64bit atomic functions defined for all platforms. The atomic_test was compiled and successfully tested on i686 and armv7l platforms. The rest of compilation process of Blender will be very tedious, so that was not done. This change is essential, but not necessarily enough to make Blender compilable on i686 (ability to compile Blender on 32bit platforms was lost during the 2.91 development). This is a functional part of original fix done by Brecht in D9577.
2020-11-25Atomics: Cleanup, move defines closer to usageSergey Sharybin
There is a special defines block needed for ARM on Linux. Move it from public header to an implementation file. No functional changes. This is a non-functional part of original fix done by Brecht in D9577.
2020-10-19Spelling: It's Versus ItsHarley Acheson
Corrects incorrect usage of contraction for 'it is', when possessive 'its' was required. Differential Revision: https://developer.blender.org/D9250 Reviewed by Campbell Barton
2019-05-01Cleanup: comments (long lines) in atomicCampbell Barton
2019-04-17Cleanup: line wrapping caused by commentsCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-02Cleanup: remove author/date info from doxy headersCampbell Barton
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2017-11-23atomic_ops: add `atomic_cas_float` helper.Bastien Montagne
2017-11-23atomic_ops: add char versions of uint8_t atomic primitives.Bastien Montagne
2017-11-23atomic_ops: add signed versions of primitives.Bastien Montagne
Reason is motsly that dealing with type conversion in calling code is not great, makes it less readable, and can generate hidden bugs in case original type changes and atomic primitive calls are not updated accordingly...
2017-09-25Add an 'atomic cas' wrapper for pointers.Bastien Montagne
Avoids having to repeat obfuscating castings everywhere...
2017-08-23Fix implementation of atomic update max and move to a central locationMai Lavelle
While unlikely to have had any serious effects because of limited use, the previous implementation was not actually atomic due to a data race and incorrectly coded CAS loop. We also had duplicates of this code in a few places, it's now been moved to a single location with all other atomic operations.
2017-03-01Cleanup: Use explicit unsigned int in atomicsSergey Sharybin
2016-11-15Atomics: Add some extra utility functionsSergey Sharybin
Also fixed semantic of fetch-and-add in assembler implementation, it seemed to not match the naming.
2016-11-15Atomics: Make naming more obvious about which value is being returnedSergey Sharybin
2016-11-08Atomics: Add 32 bit version of fetch and AND/ORSergey Sharybin
2016-05-16Atomic ops: add 'fetch_and_add_uint32' op.Bastien Montagne
Needed for next commit.
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