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
2018-04-01Merge branch 'master' into blender2.8Campbell Barton
- Undo that changes modes currently asserts, since undo is now screen data. Most likely we will change how object mode and workspaces work since it's not practical/maintainable at the moment. - Removed view_layer from particle settings (wasn't needed and complicated undo).
2018-04-01Resolve unsigned comparison error w/ MSVCCampbell Barton
2018-04-01Cleanup: remove global headerCampbell Barton
2018-04-01Removed by accident in last commitCampbell Barton
2018-03-31Undo: unified undo system w/ linear historyCampbell Barton
- Use a single undo history for all operations. - UndoType's are registered and poll the context to check if they should be used when performing an undo push. - Mode switching is used to ensure the state is correct before undo data is restored. - Some undo types accumulate changes (image & text editing) others store the state multiple times (with de-duplication). This is supported by checking UndoStack.mode `ACCUMULATE` / `STORE`. - Each undo step stores ID datablocks they use with utilities to help manage restoring correct ID's. Needed since global undo is now mixed with other modes undo. - Currently performs each undo step when going up/down history Previously this wasn't done, making history fail in some cases. This can be optimized to skip some combinations of undo steps. grease-pencil is an exception which has not been updated since it integrates undo into the draw-session. See D3113
2018-03-31BLF: Remove debug printClément Foucault
"this is not the commit you're looking for"
2018-03-31BLF: Fix Vertical/Horizontal layout switch.Clément Foucault
This was breaking the first drawcall after a simple/non-simple shader switch.
2018-03-31UI: Perf: Batch icons drawcalls together.Clément Foucault
For this we use a new shader that gets it's data from a uniform array. Vertex shader position the vertices using these data. Using glUniform is way faster than using imm for that matter. Like BLF rendering, UI icons are always (as far as I know) non occluded and displayed above everything else. They also does not overlap with texts so they can be batched at the same time.
2018-03-31BLF: Perf: Do not call FT_Set_Char_Size every time.Clément Foucault
Using FT_Set_Char_Size is slow. Calling it only when needed is more clever.
2018-03-31BLF: Perf: Add a kerning cache table for ascii chars.Clément Foucault
This adds less than a megabyte of mem usage. FT_Get_Kerning was the 2nd hotspot when profilling. This commit completly remove this cost. One concern though: I don't know if the kerning data is constant for every sizes but it seems to be the case. I tested different fonts at different dpi scalling and saw no differences.
2018-03-31BLI_sort_utils: add pointer sorting callbackCampbell Barton
Also rename Pointer -> Ptr
2018-03-31Cleanup: blf internal struct namingCampbell Barton
- use x/y/width/height/max as a suffix. - replace 'num' prefix /w 'len' suffix.
2018-03-31Cleanup: BLF batch drawing namingCampbell Barton
- batching -> batch_draw. - ct & size -> len. - start/end -> begin/end (follow GL convention).
2018-03-30UI: Perf: Do not use implicit Attrib fill.Clément Foucault
2018-03-30BFL: Fix broken vertical texts.Clément Foucault
I've made a separate version of the geom shader that works with full 3D modelviewmat. This commit also includes some fixup inside blf_batching_start().
2018-03-30DRW: Add BLF_batch_reset to be able to use BLF inside DRW.Clément Foucault
2018-03-30UI: Perf: Add BLF batching for File browser and UI blocks.Clément Foucault
This batch together most of the calls that can be batch together.
2018-03-30BLF: Add Batching capabilities.Clément Foucault
You can now use BLF_batching_start and BLF_batching_end to batch every drawcall to BLF together minimizing the overhead introduced by BLF and the opengl driver. These calls cannot be nested (for now). If the modelview matrix changes, previously batched calls are issued and a the process resume with the new matrix. However the projection matrix MUST not change and gl scissors as well.
2018-03-30GPUFramebuffer: Fix assert triggering another assert.Clément Foucault
2018-03-30BLF: Use Batch API instead of IMM.Clément Foucault
This is not a perfect win just yet. It's now calling glBufferSubData for every call (instead of using glMapBufferRange which is almost faster), but with this system we will be able to batch drawcalls together. See next commit.
2018-03-30C Logging: use instead of printf for messagesCampbell Barton
- See `--log` help message for usage. - Supports enabling categories. - Color severity. - Optionally logs to a file. - Currently use to replace printf calls in wm module. See D3120 for details.
2018-03-30Select Grouped: Collection Part IIDalai Felinto
Selecting not only the objetcs directly linked to the selected collection. So we also do it for the objetcs in the nested collections, just as we can do from the outliner.
2018-03-30Collections: API to select all scene collection objectsDalai Felinto
2018-03-30Select Grouped: Collection Part IDalai Felinto
Use Shift+G > Collection. If there is only one collection, it just selects it, if there are multiple ones user get to pick which one to select. This is the same behaviour we have for groups. Note, we only select objects directly in the collection, not the ones in any nested collection. Feature suggested by Pablo Vazquez (venomgfx)
2018-03-30Fix typo in outliner Select Objects tooltipDalai Felinto
2018-03-30Collections: API to get collection from indexDalai Felinto
2018-03-30Collections: API to check if object is in collectionDalai Felinto
2018-03-29BLF: Reduce the size of the buffer requested to IMM.Clément Foucault
There is no point to not call strlen if the number of char is large.
2018-03-29BLF: Perf: Divide by 6 the amount of verts sent to the GPU.Clément Foucault
This means smaller imm buffer usage. This does not reduce the number of drawcalls. This uses geometry shader which is slow for the GPU but given we are really CPU bound on this case, it should not matter. A perfect implementation would: - Set the glyph coord in a bufferTexture and just send the glyph ID to the GPU to read the bufferTexture. - Use GWN_draw_primitive and draw 2*strllen triangle and just retrieve the glyph ID and color based on gl_VertexID / 6. - Stream fixed size buffer that the Driver can discard quickly but this is the same as improving IMM directly.
2018-03-29PyDocs: Adde link to Wikipedia page for mathutils.Euler classAaron Carlisle
This update adds a link to the Wikipedia article "Euler angles" to the description of the mathutils.Euler class. I initially was not sure what a "Euler" represented in Blender API, but found the Wikipedia article helpful. I believe others will find the link helpful too if it appears in the class documentation. This is similar to the Wikipedia links that appear in the mathutils.Matrix class, e.g: https://docs.blender.org/api/blender_python_api_current/mathutils.html?highlight=euler#mathutils.Matrix.adjugate Author: @justasb Reviewers: campbellbarton, trumanblending, Blendify Reviewed By: Blendify Subscribers: Blendify Tags: #bf_blender Differential Revision: https://developer.blender.org/D3077
2018-03-29Cleanup: Use uppercase UI_ prefix for external functionsJulian Eisel
Using uppercase prefixes is our convention for external functions. "External" as in functions exposed to the outside of interface/ directory.
2018-03-29UI: Fix out of bound read catched by asan.Clément Foucault
2018-03-29UI: Perf: Group fill/border/emboss batches together.Clément Foucault
This roughly halves the number of drawcalls from widgetbase_draw.
2018-03-29Merge remote-tracking branch 'origin/master' into blender2.8Dalai Felinto
Fix for T54437: Sequencer preview uses last updated scene The fix started in master, moving EvaluationContext initialization before we leave `deg_evaluate_on_refresh()`. Upon merging master we can fix the actual issue which was to set the EvaluationContext depsgraph even if the depsgraph was already updated.
2018-03-29Merge commit 'origin/master^' into blender2.8Dalai Felinto
2018-03-29Depsgraph: initialize EvaluationContext even if nothing to updateDalai Felinto
This is required to T54437 (sequencer preview uses last updated scene). Although the fix itself needs to be in 2.8, for the 2.8 specific initialization code.
2018-03-29UI: Perf: widgetbase: Replace imm usage by a batch cache.Clément Foucault
Introduce a UI batch cache. For the moment it's only used by widgetbase so leaving it interface_widgets.c. If it grows, it can have its own file. Like all preset batches (batches used by UI context), vaos must be refreshed each time a new window context is binded. This still does 3 GWN_batch_draw in the worst cases but at least it does not use the IMM api. I will continue and batch the 3 calls together since we are really CPU bound, so shader complexity does not really matters. I cannot spot any difference on all the widgets I could test. I did not use any unit tests so I cannot tell if there is really any defects. This is not a complete rewrite but it adresses the top bottleneck found after a profilling session.
2018-03-29GPUShader: Add specialized widget base shader.Clément Foucault
This vertex shader let us draw widgets with batches instead of imm calls.
2018-03-29EEVEE: Fix bad framebuffer configurationClément Foucault
Was causing black / corrupted scene because of broken downsample Add a debug check to not run into this problem again.
2018-03-29Particles: Fix missing hair dynamicsSergey Sharybin
Only if all the nasty looking bugs had such a simple solution...
2018-03-29Particles: Remove dedicated recalc field from ParticleSettingsSergey Sharybin
Use more generic id->recalc flag. Also sanitize flag flush from settings to particle system. Need to do such flush before triggering point cache reset, since point cache reset will do some logic based on what flags are set. This will solve crash caused by threaded update which will set some bitflags while point cache reset is in progress.
2018-03-29Cleanup, silence compiler warning in release buildSergey Sharybin
2018-03-29Draw manager: Make particle code drawing closer to old viewportSergey Sharybin
The way how particle state is to be accessed or used did not change in Blender 2.8, so the drawing code should follow old design. This code is somewhat duplicated from drawobject.c, but old draw code is on the way to be removed anyway. This fixes issue with disappearing particles when tweaking number of particles.
2018-03-29Draw manager: Make evaluation context a part of context stateSergey Sharybin
This way we don't have to re-initialize the full evaluation context in every area we need it.
2018-03-29Draw manager: Use C99 struct initializationSergey Sharybin
Allows us to easily add fields which we never want to be initialized, but still keep sane order of fields in the structure itself.
2018-03-29Draw manager: Use utility functions for dealing with state memsetSergey Sharybin
2018-03-29Draw manager: Cleanup, early outputSergey Sharybin
Do early output and reduce level of indentation.
2018-03-29Depsgraph: Tag datablock with original update flagSergey Sharybin
Tagging based on components might not be granular enough. For example, for particles we would want to know what part of particles was changed exactly. For the flushing we wouldn't worry too much, because we will want less granular updates there anyway.
2018-03-28Move to Collection - Add new collectionDalai Felinto
Include option to create new collection and move objects to this collection. Based on suggestion by Pablo Vazquez (venomgfx) and my own feedback.
2018-03-28Move to Collection - Skip Master Collection nested levelDalai Felinto
Have the Master Collection always opened. This removes one level of nesting. As suggested by Pablo Vazquez (venomgfx).