It was printing "frame" time instead of FPS.
Other interesting thing to get solved is to solve "drop" in FPS
when there is an idle time in user input.
Current usecase is limited to observing FPS when there is a continuous
stream of events: for example, keep moving vertex in edit mode while
watching debug prints.
The FPS here is measured based on a timestamp from when depsgraph
was previously evaluated.
Allows to ease investigating performance improvements/regressions
which are not related on animation system but on modifications on
a single frame (such as transforming vertex in edit mode).
Was caused by recent refactor of dependencies in 517870a4a1.
While there is no fully reliable solution to this issue other than
making TBB a dynamic library dependency (as documentation tells us
to do), there seems to be simple workaround which doesn't require
deeper changed in build process and packaging.
Tested on Brecht's computer who managed to reproduce the issue on
Linux (T72015#857423).
When there are ID properties on an object, and these are animated and
used by a driver, the depsgraph has proper connections between ACTION →
ID PROPERTY → DRIVER.
When these properties are defined on a mesh, however, the depsgraph
relations are incorrectly created between GEOMETRY → PROPERTIES_EXIT →
DRIVER (because it's assumed that 'source = ENTRY' implies 'geometry').
This patch solves this by first checking whether the targeted property
is an ID property and handling it accordingly. This also made it
possible to remove some special cases from pose bone relations.
Maniphest Tasks: T73001
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D6571
`RNA_property_pointer_set()` was just broken when assigning to an ID
pointer IDProp, on both debug/checks and actual assignment.
That was at least affecting RNA copying and liboverrides area...
even when target is not a collection
Looks like this was (accidentally) removed in {rBbe9e469ead22}
https://developer.blender.org/
rBbe9e469ead227aee8d4c29b98a125cf599c5c8bb#change-pFg0VUTAHY2q
This could also result in a missing update in
object_handle_update_proxy, see T72083 for an example.
Thx @Macroni investigating!
Maniphest Tasks: T72083
Differential Revision: https://developer.blender.org/D6651
This is a more correct fix to the issue Brecht was fixing in D6600.
While the fix in that patch worked fine for linking it broke ASAN
runtime under some circumstances.
For example, `make full debug developer` would compile, but trying
to start blender will cause assert failure in ASAN (related on check
that ASAN is not running already).
Top-level idea: leave it to CMake to keep track of dependency graph.
The root of the issue comes to the fact that target like "blender" is
configured to use a lot of static libraries coming from Blender sources
and to use external static libraries. There is nothing which ensures
order between blender's and external libraries. Only order of blender
libraries is guaranteed.
It was possible that due to a cycle or other circumstances some of
blender libraries would have been passed to linker after libraries
it uses, causing linker errors.
For example, this order will likely fail:
libbf_blenfont.a libfreetype6.a libbf_blenfont.a
This change makes it so blender libraries are explicitly provided
their dependencies to an external libraries, which allows CMake to
ensure they are always linked against them.
General rule here: if bf_foo depends on an external library it is
to be provided to LIBS for bf_foo.
For example, if bf_blenkernel depends on opensubdiv then LIBS in
blenkernel's CMakeLists.txt is to include OPENSUBDIB_LIBRARIES.
The change is made based on searching for used include folders
such as OPENSUBDIV_INCLUDE_DIRS and adding corresponding libraries
to LIBS ion that CMakeLists.txt. Transitive dependencies are not
simplified by this approach, but I am not aware of any downside of
this: CMake should be smart enough to simplify them on its side.
And even if not, this shouldn't affect linking time.
Benefit of not relying on transitive dependencies is that build
system is more robust towards future changes. For example, if
bf_intern_opensubiv is no longer depends on OPENSUBDIV_LIBRARIES
and all such code is moved to bf_blenkernel this will not break
linking.
The not-so-trivial part is change to blender_add_lib (and its
version in Cycles). The complexity is caused by libraries being
provided as a single list argument which doesn't allow to use
different release and debug libraries on Windows. The idea is:
- Have every library prefixed as "optimized" or "debug" if
separation is needed (non-prefixed libraries will be considered
"generic").
- Loop through libraries passed to function and do simple parsing
which will look for "optimized" and "debug" words and specify
following library to corresponding category.
This isn't something particularly great. Alternative would be to
use target_link_libraries() directly, which sounds like more code
but which is more explicit and allows to have more flexibility
and control comparing to wrapper approach.
Tested the following configurations on Linux, macOS and Windows:
- make full debug developer
- make full release developer
- make lite debug developer
- make lite release developer
NOTE: Linux libraries needs to be compiled with D6641 applied,
otherwise, depending on configuration, it's possible to run into
duplicated zlib symbols error.
Differential Revision: https://developer.blender.org/D6642
The problem was related to the smooth of the strength. As the factor was very low and the value was smoothed , the result was almost nothing when the radius was very small. Now the factor is higher and the smooth is done after clamping pressure.
This adds some kind of dashing to the tube and cone limits. Although the
dashing is in object space and is not a good as old dashing. But it is
the least time consuming and least complex solution.
The operator always expect to be called form a button.
But this is not always the case.
This does not bring functional changes when not called from python.
This commit will prevent the crash. It does produce a result that may not
be desirable (only briding one face of the cube), but at least it's better
than crashing.
In our animation editors, we have a feature called View Frame. Problem is, it is not self evident what this feature does. Does it show frame numbers? Does it show all frames? Does it frame the view? Does it frame the view?
What this does, is it moves the view to where the playhead is. With clearer naming, we can communicate this much more clearly.
This is just a simple patch that changes the name from 'View Frame' -> 'Go to Current Frame'.
Differential Revision: https://developer.blender.org/D6437
As pointed out by user @Peter Fog (tintwotin):
The current name for this property is wrong for two reasons:
- Because it makes incorrect use of the term 'window' (in Blender these are called 'editors')
- 'Lock Time' is incorrect, because it has nothing to do with locking the time at all. In Blender, the time is already locked and always the same across editors, no matter what. This property only syncs the visible range, which is something quite different.
For this reason, this is changed to 'Sync Visible Range' instead. I also added a tooltip, which was completely missing.
This patch also adds this property to the Sequencer, where it was missing.
Differential Revision: https://developer.blender.org/D6632
Reviewed by Julian Eisel
Fixes the invisible scrollbar when opening preferences by 'Editor Type' by always creating scrollbars for V2D_COMMONVIEW_PANELS_UI objects.
This removes a fix (T47047) for dpi issues when dragging out the toolbox. The new toolbox in 2.8 does not seem to have the same DPI issues.
Exact steps for others to reproduce scrollbar invisible (T69413):
change the 3d viewport to preferences and go to addons. The scrollbar will not be visible
To verify there are no DPI issues:
Apply the patch and open blender. Hide the toolbar. Split the 3d view port into 4 windows, such that one is very small horizontally, another is very small vertically, and a third is small in both directions. Drag out the toolbar arrow on all four viewports. The Toolbar will be the same size in each. For further verification, adjust the scaling and repeat.
{F7805968}
Also this is my first time submitting a patch. Some instruction is welcome!
Reviewed By: #user_interface, Severin
Maniphest Tasks: T69413
Differential Revision: https://developer.blender.org/D6050
I also changed the Collada importer scuh that the diffuse Alpha is now set
for the generated PBSDF Shader AND for the base color.
Note: we can not export the base color AND the color
from the PBSDF Shaders at the same time. And when importing
we do not know if the color was originally coming from a base
material or from a shader. Setting them both in import seems
to give the most consistent results.
I'm still not entirely sure what was going on - I know that the execute
region didn't get initialized correctly, but doing that at a later point
didn't fix the issue. Apparently forcing the header region to
re-initialize does fix it, even though I was sure this was redundant.
Also fixes a memory leak in UI code after preferences were opened.
This function is a very special refresh function just for floating
regions. _initialize is more consistent with ED_area_initialize() so use
that too.
Also adds assert.
Add toolbar to sequencer regions.
A bit of refactoring has to be done in RNA space.
Currently there is only cut tool implemented to serve as template for
anybody who would like to add more.
Importers/exporters should show the sidebar by default (if they have
any settings). For some reason this was missing for the Alembic and
Collada exporters.
Waveform is freed in `sound_load_audio()` when sound length is `queried by BKE_sound_info_get()`.
Add argument free_waveform, so `BKE_sound_info_get()` can skip waveform freeing, as it is not expected to alter sound.
Reviewed By: sybren
Differential Revision: http://developer.blender.org/D6053
Add Adjust Last Operation panel to Sequencer.
`OPTYPE_REGISTER` was removed form some operators and few properties were hidden
So they don't show up on the panel
Author: a.monti
Reviewed By: ISS
Differential Revision: http://developer.blender.org/D6210
Refactor code to use `eSpaceSeq_Proxy_RenderSize` or corresponding `IMB_Proxy_Size`
enum items directly.
`SEQ_PROXY_RENDER_SIZE_100` has assigned value 99 to distinguish from `SEQ_PROXY_RENDER_SIZE_FULL`.
This caused error in image size calculation and because of that image had to be scaled.
Author: EitanSomething
Reviewed By: ISS
Differential Revision: http://developer.blender.org/D6368
Sometimes on flat open vertices the thickness would suddenly start
to be jumping in powers of 2, also when bending a plane there is a
noticeable jump in the geometry.
When offset is set to -1 or 1 weird glitches happen.
See D6559 for test cases that failed.
Some modifiers (like particle system, but also some other physics
simulations) require extra steps besides creating the modifier itself,
so had to switch to higher-level `ED_object_modifier_add()` to add
inserted modifiers in an overriding object data-block.
Due to how particle modifier handles copying, some extra nasty
hacks/work-around were also needed to get it working.
This data is only used to get current time/frame value, which is never
mandatory to add a modifier.
Needed by incoming fix to support particles modifiers in liboverrides.
Sometimes on flat open vertices the thickness would suddenly start
to be jumping in powers of 2, also when bending a plane there is a
noticeable jump in the geometry.
When offset is set to -1 or 1 weird glitches happen.
See D6559 for test cases that failed.