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-04-07Cleanup: refactor adaptive sampling to more easily change some parametersBrecht Van Lommel
No functional changes yet, this is work towards making CPU and GPU results match more closely.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-02-12Fix Cycles compiler warnings after recent commitBrecht Van Lommel
2020-02-12Cleanup: Move common CUDA/OptiX Cycles device code into separate filePatrick Mours
This reduces code duplication between the CUDA and OptiX device implementations: The CUDA device class is now split into declaration and definition (similar to the OpenCL device) and the OptiX device class implements that and only overrides the functions it actually has to change, while using the CUDA implementation for everything else. Reviewed By: brecht Differential Revision: https://developer.blender.org/D6814
2019-05-01Cleanup: comments (long lines) in cyclesCampbell 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-03-17Cleanup: remove Cycles advanced shading features toggle.Brecht Van Lommel
It's effectively always enabled, only not on some unsupported OpenCL devices. For testing those it's not useful to disable these features. This is replaced by the more fine grained feature toggles that we have now.
2019-02-20Cycles OpenCL: Remove OpenCL MegaKernelJeroen Bakker
Using OpenCL MegaKernel has been slow and therefore not usefull. This patch will remove the mega kernel from the OpenCL codebase and the OpenCLDeviceBase class. T61736: removal of mega kernel T61703: baking does not work with mega kernel Tags: #cycles Differential Revision: https://developer.blender.org/D4383
2018-11-30Fix T58183: crash with CPU + GPU rendering after profiling changes.Brecht Van Lommel
Multi-device was not passing along profiler to the CPU.
2018-11-09Cycles: Cleanup, don't use strict C prototypesSergey Sharybin
Those are more like a legacy of language, which is not needed in C++.
2018-11-09Cycles: Cleanup, spacing after preprocessorSergey Sharybin
It is supposed to be two spaces before comment stating which if else/endif statements corresponds to. Was mainly violated in the header guards.
2018-10-31Cycles: Fix wrong BVH used when disabling AVX2 in debug settingsSergey Sharybin
Mainly useful for debugging. Previously, when AVX2 was disabled in the debug panel but BVH layout was kept on BVH8 nothing was rendered. Needed to make it so supported BVH layout mask for devices is queried in "dynamic", so it is possible to use DebugFlags there.
2018-08-09Cycles: Report more details about OpenCL devicesfclem
2018-07-06Cycles: Enabled half precision textures for OpenCL devices that support the ↵Stefan Werner
cl_khr_fp16 extension.
2018-01-22Cycles: Replace use_qbvh boolean flag with an enum-based propertySergey Sharybin
This was we can introduce other types of BVH, for example, wider ones, without causing too much mess around boolean flags. Thoughs: - Ideally device info should probably return bitflag of what BVH types it supports. It is possible to implement based on simple logic in device/ and mesh.cpp, rest of the changes will stay the same. - Not happy with workarounds in util_debug and duplicated enum in kernel. Maybe enbum should be stores in kernel, but then it's kind of weird to include kernel types from utils. Soudns some cyclkic dependency. Reviewers: brecht, maxim_d33 Reviewed By: brecht Differential Revision: https://developer.blender.org/D3011
2018-01-11Fix T53692: OpenCL multi GPU rendering not using all GPUs.Brecht Van Lommel
Ensure each OpenCL device has a unique ID even if the hardware ID is not unique for some reason.
2017-10-08Code refactor: use DeviceInfo to enable QBVH and decoupled volume shading.Brecht Van Lommel
2017-08-21Cycles: attempt to recover from crashing CUDA/OpenCL drivers on Windows.Brecht Van Lommel
I don't know if this will actually work, needs testing. Ref T52064.
2017-08-08Cycles: Pack kernel textures into buffers for OpenCLMai Lavelle
Image textures were being packed into a single buffer for OpenCL, which limited the amount of memory available for images to the size of one buffer (usually 4gb on AMD hardware). By packing textures into multiple buffers that limit is removed, while simultaneously reducing the number of buffers that need to be passed to each kernel. Benchmarks were within 2%. Fixes T51554. Differential Revision: https://developer.blender.org/D2745
2017-06-08Cycles: Display optional board name in system infoSergey Sharybin
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