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
2022-10-18Fix T101529: Blender crashes when using Path GuidingSebastian Herholz
2022-10-17Fix T101850: Cycles DDS oversaturation when alpha is in useAras Pranckevicius
DDS files coming through OIIO needed a similar treatment as TGA in T99565; just for DDS OIIO just never set the "unassociated alpha" attribute. Fixes T101850. Reviewed By: Brecht Van Lommel Differential Revision: https://developer.blender.org/D16270
2022-10-17Fix T99565: Cycles reading TGA files with alpha different than BlenderBrecht Van Lommel
Thanks to Lukas for tracking down the cause in OIIO.
2022-10-17Cycles: Fix floor intrinsic for ARM NeonLukas Stockner
2022-10-16Fix T98672: Noise texture shows incorrect behaviour for large scalesLukas Stockner
This was a floating point precision issue - or, to be more precise, an issue with how Cycles split floats into the integer and fractional parts for Perlin noise. For coordinates below -2^24, the integer could be wrong, leading to the fractional part being outside of 0-1 range, which breaks all sorts of other things. 2^24 sounds like a lot, but due to how the detail octaves work, it's not that hard to reach when combined with a large scale. Since this code is originally based on OSL, I checked if they changed it in the meantime, and sure enough, there's a fix for it: https://github.com/OpenImageIO/oiio/commit/5c9dc68391e9 So, this basically just ports over that change to Cycles. The original code mentions being faster, but as pointed out in the linked commit, the performance impact is actually irrelevant. I also checked in a simple scene with eight Noise textures at detail 15 (with >90% of render time being spent on the noise), and the render time went from 13.06sec to 13.05sec. So, yeah, no issue.
2022-10-14Fix wrong Cycles default radius for motion blurred point cloudsBrecht Van Lommel
Missing from recent commit to change the default in a6db2c2.
2022-10-14Cycles: oneAPI: Make test kernel more representativeNikita Sirgienko
Test kernel will now test functionalities related to kernel execution with USM memory allocations instead of with SYCL buffers and accessors as these aren't currently used in the backend.
2022-10-13Cycles: use one instance of oneAPI gpu compiler by defaultNikita Sirgienko
This change removes CMake code for automatic calculation of the number of offline device compiler instances, to hand over control to developers instead as it incurs a rather large memory usage with around 8GB per instance at peak. Use SYCL_OFFLINE_COMPILER_PARALLEL_JOBS CMake variable to configure it.
2022-10-13Cleanup: Fixed some warningsWerner, Stefan
Some unused parameters were left after changing the oneAPI device code to be a direclty linked shared library.
2022-10-12Cycles: Use 0.01m as default point cloud radiusHans Goudey
Currently Cycles uses zero as a default radius when no "radius" attribute exists. This is more confusing than helpful. Instead, use the same default radius as EEVEE and Workbench.
2022-10-12Cycles: Enable MNEE on Metal (macOS >= 13)Michael Jones
This patch enables MNEE on macOS >= 13. There was an inefficiency in the calculation of spill requirements, fixed as of macOS 13. This patch also adds a temporary inlining workaround for a Metal compiler bug which causes `mnee_compute_constraint_derivatives` to behave incorrectly. Reviewed By: brecht Differential Revision: https://developer.blender.org/D16235
2022-10-10Fix T101651: Cycles crashes when failing to initialize render deviceLukas Stockner
The issue here was that PathTraceWork was set up before checking if any error occurred, and it didn't account for the dummy device so it called a non-implemented function. This fix therefore avoids creating PathTraceWork for dummy devices and checks for device creation errors earlier in the process.
2022-10-10Cycles: oneAPI: Trigger compilation of used kernels onlyNikita Sirgienko
JIT compilation of oneAPI kernels now happens during load stage and proper message gets shown in the GUI during compilation. Also, this implementation skips kernels that aren't needed for the used scene, reducing overall (re)compilation time.
2022-10-10Cleanup: spelling in commentsCampbell Barton
2022-10-10Partially fix T101702: OSL Shaders with boolean inputs crashLukas Stockner
OSL (like Cycles) has no internal boolean type, instead an integer input can be flagged to be shown as a boolean in the UI. Cycles reacts to this by creating a boolean socket on the Blender side, but as a result incorrectly called the boolean overload of the set function even though the internal type is an integer. There's another unrelated crash in the GPU viewport shader code that appears to apply to every OSL node that outputs a shader, and the file in T101702 triggers both, so this is only a partial fix for the report.
2022-10-08Attribute Node: support accessing attributes of View Layer and Scene.Alexander Gavrilov
The attribute node already allows accessing attributes associated with objects and meshes, which allows changing the behavior of the same material between different objects or instances. The same idea can be extended to an even more global level of layers and scenes. Currently view layers provide an option to replace all materials with a different one. However, since the same material will be applied to all objects in the layer, varying the behavior between layers while preserving distinct materials requires duplicating objects. Providing access to properties of layers and scenes via the attribute node enables making materials with built-in switches or settings that can be controlled globally at the view layer level. This is probably most useful for complex NPR shading and compositing. Like with objects, the node can also access built-in scene properties, like render resolution or FOV of the active camera. Lookup is also attempted in World, similar to how the Object mode checks the Mesh datablock. In Cycles this mode is implemented by replacing the attribute node with the attribute value during sync, allowing constant folding to take the values into account. This means however that materials that use this feature have to be re-synced upon any changes to scene, world or camera. The Eevee version uses a new uniform buffer containing a sorted array mapping name hashes to values, with binary search lookup. The array is limited to 512 entries, which is effectively limitless even considering it is shared by all materials in the scene; it is also just 16KB of memory so no point trying to optimize further. The buffer has to be rebuilt when new attributes are detected in a material, so the draw engine keeps a table of recently seen attribute names to minimize the chance of extra rebuilds mid-draw. Differential Revision: https://developer.blender.org/D15941
2022-10-07Fix small errors in tool tips for path guidingBrecht Van Lommel
Contributed by Alaska. Differential Revision: https://developer.blender.org/D16166
2022-10-07Fix: One-API build issue on windows.Ray Molenkamp
Flags were not properly passed to the compiler.
2022-10-07Cycles: link oneAPI backend with debug version of sycl when in DebugXavier Hallade
It fixes SYCL runtime issues in Debug builds that were due to mixing Release and Debug MSVC runtimes. This commit also removes specific handling of dpcpp compiler executable to simplify the CMake implementation. Using it like clang++ works and clang++ executable is also available from Intel oneAPI DPC++ compiler in case it doesn't.
2022-10-07Cycles: use direct linking for oneAPI backendXavier Hallade
This is a minimal set of changes, allowing a lot of cleanup that can happen afterward as it allows sycl method and objects to be used outside of kernel.cpp. Reviewed By: brecht, sergey Differential Revision: https://developer.blender.org/D15397
2022-10-07Cleanup: spelling in commentsCampbell Barton
2022-10-06Fix T101458: Changing volume density when pg is enabled causes crashSebastian Herholz
Changing volume parameters during rendering could cause a crash when guiding was enabled. It was due to an unintialized state paramter at the beginning of the path tracing process. In addition guiding is disabled when dealing with almost delta volumes (i.e., g close to 1.0 or -1.0).
2022-10-05Fix T101523: Cycles path guiding debug settings not affecting final renderBrecht Van Lommel
2022-10-04Build: integrate OpenPGL into platform files like other librariesBrecht Van Lommel
To avoid issues with install_deps. If we more generally switch to using CMake configs then perhaps this code can be deduplicated again or at least simplified.
2022-10-04Cycles: refine inlining thresholds for oneAPI backendNikita Sirgienko
New thresholds give a few percent improvement in average.
2022-10-04Cycles: Speed up oneAPI GPU binaries compilation by using parallel instancesNikita Sirgienko
This change speeds up the compilation at the cost of higher memory usage. CMake implementation checks the amount of available memory to spawn a reasonable number of parallel compiler jobs.
2022-10-03Cycles: add option to bake specular from active camera viewpointPhoenix Katsch
Previously it would bake viewed from above the surface. The new option can be useful when the baked result is meant to be viewed from a fixed viewpoint or with limited camera motion. Some effort is made to give a continuous reflection on parts of the surface invisible to the camera, but this is necessarily only a rough approximation. Differential Revision: https://developer.blender.org/D15921
2022-10-03Cleanup: in Cycles force inline transform_inverse_implBrecht Van Lommel
We expect this to always happen. Ref T100891
2022-10-03Cleanup: spelling in commentsCampbell Barton
Also replace "dm" for evaluated mesh in some comments.
2022-09-30Attribute Node: refactor lookup to remove duplication between engines.Alexander Gavrilov
Currently lookup of Object and Instancer attributes is completely duplicated between Cycles, Eevee and Eevee Next. This is bad design, so this patch aims to deduplicate it by introducing a common API in blenkernel. In case of Cycles this requires certain hacks, but according to Brecht it is planned to be rewritten later for more direct access to internal Blender data anyway. Differential Revision: https://developer.blender.org/D16117
2022-09-29Cleanup: cmake indentationCampbell Barton
2022-09-28Cleanup: spelling in commentsCampbell Barton
Also add missing task ID.
2022-09-28Cleanup: formatCampbell Barton
2022-09-27Cycles: Add optional per-kernel performance statisticsNikita Sirgienko
When verbose level 4 is enabled, Blender prints kernel performance data for Cycles on GPU backends (except Metal that doesn't use debug_enqueue_* methods) for groups of kernels. These changes introduce a new CYCLES_DEBUG_PER_KERNEL_PERFORMANCE environment variable to allow getting timings for each kernels separately and not grouped with others. This is done by adding explicit synchronization after each kernel execution. Differential Revision: https://developer.blender.org/D15971
2022-09-27Cleanup: Unused variable warning with path guiding turned offHans Goudey
2022-09-27Fix: OpenPGL related build error on windowsRay Molenkamp
Debug and Release libs are different libs on Windows and will give linker errors when you try to mix and match them. This changes retrieves both libs and fills the OPENPGL_LIBRARIES variable appropriately resolving the linker error.
2022-09-27Cycles: Tweak inlining policy on MetalMichael Jones
This patch optimises the Metal inlining policy. It gives a small speedup (2-3% on M1 Max) with no notable compilation slowdown vs what is already in master. Previously noted compilation slowdowns (as reported in T100102) were caused by forcing inlining for `ccl_device`, but we get better rendering perf by relying on compiler heuristics in these cases. Reviewed By: brecht Differential Revision: https://developer.blender.org/D16081
2022-09-27Cycles: Disable binary archives on macOS < 13.0Michael Jones
An bug with binary archives was fixed in macOS 13.0 which stops some spurious kernel recompilations. In older macOS versions, falling back on the system shader cache will prevent recompilations in most instances (this is the same behaviour as in Blender 3.1.x and 3.2.x). Reviewed By: brecht Differential Revision: https://developer.blender.org/D16082
2022-09-27Cycles: add Path Guiding on CPU through Intel OpenPGLSebastian Herhoz
This adds path guiding features into Cycles by integrating Intel's Open Path Guiding Library. It can be enabled in the Sampling > Path Guiding panel in the render properties. This feature helps reduce noise in scenes where finding a path to light is difficult for regular path tracing. The current implementation supports guiding directional sampling decisions on surfaces, when the material contains a least one diffuse component, and in volumes with isotropic and anisotropic Henyey-Greenstein phase functions. On surfaces, the guided sampling decision is proportional to the product of the incident radiance and the normal-oriented cosine lobe and in volumes it is proportional to the product of the incident radiance and the phase function. The incident radiance field of a scene is learned and updated during rendering after each per-frame rendering iteration/progression. At the moment, path guiding is only supported by the CPU backend. Support for GPU backends will be added in future versions of OpenPGL. Ref T92571 Differential Revision: https://developer.blender.org/D15286
2022-09-27Cycles: BSDF eval refactor to remove separate reflection/refraction methodsBrecht Van Lommel
Simplifies code overall to do it inside the eval function, most of the BSDFs already compute the dot product. The refactoring in bsdf_principled_hair_eval() was needed to avoid a HIP compiler bug. Cause is unclear, just changing the implementation enough is meant to sidestep it. Ref T92571, D15286
2022-09-27Cycles: BSDF changes in preparation of path guidingSebastian Herhoz
* Return roughness and IOR for BSDF sampling * Add functions to query IOR and label for given BSDF * Default IOR to 1.0 instead of 0.0 for BSDFs that don't use it * Ensure pdf >= 0.0 in case of numerical precision issues Ref T92571, D15286
2022-09-26Fix T101354: Cycles crash with baking and adaptive samplingBrecht Van Lommel
2022-09-26Cycles: increase min-supported driver version for Intel GPUsXavier Hallade
Windows drivers 101.3430 fix an important GUI-related crash and it's best to prevent users from running into it. Linux drivers weren't affected but still had relevant gpu binary compatibility fixes, so it makes sense to keep the min-supported version aligned across OSes.
2022-09-26Cleanup: replace C-style casts with functional casts for numeric typesCampbell Barton
Some changes missed from f68cfd6bb078482c4a779a6e26a56e2734edb5b8.
2022-09-23Mesh: Move edge crease out of MEdgeHans Goudey
This is very similar to D14077. There are two differences though. First is that vertex creases are already stored in a separate layer, and second is that we can now completely remove use of `Mesh.cd_flag`, since that information is now inherent to whether the layers exist. There are two functional differences here: * Operators are used to add and remove layers instead of a property. * The "crease" attribute can be created and removed by geometry nodes. The second change should make various geometry nodes slightly faster, since the "crease" attribute was always processed before. Creases are now interpolated generically in the CustomData API too, which should help maintain the values across edits better. Meshes get an `edge_creases` RNA property like the existing vertex property, to provide more efficient access to the data in Cycles. One test failure is expected, where different rounding between float the old char storage means that 5 additional points are scattered in a geometry nodes test. Differential Revision: https://developer.blender.org/D15927
2022-09-23Cleanup: use lowercase function calls & macros in for CMakeCampbell Barton
This is already the case for most CMake usage. Although some find modules are an exception to this, as they were originally maintained externally they use some different conventions. Also corrected bad indentation in: intern/cycles/CMakeLists.txt
2022-09-22Cycles: Cleanup in oneAPI math includes and definitionsWerner, Stefan
Now explicitly including math.h first before #defining funcitons. This avoids undefined behavior and improves compatibility with different SYCL compilers and backends.
2022-09-21Add oneAPI to the 'cycles_device' command line argument help textAlaska
Differential Revision: https://developer.blender.org/D16027
2022-09-20Cycles: don't allow negative BSDF weightsBrecht Van Lommel
This doesn't work with path guiding, and likely other features.
2022-09-18Cycles: sync changes from standalone repositoryBrecht Van Lommel
* Windows build fixes * Workaround for Hydra + OpenColorIO link issue * Bump version