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-17Cleanup: spelling in commentsCampbell Barton
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-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-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-12Fix syntax error introduced in previous commitPatrick 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-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-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-08Fix Cycles crash after recent bugfix for image savingBrecht Van Lommel
2022-08-08Fix: Error in oneAPI image code for texture access with clip extensionNikita Sirgienko
2022-08-07Cycles: re-enable zebin format for Intel GPUs on LinuxXavier Hallade
zebin format is critical for the compatibility of AoT graphics binaries across driver versions. It was previously disabled on Linux due to runtime issues that are now fixed in https://github.com/intel/compute-runtime/releases/tag/22.31.23852. The minimum supported driver version isn't bumped to this one yet as current codebase with current IGC compiler does actually run fine on earlier drivers and is not running into these issues anymore.
2022-08-05Fix T99991: Cycles wrong intercept with new hair curvesBrecht Van Lommel
Copy the improved hair curves sync implementation from D14942. That patch is not ready as a whole but this part was verified to match the old hair particles can be used already.
2022-08-05Fix T98769: Cycles crash with multi-device rendering and BVH refitsBrecht Van Lommel
2022-08-05Fix T99179: holdout does not affect transparency without transparent backgroundBrecht Van Lommel
This was by design, but maybe not so useful in practice. It's always possible to set alpha to 1 in compositing if needed.
2022-08-05Fix T99201: Cycles render difference with 3D hair curves between OptiX and ↵Brecht Van Lommel
Emrbee It should consistently use the Cycles pirmitive ID for self intersection detection, not the one from the OptiX or Embree acceleration structure. Differential Revision: https://developer.blender.org/D15632
2022-08-04Fix T99055: Cycles vertex color bake + denoising gives bad resultBrecht Van Lommel
No denoising is supported in this case, it only works on images.
2022-08-04Fix T100134: Cycles faceted triangle normals with motion blurBrecht Van Lommel
After recent changes to change barycentric coordinate convention.
2022-08-04Fix T100205: Cycles wrong volume shading with two materials in objectBrecht Van Lommel
Assume that all faces using the smae material form a closed mesh, so that joining meshes gives the same result as separate meshes. It does mean that using different materials on different sides of one closed mesh do not work, but the meaning of that is poorly defined anyway if there is a volume interior.
2022-08-04Cleanup: Move RNA path functions into own C++ fileJulian Eisel
NOTE: This is committed to the 3.3 branch as part of D15606, which we decided should go to this release still (by Bastien, Dalai and me). That is because these are important usability fixes/improvements to have for the LTS release. Adds `rna_path.cc` and `RNA_path.h`. `rna_access.c` is a quite big file, which makes it rather hard and inconvenient to navigate. RNA path functions form a nicely coherent unit that can stand well on it's own, so it makes sense to split them off to mitigate the problem. Moreover, I was looking into refactoring the quite convoluted/overloaded `rna_path_parse()`, and found that some C++ features may help greatly with that. So having that code compile in C++ would be helpful to attempt that. Differential Revision: https://developer.blender.org/D15540 Reviewed by: Brecht Van Lommel, Campbell Barton, Bastien Montagne
2022-08-01Cycles: Resolve recent performance regression in oneAPI implementation for ↵Nikita Sirgienko
Intel® Arc™ GPUs Recently, performance with oneAPI have regressed due some recent changes in Blender itself. This commit's changes is resolving this and also improve compilation time for oneAPI backend first execution (or Blender compilation time in case of AoT). Regression have appeared after 5152c7c152e and not related to the changes itself, but increase of kernels complexity introduced with it. Changes in this commit is marking some Blender functions as noinlined for oneAPI backend, which helps GPU compiler to deal with this complexity without any negative side-effects on performance.
2022-07-29Fix Cycles build error with CUDA on arm64Tianhao Chai
Checking arm64 assembly support before CUDA/Metal would cause NVCC to generate inline arm64 assembly. Differential Revision: https://developer.blender.org/D15569
2022-07-27Cycles: switch Cycles triangle barycentric convention to match Embree/OptiXBrecht Van Lommel
Simplifies intersection code a little and slightly improves precision regarding self intersection. The parametric texture coordinate in shader nodes is still the same as before for compatibility.
2022-07-27Cleanup: remove unnecessary bvh_instance_motion_popBrecht Van Lommel
2022-07-27Fix broken BVH2 on CPU after recent changesBrecht Van Lommel
Runtime switching between Embree and BVH2 got lost.
2022-07-27Cycles oneAPI: simplify num_concurrent_states selectionXavier Hallade
The number of Execution Units and resident "threads" (simd width * threads per EUs) are now exposed and used to select the number of states using a simplified heuristic.
2022-07-26Cleanup: spelling in commentsCampbell Barton
2022-07-26Fix Cycles Metal build errors after recent changesBrecht Van Lommel
float8 is a reserved type in Metal, but is not implemented. So rename to float8_t for now. Also move back intersection handlers to kernel.metal, they can't be in the class that encapsulates the other Metal kernel functions.
2022-07-25Cycles: Nishita Sky: Fix sun disk imprecision for large elevationClément Foucault
The issue was introduced by rBad5e3d30a2d2 which made possible to use unbounded elevation angle. In order to not touch the shading code, we just remap the value to the expected range the shading code expects. This means that elevation angles above +/-PI/2 effectively flip the sun rotation angle.
2022-07-25Cleanup: remove __KERNEL_CPU__Brecht Van Lommel
This was tested in some places to check if code was being compiled for the CPU, however this is only defined in the kernel. Checking __KERNEL_GPU__ always works.
2022-07-25Cycles: add math functions for float8Andrii Symkin
This patch adds required math functions for float8 to make it possible using float8 instead of float3 for color data. Differential Revision: https://developer.blender.org/D15525
2022-07-25Cleanup: move device BVH code to kernel/device/*/bvh.hBrecht Van Lommel
Having the OptiX/MetalRT/Embree/MetalRT implementations all in one file with many #ifdefs became too confusing. Instead split it up per device, and also move it together with device specific hit/filter/intersect functions and associated data types.
2022-07-25Fix wrong Cycles SSS intersection distance after ray distance changesBrecht Van Lommel
No need anymore to have a difference between CPU/GPU, all distances remain in world space.
2022-07-25Cycles: simplify handling of ray distance in GPU renderingBrecht Van Lommel
All our intersections functions now work with unnormalized ray direction, which means we no longer need to transform ray distance between world and object space, they can all remain in world space. There doesn't seem to be any real performance difference one way or the other, but it does simplify the code.
2022-07-25Cycles: more closely match some math and intersection operations in EmbreeBrecht Van Lommel
This helps with debugging, and gives a slightly closer match between CPU and CUDA/HIP/Metal renders when it comes to ray tracing precision.
2022-07-25Fix build error with WITH_CYCLES_KERNEL_NATIVE_ONLY on macOS ArmBrecht Van Lommel
-march=native is not supported for all architectures.
2022-07-24Fix T98367: Light group passes do not work when shadow catcher is usedLukas Stockner
2022-07-22GHOST/Wayland: Fix mouse wheel events for Sway Compositor (use seat v5)Campbell Barton
Bump the requested seat version to v5, use discreet scroll callback. Tested with gnome, river & sway.
2022-07-21Fix T91932: number sliders wrap around when dragged for long distance on X11Sebastiano Barrera
The value of number sliders (e.g. the "end frame" button) wrap around to their pre-click value when dragging them for a very long distance (e.g. by lifting the mouse off the desk and placing it back on to keep dragging in the same direction). The problem is X11-specific, and due to XTranslateCoordinates using a signed int16 behind the curtains, while its signature and the rest of Blender uses int32. The solution is to only use XTranslateCoordinates on (0, 0) to get the delta between the screen and client reference systems, and applying the delta in a second step. Differential Revision: https://developer.blender.org/D15507
2022-07-21GHOST/Wayland: fix cursor glitch after grabbing while hiddenCampbell Barton
When the cursor grabbing was disabled, Blender's internal location (wmWindow.eventstate) kept the location before un-hiding. This caused the paint cursor to show in the wrong location after adjusting the color wheel for e.g.
2022-07-21Cleanup: spelling in comments, typos in tool-tipsCampbell Barton
2022-07-20Point Cloud: Remove redundant custom data pointersHans Goudey
Similar to e9f82d3dc7eebadcc52, but for point clouds instead. Differential Revision: https://developer.blender.org/D15487
2022-07-20Curves: Remove redundant custom data pointersHans Goudey
These mutable pointers present problems with ownership in relation to proper copy-on-write for attributes. The simplest solution is to just remove them and retrieve the layers from `CustomData` when they are needed. This also removes the complexity and redundancy of having to update the pointers as the curves change. A similar change will apply to meshes and point clouds. One downside of this change is that it makes random access with RNA slower. However, it's simple to just use the RNA attribute API instead, which is unaffected. In this patch I updated Cycles to do that. With the future attribute CoW changes, this generic approach makes sense because Cycles can just request ownership of the existing arrays. Differential Revision: https://developer.blender.org/D15486
2022-07-19Cleanup: Remove compile option for curves objectHans Goudey
After becb1530b1c81a408e20 the new curves object type isn't hidden behind an experimental flag anymore, and other areas depend on this, so disabling curves at compile time doesn't make sense anymore.
2022-07-19Cleanup: quiet compiler warningsCampbell Barton
2022-07-18Cleanup: change internal Cycles compact BVH default to match UIBrecht Van Lommel
2022-07-18Subdiv: remove unused GPU device choice, fix crash with libepoxy on initBrecht Van Lommel
openSubdiv_init() would detect available evaluators before any OpenGL context exists, causing a crash with libepoxy. This test however is redundant as we already check the requirements on the Blender side through the GPU API. To simplify things, completely remove the device detection in the opensubdiv module and reduce the evaluators to just CPU and GPU. The plan here is to move to the GPU module abstraction over OpenGL/Metal/Vulkan and so all these different backends no longer make sense. This also removes the user preference for OpenSubdiv compute device, which was not used for the new GPU subdivision implementation. Ref D15291 Differential Revision: https://developer.blender.org/D15470
2022-07-16Cleanup: early exit MEM_lockfree_freeN when called with NULL pointerCampbell Barton
Simplify logic for freeing a NULL pointer. While no null-pointer de-reference was performed, this wasn't as so obvious as the pointer was passed to MEM_lockfree_allocN_len before checking for NULL. NOTE: T99744 claimed the a NULL pointer free was a vulnerability, while I can't see evidence for this - exiting early makes it clearer the memory isn't accessed. *Details* - Add MEMHEAD_LEN macro, avoids redundant NULL check. - Use "UNLIKELY(..)" hint's for error cases (freeing NULL pointer and checking if `leak_detector_has_run`).