Hi Phil, I have opened https://bugs.openjdk.java.net/browse/JDK-8217718 <https://bugs.openjdk.java.net/browse/JDK-8217718> for XRender issue on XVNC4.
Any thoughts regarding the proposed fix for this one? Any inputs are much appreciated. Thanks, Dmitry > On 23 Jan 2019, at 17:25, Phil Race <philip.r...@oracle.com> wrote: > > OK, that is good enough for now, please file a bug against Xrender + 16bit > visuals, so > we can remember this. > > -phil. > > On 1/23/19 3:23 AM, Dmitry Markov wrote: >> Hi Phil, >> >> I have found that the problem occurrence depends on depth setting of VNC >> server. XVFB/X11VNC configuration (where the problem takes place) uses 16 >> bpp and at the same time I cannot reproduce the issue on X11VNC with 32 bpp. >> In other words the issue depends on pixel size used by the configuration: it >> takes place if the pixel size is 16 and does not happen if the pixel size is >> 24. I am not an expert in XRender but the following seems correct: current >> implementation of XRSurfaceData.getSurfaceType() always returns INT >> (32-bit) surface type which might not work properly for the configuration >> where pixel size is 16. >> >> Also the problem is not reproducible on XVNC4 (default depth value is 16) >> because XRender pipeline cannot be enabled there for some reasons. That may >> explain why the issue is not observed on other XVNC configurations. The >> root cause of XRender pipeline failure for XVNC4 is currently unclear but I >> think it is out of scope for this bug. >> >> Thanks, >> Dmitry >> >>> On 8 Jan 2019, at 18:44, Phil Race <philip.r...@oracle.com >>> <mailto:philip.r...@oracle.com>> wrote: >>> >>> I don't really understand why this only affects XVFB/X11VNC ? >>> The bug evaluation is vague in explaining the root cause. >>> What are they doing that is different ? >>> Is there an unexpected alpha channel ? >>> If so, >>> - are we then selecting a loop which is supplying a zero value alpha >>> channel instead of an opaque one ? >>> - why is it only for X11VNC ? >>> - Why was this not seen on Solaris ? Most if not all testing there uses >>> Xvnc. >>> >>> -phil. >>> >>> On 1/8/19 2:24 AM, Dmitry Markov wrote: >>>> Hi Sergey, >>>> >>>> We started using XRSurfaceType (surface type from XRSurfaceData) after >>>> integration of JDK-8204931 [1]. Before that fix getSurfaceType() was not >>>> overridden in XRGraphicsConfig and surface type from >>>> X11GraphicsConfig/X11SurfaceData, (i.e. X11SurfaceType) was used for >>>> XRWindowSurfaceData and XRPixmapSurfaceData. If I got it right >>>> JDK-8204931was intended for fixing problems with XRPixmapSurfaceData and >>>> it solved them by introducing surface type with PixelConverter in >>>> XRSurfaceData and overriding getSurfaceType() in XRGraphicsConfig. These >>>> changes are correct for XRPixmapSurfaceData but they accidentally broke >>>> XRWindowSurfaceData and caused this problem. >>>> >>>> In proposed fix I restored the previous behaviour for XRWindowSurfaceData, >>>> (i.e. use surface type from X11SurfaceData instead there one from >>>> XRSurfaceData). >>>> >>>> Thanks, >>>> Dmitry >>>> >>>> [1] - https://bugs.openjdk.java.net/browse/JDK-8204931 >>>> <https://bugs.openjdk.java.net/browse/JDK-8204931> >>>> >>>> >>>>> On 7 Jan 2019, at 23:14, Sergey Bylokhov <sergey.bylok...@oracle.com >>>>> <mailto:sergey.bylok...@oracle.com>> wrote: >>>>> >>>>> Hi, Dmitry. >>>>> On 03/01/2019 10:29, Dmitry Markov wrote: >>>>>> Fix: >>>>>> It is necessary to use X11SurfaceType instead of XRSurfaceType inside >>>>>> createData() for XRWindowSurfaceData >>>>> >>>>> Can you please provide some more details why it is necessary? From the >>>>> first point of view the XRSurfaceType should be used for >>>>> XRWindowSurfaceData, >>>>> because all this code is implementation of the XRender pipeline. >>>>> >>>>> >>>>> -- >>>>> Best regards, Sergey. >>>> >>> >> >