Possible leak on prism es2
Thiago Milczarek Sayão
thiago.sayao at gmail.com
Thu Sep 26 11:14:25 UTC 2024
Hi,
I'm investigating the code, and for someone not familiar with it, it's very
complex.
On com.sun.javafx.tk.quantum.WindowStage it will do this when changing
scene:
if (oldScene != null) {
ViewPainter painter = ((ViewScene)oldScene).getPainter();
QuantumRenderer.getInstance().disposePresentable(painter.presentable);
// latched on RT
}
But not when closing the Sage (possible problem #1).
When changing scenes, ES2SwapChain dispose will be called:
public void dispose() {
if (stableBackbuffer != null) {
stableBackbuffer.dispose();
stableBackbuffer = null;
}
}
But it does not dispose the drawable that should clear the native struc
DrawableInfo created, I think (possible problem #2).
Does it make sense?
-- Thiago.
Em ter., 24 de set. de 2024 às 14:10, Thiago Milczarek Sayão <
thiago.sayao at gmail.com> escreveu:
> I might be mistaken, but it seems deleteDrawableInfo is never called.
>
> I think it should be called when the platform View is replaced or when the
> window is closed.
>
> Github search for deleteDrawableInfo
>
> https://github.com/search?q=repo%3Aopenjdk%2Fjfx%20deleteDrawableInfo&type=code
>
> Em ter., 24 de set. de 2024 às 09:07, Thiago Milczarek Sayão <
> thiago.sayao at gmail.com> escreveu:
>
>> Hi,
>>
>> While doing some work on replacing GLX with EGL I discovered a possible
>> leak.
>>
>> Running this test:
>> gradle -PFULL_TEST=true -PUSE_ROBOT=true :systemTests:test --tests
>> SetSceneScalingTest
>>
>> will result in X11GLDrawable -> nCreateDrawable to be called multiple
>> times on the same test, while GLDrawable -> deleteDrawableInfo is never
>> called, generating a leak (I think).
>>
>> I can probably fix this, but I still have little knowledge on the es2
>> part, so any help would be appreciated.
>>
>> -- Thiago.
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20240926/b8e97da3/attachment-0001.htm>
More information about the openjfx-dev
mailing list