Details
-
Bug
-
Resolution: Fixed
-
P2
-
8
Description
Running the "FullTutorial" CanvasTest toy from rt-closed, we run out of texture resources trying to view all of the tabs due to an excessive number of textures marked "permanent" from the WebView code.
When we run out the statistics are printed out showing a full 256MB of textures allocated, 118 of which are marked permanent. If I add a printStackTrace() in the "makePermanent()" method call I see that every object created in the WCBufferedContext/RTImage path is made permanent and never disposed.
The permanent flag should only be used sparingly for textures that contain data that cannot be reconstructed and which survives a given rendering pass (i.e. if it is only used within a single rendering pass and then the data becomes uninteresting, then a texture lock() operation should be used instead. If the data needs to remain between rendering passes and cannot be constructed, then a call to makePermanent() can be made as a last resort).
It looks like these resources are created to manage save/restore operations, but I can't find any place where the state objects are disposed after use.
When we run out the statistics are printed out showing a full 256MB of textures allocated, 118 of which are marked permanent. If I add a printStackTrace() in the "makePermanent()" method call I see that every object created in the WCBufferedContext/RTImage path is made permanent and never disposed.
The permanent flag should only be used sparingly for textures that contain data that cannot be reconstructed and which survives a given rendering pass (i.e. if it is only used within a single rendering pass and then the data becomes uninteresting, then a texture lock() operation should be used instead. If the data needs to remain between rendering passes and cannot be constructed, then a call to makePermanent() can be made as a last resort).
It looks like these resources are created to manage save/restore operations, but I can't find any place where the state objects are disposed after use.
Attachments
Issue Links
- blocks
-
JDK-8094789 [D3D, WebView] Accelerated compositing goes black upon returning from screen lock or Clrt+Alt+Del
-
- Resolved
-
- duplicates
-
JDK-8122176 WebView dumping NPEs on http://neography.com/experiment/circles/solarsystem
-
- Resolved
-
- relates to
-
JDK-8089308 Random black areas rendered
-
- Open
-
-
JDK-8122176 WebView dumping NPEs on http://neography.com/experiment/circles/solarsystem
-
- Resolved
-
-
JDK-8095424 WebView fails to unlock some texture resources
-
- Closed
-