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-01-07Cycles: Increase instance limit for OptiX acceleration structure buildingPatrick Mours
For a while now OptiX had support for 28-bits of instance IDs, instead of the initial 24-bits (see also value reported by OPTIX_DEVICE_PROPERTY_LIMIT_MAX_INSTANCE_ID). This change makes use of that and also adds an error reported when the number of instances an OptiX acceleration structure is created with goes beyond the limit, to make this clear instead of just rendering an image with artifacts. Manifest Tasks: T81431
2021-01-05Fix T83925: Crash when rendering on the CPU with OptiX denoiser enabledPatrick Mours
Rendering on the CPU uses the Embree BVH layout, whether the OptiX denoiser is enabled or not. This means the "build_bvh" function gets a "BVHEmbree" object to fill and not a "BVHMulti" as it was assuming before, which caused crashes due to memory geting overwritten incorrectly. This fixes that by redirecting Embree BVH builds to the Embree device. Manifest Tasks: T83925
2021-01-05Fix T83915: Subdivision Surface modifier causes visual artifacts in Cycles ↵Patrick Mours
rendered viewport - CPU and OptiX Changing the geometry in the current scene caused the primitive offsets for all geometry to change, but the values would not be updated in all bottom-level BVH structures. Rendering artifacts and crashes where the result. This fixes that by ensuring all BVH structures are updated when the primitive offsets change.
2021-01-05Cleanup: remove UNUSED(..) from public function declarationsCampbell Barton
This doesn't serve any purpose and can become out of sync with the function it's self without reporting warnings.
2021-01-04Cleanup: clang-formatCampbell Barton
2020-12-29Fix T84144 cursor wrap broken for Windows.Nicholas Rishel
Modifies WM_BUTTON processing to reuse existing mousemove logic. Fixes case where cursor wrap was not being handled on mouse release. Bonus: flattened mouse move logic so all paths lead to a single return. Removed case where wrap is not handled until subsequent mousemove as button press may rely on updated mouse move position.
2020-12-26Fix unreported: Cycles CLI device override doesn't set peer memory usage flagLukas Stockner
Reviewed By: brecht Differential Revision: https://developer.blender.org/D9929
2020-12-25Simplification of Wintab event handling.Nicholas Rishel
Previously Wintab packets were added to a local queue to be processed during Win32 mouse events, in order to correlate Wintab to Win32 mouse buttons. Wintab packets before Win32 mouse down events were expired on a timer. This commit drives mouse events during Wintab events when a device is in range. When a Wintab button is found it is dispatched if an equivalent event can be popped from the Win32 event queue. If a Win32 mouse button event is not associated with a Wintab event, it falls through to WM_BUTTON handling. All Wintab packets are handled as they are received. Reviewed By: brecht Differential Revision: https://developer.blender.org/D9908
2020-12-24Cleanup: Fix capitalization in various UI stringsYevgeny Makarov
Approximately 195 changes of capitalization to conform to MLA title style. UI labels and property names should use MLA title case, while descriptions should be capitalized like regular prose, generally with only the start of a sentence capitalized. Differential Revision: https://developer.blender.org/D9922
2020-12-24Cleanup: compiler warningBrecht Van Lommel
2020-12-24Cycles: remove surface area computation for meshes with OSLBrecht Van Lommel
This is relatively expensive and as per the OSL spec, this value is not expected to be meaningful for non-light shaders. This makes viewport updates a little faster. As a side effect also fixes T82723, viewport refresh issue with volume density.
2020-12-24Fix T84016: Cycles baking crash with OptiX after recent changesBrecht Van Lommel
This worked for CPU + GPU, but not GPU only.
2020-12-24Bake: vertex color baking support for CyclesBrecht Van Lommel
In the Bake > Output panel, there is now a choice between Image Textures and Vertex Colors. The active vertex color layer is used for baking. This works with both existing per-corner and sculpt per-vertex vertex colors.
2020-12-23Fix T84063: crash reading pointer properties in Attribute shader nodeBrecht Van Lommel
Path resolving can find e.g. a datablock rather than a float or integer, treat that as a failure to find a valid property.
2020-12-23Fluid: Added new viscosity solverSebastián Barschkis
Mainly updated the Mantaflow version. It includes the new viscosity solver plugin based on the method from 'Accurate Viscous Free Surfaces for Buckling, Coiling, and Rotating Liquids' (Batty & Bridson). In the UI, this update adds a new 'Viscosity' section to the fluid modifier UI (liquid domains only). For now, there is a single 'strength' value to control the viscosity of liquids.
2020-12-22Fix Cycles OptiX runtime compilation broken after shader raytracingBrecht Van Lommel
Need to pass the appropriate flags as we do for compilation as part of the CMake build.
2020-12-22Fix T84006: Cycles AOV not written with some mix shader node set upsBrecht Van Lommel
2020-12-21UI: make light spot shape panel consistent between Cycles and EeveeMatteo Falduto
Differential Revision: https://developer.blender.org/D9906
2020-12-18UI: Redesigned data-block selectorsJulian Eisel
The previous design is rather old and has a couple of problems: * Scalability: The current solution of adding little icon buttons next to the data-block name field doesn't scale well. It only works if there's a small number of operations. We need to be able to place more items there for better data-block management. Especially with the introduction of library overrides. * Discoverability: It's not obvious what some of the icons do. They appear and disappear, but it's not obvious why some are available at times and others not. * Unclear Status: Currently their library status (linked, indirectly linked, broken link, library override) isn't really clear. * Unusual behavior: Some of the icon buttons allow Shift or Ctrl clicking to invoke alternative behaviors. This is not a usual pattern in Blender. This patch does the following changes: * Adds a menu to the right of the name button to access all kinds of operations (create, delete, unlink, user management, library overrides, etc). * Make good use of the "disabled hint" for tooltips, to explain why buttons are disabled. The UI team wants to establish this as a good practise. * Use superimposed icons for duplicate and unlink, rather than extra buttons (uses less space, looks less distracting and is a nice + consistent design language). * Remove fake user and user count button, they are available from the menu now. * Support tooltips for superimposed icons (committed mouse hover feedback to master already). * Slightly increase size of the name button - it was already a bit small before, and the move from real buttons to superimposed icons reduces usable space for the name itself. * More clearly differentiate between duplicate and creating a new data-block. The latter is only available in the menu. * Display library status icon on the left (linked, missing library, overridden, asset) * Disables "Make Single User" button - in review we weren't sure if there are good use-cases for it, so better to see if we can remove it. Note that I do expect some aspects of this design to change still. I think some changes are problematic, but others disagreed. I will open a feedback thread on devtalk to see what others think. Differential Revision: https://developer.blender.org/D8554 Reviewed by: Bastien Montagne Design discussed and agreed on with the UI team, also see T79959.
2020-12-18Fix T82288 Wintab walk navigation erratic.Nicholas Rishel
Walk navigation relies on tablet data being set to detect if motion is absolute. This patch sets tablet data in Ghost to dummy values when a tablet pen is in range and not handled by Wintab processing.
2020-12-17Explicitly link X11 librariesSybren A. Stüvel
Fix X11 library underlinking, which was breaking Debian and Ubuntu packages. From Ubuntu Hirsute changelog: ``` blender (2.83.5+dfsg-4ubuntu1) hirsute; urgency=medium * Try to also link ghost library with x11, needed because of missing XConvertSelection symbol link (used in ghost static library). * Don't use gold, but switch to bfd linker that seems to be working better on ppc64el. -- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 11 Nov 2020 14:17:29 +0100 ``` Reviewed by: sybren Differential Revision: https://developer.blender.org/D9617
2020-12-17Synchronize Wintab and Win32 time.Nicholas Rishel
Time is synchronized by the difference between the WT_PACKET receive time and the last received PACKET's pkTime. This is used to prevent Wintab packets from being prematurely expired.
2020-12-16Ghost/Linux: Avoid error print if special directory can't be determinedJulian Eisel
The function is supposed to fail gracefully if there is some error. That includes not being able to find `xdg-user-dir`. So don't let the error be printed to the console, it's misleading/annoying. From what I can tell we'll detect that problem fine and return NULL then.
2020-12-15Cleanup: make formatJacques Lucke
2020-12-15Cleanup: doxy comments (use colon after parameter name)Campbell Barton
Also remove colon after `\note`.
2020-12-15Cleanup: spellingCampbell Barton
2020-12-14Fix T75539: Cycles missing geometry update when switching displacement methodJoan Bonet Orantos
The shaders were not tagged for a needed geometry update when the displacement method was modified, neither were the Geometry and Object managers. Reviewed By: kevindietrich Maniphest Tasks: T75539 Differential Revision: https://developer.blender.org/D8896
2020-12-11Fix T83586: Cycles failing to load OpenEXR image with EXR RGBAZ channelsValdemar Lindberg
Don't refuse to load 5-channel images, instead drop any channels after the 4th and hope that the first channels represent RGBA. Differential Revision: https://developer.blender.org/D9820
2020-12-11Cycles: enable OpenCL rendering on recent Intel GPUsSergey Sharybin
Based on testing by Intel, rendering on Iris GPUs and upcoming Xe GPUs should work. This is enabled on Windows and Linux. More testing is needed to verify correctness and performance in production scenes, but our basic benchmark files seem to give correct results.
2020-12-11Cleanup: compiler warningsBrecht Van Lommel
If you mark one function as override in a class, all must be marked.
2020-12-11Trackpad: Fix wrong scroll deltas on RetinaYevgeny Makarov
Scale Mac trackpad scrolling changes by pixel size of output device. Differential Revision: https://developer.blender.org/D9723 Reviewed by Brecht Van Lommel
2020-12-11Ghost: Support queries for special user directories (desktop, documents, etc.)Julian Eisel
When we had to get special user directories, we'd usually do it in varying, rather ad-hoc ways. It would be done with a bunch of `#ifdef`s for the different operating systems. Also, some of the used Win32 functions were legacy ones and the API docs recommend using newer ones. Further, seems `BKE_appdir_folder_default()` used `XDG_DOCUMENTS_DIR` wrong. It's not supposed to be an environment variable but a value inside a config file. This adds the platform dependent logic to Ghost, so we can abstract it away nicely using the `GHOST_ISystemPaths` interface. Getting the desktop directory for example can now easily be done with: `GHOST_getUserSpecialDir(GHOST_kUserSpecialDirDesktop).` For now I added the logic for desktop, documents, downloads, videos, images and music directories, even though we only use the Documents one. We can extend/ change this as needed, it's easy to do now. On Windows and macOS, it uses pretty much the same way to access the directories as elsewhere already. On Linux, it uses the `xdg-user-dir` command that seems to be available by default on most Linux systems. No functional changes. The new queries are not actually used yet. Differential Revision: https://developer.blender.org/D9800 Reviewed by: Brecht Van Lommel
2020-12-11Cycles: Add CPU+GPU rendering support with OptiXPatrick Mours
Adds support for building multiple BVH types in order to support using both CPU and OptiX devices for rendering simultaneously. Primitive packing for Embree and OptiX is now standalone, so it only needs to be run once and can be shared between the two. Additionally, BVH building was made a device call, so that each device backend can decide how to perform the building. The multi-device for instance creates a special multi-BVH that holds references to several sub-BVHs, one for each sub-device. Reviewed By: brecht, kevindietrich Differential Revision: https://developer.blender.org/D9718
2020-12-10Fix T82852: Cycles crashes when editing a mesh with adaptive subdivisionKévin Dietrich
The issue is caused by stale data on the Mesh Node which is not cleared during synchronizing since the socket API refactor so that we can detect changes. However, synchronization only updates the sockets of the Mesh, so other properties were left with outdated values. This caused an underflow when computing attribute size for undisplaced coordinates as it was using the current number of vertices minus the previous count of subdivision vertices, which at this point should be 0. Added a simple method to clear non socket data. Also modified Mesh.add_undisplaced to always use an ATTR_PRIM_GEOMETRY as the data is not subdivided yet and it avoids any further issues regarding computing attribute sizes.
2020-12-09Fix T83581: "Only local" ambient occlusion option causes error on OptiX 2.92Patrick Mours
The SVM AO node calls "scene_intersect_local" with a NULL pointer for the intersection information, which caused a crash with OptiX since it was not checking for this case and always dereferencing this pointer. This fixes that by checking whether any hit information was requested first (like is done in the BVH2 intersection routines).
2020-12-08Cycles: Remove "OptiX support is experimental" noticePatrick Mours
OptiX support is not in fact experimental anymore, so it is time for that notice to go. All Cycles features that are currently supported on the GPU do work now when OptiX is selected.
2020-12-08Cycles: Enable baking panel in OptiX and redirect those requests to CUDA for nowPatrick Mours
This enables support for baking when OptiX is active, but uses CUDA for that behind the scenes, since the way baking is currently implemented does not work well with OptiX. Reviewed By: brecht Differential Revision: https://developer.blender.org/D9784
2020-12-08CMake: fix linking with WITH_SDL_DYNLOADCampbell Barton
While this was only needed in 'source/blender/python', add to ghost to avoid problems in the future.
2020-12-07Fix failing Cycles tests after Cryptomatte changesBrecht Van Lommel
For old files without Cycles cryptomatte settings, must provide the defaults.
2020-12-07Fix Cryptomatte panel not visible in EEVEEJeroen Bakker
Caused by {rB5baae026a86f}
2020-12-07File Subversion Bump: 2.92.5Jeroen Bakker
2020-12-07Cycles: Use Blender Cryptomatte Settings.Jeroen Bakker
Blender has now the place to store the Cryptomatte settings. This patch migrates Cycles to use the new settings. Reviewed By: Brecht van Lommel Differential Revision: https://developer.blender.org/D9746
2020-12-04Atomics: Add 16 bit fetch + AND and fetch + OR signed integer operationsJulian Eisel
I could use a 16 bit atomic fetch + AND for D9719. The alternative would be to turn a `short` into a `int` in DNA, which isn't a nice workaround. Also adds tests for the new functions.
2020-12-04Cycles: Add support for shader raytracing in OptiXPatrick Mours
Support for the AO and bevel shader nodes requires calling "optixTrace" from within the shading VM, which is only allowed from inlined functions to the raygen program or callables. This patch therefore converts the shading VM to use direct callables to make it work. To prevent performance regressions a separate kernel module is compiled and used for this purpose. Reviewed By: brecht Differential Revision: https://developer.blender.org/D9733
2020-12-03Fix Cycles device kernels containing debug assertation codePatrick Mours
NanoVDB includes "assert.h" and makes use of "assert" in several places and since the compile pipeline for CUDA/OptiX kernels does not define "NDEBUG" for release builds, those debug checks were always added. This is not intended, so this patch disables "assert" for CUDA/OptiX by defining "NDEBUG" before including NanoVDB headers. This also fixes a warning about unknown pragmas in NanoVDB thrown by the CUDA compiler.
2020-12-02Fix T83300: constant scene refreshing in Cycles with empty volumesKévin Dietrich
This infinite loop is caused by a conflict between the volume mesh creation which unintentionally clears the shaders before early exiting when no grid is found, and the Blender exporter which adds back the shaders causing us to reupdate as the shaders changed. To fix this simply preserve the shaders on the Volume node.
2020-12-01Libmv: Tweak default logging verbosity levelSergey Sharybin
Log to verbosity level 1 rather than INFO severity. Avoids a lot of overhead coming from construction of the INFO stream and improves performance and threadability of code which uses logging. This makes tracking of 250 frames of a track of default settings to drop down from 0.6sec to 0.4sec.
2020-12-01Libmv: Cleanup, remove unused logging macrosSergey Sharybin
Unused and was not entirely happy with such short abbreviations.
2020-11-30Fix T82870: on macOS, continuous grab jumps when crossing editor borderYevgeny Makarov
The event queue can contain events from before pointer warping, ignore those now. This is an old issue, but became more common now that we disabled event coalescing and started using the event mouse location rather than the current mouse location. Thanks to Yevgeny Makarov and Nicholas Rishel for helping solve this. Ref D9662
2020-11-30Cleanup: avoid harmless but unnecessary float division by zeroBrecht Van Lommel