<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Hello Everyone<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Good day to you.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Request your time in reviewing the fix for-<o:p></o:p></p><p class=MsoNormal>      Bug : JDK-8165212<o:p></o:p></p><p class=MsoNormal>      Title : VolatileImage should not be compatible with GraphicsConfiguration which transform is changed<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Description on the bug-<o:p></o:p></p><p class=MsoNormal>       . As per the bug, Volatile Image's graphics configuration is not updated when the host machine display's DPI is changed at runtime (while still running the java app). In addition, the method contentsLost() does not return true when display’s DPI is modified.<o:p></o:p></p><p class=MsoNormal>       . It is important to note that, the issue is not reproducible with D3D/OpenGL backend. It is reproducible with non-accelerated Volatile Image.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Root Cause<o:p></o:p></p><p class=MsoNormal>       . A callback method- displayChanged() in VolatileSurfaceManager.java is invoked when display's settings (DPI) is modified.<o:p></o:p></p><p class=MsoNormal>       . The callback method, currently, updates the graphics configuration only for Accelerated volatile image. Graphics configuration is not updated for non-accelerated system memory based VolatileImage.<o:p></o:p></p><p class=MsoNormal>       . Until recently, there wasn't any need for updating graphics configuration for non-accelerated volatileImage. However, Win 8.1 and above provide feature to dynamically update the DPI setting (without requiring for log-off/ log-in), which causes the current bug.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Bug Fix<o:p></o:p></p><p class=MsoNormal>      . First, the callback method is modified to update graphics configuration for non-accelerated volatile image also.<o:p></o:p></p><p class=MsoNormal>      . An update to graphics configuration might require re-creation of the surface. Especially, when the scale factor is increased. Hence the system memory based backupSurface is re-created here.<o:p></o:p></p><p class=MsoNormal>      . The above change is followed by change to Validate() API, so that the backup surface re-creation in displayChanged() method, correctly returns IMAGE_RESTORED from validate() API. This way, the code flow for non-accelerated Volatile Images behaves just the same way as accelerated volatile images.<o:p></o:p></p><p class=MsoNormal>       . Approximately 81 Jtreg test cases (that contained VolatileImage) were run on win7, linux, and osx. No new regressions have been found after the modification.<o:p></o:p></p><p class=MsoNormal>       . In addition, a manual test case has been provided to ensure the proper functioning of the fix<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Kindly review the changes and provide your suggestions<o:p></o:p></p><p class=MsoNormal>Review link: http://cr.openjdk.java.net/~pnarayanan/8165212/webrev.00/<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thank you for your time in review<o:p></o:p></p><p class=MsoNormal>Have a good day<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Prahalad N.<o:p></o:p></p></div></body></html>