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
AgeCommit message (Collapse)Author
2022-01-26Cleanup: unused variable warning, formattingCampbell Barton
2022-01-26CMake: mark all BROTLI libraries as advancedCampbell Barton
2022-01-26CMake: include BROTLI_LIBRARIES in FREETYPE_LIBRARIES on UNIXCampbell Barton
This was already done for APPLE & WIN32, which would reference these libraries twice. Now append BROTLI_LIBRARIES to FREETYPE_LIBRARIES when they're required for linking. No functional changes as all references to FREETYPE_LIBRARIES also used BROTLI_LIBRARIES.
2022-01-26CMake: add WITH_SYSTEM_FREETYPE to link against the systems freetypeCampbell Barton
2022-01-26CMake: resolve issues using pre-compiled & system libraries for UnixCampbell Barton
When LIBDIR existed, searching for system libraries would always first search 'LIBDIR'. This meant "WITH_SYSTEM_*" would still prefer LIBDIR versions of libraries if they exist. The presence of LIBDIR also ignored the setting for WITH_STATIC_LIBS which is now restored to the cached value once pre-compiled libraries have been handled.
2022-01-26GLShader: Fix crash caused by redundant uniform declarationClément Foucault
This slipped through during a rebase.
2022-01-26Fix T94149: Incorrect sound strip lengthRichard Antalik
Fix formula in function `SEQ_sound_update_length`. Formula for sound strip length was changed in commit ded68fb1027, when strip is added to timeline, but it was not changed in function mentioned above.
2022-01-26Cleanup: Remove useless commentsHans Goudey
2022-01-26VSE: Build proxies only for slow moviesRichard Antalik
This change applies only for automatic proxy building, when strip is added to timeline. Manual building process is not affected. Don't build proxy file if movie is already fast enough to seek. To determine seek performance, check if whole GOP can be decoded in 100 milliseconds. To consider some variation in GOP size, large number of packets are read, assuming that each packet will produce 1 frame. While this is not technically correct, it does give quite accurate estimate of maximum GOP size. This test will ensure consistent performance on wide array of machines. Check should be done in order of few milliseconds. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11671
2022-01-25Deps builder: add VS2019, remove 2013/2015 supportRay Molenkamp
This will allow building most deps with VS2019 SDL has some linker issues that are resolved in a newer version, but that would be better handled in a separate change. VS2013 and VS2015 support which was broken has been removed.
2022-01-25Fix T95169: Assert in weld modifier codeGermano Cavalcante
Return early before accessing the array when all edges are merged.
2022-01-25Cleanup: Remove leftover hair fade code in CyclesAaron Carlisle
Missed in rB1687903fb813f6656453fbc7c49237b06437370c
2022-01-25Cleanup: Remove leftover hair fade code in Cycles.Thomas Dinges
2022-01-25Workbench: Use GPU_ARB_gpu_shader5 instead of GL variantClément Foucault
This is to be able to turn off the extension usage on demand.
2022-01-25GLShader: Fix buffer overflow caused by workaround uniformClément Foucault
In order to use a workaround builtin uniform, we need to count it just like other uniforms and give it some space in the name buffer. This also fixes extensions being added after the uniform declaration. All `#extension` directives are now part of the gl backend.
2022-01-25Cleanup: Remove unused variableHans Goudey
Mistake in a18bd403bf3edb495ee05
2022-01-25Geometry Nodes: Port weld modifier to the merge by distance nodeHans Goudey
This commit moves the weld modifier code to the geometry module so that it can be used in the "Merge by Distance" geometry node from ec1b0c2014a8b91c2. The "All" mode is exposed in the node for now, though we could expose the "Connected" mode in the future. The modifier itself is responsible for creating the selections from the vertex group. The "All" mode takes an `IndexMask` for the selection, and the "Connected" mode takes a boolean array, since it actually iterates over all edges. Some disabled code for a BVH mode has not been copied over, it's still accessible through the patches and git history anyway, and it made the port slightly simpler. Differential Revision: https://developer.blender.org/D13907
2022-01-25Point Cloud: expose in Python API for release, now that Cycles uses itBrecht Van Lommel
Previously it was only part of experimental features in beta, however now renderers can render point clouds generated by geometry nodes. Adding or converting a point cloud object directly is still hidden by default, since there is no good way to edit it.
2022-01-25Geometry Nodes: Initial merge by distance nodeHans Goudey
This implements a merge by distance operation for point clouds. Besides the geometry input, there are two others-- a selection input to limit the operation to certain points, and the merge distance. While it would be a reasonable feature, the distance does not support a field currently, since that would make the algorithm significantly more complex. All attributes are merged to the merged points, with the values mixed together. This same generic method is used for all attributes, including `position`. The `id` attribute uses the value from the first merged index for each point. For the implementation, most of the effort goes into creating a merge map to speed up attribute mixing. Some parts are inherently single-threaded, like finding the final indices accounting for the merged points. By far most of the time is spend balancing the KD tree. Mesh support will be added in the next commit. Differential Revision: https://developer.blender.org/D13649
2022-01-25Cycles: Reorganize Acceleration Structure UI panel.Thomas Dinges
Only show options that are valid for the used device (CPU, GPU, Multi). Note: The panel isn't shown for OPTIX anymore, unless Multi device is used. Reference: https://developer.blender.org/D13592
2022-01-25Cycles: Make Embree compact BVH optionalThomas Dinges
Make the Embree RTC_SCENE_FLAG_COMPACT flag optional and enabled per default. Disabling it makes CPU rendering a bit faster in some scenes at the cost of a higher memory usage. Barbershop renders about 3% faster, victor about 4% on CPU with compact BVH disabled. Differential Revision: https://developer.blender.org/D13592
2022-01-25make.bat: unify python detectionRay Molenkamp
Several sub commands tried on their own to locate python, given I wanted to look in several locations for a broader libdir compatibility this is best done in a central location. Python 3.9 is still preferred, but if 3.10-3.12 are available that be accepted as well. note: this is about the python version make.bat uses to run various python helper scripts, this change has no influence on the python version blender itself uses.
2022-01-25Cycles: add Point Info nodeBrecht Van Lommel
With (center) position, radius and random value outputs. Eevee does not yet support rendering point clouds, but an untested implementation of this node was added for when it does. Ref T92573
2022-01-25VSE: Use timecodes by defaultRichard Antalik
Movies with variable frame rate can cause mismatch of displayed frame when proxies are used. Since proxies are not used for rendering, this means, that output may be different than expected. This problem can be avoided when timecodes are used. Set used timecode to Record Run. Timecodes are built with proxies at the same time, therefore if proxies are built and used this will resolve possible mismatch of output. Record run is chosen, because it will show frames based on time they were encoded by encoder and should match behavior as if movie was played back at normal speed. This change is done only for new strips in order to not overwrite user defined settings. Other minor changes: - When proxies are enabled, size 25% is no longer set by default. It was mostly annoying anyway. - Silence warning when timecode file is not present. This was introduced in 4adbe31e2fc98f982aed3d97505513750ec348d4. Previously use of timecodes was hard-coded in sequencer and this error would spam console if timecodes would be enabled by default and proxies would be never built. ref: T95093 Reviewed By: sergey Differential Revision: https://developer.blender.org/D13905
2022-01-25Fix T94237: Glitch when copying unaligned ffmpeg bufferMichael
Using a negative linesize to flip an image vertically is supported in ffmpeg but not for every function. This method treats frames that need and those that do not need alignment the same. An RGBA frame buffer with alignment that ffmpeg decides is optimal for the CPU and build options is allocated by ffmpeg. The `sws_scale` does the colorspace transformation into this RGBA frame buffer without flipping. Now the image is upside down and aligned. The combined unaligning and vertical flipping is then done by `av_image_copy_to_buffer` which seems to handle negative linesize correctly. Reviewed By: ISS Differential Revision: https://developer.blender.org/D13908
2022-01-25Nodes: Improve link-drag search support for boolean math nodeHans Goudey
List the operations in the search instead of the "Boolean" socket names.
2022-01-25Fix T93058: Crash on opening old pre-2.80 .blend files.Bastien Montagne
Layer resync code would not yet fully properly deal with all possible invalid status of ViewLayer comming from those older files. Now put 2.80-doversion specific fixes into their own dedicated function, so that they do not affect actual regular layer resync code anymore. Also added some sanity-checks in main `BKE_layer_collection_sync` code.
2022-01-25GLShader: Fix fallback to gl_BaseInstanceClément Foucault
All `#entension` directives needs to be first before any other token. Add missing `;` after uniform declaration.
2022-01-25CMake/Linux: only link to brotli when using static precompiled librariesSybren A. Stüvel
The Brotli library only needs to be explicitly linked when using the statically linked libraries. When using system libs they're shared, and the .so loading mechanism takes care of dependencies.
2022-01-25Geometry Nodes: Expand the Boolean Math nodeHallam Roberts
Currently the Boolean Math node only has 3 basic logic gates: AND, OR, and NOT. This commit adds 6 additional logic gates for convenience and ease of use. - **Not And (NAND)** returns true when at least one input is false. - **Nor (NOR)** returns true when both inputs are false. - **Equal (XNOR)** returns true when both inputs are equal. - **Not Equal (XOR)** returns true when both inputs are different. - **Imply (IMPLY)** returns true unless the first input is true and the second is false. - **Subtract (NIMPLY)** returns true when the first input is true and the second is false. Differential Revision: https://developer.blender.org/D13774
2022-01-25Fix: Build issue with MSVC + Python 3.10Ray Molenkamp
ssize_t is a posix type pyconfig.h previously supplied for MSVC, it appears to have stopped doing this in the python 3.10 headers. Py_ssize_t is the type of the field this macro actually returns, so best to to use that in our code as well.
2022-01-25Revert "Performance: Remap multiple items in UI"Jeroen Bakker
This reverts commit 948211679f2a0681421160be0d3b90f507bc0be7. This commit introduced some regressions in the test suite. As this change is a core part of blender Bastien and I decided to revert it as the solution isn't clear and needs more investigation. The following tests FAILED: 62 - blendfile_liblink (SEGFAULT) 63 - blendfile_library_overrides (SEGFAULT) It fails in (id_us_ensure_real)
2022-01-25GPUShader: Add optionnal single shader stage interface for in and outClément Foucault
This makes optionnal the use of a different interface for the geometry shader stage output. When the vertex and geometry interface instance name matches, a `_in` and `_out` suffix is added to the end of the instance name. This makes it easier to have optional geometry shader stages. # Conflicts: # source/blender/gpu/intern/gpu_shader_create_info.hh
2022-01-25Performance: Remap multiple items in UIJeroen Bakker
During sprite fright loading of complex scenes would spend a long time in remapping ID's The remapping process is done on a per ID instance that resulted in a very time consuming process that goes over every possible ID reference to find out if it needs to be updated. If there are N of references to ID blocks and there are M ID blocks that needed to be remapped it would take N*M checks. These checks are scattered around the place and memory. Each reference would only be updated at most once, but most of the time no update is needed at all. Idea: By grouping the changes together will reduce the number of checks resulting in improved performance. This would only require N checks. Additional benefits is improved data locality as data is only loaded once in the L2 cache. It has be implemented for the resyncing process and UI editors. On an Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz 16Gig the resyncing process went from 170 seconds to 145 seconds (during hotspot recording). After this patch has been applied we could add similar approach to references (references between data blocks) and functionality (tagged deletion). In my understanding this could reduce the resyncing process to less than a second. Opening the village production file between 10 and 20 seconds. Flame graphs showing that UI remapping isn't visible anymore (`WM_main_remap_editor_id_reference`) * Master {F12769210 size=full} * This patch {F12769211 size=full} Reviewed By: mont29 Maniphest Tasks: T94185 Differential Revision: https://developer.blender.org/D13615
2022-01-25Draw: Migrate hair refine compute shader to use create info.Jeroen Bakker
This patch migrates the draw manager hair refine compute shader to use GPUShaderCreateInfo. Reviewed By: fclem Differential Revision: https://developer.blender.org/D13915
2022-01-25Python: Expose crazyspace correction functionality via RNASergey Sharybin
Allows to perform correction of coordinate delta/displacement in a similar way of how sculpt mode handles sculpting on a deformed mesh. An example of usecase of this is allowing riggers and sciprters to improve corrective shapekey workflow. The usage consists of pre-processing and access. For example: object.crazyspace_eval(depsgraph, scene) # When we have a difference between two vertices and want to convert # it to a space to be stored, say, in shapekey: delta_in_orig_space = rigged_ob.crazyspace_displacement_to_original( vertex_index=i, displacement=delta) # The reverse of above. delta_in_deformed_space = rigged_ob.crazyspace_displacement_to_deformed( vertex_index=i, displacement=delta) object.crazyspace_eval_clear() Fuller explanation with actual usecases and studio examples are written in the comment: https://developer.blender.org/D13892#368898 Differential Revision: https://developer.blender.org/D13892
2022-01-25CMake/Linux: Fix Brotli library finding on standard distros.Bastien Montagne
Brotli seems to add a custom postfix to its static libraries by default, but in Debian at least libraries are just named the same for both shared and static versions, as usual. So add standard name after static-specific ones. Follow-up to rB4c617c06e9cb and rBa000de7c2a4d.
2022-01-25Fix depsgraphs sharing IDs via evaluated edit meshSergey Sharybin
The evaluated mesh is a result of evaluated modifiers, and referencing other evaluated IDs such as materials. It can not be stored in the EditMesh structure which is intended to be re-used by many areas. Such sharing was causing ownership errors causing bugs like T93855: Cycles crash with edit mode and simultaneous viewport and final render The proposed solution is to store the evaluated edit mesh and its cage in the object's runtime field. The motivation goes as following: - It allows to avoid ownership problems like the ones in the linked report. - Object level is chosen over mesh level is because the evaluated mesh is affected by modifiers, which are on the object level. This patch allows to have modifier stack of an object which shares mesh with an object which is in edit mode to be properly taken into account (before the change the modifier stack from the active object will be used for all objects which share the mesh). There is a change in the way how copy-on-write is handled in the edit mode to allow proper state update when changing active scene (or having two windows with different scenes). Previously, the copt-on-write would have been ignored by skipping tagging CoW component. Now it is ignored from within the CoW operation callback. This allows to update edit pointers for objects which are not from the current depsgraph and where the edit_mesh was never assigned in the case when the depsgraph was evaluated prior the active depsgraph. There is no user level changes changes expected with the CoW handling changes: should not affect on neither performance, nor memory consumption. Tested scenarios: - Various modifiers configurations of objects sharing mesh and be part of the same scene. - Steps from the reports: T93855, T82952, T77359 This also fixes T76609, T72733 and perhaps other reports. Differential Revision: https://developer.blender.org/D13824
2022-01-25GPU: Add GPU_shader_create_from_info_nameJeroen Bakker
This function will be used as the way to build shaders from create_infos. The previous used method was using a private function.
2022-01-25Animation: Equalize Handle OperatorKevin C. Burke
The Equalize Handles operator allows users to make selected handle lengths uniform: either respecting their original angle from the key control point or by flattening their angle (removing the overshoot sometimes produced by certain handle types). Design: T94172 Reviewed by: sybren Differential Revision: https://developer.blender.org/D13702
2022-01-25CMake/Linux: find Brotli library the proper waySybren A. Stüvel
Use a `FindBrotli.cmake` module instead of manually appending library paths. This is just for Linux; Windows and macOS will be reviewed separately.
2022-01-25Cleanup: Replace reinterp cast with static cast.Jeroen Bakker
Conversion of void* should not use the unsafe reinterp cast.
2022-01-25Fix (unreported) RNA setter for TextEditor's text ID pointer not ensuring ↵Bastien Montagne
real user.
2022-01-25Fix T95037: Allow making local IDs that are not used by anything.Bastien Montagne
Some IDs (like text ones) can be linked and only kept around thanks to editors, allow making such IDs local in `BKE_lib_id_make_local_generic`. Also refactor logic checking whether ID should be made directly local or copied into its own util function, so that we can remain sure all special-cases 'make local' code still uses the same logic here.
2022-01-25Geometry Nodes: Add description to curve handle input nodeHans Goudey
The "Relative" input isn't immediately obvious unless one is familar with that naming pattern, so an explicit description may be helpful.
2022-01-25Cleanup: Remove unused pixel buffer in read_render_tileJesse Yurkovich
A left over remnant from rB1a134c4c30a643ada1b9a7a037040b5f5c173a28 Differential Revision: https://developer.blender.org/D13901
2022-01-25Cleanup: Correct location of node function declarationsHans Goudey
Currently there are many function declarations in `BKE_node.h` that don't actually have implementations in blenkernel. This commit moves the declarations to `NOD_composite.h`, `NOD_texture.h`, and `NOD_shader.h` instead. This helps to clarify the purpose of the different modules. Differential Revision: https://developer.blender.org/D13869
2022-01-24LShaderInterface: Fix interface binding with UBO containing arraysClément Foucault
To avoid the issue we search using the name in the `name_buffer_` which already have the array suffix stripped out.
2022-01-24Tests: Enable new tests for geometry nodes extrude nodeHans Goudey
rB95981c9876483256b28
2022-01-24GLShaderInterface: Fix interface from createInfo not setting bindingsClément Foucault
This is because the `glUniform1i` calls were not preceeded by `glUseProgram` which made parameters not stick.