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
2017-03-29Cycles: Make all #include statements relative to cycles source directorySergey Sharybin
The idea is to make include statements more explicit and obvious where the file is coming from, additionally reducing chance of wrong header being picked up. For example, it was not obvious whether bvh.h was refferring to builder or traversal, whenter node.h is a generic graph node or a shader node and cases like that. Surely this might look obvious for the active developers, but after some time of not touching the code it becomes less obvious where file is coming from. This was briefly mentioned in T50824 and seems @brecht is fine with such explicitness, but need to agree with all active developers before committing this. Please note that this patch is lacking changes related on GPU/OpenCL support. This will be solved if/when we all agree this is a good idea to move forward. Reviewers: brecht, lukasstockner97, maiself, nirved, dingto, juicyfruit, swerner Reviewed By: lukasstockner97, maiself, nirved, dingto Subscribers: brecht Differential Revision: https://developer.blender.org/D2586
2016-11-07Cycles: Refactor Device selection to allow individual GPU compute device ↵Lukas Stockner
selection Previously, it was only possible to choose a single GPU or all of that type (CUDA or OpenCL). Now, a toggle button is displayed for every device. These settings are tied to the PCI Bus ID of the devices, so they're consistent across hardware addition and removal (but not when swapping/moving cards). From the code perspective, the more important change is that now, the compute device properties are stored in the Addon preferences of the Cycles addon, instead of directly in the User Preferences. This allows for a cleaner implementation, removing the Cycles C API functions that were called by the RNA code to specify the enum items. Note that this change is neither backwards- nor forwards-compatible, but since it's only a User Preference no existing files are broken. Reviewers: #cycles, brecht Reviewed By: #cycles, brecht Subscribers: brecht, juicyfruit, mib2berlin, Blendify Differential Revision: https://developer.blender.org/D2338
2016-10-09Cycles: Split device_opencl.cpp into multiple files for easier maintenanceLukas Stockner
There are no user-visible changes, just some internal restructuring. Differential Revision: https://developer.blender.org/D2231
2016-09-29Cycles: Support earlier tile rendering termination on cancelSergey Sharybin
It will discard the whole tile, but it's still kind of more friendly than fully locked interface (sort of) for until tile is fully sampled. Sorry if it causes PITA to merge for the opencl split work, but this issue bothering a lot when collecting benchmarks.
2016-09-12Cycles: Use XDG's .cache folder for cached kernelsSergey Sharybin
Basically just moves cached kernels from ~/.config/blender/BLENDER_VERSION to ~/.cache/cycles/kernels. This has following benefits: - Follows XDG specification more closely, not as if it's totally crucial or measurable by users, but still nice. - Prevents unexpected sizes of config folder, makes disk space used in more predictable for users way. - Allows to share kernels across multiple Blender versions, which makes it easier debugging at the times close to release. - "Copy Previous Settings" operator will no longer be copying possibly gigabytes of cached kernels, which used to lead to really nast disk usage and annoying delays of copying settings. - In the future we can have some smart logic to clear old unused cached kernels. Currently only done for Linux and OSX. Windows still follows old "cache" folder logic, but it's not really important for now because we don't support kernel compilation on this platform yet. Reviewers: dingto, juicyfruit, brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D2197
2016-08-04Cycles: Report human-readable string of compilation error codeSergey Sharybin
It is possible that compilation will fail without giving anything in the log buffer. For this cases giving a tip about error code will be really handy. Patch by @Ilia, thanks!
2016-07-14Cycles: Give better idea which OpenCL kernel is currently compilingSergey Sharybin
2016-07-14Cycles: Avoid strings passed by value in OpenCL deviceSergey Sharybin
Also use more const qualifiers in the code.
2016-05-31Fix T46207: Slow OpenCL GPU bake and blown out baking Cycles renderSergey Sharybin
2016-05-31Cycles: Add human readable sizes to debug outputMai Lavelle
Some of these values can get quite large and are hard to read, adding this makes it easy to read them at a glance. Reviewed By: sergey Differential Revision: https://developer.blender.org/D2039
2016-02-03Cycles: Cleanup, indentation and bracesSergey Sharybin
2016-01-30Cycles: Cleanup of OpenCL split kernel routinesSergey Sharybin
The idea is to switch from allocating separate buffers for shader data's structure of arrays to allocating one huge memory block and do some index trickery to make it accessed as SOA. This saves quite reasonable amount of lines of code in device_opencl and also makes it possible to get rid of special declaration of ShaderData structure. As a side effect it also makes it easier to experiment with SOA vs. AOS for split kernel. Works fine here on NVidia GTX580, Intel CPU amd AMD Fiji cards. Reviewers: #cycles, brecht, juicyfruit, dingto Differential Revision: https://developer.blender.org/D1593
2016-01-29Cycles: Remove some unused variables from split kernel functionSergey Sharybin
2016-01-28Cycles: Remove few function arguments needed only for the split kernelSergey Sharybin
Use KernelGlobals to access all the global arrays for the intermediate storage instead of passing all this storage things explicitly. Tested here with Intel OpenCL, NVIDIA GTX580 and AMD Fiji, didn't see any artifacts, so guess it's all good. Reviewers: juicyfruit, dingto, lukasstockner97 Differential Revision: https://developer.blender.org/D1736
2016-01-28Cycles: Make OpenCL's argument wrapper able to get int/float values directlySergey Sharybin
2016-01-20Cycles: Fix OpenCL kernel compilation after the bake commitSergey Sharybin
There is no function pointers in OpenCL specification. For as long as we want to support this platform we should follow the specifications. While the code is not totally optimal now, it should not be that huge of performance issue on CPU since it does jump tables just nicely, so it's not that much extra computation here.
2016-01-20Cycles: Pass missing shader filter argument to CUDA and OpenCL kernelsSergey Sharybin
2016-01-12Cycles: Use special debug panel to fine-tune debug flagsSergey Sharybin
This panel is only visible when debug_value is set to 256 and has no affect in other cases. However, if debug value is not set to this value, environment variables will be used to control which features are enabled, so there's no visible changes to anyone in fact. There are some changes needed to prevent devices re-enumeration on every Cycles session create. Reviewers: juicyfruit, lukasstockner97, dingto, brecht Reviewed By: lukasstockner97, dingto Differential Revision: https://developer.blender.org/D1720
2016-01-07Cycles OpenCL: Change environment flags for testing.Thomas Dinges
CYCLES_OPENCL_TEST was removed, there was an insonsistency between opencl_kernel_use_split() and opencl_get_usable_devices(). From now on, to test non whitelisted devices please use either CYCLES_OPENCL_MEGA_KERNEL_TEST or CYCLES_OPENCL_SPLIT_KERNEL_TEST.
2016-01-07Cycles: Refactor how we pass bounce info to light path node.Thomas Dinges
This commit changes the way how we pass bounce information to the Light Path node. Instead of manualy copying the bounces into ShaderData, we now directly pass PathState. This reduces the arguments that we need to pass around and also makes it easier to extend the feature. This commit also exposes the Transmission Bounce Depth to the Light Path node. It works similar to the Transparent Depth Output: Replace a Transmission lightpath after X bounces with another shader, e.g a Diffuse one. This can be used to avoid black surfaces, due to low amount of max bounces. Reviewed by Sergey and Brecht, thanks for some hlp with this. I tested compilation and usage on CPU (SVM and OSL), CUDA, OpenCL Split and Mega kernel. Hopefully this covers all devices. :)
2016-01-03Fix T47100: OpenCL compilation warnings due to missing space in the argument ↵Sergey Sharybin
list
2015-12-30Cycles: Optionally output luminance from the shader evaluation kernelSergey Sharybin
This makes it possible to move some parts of evaluation from host to the device and hopefully reduce memory usage by avoid having full RGBA buffer on the host. Reviewers: juicyfruit, lukasstockner97, brecht Reviewed By: lukasstockner97, brecht Differential Revision: https://developer.blender.org/D1702
2015-12-28Cycles; Fix typo in the commentSergey Sharybin
2015-11-21Cycles: Move build options constructions to DeviceRequestedFeaturesSergey Sharybin
This way it's easier to re-use requested features logic across multiple device implementations.
2015-11-21Cycles: Avoid multiple spaces in OpenCL build optionsSergey Sharybin
This should solve some compilation errors with compilation on OSX.
2015-11-01Cycles: Partially revert previous commitSergey Sharybin
Apparently removing kernel arguments broke NVidia OpenCL. Needs more investigation, for the time being revering changes which caused problem.
2015-11-01Cycles: Remove unused argument from the split kernel functionsSergey Sharybin
Should be no functional changes, just simplifies operation with kernels.
2015-11-01Cycles: Minor code style cleanupSergey Sharybin
2015-10-29Cycles: Add option to force mega kernel to be usedSergey Sharybin
This way it's possible to test mega kernel on various hardware. That being said mega kernel seems to work on Fiji card here in the studio.
2015-10-08Cycles: Cleanup, whitespace around keywordsSergey Sharybin
2015-09-24Cleanup: Typo fixes in OpenCL log messages.Thomas Dinges
2015-08-23Cleanup: spelling/styleCampbell Barton
2015-08-11Cycles: Enable some extra debug prints for OpenCL kernel loadingSergey Sharybin
2015-07-28Cycles: Prepare for more image extension types supportSergey Sharybin
Basically just replace boolean periodic flag with extension type enum in the device API.
2015-07-23Fix T45381: Crash Blender 2.75 in Win7 x64 AMD cardSergey Sharybin
Previous fix didn't work well enough because on Windows Python has different environment than Blender ans setting variables in there made no effect from Blender point of view.
2015-07-19Fix T45484: Regression OpenCL split: access violationSergey Sharybin
That was a primary school error caused by moving statements inside assert() which effectivly disabled crucial code in release builds.
2015-07-18Cycles; Make baking a feature-specific optionSergey Sharybin
This means render devices now might skip building baking kernels in cases when only actual render-related functionality is used. For now it's only implemented for OpenCL split kernel device and mainly needed to work around some compiler-specific bugs which crashes on building the kernel. Using OpenCL for baking might still crash the driver, but at least there is now higher probability of that GPU will be usable to render the scene. Real fix should actually be done in the driver side.
2015-07-18Cycles: Use feature-selective base kernel compilation when using split kernelSergey Sharybin
The idea is to make all kernels as small as possible to work around possible issues with buggy drivers which might fail building feature-complete kernels. It's indeed just a workaround to make at last simple test scenes to render on OpenCL. Real fix should happen from the driver side.
2015-07-18Cycles: Some cleanup if OpenCL base kernel load_kernel()Sergey Sharybin
Hopefully makes it less clumzy, should be no functional changes still.
2015-07-18Cycles: Make OpenCL cache follow out code style a bit closerSergey Sharybin
2015-07-15Cycles: Merging of patch from OSX went wrong in the previous changeSergey Sharybin
That's what happens when you can't commit from a system you're making changes at and someone is behind your back... Sorry for the noise.
2015-07-15Cycles: Missed this in the previous commitSergey Sharybin
2015-07-15Cycles: Enable OpenCL rendering on Apple OSXSergey Sharybin
Requires having latest El Capitan beta 3 OSX due to ome crucial fixes made in the compiler. Supports same features as NVidia OpenCL apart from CMJ (there's no experimental feature set support in megakernel yet). Uses megakernel internally, which works much better than the split kernel. Split kernel is not supported on OSX still, needs to be investigated still. Some more details can be found there: http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles/OpenCL#AMD_on_OSX
2015-07-14Cycles: Add logging to detected OpenCL platforms and devicesSergey Sharybin
Happens on verbosity level 2, should help looking into some of the bug reports in the tracker.
2015-07-07Cycles: Add debug print about CLEW initialization statusSergey Sharybin
2015-07-07Cycles: Add an option to force disable all OpenCL devicesSergey Sharybin
This way it's possible to disable OpenCL devices for AMD devices which are considered whitelisted.
2015-07-03Cycles: Code cleanup, double semicolonSergey Sharybin
2015-07-03Cycles: Error enqueueing split kernels should no longer cause infinite loopSergey Sharybin
2015-07-01Cycles: Fix zero-size buffer allocation with OpenCL devicesSergey Sharybin
This is not really supported by OpenCL but might happen in certain configurations. There might be some remained cases when this happens but so far can not find any,
2015-06-27Cycles: Rework the way how OpenCL devices are createdSergey Sharybin
It was annoying copy-paste happened across OpenCL device constructor, device enumeration and split kernel checks. Now those areas are using an utility function which returns pairs of platform and device IDs for devices which are supported by Cycles and enumeration is happening inside that list. This makes it so filtering is happening in a single place, so there's no need to keep 3 different functions in sync. This commit also fixes a bug with wrong enumeration of devices caused by recent fixes. Those fixes were in fact wrong and only happened to appear to be working on laptop with optimus card on Linux. Root of those issues is in fact in bad Linux driver for optimus cards.