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
2019-08-07Merge branch 'soc-2019-openxr' into temp-vr-draw-threadtemp-vr-draw-threadJulian Eisel
2019-08-07Merge branch 'master' into soc-2019-openxrJulian Eisel
2019-08-06DrawManager: Fixed Assertion In WorkbenchJeroen Bakker
2019-08-06Merge branch 'temp-concurrent-viewport-theme' into temp-vr-draw-threadJulian Eisel
2019-08-05Cleanup: use unsigned char for theme colorsCampbell Barton
Nearly all byte-color functions use 'uchar' causing casts when then colors were passed in. Declare as uchar to remove the need for casts.
2019-08-05Cleanup: Remove unnecessary call & varJulian Eisel
2019-08-05Cover all UI_GetTheme calls in draw managerJulian Eisel
Previous commit wasn't nearly covering all of them.
2019-08-05Merge branch 'temp-concurrent-viewport-theme' into temp-vr-draw-threadJulian Eisel
2019-08-05Avoid change to global theme state in draw-managerJulian Eisel
Changing the global state would obviously cause issues for async execution. This is the simplest solution for a simple problem. Reviewers: fclem, brecht Differential Revision: https://developer.blender.org/D5413
2019-08-02Keep a single OpenGL/GPU context alive on the drawing threadJulian Eisel
Avoids expensive context switches.
2019-08-02Merge branch 'soc-2019-openxr' into temp-vr-draw-threadJulian Eisel
2019-08-01Merge branch 'master' into soc-2019-openxrJulian Eisel
2019-08-01Cleanup: misc spelling fixesCampbell Barton
T68035 by @luzpaz
2019-08-01Cleanup: remove unused membermano-wii
2019-07-31Refactor access to dependency graphSergey Sharybin
This change ensures that operators which needs access to evaluated data first makes sure there is a dependency graph. Other accesses to the dependency graph made it more explicit about whether they just need a valid dependency graph pointer or whether they expect the graph to be already evaluated. This replaces OPTYPE_USE_EVAL_DATA which is now removed. Some general rules about usage of accessors: - Drawing is expected to happen from a fully evaluated dependency graph. There is now a function to access it, which will in the future control that dependency graph is actually evaluated. This check is not yet done because there are some things to be taken care about first: for example, post-update hooks might leave scene in a state where something is still tagged for update. - All operators which needs to access evaluated state must use CTX_data_ensure_evaluated_depsgraph(). This function replaces OPTYPE_USE_EVAL_DATA. The call is generally to be done in the very beginning of the operator, prior other logic (unless this is some comprehensive operator which might or might not need access to an evaluated state). This call is never to be used from a loop. If some utility function requires evaluated state of dependency graph the graph is to be passed as an explicit argument. This way it is clear that no evaluation happens in a loop or something like this. - All cases which needs to know dependency graph pointer, but which doesn't want to actually evaluate it can use old-style function CTX_data_depsgraph_pointer(), assuming that underlying code will ensure dependency graph is evaluated prior to accessing it. - The new functions are replacing OPTYPE_USE_EVAL_DATA, so now it is explicit and local about where dependency graph is being ensured. This commit also contains some fixes of wrong usage of evaluation functions on original objects. Ideally should be split out, but in reality with all the APIs being renamed is quite tricky. Fixes T67454: Blender crash on rapid undo and select Speculation here is that sometimes undo and selection operators are sometimes handled in the same event loop iteration, which leaves non-evaluated dependency graph. Fixes T67973: Crash on Fix Deforms operator Fixes T67902: Crash when undo a loop cut Reviewers: brecht Reviewed By: brecht Subscribers: lichtwerk Maniphest Tasks: T67454 Differential Revision: https://developer.blender.org/D5343
2019-07-30Merge branch 'soc-2019-openxr' into temp-vr-draw-threadJulian Eisel
2019-07-30Merge branch 'master' into soc-2019-openxrJulian Eisel
2019-07-30Fix crash clicking in the 3D view on startupCampbell Barton
Setting the 3D view cursor on startup could crash because the viewport hasn't been assigned to the region.
2019-07-30Initial, mostly broken VR viewport drawing on own threadJulian Eisel
Spawns a separate thread to do any VR session drawing on. There are four reasons for this: * VR session doesn't need the usual main loop procedure for drawing. With the drawing on a separate thread, the session doesn't have the overhead of the other parts of the main loop. * OpenXR performs thread blocking operations to synchronize rendering with the device refresh rate. This would conflict with the rest of Blender, causing lags on event handling, drawing, etc. * With an own thread, we can keep a single OpenGL context alive, avoiding expensive context switches. This should improve performance significantly. * With a bit more work, viewports can draw entirely in parallel (at least the CPU side of it), pushing performance even further. Drawing the viewport on a separate thread shouldn't be much of an issue. The draw-manager is already thread safe (mutex guarded). Not much seems needed to get it entirely concurrent, allowing viewport drawing from separate threads without any synchronization (i.e. only one at a time). I had to create an own depsgraph for the VR draw thread so the viewport gets its own buffers for its own OpenGL context. Right now this is utterly broken, but at least an empty viewport is drawn for the VR session in a separate thread. Issues are: * VR viewport doesn't draw any objects, just background + overlays (apparently the VR session depsgraph isn't built correctly). * OpenGL context of the main thread seems messed up when drawing the VR view. Result is drawing glitches and eventually Blender crashes. * Exiting the VR session causes failed assertions and memory leaks.
2019-07-303D View: Move selection API to a Selection engine.mano-wii
This commit moves the API of selecting faces, vertices and edges to a DRW manager engine. Reviewers: campbellbarton, fclem Subscribers: jbakker, brecht Differential Revision: https://developer.blender.org/D5090
2019-07-24Use draw manager offscreen context for the VR sessionJulian Eisel
This way we avoid the big overhead of context switches. Makes frames render about twice as fast here. For heavy Spring scenes I'm getting around 20 FPS here, classroom scene is at 50 FPS. This is great given that drawing itself still isn't optimized for dual eye rendering.
2019-07-23Fix T67299: UV Stretching Overlay of type "Area" fail when any face is hiddenmano-wii
We want to include this for 2.80
2019-07-23Merge branch 'master' into soc-2019-openxrJulian Eisel
2019-07-18Fix T61117: Selecting an armature doesn't select the boneCampbell Barton
Regression from 2.7x caused by 28dfc47cf0b06
2019-07-16Merge branch 'master' into soc-2019-openxrJulian Eisel
2019-07-15Fix T66983 Wireframe Display in edit mode edges missing when overlays are ↵Clément Foucault
disabled
2019-07-15Fix T66707 Modifying bone's 'Custom Object' reference shape causes blender ↵Clément Foucault
to crash This was caused by an instancing batch not being initialized correctly.
2019-07-12Fix T66773: Active edit-bone isn't updatingCampbell Barton
2019-07-12Cleanup: use `_orig` as a suffixCampbell Barton
2019-07-12UI: increase contrast for active boneCampbell Barton
Follow up for T66747 fix, active color didn't contrast enough.
2019-07-11Merge branch 'master' into soc-2019-openxrJulian Eisel
2019-07-10Fix T66654: wireframe overlay crash in vertex paint in some casesJeroen Bakker
Differential Revision: https://developer.blender.org/D5218
2019-07-10Fix T61770 Multiple Hair Systems Not visible while in particle edit modeClément Foucault
The check was for the whole object instead of individual particle system.
2019-07-10Fix T65850 Sculpt: Vertices not hidden if using shape keysClément Foucault
2019-07-10DrawManager: Crash Face SelectionJeroen Bakker
Init the scene of the draw context when selecting. When using face dot selection on when the subsurf modifier is active on the cage, the scene needs to be valid. It is read from the context in the `DRW_mesh_batch_cache_create_requested` and used in the `isDisabled` method of the SubSurfModifier. Reviewers: fclem, sergey Differential Revision: https://developer.blender.org/D5214
2019-07-09Fix T66516: WPaint crash selecting bone with wire & face-maskCampbell Barton
2019-07-08Fix T65534 Eevee don't respect active UVmapClément Foucault
2019-07-08Fix T62941 Subdivision Modifier Showing all face dotsClément Foucault
Previously in 2.79 we were using a specialized drawing using derivedMesh. Now the subsurf modifier tag each center vertex as facedot and let the DRWManager pick it up. Some modifiers (deforming ones) do not clear the tag so we can use this technique even if there is deforming modifiers after subsurf modifiers.
2019-07-08Merge branch 'master' into soc-2019-openxrJulian Eisel
2019-07-07Cleanup: spellingCampbell Barton
2019-07-06Fix T62101: GPencil: selection order is wrongAntonioya
Following the advices of @Germano Cavalcante (mano-wii) , I have exposed as a workaround the free function to be called from draw manager for selection. Now, the free function is not called for selection inside gpencil draw_scene, but it's called from draw_manager.c. The real fix would be create a new Scene_finish callback in draw manager, but as the release of 2.80 is almost here, we fix this with a workaround that must be removed when new callback is in place. Differential Revision: http://developer.blender.org/D5193
2019-07-05Fix paint modes using edge-selection in non-selection modesCampbell Barton
2019-07-05DRW: tweak paint edge drawing to show all unselected edgesCampbell Barton
32d3bce1ea27c changed behavior when it shouldn't have.
2019-07-04Cleanup: Suppress warningJeroen Bakker
Introduced by previous commit
2019-07-04GreasePencil: Image render artifactsJeroen Bakker
When doing image rendering with grease pencil, it reused the view of workbench or EEVEE. These views might be offsetted due to TAA. This shifted the view a tiny bit. We will not reset the view in between render engines. Reviewed By: fclem Differential Revision: https://developer.blender.org/D5171
2019-07-02Fix T65468 Nurbs: Broken display when hiding control pointsClément Foucault
2019-07-01DRW: replace edge hash with an edge aligned bitmapCampbell Barton
2019-07-01Initial HMD viewport rendering (DirectX only first)Julian Eisel
Finally: This makes it possible to render a viewport to an HMD via OpenXR. Pure OpenGL rendering will need some more tweaks to work. To my great delight, performance is quite good for reasonably sized scenes. Had to do some hacks and marked some TODOs. Nothing too bad though. Here are a couple of notes: * Current initial pose is pretty useless, think it just looks downwards from world origin. Will change that soon. * The rendered viewport has some issues: Too dark (bad lighting?), grid doesn't show up even though I told it to, lighting seems to change with view position/rotation, etc. Needs some polish. * Ideally we'd just use the D3D11 Texture given to us via the OpenXR swapchain and blit the OpenGL framebuffer into that. However the NV_DX_interop extension fails doing this. Seems like this is a NVidia Optimus only issue, but I'm missing the hardware to confirm. So instead, we blit into the D3D11 back buffer first and then into the Texture. * The draw-manager uses its own offscreen context so we have to get the render result from the draw-manager context to the VR session's context first. Luckily I've already added code to support blitting from one OpenGL context into another. But it requires blitting twice. Blitting should be very cheap, but still... Draw-manager could get a context to use passed instead.
2019-07-01DRW: Fix Crash in DRW_draw_depth_object when object batch cache is not initClément Foucault
This can happen if the viewport is not redrawn before calling an operator (frequent in python scripting). Related to T64805
2019-07-01Fix T66262: slow preview icon loadingBrecht Van Lommel