|
Quick Lists
|
|
Bug ID:
|
6757527
|
|
Votes
|
2
|
|
Synopsis
|
D3D: serious rendering issues on Nvidia boards with driver version 178.13 on Vista
|
|
Category
|
java:classes_2d
|
|
Reported Against
|
b31
, b37
|
|
Release Fixed
|
6u11(b03)
|
|
State
|
10-Fix Delivered,
bug
|
|
Priority:
|
2-High
|
|
Related Bugs
|
6762839
,
6765224
|
|
Submit Date
|
08-OCT-2008
|
|
Description
|
The latest Nvidia driver (178.13) causes significant rendering problems across
multiple adapters on Windows Vista.
Sample configuration:
[I] Description : NVIDIA GeForce 7600 GT
[I] GDI Name, Driver : \\.\DISPLAY1, nvd3dum.dll
[I] Vendor Id : 0x10de
[I] Device Id : 0x02e0
[I] SubSys Id : 0x22491682
[I] Driver Version : 7.15.11.7813
[I] GUID : {D7B71E3E-41A0-11CF-B76B-420202C2CA35}
Posted Date : 2008-10-08 22:03:07.0
|
|
Work Around
|
disable the Direct3D pipeline with -Dsun.java2d.d3d=false .
|
|
Evaluation
|
Working with Nvidia on identifying the cause.
Posted Date : 2008-10-08 22:03:08.0
The condition that triggers the bug is this: we use a texture for rendering
heap-based images into accelerated surfaces. This surface (at tile) is
256x256, so if the image is too large to fit it is tiled.
The texture is created with DYNAMIC use flag. This means that we can
use DISCARD when locking the contents of the surface, letting the
runtime know that we don't care about previous contents of the surface.
The current code only locks with the discard flag if the loaded bits
fill whole image. This is probably due to misinterpretation of the
documentation for DISCARD/DYNAMIC, which says that you could only
use DISCARD if you're replacing every single texel in the texture,
since the contents of the texture locked with DISCARD are not guaranteed
to be the same from lock to another lock.
What they meant to say is "every single texel that you care about",
so if we only care about and access 10x10 part of 256x256 texture
we could still use the DISCARD flag when locking.
Anyway, I don't believe our current use is illegal - we don't *have* to
use the DISCARD flag with DYNAMIC textures, it's just recommended.
The Microsoft reference rasterizer works just fine, and so were nvidia drivers
up to the latest update.
The work around for this apparent driver bug is to always lock with the DISCARD
flag - which is the better performing option anyway.
We'll still pursue Nvidia to address this issue or explain what's
wrong with our current usage, and why the reference rasterizer doesn't
think so.
Posted Date : 2008-10-30 20:06:42.0
|
|
Comments
|
Submitted On 23-OCT-2008
Verified on 176.15 and 178.26 on Quadro NVS 285 running on Vista Business 32. Disabling the d3d pipeline by settting J2D_D3D to false can be used as a workaround.
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |