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
2019-12-11Cycles/OpenCL: Remove NULL PTR WorkaroundJeroen Bakker
In the current OpenCL implementation we have a work-around for platforms that didn't support NULL pointers. We used to replace all NULLs and empty arrays with a pointer to a single byte on the OpenCL Device. During investigation of {T65924} it was asked to remove this work-around for testing. This change improves the render times. SCENE | BEFORE | AFTER --------------------+--------+------- bmw27 | 108 | 89 barbershop_interior | 867 | 673 classroom | 270 | 173 fishy_cat | 244 | 196 koro | 249 | 207 pavillon_barcelona | 582 | 414 Note that this change does not fix T65924 it just improves the rendering performance for OpenCL. We haven't tested this patch on all platforms so we should keep an eye out on the tracker. Reviewed By: sergey Differential Revision: https://developer.blender.org/D6391
2019-12-10Cycles: support for custom shader AOVsLukas Stockner
Custom render passes are added in the Shader AOVs panel in the view layer settings, with a name and data type. In shader nodes, an AOV Output node is then used to output either a value or color to the pass. Arbitrary names can be used for these passes, as long as they don't conflict with built-in passes that are enabled. The AOV Output node can be used in both material and world shader nodes. Implemented by Lukas, with tweaks by Brecht. Differential Revision: https://developer.blender.org/D4837
2019-12-10GHOST: add support for application/menu keyHarley Acheson
Support the application key on Linux & Windows.
2019-12-09Cycles: Add OptiX acceleration structure compactionPatrick Mours
This adds compaction support for OptiX acceleration structures, which reduces the device memory footprint in a post step after building. Depending on the scene this can reduce the amount of used device memory quite a bit and even improve performance (smaller acceleration structure improves cache usage). It's only enabled for background renders to make acceleration structure builds fast in viewport. Also fixes a bug in the memory management for OptiX acceleration structures: These were held in a dynamic vector of 'device_memory' instances and used the mem_alloc/mem_free functions. However, those keep track of memory instances in the 'cuda_mem_map' via pointers to 'device_memory' (which works fine everywhere else since those are never copied/moved). But in the case of the vector, it may decide to reallocate at some point, which invalidates those pointers and would result in some nasty accesses to invalid memory. So it is not actually safe to move a 'device_memory' object and therefore this removes the move operator overloads again. Reviewed By: brecht Differential Revision: https://developer.blender.org/D6369
2019-12-08Fix T71878: Cycles crash with adaptive subdivision and empty meshBrecht Van Lommel
2019-12-08Fix T72282: Cycles OpenCL error after recent math node changesBrecht Van Lommel
2019-12-07Shaders: noise and wave distortion now work uniformly instead of diagonallyBartosz Moniewski
Previously Noise and Wave texture nodes would use noise functions within a [0,1] range for distortion effects. We either add or subtract noise from coordinates, never do both at same time. This led to the texture drastically shifting on the diagonal axis of a plane / cube. This behavior makes the Distortion input hard to control or animate. Capabilities of driving it with other texture are also limited, diagonal shifting is very apparent. This was fixed by offsetting the noise function to a signed range and making it zero-centered. This way noise is uniformly added and subtracted from coordinates. Texture pattern sticks to main coordinates which makes it way easier to control. This change is not strictly backwards compatible, there is versioning to ensure the scale of the distortion remains similar, but the particular pattern can be a little different. Differential Revision: https://developer.blender.org/D6177
2019-12-07Shader Nodes: Add Interpolation modes to Map Range nodeCharlie Jolly
Modes: Linear interpolation (default), stepped linear, smoothstep and smootherstep. This also includes an additional option for the **Clamp node** to switch between **Min Max** (default) and **Range** mode. This was needed to allow clamping when **To Max** is less than **To Min**. Reviewed By: JacquesLucke, brecht Differential Revision: https://developer.blender.org/D5827
2019-12-07Maths Node: Additional functionsCharlie Jolly
When creating shaders and using maths functions it is expected that Blender should match functions in other DCC applications, game engines and shading languages such as GLSL and OSL. This patch adds missing functions to the Blender maths node. Ideally, it would be nice to have these functions available to vectors too but that is not part of this patch. This patch adds the following functions trunc, snap, wrap, compare, pingpong, sign, radians, degrees, cosh, sinh, tanh, exp, smoothmin and inversesqrt. Sign function is based on GLSL and OSL functions and returns zero when x == 0. Differential Revision: https://developer.blender.org/D5957
2019-12-06Fix T71342: macOS does not always use the discrete GPU for BlenderBrecht Van Lommel
This reverts commit 3d9cc4d3f174d01c96d65a4e9cd751699bcb8744. The commit message and intent behind the commit is unclear. We generally want the discrete GPU to be used for best performance, not the integrated GPU.
2019-12-06Cleanup: clang-formatCampbell Barton
2019-12-06Fix T72118: Enable Windows 10 Non-client DPI ScalingHarley Acheson
Enables Windows 10 feature that automatically adjusts non-client area (title bar) on high-DPI displays. Differential Revision: https://developer.blender.org/D6370 Reviewed by Brecht Van Lommel
2019-12-05Cleanup: Windows Manifest usage.Ray Molenkamp
We had a manifest file, but it was seemingly not used, some settings were done using linker pragmas, some of them visual studio would set by default for us, others where not set at all. This patch changes: - Single manifest file where we can maintain all settings in a single location, removal of any linker pragmas related to the manifest. - Compatibly settings for win vista - win10, without this any call to any of the GetVersion and related functions (GetVersionEx, VerifyVersionInfo, IsWindowsXxxx) will by default say we are on vista and OS specific optimizations in external libraries may be missed. -Rather than having it in the .RC file in an #ifdef which may or may not trigger depending on the build tool used, we tell cmake to treat it as a source file and it will do the right thing for both the ninja and visual studio generators. Differential Revision: https://developer.blender.org/D6136 Reviewers: brecht
2019-12-05Fix T63766: Multiresolution behavior when using crease edgeSergey Sharybin
Switch to Gregory basis patches which are tangent continuous across their boundaries. Originally we've used BSpline basis patches to be more compatible with the old subdivision code, but a lot of things changed anyway.
2019-11-28Fix crash if OptiX context creation fails in CyclesPatrick Mours
When encountering an error during context creation, the "OptiXDevice" constructor aborts early. This means the "cuda_stream" vector is never resized and the destructor iterated over non-existent data.
2019-11-28Fix assert in Cycles memory statistics when using OptiX on multiple GPUsPatrick Mours
The acceleration structure built by OptiX may be different between GPUs, so cannot assume the memory size is the same for all. This fixes that by moving the memory management for all OptiX acceleration structures into the responsibility of each device (was already the case for BLAS previously, now for TLAS too).
2019-11-27Cycles: Scale denoising albedo contribution of Principled BSDFs according to ↵Lukas Stockner
average fresnel The Principled BSDF uses Microfacet closures that include a fresnel term, which are a special case since their weight tends to be near white even if their average contribution is fairly low. The sample weight is scaled by the average fresnel weight to account for this, but the denoising albedo still used the unscaled weight. This was fine for the original denoiser, but apparently OIDN can't handle the resulting albedo pass well. Therefore, this commit adds the described scaling to the albedo pass contribution as well. This problem was described in T69770. Reviewed By: brecht Differential Revision: https://developer.blender.org/D6289
2019-11-27Curve: CurveMapping Extend OptionJeroen Bakker
Extend options are currently stored per curve. This was not clearly communicated to the user and they expected this to be a setting per CurveMapping. This change will move the option from `Curve` to `CurveMapping`. In order to support this the API had to be changed. BPY: CurveMap.evaluate is also moved to CurveMapping.evaluate what breaks Python API. Cycles has been updated but other add-ons have not. After release of 2.81 we can merge this to master and adapt the add-ons. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D6169
2019-11-27Cycles: Add Random Per Island attribute.OmarSquircleArt
The Random Per Island attribute is a random float associated with each connected component (island) of the mesh. It is particularly useful when artists want to add variations to meshes composed of separate units. Like tree leaves created using particle systems, wood planks created using array modifiers, or abstract splines created using AN. Reviewed By: Sergey Sharybin, Jacques Lucke Differential Revision: https://developer.blender.org/D6154
2019-11-25Fix potential access to deleted memory in OptiX kernel loading codePatrick Mours
Calling "OptiXDevice::load_kernels" multiple times would call "optixPipelineDestroy" on a pipeline pointer that may have already been deleted previously (since the PIP_SHADER_EVAL pipeline is only created conditionally). This change also avoids a CUDA kernel reload every time this is called. The CUDA kernels are precompiled and don't change, so there is no need to reload them every time.
2019-11-24Cleanup: doxygen commentsCampbell Barton
Also correct some outdated symbol references, add missing 'name' commands.
2019-11-24Cleanup: spelling, repeated wordsCampbell Barton
2019-11-22Fix T71255: Particle hair not showing in viewport with OptiX after scalingPatrick Mours
The OptiX intersection program for curves uses "optixGetObjectRayDirection" to get the ray direction in object space (which was inverse transformed with the current transformation matrix). OptiX does no additional operations on it, so if there is a scaling transform, the direction is not normalized. But the curve intersection routine expects that. In addition, the distances used in "optixGetRayTmax()" and "optixReportIntersection()" are in world space, so need to adjust them accordingly.
2019-11-18GHOST: Only spam about X11 errors when using --debug-ghostSergey Sharybin
This commit adds a new command line argument --debug-ghost and makes it so X11 errors happening during context initialization are only printed when this new flag is sued. There is no need to flood users with errors when their GPU is not supporting latest OpenGL version. Or, at a very minimum, the error must be more meaning full. Differential Revision: https://developer.blender.org/D6057
2019-11-16Fix a bug in the T34039 hack in case when a modifier key is not mapped.Alexander Gavrilov
In order to recover from a transient Focus Out - Focus In disruption in the middle of a shortcut, which can be caused by certain window managers, Blender has code that checks which modifier keys are pressed after Focus In and restores the modifier state based on that. If one of the Ctrl, Shift, Alt, Super keys is not mapped anywhere in the active keyboard layout, XKeysymToKeycode returns the invalid zero keycode, and reading the key state produces garbage, which can cause an invalid modifier state. Check the return value to avoid this.
2019-11-15Merge branch 'blender-v2.81-release'Julian Eisel
2019-11-15Fix T70991: Maximized file browser hides file name bar on WindowsJulian Eisel
`WS_CHILD` is a different kind of child window that what we define as child window. See http://forums.codeguru.com/showthread.php?491604. Setting this style flag seems to mess things up a bit in our configuration. The name bar is actually being overlapped by the Windows task bar then. Not totally sure why this happens, but I think it's because windows with the `WS_CHILD` style are positioned relative to the parent, not the desktop (screen without taskbar). So it uses the full space available when maximized, which isn't clipped by the taskbar anymore.
2019-11-13Merge branch 'blender-v2.81-release'Campbell Barton
2019-11-13Cycles: OpenCL PerformanceJeroen Bakker
When using OpenCL with Cycles the rendering time increased substantial. After doing some tests the bottleneck was found in 4d voronoi and 2d and 3d smooth voronoi. This change will hide these behind a specific compile directive so the speed will improve. AMD RX480 + BMW scene 2.80 (3:10) 2.81 (5:48) 2.81 excluding 4d voronoi+2d/3d smooth (3:50) Reviewed By: sergey Differential Revision: https://developer.blender.org/D6231
2019-11-08Windows: Switch to the dynamic C runtimeRay Molenkamp
This change switches windows to the dynamic C runtime avoiding issues coming from mixing the static and dynamic runtime like the ones outlined in [1] [1] https://developer.blender.org/D5387#122165 Differential Revision: https://developer.blender.org/D6175 Reviewed by: @Sergey
2019-11-08Cleanup: clang-formatCampbell Barton
2019-11-07Merge branch 'blender-v2.81-release'Sergey Sharybin
2019-11-07Cycles: Fix strict compiler warningSergey Sharybin
Pointer used for math arithmetics in assert(). CUDA device pointer is actually an integer type, not a pointer.
2019-11-06Merge remote-tracking branch 'origin/blender-v2.81-release'Dalai Felinto
2019-11-06Fix T69845: OSL wrong texture node output for fixed vector valueBrecht Van Lommel
2019-11-06Merge branch 'blender-v2.81-release'Brecht Van Lommel
2019-11-06Fix T70952: EXR files bigger than 2GB don't open on WindowsBrecht Van Lommel
2019-11-05Merge branch 'blender-v2.81-release'Brecht Van Lommel
2019-11-05Fix T71071: errors when using multiple CUDA/Optix GPUs and host mapped memoryHa Hyung-jin
The multi device code did not correctly handle cases where some GPUs store a resource in device memory and others store it in host mapped memory. Differential Revision: https://developer.blender.org/D6126
2019-11-05Merge branch 'blender-v2.81-release'Brecht Van Lommel
2019-11-05Fix build errors in GHOST SDLBrecht Van Lommel
2019-11-05Merge branch 'blender-v2.81-release'Patrick Mours
2019-11-05Fix Cycles failing to compile when "WITH_CYCLES_LOGGING" is offPatrick Mours
2019-11-04Merge branch 'blender-v2.81-release'Patrick Mours
2019-11-04Fix T71123: OptiX error in Cycles viewport when adding HDRIPatrick Mours
Cycles did not update the "is_enabled" flag on lights when they were synchronized again, which caused all lights disabled by "LightManager::disable_ineffective_light" to be disabled indefinitely. As a result the OptiX kernels were not reloaded with correct features when a change to a light was made. This fixes that by updating the "is_enabled" flag during synchronization. Differential Revision: https://developer.blender.org/D6141
2019-11-04Correct naming of cryptomatte output sockets on the render layers nodeRobert Guetzkow
The cryptomatte sockets were incorrectly numbered using a step size of two. While the increment by two is necessary to get the correct number of render passes, they should be numbered consecutively matching the socket names of the cryptomatte node. Reviewed By: lukasstockner97 Differential Revision: https://developer.blender.org/D6185
2019-11-01Windows: Replace deprecated SHGetFolderPathWmano-wii
No functional change. Differential Revision: https://developer.blender.org/D6172
2019-10-31Merge branch 'blender-v2.81-release'Brecht Van Lommel
2019-10-31Fix T71172: Cycles preferences.get_devices() not refreshing Optix devicesBrecht Van Lommel
2019-10-30OpenSubdiv: Initial implementation of batched evaluationSergey Sharybin
The idea is to give multiple coordinates to evaluator and evaluate them all at once, avoiding any possible overhead.