JDK-8123475 : Scene not fully repainted when surface is lost and dirtyopts are enabled
  • Type: Bug
  • Component: javafx
  • Sub-Component: graphics
  • Affected Version: 8
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2013-09-18
  • Updated: 2015-06-17
  • Resolved: 2013-11-01
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8
8Fixed
Related Reports
Blocks :  
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
Once the fix for RT-32636 is pushed, this bug can be seen.

To reproduce this:

1) Run HelloAnimation
2) enter screen lock with CTRL-ALT-DEL
3) Hit ESC to exit screen lock

Sometimes after coming out of screen lock, the window comes up black. The dirty regions will repaint, but until you resize or minimize/restore the window, the whole scene is not repainted.

A lost surface should trigger a full scene repaint.
Comments
Changeset: 6af0f4099136 Author: vadim Date: 2013-11-01 13:20 +0400 URL: http://hg.openjdk.java.net/openjfx/8/graphics/rt/rev/6af0f4099136
01-11-2013

This may be related to RT-31272.
30-10-2013

The root cause of the bug is that GlassScene.isEntireSceneDirty() does not return true sometimes. I've tracked this down to PresentingPainter, where presentable.present() returns true, but it should have returned false (IMO). This however happens only on D3D, not ES2 (Windows).
01-10-2013

This is a regression from FX 2. I don't remember seeing it in earlier FX 8 builds, but other recent bugs have prevented recovering from a lost surface at all, so it's hard to say when this was introduced. Possibly by some of the recent dirty region optimization code.
18-09-2013