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
2020-08-08Cleanup: use array syntax for sizeof with fixed valuesCampbell Barton
Also order sizeof(..) first to promote other values to size_t.
2020-08-07Cleanup: fixed Clang-Tidy `bugprone-suspicious-string-compare` warningsSybren A. Stüvel
No functional changes.
2020-07-26Cleanup: GPU: Remove GPU_glew.h outside of GPU moduleClément Foucault
Remove use of GL* constants and types inside the codebase. There is still a few occurence to get rid of.
2020-07-03Cleanup: Blendkernel, Clang-Tidy else-after-return fixes (incomplete)Sybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/blenkernel` module. Not all warnings are addressed in this commit. No functional changes.
2020-05-18OpenSubdiv: Cleanup, Remove from legacy SubsurfCCG codeSergey Sharybin
The CPU side implementation is done on a new dedicate base ground. The GPU side must be redone anyway.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2019-08-06Cleanup: spelling (neighbor)Campbell Barton
2019-04-22Cleanup: style, use braces for blenkernelCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-26Cleanup: remove redundant BKE/BLI/BIF headersCampbell Barton
2018-09-05Merge branch 'master' into blender2.8Sergey Sharybin
2018-09-05CCG: Remove number of layers from keySergey Sharybin
The issue there was that number of layers did not include normals, while element size counts bytes used by normals. This sounds very fragile and dangerous to work further. Also, one value can easily be delivered from another, so it is redundancy going on here. Possible difference now is that multires subdivision will copy normals to a higher levels. Shouldn't be big of a problem, since leaving old normals and updating coordinates is not correct either.
2018-07-16OpenSubdiv: Re-work C-API integrationSergey Sharybin
Main goal is to make API simpler to follow (at least ion terms what is defined/declared where, as opposite of handful big headers which includes all the declarations), and also avoid a big set of long and obscure functions. Now C-API files are split into smaller ones, following OpenSubdiv behavior more closely, and also function pointers in structures used a lot more, which shortens functions names, UV integration part in GL Mesh is mainly stripped away, it needs to be done differently. On a related topic, UV coordinates API in converter needs to be removed as well, we do not need coordinates, only island connectivity information there. Additional changes: - Varying interpolation in evaluator API are temporarily disabled, need to extend API somewhere (probably, evaluator's API) to inform layout information of vertex data (whether it contains varying data, width, stride and such). - Evaluator now can interpolate face-varying data. Only works for adaptive refiner, since some issues in OpenSubdiv itself. Planned changes: - Remove uv coordinates from TopologyConverter. - Support evaluation of patches (as opposite to individual coordinates as it happens currently). - Support more flexible layout of varying and face-varying data. It is stupid to assume varying is 3 floats and face-varying 2 floats. - Support of second order derivatives. - Everything else what i'm missing in this list.
2018-06-17Merge branch 'master' into blender2.8Campbell Barton
2018-06-17Cleanup: trailing space for blenkernelCampbell Barton
2017-04-07Replace CGSubSurf direct includes to GL/glew.hDalai Felinto
2016-07-22OpenSubdiv: Properly respect Subdivide UVs optionSergey Sharybin
2016-07-20OpenSubdiv: Initial work to support UV maps in textured OSD viewportSergey Sharybin
A bit work in progress, currently the following limitations: - Texture shading only, Material shading will come later - No UVs subdivision yet - Always uses active UV and currently changing active UV will not properly update the viewport. Well, need to start somewhere :)
2015-11-04OpenSubdiv: Use pool for delayed OpenGL buffers free when freeing from ↵Sergey Sharybin
non-main thread This is really similar to what GPU module was already doing. There are number of possible improvements still: - Re-use allocated VAOs when requesting new ones instead of going to the trouble of freeing VAO and then re-creating it again. - Move VAO handling to GPU module. Fixes T46589: OpenSubdiv crash with drivers
2015-08-05OpenSubdiv: Completely avoid possible access to non-existing CPU dataSergey Sharybin
Make it so CCGDM reports 0 number of geometry when it uses GPU backend for drawing. This screws up a bit statistics in info header and requires to have some special handle of CCGDM in the drawing code, but makes it so non of the areas will try to access non-existing geometry.
2015-08-03OpenSubdiv: Made it a modifier option to enable OSD for viewportSergey Sharybin
The idea of this commit is to make it so we can enable OpenSubdiv by default for the release builds but keep it limited to the viewport only for a specific meshes. This is a temporary solution for until all the needed features are supported on the OpenSubdiv side. Flag itself is done as a dedicated field in modifier DNA so we can easily remove it in the future without ending up with some temporary flag hanging around forever.
2015-08-03OpenSubdiv: Avoid crashes when GPU subsurf is tried to be used on CPUSergey Sharybin
The issue was caused by CCG code being confused by number of geometry returned by utility functions in the case of the skipped grids. Made it so that code is always only working with CCG data and handled drawing code in a bit special way now. This solves such crashes as i.e. snapping.
2015-08-03OpenSubdiv: Remove workaround for simple subdivision modeSergey Sharybin
This case is now supposed to be supported by OpenSubdiv.
2015-07-20OpenSubdiv: Commit of OpenSubdiv integration into BlenderSergey Sharybin
This commit contains all the remained parts needed for initial integration of OpenSubdiv into Blender's subdivision surface code. Includes both GPU and CPU backends which works in the following way: - When SubSurf modifier is the last in the modifiers stack then GPU pipeline of OpenSubdiv is used, making viewport performance as fast as possible. This also requires graphscard with GLSL 1.5 support. If this requirement is not met, then no GPU pipeline is used at all. - If SubSurf is not a last modifier or if DerivesMesh is being evaluated for rendering then CPU limit evaluation API from OpenSubdiv is used. This only replaces the legacy evaluation code from CCGSubSurf_legacy, but keeps CCG structures exactly the same as they used to be for ages now. This integration is fully covered with ifdef and not enabled by default because there are several TODOs to be solved first: - Face varying data interpolation is not really cleanly implemented for GPU in OpenSubdiv 3.0. It is also not implemented for limit evaluation API. This basically means we'll have really hard time supporting UVs. - Limit evaluation only works with adaptivly subdivided meshes so far, which basically means all the points of CCG are pushed to the limit. This gives different result from old code. - There are some serious optimizations possible on the topology refiner creation, which would speed up initial OpenSubdiv mesh creation. - There are some hardcoded asumptions in the GPU and DerivedMesh areas which could be generalized. That's something where Antony and Campbell can help, making it so the code is structured in a way which is reusable by all planned viewport projects. - There are also some workarounds in the dependency graph to make sure OpenGL buffers are only freed from the main thread. Those who'll be wanting to make experiments with this code should grab dev branch (NOT master) from https://github.com/Nazg-Gul/OpenSubdiv/tree/dev There are some patches applied in there which we're working on on getting into upstream.
2015-07-20CCGSubSurf: Split file into several smaller onesSergey Sharybin
This is a preparation commit for having OpenSubdiv integrated into Blender and new layout is the following: - CCGSubSurf.c contains implementation of common functions used by both legacy subdivisions code and by the new code in the future. - CCGSubSurf_inline.h contains internal functions which are to be inlined due to the performance reasons. Those functions are only ment to be used bu CCGSubSurf* files. - CCGSubSurf_intern.h contains declarations of private functions and data structures used by CCGSubSurf module. - CCGSubSurf_legacy.c contains legacy implementation of subdivision algorithm. - CCHSubSurf_util.c contains utility functions which are not directly related on the subdivision code (i.e. debug functions, hash implementation etc). There should be no functional changes so far.
2015-02-23Subsurf: missing NULL checks on freeCampbell Barton
2015-02-17Subsurf: Use guarded allocator for non-arena CCGSergey Sharybin
Our new guarded allocator implementation has much smaller memory block size overhead and doesn't have any locks now. So in order to make fuller track of what's happening in blender and avoid confusion why certain circumstances reports much less memory than others we'll now switch to guarded allocator. This was actually one of the biggest reasons of the confusion in the recent memory usage investigation. There's still some overhead is happening due to non-freeing nature of arena allocator but the things are not nearly as bad as they looked before: memory overhead is measured in tens of megabytes, not hundreds as it looked before. Plus with some smarter allocation policy we can almost eliminate this overhead.
2014-12-10Fix T42748: Crash in subsurf, threaded accessCampbell Barton
Allocating the iterator from a BLI_memarena wasn't threadsafe. Change the API to use stack memory for iterators. Thanks to @mont29 for finding exact cause of the bug.
2014-08-14hint checks to re-alloc as unlikelyCampbell Barton
also edit comments for knife tool
2014-02-21Fix T38736: ShrinkWrap modifier doesn't work after SubsurfCampbell Barton
2013-12-22Style Cleanup: remove preprocessor indentation (updated wiki style guide too)Campbell Barton
2013-10-01Mark some CCG funcrions as inlinedSergey Sharybin
This seems to be giving speedup up to 10% in own tests. -- svn merge -r60104:60105 ^/branches/soc-2013-depsgraph_mt
2013-07-02add missing gpl headersCampbell Barton
2013-05-28move BLO_sys_types.h -> BLI_sys_types.h (it had nothing todo with loading)Campbell Barton
remove MEM_sys_types.h which was a duplicate.
2013-04-26add subsurf limits, in RNA, there were none, but subsurf would assert at 29.Campbell Barton
Checked and subsurf level 11 gives over 3 million faces from a single triangle. So use this as a limit.
2013-04-05code cleanup: include orderCampbell Barton
2013-02-04style cleanup: spaces -> tabsCampbell Barton
2013-01-20code cleanup: remove some paranoid checks which would have crashed anyway ↵Campbell Barton
earlier on. Also some minor formatting.
2013-01-12patch from Harley Acheson to remove multiple inline defines.Campbell Barton
2012-10-21style cleanup: trailing tabs & expand some non prefix tabs into spaces.Campbell Barton
2012-09-20code cleanup: remove unused macros, commet some which may be useful later - ↵Campbell Barton
or good to keep for completeness. quieted some warnings and add flags -Wmissing-include-dirs and -Wno-div-by-zero to cmake/gcc
2012-08-18Fix simple subsurf on wire edgesNicholas Bishop
Subsurf on wire edges gave smooth results even if set to simple subdiv. Added a field to the CCG meshIFC to flag simple subdivision, then when syncing vertices simply skip moving vertices if in simple-subdiv mode. This change affects two places, the level-1 build in sync and the subdivision up to other levels. Fixes bug [#32268] Simple Subsurf Modifier gives unexpected results on edges without faces projects.blender.org/tracker/index.php?func=detail&aid=32268&group_id=9&atid=498
2012-07-08style cleanupCampbell Barton
2012-06-24style cleanypCampbell Barton
2012-06-19Fix for subsurf oscillations along creased boundary edgesNicholas Bishop
Changed the "exterior edge interior shift" section of subsurf calc to always treat boundary edges the same, regardless of sharpness. We should revisit subsurf creasing to see if more consistent and predictable results are possible, but for now this a non-intrusive way to avoid wavyness along the boundary. Fixes bug [#31864] Artifacts when using Subsurf+Crease on plane http://projects.blender.org/tracker/index.php?func=detail&aid=31864&group_id=9&atid=498
2012-06-19Code cleanup: use float* rather than void* in subsurf calculationNicholas Bishop
No functional changes.
2012-06-17style cleanup:Campbell Barton
also fix for building ghost test and fix double free in one of the tests