JDK-6629891 : D3D: Rendering artifacts with older driver [Nvidia Quadro NVS 110M]
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 6u10
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2007-11-14
  • Updated: 2010-10-14
  • Resolved: 2007-12-17
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 6
6u10 b09Fixed
Description
From this post:
  http://forums.java.net/jive/message.jspa?messageID=245439#245439

Rendering artifacts occur in my custom charts and in JFreeChart charts as well. The artifacts go away when I disable the new pipeline.

Here is the trace output:
CheckAdaptersInfo
------------------
Adapter Ordinal : 0
Adapter Handle : 0x10001
Description : NVIDIA Quadro NVS 110M
GDI Name, Driver : \\.\DISPLAY1, nv4_disp.dll
Vendor Id : 0x10de
Device Id : 0x1d7
SubSys Id : 0x1c21028
Driver Version : 6.14.10.8313
GUID : D7B71E3E-4297-11CF-E153C82100C2CB35
------------------
InitD3D: successfully created Direct3D9 object
D3DGD_getDeviceCapsNative
D3DPPLM::CheckDeviceCaps: adapter 0: Passed
D3DContext::InitContext device 0
D3DContext::ConfigureContext device 0
D3DContext::ConfigureContext: successfully created device: 0
D3DContext::InitDevice: device 0
D3DContext::InitDefice: successfully initialized device 0
[V] | CAPS_DEVICE_OK
[V] | CAPS_ALPHA_RT_PLAIN
[V] | CAPS_ALPHA_RTT
[V] | CAPS_OPAQUE_RTT
[V] | CAPS_LCD_SHADER | CAPS_BIOP_SHADER
[V] | CAPS_MULTITEXTURE
[V] | CAPS_TEXNONPOW2
[V] | CAPS_TEXNONSQUARE


(the app and screenshot and attached)

Comments
EVALUATION Note that another issue with this board, this time on Windows Vista, has been reported: http://forums.java.net/jive/thread.jspa?messageID=247267&#247267 (The fix for this bug doesn't address . I will file a separate bug.) Unfortunately updating to the lateset available drivers didn't help. I suspect that the problem is with Present() calls with regions - I have seen similar issues on other nvidia boards in full-screen mode: if Present is called with non-NULL rectangles sometimes the rendering gets screwed (we even have a workaround for this for the full-screen mode). The submitter reports that using -Dswing.bufferPerWindow=false helps, and the likely reason is that in this case there are no partial updates.
29-11-2007

SUGGESTED FIX http://sa.sfbay.sun.com/projects/java2d_data/6u10/6629891.0
29-11-2007

WORK AROUND Disable the pipeline with -Dsun.java2d.d3d=false .
14-11-2007

EVALUATION The issue went away after the user updated the driver to version 6.14.11.5665. So we're going to restrict the pipeline to this driver version. The ouptut with the new version: [I] Adapter Ordinal : 0 [I] Adapter Handle : 0x10001 [I] Description : NVIDIA Quadro NVS 110M [I] GDI Name, Driver : \\.\DISPLAY1, nv4_disp.dll [I] Vendor Id : 0x10de [I] Device Id : 0x1d7 [I] SubSys Id : 0x1c21028 [I] Driver Version : 6.14.11.5665 [I] GUID : D7B71E3E-4297-11CF-B965C92100C2CB35
14-11-2007