![]() |
|
Update to new version - Printable Version +- AB4D Forum (https://forum.ab4d.com) +-- Forum: Products Forums (https://forum.ab4d.com/forumdisplay.php?fid=4) +--- Forum: Ab3d.DXEngine (https://forum.ab4d.com/forumdisplay.php?fid=11) +--- Thread: Update to new version (/showthread.php?tid=4269) |
Update to new version - janovrom - 07-02-2021 Hi, I've tried updating from version 4.2.7655 to version 4.4.7848 and I've observed issues while having 1 main and 3 child DXViewportViews. I have this setup: 1. Each DXViewportView has a Viewport3D for camera. 2. Main DXViewportView has lighting and wire grid in Viewport3D. 3. Child viewport uses master rendering steps. 4. Non-helper objects is rendered using SceneNodes. The issues I've discovered are: 1. When I toggle visibility on a SceneNode objects in child node are no longer refreshed. The visibility of the node is set as following (and works for 4.2.7655) Code: sceneNode.IsVisible = visible;Code: DXScene.DefaultRenderObjectsRenderingStep.OverrideRasterizerState = DXScene.DXDevice.CommonStates.WireframeCullNone;3. Setting visibility on ContentVisual3D (the visual that contains wire grid) does not correctly update in child views. Most of the issues are resolved, when I move camera in each view (it looks to me like directx stops rendering for inactive viewports and uses some stored backbuffer). Is this intended behavior and am I just wrongly setting flags? Thanks, Janovsky Roman RE: Update to new version - janovrom - 07-07-2021 I've tried to collect a bit more information about the thread exception: 2021-07-07 14:03:38.374 DXEngine Fatal: Unhandled exception in RenderScene: Still waiting for previous thread to finish rendering Still waiting for previous thread to finish rendering Exception at Ab3d.DirectX.CompleteRenderingStep.OnRun(RenderingContext renderingContext) at Ab3d.DirectX.RenderingStepBase.Run(RenderingContext renderingContext) at Ab3d.DirectX.DXScene.al(RenderingContext a) at Ab3d.DirectX.DXScene.ak(RenderingContext a, Boolean b, Boolean c, DXScene d) at Ab3d.DirectX.DXScene.RenderScene(DXScene childDXScene, Boolean forceRender, Boolean forceUpdate) at Ab3d.DirectX.Controls.DXView.RenderScene(Boolean forceRender, Boolean forceUpdate) at Ab3d.DirectX.Controls.DXView.RenderScene(Boolean forceRender, Boolean forceUpdate) at Ab3d.DirectX.Controls.DXView.j(Object a, EventArgs b) It happens, when I change selection (outline), animate the object (transformation). Both happen in a locked access from DXViewportView.SceneUpdating. There I run my own update of my data and also update (if needed) of SceneNodes (selection, animation, visibility, rendering queues). The SceneNodes are modified and Notify* is called. RE: Update to new version - abenedik - 07-21-2021 When using multiple child DXViewportView that use RenderingSteps from master DXViewportView (useMasterRenderingSteps constructor parameter is true) then using the new background waiting for rendering to be completed (a feature introduced in v4.4) may throw an exception with the message: "Still waiting for previous thread to finish rendering". A new fixed version will be provided in the following days. Until then in case of this exception, a workaround is to disable background waiting for rendering to be completed - this is done by setting the DXViewportView.IsWaitingInBackgroundUntilRendered to false. RE: Update to new version - abenedik - 07-28-2021 A new version 4.4.7874 has been published and it fixes the problems described in this post. If you are using multiple DXViewportViews then it is recommended to upgrade to this version because also a few other related issues are fixed. |