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-06-24Cleanup: warningsCampbell Barton
2015-06-18Cycles: Don't show devices which does not support OpenCL 1.1 in the menuSergey Sharybin
They'll be checked for the version later and that check will fail anyway, so better to not allow user to see unsupported device in the list. Also corrected one more issue with the device enumeration.
2015-06-17Cycles: Fix wrong numbering of OpenCL devices when some of them are skippedSergey Sharybin
Skipped devices did not reflect in the device number, which might result in bad array indices. This might also resolve T45037, and need to be ported to a release branch.
2015-06-08Cycles: Move requested feature conversion to an own functionSergey Sharybin
This way it could be used for the shader/baking kernels easily n the future. making those kernels more optimal.
2015-06-08Cycles: Remove round-up trickery for max closure in split OpenCL kernelSergey Sharybin
Round-up was only enabled for viewport render, which was for a long time hardcoded to use 64 closures. This was done in order to avoid unnecessary kernel re-compilations when tweaking the shader tree. We could enable selective closure compilation in the viewport later if it'll give measurable speed improvements, but even then round-up is to happen outside of the device level, This commit also removes early output which happened in cases when max closure did not change. It was wrong because other requested kernel features might have been changed.
2015-06-08Cycles: Make hair, object and motion blur selective compiled into OpenCLSergey Sharybin
This features are now based on the scene settings, so scenes without those features used are rendered even faster. This gives about 30% speedup on the AMD A10 APU here, but at the same time it does not mean such an improvement will happen on all the hardware. That being said, the Tonga device here seems to have no measurable difference. In any case it seems handy to have for the future, when we'll want to support SSS in the kernel or to port selective compilation/split kernel to CUDA devices.
2015-06-05Cycles: Initial support for OpenCL capabilities reportsSergey Sharybin
For now it's just generic information, still need to expose memory, workgorup sizes and so on.
2015-06-01Cycles: Strip meaningless empty output form the MVidia OpenCL compilerSergey Sharybin
2015-06-01Cycles: Report build flags used for the OpenCL kernel compilationSergey Sharybin
For now it's reported to the stdout, matching to the CUDA behavior. In the future we can hide this into GLog logging once the kernels are considered all stable and so.
2015-05-26Fix T44831: Crash when using Intel OpenCL with split kernelSergey Sharybin
The issue was caused by underallocation of object motion related arrays, which happened by accident.
2015-05-25Fix T44830, wrong sample progress number when using split device.Thomas Dinges
Value was not set, moved it out of the constructor into device_opencl_create() now.
2015-05-22Cycles: Restructure kernel files organizationSergey Sharybin
Since the kernel split work we're now having quite a few of new files, majority of which are related on the kernel entry points. Keeping those files in the root kernel folder will eventually make it really hard to follow which files are actual implementation of Cycles kernel. Those files are now moved to kernel/kernels/<device_type>. This way adding extra entry points will be less noisy. It is also nice to have all device-specific files grouped together. Another change is in the way how split kernel invokes logic. Previously all the logic was implemented directly in the .cl files, which makes it a bit tricky to re-use the logic across other devices. Since we'll likely be looking into doing same split work for CUDA devices eventually it makes sense to move logic from .cl files to header files. Those files are stored in kernel/split. This does not mean the header files will not give error messages when tried to be included from other devices and their arguments will likely be changed, but having such separation is a good start anyway. There should be no functional changes. Reviewers: juicyfruit, dingto Differential Revision: https://developer.blender.org/D1314
2015-05-22Cycles: Remove TM / R and whitespace from OpenCL device names.Thomas Dinges
Was already done for CPU devices, now we also do this for OpenCL.
2015-05-21Cycles: CYCLES_OPRNCL_DEBUG now affects on split kernel as wellSergey Sharybin
2015-05-21Cycles: Restore some lost custom cflags passed to the kernel compilationSergey Sharybin
They were lost during simplification of kernel loading but might be rather crucial for the performance. Also made it so cflags are shared across kernels. Surely it might lead to some unwanted kernel re-compilation but at the same time they might easily run out of sync with the changes in kernel and so.
2015-05-20Cycles: Cleanup, synchronize name across file name, program and kernel namesSergey Sharybin
2015-05-20Cycles: Simplify code around kernel loadingSergey Sharybin
2015-05-17Cycles: Enable advanced shading on AMD / OpenCL.Thomas Dinges
That is needed for Motion Blur and Render Passes to work properly. I hope there are no nasty side effects, but we need to test this.
2015-05-17Cleanup: Typos, typos everywhere. :DThomas Dinges
2015-05-17Cleanup: typosCampbell Barton
2015-05-15Cleanup: style, spellingCampbell Barton
2015-05-15Cycles: Pass __KERNEL_EXPERIMENTAL__ to OpenCL split kernelsSergey Sharybin
Experimental feature set id currently unavailable for megakernel, it'll require some changes to the cache system to distinguish cached regular kernels from cached experimental kernels. Currently unused, but some features will be enabled soon.
2015-05-15Cycles: Pass device compute capabilities to kernel via build optionsSergey Sharybin
This way it's possible to do device-selective feature disabling/enabling. Currently only supported for NVidia devices via OpenCL extension.
2015-05-15Cycles: Cleanup, move build options string calculation into the device classSergey Sharybin
This way it's easier to access platform name, device ID and other stuff which might be needed to define build options.
2015-05-14Cycles: Enable object motion blur on Intel OpenCL platformSergey Sharybin
This required allocating some memory related on object transform needed by ShaderData and currently it is done for all the platforms. Since we're targeting full feature-complete platforms this is rather acceptable at this point and in the future we'll do selective NO_HAIR/NO_SSS/NO_BLUR kernels. This is experimental still and in fact there're some major issues on NVidia platform and it's not really clear if it's a bug in compiler, some uninitizlied variable or other kind of issue.
2015-05-14Cycles: Various fixesSergey Sharybin
Some stupid fixes like spaces around operator and missing semicolon, plus fix for wrong detecting of ShaderData SOA size. Thar was harmless since there's only one closure array, but still better to fix this.
2015-05-14Cycles: Remove meaningless ifdef checks for features in device_openclSergey Sharybin
This file was actually checking for features enabled on CPU and surely all of them were enabled, so removing them does not cause any difference. ideally we'll need to do runtime feature detection and just pass some stuff as NULL to the kernel, or maybe also have variadic kernel entry points which is also possible quite easily.
2015-05-13Cycles: Cleanup: use generic utility function to set kernel argumentsSergey Sharybin
2015-05-13Cycles: Inline sizeof of elements needed for the split kernelSergey Sharybin
No need to store them in the class, they're unlikely to be changed and if they do change we're in big trouble anyway. More appropriate approach would be then to typedef this things in kernel_types.h, but still use inlined sizeof(),
2015-05-10Cycles: Correction to opencl whitelist checkSergey Sharybin
Was using platform as a device id accidentally.
2015-05-09Cycles: Only whitelist AMD GPU devices in the OpenCL sectionSergey Sharybin
Only those ones are priority for now, all the rest are still testable if CYCLES_OPENCL_TEST or CYCLES_OPENCL_SPLIT_KERNEL_TEST environment variables are set.
2015-05-09Cycles: OpenCL kernel splitGeorge Kyriazis
This commit contains all the work related on the AMD megakernel split work which was mainly done by Varun Sundar, George Kyriazis and Lenny Wang, plus some help from Sergey Sharybin, Martijn Berger, Thomas Dinges and likely someone else which we're forgetting to mention. Currently only AMD cards are enabled for the new split kernel, but it is possible to force split opencl kernel to be used by setting the following environment variable: CYCLES_OPENCL_SPLIT_KERNEL_TEST=1. Not all the features are supported yet, and that being said no motion blur, camera blur, SSS and volumetrics for now. Also transparent shadows are disabled on AMD device because of some compiler bug. This kernel is also only implements regular path tracing and supporting branched one will take a bit. Branched path tracing is exposed to the interface still, which is a bit misleading and will be hidden there soon. More feature will be enabled once they're ported to the split kernel and tested. Neither regular CPU nor CUDA has any difference, they're generating the same exact code, which means no regressions/improvements there. Based on the research paper: https://research.nvidia.com/sites/default/files/publications/laine2013hpg_paper.pdf Here's the documentation: https://docs.google.com/document/d/1LuXW-CV-sVJkQaEGZlMJ86jZ8FmoPfecaMdR-oiWbUY/edit Design discussion of the patch: https://developer.blender.org/T44197 Differential Revision: https://developer.blender.org/D1200
2015-04-10Cycles: Add some statistics loggingSergey Sharybin
Covers number of entities in the scene (objects, meshes etc), also reports sizes of textures being allocated.
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-01-06Cycles: Repot CPU and CUDA capabilities to system info operatorSergey Sharybin
For CPU it gives available instructions set (SSE, AVX and so). For GPU CUDA it reports most of the attribute values returned by cuDeviceGetAttribute(). Ideally we need to only use set of those which are driver-specific (so we don't clutter system info with values which we can get from GPU specifications and be sure they stay the same because driver can't affect on them).
2015-01-02Cycles: Fix compilation error on AVX platforms with -arch-nativeSergey Sharybin
Was a conflict in headers between clew and util_optimization.h.
2014-12-25Cleanup: Fix Cycles Apache header.Thomas Dinges
This was already mixed a bit, but the dot belongs there.
2014-10-05Cycles: Make OpenCL folks happy to use __KERNEL_DEBUG__Sergey Sharybin
Quite straightforward change, the only annoying thing is that we can't use indentation for include directive just because of the way headers inlineing works for OpenCL. Might do smarter job in path_source_replace_includes() but don't want to spend time on this yet.
2014-09-04Fix wrong track of the memory when doing device vector resize before freeing itSergey Sharybin
This is rather legit case which happens i.e. when having persistent images enabled and session is updating the lookup tables. Now device_memory keeps track of amount of memory being allocated on the device, which makes freeing using the proper allocated size, not the CPU side buffer size.
2014-08-19Fix T41471 Cycles Bake: Setting small tile size results in wrong bake with ↵Dalai Felinto
stripes rather than the expected noise pattern This problem was introduced in 983cbafd1877f8dbaae60b064a14e27b5b640f18 Basically the issue is that we were not getting a unique index in the baking routine for the RNG (random number generator). Reviewers: sergey Differential Revision: https://developer.blender.org/D749
2014-08-09Cycles OpenCL error to string removed in favour of the same function in clew.Martijn Berger
2014-08-05Deduplicate CUDA and OpenCL wranglersSergey Sharybin
For now it was mainly about OpenCL wrangler being duplicated between Cycles and Compositor, but with OpenSubdiv work those wranglers were gonna to be duplicated just once again. This commit makes it so Cycles and Compositor uses wranglers from this repositories: - https://github.com/CudaWrangler/cuew - https://github.com/OpenCLWrangler/clew This repositories are based on the wranglers we used before and they'll be likely continued maintaining by us plus some more players in the market. Pretty much straightforward change with some tricks in the CMake/SCons to make this libs being passed to the linker after all other libraries in order to make OpenSubdiv linked against those wranglers in the future. For those who're worrying about Cycles being less standalone, it's not truth, it's rather more flexible now and in the future different wranglers might be used in Cycles. For now it'll just mean those libs would need to be put into Cycles repository together with some other libs from Blender such as mikkspace. This is mainly platform maintenance commit, should not be any changes to the user space. Reviewers: juicyfruit, dingto, campbellbarton Reviewed By: juicyfruit, dingto, campbellbarton Differential Revision: https://developer.blender.org/D707
2014-07-25Cycles Bake: show progress bar during bakeDalai Felinto
Baking progress preview is not possible, in parts due to the way the API was designed. But at least you get to see the progress bar while baking. Reviewers: sergey Differential Revision: https://developer.blender.org/D656
2014-06-06Fix T40370: cycles CUDA baking timeout with high number of AA samples.Brecht Van Lommel
Now baking does one AA sample at a time, just like final render. There is also some code for shader antialiasing that solves T40369 but it is disabled for now because there may be unpredictable side effects.
2014-05-27Fix T40379: world MIS causing too much CUDA memory usage.Brecht Van Lommel
The kernel for baking the world texture was the same as the one used for baking. Now that's separate which allows the kernel to reserve much less memory.
2014-05-04Style cleanup: indentation, bracesCampbell Barton
2014-05-03Code cleanup: style, require ; for cuda_assert, opencl_assertCampbell Barton
2014-05-03Code cleanup: Add -Werror=float-conversion to CyclesCampbell Barton
2014-04-21Cleanup: Remove OpenCL __MULTI_CLOSURE__ sanity check, not needed anymore ↵Thomas Dinges
after 04a10907dc41.