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-14Cleanup: comment blocksCampbell Barton
2016-01-04Remove SCons building systemSergey Sharybin
While SCons building system was serving us really good for ages it's no longer having much attention by the developers and started to become quite a difficult task to maintain. What's even worse -- there started to be quite serious divergence between SCons and CMake which was only accumulating over the releases now. The fact that none of the active developers are really using SCons and that our main studio is also using CMake spotting bugs in the SCons builds became quite a difficult task and we aren't always spotting them in time. Meanwhile CMake became really mature building system which is available on every platform we support and arguably it's also easier and more robust to use. This commit includes: - Removal of actual SCons building system - Removal of SCons git submodule - Removal of documentation which is stored in the sources and covers SCons - Tweaks to the buildbot master to stop using SCons submodule (this change requires deploying to the server) - Tweaks to the install dependencies script to skip installing or mentioning SCons building system - Tweaks to various helper scripts to avoid mention of SCons folders/files as well Reviewers: mont29, dingto, dfelinto, lukastoenne, lukasstockner97, brecht, Severin, merwin, aligorith, psy-fi, campbellbarton, juicyfruit Reviewed By: campbellbarton, juicyfruit Differential Revision: https://developer.blender.org/D1680
2015-06-21Support for platforms /wo malloc_usable_sizeCampbell Barton
Was only used for stats, netbsd doesn't define this function.
2015-04-20Guardedalloc: Don't use aligned blocks to calculate memory sloppynessSergey Sharybin
Aligned memory is allocated with memalign() and malloc_usable_size() can't be used to measure this block.
2015-03-12GuardedAlloc: safer MEM_SAFE_FREECampbell Barton
only instantiate the argument once, so MEM_SAFE_FREE(array[i++]), won't cause incorrect behavior.
2015-02-19Guardedalloc: Reset peak memory should set peak to currently allocated memorySergey Sharybin
Otherwise statistics could be really funny looking.
2015-02-18Guardedalloc: Add extra logging and checks in MEM_freeN()Sergey Sharybin
We don't like when NULL is send to MEM_freeN(), but there was some differences between lockfree and guarded allocators: - Lockfree would have silently crash, in both release and debug modes - Guarded allocator would have printed error message, abort in debug but keep working in release build. This commit makes lockfree allocator behavior to match guarded one.
2014-10-14Fix inconsistent types in guardeallocDan Horák
This basically fixes mix of size_t and uintptr_t usages which might be different size.
2014-10-09Enable atomic peak memory detectionSergey Sharybin
This gives more precise information about memory usage which might be real handy when doing memory optimization. It works good here for as long as i can tell but if for some reason you'll be experiencing some weird slowdown please let me know.
2014-09-26Fix build errors in atomic ops and warning in aligned malloc on OS X.Brecht Van Lommel
2014-09-25Guardedalloc: Implement atomic peak memory updateSergey Sharybin
Updating maximum requires a bit of a cycle which usually does 1 iteration only, sometimes needs a bit more but seems there's no speed regressions. For now the code is commented out. This way it's easier for others to verify there's no speed regressions. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D626
2014-08-16CommentsCampbell Barton
2014-07-25Fix inconsistent use of print_error() and fprintf(stderr, ...) in ↵Tamito Kajiyama
MEM_guarded_printmemlist_internal(). Also extended the size of buf[] in print_error() to prevent mem_printmemlist_pydict_script[] from getting truncated when MEM_printmemlist_pydict() is used. Differential revision: https://developer.blender.org/D675 Reviewed by: Campbell Barton
2014-06-16I'd tend to declare dead code is forbiddenSergey Sharybin
All this code blocks commented out with UNUSED comment are really useless.
2014-06-14Comment unused macroCampbell Barton
2014-06-14Attempt to fix sign conversion error happening on buildbotSergey Sharybin
2014-06-13Attempt to fix guardedalloc on OSXSergey Sharybin
2014-06-13Use advantage of SSE2 instructions in gaussian blur nodeSergey Sharybin
This gives around 30% of speedup for gaussian blur node. Pretty much straightforward implementation inside the node itself, but needed to implement some additional things: - Aligned malloc. It's needed to load data onto SSE registers faster. based on the aligned_malloc() from Libmv with some additional trickery going on to support arbitrary alignment (this magic is needed because of MemHead). In the practice only 16bit alignment is supported because of the lack of aligned malloc with arbitrary alignment for OSX. Not a bit deal for now because we need 16 bytes alignment at this moment only. Could be tweaked further later. - Memory buffers in compositor are now aligned to 16 bytes. Should be harmless for non-SSE cases too. just mentioning. Reviewers: campbellbarton, lukastoenne, jbakker Reviewed By: campbellbarton CC: lockal Differential Revision: https://developer.blender.org/D564
2014-06-02Fix compilation error non non-linux architecturesMatteo F. Vescovi
2014-05-19Fix compilation error on kFreeBSDSebastian Ramacher
2014-04-06Move LIKELY/UNLIKELY into headerCampbell Barton
2014-04-06Guarded Alloc: use UNLIKELY for debug memsetCampbell Barton
2014-03-30Enable GCC pedantic warnings with strict flags,Campbell Barton
also modify MIN/MAX macros to prevent shadowing.
2014-03-26Code cleanup: style and warningsCampbell Barton
2014-03-17Code cleanup: styleCampbell Barton
2014-01-23Fix typo in mmap commit from a while agoSergey Sharybin
2014-01-23Memory allocation: do not use mmap for memory allocation on 64 bit.Brecht Van Lommel
On Windows we can only do mmap memory allocation up to 4 GB, which causes a crash when doing very large renders on 64 bit systems with a lot of memory. As far as I can tell the reason to use mmap is to get around address space limitation on some 32 bit operating systems, and I can't see a reason to use it on 64 bit. For the original explanation see here: http://orange.blender.org/blog/stupid-memory-problems Fixes T37841.
2013-11-22Code Cleanup: use NULL for pointer checks and remove joke.Campbell Barton
2013-10-31add atomic_ops.h to cmake's source code listing.Campbell Barton
2013-10-20Fix for wrong implementation of mmap in lock-free allocatorSergey Sharybin
- Freeing was not using proper block length - Duplicating memory block was not aware of mmaped blocks.
2013-10-11Fix FreeBSD build with recent malloc changes, patch by Shane Ambler.Brecht Van Lommel
2013-10-10add MEM_SIZE_OPTIMAL to avoid memory fragmentation & waste lost to slop-space.Campbell Barton
2013-10-10* Fix Windows compiler errors after recent Lock-free memory allocator commit.Thomas Dinges
Patch by Sergey, thanks. :)
2013-10-10Fix OS X build error in malloc code, and warning in rna.Brecht Van Lommel
2013-10-10Lock-free memory allocatorSergey Sharybin
Release builds will now use lock-free allocator by default without any internal locks happening. MemHead is also reduces to as minimum as it's possible. It still need to be size_t stored in a MemHead in order to make us keep track on memory we're requesting from the system, not memory which system is allocating. This is probably also faster than using a malloc's usable size function. Lock-free guarded allocator will say you whether all the blocks were freed, but wouldn't give you a list of unfreed blocks list. To have such a list use a --debug or --debug-memory command line arguments. Debug builds does have the same behavior as release builds. This is so tools like valgrind are not screwed up by guarded allocator as they're currently are. -- svn merge -r59941:59942 -r60072:60073 -r60093:60094 \ -r60095:60096 ^/branches/soc-2013-depsgraph_mt
2013-10-09Fix compilation error after recent libmv changeSergey Sharybin
- Tweaked typedefs in stdint so they match what we've got in BLI_sys_types (needed to explicitly tell sign to MSVC). Not so much harmful to be more explicit here, but we really better to have single stdint int blender. - Tweaked allocations macros so MSVC is happy with structures allocation.
2013-10-09Move guarded objetc allocation to a guardedalloc headerSergey Sharybin
Also made libmv-capi use guarded objetc allocation. Run into some suspecious cases when it was not so clear whether memory is being freed or not. Now we'll know for sure whether there're leaks or not :) Having this macros in a guardedalloc header helps using them in other areas (for now it's OCIO and libmv, but in the future it'll be more places).
2013-09-05Added a brie instruction how to build simple memtestSergey Sharybin
2013-09-03reorder BLI_strict_flags.h include so its not conflicting with stdio.h on apple.Campbell Barton
2013-09-01kd-tree,Campbell Barton
- replace numbers with defines for allocation increments and default array size. - move array reallocation into a static function (deduplicate 2x). also fix own mistake with uninitialized slop-space var in memory printing statistics.
2013-09-01Mingw/Windows Compiling FixJoshua Leung
This commit attempts to fix the following error: intern\guardedalloc\intern\mallocn.c: In function 'rem_memblock': intern\guardedalloc\intern\mallocn.c:977:48: error: conversion to 'intptr_t' from 'size_t' may change the sign of the result [-Werror=sign-conversion] From the references I've managed to find, it appears that the second arg to munmap() should be size_t not intptr_t. Fortunately though, we don't use this arg anyways atm, so this should be quite harmless...
2013-09-01use strict flags for guarded allocCampbell Barton
2013-08-30Attempted fix for #36569: couldn't unmap memory errors on Windows. The ↵Brecht Van Lommel
guardedalloc optimizations were not entirely thread safe for mmap.
2013-08-29correct own recent commit, malloc_usable_size() isn't valid for mmap()'d memory.Campbell Barton
2013-08-28should fix builds for osxCampbell Barton
2013-08-28include slop-space in debug statistics (gcc/clang only)Campbell Barton
2013-08-24add GPL header to treehash.c and add missing includes to cmake.Campbell Barton
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-19Added check for whether thread lock is being removed while thread is using ↵Sergey Sharybin
guarded alloc. -- svn merge -r58788:58789 ^/branches/soc-2013-depsgraph_mt
2013-08-15Blender might be compiled without guardedalloc againSergey Sharybin
This is useful for benchmark tests, to make CPU cache utilization as good as we could with current design.