[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-openjfx-dev
Subject:    Re: RFR: 8239589: JavaFX UI will not repaint after reconnecting via Remote Desktop
From:       Christopher Hewett <github.com+1496922+chewett () openjdk ! java ! net>
Date:       2020-12-17 17:08:58
Message-ID: AOhTx9XQr7hEIqFcoOaVsQxycmX5X7EOJdY3JciUeik=.1318beba-55a3-4313-9761-dd6db807126b () github ! com
[Download RAW message or body]

On Tue, 13 Oct 2020 16:40:45 GMT, Oliver Schmidtmer \
<github.com+10960818+Schmidor@openjdk.org> wrote:

> > I hope I understood your intend. I've tried to replace the recreation of the \
> > GraphicsPipeline-Instance by only calling the native parts. Unfortunately that \
> > doesn't seem to work at all. Probably I'm missing some updates. public boolean \
> > reinit() { if (d3dEnabled) {
> > if (creator != Thread.currentThread()) {
> > throw new IllegalStateException(
> > "This operation is not permitted on the current thread ["
> > + Thread.currentThread().getName() + "]");
> > }
> > notifyAllResourcesReleased();
> > nDispose();
> > for (int i = 0; i != factories.length; ++i) {
> > factories[i] = null;
> > }
> > nInit(PrismSettings.class);
> > factories = new D3DResourceFactory[nGetAdapterCount()];
> > }
> > return d3dEnabled;
> > }
> 
> On a side note, not all resources seem to be freed / recreated on pipeline \
> disposal. There are some error outputs, and some parts in a webview are only \
> rendered after interactions. So it is probably better to mark this as WIP. I would \
>                 be happy if you have some advice for me.
> java.lang.IllegalStateException: unmanaged resource freed from pool D3D Vram Pool
> 	at com.sun.prism.impl.BaseResourcePool.resourceFreed(BaseResourcePool.java:463)
> 	at com.sun.prism.impl.ManagedResource.dispose(ManagedResource.java:127)
> 	at com.sun.prism.impl.BaseTexture.dispose(BaseTexture.java:297)
> 	at com.sun.scenario.effect.impl.prism.ps.PPSDrawable.flush(PPSDrawable.java:69)
> 	at com.sun.scenario.effect.impl.ImagePool.dispose(ImagePool.java:267)
> 	at com.sun.scenario.effect.impl.Renderer.getRenderer(Renderer.java:367)
> 	at com.sun.scenario.effect.Effect.getCompatibleImage(Effect.java:479)
> 	at com.sun.javafx.webkit.prism.WCGraphicsPrismContext$Layer.<init>(WCGraphicsPrismContext.java:1369)
>   at com.sun.javafx.webkit.prism.WCGraphicsPrismContext$ClipLayer.<init>(WCGraphicsPrismContext.java:1440)
>   at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:328)
>   at com.sun.webkit.graphics.GraphicsDecoder.decode(GraphicsDecoder.java:225)
> 	at com.sun.webkit.graphics.WCRenderQueue.decode(WCRenderQueue.java:92)
> 	at com.sun.webkit.WebPage.paint2GC(WebPage.java:736)
> 	at com.sun.webkit.WebPage.paint(WebPage.java:703)
> 	at com.sun.javafx.sg.prism.web.NGWebView.renderContent(NGWebView.java:95)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964)
> 	at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:479)
> 	at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:328)
> 	at com.sun.javafx.tk.quantum.UploadingPainter.run(UploadingPainter.java:143)
> 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
>   at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
> 	at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
> 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
>   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
>   at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
>   at java.base/java.lang.Thread.run(Thread.java:832)

Now more of my company are remoting into machines this issue is causing problems for \
us.

-------------

PR: https://git.openjdk.java.net/jfx/pull/315


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic