Revision b5f282b by Campbell Barton July 20, 2015, 23:41 (GMT) |
Remove nonnull attribute, NULL arg is valid here. |
Revision 30772b6 by Sergey Sharybin July 20, 2015, 20:43 (GMT) |
SCons: Weirdly enough at some point scons became broken in OpenSubdiv branch |
Revision 3d36489 by Sergey Sharybin July 20, 2015, 20:29 (GMT) |
OpenSubdiv: Commit of OpenSubdiv integration into Blender 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. |
Revision 2466c4f by Sergey Sharybin July 20, 2015, 20:29 (GMT) |
OpenSubdiv: Add OpenSubdiv files which are related on the CCGSubSurf and GPU Those files are still not in use (SCons will tyr to compile new CCGSubSurf files but no code will be in use at all because those new files are fully wrapped by ifdef WITH_OPENSUBDIV check). |
Revision a040157 by Sergey Sharybin July 20, 2015, 20:29 (GMT) |
OpenSubdiv: Add new OpenSubdiv related files This includes C-API bindings in intern/opensubdiv and CMAke module which finds the OpenSubdiv library. This filea are not in use so far, making it a separate commit to make actual integration commit more clear. |
Revision ccc3c2d by Sergey Sharybin July 20, 2015, 20:29 (GMT) |
CCGSubSurf: Split file into several smaller ones 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. |
Revision 6190d75 by Bastien Montagne July 20, 2015, 20:22 (GMT) |
Usual UI messages fixes. |
Revision a4a3d56 by Bastien Montagne July 20, 2015, 15:28 (GMT) |
Minor optimization in CustomData_update_typemap(). |
Revision 66dd9fb by Bastien Montagne July 20, 2015, 14:55 (GMT) |
Fix (unreported) broken MixWeight modifier in debug builds. defvert_find_index() & co now assert when '-1' invalid vgroup index is passed. We used to rely on NULL value returned in this case, but with the assert... The assert completely stalls blender actually (repeated for every vertex!). So much better to not call that func when vgroup index is invalid. |
Revision 9ee1f96 by Bastien Montagne July 20, 2015, 14:25 (GMT) |
Fix (unreported) potential serious bug in CustomData_merge(). It was always only using the flags from the first source layer of a given type, not from the layer actually being handled. This was (probably) more or less harmless for the CD_FLAG_NOCOPY test, but could be really bad when checking CD_FLAG_NOFREE, and when copying the flags over to new copied data! |
Revision 432d24f by Antonis Ryakiotakis July 20, 2015, 13:28 (GMT) |
Fix recent own stupidity with indexed sculpt drawing. |
Revision 40d4da8 by Campbell Barton July 20, 2015, 13:27 (GMT) |
Fix/Workaround for CMake buildinfo error Correcting the paths for buildinfo to point to the real header, ended up breaking buildinfo (by not running every build). It turns out we relied on the output _never_ existing, so CMake generates a new buildinfo each time. This is quite bad, but I didn't see a way for CMake to do this, so explicitly point to a missing file and comment whats going on. |
Revision ed3b19f by Antonis Ryakiotakis July 20, 2015, 12:56 (GMT) |
Ugly hack to avoid GLEW context error printing when initializing GLX. |
Revision db38a65 by Antonis Ryakiotakis July 20, 2015, 12:46 (GMT) |
Filter the debug callback to only report errors unless debug value is 20. stderr was getting flooded with too many error messages, most of which were not really relevant. |
Revision 2e2164d by Campbell Barton July 20, 2015, 12:31 (GMT) |
Resolve compiler warning for clang |
Revision 87328bd by Sergey Sharybin July 20, 2015, 10:46 (GMT) |
Fix T45218: Crash when trying to open System in the User preferences Fix T45381: Crash Blender 2.75 in Win7 x64 AMD card The issue is basically caused by graphics card driver which crashes when querying OpenCL platforms. This isn't something we can really solve from the CLEW side, because opencl.dll does exist in old driver and even has all the needed symbols, but first ever call to clGetPlatformIDs crashes. While rest of the blender works fine with those older ATI/AMD cards it's really needed to solve crashes of OpenCL device enumeration. Solution here is to force disable OpenCL platforms if we've detected that display card is using old ATI/AMD driver. It's not really proper solution so it's done in the python side where it's easy to do tweaks. Reasoning behind this change is: - If one uses really old driver it's likely because it's the latest one he/she can ever to install (because of discontinued support from AMD). - If old card is used it's likely to not have dedicated GPUs for rendering. - Even if there's a dedicated GPU device enumeration is likely to crash because of attempt to query OpenCL from the old card. There are still some tweaks needed likely, but this commit should make some of the configurations to work. |
Revision bd28c25 by Antonis Ryakiotakis July 20, 2015, 10:35 (GMT) |
Fix broken GLEW initialization. Initialize GLEW twice, once to get GLX extensions, once to get final context extensions. Not so nice because we get a warning on startup from GLEW, but at least it GL extensions should work now. |
Revision 5f25b91 by Antonis Ryakiotakis July 20, 2015, 10:18 (GMT) |
Dyntopo should be supported on systems without VBOs now. |
Revision cb6fc9d by Antonis Ryakiotakis July 20, 2015, 10:12 (GMT) |
Use abstraction to unbind buffers, should avoid crashes in systems that don't support VBOs. Exposed by initialization error in GLEW, which should be fixed seperately. |
Revision 422ffd2 by Antonis Ryakiotakis July 20, 2015, 08:59 (GMT) |
Pixel format selection now favours a format with a number of samples closer to the one requested on Windows. Patch D1384 by Benoit Bolsee. |
|
|
|


Master Commits
MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021