JDK-6439320 : OGL: enable sun.java2d.opengl.fbobject by default
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 6
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: generic
  • Submitted: 2006-06-15
  • Updated: 2017-05-16
  • Resolved: 2006-07-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.
6 b92Fixed
Related Reports
Relates :  
In 6255507 we added a new codepath to the OGL pipeline that uses framebuffer objects
(FBOs) instead of pbuffers.  There are many benefits to using FBOs:
  - platform independent render-to-texture API
  - improved blitting performance
  - can transform/blend/etc just like regular textures, unlike pbuffers
  - can avoid expensive context switches in many cases

SwingMark numbers are improved anywhere from 10-15% (depending on the hardware) when
using the FBO codepath instead of the default pbuffer-based one.  Unfortunately though
when we fixed 6255507 the extension was still relatively new and there were driver
bugs that prevented us from enabling the FBO codepath by default.  The purpose of this
bug report is to discuss the resolved/remaining barriers and to provide a vehicle
for enabling the FBO codepath by default for the best out-of-box performance

EVALUATION Another benefit to enabling the FBO codepath by default is that it works around a number of bugs in ATI's driver support for pbuffers, specifically: 5033205: OGL with Java2Demo and Radeon not displaying application demos properly 5066318: OGL: Enabling OGL pipeline on Windows with ATI board crashes VM at exit 6357499: OGL crashed with resizing Java2Demo Frame on Radeon 9800XT

EVALUATION Currently the biggest obstacle to enabling the FBO codepath by default is documented in 6298243, where copyArea() operations are extemely slow for FBO destinations on Nvidia nv3x hardware (GeForce FX 5xxx series), which makes scrolling/dragging unusable in Swing applications on those boards. We plan to workaround that driver/hardware issue under 6298243, which would eliminate the barrier for Nvidia boards. (Update: the fix for 6298243 has been putback into the Java2D workspace, and is targetted for b92 along with the fix for 6439320.) In addition to the above driver issue, Nvidia has recently broken our FBO codepath in their latest 84.21 driver release (only affects Windows). However, they have fixed this problem in their next driver release (whatever comes after 91.31), so this was just a small blip. Once we turn on the FBO codepath by default with this bug fix, if you have the 84.21 drivers installed, you can do one of three things to work around the problem: - upgrade to 91.xx when it becomes available (highly recommended) - downgrade to 81.95 or an earlier Nvidia driver release - disable the FBO codepath using -Dsun.java2d.opengl.fbobject=false