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
path: root/intern
AgeCommit message (Collapse)Author
2021-10-26Fix Cycles runtime GPU kernel compilation after recent refactorBrecht Van Lommel
2021-10-26Cleanup: remove files that should not have been added in file renamesBrecht Van Lommel
2021-10-26Distance Scrambling for for Cycles X - Sobol versionWilliam Leeson
Cycles:Distance Scrambling for Cycles Sobol Sampler This option implements micro jittering an is based on the INRIA research paper [[ https://hal.inria.fr/hal-01325702/document | on micro jittering ]] and work by Lukas Stockner for implementing the scrambling distance. It works by controlling the correlation between pixels by either using a user supplied value or an adaptive algorithm to limit the maximum deviation of the sample values between pixels. This is a follow up of https://developer.blender.org/D12316 The PMJ version can be found here: https://developer.blender.org/D12511 Reviewed By: leesonw Differential Revision: https://developer.blender.org/D12318
2021-10-26Fix T92502: Position Pass brokenSergey Sharybin
The kernel was writing it for the first sample only, while the film accessor was thinking it needs to be filtered.
2021-10-26Cleanup: skip unnecessary OIIO image setup when not using tiled renderBrecht Van Lommel
2021-10-26Cleanup: compiler warning when building without OpenSubdivBrecht Van Lommel
2021-10-26Cleanup: remove useless WITH_CYCLES_DEVICE_MULTIBrecht Van Lommel
2021-10-26Cycles: remove prefix from source code file namesBrecht Van Lommel
Remove prefix of filenames that is the same as the folder name. This used to help when #includes were using individual files, but now they are always relative to the cycles root directory and so the prefixes are redundant. For patches and branches, git merge and rebase should be able to detect the renames and move over code to the right file.
2021-10-26Cycles: changes to source code folders structureBrecht Van Lommel
* Split render/ into scene/ and session/. The scene/ folder now contains the scene and its nodes. The session/ folder contains the render session and associated data structures like drivers and render buffers. * Move top level kernel headers into new folders kernel/camera/, kernel/film/, kernel/light/, kernel/sample/, kernel/util/ * Move integrator related kernel headers into kernel/integrator/ * Move OSL shaders from kernel/shaders/ to kernel/osl/shaders/ For patches and branches, git merge and rebase should be able to detect the renames and move over code to the right file.
2021-10-26Cleanup: compiler warningsBrecht Van Lommel
2021-10-26Cycles: add additive AO support through Fast GI settingsBrecht Van Lommel
Add a Fast GI Method, either Replace for the existing behavior, or Add to add ambient occlusion like the old world settings. This replaces the old Ambient Occlusion settings in the world properties.
2021-10-26Cycles: restore Denoising Depth pass, when enabling Denoising Data passesBrecht Van Lommel
This is still useful in some cases even if not used by OpenImageDenoise. In the future this may be replaced with a more generic system to control render passes and filtering, but for now this just does what it did before.
2021-10-26Cycles: change Position render pass to be not antialiasedBrecht Van Lommel
Similar to the Depth, for compositing the interpolated values between a far and near object can be non-sensical.
2021-10-26XR: Only show ref space warnings in debug-xr modePeter Kim
This avoids spamming the console for users who have not set up a tracking space/boundary for their headsets.
2021-10-25Cleanup: clang-tidy, spellingCampbell Barton
2021-10-25Fix T92073: Cycles flicker when panning in camera view with border renderSergey Sharybin
Panning in camera view makes the border to be modified, which was causing the Cycles display to believe the rendered result is unusable. The solution is to draw the render result at the display parameters it was updated for. This allows to avoid flickering during panning, zooming, and camera FOV changes. The suboptimal aspect of this is that it has some jelly effect, although it is on the same level as jelly effect of object outline so it is not terrible. Differential Revision: https://developer.blender.org/D12970
2021-10-25Cycles: More accurate volume stack size calculationSergey Sharybin
The idea is to allow having a lot of non-intersecting volumes without allocating volume stack to its full size. With the F11285472 file the memory usage goes from 1400 MiB to 1000 on the RTX6000 card. The fix makes it so the integrator work memory is allocated after scene update which has downside of possible less efficient update when some textures don't fit GPU memory, but has an advantage of making proper decision and having a clear and consistent internal API. Fixes memory part of T92014. Differential Revision: https://developer.blender.org/D12966
2021-10-25Cycles: Revert all host update specific changesSergey Sharybin
The approach didn't turn out to be that useful after all as there are unavoidable dependencies of data from the device. For example, to know whether object intersects volume or not it is required to run displacement kernels. The way of splitting host and device updates caused state where some data is not yet available, causing confusion and leaving code to be error-prone.
2021-10-24Cleanup: spelling in commentsCampbell Barton
2021-10-22Fix Cycles HIP binaries always recompilingBrecht Van Lommel
2021-10-22Cleanup: refactor float/half conversions for clarityBrecht Van Lommel
2021-10-22Cycles: various fixes for HIP and compilation of HIP binariesSayak Biswas
* Additional structs added to the hipew loader for device props * Adds hipRTC functions to the loader for future usage * Enables CPU+GPU usage for HIP * Cleanup to the adaptive kernel compilation process * Fix for kernel compilation failures with HIP with latest master Ref T92393, D12958
2021-10-22Cycles: improve communication of supported GPUs in preferencesBrecht Van Lommel
Mention required CUDA and OptiX compute capability and minimum driver version. For HIP there is a placeholder until we know the supported architectures.
2021-10-21Fix T92363: OptiX fails with ambient occlusion node, after recent changesBrecht Van Lommel
This triggered a compiler bug where it does not handle the sub.s16 PTX instruction. Instead refactor the code so we don't need to do uint16_t subtraction at all. Also update OptiX device to remove the AO pass direct callable. Thanks Patrick Mours for figuring this out.
2021-10-21Cycles: add shadow path compaction for GPU renderingBrecht Van Lommel
Similar to main path compaction that happens before adding work tiles, this compacts shadow paths before launching kernels that may add shadow paths. Only do it when more than 50% of space is wasted. It's not a clear win in all scenes, some are up to 1.5% slower. Likely caused by different order of scheduling kernels having an unpredictable performance impact. Still feels like compaction is just the right thing to avoid cases where a few shadow paths can hold up a lot of main paths. Differential Revision: https://developer.blender.org/D12944
2021-10-21Cleanup: make HIP and CUDA code more consistentBrecht Van Lommel
Ref D12834
2021-10-21Fix T65532: can't assign a key on Italian apple keyboards.Yevgeny Makarov
Apple's international keyboards have an additional `kVK_ISO_Section` key. With some (Italian, Spanish) keyboard layouts, this is `\`, `[` keys which Blender keymap can use. Right now this key is explicitly set as `Unknown`. Note that `kVK_ANSI_Grave` is located in a different location. Differential Revision: https://developer.blender.org/D12905
2021-10-21Re-bundle Libmv to ensure it is in sync with the repoSergey Sharybin
2021-10-20Fix: Add cast to atof for CYCLES_CONCURRENT_STATES_FACTOR env variable parsing.William Leeson
The conversion from double to float was causing a build failure. Differential Revision: https://developer.blender.org/D12946
2021-10-20Cleanup: remove unused codeBrecht Van Lommel
2021-10-20Cycles: more accurately count main paths for adding work tilesBrecht Van Lommel
Easy now thanks to the main and shadow path decoupling. Doesn't help in an benchmark scene except Spring, where it reduces render time by maybe 2-3%. Ref T87836
2021-10-20Cleanup: some renaming to better distinguish main and shadow pathsBrecht Van Lommel
2021-10-20Cycles: make ambient occlusion pass take into account transparency againBrecht Van Lommel
Taking advantage of the new decoupled main and shadow paths. For CPU we just store two nested structs in the integrator state, one for direct light shadows and one for AO. For the GPU we restrict the number of shade surface states to be executed based on available space in the shadow paths queue. This also helps improve performance in benchmark scenes with an AO pass, since it is no longer needed to use the shader raytracing kernel there, which has worse performance. Differential Revision: https://developer.blender.org/D12900
2021-10-20Cycles: reduce kernel reserved local memory when not using shader raytracingBrecht Van Lommel
Ref T87836
2021-10-20HIP device code cleanup and fix for high VRAM usageSayak Biswas
This patch cleans up code for HIP device and makes it more consistent with the CUDA code. It also fixes the issue with high VRAM usage on AMD cards using HIP allowing better performance and usage on cards like 6600XT. Added a check in intern/cycles/kernel/bvh/bvh_util.h to prevent compiler error with hipcc Reviewed By: brecht, leesonw Maniphest Tasks: T92124 Differential Revision: https://developer.blender.org/D12834
2021-10-20Fix T62325, T91990: changing Cycles presets does not update the Blender UIBrecht Van Lommel
2021-10-19Cycles: bake transparent shadows for hairBrecht Van Lommel
These transparent shadows can be expansive to evaluate. Especially on the GPU they can lead to poor occupancy when only some pixels require many kernel launches to trace and evaluate many layers of transparency. Baked transparency allows tracing a single ray in many cases by accumulating the throughput directly in the intersection program without recording hits or evaluating shaders. Transparency is baked at curve vertices and interpolated, for most shaders this will look practically the same as actual shader evaluation. Fixes T91428, performance regression with spring demo file due to transparent hair, and makes it render significantly faster than Blender 2.93. Differential Revision: https://developer.blender.org/D12880
2021-10-19Cycles: avoid intermediate stack array for writing shadow intersectionsBrecht Van Lommel
Helps save one OptiX payload and is a bit more efficient. Differential Revision: https://developer.blender.org/D12909
2021-10-19Cycles: decouple shadow paths from main path on GPUBrecht Van Lommel
The motivation for this is twofold. It improves performance (5-10% on most benchmark scenes), and will help to bring back transparency support for the ambient occlusion pass. * Duplicate some members from the main path state in the shadow path state. * Add shadow paths incrementally to the array similar to what we do for the shadow catchers. * For the scheduling, allow running shade surface and shade volume kernels as long as there is enough space in the shadow paths array. If not, execute shadow kernels until it is empty. * Add IntegratorShadowState and ConstIntegratorShadowState typedefs that can be different between CPU and GPU. For GPU both main and shadow paths juse have an integer for SoA access. Bt with CPU it's a different pointer type so we get type safety checks in code shared between CPU and GPU. * For CPU, add a separate IntegratorShadowStateCPU struct embedded in IntegratorShadowState. * Update various functions to take the shadow state, and make SVM take either type of state using templates. Differential Revision: https://developer.blender.org/D12889
2021-10-19Cycles: improve sampling pattern description regarding adaptive samplingBrecht Van Lommel
2021-10-19Cleanup: fix compiler warningsBrecht Van Lommel
2021-10-19Fix invalid principled diffuse in Cycles OSLSergey Sharybin
Need to initialize components for the full Diffuse BSDF. Steps to reproduce: - Default cube scene - Switch to Cycles renderer - Enable OSL backend - Start viewport render - Observe cube being much black Differential Revision: https://developer.blender.org/D12921
2021-10-19Cleanup: More readable Cycles OSL BSDF definitionSergey Sharybin
A Clang-Format configuration to make the closure definition block to be properly recognized as such. Also small wrapper macro to avoid comma in the actual definition code which was causing unwanted indentation of parameters definition. Requires Clang-Format 7 or newer. The version we ship in the libs is 12, so for recommended development setup it should all be good. Differential Revision: https://developer.blender.org/D12920
2021-10-19Fix T85779: Cycles not using all threads when using OpenImageDenoiseBrecht Van Lommel
The thread affinity setting in OIDN can break multithreading on some CPUs. While this leads to somewhat worse performance on CPUs that do work correctly, it's better than having some CPUs use only half the cores.
2021-10-19Cleanup: Unused device argument in host update functionsSergey Sharybin
Better not to tempt anyone from using unsafe access to device functionality during host update.
2021-10-19Fix invalid OSL shader compilation stateSergey Sharybin
The lookup tables are to be initialized after device free. On Linux was only noticeable when rendering default cube scene with an extra assert. On Windows it was causing an assert in STL in debug builds. Differential Revision: https://developer.blender.org/D12918
2021-10-19Cleanup: clang-formatCampbell Barton
2021-10-18Revert "Cycles: optimize volume stack copying for shadow catcher/compaction"Brecht Van Lommel
This reverts commit 3065d2609700d14100490a16c91152a6e71790e8. Causing crashes in the spring scene.
2021-10-18Cleanup: minor refactoring in preparation of main and shadow path decouplingBrecht Van Lommel
Ref D12889
2021-10-18Cycles: reduce GPU state memory a littleBrecht Van Lommel
* isect Ng is no longer needed for shadows, for main path needed for SSS only * Reduce rng_offset and queued_kernel to 16 bits Ref D12889