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
2022-07-15Cycles: refactor rays to have start and end distance, fix precision issuesBrecht Van Lommel
For transparency, volume and light intersection rays, adjust these distances rather than the ray start position. This way we increment the start distance by the smallest possible float increment to avoid self intersections, and be sure it works as the distance compared to be will be exactly the same as before, due to the ray start position and direction remaining the same. Fix T98764, T96537, hair ray tracing precision issues. Differential Revision: https://developer.blender.org/D15455
2022-07-15Fix Cycles MetalRT error after recent specialization changesBrecht Van Lommel
2022-07-15Cleanup: compiler warningBrecht Van Lommel
2022-07-15Cycles: generalize shader sorting / locality heuristic to all GPU devicesBrecht Van Lommel
This was added for Metal, but also gives good results with CUDA and OptiX. Also enable it for future Apple GPUs instead of only M1 and M2, since this has been shown to help across multiple GPUs so the better bet seems to enable rather than disable it. Also moves some of the logic outside of the Metal device code, and always enables the code in the kernel since other devices don't do dynamic compile. Time per sample with OptiX + RTX A6000: new old barbershop_interior 0.0730s 0.0727s bmw27 0.0047s 0.0053s classroom 0.0428s 0.0464s fishy_cat 0.0102s 0.0108s junkshop 0.0366s 0.0395s koro 0.0567s 0.0578s monster 0.0206s 0.0223s pabellon 0.0158s 0.0174s sponza 0.0088s 0.0100s spring 0.1267s 0.1280s victor 0.0524s 0.0531s wdas_cloud 0.0817s 0.0816s Ref D15331, T87836
2022-07-15Cycles: Apple Silicon optimization to specialize intersection kernelsMichael Jones
The Metal backend now compiles and caches a second set of kernels which are optimized for scene contents, enabled for Apple Silicon. The implementation supports doing this both for intersection and shading kernels. However this is currently only enabled for intersection kernels that are quick to compile, and already give a good speedup. Enabling this for shading kernels would be faster still, however this also causes a long wait times and would need a good user interface to control this. M1 Max samples per minute (macOS 13.0): PSO_GENERIC PSO_SPECIALIZED_INTERSECT PSO_SPECIALIZED_SHADE barbershop_interior 83.4 89.5 93.7 bmw27 1486.1 1671.0 1825.8 classroom 175.2 196.8 206.3 fishy_cat 674.2 704.3 719.3 junkshop 205.4 212.0 257.7 koro 310.1 336.1 342.8 monster 376.7 418.6 424.1 pabellon 273.5 325.4 339.8 sponza 830.6 929.6 1142.4 victor 86.7 96.4 96.3 wdas_cloud 111.8 112.7 183.1 Code contributed by Jason Fielder, Morteza Mostajabodaveh and Michael Jones Differential Revision: https://developer.blender.org/D14645
2022-07-15Cycles: keep track of SVM nodes used in kernelsMichael Jones
To be used for specialization in Metal, to automatically leave out unused nodes from the kernel. Ref D14645
2022-07-15Cycles: refactor to move part of KernelData definition to template headerBrecht Van Lommel
To be used for specialization on Metal in a following commit, turning these members into compile time constants. Ref D14645
2022-07-15Render: camera depth of field support for armature bone targetsDamien Picard
This is useful when using an armature as a camera rig, to avoid creating and targetting an empty object. Differential Revision: https://developer.blender.org/D7012
2022-07-15Cleanup: make formatBrecht Van Lommel
2022-07-15GHOST/Wayland: partial support for updating the UI scaleCampbell Barton
Partial support for changing the UI scale while Blender is open. The scale is set but issues with the window size not updating remain.
2022-07-15GHOST/Wayland: fix error setting the cursor scaleCampbell Barton
Calculate a scale that's compatible with the cursor size. Needed so the cursor is always a multiple of scale.
2022-07-14Fix Cycles MNEE wrong results with area light spreadOlivier Maury
When the solve is successful, the light sample needs to be updated since the effective shading point is now on the last refractive interface. Spread was not taken into account, creating false caustics. Differential Revision: https://developer.blender.org/D15449
2022-07-14Cleanup: replace state flow macros in the kernel with functionsBrecht Van Lommel
2022-07-14Cycles: add presets to the Performance panelBrecht Van Lommel
With choices Default, Lower Memory and Faster Render. For convenience, and to help communicate what the various settings do. Differential Revision: https://developer.blender.org/D15446
2022-07-14Cycles: Improve cache usage on Apple GPUs by chunking active indicesMichael Jones
This patch partitions the active indices into chunks prior to sorting by material in order to tradeoff some material coherence for better locality. On Apple Silicon GPUs (particularly higher end M1-family GPUs), we observe overall render time speedups of up to 15%. The partitioning is implemented by repeating the range of `shader_sort_key` for each partition, and encoding a "locator" key which distributes the indices into sorted chunks. Reviewed By: brecht Differential Revision: https://developer.blender.org/D15331
2022-07-14Cleanup: spelling in commentsCampbell Barton
Also remove duplicate comments in bmesh_log.h, caused by automated comment relocation in [0]. [0]: c4e041da23b9c45273fcd4874308c536b6a315d1
2022-07-14Cleanup: clang-tidy changes to GHOST_SystemX11Campbell Barton
Also remove redundant check.
2022-07-14GHOST: remove redundant ascii argument to GHOST_EventKeyCampbell Barton
Now only the utf8 buffer is used there is no reason to pass both.
2022-07-14GHOST/X11: avoid redundant utf8 text lookups for release eventsCampbell Barton
The text representation of release events is never used, so only calculate this for press events.
2022-07-14GHOST/X11: Quiet warning about key-release events having their utf8 setCampbell Barton
Quiet warning from [0], no functional change as the this information was always ignored. Key release events shouldn't have associated text, this was cleared for wmEvent's, so there is no reason to pass it from GHOST. [0]: d6fef73ef110eb43756b7b87c2cba80abae3b39f
2022-07-14Cleanup: update & correct comments for event handlingCampbell Barton
- Remove references to `ISTEXTINPUT` as any keyboard event with it's utf8_buf set can be handled as text input. - Update references to the key repeat flag.
2022-07-14WM: Remove ASCII members from wmEvent & GHOST_TEventKeyDataCampbell Barton
The `ascii` member was only kept for historic reason as some platforms didn't support utf8 when it was first introduced. Remove the `ascii` struct members since many checks used this as a fall-back for utf8_buf not being set which isn't needed. There are a few cases where it's convenient to access the ASCII value of an event (or nil) so a function has been added to do that. *Details* - WM_event_utf8_to_ascii() has been added for the few cases an events ASCII value needs to be accessed, this just avoids having to do multi-byte character checks in-line. - RNA Event.ascii remains, using utf8_buf[0] for single byte characters. - GHOST_TEventKeyData.ascii has been removed. - To avoid regressions non-ASCII Latin1 characters from GHOST are converted into multi-byte UTF8, when building X11 without XInput & X_HAVE_UTF8_STRING it seems like could still occur.
2022-07-14GHOST/SDL: pass in utf8 buffer for keyboard eventsCampbell Barton
While GHOST/SDL doesn't support non-ASCII text input, use the UTF8 buffer to be consistent with all other back-ends. Move the conversion from SDL_KeyboardEvent to ASCII into a function. Also only lookup this value on key press (not release).
2022-07-14GHOST/SDL: add support for the key repeat flagCampbell Barton
Now all ghost back-ends support the key repeat flag (accessed as WM_EVENT_IS_REPEAT from wmEvent.flag).
2022-07-12Cycles: Make not-compact BVH the default for embreeXavier Hallade
Measurements shown on average a 1.08x speedup for a 1.04x increase in memory usage which is an acceptable trade off for a default setting, although discoverability of such settings influencing memory usage could be improved. Reviewed By: brecht Differential Revision: https://developer.blender.org/D15429
2022-07-12Cycles: fix and enable JIT oneAPI CentOS7 builds for drivers 23570+Xavier Hallade
The current specific CentOS7 workaround we have for AoT, which is to disable __FAST_MATH__ by using -fhonor-nans, now also fixes the compilation issue for JIT as well since at least driver 23570.
2022-07-11Fix T99218: light group add button should be disabled when name is emptyBrecht Van Lommel
Previously it was inactive but still clickable. Ref D15316
2022-07-11Cleanup: remove unused GHOST function getAnyModifiedState.Campbell Barton
Remove unused GHOST_WindowManager::getAnyModifiedState()
2022-07-09Fix cursor display size with tablet input in GHOST/WaylandCampbell Barton
The scale for tablet cursor surfaces was never set, making them display larger. Now the outputs scale is set for mouse & tablet cursors.
2022-07-09Cleanup: split out wl_buffer creation into a utility functionCampbell Barton
Simplify logic for initializing the wl_buffer, ensure the cursors custom data is never heft in a half initialized state. Also remove the need for multiple calls to close when handling errors.
2022-07-09Cleanup: remove buffer_t in GHOST/WaylandCampbell Barton
This was allocated and only used to store the custom cursor data. Use a pointer & size member instead for simplicity.
2022-07-09Cleanup: split memfd_create into it's own function for WaylandCampbell Barton
Avoid ifdef's in cursor loading by creating a memfd_create_sealed utility function that works irrespective of memfd_create availability.
2022-07-09Fix resource leaks setting custom cursors in WaylandCampbell Barton
- Memory from the prior cursor was never un-mapped. - posix_fallocate failure left a file handle open..
2022-07-08Curves: use consistent default radius for Cycles, Eevee, Set Curve Radius nodeBrecht Van Lommel
To avoid Cycles not showing any hair by default, and to avoid very slow render due to many overlaps with the previous 1 meter default in the node. Fixes T97584, T99319 Differential Revision: https://developer.blender.org/D15405
2022-07-08Cycles: enable oneAPI in Linux release buildsXavier Hallade
with a very high min-driver version requirement, placeholder until JIT CentOS runtime compilation issue gets fixed in a defined version. min-driver version check can be worked around by setting CYCLES_ONEAPI_ALL_DEVICES environment variable.
2022-07-08GHOST/Wayland: add logging for listener handlersCampbell Barton
Add logging to all Wayland listener callbacks as it can be difficult to detect the cause of problems. Using break-points often isn't practical for debugging interactive windowing / compositor issues Logging needs to be enabled on the command line, e.g: blender --log "ghost.wl.*" --log-level 2 --log-show-basename
2022-07-08GHOST: use ELEM/ARRAY_SIZE/UNPACK macros to avoid repetitionCampbell Barton
Also use UNLIKELY macro for checks for very unlikely scenarios.
2022-07-08GHOST: add GHOST_utildefinesCampbell Barton
Add macros from BLI_utildefines, mainly to avoid that avoid repetition (ELEM, UNPACK*, CLAMP* & ARRAY_SIZE). Also add macros LIKELY/UNLIKELY as there are quiet a lot of checks for unlikely situations for GHOST/Wayland (not having a keyboard, or mouse for e.g.).
2022-07-07GHOST: initialize grab axis for windowsCampbell Barton
While this didn't cause any user visible bugs, ASAN would report an error when passing it as an argument.
2022-07-07Cleanup: use arguments for internal wayland cursor grabbingCampbell Barton
Pass in arguments for internal grab logic instead of accessing some values from the window and other values as arguments. While more verbose it's simpler to reason about.
2022-07-06Cycles oneAPI: Remove direct dependency on Level-ZeroXavier Hallade
We used it only to access device id for explicitly allowing Arc GPUs. It made the backend require ze_loader.dll which could be problematic if we end up using direct linking. I've replaced filtering based on PCI device id by using other HW properties instead (EUs, threads per EU), that are now available through Level-Zero.
2022-07-06Cleanup: fix comments in oneAPI kernel.cppXavier Hallade
2022-07-06Cycles: Improve an occupancy for Intel GPUsNikita Sirgienko
Initially oneAPI implementation have waited after each memory operation, even if there was no need for this. Now, the implementation will wait only if it is really necessary - it have improved performance noticeble for some scenes and a bit for the rest of them.
2022-07-06GHOST/Wayland: support dynamic loading libraries for WaylandCampbell Barton
Add intern/wayland_dynload which is used when WITH_GHOST_WAYLAND_DYNLOAD is enabled (off by default). When enabled, systems without Wayland installed will fall back to X11. This allows Blender to dynamically load: - libwayland-client - libwayland-cursor - libwayland-egl - libdecor-0 (when WITH_GHOST_WAYLAND_LIBDECOR is enabled).
2022-07-06Cleanup: declare local variables staticCampbell Barton
2022-07-06Cleanup: spelling in commentsCampbell Barton
2022-07-01Fix crash with window decorations (libdecor) in WaylandCampbell Barton
Surfaces from window decorations were passed into GHOST's listeners since libdecor & GHOST share a connection. This error introduced by recent changes that assumed surfaces passed to GHOST's handler functions were owned by GHOST. Tag GHOST surfaces & outputs to ensure GHOST only attempts to access data it created.
2022-07-01Cleanup: rename internal cursor grabbing functionCampbell Barton
This function was named as if it was part of GHOST's API but was in fact an internal utility.
2022-07-01Cycles: fix support for multiple Intel GPUsXavier Hallade
Identical Intel GPUs ended up with the same id. Added PCI BDF to the id to make it unique.
2022-07-01Cleanup: add missing license headers in Cycles oneAPI implementationXavier Hallade