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-08-18Merge branch 'blender-v3.3-release'Brecht Van Lommel
2022-08-18Fix T100246: Cycles GPU render error when adding AO node during viewport renderBrecht Van Lommel
2022-08-18Cycles: disable Metal inlining optimization on Apple GPUsBrecht Van Lommel
This gave a 1.1x speedup, however also leads to very long compile times that make it seems like Blender has stopped working. This can be brought back in the future behind an option that users can explicitly enabled. Fix T100102 Ref D14923, D14763, T92212
2022-08-18CMake: always unset CMAKE_REQUIRED_* variables after useCampbell Barton
Always unset these variables after use as they could interfere with other checks made afterwards.
2022-08-18CMake: support building with musl libclistout
Instead of using macros like GLIBC we can use the CMake build systems internal functions to check if some header or functions are present on the running system's libc. Add ./build_files/cmake/have_features.cmake to add checks for platform features which can be used to set defines for source files that require them. Reviewed By: campbellbarton Ref D15696
2022-08-17Metaball: Evaluate metaball objects as mesh componentsHans Goudey
With the ultimate goal of simplifying drawing and evaluation, this patch makes the following changes and removes code: - Use `Mesh` instead of `DispList` for evaluated basis metaballs. - Remove all `DispList` drawing code, which is now unused. - Simplify code that converts evaluated metaballs to meshes. - Store the evaluated mesh in the evaluated geometry set. This has the following indirect benefits: - Evaluated meshes from metaball objects can be used in geometry nodes. - Renderers can ignore evaluated metaball objects completely - Cycles rendering no longer has to convert to mesh from `DispList`. - We get closer to removing `DispList` completely. - Optimizations to mesh rendering will also apply to metaball objects. The vertex normals on the evaluated mesh are technically invalid; the regular calculation wouldn't reproduce them. Metaball objects don't support modifiers though, so it shouldn't be a problem. Eventually we can support per-vertex custom normals (T93551). Differential Revision: https://developer.blender.org/D14593
2022-08-17Cleanup: Fix "unused m_system" warningsSebastian Parborg
The dummy `m_system` variable is not needed in the GHOST_NULL classes
2022-08-17GHOST/EGL: Only draw grey into buffers attached to windowsCampbell Barton
Avoid redundant drawing, match GHOST/GLX behavior.
2022-08-17Merge branch 'blender-v3.3-release'Campbell Barton
2022-08-17Cleanup: spelling in commentsCampbell Barton
2022-08-16GHOST/Wayland: Add NDOF supportCampbell Barton
Logic for NDOF devices is shared with X11, process events using GHOST_NDOFManagerUnix when WITH_INPUT_NDOF is enabled.
2022-08-16Cleanup: spelling in commentsCampbell Barton
2022-08-16Merge branch 'blender-v3.3-release'Joseph Eagar
2022-08-15Fix T100106: Cycles poor playback performance with still image and auto refreshBrecht Van Lommel
The auto refresh option should be ignored in this case.
2022-08-15Introduce headless OpenGL rendering on LinuxSebastian Parborg
With this patch true headless OpenGL rendering is now possible on Linux. It changes the logic of the WITH_HEADLESS build flag. The headless backend is now always available with regular builds and Blender will try to fall back to it if it fails to initialize other backends while in background mode. The headless backend only works on Linux as EGL is not used on Mac or Windows. libepoxy does support windows and mac, so this can perhaps be remedied in the future. Reviewed By: Brecht, Jeroen, Campbell Differential Revision: http://developer.blender.org/D15555
2022-08-15Cleanup OpenGL linking and related code after libepoxy mergeSebastian Parborg
This cleans up the OpenGL build flags and linking. It additionally also removes some dead code. One of these dead code paths is WITH_X11_ALPHA which actually never was active even with the build flag on. The call to use this was never called because the default initializer for GHOST was set to have it off per default. Nothing called this function with a boolean value to enable it. These cleanups are needed to support true headless OpenGL rendering. Without these cleanups libepoxy will fail to load the correct OpenGL Libraries as we have already linked them to the blender binary. Reviewed By: Brecht, Campbell, Jeroen Differential Revision: http://developer.blender.org/D15554
2022-08-15GPU: replace GLEW with libepoxyChristian Rauch
With libepoxy we can choose between EGL and GLX at runtime, as well as dynamically open EGL and GLX libraries without linking to them. This will make it possible to build with Wayland, EGL, GLVND support while still running on systems that only have X11, GLX and libGL. It also paves the way for headless rendering through EGL. libepoxy is a new library dependency, and is included in the precompiled libraries. GLEW is no longer a dependency, and WITH_SYSTEM_GLEW was removed. Includes contributions by Brecht Van Lommel, Ray Molenkamp, Campbell Barton and Sergey Sharybin. Ref T76428 Differential Revision: https://developer.blender.org/D15291
2022-08-15Merge branch 'blender-v3.3-release'Brecht Van Lommel
2022-08-15Cycles: simplify handling of ray differentialsBrecht Van Lommel
* Store compact ray differentials in ShaderData and compute full differentials on demand. This reduces register pressure on the GPU. * Remove BSDF differential code that was effectively doing nothing as the differential orientation was discarded when making it compact. This gives a 1-5% speedup with RTX A6000 + OptiX in our benchmarks, with the bigger speedups in simpler scenes. Renders appear to be identical except for the Both displacement option that does both displacement and bump. Differential Revision: https://developer.blender.org/D15677
2022-08-15Fix build error in libc_compat when using musl libcBrecht Van Lommel
Checking for the existence of and using __GLIBC_PREREQ can't be done in the same conditional. Contributed by listout. Differential Revision: https://developer.blender.org/D15690
2022-08-13Fix Cycles MetalRT compile errorBrecht Van Lommel
2022-08-13Merge branch 'blender-v3.3-release'Germano Cavalcante
2022-08-13Fix T100354: Home key being the grave accent in french keyboard layoutGermano Cavalcante
I'm still not sure how the `0xFF` value came about, but it's not a valid virtual key code. Therefore it should not be used in `MapVirtualKey`.
2022-08-12Merge branch 'blender-v3.3-release'Patrick Mours
2022-08-12Fix syntax error introduced in previous commitPatrick Mours
2022-08-12Merge branch 'blender-v3.3-release'Patrick Mours
2022-08-12Cycles: Improve denoiser update performance when rendering with multiple GPUsPatrick Mours
This patch causes the render buffers to be copied to the denoiser device only once before denoising and output/display is then fed from that single buffer on the denoiser device. That way usually all but one copy (from all the render devices to the denoiser device) can be eliminated, provided that the denoiser device is also the display device (in which case interop is used to update the display). As such this patch also adds some logic that tries to ensure the chosen denoiser device is the same as the display device. Differential Revision: https://developer.blender.org/D15657
2022-08-12Cleanup: repeated words in commentsCampbell Barton
2022-08-12Cleanup: add missing braces, quite warnings by castingCampbell Barton
2022-08-12Cleanup: use 'filepath' for fill pathsCampbell Barton
2022-08-12Cleanup: add missing braces in GHOSTCampbell Barton
2022-08-12Cleanup: clang-tidy GHOST Context/Event/TimerManagerCampbell Barton
2022-08-12Cleanup: update comments in MANTA_main.cppCampbell Barton
2022-08-11Cycles: take into account time limit for progress barBrecht Van Lommel
This change allows the Cycles progress report system to take into conderation the time limit property. This allows for more accuracte progress reports for high sample count renders with short time limits. Contributed by Alaska. Differential Revision: https://developer.blender.org/D15599
2022-08-11Cleanup: minor changes to DebugFlagsBrecht Van Lommel
Use C++11, remove unused running_inside_blender and move viewport_static_bvh to BlenderSync.
2022-08-11GHOST/Wayland: support setting modifiers on window activationCampbell Barton
Take advantage of Waylands wl_keyboard_listener.enter callback which takes an array of keys that are pressed when a window is activated. Resolves T74684 under Wayland.
2022-08-11Cleanup: access modifier keys by index under WaylandCampbell Barton
This simplifies accessing modifiers as there is no need to perform a string lookup each time (which may fail).
2022-08-11Cleanup: missing newline in GHOST_PRINTCampbell Barton
2022-08-10Cleanup: spellingCampbell Barton
2022-08-10Cleanup: formatCampbell Barton
2022-08-09Merge branch 'blender-v3.3-release'Brecht Van Lommel
2022-08-09Cycles: improve ray tracing precision near triangle edgesBrecht Van Lommel
Detect cases where a ray-intersection would miss the current triangle, which if the intersection is strictly watertight, implies that a neighboring triangle would incorrectly be hit instead. When that is detected, apply a ray-offset. The idea being that we only want to introduce potential error from ray offsets if we really need to. This work for BVH2 and Embree, as we are able to match the ray-interesction bit-for-bit, though doing so for Embree requires ugly hacks. Tiny differences like fused-multiply-add or dot product intrinstics in matrix inversion and ray intersection needed to be matched exactly, so this is fragile. Unfortunately we're not able to do the same for OptiX or MetalRT, since those implementations are unknown (and possibly impossible to match as hardware instructions). Still artifacts are much reduced, though not eliminated. Ref T97259 Differential Revision: https://developer.blender.org/D15559
2022-08-09Cycles: make transform inverse match Embree exactlyBrecht Van Lommel
Helps improve ray-tracing precision. This is a bit complicated as it requires different implementation depending on the CPU architecture.
2022-08-09Cleanup: simplify CPU instruction checkingBrecht Van Lommel
The performance of this will be slightly more important for upcoming changes. Also removed an unused function and changed includes so these system.h can be included in more places.
2022-08-09Cycles: add new Spectrum and PackedSpectrum typesAndrii Symkin
These replace float3 and packed_float3 in various places in the kernel where a spectral color representation will be used in the future. That representation will require more than 3 channels and conversion to from/RGB. The kernel code was refactored to remove the assumption that Spectrum and RGB colors are the same thing. There are no functional changes, Spectrum is still a float3 and the conversion functions are no-ops. Differential Revision: https://developer.blender.org/D15535
2022-08-09Cleanup: make vector types make/print functions consistent between CPU and GPUBrecht Van Lommel
Now all the same ones are available on CPU and GPU, which was previously not possible due to lack of operator overloadng in OpenCL. Print functions are no-ops on some GPUs. Ref D15535
2022-08-09Fix T100119: Cycles light object's parametric vector distortedSergey Sharybin
Caused by 38af5b050100. Adjust barycentric coordinates used for intersection result in the ray-to-rectangle intersection check. Differential Revision: https://developer.blender.org/D15592
2022-08-09Cleanup: use own username in code-comment tagsCampbell Barton
2022-08-08Merge branch 'blender-v3.3-release'Brecht Van Lommel
2022-08-08Fix Cycles crash after recent bugfix for image savingBrecht Van Lommel