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
2015-05-10Cycles: Use native float->half conversion instructions for Haswell CPUs.Sv. Lockal
This makes OCIO viewport color correction a little bit faster (about -0.5s for 100 samples) Also set max half float value to 65504.0 to conform with IEEE 754.
2015-05-05Cycles: Fix for wrong clamp usage in fast mathSergey Sharybin
2015-04-30Fix T44548: Cycles Tube Mapping off / not compatible with BISergey Sharybin
Was a typo in original implementation, probably a result of some code reshuffle happened for optimization reasons.
2015-04-29Cycles: Fix crashes when loading cache created with pre-leaf split buildsSergey Sharybin
2015-04-27Cycles: Use native saturate function for CUDASergey Sharybin
This more a workaround for CUDA optimizer which can't optimize clamp(x, 0, 1) into a single instruction and uses 4 instructions instead. Original patch by @lockal with own modification: Don't make changes outside of the kernel. They don't make any difference anyway and term saturate() has a bit different meaning outside of kernel. This gives around 2% of speedup in Barcelona file, but in more complex shader setups with lots of math nodes with clamping speedup could be much nicer. Subscribers: dingto Projects: #cycles Differential Revision: https://developer.blender.org/D1224
2015-04-10Cycles: Make transform from viewplane a generic utility functionSergey Sharybin
2015-04-06Cycles: de-duplicate fast/approximate erf function calculationSergey Sharybin
Our own implementation is in fact the same performance as in fast_math from OpenShadingLanguage, but implementation from fast_math is using explicit madd function, which increases chance of compiler deciding to use intrinsics.
2015-04-02Cycles: Make guarded allocator happy about strict C++ flagsSergey Sharybin
2015-03-30Cycles: Correction to previous commit: non-msvc compilers also should use ↵Sergey Sharybin
nullptr
2015-03-30Cycles: Fix compilation error with MSVC after recent C++11 changesSergey Sharybin
2015-03-29Optionally use c++11 stuff instead of boost in cycles where possible. We do ↵Martijn Berger
and continue to depend on boost though Reviewers: dingto, sergey Reviewed By: sergey Subscribers: #cycles Differential Revision: https://developer.blender.org/D1185
2015-03-27Cycles: Code cleanup, spaces around keywordsSergey Sharybin
This inconsistency drove me totally crazy, it's really confusing when it's inconsistent especially when you work on both Cycles and Blender sides. Shouldn;t cause merge PITA, it's whitespace changes only, Git should be able to merge it nicely.
2015-03-27Cycles: Code cleanup, prepare for strict C++ flagsSergey Sharybin
2015-03-13Initial compilation support with C++11 featureset enabledSergey Sharybin
This commit makes some preliminary fixes and tweaks aimed to make blender compilable with C++11 feature set. This includes: - Build system attribute to enable C++11 featureset. It's for sure default OFF, but easy to enable to have a play around with it and make sure all the stuff is compilable before we go C++11 for real. - Changes in Compositor to use non-named cl_int structure fields. This is because __STRICT_ANSI__ is defined by default by GCC and OpenCL does not use named fields in this case. - Changes to TYPE_CHECK() related on lack of typeof() in C++11 This uses decltype() instead with some trickery to make sure returned type is not a reference. - Changes for auto_ptr in Freestyle This actually conditionally switches between auto_ptr and unique_ptr since auto_ptr is deprecated in C++11. Seems to be not strictly needed but still nice to be ready for such an update anyway/ This all based on changes form depsgraph_refactor branch apart from the weird changes which were made in order to support MinGW compilation. Those parts of change would need to be carefully reviewed again after official move to gcc49 in MinGW. Tested on Linux with GCC-4.7 and Clang-3.5, other platforms are not tested and likely needs some more tweaks. Reviewers: campbellbarton, juicyfruit, mont29, lukastoenne, psy-fi, kjym3 Differential Revision: https://developer.blender.org/D1089
2015-03-07Cycles: add better specializations for SSE shuffle function and few more ↵Sv. Lockal
wrappers.
2015-03-07Fix T41066: An actual fix for curve intersection on FMA-enabled CPUsSv. Lockal
2015-02-19Cycles: Use size_t for aligned allocatorSergey Sharybin
Seems it got changes by accident to int during guarded allocation work, causing bad memory allocations.
2015-02-19Cycles: Make sphere and tube image mapping friendly with OpenCLSergey Sharybin
OpenCL doesn't let you to get address of vector components, which is kinda annoying. On the other hand, maybe now compiler will have more chances to optimize something out.
2015-02-19Cycles: Make util_math_fast.h compatible with OpenCLSergey Sharybin
2015-02-18Cycles: Make aligned allocation to respect WITH_BLENDER_GUARDEDALLOCSergey Sharybin
Title pretty says it all actually. Can only briefly mention that we're indeed entering that state when after applying some WIP patches having much fuller statistics about memory usage would help giving exact memory benefit.
2015-02-18CMake: picky style editCampbell Barton
'cmake_consistency_check.py' relies on this formattng.
2015-02-18Cleanup: Remove support for Boost filesystem 2.Thomas Dinges
This is deprecated since Boost 1.48.
2015-02-16Cycles: Correction for C++11 compilation error after recent vector changesSergey Sharybin
2015-02-15Cycles: Hopefully compilation error fix for OSXSergey Sharybin
2015-02-15Cycles: Add ifdef switch to use blender's guardedalloc for vector allocationSergey Sharybin
It's actually a bad level call, but it's inside ifdef block and disabled by default and only intended to be used for development purposes. Main idea of this change is to combine statistics coming from Cycles and Blender during scene synchronization step, to see if further changes are actually reducing memory footprint.
2015-02-15Cycles: Add utility method to vector which totally frees memory used the vectorSergey Sharybin
The method is called vector::free_memory(). Use with care since it'll invalidate all the pointers to vector memory, all iterators and so on. Currently unused, but might become handy when clearing unused data.
2015-02-15Cycles: Implement guarded allocator for STL classesSergey Sharybin
The commit implements a guarded allocator which can be used by STL classes such as vectors, maps and so on. This allocator will keep track of current and peak memory usage which then can be queried. New code for allocator is only active when building Cycles with debug flag (WITH_CYCLES_DEBUG) and doesn't distort regular builds too much. Additionally now we're using own subclass of std::vector which allows us to implement shrink_to_fit() method which would ensure capacity of the vector is as big as it should be (without this making vector smaller will still use all previous memory allocated).
2015-02-15Cycles: Replace own aligned allocator with system oneSergey Sharybin
This replaces our own implementation of aligned malloc with system calls, which depends on which operation system you're on. This is probably really minor noticeable change, but in the same time it might reduce amount of wasted memory.
2015-02-14Cleanup: Comment block for sse helpers.Thomas Dinges
2015-02-13Fix Cycles compilation on x86, without SSE.Thomas Dinges
2015-02-11Cleanup: Remove unused Cycles cpuid code.Thomas Dinges
2015-02-10Cycles: Control CPU capabilities via environment variablesSergey Sharybin
Purely developers-only feature which allows to disable some of the CPU capabilities. This way it's easier to test different kernels on the same machine.
2015-02-10Cycles: Add utility functions to print ssef, ssei and ssebSergey Sharybin
Nothing special, just really handy for debugging.
2015-02-06Cycles: Some more constants fixes for fast mathSergey Sharybin
2015-02-06Cycles: Use proper constant name for 1/pi in fast mathSergey Sharybin
2015-02-02Cycles: Allow paths customization via environment variablesSergey Sharybin
This is for development and test environment setup only, not for regular users usage hence no mentioning in the man page needed.
2015-01-30Cycles: Add fast math function moduleSergey Sharybin
It is based on fmath.h from OIIO and could be used to give some speedup in areas where absolute accuracy is not so critical.
2015-01-22Cycles: Fix compilation error with some compilersSergey Sharybin
Not sure why this was not visible previously, but the change is logical anyway.
2015-01-22Fix T43120: Cycles mapping node rotation order is different from viewportSergey Sharybin
Root of the issue goes to the fact that since the very beginning Cycles was using ZYX euler rotation for mapping shader node but blender was always using XYZ euler rotation. This commit switches Cycles to use XYZ euler order and adds versioning code to preserve backward compatibility. There was no really nice solution here because either we're ending up with versioning code or we'll need to deal with all sort of exceptions from blender side in order to support ZYX order for the mapping node. The latest one is also creepy from the other render engines points of view -- that might break compatibility with existing bindings or introduce some extra headache for them in the future. This could also become a PITA for us with need of supporting all sort of weird and wonderful exceptions in the refactored viewport project. NOTE: This commit breaks forward compatibility, meaning opening new files in older blender might not give proper result if Mapping node was used. Also, libraries are to be re-saved separately from the scene file, otherwise versioning code for them wouldn't run if scene file was re-saved with new version of blender. Reviewers: brecht, juicyfruit, campbellbarton Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D973
2015-01-21Cycles: Support tube projection for imagesSergey Sharybin
This way Cycles finally becomes feature-full on image projections compared to Blender Internal and Gooseberry Project Team could finally finish the movie.
2015-01-19Cycles: Avoid crash in statistics when canceling BVH buildSergey Sharybin
Also add missing render_time initialization in progress.
2015-01-14Cycles: Ignore preprocessing time in ETA calculationLukas Stockner
This patch makes Cycles ignore the time spent in BVH construction etc. when estimating the remaining time. Considering that the remaining time is calculated based on the average time per tile so far, as far as I understand it makes no sense to include the preprocessing time. Reviewers: sergey, #cycles Reviewed By: sergey, #cycles Subscribers: sergey Projects: #cycles Differential Revision: https://developer.blender.org/D895
2015-01-02Fix T43027: OpenCL kernel compilation broken after QBVHSergey Sharybin
OpenCL apparently does not support templates, so the idea of generic function for swapping is a bit of a failure. Now it is either inlined into the code (in triangle intersection) or has specific implementation for QBVH. This is probably even better, because we can't create QBVH-specific function in util_math anyway.
2014-12-31Cycles: Post-reintegration tweaks to ensure things do compileSergey Sharybin
This commit contains all the tweaks which were missing in initial patch re-integration from the standalone Cycles repository. This commit also contains an utility cmake macro to help linking targets with different libraries for release/debug builds, the name currently is target_link_libraries_decoupled it gets a target and list of libraries and makes sure debug builds are using libraries with "_d" suffix. After all this changes it'll hopefully be easier to interchange patches between blender and standalone repositories, because they're now quite identical.
2014-12-31Cycles: Be ready for gflags namespace auto-detectSergey Sharybin
This way it is now possible to use gflags >= 2.1, where all the functions were moved from google to gflags namespace. This isn't currently used in blender, but for standalone repository this change is essential.
2014-12-31Cycles: Fully support WITH_CYCLES_LOGGING optionSergey Sharybin
This commit generalizes logging module a little bit in making it possible to use Glog logging in standalone Cycles repository.
2014-12-31Cycles: Fix compilation error when OIIO is compiled with external PugiXML parserSergey Sharybin
Basic idea is to check whether OIIO is compiled with embedded PugiXML parser and if so use PugiXML from OIIO, otherwise find a standalone PugiXML library.
2014-12-31Cycles: Synchronize changes with standalone repositorySergey Sharybin
This changes were done in original commit of the standalone Cycles repository and needed here for easier patch synchronization.
2014-12-25Cleanup: Fix Cycles Apache header.Thomas Dinges
This was already mixed a bit, but the dot belongs there.
2014-12-25Cycles: Add some utility functions and structuresSergey Sharybin
Most of them are not currently used but are essential for the further work. - CPU kernels with SSE2 support will now have sse3b, sse3f and sse3i - Added templatedversions of min4, max4 which are handy to use with register variables. - Added util_swap function which gets arguments by pointers. So hopefully it'll be a portable version of std::swap.