Group: Forum Members
Last Active: Last Year
Posts: 17,
Visits: 338
|
Hello, We have some charts that contain a large number of points. Using RenderSurface.Window massively improved performance of those charts. Since then occasionally we would get an AccessViolationException in the finalizer. Ensuring we call Dispose fixed most of the errors however it can still happen if we start our application using remote desktop and disconnect. We have had problems in our own codebase with finalizers accessing managed objects, it looks like that might be happening here. at Nevron.GraphicsGL.l1IlllII1l.glDeleteTextures(Int32 n, UInt32* textures) at Nevron.GraphicsGL.l1Ill1lI1l.l1IlII11lI(l1l1I1lll texture) at Nevron.GraphicsGL.l1Ill111ll.Dispose() at Nevron.GraphicsGL.l1Ill1l111.Dispose() at Nevron.GraphicsGL.l1Illl1I11.Dispose() at Nevron.GraphicsCore.l1lI1Ill1.l11l1lIlI1() at Nevron.GraphicsCore.l1lI1Ill1.Clear() at Nevron.GraphicsCore.l1lI1Ill1.Finalize() Would it be possible for you to fix this? We are happy with the nevron charting functionality and would pay for an upgrade. Best regards,
|
Group: Forum Members
Last Active: Last Week
Posts: 3,054,
Visits: 4,009
|
Hi Stuart, Thank you for reporting this problem. We were unable to replicate the problem with the current version and the examples of the chart. Can you please tell us the version of the software you're currently using so that we can verify whether its present there as well as the of video board on the machine that has this problem?.
Best Regards, Nevron Support Team
|
Group: Forum Members
Last Active: Last Year
Posts: 17,
Visits: 338
|
Hi, We can reproduce the error in the trial of 20.8.17.12 The graphics card of one of the machines that can reproduce the remote desktop problem is NVIDIA Corporation: Quadro P2000/PCIe/SSE2. The drivers are up to date. One of our software testers can reproduce the remote desktop error in our application but not using the examples application. I can reproduce an error with the same stack trace in the sample WPF application by: Replacing the NChartControl in Mainwindow.xaml with <ContentControl VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.Column="0" Name="nChartControlContent"/> and modifying Mainwindow.xaml.cs to overwrite the NChartControl Nevron.Chart.Wpf.NChartControl nChartControl; void ExamplesTreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) { NExampleTreeNode treeNode = ExamplesTreeView.SelectedItem as NExampleTreeNode;
nChartControl = new Nevron.Chart.Wpf.NChartControl(); nChartControlContent.Content = nChartControl; Thanks for looking into this Best regards, Stuart
|
Group: Forum Members
Last Active: Last Year
Posts: 17,
Visits: 338
|
Hi,
We also get an AccessViolationException with a different stack trace in remote desktop.
The graphics card is NVIDIA Corporation: Quadro P2000/PCIe/SSE2. Quadro cards can use hardware rendering over remote desktop.
Exception: System.AccessViolationException Message: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. Source: Nevron.GraphicsGL Stack Trace: at Nevron.GraphicsGL.l1IlllII1l.glDrawElements(Int32 mode, Int32 count, Int32 type, Void* indices) at Nevron.GraphicsGL.l1IlllI111.RenderIndexed(l111l111I& cmd) at Nevron.GraphicsCore.l1l1l1III.FlushCommandBuffer() at Nevron.GraphicsGL.l1Illl11II.WaitForRenderingToComplete() at Nevron.Chart.NContentPanel.RenderInternal(NChartRenderingContext context) at Nevron.Chart.NPanel.RenderInternal(NChartRenderingContext context) at Nevron.Chart.NContentPanel.RenderInternal(NChartRenderingContext context) at Nevron.Chart.NRootPanel.RenderInternal(NChartRenderingContext context) at Nevron.Chart.Ndocument.Paint(NChartRenderingContext context, Boolean l1l1I1II11I, Boolean recalc) at Nevron.Chart.Wpf.NWpfGLWindowRenderSurface.Paint(DrawingContext context, NWpfChartControlView view) at Nevron.Chart.Wpf.NChartControl.OnRender(DrawingContext drawingContext) at System.Windows.UIElement.Arrange(Rect finalRect) at System.Windows.ContextLayoutManager.UpdateLayout() at System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg) at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget) at System.Windows.Media.MediaContext.AnimatedRenderMessageHandler(Object resizedCompositionTarget) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue()
|
Group: Forum Members
Last Active: Last Week
Posts: 3,054,
Visits: 4,009
|
Hi Stuart, Just a short note that the first issue has been corrected (calling glDeleteTextures when no OpenGL context is selected) and it will not appear in the 2021 releases of the control. We cannot replicate the second reported issue - does it happen only when you are using the machine using remote desktop?
Best Regards, Nevron Support Team
|
Group: Forum Members
Last Active: Last Year
Posts: 17,
Visits: 338
|
Hi,
Thanks for fixing the first issue.
The NullReferenceException in UpdateFrames only ever happens when using remote desktop.
Best regards,
Stuart
|