Age | Commit message (Collapse) | Author |
|
Summary:
Mainly addressed to solve old TODO with color managed fallback
to CPU mode when displaying render result during rendering.
That fallback was caused by the fact that partial image update
was always acquiring image buffer for composite output and was
only modifying display buffer directly.
This was a big issue for Cycles rendering which renders layers
one by one and wanted to display progress of each individual
layer. This lead to situations when display buffer was based on
what Cycles passes via RenderResult and didn't take layer/pass
from image editor header into account.
Now made it so image buffer which partial update is operating
with always corresponds to what is set in image editor header.
To make Cycles displaying progress of all the layers one by one
made it so image_rect_update switches image editor user to
newly rendering render layer. It happens only once when render
engine starts rendering next render layer, so should not be
annoying for navigation during rendering.
Additional change to render engines was done to make it so
they're able to merge composite output to final result
without marking tile as done. This is done via do_merge_result
argument to end_result() callback. This argument is optional
so should not break script compatibility.
Additional changes:
- Partial display update for Blender Internal now happens from
the same thread as tile rendering. This makes it so display
conversion (which could be pretty heavy actually) is done in
separate threads. Also gives better UI feedback when rendering
easy scene with small tiles.
- Avoid freeing/allocating byte buffer for render result
if it's owned by the image buffer. Only mark it as invalid
for color management.
Saves loads of buffer re-allocations in cases when having
several image editors opened with render result. This change
in conjunction with the rest of the patch gave around
50%-100% speedup of render time when displaying non-combined
pass during rendering on my laptop.
- Partial display buffer update was wrong for buffers with number
of channels different from 4.
- Remove unused window from RenderJob.
- Made image_buffer_rect_update static since it's only used
in single file.
Reviewers: brecht
Reviewed By: brecht
CC: dingto
Differential Revision: http://developer.blender.org/D98
|
|
Make sure image will saved as (not over) after changing
it's type to Generated by clearing image's path in signal
handler.
|
|
|
|
|
|
patch by Paolo Acampora with some edits.
|
|
|
|
Custom props type changes).
Add an helper func to re-compute integer-only fcurve flags, and call it when editing custom props.
Reviewed by aligorith, thanks!
Summary: Proposal fix for "keyframing custom properties issue" (T37103).
Reviewers: aligorith
Maniphest Tasks: T37103
Differential Revision: http://developer.blender.org/D111
|
|
|
|
Internal)
- Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS macros cannot be used here, because the Py_BEGIN_ALLOW_THREADS causes a crash when quitting Blender.
- The low level function PyEval_ReleaseLock() is used assuming the Python library was built with multi-threads support.
|
|
Vectors were being assigned as an array of classes in Vec2f_ptr_from_PyObject and similar functions,
rather then assigning a number to each axis.
|
|
This gives undefined behavior - in my case stays the same value and crashes.
Check for finite input resolves the issue.
|
|
|
|
|
|
|
|
|
|
both have bad side-effects with strange behavior and viewport performance
|
|
- works by defining panel categories, currently restricted to the toolbar.
- no panels define bl_categories yet, so no user visible changes since tabs only show when there are multiple.
- panel pinning is available in rmb menu or alt+lmb.
|
|
Cache iterator might return unused keys as well.
Now unused keys are being removed before cleanup
and iteration.
|
|
limit
|
|
Before this it was a runtime check for number of displays/views
which is rather really annoying.
This simplifies code a bit and allows to do some more tricks
in other patches.
|
|
Differential Revision: http://developer.blender.org/D101
|
|
|
|
Before it was giving weird behavior with timeline in MCE
and track preview widgets. But there's also no much benefit
of having transparent toolbox there.
Requested by our motrack guru Sebastian ages ago.
|
|
|
|
|
|
Cast dimensions to size_t before multiplication.
Also made add_ibuf_size survive cases when image
buffer allocation failed.
|
|
|
|
|
|
|
|
Summary:
This commit removes ~10000 strlen calls and ~100000 memcpy calls in blender (profiled with blender --background), ~10000 memcpy calls in makesdna.
There is no need to create null-terminated strings for atoi, because it converts only the initial portion of the string anyway.
Also it was noticed that DNA_elem_array_size and arraysize functions work only with full strings, so there is no point to calculate strlen.
Reviewers: campbellbarton
Reviewed By: campbellbarton
Differential Revision: http://developer.blender.org/D105
|
|
|
|
object is"
This reverts commit 85eaa989807268dda60408f41475216ad45888d1.
Conflicts:
source/blender/editors/space_view3d/view3d_draw.c
|
|
Otherwise was impossible to have unfilled curves unless extrude was set
|
|
|
|
Makes this tool more useful on an entire mesh by only applying
beautify to planar surfaces.
|
|
|
|
was used for conversion from older 2.5x files. The do_version() code is still there and functioning though.
|
|
internal one.
|
|
The keymap here used WM_keymap_verify_item(), which only allows for a
single hotkey to be bound to an operator. In most cases, this really
isn't justified.
|
|
the current modifier does not support it or the cage is disabled (like Subsurf 0).
This way we save some space but still avoid the jumping around while changing settings in the header itself.
Thanks to Brecht for help on this. :)
|
|
color stop.
The add, delete and (f)lip buttons now use icons, and some button locations moved.
Reviewed By: brecht, dingto, billrey
Differential Revision: http://developer.blender.org/D97
|
|
|
|
Reviewed By: brecht
Differential Revision: http://developer.blender.org/D99
|
|
T37799 Patch from Simon Repp
with added option to recalculate handle lengths.
|
|
Summary:
Behaves very much the same as cache for Movie Clip datablock:
- Image now have `MovieCache *cache` field which replaced
legacy `ListBase ibufs`.
This allows image datablock to easily keep of image
buffers which are owned by itself. This field isn't
saved to the file and getting restored on undo steps.
However, cache limit is global for movies, sequences
and image datablocks now. So overall cached image buffers
size will not go above cache limit size in user
preferences.
- Image buffers which are marked as BITMAPDIRTY will never
be freed from the cache.
- Added utility function to iterate over image buffers
saved in movie cache.
- Movie cache cleanup check callback now have ImBuf argument
which can be used in a condition of cleanup.
- Added some utility functions which replaces legacy ibufs
iterations with image cache iteration which happens from
inside a lock.
- Fixed `image_mem_size()` which was only counting one of
the buffers if both float and byte buffer present.
Additional notes:
- `BKE_image_get_first_ibuf()` is rather stupid, but direct
access to ibufs->first was also the same stupid idea.
Would consider avoid this function is another project.
- There are some places which doesn't look threadsafe, but
they already were not so much threadsafe anyway before.
So think not a big deal with solving this later.
Finally solves infinite memory usage by image sequences! :)
Reviewers: brecht, campbellbarton
Reviewed By: brecht
CC: sebastian_k
Differential Revision: http://developer.blender.org/D95
|
|
Summary:
Uses some magic pseudo-random which is actually a
texture coordinate hashing function.
TODOs:
- Dither noise is the same for all the frames.
- It's different from Floyd's dither we've been
using before.
- Currently CPU and GPU dithering used different
implementation. Ideally we need to use the same
dither in CPU.
Reviewers: brecht
Reviewed By: brecht
Differential Revision: http://developer.blender.org/D58
|
|
|
|
in sculpt mode or image paint mode and no clone tool is active)
|
|
The trackpad would give isolated mouse pan events with a distance smaller than
one line or character. For other 2D views this is all accumulated in floats,
but in the text editor it only keeps track of integers, and the small mouse pan
events got lost due to rounding.
Now it keeps track of sub-line or sub-character scroll offsets to avoid this.
|
|
Paint sliders had too much space on right (aligned with pressure icons)
|